fern-api 4.37.10 → 4.37.11
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/cli.cjs +6 -6
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1542,7 +1542,7 @@ For more information, see https://buildwithfern.com/learn/api-definition/introdu
|
|
|
1542
1542
|
`):" "+qoa(s[0]):"as no adapter specified";throw new oo("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i}var gfr={getAdapter:eNp,adapters:h0i};function g0i(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new PQ(null,e)}function Afr(e){return g0i(e),e.headers=ub.from(e.headers),e.data=ovt.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),gfr.getAdapter(e.adapter||eVe.adapter,e)(e).then(function(n){return g0i(e),n.data=ovt.call(e,e.transformResponse,n),n.headers=ub.from(n.headers),n},function(n){return svt(n)||(g0i(e),n&&n.response&&(n.response.data=ovt.call(e,e.transformResponse,n.response),n.response.headers=ub.from(n.response.headers))),Promise.reject(n)})}var yfr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{yfr[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var Goa={};yfr.transitional=function(t,r,n){function i(o,s){return"[Axios v"+POe+"] Transitional option '"+o+"'"+s+(n?". "+n:"")}return(o,s,a)=>{if(t===!1)throw new oo(i(s," has been removed"+(r?" in "+r:"")),oo.ERR_DEPRECATED);return r&&!Goa[s]&&(Goa[s]=!0,console.warn(i(s," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(o,s,a):!0}};yfr.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function tNp(e,t,r){if(typeof e!="object")throw new oo("options must be an object",oo.ERR_BAD_OPTION_VALUE);let n=Object.keys(e),i=n.length;for(;i-- >0;){let o=n[i],s=t[o];if(s){let a=e[o],u=a===void 0||s(a,o,e);if(u!==!0)throw new oo("option "+o+" must be "+u,oo.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new oo("Unknown option "+o,oo.ERR_BAD_OPTION)}}var dvt={assertOptions:tNp,validators:yfr};var z4=dvt.validators,oVe=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Rbi,response:new Rbi}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;let o=i.stack?i.stack.replace(/^.+\n/,""):"";try{n.stack?o&&!String(n.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(n.stack+=`
|
|
1543
1543
|
`+o):n.stack=o}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=P6(this.defaults,r);let{transitional:n,paramsSerializer:i,headers:o}=r;n!==void 0&&dvt.assertOptions(n,{silentJSONParsing:z4.transitional(z4.boolean),forcedJSONParsing:z4.transitional(z4.boolean),clarifyTimeoutError:z4.transitional(z4.boolean),legacyInterceptorReqResOrdering:z4.transitional(z4.boolean)},!1),i!=null&&(Wt.isFunction(i)?r.paramsSerializer={serialize:i}:dvt.assertOptions(i,{encode:z4.function,serialize:z4.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),dvt.assertOptions(r,{baseUrl:z4.spelling("baseURL"),withXsrfToken:z4.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let s=o&&Wt.merge(o.common,o[r.method]);o&&Wt.forEach(["delete","get","head","post","put","patch","common"],m=>{delete o[m]}),r.headers=ub.concat(s,o);let a=[],u=!0;this.interceptors.request.forEach(function(h){if(typeof h.runWhen=="function"&&h.runWhen(r)===!1)return;u=u&&h.synchronous;let g=r.transitional||rme;g&&g.legacyInterceptorReqResOrdering?a.unshift(h.fulfilled,h.rejected):a.push(h.fulfilled,h.rejected)});let c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let l,p=0,d;if(!u){let m=[Afr.bind(this),void 0];for(m.unshift(...a),m.push(...c),d=m.length,l=Promise.resolve(r);p<d;)l=l.then(m[p++],m[p++]);return l}d=a.length;let f=r;for(;p<d;){let m=a[p++],h=a[p++];try{f=m(f)}catch(g){h.call(this,g);break}}try{l=Afr.call(this,f)}catch(m){return Promise.reject(m)}for(p=0,d=c.length;p<d;)l=l.then(c[p++],c[p++]);return l}getUri(t){t=P6(this.defaults,t);let r=SOe(t.baseURL,t.url,t.allowAbsoluteUrls);return _Oe(r,t.params,t.paramsSerializer)}};Wt.forEach(["delete","get","head","options"],function(t){oVe.prototype[t]=function(r,n){return this.request(P6(n||{},{method:t,url:r,data:(n||{}).data}))}});Wt.forEach(["post","put","patch"],function(t){function r(n){return function(o,s,a){return this.request(P6(a||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:o,data:s}))}}oVe.prototype[t]=r(),oVe.prototype[t+"Form"]=r(!0)});var mvt=oVe;var A0i=class e{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(o){r=o});let n=this;this.promise.then(i=>{if(!n._listeners)return;let o=n._listeners.length;for(;o-- >0;)n._listeners[o](i);n._listeners=null}),this.promise.then=i=>{let o,s=new Promise(a=>{n.subscribe(a),o=a}).then(i);return s.cancel=function(){n.unsubscribe(o)},s},t(function(o,s,a){n.reason||(n.reason=new PQ(o,s,a),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){let t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new e(function(i){t=i}),cancel:t}}},Woa=A0i;function y0i(e){return function(r){return e.apply(null,r)}}function b0i(e){return Wt.isObject(e)&&e.isAxiosError===!0}var E0i={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(E0i).forEach(([e,t])=>{E0i[t]=e});var $oa=E0i;function Hoa(e){let t=new mvt(e),r=evt(mvt.prototype.request,t);return Wt.extend(r,mvt.prototype,t,{allOwnKeys:!0}),Wt.extend(r,t,null,{allOwnKeys:!0}),r.create=function(i){return Hoa(P6(e,i))},r}var Ov=Hoa(eVe);Ov.Axios=mvt;Ov.CanceledError=PQ;Ov.CancelToken=Woa;Ov.isCancel=svt;Ov.VERSION=POe;Ov.toFormData=tme;Ov.AxiosError=oo;Ov.Cancel=Ov.CanceledError;Ov.all=function(t){return Promise.all(t)};Ov.spread=y0i;Ov.isAxiosError=b0i;Ov.mergeConfig=P6;Ov.AxiosHeaders=ub;Ov.formToJSON=e=>pfr(Wt.isHTMLForm(e)?new FormData(e):e);Ov.getAdapter=gfr.getAdapter;Ov.HttpStatusCode=$oa;Ov.default=Ov;var r0=Ov;var{Axios:cay,AxiosError:Koa,CanceledError:lay,isCancel:pay,CancelToken:fay,VERSION:day,all:may,Cancel:hay,isAxiosError:gay,spread:Aay,toFormData:yay,AxiosHeaders:bay,HttpStatusCode:Eay,formToJSON:vay,getAdapter:Iay,mergeConfig:way}=r0;var saa=require("fs"),AVe=require("fs/promises");var aaa=require("os"),uaa=xe(require("path"),1),caa=require("stream/promises");var _sa=xe(require("events"),1),PP=xe(require("fs"),1),Hfr=require("events"),gEi=xe(require("stream"),1),Ssa=require("string_decoder"),yEi=xe(require("path"),1),zOe=xe(require("fs"),1),Jfr=require("path"),Psa=require("events"),qfr=xe(require("assert"),1),pme=require("buffer"),esa=xe(require("zlib"),1),Tsa=xe(require("zlib"),1),UOe=require("path"),Nsa=require("path"),Nvt=xe(require("fs"),1),F6=xe(require("fs"),1),X0i=xe(require("path"),1),zsa=require("path"),sEi=xe(require("path"),1),_Ei=xe(require("fs"),1),Ksa=xe(require("assert"),1),SEi=require("crypto"),tf=xe(require("fs"),1),Tv=xe(require("path"),1),BEi=xe(require("fs"),1),Lvt=xe(require("fs"),1),hVe=xe(require("path"),1),sF=xe(require("fs"),1),eaa=xe(require("fs/promises"),1),jvt=xe(require("path"),1),OEi=require("path"),oF=xe(require("fs"),1),TEi=xe(require("path"),1),rNp=Object.defineProperty,nNp=(e,t)=>{for(var r in t)rNp(e,r,{get:t[r],enumerable:!0})},Joa=typeof process=="object"&&process?process:{stdout:null,stderr:null},iNp=e=>!!e&&typeof e=="object"&&(e instanceof WOe||e instanceof gEi.default||oNp(e)||sNp(e)),oNp=e=>!!e&&typeof e=="object"&&e instanceof Hfr.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==gEi.default.Writable.prototype.pipe,sNp=e=>!!e&&typeof e=="object"&&e instanceof Hfr.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Foe=Symbol("EOF"),koe=Symbol("maybeEmitEnd"),nme=Symbol("emittedEnd"),bfr=Symbol("emittingEnd"),hvt=Symbol("emittedError"),Efr=Symbol("closed"),Yoa=Symbol("read"),vfr=Symbol("flush"),Xoa=Symbol("flushChunk"),T6=Symbol("encoding"),sVe=Symbol("decoder"),SC=Symbol("flowing"),gvt=Symbol("paused"),lVe=Symbol("resume"),BC=Symbol("buffer"),OP=Symbol("pipes"),OC=Symbol("bufferLength"),v0i=Symbol("bufferPush"),Ifr=Symbol("bufferShift"),HS=Symbol("objectMode"),rE=Symbol("destroyed"),I0i=Symbol("error"),w0i=Symbol("emitData"),Zoa=Symbol("emitEnd"),C0i=Symbol("emitEnd2"),DH=Symbol("async"),x0i=Symbol("abort"),wfr=Symbol("aborted"),Avt=Symbol("signal"),DOe=Symbol("dataListeners"),TQ=Symbol("discarded"),yvt=e=>Promise.resolve().then(e),aNp=e=>e(),uNp=e=>e==="end"||e==="finish"||e==="prefinish",cNp=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,lNp=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),Bsa=class{src;dest;opts;ondrain;constructor(e,t,r){this.src=e,this.dest=t,this.opts=r,this.ondrain=()=>e[lVe](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},pNp=class extends Bsa{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,r){super(e,t,r),this.proxyErrors=n=>this.dest.emit("error",n),e.on("error",this.proxyErrors)}},fNp=e=>!!e.objectMode,dNp=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",WOe=class extends Hfr.EventEmitter{[SC]=!1;[gvt]=!1;[OP]=[];[BC]=[];[HS];[T6];[DH];[sVe];[Foe]=!1;[nme]=!1;[bfr]=!1;[Efr]=!1;[hvt]=null;[OC]=0;[rE]=!1;[Avt];[wfr]=!1;[DOe]=0;[TQ]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");fNp(t)?(this[HS]=!0,this[T6]=null):dNp(t)?(this[T6]=t.encoding,this[HS]=!1):(this[HS]=!1,this[T6]=null),this[DH]=!!t.async,this[sVe]=this[T6]?new Ssa.StringDecoder(this[T6]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[BC]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[OP]});let{signal:r}=t;r&&(this[Avt]=r,r.aborted?this[x0i]():r.addEventListener("abort",()=>this[x0i]()))}get bufferLength(){return this[OC]}get encoding(){return this[T6]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[HS]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[DH]}set async(e){this[DH]=this[DH]||!!e}[x0i](){this[wfr]=!0,this.emit("abort",this[Avt]?.reason),this.destroy(this[Avt]?.reason)}get aborted(){return this[wfr]}set aborted(e){}write(e,t,r){if(this[wfr])return!1;if(this[Foe])throw new Error("write after end");if(this[rE])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8");let n=this[DH]?yvt:aNp;if(!this[HS]&&!Buffer.isBuffer(e)){if(lNp(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(cNp(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[HS]?(this[SC]&&this[OC]!==0&&this[vfr](!0),this[SC]?this.emit("data",e):this[v0i](e),this[OC]!==0&&this.emit("readable"),r&&n(r),this[SC]):e.length?(typeof e=="string"&&!(t===this[T6]&&!this[sVe]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[T6]&&(e=this[sVe].write(e)),this[SC]&&this[OC]!==0&&this[vfr](!0),this[SC]?this.emit("data",e):this[v0i](e),this[OC]!==0&&this.emit("readable"),r&&n(r),this[SC]):(this[OC]!==0&&this.emit("readable"),r&&n(r),this[SC])}read(e){if(this[rE])return null;if(this[TQ]=!1,this[OC]===0||e===0||e&&e>this[OC])return this[koe](),null;this[HS]&&(e=null),this[BC].length>1&&!this[HS]&&(this[BC]=[this[T6]?this[BC].join(""):Buffer.concat(this[BC],this[OC])]);let t=this[Yoa](e||null,this[BC][0]);return this[koe](),t}[Yoa](e,t){if(this[HS])this[Ifr]();else{let r=t;e===r.length||e===null?this[Ifr]():typeof r=="string"?(this[BC][0]=r.slice(e),t=r.slice(0,e),this[OC]-=e):(this[BC][0]=r.subarray(e),t=r.subarray(0,e),this[OC]-=e)}return this.emit("data",t),!this[BC].length&&!this[Foe]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t="utf8"),e!==void 0&&this.write(e,t),r&&this.once("end",r),this[Foe]=!0,this.writable=!1,(this[SC]||!this[gvt])&&this[koe](),this}[lVe](){this[rE]||(!this[DOe]&&!this[OP].length&&(this[TQ]=!0),this[gvt]=!1,this[SC]=!0,this.emit("resume"),this[BC].length?this[vfr]():this[Foe]?this[koe]():this.emit("drain"))}resume(){return this[lVe]()}pause(){this[SC]=!1,this[gvt]=!0,this[TQ]=!1}get destroyed(){return this[rE]}get flowing(){return this[SC]}get paused(){return this[gvt]}[v0i](e){this[HS]?this[OC]+=1:this[OC]+=e.length,this[BC].push(e)}[Ifr](){return this[HS]?this[OC]-=1:this[OC]-=this[BC][0].length,this[BC].shift()}[vfr](e=!1){do;while(this[Xoa](this[Ifr]())&&this[BC].length);!e&&!this[BC].length&&!this[Foe]&&this.emit("drain")}[Xoa](e){return this.emit("data",e),this[SC]}pipe(e,t){if(this[rE])return e;this[TQ]=!1;let r=this[nme];return t=t||{},e===Joa.stdout||e===Joa.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this[OP].push(t.proxyErrors?new pNp(this,e,t):new Bsa(this,e,t)),this[DH]?yvt(()=>this[lVe]()):this[lVe]()),e}unpipe(e){let t=this[OP].find(r=>r.dest===e);t&&(this[OP].length===1?(this[SC]&&this[DOe]===0&&(this[SC]=!1),this[OP]=[]):this[OP].splice(this[OP].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let r=super.on(e,t);if(e==="data")this[TQ]=!1,this[DOe]++,!this[OP].length&&!this[SC]&&this[lVe]();else if(e==="readable"&&this[OC]!==0)super.emit("readable");else if(uNp(e)&&this[nme])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[hvt]){let n=t;this[DH]?yvt(()=>n.call(this,this[hvt])):n.call(this,this[hvt])}return r}removeListener(e,t){return this.off(e,t)}off(e,t){let r=super.off(e,t);return e==="data"&&(this[DOe]=this.listeners("data").length,this[DOe]===0&&!this[TQ]&&!this[OP].length&&(this[SC]=!1)),r}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[DOe]=0,!this[TQ]&&!this[OP].length&&(this[SC]=!1)),t}get emittedEnd(){return this[nme]}[koe](){!this[bfr]&&!this[nme]&&!this[rE]&&this[BC].length===0&&this[Foe]&&(this[bfr]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Efr]&&this.emit("close"),this[bfr]=!1)}emit(e,...t){let r=t[0];if(e!=="error"&&e!=="close"&&e!==rE&&this[rE])return!1;if(e==="data")return!this[HS]&&!r?!1:this[DH]?(yvt(()=>this[w0i](r)),!0):this[w0i](r);if(e==="end")return this[Zoa]();if(e==="close"){if(this[Efr]=!0,!this[nme]&&!this[rE])return!1;let i=super.emit("close");return this.removeAllListeners("close"),i}else if(e==="error"){this[hvt]=r,super.emit(I0i,r);let i=!this[Avt]||this.listeners("error").length?super.emit("error",r):!1;return this[koe](),i}else if(e==="resume"){let i=super.emit("resume");return this[koe](),i}else if(e==="finish"||e==="prefinish"){let i=super.emit(e);return this.removeAllListeners(e),i}let n=super.emit(e,...t);return this[koe](),n}[w0i](e){for(let r of this[OP])r.dest.write(e)===!1&&this.pause();let t=this[TQ]?!1:super.emit("data",e);return this[koe](),t}[Zoa](){return this[nme]?!1:(this[nme]=!0,this.readable=!1,this[DH]?(yvt(()=>this[C0i]()),!0):this[C0i]())}[C0i](){if(this[sVe]){let t=this[sVe].end();if(t){for(let r of this[OP])r.dest.write(t);this[TQ]||super.emit("data",t)}}for(let t of this[OP])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[HS]||(e.dataLength=0);let t=this.promise();return this.on("data",r=>{e.push(r),this[HS]||(e.dataLength+=r.length)}),await t,e}async concat(){if(this[HS])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[T6]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(rE,()=>t(new Error("stream destroyed"))),this.on("error",r=>t(r)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[TQ]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Foe])return t();let n,i,o=c=>{this.off("data",s),this.off("end",a),this.off(rE,u),t(),i(c)},s=c=>{this.off("error",o),this.off("end",a),this.off(rE,u),this.pause(),n({value:c,done:!!this[Foe]})},a=()=>{this.off("error",o),this.off("data",s),this.off(rE,u),t(),n({done:!0,value:void 0})},u=()=>o(new Error("stream destroyed"));return new Promise((c,l)=>{i=l,n=c,this.once(rE,u),this.once("error",o),this.once("end",a),this.once("data",s)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[TQ]=!1;let e=!1,t=()=>(this.pause(),this.off(I0i,t),this.off(rE,t),this.off("end",t),e=!0,{done:!0,value:void 0}),r=()=>{if(e)return t();let n=this.read();return n===null?t():{done:!1,value:n}};return this.once("end",t),this.once(I0i,t),this.once(rE,t),{next:r,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[rE])return e?this.emit("error",e):this.emit(rE),this;this[rE]=!0,this[TQ]=!0,this[BC].length=0,this[OC]=0;let t=this;return typeof t.close=="function"&&!this[Efr]&&t.close(),e?this.emit("error",e):this.emit(rE),this}static get isStream(){return iNp}},mNp=PP.default.writev,dme=Symbol("_autoClose"),Q6=Symbol("_close"),bvt=Symbol("_ended"),Am=Symbol("_fd"),_0i=Symbol("_finished"),Moe=Symbol("_flags"),S0i=Symbol("_flush"),H0i=Symbol("_handleChunk"),K0i=Symbol("_makeBuf"),Ovt=Symbol("_mode"),Cfr=Symbol("_needDrain"),mVe=Symbol("_onerror"),gVe=Symbol("_onopen"),B0i=Symbol("_onread"),pVe=Symbol("_onwrite"),mme=Symbol("_open"),k6=Symbol("_path"),ame=Symbol("_pos"),RH=Symbol("_queue"),fVe=Symbol("_read"),O0i=Symbol("_readSize"),joe=Symbol("_reading"),Evt=Symbol("_remain"),P0i=Symbol("_size"),Rfr=Symbol("_write"),ROe=Symbol("_writing"),Ffr=Symbol("_defaultFlag"),VOe=Symbol("_errored"),AEi=class extends WOe{[VOe]=!1;[Am];[k6];[O0i];[joe]=!1;[P0i];[Evt];[dme];constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[VOe]=!1,this[Am]=typeof t.fd=="number"?t.fd:void 0,this[k6]=e,this[O0i]=t.readSize||16*1024*1024,this[joe]=!1,this[P0i]=typeof t.size=="number"?t.size:1/0,this[Evt]=this[P0i],this[dme]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[Am]=="number"?this[fVe]():this[mme]()}get fd(){return this[Am]}get path(){return this[k6]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[mme](){PP.default.open(this[k6],"r",(e,t)=>this[gVe](e,t))}[gVe](e,t){e?this[mVe](e):(this[Am]=t,this.emit("open",t),this[fVe]())}[K0i](){return Buffer.allocUnsafe(Math.min(this[O0i],this[Evt]))}[fVe](){if(!this[joe]){this[joe]=!0;let e=this[K0i]();if(e.length===0)return process.nextTick(()=>this[B0i](null,0,e));PP.default.read(this[Am],e,0,e.length,null,(t,r,n)=>this[B0i](t,r,n))}}[B0i](e,t,r){this[joe]=!1,e?this[mVe](e):this[H0i](t,r)&&this[fVe]()}[Q6](){if(this[dme]&&typeof this[Am]=="number"){let e=this[Am];this[Am]=void 0,PP.default.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[mVe](e){this[joe]=!0,this[Q6](),this.emit("error",e)}[H0i](e,t){let r=!1;return this[Evt]-=e,e>0&&(r=super.write(e<t.length?t.subarray(0,e):t)),(e===0||this[Evt]<=0)&&(r=!1,this[Q6](),super.end()),r}emit(e,...t){switch(e){case"prefinish":case"finish":return!1;case"drain":return typeof this[Am]=="number"&&this[fVe](),!1;case"error":return this[VOe]?!1:(this[VOe]=!0,super.emit(e,...t));default:return super.emit(e,...t)}}},hNp=class extends AEi{[mme](){let e=!0;try{this[gVe](null,PP.default.openSync(this[k6],"r")),e=!1}finally{e&&this[Q6]()}}[fVe](){let e=!0;try{if(!this[joe]){this[joe]=!0;do{let t=this[K0i](),r=t.length===0?0:PP.default.readSync(this[Am],t,0,t.length,null);if(!this[H0i](r,t))break}while(!0);this[joe]=!1}e=!1}finally{e&&this[Q6]()}}[Q6](){if(this[dme]&&typeof this[Am]=="number"){let e=this[Am];this[Am]=void 0,PP.default.closeSync(e),this.emit("close")}}},Kfr=class extends _sa.default{readable=!1;writable=!0;[VOe]=!1;[ROe]=!1;[bvt]=!1;[RH]=[];[Cfr]=!1;[k6];[Ovt];[dme];[Am];[Ffr];[Moe];[_0i]=!1;[ame];constructor(e,t){t=t||{},super(t),this[k6]=e,this[Am]=typeof t.fd=="number"?t.fd:void 0,this[Ovt]=t.mode===void 0?438:t.mode,this[ame]=typeof t.start=="number"?t.start:void 0,this[dme]=typeof t.autoClose=="boolean"?t.autoClose:!0;let r=this[ame]!==void 0?"r+":"w";this[Ffr]=t.flags===void 0,this[Moe]=t.flags===void 0?r:t.flags,this[Am]===void 0&&this[mme]()}emit(e,...t){if(e==="error"){if(this[VOe])return!1;this[VOe]=!0}return super.emit(e,...t)}get fd(){return this[Am]}get path(){return this[k6]}[mVe](e){this[Q6](),this[ROe]=!0,this.emit("error",e)}[mme](){PP.default.open(this[k6],this[Moe],this[Ovt],(e,t)=>this[gVe](e,t))}[gVe](e,t){this[Ffr]&&this[Moe]==="r+"&&e&&e.code==="ENOENT"?(this[Moe]="w",this[mme]()):e?this[mVe](e):(this[Am]=t,this.emit("open",t),this[ROe]||this[S0i]())}end(e,t){return e&&this.write(e,t),this[bvt]=!0,!this[ROe]&&!this[RH].length&&typeof this[Am]=="number"&&this[pVe](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[bvt]?(this.emit("error",new Error("write() after end()")),!1):this[Am]===void 0||this[ROe]||this[RH].length?(this[RH].push(e),this[Cfr]=!0,!1):(this[ROe]=!0,this[Rfr](e),!0)}[Rfr](e){PP.default.write(this[Am],e,0,e.length,this[ame],(t,r)=>this[pVe](t,r))}[pVe](e,t){e?this[mVe](e):(this[ame]!==void 0&&typeof t=="number"&&(this[ame]+=t),this[RH].length?this[S0i]():(this[ROe]=!1,this[bvt]&&!this[_0i]?(this[_0i]=!0,this[Q6](),this.emit("finish")):this[Cfr]&&(this[Cfr]=!1,this.emit("drain"))))}[S0i](){if(this[RH].length===0)this[bvt]&&this[pVe](null,0);else if(this[RH].length===1)this[Rfr](this[RH].pop());else{let e=this[RH];this[RH]=[],mNp(this[Am],e,this[ame],(t,r)=>this[pVe](t,r))}}[Q6](){if(this[dme]&&typeof this[Am]=="number"){let e=this[Am];this[Am]=void 0,PP.default.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},Osa=class extends Kfr{[mme](){let e;if(this[Ffr]&&this[Moe]==="r+")try{e=PP.default.openSync(this[k6],this[Moe],this[Ovt])}catch(t){if(t?.code==="ENOENT")return this[Moe]="w",this[mme]();throw t}else e=PP.default.openSync(this[k6],this[Moe],this[Ovt]);this[gVe](null,e)}[Q6](){if(this[dme]&&typeof this[Am]=="number"){let e=this[Am];this[Am]=void 0,PP.default.closeSync(e),this.emit("close")}}[Rfr](e){let t=!0;try{this[pVe](null,PP.default.writeSync(this[Am],e,0,e.length,this[ame])),t=!1}finally{if(t)try{this[Q6]()}catch{}}}},gNp=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),ANp=e=>!!e.sync&&!!e.file,yNp=e=>!e.sync&&!!e.file,bNp=e=>!!e.sync&&!e.file,ENp=e=>!e.sync&&!e.file,vNp=e=>!!e.file,INp=e=>gNp.get(e)||e,bEi=(e={})=>{if(!e)return{};let t={};for(let[r,n]of Object.entries(e)){let i=INp(r);t[i]=n}return t.chmod===void 0&&t.noChmod===!1&&(t.chmod=!0),delete t.noChmod,t},Mvt=(e,t,r,n,i)=>Object.assign((o=[],s,a)=>{Array.isArray(o)&&(s=o,o={}),typeof s=="function"&&(a=s,s=void 0),s?s=Array.from(s):s=[];let u=bEi(o);if(i?.(u,s),ANp(u)){if(typeof a=="function")throw new TypeError("callback not supported for sync tar functions");return e(u,s)}else if(yNp(u)){let c=t(u,s),l=a||void 0;return l?c.then(()=>l(),l):c}else if(bNp(u)){if(typeof a=="function")throw new TypeError("callback not supported for sync tar functions");return r(u,s)}else if(ENp(u)){if(typeof a=="function")throw new TypeError("callback only supported with file option");return n(u,s)}else throw new Error("impossible options??")},{syncFile:e,asyncFile:t,syncNoFile:r,asyncNoFile:n,validate:i}),wNp=Tsa.default.constants||{ZLIB_VERNUM:4736},QH=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},wNp)),CNp=pme.Buffer.concat,tsa=Object.getOwnPropertyDescriptor(pme.Buffer,"concat"),xNp=e=>e,T0i=tsa?.writable===!0||tsa?.set!==void 0?e=>{pme.Buffer.concat=e?xNp:CNp}:e=>{},qOe=Symbol("_superWrite"),xfr=class extends Error{code;errno;constructor(e,t){super("zlib: "+e.message,{cause:e}),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,t??this.constructor)}get name(){return"ZlibError"}},D0i=Symbol("flushFlag"),EEi=class extends WOe{#e=!1;#t=!1;#r;#n;#i;#o;#s;get sawError(){return this.#e}get handle(){return this.#o}get flushFlag(){return this.#r}constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(e),this.#r=e.flush??0,this.#n=e.finishFlush??0,this.#i=e.fullFlushFlag??0,typeof esa[t]!="function")throw new TypeError("Compression method not supported: "+t);try{this.#o=new esa[t](e)}catch(r){throw new xfr(r,this.constructor)}this.#s=r=>{this.#e||(this.#e=!0,this.close(),this.emit("error",r))},this.#o?.on("error",r=>this.#s(new xfr(r))),this.once("end",()=>this.close)}close(){this.#o&&(this.#o.close(),this.#o=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,qfr.default)(this.#o,"zlib binding closed"),this.#o.reset?.()}flush(e){this.ended||(typeof e!="number"&&(e=this.#i),this.write(Object.assign(pme.Buffer.alloc(0),{[D0i]:e})))}end(e,t,r){return typeof e=="function"&&(r=e,t=void 0,e=void 0),typeof t=="function"&&(r=t,t=void 0),e&&(t?this.write(e,t):this.write(e)),this.flush(this.#n),this.#t=!0,super.end(r)}get ended(){return this.#t}[qOe](e){return super.write(e)}write(e,t,r){if(typeof t=="function"&&(r=t,t="utf8"),typeof e=="string"&&(e=pme.Buffer.from(e,t)),this.#e)return;(0,qfr.default)(this.#o,"zlib binding closed");let n=this.#o._handle,i=n.close;n.close=()=>{};let o=this.#o.close;this.#o.close=()=>{},T0i(!0);let s;try{let u=typeof e[D0i]=="number"?e[D0i]:this.#r;s=this.#o._processChunk(e,u),T0i(!1)}catch(u){T0i(!1),this.#s(new xfr(u,this.write))}finally{this.#o&&(this.#o._handle=n,n.close=i,this.#o.close=o,this.#o.removeAllListeners("error"))}this.#o&&this.#o.on("error",u=>this.#s(new xfr(u,this.write)));let a;if(s)if(Array.isArray(s)&&s.length>0){let u=s[0];a=this[qOe](pme.Buffer.from(u));for(let c=1;c<s.length;c++)a=this[qOe](s[c])}else a=this[qOe](pme.Buffer.from(s));return r&&r(),a}},Dsa=class extends EEi{#e;#t;constructor(e,t){e=e||{},e.flush=e.flush||QH.Z_NO_FLUSH,e.finishFlush=e.finishFlush||QH.Z_FINISH,e.fullFlushFlag=QH.Z_FULL_FLUSH,super(e,t),this.#e=e.level,this.#t=e.strategy}params(e,t){if(!this.sawError){if(!this.handle)throw new Error("cannot switch params when binding is closed");if(!this.handle.params)throw new Error("not supported in this implementation");if(this.#e!==e||this.#t!==t){this.flush(QH.Z_SYNC_FLUSH),(0,qfr.default)(this.handle,"zlib binding closed");let r=this.handle.flush;this.handle.flush=(n,i)=>{typeof n=="function"&&(i=n,n=this.flushFlag),this.flush(n),i?.()};try{this.handle.params(e,t)}finally{this.handle.flush=r}this.handle&&(this.#e=e,this.#t=t)}}}},_Np=class extends Dsa{#e;constructor(e){super(e,"Gzip"),this.#e=e&&!!e.portable}[qOe](e){return this.#e?(this.#e=!1,e[9]=255,super[qOe](e)):super[qOe](e)}},SNp=class extends Dsa{constructor(e){super(e,"Unzip")}},Rsa=class extends EEi{constructor(e,t){e=e||{},e.flush=e.flush||QH.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||QH.BROTLI_OPERATION_FINISH,e.fullFlushFlag=QH.BROTLI_OPERATION_FLUSH,super(e,t)}},BNp=class extends Rsa{constructor(e){super(e,"BrotliCompress")}},ONp=class extends Rsa{constructor(e){super(e,"BrotliDecompress")}},Fsa=class extends EEi{constructor(e,t){e=e||{},e.flush=e.flush||QH.ZSTD_e_continue,e.finishFlush=e.finishFlush||QH.ZSTD_e_end,e.fullFlushFlag=QH.ZSTD_e_flush,super(e,t)}},PNp=class extends Fsa{constructor(e){super(e,"ZstdCompress")}},TNp=class extends Fsa{constructor(e){super(e,"ZstdDecompress")}},DNp=(e,t)=>{if(Number.isSafeInteger(e))e<0?FNp(e,t):RNp(e,t);else throw Error("cannot encode number outside of javascript safe integer range");return t},RNp=(e,t)=>{t[0]=128;for(var r=t.length;r>1;r--)t[r-1]=e&255,e=Math.floor(e/256)},FNp=(e,t)=>{t[0]=255;var r=!1;e=e*-1;for(var n=t.length;n>1;n--){var i=e&255;e=Math.floor(e/256),r?t[n-1]=ksa(i):i===0?t[n-1]=0:(r=!0,t[n-1]=Qsa(i))}},kNp=e=>{let t=e[0],r=t===128?NNp(e.subarray(1,e.length)):t===255?QNp(e):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},QNp=e=>{for(var t=e.length,r=0,n=!1,i=t-1;i>-1;i--){var o=Number(e[i]),s;n?s=ksa(o):o===0?s=o:(n=!0,s=Qsa(o)),s!==0&&(r-=s*Math.pow(256,t-i-1))}return r},NNp=e=>{for(var t=e.length,r=0,n=t-1;n>-1;n--){var i=Number(e[n]);i!==0&&(r+=i*Math.pow(256,t-n-1))}return r},ksa=e=>(255^e)&255,Qsa=e=>(255^e)+1&255,jNp={};nNp(jNp,{code:()=>vEi,isCode:()=>kfr,isName:()=>MNp,name:()=>Yfr});var kfr=e=>Yfr.has(e),MNp=e=>vEi.has(e),Yfr=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),vEi=new Map(Array.from(Yfr).map(e=>[e[1],e[0]])),GOe=class{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#e="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(e,t=0,r,n){Buffer.isBuffer(e)?this.decode(e,t||0,r,n):e&&this.#t(e)}decode(e,t,r,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");this.path=r?.path??FOe(e,t,100),this.mode=r?.mode??n?.mode??ume(e,t+100,8),this.uid=r?.uid??n?.uid??ume(e,t+108,8),this.gid=r?.gid??n?.gid??ume(e,t+116,8),this.size=r?.size??n?.size??ume(e,t+124,12),this.mtime=r?.mtime??n?.mtime??R0i(e,t+136,12),this.cksum=ume(e,t+148,12),n&&this.#t(n,!0),r&&this.#t(r);let i=FOe(e,t+156,1);if(kfr(i)&&(this.#e=i||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=FOe(e,t+157,100),e.subarray(t+257,t+265).toString()==="ustar\x0000")if(this.uname=r?.uname??n?.uname??FOe(e,t+265,32),this.gname=r?.gname??n?.gname??FOe(e,t+297,32),this.devmaj=r?.devmaj??n?.devmaj??ume(e,t+329,8)??0,this.devmin=r?.devmin??n?.devmin??ume(e,t+337,8)??0,e[t+475]!==0){let s=FOe(e,t+345,155);this.path=s+"/"+this.path}else{let s=FOe(e,t+345,130);s&&(this.path=s+"/"+this.path),this.atime=r?.atime??n?.atime??R0i(e,t+476,12),this.ctime=r?.ctime??n?.ctime??R0i(e,t+488,12)}let o=256;for(let s=t;s<t+148;s++)o+=e[s];for(let s=t+156;s<t+512;s++)o+=e[s];this.cksumValid=o===this.cksum,this.cksum===void 0&&o===256&&(this.nullBlock=!0)}#t(e,t=!1){Object.assign(this,Object.fromEntries(Object.entries(e).filter(([r,n])=>!(n==null||r==="path"&&t||r==="linkpath"&&t||r==="global"))))}encode(e,t=0){if(e||(e=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(e.length>=t+512))throw new Error("need 512 bytes for header");let r=this.ctime||this.atime?130:155,n=LNp(this.path||"",r),i=n[0],o=n[1];this.needPax=!!n[2],this.needPax=kOe(e,t,100,i)||this.needPax,this.needPax=cme(e,t+100,8,this.mode)||this.needPax,this.needPax=cme(e,t+108,8,this.uid)||this.needPax,this.needPax=cme(e,t+116,8,this.gid)||this.needPax,this.needPax=cme(e,t+124,12,this.size)||this.needPax,this.needPax=F0i(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this.#e.charCodeAt(0),this.needPax=kOe(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=kOe(e,t+265,32,this.uname)||this.needPax,this.needPax=kOe(e,t+297,32,this.gname)||this.needPax,this.needPax=cme(e,t+329,8,this.devmaj)||this.needPax,this.needPax=cme(e,t+337,8,this.devmin)||this.needPax,this.needPax=kOe(e,t+345,r,o)||this.needPax,e[t+475]!==0?this.needPax=kOe(e,t+345,155,o)||this.needPax:(this.needPax=kOe(e,t+345,130,o)||this.needPax,this.needPax=F0i(e,t+476,12,this.atime)||this.needPax,this.needPax=F0i(e,t+488,12,this.ctime)||this.needPax);let s=256;for(let a=t;a<t+148;a++)s+=e[a];for(let a=t+156;a<t+512;a++)s+=e[a];return this.cksum=s,cme(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#e==="Unsupported"?this.#e:Yfr.get(this.#e)}get typeKey(){return this.#e}set type(e){let t=String(vEi.get(e));if(kfr(t)||t==="Unsupported")this.#e=t;else if(kfr(e))this.#e=e;else throw new TypeError("invalid entry type: "+e)}},LNp=(e,t)=>{let r=e,n="",i,o=UOe.posix.parse(e).root||".";if(Buffer.byteLength(r)<100)i=[r,n,!1];else{n=UOe.posix.dirname(r),r=UOe.posix.basename(r);do Buffer.byteLength(r)<=100&&Buffer.byteLength(n)<=t?i=[r,n,!1]:Buffer.byteLength(r)>100&&Buffer.byteLength(n)<=t?i=[r.slice(0,99),n,!0]:(r=UOe.posix.join(UOe.posix.basename(n),r),n=UOe.posix.dirname(n));while(n!==o&&i===void 0);i||(i=[e.slice(0,99),"",!0])}return i},FOe=(e,t,r)=>e.subarray(t,t+r).toString("utf8").replace(/\0.*/,""),R0i=(e,t,r)=>UNp(ume(e,t,r)),UNp=e=>e===void 0?void 0:new Date(e*1e3),ume=(e,t,r)=>Number(e[t])&128?kNp(e.subarray(t,t+r)):VNp(e,t,r),zNp=e=>isNaN(e)?void 0:e,VNp=(e,t,r)=>zNp(parseInt(e.subarray(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),qNp={12:8589934591,8:2097151},cme=(e,t,r,n)=>n===void 0?!1:n>qNp[r]||n<0?(DNp(n,e.subarray(t,t+r)),!0):(GNp(e,t,r,n),!1),GNp=(e,t,r,n)=>e.write(WNp(n,r),t,r,"ascii"),WNp=(e,t)=>$Np(Math.floor(e).toString(8),t),$Np=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",F0i=(e,t,r,n)=>n===void 0?!1:cme(e,t,r,n.getTime()/1e3),HNp=new Array(156).join("\0"),kOe=(e,t,r,n)=>n===void 0?!1:(e.write(n+HNp,t,r,"utf8"),n.length!==Buffer.byteLength(n)||n.length>r),Gfr=class jsa{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(t,r=!1){this.atime=t.atime,this.charset=t.charset,this.comment=t.comment,this.ctime=t.ctime,this.dev=t.dev,this.gid=t.gid,this.global=r,this.gname=t.gname,this.ino=t.ino,this.linkpath=t.linkpath,this.mtime=t.mtime,this.nlink=t.nlink,this.path=t.path,this.size=t.size,this.uid=t.uid,this.uname=t.uname}encode(){let t=this.encodeBody();if(t==="")return Buffer.allocUnsafe(0);let r=Buffer.byteLength(t),n=512*Math.ceil(1+r/512),i=Buffer.allocUnsafe(n);for(let o=0;o<512;o++)i[o]=0;new GOe({path:("PaxHeader/"+(0,Nsa.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:r,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(i),i.write(t,512,r,"utf8");for(let o=r+512;o<i.length;o++)i[o]=0;return i}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(t){if(this[t]===void 0)return"";let r=this[t],n=r instanceof Date?r.getTime()/1e3:r,i=" "+(t==="dev"||t==="ino"||t==="nlink"?"SCHILY.":"")+t+"="+n+`
|
|
1544
1544
|
`,o=Buffer.byteLength(i),s=Math.floor(Math.log(o)/Math.log(10))+1;return o+s>=Math.pow(10,s)&&(s+=1),s+o+i}static parse(t,r,n=!1){return new jsa(KNp(JNp(t),r),n)}},KNp=(e,t)=>t?Object.assign({},t,e):e,JNp=e=>e.replace(/\n$/,"").split(`
|
|
1545
|
-
`).reduce(YNp,Object.create(null)),YNp=(e,t)=>{let r=parseInt(t,10);if(r!==Buffer.byteLength(t)+1)return e;t=t.slice((r+" ").length);let n=t.split("="),i=n.shift();if(!i)return e;let o=i.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),s=n.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(Number(s)*1e3):/^[0-9]+$/.test(s)?+s:s,e},XNp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,ep=XNp!=="win32"?e=>e:e=>e&&e.replace(/\\/g,"/"),Msa=class extends WOe{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(e,t,r){switch(super({}),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.remain=e.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=e.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!e.path)throw new Error("no path provided for tar.ReadEntry");this.path=ep(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=this.remain,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath?ep(e.linkpath):void 0,this.uname=e.uname,this.gname=e.gname,t&&this.#e(t),r&&this.#e(r,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:r>=t?super.write(e):super.write(e.subarray(0,r))}#e(e,t=!1){e.path&&(e.path=ep(e.path)),e.linkpath&&(e.linkpath=ep(e.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(e).filter(([r,n])=>!(n==null||r==="path"&&t))))}},Xfr=(e,t,r,n={})=>{e.file&&(n.file=e.file),e.cwd&&(n.cwd=e.cwd),n.code=r instanceof Error&&r.code||t,n.tarCode=t,!e.strict&&n.recoverable!==!1?(r instanceof Error&&(n=Object.assign(r,n),r=r.message),e.emit("warn",t,r,n)):r instanceof Error?e.emit("error",Object.assign(r,n)):e.emit("error",Object.assign(new Error(`${t}: ${r}`),n))},ZNp=1024*1024,J0i=Buffer.from([31,139]),Y0i=Buffer.from([40,181,47,253]),ejp=Math.max(J0i.length,Y0i.length),V4=Symbol("state"),QOe=Symbol("writeEntry"),Qoe=Symbol("readEntry"),k0i=Symbol("nextEntry"),rsa=Symbol("processEntry"),FH=Symbol("extendedHeader"),vvt=Symbol("globalExtendedHeader"),ime=Symbol("meta"),nsa=Symbol("emitMeta"),Rg=Symbol("buffer"),Noe=Symbol("queue"),ome=Symbol("ended"),Q0i=Symbol("emittedEnd"),NOe=Symbol("emit"),Pv=Symbol("unzip"),_fr=Symbol("consumeChunk"),Sfr=Symbol("consumeChunkSub"),N0i=Symbol("consumeBody"),isa=Symbol("consumeMeta"),osa=Symbol("consumeHeader"),Ivt=Symbol("consuming"),j0i=Symbol("bufferConcat"),Bfr=Symbol("maybeEnd"),aVe=Symbol("writing"),sme=Symbol("aborted"),Ofr=Symbol("onDone"),jOe=Symbol("sawValidEntry"),Pfr=Symbol("sawNullBlock"),Tfr=Symbol("sawEOF"),ssa=Symbol("closeStream"),tjp=()=>!0,Qvt=class extends Psa.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[Noe]=[];[Rg];[Qoe];[QOe];[V4]="begin";[ime]="";[FH];[vvt];[ome]=!1;[Pv];[sme]=!1;[jOe];[Pfr]=!1;[Tfr]=!1;[aVe]=!1;[Ivt]=!1;[Q0i]=!1;constructor(e={}){super(),this.file=e.file||"",this.on(Ofr,()=>{(this[V4]==="begin"||this[jOe]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Ofr,e.ondone):this.on(Ofr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||ZNp,this.filter=typeof e.filter=="function"?e.filter:tjp;let t=e.file&&(e.file.endsWith(".tar.br")||e.file.endsWith(".tbr"));this.brotli=!(e.gzip||e.zstd)&&e.brotli!==void 0?e.brotli:t?void 0:!1;let r=e.file&&(e.file.endsWith(".tar.zst")||e.file.endsWith(".tzst"));this.zstd=!(e.gzip||e.brotli)&&e.zstd!==void 0?e.zstd:r?!0:void 0,this.on("end",()=>this[ssa]()),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onReadEntry=="function"&&this.on("entry",e.onReadEntry)}warn(e,t,r={}){Xfr(this,e,t,r)}[osa](e,t){this[jOe]===void 0&&(this[jOe]=!1);let r;try{r=new GOe(e,t,this[FH],this[vvt])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(r.nullBlock)this[Pfr]?(this[Tfr]=!0,this[V4]==="begin"&&(this[V4]="header"),this[NOe]("eof")):(this[Pfr]=!0,this[NOe]("nullBlock"));else if(this[Pfr]=!1,!r.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:r});else if(!r.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:r});else{let n=r.type;if(/^(Symbolic)?Link$/.test(n)&&!r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:r});else if(!/^(Symbolic)?Link$/.test(n)&&!/^(Global)?ExtendedHeader$/.test(n)&&r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:r});else{let i=this[QOe]=new Msa(r,this[FH],this[vvt]);if(!this[jOe])if(i.remain){let o=()=>{i.invalid||(this[jOe]=!0)};i.on("end",o)}else this[jOe]=!0;i.meta?i.size>this.maxMetaEntrySize?(i.ignore=!0,this[NOe]("ignoredEntry",i),this[V4]="ignore",i.resume()):i.size>0&&(this[ime]="",i.on("data",o=>this[ime]+=o),this[V4]="meta"):(this[FH]=void 0,i.ignore=i.ignore||!this.filter(i.path,i),i.ignore?(this[NOe]("ignoredEntry",i),this[V4]=i.remain?"ignore":"header",i.resume()):(i.remain?this[V4]="body":(this[V4]="header",i.end()),this[Qoe]?this[Noe].push(i):(this[Noe].push(i),this[k0i]())))}}}[ssa](){queueMicrotask(()=>this.emit("close"))}[rsa](e){let t=!0;if(!e)this[Qoe]=void 0,t=!1;else if(Array.isArray(e)){let[r,...n]=e;this.emit(r,...n)}else this[Qoe]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",()=>this[k0i]()),t=!1);return t}[k0i](){do;while(this[rsa](this[Noe].shift()));if(!this[Noe].length){let e=this[Qoe];!e||e.flowing||e.size===e.remain?this[aVe]||this.emit("drain"):e.once("drain",()=>this.emit("drain"))}}[N0i](e,t){let r=this[QOe];if(!r)throw new Error("attempt to consume body without entry??");let n=r.blockRemain??0,i=n>=e.length&&t===0?e:e.subarray(t,t+n);return r.write(i),r.blockRemain||(this[V4]="header",this[QOe]=void 0,r.end()),i.length}[isa](e,t){let r=this[QOe],n=this[N0i](e,t);return!this[QOe]&&r&&this[nsa](r),n}[NOe](e,t,r){!this[Noe].length&&!this[Qoe]?this.emit(e,t,r):this[Noe].push([e,t,r])}[nsa](e){switch(this[NOe]("meta",this[ime]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[FH]=Gfr.parse(this[ime],this[FH],!1);break;case"GlobalExtendedHeader":this[vvt]=Gfr.parse(this[ime],this[vvt],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let t=this[FH]??Object.create(null);this[FH]=t,t.path=this[ime].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let t=this[FH]||Object.create(null);this[FH]=t,t.linkpath=this[ime].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+e.type)}}abort(e){this[sme]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this[sme])return r?.(),!1;if((this[Pv]===void 0||this.brotli===void 0&&this[Pv]===!1)&&e){if(this[Rg]&&(e=Buffer.concat([this[Rg],e]),this[Rg]=void 0),e.length<ejp)return this[Rg]=e,r?.(),!0;for(let s=0;this[Pv]===void 0&&s<J0i.length;s++)e[s]!==J0i[s]&&(this[Pv]=!1);let i=!1;if(this[Pv]===!1&&this.zstd!==!1){i=!0;for(let s=0;s<Y0i.length;s++)if(e[s]!==Y0i[s]){i=!1;break}}let o=this.brotli===void 0&&!i;if(this[Pv]===!1&&o)if(e.length<512)if(this[ome])this.brotli=!0;else return this[Rg]=e,r?.(),!0;else try{new GOe(e.subarray(0,512)),this.brotli=!1}catch{this.brotli=!0}if(this[Pv]===void 0||this[Pv]===!1&&(this.brotli||i)){let s=this[ome];this[ome]=!1,this[Pv]=this[Pv]===void 0?new SNp({}):i?new TNp({}):new ONp({}),this[Pv].on("data",u=>this[_fr](u)),this[Pv].on("error",u=>this.abort(u)),this[Pv].on("end",()=>{this[ome]=!0,this[_fr]()}),this[aVe]=!0;let a=!!this[Pv][s?"end":"write"](e);return this[aVe]=!1,r?.(),a}}this[aVe]=!0,this[Pv]?this[Pv].write(e):this[_fr](e),this[aVe]=!1;let n=this[Noe].length?!1:this[Qoe]?this[Qoe].flowing:!0;return!n&&!this[Noe].length&&this[Qoe]?.once("drain",()=>this.emit("drain")),r?.(),n}[j0i](e){e&&!this[sme]&&(this[Rg]=this[Rg]?Buffer.concat([this[Rg],e]):e)}[Bfr](){if(this[ome]&&!this[Q0i]&&!this[sme]&&!this[Ivt]){this[Q0i]=!0;let e=this[QOe];if(e&&e.blockRemain){let t=this[Rg]?this[Rg].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Rg]&&e.write(this[Rg]),e.end()}this[NOe](Ofr)}}[_fr](e){if(this[Ivt]&&e)this[j0i](e);else if(!e&&!this[Rg])this[Bfr]();else if(e){if(this[Ivt]=!0,this[Rg]){this[j0i](e);let t=this[Rg];this[Rg]=void 0,this[Sfr](t)}else this[Sfr](e);for(;this[Rg]&&this[Rg]?.length>=512&&!this[sme]&&!this[Tfr];){let t=this[Rg];this[Rg]=void 0,this[Sfr](t)}this[Ivt]=!1}(!this[Rg]||this[ome])&&this[Bfr]()}[Sfr](e){let t=0,r=e.length;for(;t+512<=r&&!this[sme]&&!this[Tfr];)switch(this[V4]){case"begin":case"header":this[osa](e,t),t+=512;break;case"ignore":case"body":t+=this[N0i](e,t);break;case"meta":t+=this[isa](e,t);break;default:throw new Error("invalid state: "+this[V4])}t<r&&(this[Rg]?this[Rg]=Buffer.concat([e.subarray(t),this[Rg]]):this[Rg]=e.subarray(t))}end(e,t,r){return typeof e=="function"&&(r=e,t=void 0,e=void 0),typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,t)),r&&this.once("finish",r),this[sme]||(this[Pv]?(e&&this[Pv].write(e),this[Pv].end()):(this[ome]=!0,(this.brotli===void 0||this.zstd===void 0)&&(e=e||Buffer.alloc(0)),e&&this.write(e),this[Bfr]())),this}},Pvt=e=>{let t=e.length-1,r=-1;for(;t>-1&&e.charAt(t)==="/";)r=t,t--;return r===-1?e:e.slice(0,r)},rjp=e=>{let t=e.onReadEntry;e.onReadEntry=t?r=>{t(r),r.resume()}:r=>r.resume()},Lsa=(e,t)=>{let r=new Map(t.map(o=>[Pvt(o),!0])),n=e.filter,i=(o,s="")=>{let a=s||(0,Jfr.parse)(o).root||".",u;if(o===a)u=!1;else{let c=r.get(o);c!==void 0?u=c:u=i((0,Jfr.dirname)(o),a)}return r.set(o,u),u};e.filter=n?(o,s)=>n(o,s)&&i(Pvt(o)):o=>i(Pvt(o))},njp=e=>{let t=new Qvt(e),r=e.file,n;try{n=zOe.default.openSync(r,"r");let i=zOe.default.fstatSync(n),o=e.maxReadSize||16*1024*1024;if(i.size<o){let s=Buffer.allocUnsafe(i.size),a=zOe.default.readSync(n,s,0,i.size,0);t.end(a===s.byteLength?s:s.subarray(0,a))}else{let s=0,a=Buffer.allocUnsafe(o);for(;s<i.size;){let u=zOe.default.readSync(n,a,0,o,s);if(u===0)break;s+=u,t.write(a.subarray(0,u))}t.end()}}finally{if(typeof n=="number")try{zOe.default.closeSync(n)}catch{}}},ijp=(e,t)=>{let r=new Qvt(e),n=e.maxReadSize||16*1024*1024,i=e.file;return new Promise((o,s)=>{r.on("error",s),r.on("end",o),zOe.default.stat(i,(a,u)=>{if(a)s(a);else{let c=new AEi(i,{readSize:n,size:u.size});c.on("error",s),c.pipe(r)}})})},Zfr=Mvt(njp,ijp,e=>new Qvt(e),e=>new Qvt(e),(e,t)=>{t?.length&&Lsa(e,t),e.noResume||rjp(e)}),Usa=(e,t,r)=>(e&=4095,r&&(e=(e|384)&-19),t&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e),{isAbsolute:ojp,parse:asa}=zsa.win32,IEi=e=>{let t="",r=asa(e);for(;ojp(e)||r.root;){let n=e.charAt(0)==="/"&&e.slice(0,4)!=="//?/"?"/":r.root;e=e.slice(n.length),t+=n,r=asa(e)}return[t,e]},edr=["|","<",">","?",":"],wEi=edr.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),sjp=new Map(edr.map((e,t)=>[e,wEi[t]])),ajp=new Map(wEi.map((e,t)=>[e,edr[t]])),usa=e=>edr.reduce((t,r)=>t.split(r).join(sjp.get(r)),e),ujp=e=>wEi.reduce((t,r)=>t.split(r).join(ajp.get(r)),e),Vsa=(e,t)=>t?(e=ep(e).replace(/^\.(\/|$)/,""),Pvt(t)+"/"+e):ep(e),cjp=16*1024*1024,csa=Symbol("process"),lsa=Symbol("file"),psa=Symbol("directory"),Z0i=Symbol("symlink"),fsa=Symbol("hardlink"),wvt=Symbol("header"),Qfr=Symbol("read"),eEi=Symbol("lstat"),Nfr=Symbol("onlstat"),tEi=Symbol("onread"),rEi=Symbol("onreadlink"),nEi=Symbol("openfile"),iEi=Symbol("onopenfile"),lme=Symbol("close"),Wfr=Symbol("mode"),oEi=Symbol("awaitDrain"),M0i=Symbol("ondrain"),kH=Symbol("prefix"),qsa=class extends WOe{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(e,t={}){let r=bEi(t);super(),this.path=ep(e),this.portable=!!r.portable,this.maxReadSize=r.maxReadSize||cjp,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=ep(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime,this.prefix=r.prefix?ep(r.prefix):void 0,this.onWriteEntry=r.onWriteEntry,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let n=!1;if(!this.preservePaths){let[o,s]=IEi(this.path);o&&typeof s=="string"&&(this.path=s,n=o)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=ujp(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=ep(r.absolute||X0i.default.resolve(this.cwd,e)),this.path===""&&(this.path="./"),n&&this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:this,path:n+this.path});let i=this.statCache.get(this.absolute);i?this[Nfr](i):this[eEi]()}warn(e,t,r={}){return Xfr(this,e,t,r)}emit(e,...t){return e==="error"&&(this.#e=!0),super.emit(e,...t)}[eEi](){F6.default.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[Nfr](t)})}[Nfr](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=fjp(e),this.emit("stat",e),this[csa]()}[csa](){switch(this.type){case"File":return this[lsa]();case"Directory":return this[psa]();case"SymbolicLink":return this[Z0i]();default:return this.end()}}[Wfr](e){return Usa(e,this.type==="Directory",this.portable)}[kH](e){return Vsa(e,this.prefix)}[wvt](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new GOe({path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,mode:this[Wfr](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Gfr({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let e=this.header?.block;if(!e)throw new Error("failed to encode header");super.write(e)}[psa](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[wvt](),this.end()}[Z0i](){F6.default.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[rEi](t)})}[rEi](e){this.linkpath=ep(e),this[wvt](),this.end()}[fsa](e){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=ep(X0i.default.relative(this.cwd,e)),this.stat.size=0,this[wvt](),this.end()}[lsa](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let e=`${this.stat.dev}:${this.stat.ino}`,t=this.linkCache.get(e);if(t?.indexOf(this.cwd)===0)return this[fsa](t);this.linkCache.set(e,this.absolute)}if(this[wvt](),this.stat.size===0)return this.end();this[nEi]()}[nEi](){F6.default.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[iEi](t)})}[iEi](e){if(this.fd=e,this.#e)return this[lme]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Qfr]()}[Qfr](){let{fd:e,buf:t,offset:r,length:n,pos:i}=this;if(e===void 0||t===void 0)throw new Error("cannot read file without first opening");F6.default.read(e,t,r,n,i,(o,s)=>{if(o)return this[lme](()=>this.emit("error",o));this[tEi](s)})}[lme](e=()=>{}){this.fd!==void 0&&F6.default.close(this.fd,e)}[tEi](e){if(e<=0&&this.remain>0){let r=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[lme](()=>this.emit("error",r))}if(e>this.remain){let r=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[lme](()=>this.emit("error",r))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(e===this.remain)for(let r=e;r<this.length&&e<this.blockRemain;r++)this.buf[r+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+e);this.write(t)?this[M0i]():this[oEi](()=>this[M0i]())}[oEi](e){this.once("drain",e)}write(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this.blockRemain<e.length){let n=Object.assign(new Error("writing more data than expected"),{path:this.absolute});return this.emit("error",n)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e,null,r)}[M0i](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[lme](e=>e?this.emit("error",e):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Qfr]()}},ljp=class extends qsa{sync=!0;[eEi](){this[Nfr](F6.default.lstatSync(this.absolute))}[Z0i](){this[rEi](F6.default.readlinkSync(this.absolute))}[nEi](){this[iEi](F6.default.openSync(this.absolute,"r"))}[Qfr](){let e=!0;try{let{fd:t,buf:r,offset:n,length:i,pos:o}=this;if(t===void 0||r===void 0)throw new Error("fd and buf must be set in READ method");let s=F6.default.readSync(t,r,n,i,o);this[tEi](s),e=!1}finally{if(e)try{this[lme](()=>{})}catch{}}}[oEi](e){e()}[lme](e=()=>{}){this.fd!==void 0&&F6.default.closeSync(this.fd),e()}},pjp=class extends WOe{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(e,t,r={}){return Xfr(this,e,t,r)}constructor(e,t={}){let r=bEi(t);super(),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.onWriteEntry=r.onWriteEntry,this.readEntry=e;let{type:n}=e;if(n==="Unsupported")throw new Error("writing entry that should be ignored");this.type=n,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix,this.path=ep(e.path),this.mode=e.mode!==void 0?this[Wfr](e.mode):void 0,this.uid=this.portable?void 0:e.uid,this.gid=this.portable?void 0:e.gid,this.uname=this.portable?void 0:e.uname,this.gname=this.portable?void 0:e.gname,this.size=e.size,this.mtime=this.noMtime?void 0:r.mtime||e.mtime,this.atime=this.portable?void 0:e.atime,this.ctime=this.portable?void 0:e.ctime,this.linkpath=e.linkpath!==void 0?ep(e.linkpath):void 0,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths){let[s,a]=IEi(this.path);s&&typeof a=="string"&&(this.path=a,i=s)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.onWriteEntry?.(this),this.header=new GOe({path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new Gfr({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let o=this.header?.block;if(!o)throw new Error("failed to encode header");super.write(o),e.pipe(this)}[kH](e){return Vsa(e,this.prefix)}[Wfr](e){return Usa(e,this.type==="Directory",this.portable)}write(e,t,r){typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8"));let n=e.length;if(n>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=n,super.write(e,r)}end(e,t,r){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof e=="function"&&(r=e,t=void 0,e=void 0),typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,t??"utf8")),r&&this.once("finish",r),e?super.end(e,r):super.end(r),this}},fjp=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported",djp=class dVe{tail;head;length=0;static create(t=[]){return new dVe(t)}constructor(t=[]){for(let r of t)this.push(r)}*[Symbol.iterator](){for(let t=this.head;t;t=t.next)yield t.value}removeNode(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");let r=t.next,n=t.prev;return r&&(r.prev=n),n&&(n.next=r),t===this.head&&(this.head=r),t===this.tail&&(this.tail=n),this.length--,t.next=void 0,t.prev=void 0,t.list=void 0,r}unshiftNode(t){if(t===this.head)return;t.list&&t.list.removeNode(t);let r=this.head;t.list=this,t.next=r,r&&(r.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}pushNode(t){if(t===this.tail)return;t.list&&t.list.removeNode(t);let r=this.tail;t.list=this,t.prev=r,r&&(r.next=t),this.tail=t,this.head||(this.head=t),this.length++}push(...t){for(let r=0,n=t.length;r<n;r++)hjp(this,t[r]);return this.length}unshift(...t){for(var r=0,n=t.length;r<n;r++)gjp(this,t[r]);return this.length}pop(){if(!this.tail)return;let t=this.tail.value,r=this.tail;return this.tail=this.tail.prev,this.tail?this.tail.next=void 0:this.head=void 0,r.list=void 0,this.length--,t}shift(){if(!this.head)return;let t=this.head.value,r=this.head;return this.head=this.head.next,this.head?this.head.prev=void 0:this.tail=void 0,r.list=void 0,this.length--,t}forEach(t,r){r=r||this;for(let n=this.head,i=0;n;i++)t.call(r,n.value,i,this),n=n.next}forEachReverse(t,r){r=r||this;for(let n=this.tail,i=this.length-1;n;i--)t.call(r,n.value,i,this),n=n.prev}get(t){let r=0,n=this.head;for(;n&&r<t;r++)n=n.next;if(r===t&&n)return n.value}getReverse(t){let r=0,n=this.tail;for(;n&&r<t;r++)n=n.prev;if(r===t&&n)return n.value}map(t,r){r=r||this;let n=new dVe;for(let i=this.head;i;)n.push(t.call(r,i.value,this)),i=i.next;return n}mapReverse(t,r){r=r||this;var n=new dVe;for(let i=this.tail;i;)n.push(t.call(r,i.value,this)),i=i.prev;return n}reduce(t,r){let n,i=this.head;if(arguments.length>1)n=r;else if(this.head)i=this.head.next,n=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var o=0;i;o++)n=t(n,i.value,o),i=i.next;return n}reduceReverse(t,r){let n,i=this.tail;if(arguments.length>1)n=r;else if(this.tail)i=this.tail.prev,n=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let o=this.length-1;i;o--)n=t(n,i.value,o),i=i.prev;return n}toArray(){let t=new Array(this.length);for(let r=0,n=this.head;n;r++)t[r]=n.value,n=n.next;return t}toArrayReverse(){let t=new Array(this.length);for(let r=0,n=this.tail;n;r++)t[r]=n.value,n=n.prev;return t}slice(t=0,r=this.length){r<0&&(r+=this.length),t<0&&(t+=this.length);let n=new dVe;if(r<t||r<0)return n;t<0&&(t=0),r>this.length&&(r=this.length);let i=this.head,o=0;for(o=0;i&&o<t;o++)i=i.next;for(;i&&o<r;o++,i=i.next)n.push(i.value);return n}sliceReverse(t=0,r=this.length){r<0&&(r+=this.length),t<0&&(t+=this.length);let n=new dVe;if(r<t||r<0)return n;t<0&&(t=0),r>this.length&&(r=this.length);let i=this.length,o=this.tail;for(;o&&i>r;i--)o=o.prev;for(;o&&i>t;i--,o=o.prev)n.push(o.value);return n}splice(t,r=0,...n){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);let i=this.head;for(let s=0;i&&s<t;s++)i=i.next;let o=[];for(let s=0;i&&s<r;s++)o.push(i.value),i=this.removeNode(i);i?i!==this.tail&&(i=i.prev):i=this.tail;for(let s of n)i=mjp(this,i,s);return o}reverse(){let t=this.head,r=this.tail;for(let n=t;n;n=n.prev){let i=n.prev;n.prev=n.next,n.next=i}return this.head=r,this.tail=t,this}};function mjp(e,t,r){let n=t,i=t?t.next:e.head,o=new CEi(r,n,i,e);return o.next===void 0&&(e.tail=o),o.prev===void 0&&(e.head=o),e.length++,o}function hjp(e,t){e.tail=new CEi(t,e.tail,void 0,e),e.head||(e.head=e.tail),e.length++}function gjp(e,t){e.head=new CEi(t,void 0,e.head,e),e.tail||(e.tail=e.head),e.length++}var CEi=class{list;next;prev;value;constructor(e,t,r,n){this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=void 0,r?(r.prev=this,this.next=r):this.next=void 0}},dsa=class{path;absolute;entry;stat;readdir;pending=!1;ignore=!1;piped=!1;constructor(e,t){this.path=e||"./",this.absolute=t}},msa=Buffer.alloc(1024),jfr=Symbol("onStat"),Cvt=Symbol("ended"),D6=Symbol("queue"),MOe=Symbol("current"),LOe=Symbol("process"),xvt=Symbol("processing"),L0i=Symbol("processJob"),R6=Symbol("jobs"),U0i=Symbol("jobDone"),Mfr=Symbol("addFSEntry"),hsa=Symbol("addTarEntry"),aEi=Symbol("stat"),uEi=Symbol("readdir"),Lfr=Symbol("onreaddir"),Ufr=Symbol("pipe"),gsa=Symbol("entry"),z0i=Symbol("entryOpt"),zfr=Symbol("writeEntryClass"),Gsa=Symbol("write"),V0i=Symbol("ondrain"),tdr=class extends WOe{sync=!1;opt;cwd;maxReadSize;preservePaths;strict;noPax;prefix;linkCache;statCache;file;portable;zip;readdirCache;noDirRecurse;follow;noMtime;mtime;filter;jobs;[zfr];onWriteEntry;[D6];[R6]=0;[xvt]=!1;[Cvt]=!1;constructor(e={}){if(super(),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=ep(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this.onWriteEntry=e.onWriteEntry,this[zfr]=qsa,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,e.gzip||e.brotli||e.zstd){if((e.gzip?1:0)+(e.brotli?1:0)+(e.zstd?1:0)>1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(e.gzip&&(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new _Np(e.gzip)),e.brotli&&(typeof e.brotli!="object"&&(e.brotli={}),this.zip=new BNp(e.brotli)),e.zstd&&(typeof e.zstd!="object"&&(e.zstd={}),this.zip=new PNp(e.zstd)),!this.zip)throw new Error("impossible");let t=this.zip;t.on("data",r=>super.write(r)),t.on("end",()=>super.end()),t.on("drain",()=>this[V0i]()),this.on("resume",()=>t.resume())}else this.on("drain",this[V0i]);this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,e.mtime&&(this.mtime=e.mtime),this.filter=typeof e.filter=="function"?e.filter:()=>!0,this[D6]=new djp,this[R6]=0,this.jobs=Number(e.jobs)||4,this[xvt]=!1,this[Cvt]=!1}[Gsa](e){return super.write(e)}add(e){return this.write(e),this}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t=void 0),e&&this.add(e),this[Cvt]=!0,this[LOe](),r&&r(),this}write(e){if(this[Cvt])throw new Error("write after end");return e instanceof Msa?this[hsa](e):this[Mfr](e),this.flowing}[hsa](e){let t=ep(sEi.default.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let r=new dsa(e.path,t);r.entry=new pjp(e,this[z0i](r)),r.entry.on("end",()=>this[U0i](r)),this[R6]+=1,this[D6].push(r)}this[LOe]()}[Mfr](e){let t=ep(sEi.default.resolve(this.cwd,e));this[D6].push(new dsa(e,t)),this[LOe]()}[aEi](e){e.pending=!0,this[R6]+=1;let t=this.follow?"stat":"lstat";Nvt.default[t](e.absolute,(r,n)=>{e.pending=!1,this[R6]-=1,r?this.emit("error",r):this[jfr](e,n)})}[jfr](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)?t.isFile()&&t.nlink>1&&e===this[MOe]&&!this.linkCache.get(`${t.dev}:${t.ino}`)&&!this.sync&&this[L0i](e):e.ignore=!0,this[LOe]()}[uEi](e){e.pending=!0,this[R6]+=1,Nvt.default.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[R6]-=1,t)return this.emit("error",t);this[Lfr](e,r)})}[Lfr](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[LOe]()}[LOe](){if(!this[xvt]){this[xvt]=!0;for(let e=this[D6].head;e&&this[R6]<this.jobs;e=e.next)if(this[L0i](e.value),e.value.ignore){let t=e.next;this[D6].removeNode(e),e.next=t}this[xvt]=!1,this[Cvt]&&!this[D6].length&&this[R6]===0&&(this.zip?this.zip.end(msa):(super.write(msa),super.end()))}}get[MOe](){return this[D6]&&this[D6].head&&this[D6].head.value}[U0i](e){this[D6].shift(),this[R6]-=1,this[LOe]()}[L0i](e){if(!e.pending){if(e.entry){e===this[MOe]&&!e.piped&&this[Ufr](e);return}if(!e.stat){let t=this.statCache.get(e.absolute);t?this[jfr](e,t):this[aEi](e)}if(e.stat&&!e.ignore){if(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir){let t=this.readdirCache.get(e.absolute);if(t?this[Lfr](e,t):this[uEi](e),!e.readdir)return}if(e.entry=this[gsa](e),!e.entry){e.ignore=!0;return}e===this[MOe]&&!e.piped&&this[Ufr](e)}}}[z0i](e){return{onwarn:(t,r,n)=>this.warn(t,r,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[gsa](e){this[R6]+=1;try{return new this[zfr](e.path,this[z0i](e)).on("end",()=>this[U0i](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[V0i](){this[MOe]&&this[MOe].entry&&this[MOe].entry.resume()}[Ufr](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let i=e.path,o=i==="./"?"":i.replace(/\/*$/,"/");this[Mfr](o+n)});let t=e.entry,r=this.zip;if(!t)throw new Error("cannot pipe without source");r?t.on("data",n=>{r.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(e,t,r={}){Xfr(this,e,t,r)}},xEi=class extends tdr{sync=!0;constructor(e){super(e),this[zfr]=ljp}pause(){}resume(){}[aEi](e){let t=this.follow?"statSync":"lstatSync";this[jfr](e,Nvt.default[t](e.absolute))}[uEi](e){this[Lfr](e,Nvt.default.readdirSync(e.absolute))}[Ufr](e){let t=e.entry,r=this.zip;if(e.readdir&&e.readdir.forEach(n=>{let i=e.path,o=i==="./"?"":i.replace(/\/*$/,"/");this[Mfr](o+n)}),!t)throw new Error("Cannot pipe without source");r?t.on("data",n=>{r.write(n)}):t.on("data",n=>{super[Gsa](n)})}},Ajp=(e,t)=>{let r=new xEi(e),n=new Osa(e.file,{mode:e.mode||438});r.pipe(n),Wsa(r,t)},yjp=(e,t)=>{let r=new tdr(e),n=new Kfr(e.file,{mode:e.mode||438});r.pipe(n);let i=new Promise((o,s)=>{n.on("error",s),n.on("close",o),r.on("error",s)});return $sa(r,t),i},Wsa=(e,t)=>{t.forEach(r=>{r.charAt(0)==="@"?Zfr({file:yEi.default.resolve(e.cwd,r.slice(1)),sync:!0,noResume:!0,onReadEntry:n=>e.add(n)}):e.add(r)}),e.end()},$sa=async(e,t)=>{for(let r=0;r<t.length;r++){let n=String(t[r]);n.charAt(0)==="@"?await Zfr({file:yEi.default.resolve(String(e.cwd),n.slice(1)),noResume:!0,onReadEntry:i=>{e.add(i)}}):e.add(n)}e.end()},bjp=(e,t)=>{let r=new xEi(e);return Wsa(r,t),r},Ejp=(e,t)=>{let r=new tdr(e);return $sa(r,t),r},Hsa=Mvt(Ajp,yjp,bjp,Ejp,(e,t)=>{if(!t?.length)throw new TypeError("no paths specified to add to archive")}),vjp=process.env.__FAKE_PLATFORM__||process.platform,Ijp=vjp==="win32",{O_CREAT:wjp,O_TRUNC:Cjp,O_WRONLY:xjp}=BEi.default.constants,Jsa=Number(process.env.__FAKE_FS_O_FILENAME__)||BEi.default.constants.UV_FS_O_FILEMAP||0,_jp=Ijp&&!!Jsa,Sjp=512*1024,Bjp=Jsa|Cjp|wjp|xjp,Ysa=_jp?e=>e<Sjp?Bjp:"w":()=>"w",cEi=(e,t,r)=>{try{return Lvt.default.lchownSync(e,t,r)}catch(n){if(n?.code!=="ENOENT")throw n}},$fr=(e,t,r,n)=>{Lvt.default.lchown(e,t,r,i=>{n(i&&i?.code!=="ENOENT"?i:null)})},Ojp=(e,t,r,n,i)=>{if(t.isDirectory())Xsa(hVe.default.resolve(e,t.name),r,n,o=>{if(o)return i(o);let s=hVe.default.resolve(e,t.name);$fr(s,r,n,i)});else{let o=hVe.default.resolve(e,t.name);$fr(o,r,n,i)}},Xsa=(e,t,r,n)=>{Lvt.default.readdir(e,{withFileTypes:!0},(i,o)=>{if(i){if(i.code==="ENOENT")return n();if(i.code!=="ENOTDIR"&&i.code!=="ENOTSUP")return n(i)}if(i||!o.length)return $fr(e,t,r,n);let s=o.length,a=null,u=c=>{if(!a){if(c)return n(a=c);if(--s===0)return $fr(e,t,r,n)}};for(let c of o)Ojp(e,c,t,r,u)})},Pjp=(e,t,r,n)=>{t.isDirectory()&&Zsa(hVe.default.resolve(e,t.name),r,n),cEi(hVe.default.resolve(e,t.name),r,n)},Zsa=(e,t,r)=>{let n;try{n=Lvt.default.readdirSync(e,{withFileTypes:!0})}catch(i){let o=i;if(o?.code==="ENOENT")return;if(o?.code==="ENOTDIR"||o?.code==="ENOTSUP")return cEi(e,t,r);throw o}for(let i of n)Pjp(e,i,t,r);return cEi(e,t,r)},taa=class extends Error{path;code;syscall="chdir";constructor(e,t){super(`${t}: Cannot cd into '${e}'`),this.path=e,this.code=t}get name(){return"CwdError"}},rdr=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(e,t){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=e,this.path=t}get name(){return"SymlinkError"}},Tjp=(e,t)=>{sF.default.stat(e,(r,n)=>{(r||!n.isDirectory())&&(r=new taa(e,r?.code||"ENOTDIR")),t(r)})},Djp=(e,t,r)=>{e=ep(e);let n=t.umask??18,i=t.mode|448,o=(i&n)!==0,s=t.uid,a=t.gid,u=typeof s=="number"&&typeof a=="number"&&(s!==t.processUid||a!==t.processGid),c=t.preserve,l=t.unlink,p=ep(t.cwd),d=(m,h)=>{m?r(m):h&&u?Xsa(h,s,a,g=>d(g)):o?sF.default.chmod(e,i,r):r()};if(e===p)return Tjp(e,d);if(c)return eaa.default.mkdir(e,{mode:i,recursive:!0}).then(m=>d(null,m??void 0),d);let f=ep(jvt.default.relative(p,e)).split("/");lEi(p,f,i,l,p,void 0,d)},lEi=(e,t,r,n,i,o,s)=>{if(!t.length)return s(null,o);let a=t.shift(),u=ep(jvt.default.resolve(e+"/"+a));sF.default.mkdir(u,r,raa(u,t,r,n,i,o,s))},raa=(e,t,r,n,i,o,s)=>a=>{a?sF.default.lstat(e,(u,c)=>{if(u)u.path=u.path&&ep(u.path),s(u);else if(c.isDirectory())lEi(e,t,r,n,i,o,s);else if(n)sF.default.unlink(e,l=>{if(l)return s(l);sF.default.mkdir(e,r,raa(e,t,r,n,i,o,s))});else{if(c.isSymbolicLink())return s(new rdr(e,e+"/"+t.join("/")));s(a)}}):(o=o||e,lEi(e,t,r,n,i,o,s))},Rjp=e=>{let t=!1,r;try{t=sF.default.statSync(e).isDirectory()}catch(n){r=n?.code}finally{if(!t)throw new taa(e,r??"ENOTDIR")}},Fjp=(e,t)=>{e=ep(e);let r=t.umask??18,n=t.mode|448,i=(n&r)!==0,o=t.uid,s=t.gid,a=typeof o=="number"&&typeof s=="number"&&(o!==t.processUid||s!==t.processGid),u=t.preserve,c=t.unlink,l=ep(t.cwd),p=m=>{m&&a&&Zsa(m,o,s),i&&sF.default.chmodSync(e,n)};if(e===l)return Rjp(l),p();if(u)return p(sF.default.mkdirSync(e,{mode:n,recursive:!0})??void 0);let d=ep(jvt.default.relative(l,e)).split("/"),f;for(let m=d.shift(),h=l;m&&(h+="/"+m);m=d.shift()){h=ep(jvt.default.resolve(h));try{sF.default.mkdirSync(h,n),f=f||h}catch{let g=sF.default.lstatSync(h);if(g.isDirectory())continue;if(c){sF.default.unlinkSync(h),sF.default.mkdirSync(h,n),f=f||h;continue}else if(g.isSymbolicLink())return new rdr(h,h+"/"+d.join("/"))}}return p(f)},q0i=Object.create(null),Asa=1e4,uVe=new Set,kjp=e=>{uVe.has(e)?uVe.delete(e):q0i[e]=e.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),uVe.add(e);let t=q0i[e],r=uVe.size-Asa;if(r>Asa/10){for(let n of uVe)if(uVe.delete(n),delete q0i[n],--r<=0)break}return t},Qjp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Njp=Qjp==="win32",jjp=e=>e.split("/").slice(0,-1).reduce((t,r)=>{let n=t[t.length-1];return n!==void 0&&(r=(0,OEi.join)(n,r)),t.push(r||"/"),t},[]),Mjp=class{#e=new Map;#t=new Map;#r=new Set;reserve(e,t){e=Njp?["win32 parallelization disabled"]:e.map(n=>Pvt((0,OEi.join)(kjp(n))));let r=new Set(e.map(n=>jjp(n)).reduce((n,i)=>n.concat(i)));this.#t.set(t,{dirs:r,paths:e});for(let n of e){let i=this.#e.get(n);i?i.push(t):this.#e.set(n,[t])}for(let n of r){let i=this.#e.get(n);if(!i)this.#e.set(n,[new Set([t])]);else{let o=i[i.length-1];o instanceof Set?o.add(t):i.push(new Set([t]))}}return this.#i(t)}#n(e){let t=this.#t.get(e);if(!t)throw new Error("function does not have any path reservations");return{paths:t.paths.map(r=>this.#e.get(r)),dirs:[...t.dirs].map(r=>this.#e.get(r))}}check(e){let{paths:t,dirs:r}=this.#n(e);return t.every(n=>n&&n[0]===e)&&r.every(n=>n&&n[0]instanceof Set&&n[0].has(e))}#i(e){return this.#r.has(e)||!this.check(e)?!1:(this.#r.add(e),e(()=>this.#o(e)),!0)}#o(e){if(!this.#r.has(e))return!1;let t=this.#t.get(e);if(!t)throw new Error("invalid reservation");let{paths:r,dirs:n}=t,i=new Set;for(let o of r){let s=this.#e.get(o);if(!s||s?.[0]!==e)continue;let a=s[1];if(!a){this.#e.delete(o);continue}if(s.shift(),typeof a=="function")i.add(a);else for(let u of a)i.add(u)}for(let o of n){let s=this.#e.get(o),a=s?.[0];if(!(!s||!(a instanceof Set)))if(a.size===1&&s.length===1){this.#e.delete(o);continue}else if(a.size===1){s.shift();let u=s[0];typeof u=="function"&&i.add(u)}else a.delete(e)}return this.#r.delete(e),i.forEach(o=>this.#i(o)),!0}},Ljp=()=>process.umask(),ysa=Symbol("onEntry"),pEi=Symbol("checkFs"),bsa=Symbol("checkFs2"),fEi=Symbol("isReusable"),q4=Symbol("makeFs"),dEi=Symbol("file"),mEi=Symbol("directory"),Vfr=Symbol("link"),Esa=Symbol("symlink"),vsa=Symbol("hardlink"),Bvt=Symbol("ensureNoSymlink"),Isa=Symbol("unsupported"),wsa=Symbol("checkPath"),G0i=Symbol("stripAbsolutePath"),fme=Symbol("mkdir"),PC=Symbol("onError"),Dfr=Symbol("pending"),Csa=Symbol("pend"),cVe=Symbol("unpend"),W0i=Symbol("ended"),$0i=Symbol("maybeClose"),hEi=Symbol("skip"),Tvt=Symbol("doChown"),Dvt=Symbol("uid"),Rvt=Symbol("gid"),Fvt=Symbol("checkedCwd"),Ujp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,kvt=Ujp==="win32",zjp=1024,Vjp=(e,t)=>{if(!kvt)return tf.default.unlink(e,t);let r=e+".DELETE."+(0,SEi.randomBytes)(16).toString("hex");tf.default.rename(e,r,n=>{if(n)return t(n);tf.default.unlink(r,t)})},qjp=e=>{if(!kvt)return tf.default.unlinkSync(e);let t=e+".DELETE."+(0,SEi.randomBytes)(16).toString("hex");tf.default.renameSync(e,t),tf.default.unlinkSync(t)},xsa=(e,t,r)=>e!==void 0&&e===e>>>0?e:t!==void 0&&t===t>>>0?t:r,PEi=class extends Qvt{[W0i]=!1;[Fvt]=!1;[Dfr]=0;reservations=new Mjp;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(e={}){if(e.ondone=()=>{this[W0i]=!0,this[$0i]()},super(e),this.transform=e.transform,this.chmod=!!e.chmod,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=!!(process.getuid&&process.getuid()===0):this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:zjp,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||kvt,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=ep(Tv.default.resolve(e.cwd||process.cwd())),this.strip=Number(e.strip)||0,this.processUmask=this.chmod?typeof e.processUmask=="number"?e.processUmask:Ljp():0,this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[ysa](t))}warn(e,t,r={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(r.recoverable=!1),super.warn(e,t,r)}[$0i](){this[W0i]&&this[Dfr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[G0i](e,t){let r=e[t],{type:n}=e;if(!r||this.preservePaths)return!0;let[i,o]=IEi(r),s=o.replace(/\\/g,"/").split("/");if(s.includes("..")||kvt&&/^[a-z]:\.\.$/i.test(s[0]??"")){if(t==="path"||n==="Link")return this.warn("TAR_ENTRY_ERROR",`${t} contains '..'`,{entry:e,[t]:r}),!1;{let a=Tv.default.posix.dirname(e.path),u=Tv.default.posix.normalize(Tv.default.posix.join(a,s.join("/")));if(u.startsWith("../")||u==="..")return this.warn("TAR_ENTRY_ERROR",`${t} escapes extraction directory`,{entry:e,[t]:r}),!1}}return i&&(e[t]=String(o),this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute ${t}`,{entry:e,[t]:r})),!0}[wsa](e){let t=ep(e.path),r=t.split("/");if(this.strip){if(r.length<this.strip)return!1;if(e.type==="Link"){let n=ep(String(e.linkpath)).split("/");if(n.length>=this.strip)e.linkpath=n.slice(this.strip).join("/");else return!1}r.splice(0,this.strip),e.path=r.join("/")}if(isFinite(this.maxDepth)&&r.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:e,path:t,depth:r.length,maxDepth:this.maxDepth}),!1;if(!this[G0i](e,"path")||!this[G0i](e,"linkpath"))return!1;if(Tv.default.isAbsolute(e.path)?e.absolute=ep(Tv.default.resolve(e.path)):e.absolute=ep(Tv.default.resolve(this.cwd,e.path)),!this.preservePaths&&typeof e.absolute=="string"&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:ep(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:n}=Tv.default.win32.parse(String(e.absolute));e.absolute=n+usa(String(e.absolute).slice(n.length));let{root:i}=Tv.default.win32.parse(e.path);e.path=i+usa(e.path.slice(i.length))}return!0}[ysa](e){if(!this[wsa](e))return e.resume();switch(Ksa.default.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[pEi](e);default:return this[Isa](e)}}[PC](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[cVe](),t.resume())}[fme](e,t,r){Djp(ep(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:t},r)}[Tvt](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Dvt](e){return xsa(this.uid,e.uid,this.processUid)}[Rvt](e){return xsa(this.gid,e.gid,this.processGid)}[dEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.fmode,n=new Kfr(String(e.absolute),{flags:Ysa(e.size),mode:r,autoClose:!1});n.on("error",a=>{n.fd&&tf.default.close(n.fd,()=>{}),n.write=()=>!0,this[PC](a,e),t()});let i=1,o=a=>{if(a){n.fd&&tf.default.close(n.fd,()=>{}),this[PC](a,e),t();return}--i===0&&n.fd!==void 0&&tf.default.close(n.fd,u=>{u?this[PC](u,e):this[cVe](),t()})};n.on("finish",()=>{let a=String(e.absolute),u=n.fd;if(typeof u=="number"&&e.mtime&&!this.noMtime){i++;let c=e.atime||new Date,l=e.mtime;tf.default.futimes(u,c,l,p=>p?tf.default.utimes(a,c,l,d=>o(d&&p)):o())}if(typeof u=="number"&&this[Tvt](e)){i++;let c=this[Dvt](e),l=this[Rvt](e);typeof c=="number"&&typeof l=="number"&&tf.default.fchown(u,c,l,p=>p?tf.default.chown(a,c,l,d=>o(d&&p)):o())}o()});let s=this.transform&&this.transform(e)||e;s!==e&&(s.on("error",a=>{this[PC](a,e),t()}),e.pipe(s)),s.pipe(n)}[mEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.dmode;this[fme](String(e.absolute),r,n=>{if(n){this[PC](n,e),t();return}let i=1,o=()=>{--i===0&&(t(),this[cVe](),e.resume())};e.mtime&&!this.noMtime&&(i++,tf.default.utimes(String(e.absolute),e.atime||new Date,e.mtime,o)),this[Tvt](e)&&(i++,tf.default.chown(String(e.absolute),Number(this[Dvt](e)),Number(this[Rvt](e)),o)),o()})}[Isa](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Esa](e,t){let r=ep(Tv.default.relative(this.cwd,Tv.default.resolve(Tv.default.dirname(String(e.absolute)),String(e.linkpath)))).split("/");this[Bvt](e,this.cwd,r,()=>this[Vfr](e,String(e.linkpath),"symlink",t),n=>{this[PC](n,e),t()})}[vsa](e,t){let r=ep(Tv.default.resolve(this.cwd,String(e.linkpath))),n=ep(String(e.linkpath)).split("/");this[Bvt](e,this.cwd,n,()=>this[Vfr](e,r,"link",t),i=>{this[PC](i,e),t()})}[Bvt](e,t,r,n,i){let o=r.shift();if(this.preservePaths||o===void 0)return n();let s=Tv.default.resolve(t,o);tf.default.lstat(s,(a,u)=>{if(a)return n();if(u?.isSymbolicLink())return i(new rdr(s,Tv.default.resolve(s,r.join("/"))));this[Bvt](e,s,r,n,i)})}[Csa](){this[Dfr]++}[cVe](){this[Dfr]--,this[$0i]()}[hEi](e){this[cVe](),e.resume()}[fEi](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!kvt}[pEi](e){this[Csa]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,r=>this[bsa](e,r))}[bsa](e,t){let r=s=>{t(s)},n=()=>{this[fme](this.cwd,this.dmode,s=>{if(s){this[PC](s,e),r();return}this[Fvt]=!0,i()})},i=()=>{if(e.absolute!==this.cwd){let s=ep(Tv.default.dirname(String(e.absolute)));if(s!==this.cwd)return this[fme](s,this.dmode,a=>{if(a){this[PC](a,e),r();return}o()})}o()},o=()=>{tf.default.lstat(String(e.absolute),(s,a)=>{if(a&&(this.keep||this.newer&&a.mtime>(e.mtime??a.mtime))){this[hEi](e),r();return}if(s||this[fEi](e,a))return this[q4](null,e,r);if(a.isDirectory()){if(e.type==="Directory"){let u=this.chmod&&e.mode&&(a.mode&4095)!==e.mode,c=l=>this[q4](l??null,e,r);return u?tf.default.chmod(String(e.absolute),Number(e.mode),c):c()}if(e.absolute!==this.cwd)return tf.default.rmdir(String(e.absolute),u=>this[q4](u??null,e,r))}if(e.absolute===this.cwd)return this[q4](null,e,r);Vjp(String(e.absolute),u=>this[q4](u??null,e,r))})};this[Fvt]?i():n()}[q4](e,t,r){if(e){this[PC](e,t),r();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[dEi](t,r);case"Link":return this[vsa](t,r);case"SymbolicLink":return this[Esa](t,r);case"Directory":case"GNUDumpDir":return this[mEi](t,r)}}[Vfr](e,t,r,n){tf.default[r](t,String(e.absolute),i=>{i?this[PC](i,e):(this[cVe](),e.resume()),n()})}},_vt=e=>{try{return[null,e()]}catch(t){return[t,null]}},naa=class extends PEi{sync=!0;[q4](e,t){return super[q4](e,t,()=>{})}[pEi](e){if(!this[Fvt]){let i=this[fme](this.cwd,this.dmode);if(i)return this[PC](i,e);this[Fvt]=!0}if(e.absolute!==this.cwd){let i=ep(Tv.default.dirname(String(e.absolute)));if(i!==this.cwd){let o=this[fme](i,this.dmode);if(o)return this[PC](o,e)}}let[t,r]=_vt(()=>tf.default.lstatSync(String(e.absolute)));if(r&&(this.keep||this.newer&&r.mtime>(e.mtime??r.mtime)))return this[hEi](e);if(t||this[fEi](e,r))return this[q4](null,e);if(r.isDirectory()){if(e.type==="Directory"){let o=this.chmod&&e.mode&&(r.mode&4095)!==e.mode,[s]=o?_vt(()=>{tf.default.chmodSync(String(e.absolute),Number(e.mode))}):[];return this[q4](s,e)}let[i]=_vt(()=>tf.default.rmdirSync(String(e.absolute)));this[q4](i,e)}let[n]=e.absolute===this.cwd?[]:_vt(()=>qjp(String(e.absolute)));this[q4](n,e)}[dEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.fmode,n=s=>{let a;try{tf.default.closeSync(i)}catch(u){a=u}(s||a)&&this[PC](s||a,e),t()},i;try{i=tf.default.openSync(String(e.absolute),Ysa(e.size),r)}catch(s){return n(s)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",s=>this[PC](s,e)),e.pipe(o)),o.on("data",s=>{try{tf.default.writeSync(i,s,0,s.length)}catch(a){n(a)}}),o.on("end",()=>{let s=null;if(e.mtime&&!this.noMtime){let a=e.atime||new Date,u=e.mtime;try{tf.default.futimesSync(i,a,u)}catch(c){try{tf.default.utimesSync(String(e.absolute),a,u)}catch{s=c}}}if(this[Tvt](e)){let a=this[Dvt](e),u=this[Rvt](e);try{tf.default.fchownSync(i,Number(a),Number(u))}catch(c){try{tf.default.chownSync(String(e.absolute),Number(a),Number(u))}catch{s=s||c}}}n(s)})}[mEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.dmode,n=this[fme](String(e.absolute),r);if(n){this[PC](n,e),t();return}if(e.mtime&&!this.noMtime)try{tf.default.utimesSync(String(e.absolute),e.atime||new Date,e.mtime)}catch{}if(this[Tvt](e))try{tf.default.chownSync(String(e.absolute),Number(this[Dvt](e)),Number(this[Rvt](e)))}catch{}t(),e.resume()}[fme](e,t){try{return Fjp(ep(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:t})}catch(r){return r}}[Bvt](e,t,r,n,i){if(this.preservePaths||!r.length)return n();let o=t;for(let s of r){o=Tv.default.resolve(o,s);let[a,u]=_vt(()=>tf.default.lstatSync(o));if(a)return n();if(u.isSymbolicLink())return i(new rdr(o,Tv.default.resolve(t,r.join("/"))))}n()}[Vfr](e,t,r,n){let i=`${r}Sync`;try{tf.default[i](t,String(e.absolute)),n(),e.resume()}catch(o){return this[PC](o,e)}}},Gjp=e=>{let t=new naa(e),r=e.file,n=_Ei.default.statSync(r),i=e.maxReadSize||16*1024*1024;new hNp(r,{readSize:i,size:n.size}).pipe(t)},Wjp=(e,t)=>{let r=new PEi(e),n=e.maxReadSize||16*1024*1024,i=e.file;return new Promise((o,s)=>{r.on("error",s),r.on("close",o),_Ei.default.stat(i,(a,u)=>{if(a)s(a);else{let c=new AEi(i,{readSize:n,size:u.size});c.on("error",s),c.pipe(r)}})})},iaa=Mvt(Gjp,Wjp,e=>new naa(e),e=>new PEi(e),(e,t)=>{t?.length&&Lsa(e,t)}),$jp=(e,t)=>{let r=new xEi(e),n=!0,i,o;try{try{i=oF.default.openSync(e.file,"r+")}catch(u){if(u?.code==="ENOENT")i=oF.default.openSync(e.file,"w+");else throw u}let s=oF.default.fstatSync(i),a=Buffer.alloc(512);e:for(o=0;o<s.size;o+=512){for(let l=0,p=0;l<512;l+=p){if(p=oF.default.readSync(i,a,l,a.length-l,o+l),o===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!p)break e}let u=new GOe(a);if(!u.cksumValid)break;let c=512*Math.ceil((u.size||0)/512);if(o+c+512>s.size)break;o+=c,e.mtimeCache&&u.mtime&&e.mtimeCache.set(String(u.path),u.mtime)}n=!1,Hjp(e,r,o,i,t)}finally{if(n)try{oF.default.closeSync(i)}catch{}}},Hjp=(e,t,r,n,i)=>{let o=new Osa(e.file,{fd:n,start:r});t.pipe(o),Jjp(t,i)},Kjp=(e,t)=>{t=Array.from(t);let r=new tdr(e),n=(i,o,s)=>{let a=(d,f)=>{d?oF.default.close(i,m=>s(d)):s(null,f)},u=0;if(o===0)return a(null,0);let c=0,l=Buffer.alloc(512),p=(d,f)=>{if(d||typeof f>"u")return a(d);if(c+=f,c<512&&f)return oF.default.read(i,l,c,l.length-c,u+c,p);if(u===0&&l[0]===31&&l[1]===139)return a(new Error("cannot append to compressed archives"));if(c<512)return a(null,u);let m=new GOe(l);if(!m.cksumValid)return a(null,u);let h=512*Math.ceil((m.size??0)/512);if(u+h+512>o||(u+=h+512,u>=o))return a(null,u);e.mtimeCache&&m.mtime&&e.mtimeCache.set(String(m.path),m.mtime),c=0,oF.default.read(i,l,0,512,u,p)};oF.default.read(i,l,0,512,u,p)};return new Promise((i,o)=>{r.on("error",o);let s="r+",a=(u,c)=>{if(u&&u.code==="ENOENT"&&s==="r+")return s="w+",oF.default.open(e.file,s,a);if(u||!c)return o(u);oF.default.fstat(c,(l,p)=>{if(l)return oF.default.close(c,()=>o(l));n(c,p.size,(d,f)=>{if(d)return o(d);let m=new Kfr(e.file,{fd:c,start:f});r.pipe(m),m.on("error",o),m.on("close",i),Yjp(r,t)})})};oF.default.open(e.file,s,a)})},Jjp=(e,t)=>{t.forEach(r=>{r.charAt(0)==="@"?Zfr({file:TEi.default.resolve(e.cwd,r.slice(1)),sync:!0,noResume:!0,onReadEntry:n=>e.add(n)}):e.add(r)}),e.end()},Yjp=async(e,t)=>{for(let r=0;r<t.length;r++){let n=String(t[r]);n.charAt(0)==="@"?await Zfr({file:TEi.default.resolve(String(e.cwd),n.slice(1)),noResume:!0,onReadEntry:i=>e.add(i)}):e.add(n)}e.end()},Svt=Mvt($jp,Kjp,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(e,t)=>{if(!vNp(e))throw new TypeError("file is required");if(e.gzip||e.brotli||e.zstd||e.file.endsWith(".br")||e.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!t?.length)throw new TypeError("no paths specified to add/replace")}),xay=Mvt(Svt.syncFile,Svt.asyncFile,Svt.syncNoFile,Svt.asyncNoFile,(e,t=[])=>{Svt.validate?.(e,t),Xjp(e)}),Xjp=e=>{let t=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=t?(r,n)=>t(r,n)&&!((e.mtimeCache?.get(r)??n.mtime??0)>(n.mtime??0)):(r,n)=>!((e.mtimeCache?.get(r)??n.mtime??0)>(n.mtime??0))};var laa=xe(Cw(),1);var Zjp=Poe();async function paa({dependencyName:e,dependenciesConfiguration:t,context:r,rootApiFile:n,cliVersion:i,settings:o,loadAPIWorkspace:s}){let a,u={type:Vc.FAILED_TO_LOAD_DEPENDENCY,dependencyName:e},c=t.dependencies[e];return c==null?u={type:Vc.DEPENDENCY_NOT_LISTED,dependencyName:e}:await r.runInteractiveTask({name:`Download ${sMp(c)}`},async l=>{switch(c.type){case"version":a=await iMp({context:l,dependency:c,cliVersion:i,settings:o,loadAPIWorkspace:s});return;case"local":a=await nMp({context:l,dependency:c,cliVersion:i,settings:o,loadAPIWorkspace:s});return;default:Se(c)}}),a!=null?{didSucceed:!0,definition:a}:{didSucceed:!1,failure:u}}var faa="dependencies";var eMp="metadata.json",tMp=".fern";function rMp(e){return We(Ut.of((0,aaa.homedir)()),_e.of(tMp),_e.of(faa),_e.of(e.organization),_e.of(e.apiName),_e.of(e.version))}async function nMp({dependency:e,context:t,cliVersion:r,settings:n,loadAPIWorkspace:i}){if(i==null){t.failWithoutThrowing("Failed to load api definition");return}t.logger.info("Parsing...");let o=await i({absolutePathToWorkspace:e.absoluteFilepath,context:t,cliVersion:r,workspaceName:void 0});if(!o.didSucceed){t.failWithoutThrowing("Failed to load api definition",o.failures);return}t.logger.info("Modifying source filepath ...");let s=await o.workspace.getDefinition({context:t,relativePathToDependency:_e.of(e.path)},n);return t.logger.info("Loaded..."),s}async function iMp({dependency:e,context:t,cliVersion:r,settings:n,loadAPIWorkspace:i}){let o=rMp(e),s=We(o,_e.of(faa)),a=We(o,_e.of(eMp)),u;if(!await Zt(s)||!await Zt(a)){t.logger.info("Downloading manifest...");let p=await Zjp.definitionRegistry.get(DEi.FernFiddle.OrganizationId(e.organization),DEi.FernFiddle.ApiId(e.apiName),e.version);if(!p.ok){p.error._visit({orgDoesNotExistError:()=>{t.failWithoutThrowing("Organization does not exist")},apiDoesNotExistError:()=>{t.failWithoutThrowing("API does not exist")},versionDoesNotExistError:()=>{t.failWithoutThrowing("Version does not exist")},_other:h=>{t.failWithoutThrowing("Failed to download API manifest",h)}});return}let d=p.body.yamlSchemaVersion!=null?parseInt(p.body.yamlSchemaVersion):void 0,f=COe(r),m=COe(p.body.cliVersion);if(d!=null){if(d>1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a higher version of fern. Upgrade this workspace to ${p.body.cliVersion}`);return}else if(d<1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a lower version of fern. Upgrade it to ${r}`);return}}else if(f.major!==m.major||f.minor!==m.minor){t.failWithoutThrowing(`CLI version is ${p.body.cliVersion}. Expected ${f.major}.${f.minor}.x (to match current workspace).`);return}t.logger.info("Downloading..."),t.logger.debug("Remote URL: "+p.body.definitionS3DownloadUrl),await(0,AVe.mkdir)(s,{recursive:!0});try{await oMp({s3PreSignedReadUrl:p.body.definitionS3DownloadUrl,absolutePathToLocalOutput:s})}catch(h){t.failWithoutThrowing("Failed to download API",h);return}u=p.body,await(0,AVe.writeFile)(a,JSON.stringify(u))}else u=JSON.parse((await(0,AVe.readFile)(a)).toString());if(t.logger.info("Parsing..."),i==null){t.failWithoutThrowing("Failed to load API");return}let c=await i({absolutePathToWorkspace:s,context:t,cliVersion:u.cliVersion,workspaceName:void 0});if(!c.didSucceed){t.failWithoutThrowing("Failed to parse dependency after downloading",c.failures);return}if(c.workspace.type==="oss"){t.failWithoutThrowing("Dependency must be a fern workspace.");return}return await c.workspace.getDefinition({context:t},n)}async function oMp({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await r0.get(e,{responseType:"stream"}),n=await laa.default.dir(),i=uaa.default.join(n.path,"api.tgz");await(0,caa.pipeline)(r.data,(0,saa.createWriteStream)(i)),await iaa({file:i,cwd:t})}function sMp(e){switch(e.type){case"version":return`@${e.organization}/${e.apiName}`;case"local":return`${e.path}`;default:Se(e)}}async function daa({dependenciesConfiguration:e,structuralValidationResult:t,context:r,cliVersion:n,settings:i,loadAPIWorkspace:o}){let s={},a={},u={};return await Promise.all(ay(t.packageMarkers).map(async([c,l])=>{if(l.contents.export==null)s[c]=l;else{let{export:p,...d}=l.contents;if($d(d)>0)u[c]={type:Vc.EXPORTING_PACKAGE_MARKER_OTHER_KEYS,pathOfPackageMarker:c};else{let f=An(c);if(K1(t.namedDefinitionFiles).some(h=>h!==c&&h.startsWith(f)))u[c]={type:Vc.EXPORT_PACKAGE_HAS_DEFINITIONS,pathToPackage:f};else{let h=await paa({dependencyName:typeof l.contents.export=="string"?l.contents.export:l.contents.export.dependency,dependenciesConfiguration:e,context:r,rootApiFile:t.rootApiFile.contents,cliVersion:n,settings:i,loadAPIWorkspace:o});h.didSucceed?a[An(c)]={definition:h.definition,url:typeof l.contents.export=="object"?l.contents.export.url:void 0}:u[c]=h.failure}}}})),$d(u)>0?{didSucceed:!1,failures:u}:{didSucceed:!0,packageMarkers:s,importedDefinitions:a}}St();qt();var maa=xe(require("path"),1);var REi={};X(REi,{additionalProperties:()=>lMp,default:()=>fMp,definitions:()=>pMp,properties:()=>uMp,required:()=>cMp,type:()=>aMp});var aMp="object",uMp={docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"default-url":{oneOf:[{type:"string"},{type:"null"}]},"default-environment":{oneOf:[{type:"string"},{type:"null"}]},environments:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/environments.EnvironmentSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/auth.ApiAuthSchema"},{type:"null"}]},"auth-schemes":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/auth.AuthSchemeDeclarationSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},name:{type:"string"},imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},"error-discrimination":{oneOf:[{$ref:"#/definitions/file.ErrorDiscriminationSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},errors:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"idempotency-headers":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},variables:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/variables.VariableDeclarationSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"null"}]},product:{oneOf:[{$ref:"#/definitions/products.ProductDeclarationSchema"},{type:"null"}]},version:{oneOf:[{$ref:"#/definitions/versioning.VersionDeclarationSchema"},{type:"null"}]}},cMp=["name"],lMp=!1,pMp={"environments.ServerVariableSchema":{type:"object",properties:{id:{type:"string"},default:{oneOf:[{type:"string"},{type:"null"}]},values:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]}},required:["id"],additionalProperties:!1},"environments.SingleBaseUrlEnvironmentSchema":{type:"object",properties:{audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},url:{type:"string"},"default-url":{oneOf:[{type:"string"},{type:"null"}]},"url-template":{oneOf:[{type:"string"},{type:"null"}]},variables:{oneOf:[{type:"array",items:{$ref:"#/definitions/environments.ServerVariableSchema"}},{type:"null"}]}},required:["url"],additionalProperties:!1},"environments.MultipleBaseUrlsEnvironmentSchema":{type:"object",properties:{audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},urls:{type:"object",additionalProperties:{type:"string"}},"url-templates":{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},"default-urls":{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},variables:{oneOf:[{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/environments.ServerVariableSchema"}}},{type:"null"}]}},required:["urls"],additionalProperties:!1},"environments.EnvironmentSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/environments.SingleBaseUrlEnvironmentSchema"},{$ref:"#/definitions/environments.MultipleBaseUrlsEnvironmentSchema"}]},"auth.AuthSchemeReferenceSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{type:"string"}},required:["scheme"],additionalProperties:!1},"auth.AnyAuthItem":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.AuthSchemeReferenceSchema"}]},"auth.AnyAuthSchemesSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},any:{type:"array",items:{$ref:"#/definitions/auth.AnyAuthItem"}}},required:["any"],additionalProperties:!1},"auth.EndpointSecuritySchemaDetails":{type:"object",additionalProperties:!1},"auth.EndpointSecuritySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"endpoint-security":{$ref:"#/definitions/auth.EndpointSecuritySchemaDetails"}},required:["endpoint-security"],additionalProperties:!1},"auth.ApiAuthSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.AuthSchemeReferenceSchema"},{$ref:"#/definitions/auth.AnyAuthSchemesSchema"},{$ref:"#/definitions/auth.EndpointSecuritySchema"}]},"auth.AuthScope":{type:"string"},"auth.OAuthAccessTokenRequestPropertiesSchema":{type:"object",properties:{"client-id":{oneOf:[{type:"string"},{type:"null"}]},"client-secret":{oneOf:[{type:"string"},{type:"null"}]},scopes:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthAccessTokenResponsePropertiesSchema":{type:"object",properties:{"access-token":{oneOf:[{type:"string"},{type:"null"}]},"expires-in":{oneOf:[{type:"string"},{type:"null"}]},"refresh-token":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthGetTokenEndpointSchema":{type:"object",properties:{endpoint:{type:"string"},"request-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthAccessTokenRequestPropertiesSchema"},{type:"null"}]},"response-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthAccessTokenResponsePropertiesSchema"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.OAuthRefreshTokenRequestPropertiesSchema":{type:"object",properties:{"refresh-token":{type:"string"}},required:["refresh-token"],additionalProperties:!1},"auth.OAuthRefreshTokenResponsePropertiesSchema":{type:"object",properties:{"access-token":{oneOf:[{type:"string"},{type:"null"}]},"expires-in":{oneOf:[{type:"string"},{type:"null"}]},"refresh-token":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthRefreshTokenEndpointSchema":{type:"object",properties:{endpoint:{type:"string"},"request-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenRequestPropertiesSchema"},{type:"null"}]},"response-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenResponsePropertiesSchema"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.OAuthSchemeSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"oauth"},type:{const:"client-credentials"},scopes:{oneOf:[{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}},{type:"null"}]},"client-id-env":{oneOf:[{type:"string"},{type:"null"}]},"client-secret-env":{oneOf:[{type:"string"},{type:"null"}]},"token-prefix":{oneOf:[{type:"string"},{type:"null"}]},"token-header":{oneOf:[{type:"string"},{type:"null"}]},"get-token":{$ref:"#/definitions/auth.OAuthGetTokenEndpointSchema"},"refresh-token":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenEndpointSchema"},{type:"null"}]}},required:["scheme","type","get-token"],additionalProperties:!1},"auth.HeaderAuthSchemeSchema":{type:"object",properties:{env:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},header:{type:"string"},type:{oneOf:[{type:"string"},{type:"null"}]},prefix:{oneOf:[{type:"string"},{type:"null"}]}},required:["header"],additionalProperties:!1},"auth.AuthVariable":{type:"object",properties:{env:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},omit:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"auth.BasicAuthSchemeSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"basic"},username:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]},password:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]}},required:["scheme"],additionalProperties:!1},"auth.TokenBearerAuthSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"bearer"},token:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]}},required:["scheme"],additionalProperties:!1},"auth.InferredAuthenticatedRequestHeader":{type:"object",properties:{"response-property":{type:"string"},"header-name":{type:"string"},"value-prefix":{oneOf:[{type:"string"},{type:"null"}]}},required:["response-property","header-name"],additionalProperties:!1},"auth.InferredGetTokenEndpointSchemaObject":{type:"object",properties:{endpoint:{type:"string"},"expiry-response-property":{oneOf:[{type:"string"},{type:"null"}]},"authenticated-request-headers":{oneOf:[{type:"array",items:{$ref:"#/definitions/auth.InferredAuthenticatedRequestHeader"}},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.InferredGetTokenEndpointSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.InferredGetTokenEndpointSchemaObject"}]},"auth.InferredBearerAuthSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"bearer"},"get-token":{$ref:"#/definitions/auth.InferredGetTokenEndpointSchema"}},required:["scheme","get-token"],additionalProperties:!1},"auth.BearerAuthSchemeSchema":{anyOf:[{$ref:"#/definitions/auth.TokenBearerAuthSchema"},{$ref:"#/definitions/auth.InferredBearerAuthSchema"}]},"auth.AuthSchemeDeclarationSchema":{anyOf:[{$ref:"#/definitions/auth.OAuthSchemeSchema"},{$ref:"#/definitions/auth.HeaderAuthSchemeSchema"},{$ref:"#/definitions/auth.BasicAuthSchemeSchema"},{$ref:"#/definitions/auth.BearerAuthSchemeSchema"}]},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"file.PropertyBasedErrorDiscrimination":{type:"object",properties:{strategy:{const:"property"},"property-name":{type:"string"}},required:["strategy","property-name"],additionalProperties:!1},"file.StatusCodeBasedErrorDiscrimination":{type:"object",properties:{strategy:{const:"status-code"}},required:["strategy"],additionalProperties:!1},"file.ErrorDiscriminationSchema":{anyOf:[{$ref:"#/definitions/file.PropertyBasedErrorDiscrimination"},{$ref:"#/definitions/file.StatusCodeBasedErrorDiscrimination"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"variables.VariableDeclarationDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"variables.VariableDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/variables.VariableDeclarationDetailed"}]},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"versioning.VersionValueDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"versioning.VersionValue":{anyOf:[{type:"string"},{$ref:"#/definitions/versioning.VersionValueDetailed"}]},"versioning.VersionDeclarationHeaderObjectSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"versioning.VersionDeclarationHeaderSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/versioning.VersionDeclarationHeaderObjectSchema"}]},"versioning.VersionDeclarationSchema":{type:"object",properties:{default:{oneOf:[{type:"string"},{type:"null"}]},values:{type:"array",items:{$ref:"#/definitions/versioning.VersionValue"}},header:{$ref:"#/definitions/versioning.VersionDeclarationHeaderSchema"}},required:["values","header"],additionalProperties:!1},"products.ProductValueDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},versions:{oneOf:[{$ref:"#/definitions/versioning.VersionDeclarationSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"products.ProductValue":{anyOf:[{type:"string"},{$ref:"#/definitions/products.ProductValueDetailed"}]},"products.ProductDeclarationHeaderObjectSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"products.ProductDeclarationHeaderSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/products.ProductDeclarationHeaderObjectSchema"}]},"products.ProductDeclarationSchema":{type:"object",properties:{default:{oneOf:[{type:"string"},{type:"null"}]},values:{type:"array",items:{$ref:"#/definitions/products.ProductValue"}},header:{$ref:"#/definitions/products.ProductDeclarationHeaderSchema"}},required:["values","header"],additionalProperties:!1}},fMp={type:aMp,properties:uMp,required:cMp,additionalProperties:lMp,definitions:pMp};var FEi={};X(FEi,{additionalProperties:()=>hMp,default:()=>AMp,definitions:()=>gMp,properties:()=>mMp,type:()=>dMp});var dMp="object",mMp={docs:{oneOf:[{type:"string"},{type:"null"}]},imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},types:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeDeclarationSchema"}},{type:"null"}]},service:{oneOf:[{$ref:"#/definitions/service.HttpServiceSchema"},{type:"null"}]},errors:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/errors.ErrorDeclarationSchema"}},{type:"null"}]},webhooks:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/webhooks.WebhookSchema"}},{type:"null"}]},"webhook-signature":{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},channel:{oneOf:[{$ref:"#/definitions/websocket.WebSocketChannelSchema"},{type:"null"}]}},hMp=!1,gMp={"examples.ExampleTypeValueSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleTypeSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},value:{$ref:"#/definitions/examples.ExampleTypeValueSchema"}},required:["value"],additionalProperties:!1},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"source.OpenAPISourceSchema":{type:"object",properties:{openapi:{type:"string"}},required:["openapi"],additionalProperties:!1},"source.ProtobufSourceSchema":{type:"object",properties:{proto:{type:"string"}},required:["proto"],additionalProperties:!1},"source.SourceSchema":{anyOf:[{$ref:"#/definitions/source.OpenAPISourceSchema"},{$ref:"#/definitions/source.ProtobufSourceSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"types.ObjectExtendsSchema":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"types.ObjectPropertyAccess":{type:"string",enum:["read-only","write-only"]},"types.ObjectPropertyWithAccessSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},access:{oneOf:[{$ref:"#/definitions/types.ObjectPropertyAccess"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.ObjectPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectPropertyWithAccessSchema"}]},"types.ObjectSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"types.CasingOverridesSchema":{type:"object",properties:{camel:{oneOf:[{type:"string"},{type:"null"}]},snake:{oneOf:[{type:"string"},{type:"null"}]},pascal:{oneOf:[{type:"string"},{type:"null"}]},"screaming-snake":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"types.EnumValueSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},casing:{oneOf:[{$ref:"#/definitions/types.CasingOverridesSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.EnumValue":{anyOf:[{type:"string"},{$ref:"#/definitions/types.EnumValueSchema"}]},"types.EnumSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},default:{oneOf:[{type:"string"},{type:"null"}]},enum:{type:"array",items:{$ref:"#/definitions/types.EnumValue"}},"forward-compatible":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["enum"],additionalProperties:!1},"types.UnionDiscriminatorContext":{type:"string",enum:["data","protocol"]},"types.UnionDiscriminantSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},context:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminatorContext"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.UnionDiscriminant":{anyOf:[{type:"string"},{$ref:"#/definitions/types.UnionDiscriminantSchema"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"types.SingleUnionTypeKeySchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"types.SingleUnionTypeKey":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeKeySchema"}]},"types.SingleUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},key:{oneOf:[{$ref:"#/definitions/types.SingleUnionTypeKey"},{type:"null"}]}},additionalProperties:!1},"types.SingleUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeDetailedSchema"}]},"types.DiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminant:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminant"},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"base-properties":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},union:{type:"object",additionalProperties:{$ref:"#/definitions/types.SingleUnionTypeSchema"}}},required:["union"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeDetailedSchema"}]},"types.UndiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminated:{const:!1},union:{type:"array",items:{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeSchema"}}},required:["discriminated","union"],additionalProperties:!1},"types.AliasSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.TypeDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectSchema"},{$ref:"#/definitions/types.EnumSchema"},{$ref:"#/definitions/types.DiscriminatedUnionSchema"},{$ref:"#/definitions/types.UndiscriminatedUnionSchema"},{$ref:"#/definitions/types.AliasSchema"}]},"service.GrpcTransport":{type:"object",properties:{"service-name":{type:"string"}},required:["service-name"],additionalProperties:!1},"service.ServiceTransport":{type:"object",properties:{grpc:{oneOf:[{$ref:"#/definitions/service.GrpcTransport"},{type:"null"}]}},additionalProperties:!1},"service.HttpMethodSchema":{type:"string",enum:["GET","POST","PUT","PATCH","DELETE","HEAD"]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"auth.AuthScope":{type:"string"},"service.HttpEndpointSecurityItem":{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}}},"service.HttpEndpointSecurity":{type:"array",items:{$ref:"#/definitions/service.HttpEndpointSecurityItem"}},"service.HttpEndpointAuth":{anyOf:[{type:"boolean"},{$ref:"#/definitions/service.HttpEndpointSecurity"}]},"service.QueryParameterTypeReferenceDetailed":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"allow-multiple":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpQueryParameterSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.QueryParameterTypeReferenceDetailed"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"service.HttpReferencedRequestBodySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"service.FormDataBodyEncodingStyle":{type:"string",enum:["json","exploded","form"]},"service.HttpInlineFileRequestBodyPropertySchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/service.FormDataBodyEncodingStyle"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpInlineRequestBodyPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpInlineFileRequestBodyPropertySchema"}]},"service.HttpInlineRequestBodySchema":{type:"object",properties:{extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpInlineRequestBodyPropertySchema"}},{type:"null"}]}},additionalProperties:!1},"service.HttpRequestBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpReferencedRequestBodySchema"},{$ref:"#/definitions/service.HttpInlineRequestBodySchema"}]},"service.HttpRequestSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/service.HttpRequestBodySchema"},{type:"null"}]}},additionalProperties:!1},"service.HttpRequest":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpRequestSchema"}]},"service.HttpResponseSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},property:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"service.HttpResponseSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseSchemaDetailed"}]},"service.StreamFormat":{type:"string",enum:["sse","json"]},"service.HttpResponseStreamSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"},format:{oneOf:[{$ref:"#/definitions/service.StreamFormat"},{type:"null"}]},terminator:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpResponseStreamSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseStreamSchemaDetailed"}]},"service.ResponseErrorWithDocsSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},error:{type:"string"}},required:["error"],additionalProperties:!1},"service.ResponseError":{anyOf:[{type:"string"},{$ref:"#/definitions/service.ResponseErrorWithDocsSchema"}]},"service.ResponseErrorsSchema":{type:"array",items:{$ref:"#/definitions/service.ResponseError"}},"examples.ExampleTypeReferenceSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleBodyResponseSchema":{type:"object",properties:{error:{oneOf:[{type:"string"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},additionalProperties:!1},"examples.ExampleStreamResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleSseEventSchema":{type:"object",properties:{event:{type:"string"},data:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},required:["event"],additionalProperties:!1},"examples.ExampleSseResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleSseEventSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleResponseSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleBodyResponseSchema"},{$ref:"#/definitions/examples.ExampleStreamResponseSchema",description:"JSON Streams"},{$ref:"#/definitions/examples.ExampleSseResponseSchema",description:"Server-Sent Event streams"}]},"examples.SupportedSdkLanguageSchema":{type:"string",enum:["curl","python","javascript","typescript","go","ruby","csharp","java","js","node","ts","nodets","golang","dotnet","jvm","c#"]},"examples.ExampleCodeSampleSchemaSdk":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},sdk:{$ref:"#/definitions/examples.SupportedSdkLanguageSchema"},code:{type:"string"}},required:["sdk","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchemaLanguage":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},language:{type:"string"},code:{type:"string"},install:{oneOf:[{type:"string"},{type:"null"}]}},required:["language","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleCodeSampleSchemaSdk"},{$ref:"#/definitions/examples.ExampleCodeSampleSchemaLanguage"}]},"examples.ExampleEndpointCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/examples.ExampleResponseSchema"},{type:"null"}]},"code-samples":{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleCodeSampleSchema"}},{type:"null"}]}},additionalProperties:!1},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"service.Pagination":{anyOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"boolean"}]},"service.RetriesDisabledSchema":{type:"object",properties:{disabled:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"service.RetriesConfiguration":{anyOf:[{$ref:"#/definitions/service.RetriesDisabledSchema"}]},"service.HttpEndpointSchema":{type:"object",properties:{"display-name":{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},method:{oneOf:[{$ref:"#/definitions/service.HttpMethodSchema"},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/service.HttpEndpointAuth"},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},"stream-condition":{oneOf:[{type:"string"},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/service.HttpRequest"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},errors:{oneOf:[{$ref:"#/definitions/service.ResponseErrorsSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleEndpointCallSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/service.Pagination"},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},retries:{oneOf:[{$ref:"#/definitions/service.RetriesConfiguration"},{type:"null"}]}},required:["path"],additionalProperties:!1},"service.HttpServiceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},"base-path":{type:"string"},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},endpoints:{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpEndpointSchema"}}},required:["auth","base-path","endpoints"],additionalProperties:!1},"errors.ErrorDeclarationSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{type:"integer"},type:{oneOf:[{type:"string"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]}},required:["status-code"],additionalProperties:!1},"webhooks.WebhookMethodSchema":{type:"string",enum:["POST","GET"]},"webhooks.WebhookReferencedPayloadSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"webhooks.WebhookInlinedPayloadSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"webhooks.WebhookPayloadSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/webhooks.WebhookReferencedPayloadSchema"},{$ref:"#/definitions/webhooks.WebhookInlinedPayloadSchema"}]},"webhooks.WebhookSignatureAlgorithmSchema":{type:"string",enum:["sha256","sha1","sha384","sha512"]},"webhooks.WebhookSignatureEncodingSchema":{type:"string",enum:["base64","hex"]},"webhooks.WebhookPayloadComponentSchema":{type:"string",enum:["body","timestamp","notification-url","message-id"]},"webhooks.WebhookPayloadFormatSchema":{type:"object",properties:{components:{type:"array",items:{$ref:"#/definitions/webhooks.WebhookPayloadComponentSchema"}},delimiter:{oneOf:[{type:"string"},{type:"null"}]}},required:["components"],additionalProperties:!1},"webhooks.WebhookTimestampFormatSchema":{type:"string",enum:["unix-seconds","unix-millis","iso8601"]},"webhooks.WebhookTimestampSchema":{type:"object",properties:{header:{type:"string"},format:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampFormatSchema"},{type:"null"}]},tolerance:{oneOf:[{type:"integer"},{type:"null"}]}},required:["header"],additionalProperties:!1},"webhooks.AsymmetricAlgorithmSchema":{type:"string",enum:["rsa-sha256","rsa-sha384","rsa-sha512","ecdsa-sha256","ecdsa-sha384","ecdsa-sha512","ed25519"]},"webhooks.WebhookSignatureSchema":{type:"object",properties:{type:{type:"string",enum:["hmac","asymmetric"]}},oneOf:[{properties:{type:{const:"hmac"},header:{type:"string"},algorithm:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureAlgorithmSchema"},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"payload-format":{oneOf:[{$ref:"#/definitions/webhooks.WebhookPayloadFormatSchema"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header"]},{properties:{type:{const:"asymmetric"},header:{type:"string"},"asymmetric-algorithm":{$ref:"#/definitions/webhooks.AsymmetricAlgorithmSchema"},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"jwks-url":{oneOf:[{type:"string"},{type:"null"}]},"key-id-header":{oneOf:[{type:"string"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header","asymmetric-algorithm"]}]},"examples.ExampleWebhookCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},payload:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},required:["payload"],additionalProperties:!1},"webhooks.WebhookSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},method:{$ref:"#/definitions/webhooks.WebhookMethodSchema"},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},payload:{$ref:"#/definitions/webhooks.WebhookPayloadSchema"},signature:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebhookCallSchema"}},{type:"null"}]}},required:["method","payload"],additionalProperties:!1},"websocket.WebSocketOrigin":{type:"string",enum:["client","server"]},"websocket.WebSocketChannelReferencedMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"websocket.WebSocketChannelInlinedMessageSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"websocket.WebSocketChannelMessageBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/websocket.WebSocketChannelReferencedMessageSchema"},{$ref:"#/definitions/websocket.WebSocketChannelInlinedMessageSchema"}]},"websocket.WebSocketChannelMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"method-name":{oneOf:[{type:"string"},{type:"null"}]},origin:{$ref:"#/definitions/websocket.WebSocketOrigin"},body:{$ref:"#/definitions/websocket.WebSocketChannelMessageBodySchema"}},required:["origin","body"],additionalProperties:!1},"examples.ExampleWebSocketMessage":{type:"object",properties:{type:{type:"string"},body:{type:["string","number","boolean","object","array","null"]}},required:["type","body"],additionalProperties:!1},"examples.ExampleWebSocketSession":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},messages:{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketMessage"}}},required:["messages"],additionalProperties:!1},"websocket.WebSocketChannelSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},"connect-method-name":{oneOf:[{type:"string"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},messages:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/websocket.WebSocketChannelMessageSchema"}},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketSession"}},{type:"null"}]}},required:["auth","path"],additionalProperties:!1}},AMp={type:dMp,properties:mMp,additionalProperties:hMp,definitions:gMp};var kEi={};X(kEi,{additionalProperties:()=>EMp,default:()=>IMp,definitions:()=>vMp,properties:()=>bMp,type:()=>yMp});var yMp="object",bMp={imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},types:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeDeclarationSchema"}},{type:"null"}]},service:{oneOf:[{$ref:"#/definitions/service.HttpServiceSchema"},{type:"null"}]},errors:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/errors.ErrorDeclarationSchema"}},{type:"null"}]},webhooks:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/webhooks.WebhookSchema"}},{type:"null"}]},"webhook-signature":{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},channel:{oneOf:[{$ref:"#/definitions/websocket.WebSocketChannelSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},navigation:{oneOf:[{$ref:"#/definitions/file.Navigation"},{type:"null"}]},export:{oneOf:[{$ref:"#/definitions/file.Export"},{type:"null"}]}},EMp=!1,vMp={"examples.ExampleTypeValueSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleTypeSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},value:{$ref:"#/definitions/examples.ExampleTypeValueSchema"}},required:["value"],additionalProperties:!1},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"source.OpenAPISourceSchema":{type:"object",properties:{openapi:{type:"string"}},required:["openapi"],additionalProperties:!1},"source.ProtobufSourceSchema":{type:"object",properties:{proto:{type:"string"}},required:["proto"],additionalProperties:!1},"source.SourceSchema":{anyOf:[{$ref:"#/definitions/source.OpenAPISourceSchema"},{$ref:"#/definitions/source.ProtobufSourceSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"types.ObjectExtendsSchema":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"types.ObjectPropertyAccess":{type:"string",enum:["read-only","write-only"]},"types.ObjectPropertyWithAccessSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},access:{oneOf:[{$ref:"#/definitions/types.ObjectPropertyAccess"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.ObjectPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectPropertyWithAccessSchema"}]},"types.ObjectSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"types.CasingOverridesSchema":{type:"object",properties:{camel:{oneOf:[{type:"string"},{type:"null"}]},snake:{oneOf:[{type:"string"},{type:"null"}]},pascal:{oneOf:[{type:"string"},{type:"null"}]},"screaming-snake":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"types.EnumValueSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},casing:{oneOf:[{$ref:"#/definitions/types.CasingOverridesSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.EnumValue":{anyOf:[{type:"string"},{$ref:"#/definitions/types.EnumValueSchema"}]},"types.EnumSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},default:{oneOf:[{type:"string"},{type:"null"}]},enum:{type:"array",items:{$ref:"#/definitions/types.EnumValue"}},"forward-compatible":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["enum"],additionalProperties:!1},"types.UnionDiscriminatorContext":{type:"string",enum:["data","protocol"]},"types.UnionDiscriminantSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},context:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminatorContext"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.UnionDiscriminant":{anyOf:[{type:"string"},{$ref:"#/definitions/types.UnionDiscriminantSchema"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"types.SingleUnionTypeKeySchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"types.SingleUnionTypeKey":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeKeySchema"}]},"types.SingleUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},key:{oneOf:[{$ref:"#/definitions/types.SingleUnionTypeKey"},{type:"null"}]}},additionalProperties:!1},"types.SingleUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeDetailedSchema"}]},"types.DiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminant:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminant"},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"base-properties":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},union:{type:"object",additionalProperties:{$ref:"#/definitions/types.SingleUnionTypeSchema"}}},required:["union"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeDetailedSchema"}]},"types.UndiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminated:{const:!1},union:{type:"array",items:{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeSchema"}}},required:["discriminated","union"],additionalProperties:!1},"types.AliasSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.TypeDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectSchema"},{$ref:"#/definitions/types.EnumSchema"},{$ref:"#/definitions/types.DiscriminatedUnionSchema"},{$ref:"#/definitions/types.UndiscriminatedUnionSchema"},{$ref:"#/definitions/types.AliasSchema"}]},"service.GrpcTransport":{type:"object",properties:{"service-name":{type:"string"}},required:["service-name"],additionalProperties:!1},"service.ServiceTransport":{type:"object",properties:{grpc:{oneOf:[{$ref:"#/definitions/service.GrpcTransport"},{type:"null"}]}},additionalProperties:!1},"service.HttpMethodSchema":{type:"string",enum:["GET","POST","PUT","PATCH","DELETE","HEAD"]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"auth.AuthScope":{type:"string"},"service.HttpEndpointSecurityItem":{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}}},"service.HttpEndpointSecurity":{type:"array",items:{$ref:"#/definitions/service.HttpEndpointSecurityItem"}},"service.HttpEndpointAuth":{anyOf:[{type:"boolean"},{$ref:"#/definitions/service.HttpEndpointSecurity"}]},"service.QueryParameterTypeReferenceDetailed":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"allow-multiple":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpQueryParameterSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.QueryParameterTypeReferenceDetailed"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"service.HttpReferencedRequestBodySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"service.FormDataBodyEncodingStyle":{type:"string",enum:["json","exploded","form"]},"service.HttpInlineFileRequestBodyPropertySchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/service.FormDataBodyEncodingStyle"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpInlineRequestBodyPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpInlineFileRequestBodyPropertySchema"}]},"service.HttpInlineRequestBodySchema":{type:"object",properties:{extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpInlineRequestBodyPropertySchema"}},{type:"null"}]}},additionalProperties:!1},"service.HttpRequestBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpReferencedRequestBodySchema"},{$ref:"#/definitions/service.HttpInlineRequestBodySchema"}]},"service.HttpRequestSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/service.HttpRequestBodySchema"},{type:"null"}]}},additionalProperties:!1},"service.HttpRequest":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpRequestSchema"}]},"service.HttpResponseSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},property:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"service.HttpResponseSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseSchemaDetailed"}]},"service.StreamFormat":{type:"string",enum:["sse","json"]},"service.HttpResponseStreamSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"},format:{oneOf:[{$ref:"#/definitions/service.StreamFormat"},{type:"null"}]},terminator:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpResponseStreamSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseStreamSchemaDetailed"}]},"service.ResponseErrorWithDocsSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},error:{type:"string"}},required:["error"],additionalProperties:!1},"service.ResponseError":{anyOf:[{type:"string"},{$ref:"#/definitions/service.ResponseErrorWithDocsSchema"}]},"service.ResponseErrorsSchema":{type:"array",items:{$ref:"#/definitions/service.ResponseError"}},"examples.ExampleTypeReferenceSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleBodyResponseSchema":{type:"object",properties:{error:{oneOf:[{type:"string"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},additionalProperties:!1},"examples.ExampleStreamResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleSseEventSchema":{type:"object",properties:{event:{type:"string"},data:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},required:["event"],additionalProperties:!1},"examples.ExampleSseResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleSseEventSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleResponseSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleBodyResponseSchema"},{$ref:"#/definitions/examples.ExampleStreamResponseSchema",description:"JSON Streams"},{$ref:"#/definitions/examples.ExampleSseResponseSchema",description:"Server-Sent Event streams"}]},"examples.SupportedSdkLanguageSchema":{type:"string",enum:["curl","python","javascript","typescript","go","ruby","csharp","java","js","node","ts","nodets","golang","dotnet","jvm","c#"]},"examples.ExampleCodeSampleSchemaSdk":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},sdk:{$ref:"#/definitions/examples.SupportedSdkLanguageSchema"},code:{type:"string"}},required:["sdk","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchemaLanguage":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},language:{type:"string"},code:{type:"string"},install:{oneOf:[{type:"string"},{type:"null"}]}},required:["language","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleCodeSampleSchemaSdk"},{$ref:"#/definitions/examples.ExampleCodeSampleSchemaLanguage"}]},"examples.ExampleEndpointCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/examples.ExampleResponseSchema"},{type:"null"}]},"code-samples":{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleCodeSampleSchema"}},{type:"null"}]}},additionalProperties:!1},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"service.Pagination":{anyOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"boolean"}]},"service.RetriesDisabledSchema":{type:"object",properties:{disabled:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"service.RetriesConfiguration":{anyOf:[{$ref:"#/definitions/service.RetriesDisabledSchema"}]},"service.HttpEndpointSchema":{type:"object",properties:{"display-name":{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},method:{oneOf:[{$ref:"#/definitions/service.HttpMethodSchema"},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/service.HttpEndpointAuth"},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},"stream-condition":{oneOf:[{type:"string"},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/service.HttpRequest"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},errors:{oneOf:[{$ref:"#/definitions/service.ResponseErrorsSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleEndpointCallSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/service.Pagination"},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},retries:{oneOf:[{$ref:"#/definitions/service.RetriesConfiguration"},{type:"null"}]}},required:["path"],additionalProperties:!1},"service.HttpServiceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},"base-path":{type:"string"},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},endpoints:{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpEndpointSchema"}}},required:["auth","base-path","endpoints"],additionalProperties:!1},"errors.ErrorDeclarationSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{type:"integer"},type:{oneOf:[{type:"string"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]}},required:["status-code"],additionalProperties:!1},"webhooks.WebhookMethodSchema":{type:"string",enum:["POST","GET"]},"webhooks.WebhookReferencedPayloadSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"webhooks.WebhookInlinedPayloadSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"webhooks.WebhookPayloadSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/webhooks.WebhookReferencedPayloadSchema"},{$ref:"#/definitions/webhooks.WebhookInlinedPayloadSchema"}]},"webhooks.WebhookSignatureAlgorithmSchema":{type:"string",enum:["sha256","sha1","sha384","sha512"]},"webhooks.WebhookSignatureEncodingSchema":{type:"string",enum:["base64","hex"]},"webhooks.WebhookPayloadComponentSchema":{type:"string",enum:["body","timestamp","notification-url","message-id"]},"webhooks.WebhookPayloadFormatSchema":{type:"object",properties:{components:{type:"array",items:{$ref:"#/definitions/webhooks.WebhookPayloadComponentSchema"}},delimiter:{oneOf:[{type:"string"},{type:"null"}]}},required:["components"],additionalProperties:!1},"webhooks.WebhookTimestampFormatSchema":{type:"string",enum:["unix-seconds","unix-millis","iso8601"]},"webhooks.WebhookTimestampSchema":{type:"object",properties:{header:{type:"string"},format:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampFormatSchema"},{type:"null"}]},tolerance:{oneOf:[{type:"integer"},{type:"null"}]}},required:["header"],additionalProperties:!1},"webhooks.AsymmetricAlgorithmSchema":{type:"string",enum:["rsa-sha256","rsa-sha384","rsa-sha512","ecdsa-sha256","ecdsa-sha384","ecdsa-sha512","ed25519"]},"webhooks.WebhookSignatureSchema":{type:"object",properties:{type:{type:"string",enum:["hmac","asymmetric"]}},oneOf:[{properties:{type:{const:"hmac"},header:{type:"string"},algorithm:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureAlgorithmSchema"},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"payload-format":{oneOf:[{$ref:"#/definitions/webhooks.WebhookPayloadFormatSchema"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header"]},{properties:{type:{const:"asymmetric"},header:{type:"string"},"asymmetric-algorithm":{$ref:"#/definitions/webhooks.AsymmetricAlgorithmSchema"},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"jwks-url":{oneOf:[{type:"string"},{type:"null"}]},"key-id-header":{oneOf:[{type:"string"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header","asymmetric-algorithm"]}]},"examples.ExampleWebhookCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},payload:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},required:["payload"],additionalProperties:!1},"webhooks.WebhookSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},method:{$ref:"#/definitions/webhooks.WebhookMethodSchema"},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},payload:{$ref:"#/definitions/webhooks.WebhookPayloadSchema"},signature:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebhookCallSchema"}},{type:"null"}]}},required:["method","payload"],additionalProperties:!1},"websocket.WebSocketOrigin":{type:"string",enum:["client","server"]},"websocket.WebSocketChannelReferencedMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"websocket.WebSocketChannelInlinedMessageSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"websocket.WebSocketChannelMessageBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/websocket.WebSocketChannelReferencedMessageSchema"},{$ref:"#/definitions/websocket.WebSocketChannelInlinedMessageSchema"}]},"websocket.WebSocketChannelMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"method-name":{oneOf:[{type:"string"},{type:"null"}]},origin:{$ref:"#/definitions/websocket.WebSocketOrigin"},body:{$ref:"#/definitions/websocket.WebSocketChannelMessageBodySchema"}},required:["origin","body"],additionalProperties:!1},"examples.ExampleWebSocketMessage":{type:"object",properties:{type:{type:"string"},body:{type:["string","number","boolean","object","array","null"]}},required:["type","body"],additionalProperties:!1},"examples.ExampleWebSocketSession":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},messages:{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketMessage"}}},required:["messages"],additionalProperties:!1},"websocket.WebSocketChannelSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},"connect-method-name":{oneOf:[{type:"string"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},messages:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/websocket.WebSocketChannelMessageSchema"}},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketSession"}},{type:"null"}]}},required:["auth","path"],additionalProperties:!1},"file.Navigation":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"file.ExportDetailed":{type:"object",properties:{dependency:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]}},required:["dependency"],additionalProperties:!1},"file.Export":{anyOf:[{type:"string"},{$ref:"#/definitions/file.ExportDetailed"}]}},IMp={type:yMp,properties:bMp,additionalProperties:EMp,definitions:vMp};var QEi=new Map,NEi=new Map,jEi=new Map;function haa({files:e,absolutePathToDefinition:t,skipValidation:r}){let n,i={},o={},s={};for(let[a,u]of ay(e)){let c=u.contents,l=p=>{s[a]={type:Vc.JSONSCHEMA_VALIDATION,error:p}};if(a===qb){let p=QEi.get(u.rawContents);if(p!=null&&(p.validated||r))n={defaultUrl:p.value["default-url"],contents:p.value,rawContents:u.rawContents};else if(r){let d=Hd.serialization.RootApiFileSchema.parseOrThrow(c);QEi.set(u.rawContents,{value:d,validated:!1}),n={defaultUrl:d["default-url"],contents:d,rawContents:u.rawContents}}else{let d=Oj(c,REi);if(d.success){let f=Hd.serialization.RootApiFileSchema.parseOrThrow(c);QEi.set(u.rawContents,{value:f,validated:!0}),n={defaultUrl:f["default-url"],contents:f,rawContents:u.rawContents}}else l(d)}}else if(maa.default.basename(a)===Pp){let p=jEi.get(u.rawContents);if(p!=null&&(p.validated||r))o[a]={defaultUrl:typeof p.value.export=="object"?p.value.export.url:void 0,contents:p.value,rawContents:u.rawContents};else if(r){let d=Hd.serialization.PackageMarkerFileSchema.parseOrThrow(c);jEi.set(u.rawContents,{value:d,validated:!1}),o[a]={defaultUrl:typeof d.export=="object"?d.export.url:void 0,contents:d,rawContents:u.rawContents}}else{let d=Oj(c,kEi);if(d.success){let f=Hd.serialization.PackageMarkerFileSchema.parseOrThrow(c);jEi.set(u.rawContents,{value:f,validated:!0}),o[a]={defaultUrl:typeof f.export=="object"?f.export.url:void 0,contents:f,rawContents:u.rawContents}}else l(d)}}else{let p=NEi.get(u.rawContents);if(p!=null&&(p.validated||r))i[a]={defaultUrl:void 0,contents:p.value,rawContents:u.rawContents,absoluteFilePath:We(t,a)};else if(r){let d=Hd.serialization.DefinitionFileSchema.parseOrThrow(c);NEi.set(u.rawContents,{value:d,validated:!1}),i[a]={defaultUrl:void 0,contents:d,rawContents:u.rawContents,absoluteFilePath:We(t,a)}}else{let d=Oj(c,FEi);if(d.success){let f=Hd.serialization.DefinitionFileSchema.parseOrThrow(c);NEi.set(u.rawContents,{value:f,validated:!0}),i[a]={defaultUrl:void 0,contents:f,rawContents:u.rawContents,absoluteFilePath:We(t,a)}}else l(d)}}}return n==null?{didSucceed:!1,failures:{[_e.of(qb)]:{type:Vc.FILE_MISSING},...s}}:Object.keys(s).length>0?{didSucceed:!1,failures:s}:{didSucceed:!0,namedDefinitionFiles:i,rootApiFile:n,packageMarkers:o}}var KS=class extends $5{type="fern";context;fernWorkspaces={};loadAPIWorkspace;constructor({context:t,loadAPIWorkspace:r,...n}){super(n),this.context=t,this.loadAPIWorkspace=r}async getDefinition({context:t},r){let n=t||this.context;return(await this.toFernWorkspace({context:n},r)).definition}async toFernWorkspace({context:t,skipValidation:r},n,i,o){let s=(0,gaa.default)(n??{}),a=this.fernWorkspaces[s];if(a==null){let u=t||this.context,c=We(this.absoluteFilePath,_e.of(Kh)),l=await Xti({absolutePathToWorkspace:this.absoluteFilePath,context:u}),p=await Rna(c,"{yml,yaml}"),d=await Fna(p);if(!d.didSucceed)return Fpr(d.failures,u.logger),u.failAndThrow();let f=haa({files:d.files,absolutePathToDefinition:c,skipValidation:r});if(!f.didSucceed)return Fpr(f.failures,u.logger),u.failAndThrow();let m=await daa({dependenciesConfiguration:l,structuralValidationResult:f,context:u,cliVersion:this.cliVersion,settings:n,loadAPIWorkspace:this.loadAPIWorkspace});if(!m.didSucceed)return Fpr(m.failures,u.logger),u.failAndThrow();let h={absoluteFilePath:c,rootApiFile:f.rootApiFile,namedDefinitionFiles:f.namedDefinitionFiles,packageMarkers:m.packageMarkers,importedDefinitions:m.importedDefinitions};n?.auth!=null&&(h={...h,rootApiFile:{...h.rootApiFile,contents:{...h.rootApiFile.contents,auth:n?.auth}}}),a=new qD({absoluteFilePath:this.absoluteFilePath,generatorsConfiguration:this.generatorsConfiguration,dependenciesConfiguration:l,workspaceName:this.workspaceName,definition:h,cliVersion:this.cliVersion,sources:[]}),this.fernWorkspaces[s]=a}return a}getAbsoluteFilePaths(){return[this.absoluteFilePath]}};qt();var Npa=require("fs/promises");var xpa=xe(Cpa(),1);async function M6(e){return(await(0,xpa.convertObj)(e,{})).openapi}var Tpa=require("fs/promises");var Dpa=require("path");St();var _pa=require("fs/promises");async function NVe({absoluteFilePathToOverrides:e,data:t,context:r,allowNullKeys:n}){let i=null;try{let o=(await(0,_pa.readFile)(e,"utf8")).toString();try{i=JSON.parse(o)}catch{i=xr.load(o,{json:!0})}}catch{return r.failAndThrow(`Failed to read overrides from file ${e}`)}return f9({data:t,overrides:i,allowNullKeys:n})}var Spa=require("fs/promises");var lmr=require("path");function Bpa(e){return e.startsWith("http://")||e.startsWith("https://")}async function F5p(e,t){let r=t.get(e);if(r!==void 0)return r;let n=await(0,Spa.readFile)(e,"utf-8"),i=xr.load(n);return t.set(e,i),i}function Opa(e,t){let r=new Map;if(e==null||typeof e!="object"||Array.isArray(e))return r;let n=e;function i(s,a){if(!(s==null||typeof s!="object"||Array.isArray(s)))for(let[u,c]of Object.entries(s)){if(!k5p(c))continue;let l=c.$ref,{jsonPointer:p,absolutePath:d}=Ppa(l,t);r.set(`${d}#${p}`,`${a}/${u}`)}}i(n.channels,"#/channels"),i(n.operations,"#/operations");let o=n.components;if(o!=null&&typeof o=="object"&&!Array.isArray(o)){let s=o;i(s.schemas,"#/components/schemas"),i(s.messages,"#/components/messages"),i(s.parameters,"#/components/parameters")}return r}function Ppa(e,t){let r=e.indexOf("#"),n=r>=0?e.slice(0,r):e,i=r>=0?e.slice(r+1):"",o=(0,lmr.resolve)(t,n);return{filePath:n,jsonPointer:i,absolutePath:o}}function k5p(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e.$ref;return typeof t=="string"&&t.length>0&&!t.startsWith("#")&&!Bpa(t)}function Q5p(e,t,r,n){if(e===r)return"#"+t;let i=`${e}#${t}`,o=n.get(i);if(o!==void 0)return o;for(let[s,a]of n){let u=s.indexOf("#"),c=s.slice(0,u),l=s.slice(u+1);if(c===e&&t.startsWith(l+"/")){let p=t.slice(l.length);return a+p}}return null}async function FIt(e,t,r,n,i=!1,o=new Set,s=new Map){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return Promise.all(e.map(l=>FIt(l,t,r,n,i,o,s)));let a=e,u=a.$ref;if(typeof u=="string"&&!u.startsWith("#")&&!Bpa(u)){let{jsonPointer:l,absolutePath:p}=Ppa(u,t),d={};for(let[v,E]of Object.entries(a))v!=="$ref"&&(d[v]=E);let f=Object.keys(d).length>0;if(i){let v=Q5p(p,l,r,n);if(v!==null)return{$ref:v,...d}}let m=`${p}#${l}`;if(o.has(m))throw new Error(`Circular $ref detected: "${u}" (resolved to "${m}")`);let h=new Set(o);h.add(m);let g=await F5p(p,s);if(l!==""){let v=l.split("/").filter(I=>I!==""),E=g;for(let I of v){let w=I.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof E!="object"||E==null)throw new Error(`Cannot navigate JSON Pointer "${l}" in "${p}": expected an object but found ${typeof E} at key "${w}"`);let x=E[w];if(x===void 0)throw new Error(`Cannot navigate JSON Pointer "${l}" in "${p}": key "${w}" not found`);E=x}g=E}let A=(0,lmr.dirname)(p),b=await FIt(g,A,r,n,!0,h,s);return f&&b!=null&&typeof b=="object"&&!Array.isArray(b)?{...b,...d}:b}let c={};for(let[l,p]of Object.entries(a))c[l]=await FIt(p,t,r,n,i,o,s);return c}async function UIi({context:e,absoluteFilePath:t,absoluteFilePathToOverrides:r}){let n=(await(0,Tpa.readFile)(t)).toString(),i=await xr.load(n),o=(0,Dpa.dirname)(t),s=Opa(i,o),a=await FIt(i,o,t,s),u=[];r!=null&&(Array.isArray(r)?u=r:u=[r]);let c=a;for(let l of u)c=await NVe({absoluteFilePathToOverrides:l,context:e,data:c});return c}qt();var Qpa=require("fs/promises");St();var fmr=require("fs/promises");var pmr=xe(require("path"),1),Rpa=xe(Cw(),1),zIi;async function N5p(){return zIi===void 0&&(zIi=(await Rpa.default.dir({prefix:"fern-overlay-"})).path),zIi}async function Fpa({absoluteFilePathToOverlay:e,absoluteFilePathToOpenAPI:t,data:r,context:n}){let i=await j5p(e,n);if(!M5p(i,n))return r;n.logger.debug(`Applying overlay "${i.info.title}" v${i.info.version}`);let o=ZNe({data:r,overlay:i}),s=await N5p(),a=pmr.default.basename(t),u=`${pmr.default.parse(a).name}.overlaid.json`,c=pmr.default.join(s,u);return await(0,fmr.writeFile)(c,JSON.stringify(o,null,2),"utf8"),n.logger.info(`Wrote overlaid OpenAPI spec to: ${c}`),o}async function j5p(e,t){let r;try{r=await(0,fmr.readFile)(e,"utf8")}catch(n){return t.failAndThrow(`Failed to read overlay file at ${e}: ${n}`)}try{try{return JSON.parse(r)}catch{return xr.load(r,{json:!0})}}catch(n){return t.failAndThrow(`Failed to parse overlay file at ${e}: ${n}`)}}function M5p(e,t){if(!e.overlay)return t.logger.error("Overlay file missing required 'overlay' version field"),!1;if(!e.info?.title||!e.info?.version)return t.logger.error("Overlay file missing required 'info.title' or 'info.version' field"),!1;if(!Array.isArray(e.actions)||e.actions.length===0)return t.logger.error("Overlay file must have at least one action"),!1;for(let r=0;r<e.actions.length;r++){let n=e.actions[r];if(!n?.target)return t.logger.error(`Overlay action at index ${r} missing required 'target' field`),!1;if(n.update===void 0&&!n.remove)return t.logger.error(`Overlay action at index ${r} must have either 'update' or 'remove'`),!1}return!0}var NIt=xe(Dtr(),1);qt();var kpa=xe(Dtr(),1),kIt=xe(require("path"),1),QIt=class extends kpa.BaseResolver{absolutePathToOpenAPIOverrides;absolutePathToOpenAPIOverlays;constructor({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r}){super(),this.absolutePathToOpenAPIOverrides=t,this.absolutePathToOpenAPIOverlays=r}resolveExternalRef(t,r){let n=super.resolveExternalRef(t,r);if(n.startsWith("http://")||n.startsWith("https://")||y9(Ut.of(n)))return n;if(this.absolutePathToOpenAPIOverlays!=null){let i=kIt.default.resolve(kIt.default.dirname(this.absolutePathToOpenAPIOverlays),r);if(y9(Ut.of(i)))return i}return this.absolutePathToOpenAPIOverrides!=null?kIt.default.resolve(kIt.default.dirname(this.absolutePathToOpenAPIOverrides),r):n}};async function dmr({absolutePathToOpenAPI:e,absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r,parsed:n}){return(n!=null?await(0,NIt.bundle)({...Rtr,doc:{source:new NIt.Source(e,"<openapi>"),parsed:n},externalRefResolver:new QIt({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r})}):await(0,NIt.bundle)({...Rtr,ref:e,externalRefResolver:new QIt({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r})})).bundle.parsed}function L5p(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}var U5p=["examples","example",En.EXAMPLES,A_.REDOCLY_CODE_SAMPLES_CAMEL,A_.REDOCLY_CODE_SAMPLES_KEBAB];async function L6({context:e,absolutePathToOpenAPI:t,absolutePathToOpenAPIOverrides:r,absolutePathToOpenAPIOverlays:n,loadAiExamples:i=!1}){let o=await dmr({absolutePathToOpenAPI:t}),s=[];r!=null?Array.isArray(r)?s=r:s=[r]:typeof o=="object"&&o[En.OPENAPI_OVERIDES_FILEPATH]!=null&&(s=[We(An(t),_e.of(o[En.OPENAPI_OVERIDES_FILEPATH]))]);let a=o;for(let c of s)a=await NVe({absoluteFilePathToOverrides:c,context:e,data:a,allowNullKeys:U5p}),a=await dmr({absolutePathToOpenAPI:t,absolutePathToOpenAPIOverrides:c,parsed:a});if(n!=null&&(a=await Fpa({absoluteFilePathToOverlay:n,absoluteFilePathToOpenAPI:t,context:e,data:a})),i){let c=We(An(t),_e.of("ai_examples_override.yml"));try{let l=await(0,Qpa.readFile)(c,"utf-8"),p=xr.load(l);if(p?.paths&&a.paths){for(let[d,f]of Object.entries(p.paths))if(f&&typeof f=="object")for(let[m,h]of Object.entries(f)){let g=m.toLowerCase(),A=a.paths[d];if(!A&&a.paths){let b=L5p(d,Object.keys(a.paths));b&&(A=a.paths[b],e.logger.debug(`Matched override path "${d}" to OpenAPI path "${b}" using pattern matching`))}if(A&&typeof A=="object"){let v=A[g];if(v&&typeof v=="object"){let E=v;!E["x-fern-examples"]&&h["x-fern-examples"]&&(E["x-fern-examples"]=h["x-fern-examples"],e.logger.debug(`Added AI examples for ${m.toUpperCase()} ${d} from override file`))}}}}e.logger.debug(`Processed AI examples from ${c}`)}catch{}}return a!==o&&s.length===0||n!=null?await dmr({absolutePathToOpenAPI:t,absolutePathToOpenAPIOverlays:n,parsed:a}):a}var U6=class{absoluteFilePath;constructor(t){this.absoluteFilePath=t}async loadDocuments({context:t,specs:r,loadAiExamples:n=!1}){return(await Promise.all(r.map(o=>this.loadDocument({context:t,spec:o,loadAiExamples:n})))).filter(o=>o!=null)}async loadDocument({context:t,spec:r,loadAiExamples:n}){try{let i=(await(0,Npa.readFile)(r.absoluteFilepath)).toString(),o=ca(this.absoluteFilePath,r.source.file);r.source.relativePathToDependency!=null&&(o=We(r.source.relativePathToDependency,o));let s=r.source.type==="protobuf"?ES.protobuf({file:o}):ES.openapi({file:o});if(i.includes("openapi")||i.includes("swagger"))try{let a=await L6({absolutePathToOpenAPI:r.absoluteFilepath,context:t,absolutePathToOpenAPIOverrides:r.absoluteFilepathToOverrides,absolutePathToOpenAPIOverlays:r.absoluteFilepathToOverlays,loadAiExamples:n});if(Hti(a))return{type:"openapi",value:a,source:s,namespace:r.namespace,settings:dM({options:r.settings})};if(g8(a))return(!a.schemes||a.schemes.length===0)&&(a.schemes=["https"]),{type:"openapi",value:await M6(a),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.debug(`Failed to parse OpenAPI document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}if(i.includes("asyncapi"))try{return{type:"asyncapi",value:await UIi({context:t,absoluteFilePath:r.absoluteFilepath,absoluteFilePathToOverrides:r.absoluteFilepathToOverrides}),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.error(`Failed to parse AsyncAPI document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}if(i.includes("openrpc"))try{return{type:"asyncapi",value:await UIi({context:t,absoluteFilePath:r.absoluteFilepath,absoluteFilePathToOverrides:r.absoluteFilepathToOverrides}),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.error(`Failed to parse OpenRPC document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}t.logger.warn(`${r.absoluteFilepath} is not a valid OpenAPI, AsyncAPI, or OpenRPC file. Skipping...`);return}catch(i){t.logger.error(`Failed to read or process file ${r.absoluteFilepath}: ${i}. Skipping...`);return}}};var Ki=class e{breadcrumbs=[];context;static STRING=Gt.TypeReference.primitive({v1:"STRING",v2:Gt.PrimitiveTypeV2.string({default:void 0,validation:void 0})});static OPTIONAL_STRING=Gt.TypeReference.container(Gt.ContainerType.optional(e.STRING));constructor({breadcrumbs:t=[],context:r}){this.breadcrumbs=t,this.context=r}};Ci();qt();var Mpa=require("fs/promises");var VIi=class{_map;_path;_lastScalar;_fragments;_count;constructor(){this._map={},this._path=[],this._lastScalar="",this._fragments=[],this._count=0}get map(){return this._map}resolveNode(t,r){if(t.path==="."&&(r="."),!this._map[r]){let{line:n,position:i,lineStart:o}=t;this._map[r]={line:n,position:i,lineStart:o}}t.children&&t.children.length>0&&t.children.forEach(n=>{this.resolveNode(n,(r==="."?"":r)+"."+n.path)})}iterFragments(t,r){for(let n=this._fragments.length-1;n>=0;n--){if(!this._fragments[n].path.startsWith(t)||this._fragments[n].path===t)continue;let i=this._fragments.pop();r(i)}}handleState(t,r){if(t==="close"){let n=r.result,i=r.kind,o=this._path.join(".");if(i==="scalar"){this._path.pop(),this._lastScalar=`${n}`;let{line:s,position:a,lineStart:u}=r;this._path.length===0?this._map["."+n]={line:s,position:a,lineStart:u}:this._fragments.push({path:this._path.join(".")+"."+n,line:s,position:a,lineStart:u})}else if(i==="mapping"){let s={path:o,children:[],line:0,position:0,lineStart:0},a=0;this.iterFragments(o,u=>{a++,!((!u.children||u.children.length===0)&&a%2===1)&&(this._path.length===1?this.resolveNode(u,u.path):(s.children.push({...u,path:u.path.slice(o.length+1)}),s.line=u.line,s.position=u.position,s.lineStart=u.lineStart))}),s.children&&s.children.length>0&&this._fragments.push(s),this._path.pop()}else if(i==="sequence"){let s={path:o,children:[],line:0,position:0,lineStart:0},a=new Set,u=n.length;this.iterFragments(o,c=>{a.has(c.position)||(u--,a.add(c.position),this._path.length===1?this.resolveNode(c,`${o}.${u}`):(s.children.push({...c,path:u.toString()}),s.line=c.line,s.position=c.position,s.lineStart=c.lineStart))}),s.children&&s.children.length>0&&this._fragments.push(s),this._path.pop()}else this._path.pop()}if(t==="open"){if(this._count===0){let{line:n,position:i,lineStart:o}=r;this._map["."]={line:n,position:i,lineStart:o}}this._path.push(this._lastScalar),this._count++}}listen(){return this.handleState.bind(this)}lookup(t){let r=t instanceof Array?t.map(i=>`${i}`).join("."):`${t}`;r.startsWith(".")||(r="."+r),r.startsWith("..")&&(r=r.slice(1)),r=r.replace(/\[/g,".").replace(/\]/g,"");let n=this._map[r];if(n)return{line:n.line+1,column:n.position-n.lineStart+1,position:n.position}}},jpa=VIi;var Rv;(function(e){e.WARNING="warning",e.ERROR="error"})(Rv||(Rv={}));var H4=class{errors=[];logger;breadcrumbToLineNumberMapper;relativeFilepathToSpec;constructor({logger:t,relativeFilepathToSpec:r}){this.logger=t,this.relativeFilepathToSpec=r,r&&(this.breadcrumbToLineNumberMapper=new qIi({logger:t,relativePathToFile:_e.of(r)}))}collect(t){this.errors.push(t)}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}dedupe(){let t=[],r=new Set,n=0;for(let i of this.errors){let o=i.path?i.path.join("->"):"",s=`${i.message}|${i.level||Rv.WARNING}|${o}`;r.has(s)?n++:(r.add(s),t.push(i))}return this.errors=t,n}getErrorStats(){this.dedupe();let t=0,r=0;for(let n of this.errors)n.level===Rv.ERROR?t++:(n.level===Rv.WARNING||n.level===void 0)&&r++;return{numErrors:t,numWarnings:r}}async logErrors({logWarnings:t}){this.dedupe();for(let r of this.errors){let n=r.level??Rv.WARNING;if(!(n===Rv.WARNING&&!t))switch(n){case Rv.ERROR:if(this.logger.log(qn.Debug,r.message),r.path&&r.path.length>0){let i=await this.breadcrumbToLineNumberMapper?.getSourceLocation(r.path),o=i?`${this.relativeFilepathToSpec}:${i.line}:${i.column}`:r.path.join(" -> ");this.logger.log(qn.Debug,` - at location (${o})`)}break;case Rv.WARNING:if(this.logger.log(qn.Warn,r.message),r.path&&r.path.length>0){let i=await this.breadcrumbToLineNumberMapper?.getSourceLocation(r.path),o=i?`${this.relativeFilepathToSpec}:${i.line}:${i.column}`:r.path.join(" -> ");this.logger.log(qn.Warn,` - at location (${o})`)}r.resolution&&this.logger.log(qn.Warn,` - resolution: ${r.resolution}`);break}}}},qIi=class{logger;relativePathToFile;map=new jpa;initialized=!1;constructor({relativePathToFile:t,logger:r}){this.relativePathToFile=t,this.logger=r}async initialize(){if(!this.initialized)try{let t=await(0,Mpa.readFile)(this.relativePathToFile,"utf-8");xr.load(t,{listener:this.map.listen()}),this.initialized=!0}catch(t){this.logger.log(qn.Warn,`Failed to initialize line number mapping for ${this.relativePathToFile}: ${JSON.stringify(t)}`)}}async getSourceLocation(t){return this.initialized||await this.initialize(),this.map.lookup(t)}};var QA=class e{args;spec;settings;errorCollector;logger;generationLanguage;smartCasing;casingsGenerator;namespace;exampleGenerationArgs;authOverrides;environmentOverrides;globalHeaderOverrides;enableUniqueErrorsPerEndpoint;generateV1Examples;documentBaseDir;constructor(t){this.args=t,this.spec=t.spec,this.settings=t.settings,this.errorCollector=t.errorCollector,this.logger=t.logger,this.generationLanguage=t.generationLanguage,this.smartCasing=t.smartCasing,this.namespace=t.namespace,this.casingsGenerator=NI({generationLanguage:t.generationLanguage,keywords:void 0,smartCasing:t.smartCasing}),this.exampleGenerationArgs=t.exampleGenerationArgs,this.authOverrides=t.authOverrides,this.environmentOverrides=t.environmentOverrides,this.globalHeaderOverrides=t.globalHeaderOverrides,this.enableUniqueErrorsPerEndpoint=t.enableUniqueErrorsPerEndpoint,this.generateV1Examples=t.generateV1Examples,this.documentBaseDir=t.documentBaseDir}static BREADCRUMBS_TO_IGNORE=["properties","allOf","anyOf"];convertBreadcrumbsToName(t){let r=t.filter((i,o)=>!(/^\d+$/.test(i)||e.BREADCRUMBS_TO_IGNORE.includes(i)||o===0&&i==="components"||o===1&&i==="schemas"||t[0]==="paths"&&(o===0||o===1&&["get","post","put","delete","patch"].includes(i)||o===2&&t[1]!=null&&["get","post","put","delete","patch"].includes(t[1])&&i==="parameters"))),n=Un(r.join("_"));return n.charAt(0).toUpperCase()+n.slice(1)}createFernFilepath(t={}){let r=this.namespace!=null?[this.casingsGenerator.generateName(this.namespace)]:[],n=t.name!=null?this.casingsGenerator.generateName(t.name):void 0;return{allParts:n?[...r,n]:r,packagePath:r,file:n}}resolveReference({reference:t,breadcrumbs:r,skipErrorCollector:n}){let i=this.spec,o=t.$ref.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/").map(s=>s.replace(/~1/g,"/"));for(let s of o){if(typeof i!="object"||i==null)return n||this.errorCollector.collect({level:Rv.ERROR,message:this.getErrorMessageForMissingRef({reference:t}),path:r}),{resolved:!1};i=i[s]}return i==null?(n||this.errorCollector.collect({level:Rv.ERROR,message:this.getErrorMessageForMissingRef({reference:t}),path:r}),{resolved:!1}):{resolved:!0,value:i}}getErrorMessageForMissingRef({reference:t}){let r=t.$ref.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/");return r.length>=3&&r[0]==="components"&&r[1]==="schemas"?`Schema ${r[2]} does not exist`:`${t.$ref} does not exist`}async resolveMaybeExternalReference(t){let r=this.spec,n,i=!1,o=null,s;if(this.isExternalReference(t.$ref)){i=!0;let c=t.$ref.split("#"),l=c[0];if(n=c[1],!l)return{resolved:!1};s=l;let p=await fetch(l);if(!p.ok)return{resolved:!1};try{let d=await p.text();try{o=JSON.parse(d),r=o}catch{o=xr.load(d),r=o}if(r==null)return{resolved:!1}}catch{return{resolved:!1}}if(!n)return{resolved:!0,value:r}}let a=n??t.$ref;if(a==null||typeof a!="string")return{resolved:!1};let u=a.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/").map(c=>c.replace(/~1/g,"/"));for(let c of u){if(typeof r!="object"||r==null)return{resolved:!1};r=r[c]}if(r==null)return{resolved:!1};if(i&&typeof r=="object"&&r!==null){let c=new Set;c.add(t.$ref),r=await this.resolveNestedExternalReferences(r,o,c,s)}return{resolved:!0,value:r}}async resolveNestedExternalReferences(t,r,n,i){if(t===null||typeof t!="object")return t;if(Array.isArray(t)){let s=[];for(let a of t)s.push(await this.resolveNestedExternalReferences(a,r,n,i));return s}if(this.isReferenceObject(t)){let s=t.$ref;if(this.isExternalReference(s)){if(n.has(s))return t;n.add(s);let a=await this.resolveMaybeExternalReference({$ref:s});if(n.delete(s),a.resolved)return a.value}else{let a=`${i}${s}`;if(n.has(a))return t;n.add(a);let u=r,c=s.substring(2).split("/").map(l=>l.replace(/~1/g,"/").replace(/~0/g,"~"));for(let l of c){if(typeof u!="object"||u===null)return t;u=u[l]}if(u!=null){let l=await this.resolveNestedExternalReferences(u,r,n,i);return n.delete(s),l}n.delete(s)}return t}let o={};for(let[s,a]of Object.entries(t))typeof a=="object"&&a!==null?o[s]=await this.resolveNestedExternalReferences(a,r,n,i):o[s]=a;return o}getExamplesFromSchema({schema:t,breadcrumbs:r}){if(t==null)return[];let n=t.example!=null?[t.example]:[];return t.examples!=null&&(Array.isArray(t.examples)?n.push(...t.examples):this.errorCollector.collect({message:"Received non-array schema examples",path:r})),n}getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:r,defaultExampleName:n}){if(t==null)return[];let i=[];if(t.example!=null){let o=this.generateUniqueName({prefix:n??`${r.join("_")}_example`,existingNames:[]});i.push([o,{value:t.example}])}return t.examples!=null&&i.push(...Object.entries(t.examples)),i}resolveMaybeReference({schemaOrReference:t,breadcrumbs:r,skipErrorCollector:n}){if(this.isReferenceObject(t)){let i=this.resolveReference({reference:t,breadcrumbs:r,skipErrorCollector:n});return i.resolved?i.value:void 0}return t}resolveExampleRecursively({example:t,breadcrumbs:r,maxDepth:n=10}){let i=t,o=0;for(;this.isReferenceObject(i);){if(o>=n){this.errorCollector.collect({message:`Maximum reference depth (${n}) exceeded while resolving example reference`,path:r});return}let s=this.resolveReference({reference:i,breadcrumbs:r,skipErrorCollector:!0});if(!s.resolved)return;i=s.value,o++}return i}resolveExample(t){if(!this.isReferenceObject(t))return t;let r=this.resolveReference({reference:t});return r.resolved?this.returnExampleValue(r.value):void 0}resolveExampleWithValue(t){if(!this.isReferenceObject(t))return this.returnExampleValue(t);let r=this.resolveReference({reference:t});return r.resolved?this.returnExampleValue(r.value):void 0}returnExampleValue(t){return this.isExampleWithValue(t)?t.value:t}getPropertyAccess(t){let r=t;for(;this.isReferenceObject(r);){let o=this.resolveReference({reference:r});if(!o.resolved)return;r=o.value}let{readOnly:n,writeOnly:i}=this.getReadOnlyWriteOnlyFromSchema(r);if(!(n&&i)){if(n)return Gt.ObjectPropertyAccess.ReadOnly;if(i)return Gt.ObjectPropertyAccess.WriteOnly}}getReadOnlyWriteOnlyFromSchema(t){if(t.allOf&&t.allOf.length>0){let r=!0,n=!0;for(let i of t.allOf){let o=i;if(this.isReferenceObject(i)){let a=this.resolveReference({reference:i});if(!a.resolved)continue;o=a.value}let s=this.getReadOnlyWriteOnlyFromSchema(o);r=r&&s.readOnly,n=n&&s.writeOnly}return{readOnly:r,writeOnly:n}}else return{readOnly:!!t.readOnly,writeOnly:!!t.writeOnly}}getAudiences({operation:t,breadcrumbs:r}){let i=new zI.AudienceExtension({operation:t,breadcrumbs:r,context:this}).convert();if(i!=null)return i.audiences}getAvailability({node:t,breadcrumbs:r}){for(;this.isReferenceObject(t);){let o=this.resolveReference({reference:t});if(!o.resolved)return;t=o.value}let i=new zI.FernAvailabilityExtension({node:t,breadcrumbs:r,context:this}).convert();if(i!=null)return{status:i,message:void 0};if(t.deprecated===!0)return{status:tv.Deprecated,message:void 0}}getNamespacedSchemaId(t){if(this.namespace==null)return t;let r=`${this.namespace}:`;return t.startsWith(r)?t:`${r}${t}`}getRawSchemaId(t){if(this.namespace==null)return t;let r=`${this.namespace}:`;return t.startsWith(r)?t.slice(r.length):t}getTypeIdFromSchemaReference(t){let r=t.$ref.match(/\/schemas\/(.+)$/);if(!(!r||!r[1]))return this.getNamespacedSchemaId(r[1])}getRawSchemaNameFromReference(t){let r=t.$ref.match(/\/schemas\/([^/]+)/);if(!(!r||!r[1]))return r[1]}createNamedTypeReference(t,r){return Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(t),typeId:this.getNamespacedSchemaId(t),displayName:r,default:void 0,inline:!1})}typeReferenceToDeclaredTypeName(t){if(t.type==="named")return{typeId:t.typeId,fernFilepath:{allParts:[],packagePath:[],file:void 0},name:t.name,displayName:t.displayName}}removeSchemaFromInlinedTypes({id:t,inlinedTypes:r}){let n=this.getNamespacedSchemaId(t);return Object.fromEntries(Object.entries(r).filter(([i])=>i!==n))}static maybeTrimPrefix(t,r){return t.startsWith(r)?t.slice(r.length):t}generateUniqueName({prefix:t,existingNames:r}){if(!r.includes(t))return t;let n=0;for(;r.includes(`${t}_${n}`);)n++;return`${t}_${n}`}isReferenceObject(t){return typeof t=="object"&&t!==null&&"$ref"in t}isExternalReference(t){return typeof t=="string"&&(t.startsWith("http://")||t.startsWith("https://"))}isReferenceObjectWithIdentifier(t){return this.isReferenceObject(t)&&("title"in t||"name"in t||"messageId"in t||"summary"in t)}isExampleWithSummary(t){return typeof t=="object"&&t!=null&&"summary"in t&&typeof t.summary=="string"&&t.summary.length>0}isExampleWithValue(t){return typeof t=="object"&&t!=null&&"value"in t}isOptional(t){return t.type==="container"&&t.container.type==="optional"}isNullable(t){return t.type==="container"&&t.container.type==="nullable"}isList(t){return t.type==="container"&&t.container.type==="list"}isFile(t){return t.type==="primitive"&&t.primitive.v2?.type==="string"&&t.primitive.v2.validation?.format==="binary"}getAsString(t){if(typeof t=="string")return t}getAsInteger(t){if(typeof t=="number"&&Number.isInteger(t))return t}getAsNumber(t){if(typeof t=="number")return t}getAsBoolean(t){if(typeof t=="boolean")return t}getAsArray(t){if(Array.isArray(t))return t}getAsObject(t){if(typeof t=="object"&&t!==null&&!Array.isArray(t))return t}getGroup({groupParts:t,namespace:r}){let n=[];return r!=null&&n.push(r),n.push(...t??[]),n}isObjectSchemaType(t){return t.type==="object"||t.properties!=null}};var _a=class{breadcrumbs;context;constructor(t){this.breadcrumbs=t.breadcrumbs,this.context=t.context}getExtensionValue(t,r){if(typeof t!="object"||t==null)return;let n=t[this.key];if(n!=null)return n;if(r!=null)return t[r]}};Ci();var zI={};X(zI,{AudienceExtension:()=>jVe,FernAvailabilityExtension:()=>mmr,FernEnumExtension:()=>MVe,FernIgnoreExtension:()=>iPe,FernOptionalExtension:()=>hmr,FernTypeExtension:()=>bmr,FernTypeNameExtension:()=>Emr,SdkGroupNameExtension:()=>gmr,SdkMethodNameExtension:()=>Amr,ServerFromOperationNameExtension:()=>ymr});var jVe=class extends _a{operation;key="x-fern-audiences";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];if(r.length!==0)return{audiences:r}}};var mmr=class extends _a{node;key="x-fern-availability";constructor({breadcrumbs:t,node:r,context:n}){super({breadcrumbs:t,context:n}),this.node=r}convert(){let t=this.getExtensionValue(this.node);if(t==null||typeof t!="string")return;switch(t.toUpperCase().replace(/[-_\s]/g,"_")){case"IN_DEVELOPMENT":return tv.InDevelopment;case"PRE_RELEASE":case"BETA":return tv.PreRelease;case"GENERAL_AVAILABILITY":case"GA":return tv.GeneralAvailability;case"DEPRECATED":return tv.Deprecated;default:return}}};var z5p=mt.object({snake:mt.string().optional(),camel:mt.string().optional(),screamingSnake:mt.string().optional(),pascal:mt.string().optional()}),V5p=mt.object({description:mt.string().optional(),name:mt.string().optional(),casing:z5p.optional()}),Lpa=mt.record(V5p);var MVe=class extends _a{schema;key="x-fern-enum";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(t==null)return;let r=Lpa.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-enum extension: ${r.error.message}`,path:this.breadcrumbs});return}return r.data}};var iPe=class extends _a{operation;key="x-fern-ignore";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-ignore",path:this.breadcrumbs});return}return t}}};var hmr=class extends _a{parameter;key="x-fern-optional";constructor({breadcrumbs:t,parameter:r,context:n}){super({breadcrumbs:t,context:n}),this.parameter=r}convert(){let t=this.getExtensionValue(this.parameter);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-optional",path:this.breadcrumbs});return}return t}}};var gmr=class extends _a{operation;key="x-fern-sdk-group-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];if(r.length!==0)return{groups:r}}};var Amr=class extends _a{operation;key="x-fern-sdk-method-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null&&typeof t=="string")return{methodName:t}}};var ymr=class extends _a{operation;key="x-fern-server-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation,"x-name");if(!(t==null||typeof t!="string"))return t}};var bmr=class extends _a{schema;key="x-fern-type";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(t!=null&&typeof t=="string")return t}};var Emr=class extends _a{schema;key="x-fern-type-name";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(typeof t=="string")return t}};var z6=class extends Ki{ir;audiences;irGraph;constructor({breadcrumbs:t=[],context:r,audiences:n}){super({breadcrumbs:t,context:r}),this.audiences=n,this.irGraph=new tOe(n),this.ir={auth:{docs:void 0,requirement:Gt.AuthSchemesRequirement.All,schemes:[]},selfHosted:!1,types:{},services:{},errors:{},webhookGroups:{},websocketChannels:void 0,headers:[],idempotencyHeaders:[],apiVersion:void 0,apiDisplayName:void 0,apiDocs:void 0,basePath:void 0,pathParameters:[],errorDiscriminationStrategy:Gt.ErrorDiscriminationStrategy.statusCode(),variables:[],serviceTypeReferenceInfo:{sharedTypes:[],typesReferencedOnlyByService:{}},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0,dynamic:void 0,environments:void 0,fdrApiDefinitionId:void 0,rootPackage:this.createPackage(),subpackages:{},sdkConfig:{hasFileDownloadEndpoints:!1,hasPaginatedEndpoints:!1,hasStreamingEndpoints:!1,isAuthMandatory:!0,platformHeaders:{language:"",sdkName:"",sdkVersion:"",userAgent:void 0}},audiences:void 0,generationMetadata:void 0,apiPlayground:void 0}}removeXFernIgnores({document:t,breadcrumbs:r=[]}){return Array.isArray(t)?t.filter((n,i)=>!new iPe({breadcrumbs:[...r,String(i)],operation:n,context:this.context}).convert()).map((n,i)=>this.removeXFernIgnores({document:n,breadcrumbs:[...r,String(i)]})):t!=null&&typeof t=="object"?Object.fromEntries(Object.entries(t).filter(([n,i])=>!new iPe({breadcrumbs:[...r,n],operation:i,context:this.context}).convert()).map(([n,i])=>[n,this.removeXFernIgnores({document:i,breadcrumbs:[...r,n]})])):t}finalizeIr(){let t=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.response?.body?.type==="streaming")),r=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.pagination!=null)),n=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.response?.body?.type==="fileDownload"));this.ir.sdkConfig={...this.ir.sdkConfig,hasStreamingEndpoints:t,hasPaginatedEndpoints:r,hasFileDownloadEndpoints:n};let i={...this.ir,apiName:this.context.casingsGenerator.generateName(this.ir.apiDisplayName??""),constants:{errorInstanceIdKey:this.context.casingsGenerator.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})},audiences:this.audiences.type==="select"?this.audiences.audiences:void 0};this.irGraph.hasNoAudiences()||(i=this.filterIrForAudiences(i));let o=this.context.exampleGenerationArgs,s=ogi({ir:i,exampleGeneration:o});if(this.context.generateV1Examples){let a=sEt({ir:i,exampleGeneration:o});return{...i,...a,...s}}return{...i,...s}}filterIrForAudiences(t){let r=this.irGraph.getFilteredEndpoints(),n=this.irGraph.getFilteredChannels(),i=this.irGraph.getFilteredWebhooks();for(let o of Object.values(t.services)){let s=[];for(let a of o.endpoints)r.has(a.id)&&s.push(a);o.endpoints=s}return t.websocketChannels=Object.fromEntries(Object.entries(t.websocketChannels??{}).filter(([o])=>n.has(o))),t.webhookGroups=Object.fromEntries(Object.entries(t.webhookGroups).map(([o,s])=>{let a=s.filter(u=>u.id!=null&&i.has(u.id));return[o,a]})),t}async resolveAllExternalRefs({spec:t}){let r=[t];for(;r.length>0;){let n=r.shift();n!=null&&(Array.isArray(n)?await this.resolveExternalRefsInArray(n,r):typeof n=="object"&&await this.resolveExternalRefsInObject(n,r))}return t}async resolveExternalRefsInArray(t,r){for(let n=0;n<t.length;n++)t[n]=await this.resolveReferenceChain(t[n],r)}async resolveExternalRefsInObject(t,r){for(let[n,i]of Object.entries(t))t[n]=await this.resolveReferenceChain(i,r)}async resolveReferenceChain(t,r){let n=t;if(!this.context.isReferenceObject(n))return r.push(n),t;for(;this.context.isReferenceObject(n);){let i=this.context.isExternalReference(n.$ref),o=await this.context.resolveMaybeExternalReference(n);if(o.resolved){if(n=o.value,i)return n}else return t}return t}shouldAddServerToCollectedServers({server:t,currentServers:r,specType:n="openapi"}){return n==="openapi"?!r.some(i=>i.url===t.url&&"x-fern-server-name"in i&&"x-fern-server-name"in t&&i["x-fern-server-name"]===t["x-fern-server-name"]):!r.some(i=>i.url===t.url&&"name"in i&&"name"in t&&i.name===t.name)}addEndpointToIr({endpoint:t,audiences:r,endpointGroup:n,endpointGroupDisplayName:i,serviceName:o}){let s=this.context.getGroup({groupParts:n,namespace:this.context.namespace}),a=this.getOrCreatePackage({group:n}),u=[...s].map(p=>this.context.casingsGenerator.generateName(p)),c=u[u.length-1];a.service==null&&(a.service=o??`service_${s.map(p=>Un(p)).join("/")}`),this.ir.services[a.service]==null&&(this.ir.services[a.service]=this.createNewService({allParts:u,finalpart:c,endpointGroupDisplayName:i})),this.ir.services[a.service]?.endpoints.push(t);let l=this.ir.services[a.service];l!=null&&(this.irGraph.addEndpoint(l,t),this.irGraph.markEndpointForAudience(l.name,[t],r))}addWebhookToIr({webhook:t,operationId:r,audiences:n,group:i}){let o=i?.join(".")??r,s=this.getOrCreatePackage({group:i});this.ir.webhookGroups[o]==null&&(this.ir.webhookGroups[o]=[]),this.ir.webhookGroups[o].push(t),s.webhooks=o;let a=this.context.createFernFilepath();this.irGraph.addWebhook(a,t),n!=null&&this.irGraph.markWebhookForAudiences(a,t,n)}addWebsocketChannelToIr({websocketChannel:t,channelPath:r,audiences:n,websocketGroup:i}){let o=Un(i?.join(".")),s=Un(r),a=this.context.namespace?`${Un(this.context.namespace)}/`:"",u=o?`channel_${a}${o}`:`channel_${a}${s}`,c=i?this.getOrCreatePackage({group:i}):this.getOrCreatePackage({group:[s]});this.ir.websocketChannels={...this.ir.websocketChannels,[u]:t},u!==""?c.websocket==null&&(c.websocket=u):this.ir.rootPackage.websocket="";let l=this.context.createFernFilepath();this.irGraph.addChannel(l,u,t),n!=null&&this.irGraph.markChannelForAudiences(l,u,n)}addAuthToIR(t){this.ir.auth=t}addErrorsToIr(t){this.ir.errors=t;for(let r of Object.values(t))this.irGraph.addError(r)}addGlobalHeadersToIr(t){this.ir.headers=t}addEnvironmentsToIr({environmentConfig:t,audiences:r}){if(this.ir.environments=t,r!=null)for(let[n,i]of Object.entries(t??{}))r[n]!=null&&this.irGraph.markEnvironmentForAudiences(i,r[n])}addTypeToRootPackage(t){this.ir.rootPackage.types.push(t)}addSchemaOutputToIr(t,r){let{convertedSchema:n,inlinedTypes:i}=r,o=this.context.getNamespacedSchemaId(t),a=Object.keys(i).some(u=>u===o)?`${o}Wrapper`:o;this.addTypeToPackage(a),this.addTypesToIr({...i,[a]:n})}addTypeToPackage(t){let r=this.context.getGroup({groupParts:[],namespace:this.context.namespace});this.getOrCreatePackage({group:r}).types.push(t)}addTypesToIr(t){Object.assign(this.ir.types,Object.fromEntries(Object.entries(t).map(([r,n])=>[r,n.typeDeclaration])));for(let r of Object.values(t))this.irGraph.addType({declaredTypeName:r.typeDeclaration.name,descendantTypeIds:r.typeDeclaration.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:r.propertiesByAudience,descendantFilepaths:new Set}),this.irGraph.markTypeForAudiences(r.typeDeclaration.name,r.audiences)}updateEndpointsWithDefaultUrl(t){if(t!=null)for(let r of Object.values(this.ir.services))for(let n of r.endpoints)n.baseUrl==null&&(n.baseUrl=t)}createNewService({allParts:t,finalpart:r,endpointGroupDisplayName:n}){return{name:{fernFilepath:{allParts:t,packagePath:t.slice(0,-1),file:r}},displayName:n,basePath:vy(""),headers:[],pathParameters:[],availability:void 0,endpoints:[],transport:void 0,encoding:void 0,audiences:void 0}}createPackage(t={}){return{fernFilepath:this.context.createFernFilepath(t),service:void 0,types:[],errors:[],subpackages:[],docs:void 0,webhooks:void 0,websocket:void 0,hasEndpointsInTree:!1,navigationConfig:void 0}}getOrCreatePackage({group:t}){let r=[];if(this.context.namespace!=null&&r.push(this.context.namespace),r.push(...(t??[]).map(i=>Un(i))),r.length==0)return this.ir.rootPackage;let n=this.ir.rootPackage;for(let i=0;i<r.length;i++){let o=r[i]??"",a=`subpackage_${r.slice(0,i+1).join("/")}`;this.ir.subpackages[a]==null&&(this.ir.subpackages[a]={name:this.context.casingsGenerator.generateName(o),displayName:void 0,...this.createPackage({name:o})});let u=this.ir.subpackages[a];n.subpackages.includes(a)||n.subpackages.push(a),n=u}return n}};var Wf={};X(Wf,{AbstractConverters:()=>WIi,ExampleConverter:()=>iE,SchemaConverters:()=>GIi,ServersConverter:()=>RQ});var WIi={};X(WIi,{AbstractMediaTypeObjectConverter:()=>wmr,AbstractParameterConverter:()=>Cmr});Ci();St();var q5p=/^literal<\s*(?:"(.*)"|(true|false))\s*>$/;function G5p(e){return e.type==="array"||e.properties||e.oneOf||e.anyOf||e.allOf||e.additionalProperties?!1:!!(e.type==="string"||e.type==="number"||e.type==="integer"||e.type==="boolean"||e.const!==void 0||Array.isArray(e.enum)&&e.enum.length>0)}function Upa(e){if(e.const!==void 0)return e.const;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0]}var iE=class e extends Ki{MAX_DEPTH=12;EXAMPLE_STRING=Ai.STRING;EXAMPLE_NUMBER=Ai.DOUBLE;EXAMPLE_BOOLEAN=Ai.BOOLEAN;EXAMPLE_INTEGER=Ai.INT;EXAMPLE_DATE=Ai.DATE;EXAMPLE_DATE_TIME=Ai.DATE_TIME;schema;example;depth;exampleGenerationStrategy;generateOptionalProperties;seenRefs;constructor({breadcrumbs:t,context:r,schema:n,example:i,depth:o=0,exampleGenerationStrategy:s,generateOptionalProperties:a=!1,seenRefs:u=new Set}){super({breadcrumbs:t,context:r}),this.example=i,this.schema=n,this.depth=o,this.exampleGenerationStrategy=s,this.generateOptionalProperties=a,this.seenRefs=u}convert(){if(this.depth>this.MAX_DEPTH)return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:typeof this.example<"u"?this.example:{},errors:[]};if(this.context.isReferenceObject(this.schema)){let n=this.schema.$ref;if(this.seenRefs.has(n))return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}}let t=this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(t==null)return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:"Schema is not resolvable",path:this.breadcrumbs}]};if(typeof t!="object")return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Schema should be an object: ${JSON.stringify(t,null,2)}`,path:this.breadcrumbs}]};if("nullable"in t&&t.nullable===!0&&this.example===null)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let r=this.maybeConvertLiteralFernType(t);return r??(Array.isArray(t.type)?this.convertSchemaTypeArray({resolvedSchema:t}):t.type=="null"?this.convertNull():t.type=="boolean"?this.convertBoolean():t.enum!=null?this.convertEnum(t):t.type=="number"?this.convertNumber():t.type=="string"?this.convertString():t.type=="integer"?this.convertInteger():t.type=="array"?this.convertArray({resolvedSchema:t}):"oneOf"in t&&t.oneOf!=null?this.convertOneOf({resolvedSchema:t}):"anyOf"in t&&t.anyOf!=null?this.convertAnyOf({resolvedSchema:t}):t.type=="object"||t.properties!=null||t.allOf!=null?this.convertObject({resolvedSchema:t}):typeof t=="object"&&Object.keys(t).length===0?{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Unsupported schema type: ${JSON.stringify(t,null,2)}`,path:this.breadcrumbs}]})}convertNull(){let t=this.example===null;return t?{isValid:t,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Example is not null: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertBoolean(){let t=typeof this.example=="boolean";if(t)return{isValid:t,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs})?.default:this.schema.default,n=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs})?.const:this.schema.const;return typeof r=="boolean"||typeof n=="boolean"?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n??r,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_BOOLEAN,errors:[{message:`Example is not a boolean: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertEnum(t){let r=t.enum?.includes(this.example)??!1;if(r)return{isValid:r,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let n=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;return n!==void 0&&t.enum?.includes(n)?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n,errors:[]}:{isValid:r,coerced:!1,usedProvidedExample:!1,validExample:t.enum?.[0],errors:[{message:`Example is not one of the allowed enum values: ${JSON.stringify(t.enum,null,2)}`,path:this.breadcrumbs}]}}convertNumber(){if(typeof this.example=="number")return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let t=Number(this.example);if(!isNaN(t))return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:t,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0}):this.schema,n=r?.default;return typeof n=="number"?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.adjustNumberToConstraints(this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_NUMBER,r),errors:[{message:`Example is not a number: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}adjustNumberToConstraints(t,r){if(r==null)return this.context.logger.debug("[ExampleConverter.adjustNumberToConstraints] Schema object is null, returning original number","number:",t.toString()),t;let{minimum:n,maximum:i,exclusiveMinimum:o,exclusiveMaximum:s}=r,a;o!=null?typeof o=="boolean"?a=n!=null?n+Math.max(Number.EPSILON,Math.abs(n)*1e-10):void 0:a=o+Math.max(Number.EPSILON,Math.abs(o)*1e-10):n!=null&&(a=n);let u;return s!=null?typeof s=="boolean"?u=i!=null?i-Math.max(Number.EPSILON,Math.abs(i)*Number.EPSILON):void 0:u=s-Math.max(Number.EPSILON,Math.abs(s)*Number.EPSILON):i!=null&&(u=i),a!==void 0&&u!==void 0?(t<a||t>u)&&(t=a+(u-a)/2):a!==void 0&&t<a?t=a+Math.abs(a*.1):u!==void 0&&t>u&&(t=u-Math.abs(u*.1)),Number(Number(t).toPrecision(3))}convertString(){if(typeof this.example=="string")return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};if(typeof this.example!="object"&&!Array.isArray(this.example)&&this.example!=null)return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:String(this.example),errors:[]};let t=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;if(typeof t=="string")return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:t,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0}):this.schema,n=r?.format==="date"?this.EXAMPLE_DATE:r?.format==="date-time"?this.EXAMPLE_DATE_TIME:this.EXAMPLE_STRING;return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??n,errors:[{message:`Example cannot be converted to string: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertInteger(){if(typeof this.example=="number"&&Number.isInteger(this.example))return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};if(typeof this.example=="string"){let r=Number(this.example);if(!isNaN(r)&&Number.isInteger(r))return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:r,errors:[]}}let t=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;return typeof t=="number"&&Number.isInteger(t)?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:t,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_INTEGER,errors:[{message:`Example is not an integer: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertArray({resolvedSchema:t}){if(t.type!="array")return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};t.items==null&&(t.items={type:"string"});let r=this.example==null,n=this.example??t.example,o=(Array.isArray(n)?n:[n]).map(u=>new e({breadcrumbs:[...this.breadcrumbs,"items"],context:this.context,schema:t.items,example:u,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()),s=o.every(u=>u?.isValid??!1)&&!r,a=!r&&o.some(u=>u.usedProvidedExample);return{isValid:s,coerced:!1,usedProvidedExample:a,validExample:o.map(u=>u.validExample),errors:s?[]:o.flatMap(u=>u.errors)}}convertObject({resolvedSchema:t}){if(t.type=="object"&&t.properties==null&&t.allOf==null)return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example??{},errors:[]};let r=typeof this.example!="object"||this.example==null?{}:this.example,n=Object.entries(t.properties??{}).map(([p,d])=>{if(typeof d!="object")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if(this.isDeprecatedProperty(d)&&!this.isRequiredProperty({key:p,resolvedSchema:t}))return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("readOnly"in d&&d.readOnly===!0&&"writeOnly"in d&&d.writeOnly===!0)return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("readOnly"in d&&d.readOnly===!0&&this.exampleGenerationStrategy==="request")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("writeOnly"in d&&d.writeOnly===!0&&this.exampleGenerationStrategy==="response")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};let f=!(p in r)||!("nullable"in d)&&r[p]==null||"nullable"in d&&d.nullable===!0&&r[p]===void 0,m=!t.required?.includes(p);if(f&&m){if(this.example===void 0&&this.generateOptionalProperties){let h=this.maybeResolveSchemaExample(d),g=new e({breadcrumbs:[...this.breadcrumbs,p],context:this.context,schema:d,example:h,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()});return{key:p,result:g.convert()}}return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}}}else{let h=r[p],g=h!==void 0?h:this.maybeResolveSchemaExample(d),b=new e({breadcrumbs:[...this.breadcrumbs,p],context:this.context,schema:d,example:g,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();return{key:p,result:b}}}),i=(t.allOf??[]).map((p,d)=>{let f=this.context.resolveMaybeReference({schemaOrReference:p,breadcrumbs:[...this.breadcrumbs,`allOf[${d}]`],skipErrorCollector:!0});return f&&this.isConstraintOnlySchema(f)?{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}:new e({breadcrumbs:[...this.breadcrumbs,`allOf[${d}]`],context:this.context,schema:{...t,...p,allOf:void 0},example:this.example,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()}),o=this.example!==void 0&&(n.some(({result:p})=>p.usedProvidedExample)||i.some(p=>p.usedProvidedExample)),s=Object.fromEntries(n.map(({key:p,result:d})=>[p,d.validExample]).filter(([p,d])=>d!==void 0));for(let p of i)if(typeof p.validExample=="object"&&p.validExample!==null){let d=p.validExample;s={...s,...Object.fromEntries(Object.entries(d).filter(([f,m])=>m!==void 0))}}let a=[],u=this.collectAllPropertyKeys(t),c=Object.keys(r).filter(p=>!u.has(p));if(c.length>0)if(t.additionalProperties===!1)c.forEach(p=>{let d=[...this.breadcrumbs,p].join("."),f={message:`Found unexpected property '${p}' in example. This property does not exist in the schema${d?` at path: ${d}`:""}`,path:[...this.breadcrumbs,p]};a.push({key:p,result:{isValid:!1,coerced:!1,usedProvidedExample:!0,validExample:void 0,errors:[f]}})});else if(t.additionalProperties===!0||t.additionalProperties===void 0)c.forEach(p=>{a.push({key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:r[p],errors:[]}})});else{let p=t.additionalProperties;c.forEach(d=>{let m=new e({breadcrumbs:[...this.breadcrumbs,d],context:this.context,schema:p,example:r[d],depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();a.push({key:d,result:m})})}for(let{key:p,result:d}of a)d.validExample!==void 0&&s[p]===void 0&&(s[p]=d.validExample);let l=n.every(p=>p.result.isValid)&&i.every(p=>p.isValid)&&a.every(({result:p})=>p.isValid);if(Object.keys(s).length===0){let p=i.find(d=>d.validExample!==void 0&&(typeof d.validExample!="object"||d.validExample===null));p&&(s=p.validExample)}return{isValid:l,coerced:!1,usedProvidedExample:o,validExample:s,errors:[...n.flatMap(({result:p})=>p.errors),...i.flatMap(p=>p.errors),...a.flatMap(({result:p})=>p.errors)]}}convertSchemaTypeArray({resolvedSchema:t}){if(!Array.isArray(t.type))return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};if(t.type.length===1)return new e({breadcrumbs:this.breadcrumbs,context:this.context,schema:{...t,type:t.type[0]},example:this.example,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();let r=t.type.map((a,u)=>new e({breadcrumbs:[...this.breadcrumbs,`type[${u}]`],context:this.context,schema:{...t,type:a},example:this.example,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()),n=r.some(a=>a?.isValid??!1),o=r.find(a=>a.isValid)?.validExample??r[0]?.validExample??null,s=r.some(a=>a.usedProvidedExample);return{isValid:n,coerced:!1,usedProvidedExample:s,validExample:o,errors:n?[]:r.flatMap(a=>a?.errors??[])}}convertUnion({resolvedSchema:t,unionType:r}){let n=r==="oneOf"?t.oneOf:t.anyOf;if(!(r in t)||n==null)return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};let i=this.example??this.maybeResolveSchemaExample(t);if(this.example===void 0){let d=[];for(let m of n){if(!m)continue;let h=this.context.resolveMaybeReference({schemaOrReference:m,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});h&&d.push(h)}if(d.length>0&&d.every(m=>G5p(m))){let m=d.findIndex(h=>Upa(h)!==void 0);if(m!==-1){let h=n[m],g=d[m];if(h&&g){let A=Upa(g),v=new e({breadcrumbs:[...this.breadcrumbs,`${r}[${m}]`],context:this.context,schema:r==="oneOf"?{...t,...h,oneOf:void 0}:h,example:A,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();if(v.isValid)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:v.validExample,errors:[]}}}}}let o=[],s=null,a=null;for(let d=0;d<n.length;d++){let f=n[d];if(!f)continue;let m=r==="oneOf"?{...t,...f,oneOf:void 0}:f,h=i??this.maybeResolveSchemaExample(m),A=new e({breadcrumbs:[...this.breadcrumbs,`${r}[${d}]`],context:this.context,schema:m,example:h,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();if(A.isValid&&!A.coerced&&A.usedProvidedExample)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:A.validExample,errors:[]};if(A.isValid&&!A.coerced&&this.example===void 0)return{isValid:!0,coerced:!1,usedProvidedExample:A.usedProvidedExample,validExample:A.validExample,errors:[]};o.push(A),A.isValid&&A.usedProvidedExample&&a===null&&(a=A),A.isValid&&s===null&&(s=A)}let u=a??s,c=u!==null,l=u?.validExample??o[0]?.validExample,p=u?.usedProvidedExample??!1;return{isValid:c,coerced:!1,usedProvidedExample:p,validExample:l,errors:c?[]:o.flatMap(d=>d.errors)}}convertOneOf({resolvedSchema:t}){return this.convertUnion({resolvedSchema:t,unionType:"oneOf"})}convertAnyOf({resolvedSchema:t}){return this.convertUnion({resolvedSchema:t,unionType:"anyOf"})}getMaybeUpdatedSeenRefs(){let t=new Set(this.seenRefs);return this.context.isReferenceObject(this.schema)&&t.add(this.schema.$ref),t}maybeResolveSchemaExample(t){if("example"in t)return t.example;if("examples"in t){let n=t.examples;if(Array.isArray(n)&&n.length>0)return n[0];if(n!=null&&typeof n=="object")return Object.values(n)[0]}let r=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(r!=null){if("example"in r)return r.example;if("examples"in r){let n=r.examples;return Array.isArray(n)&&n.length>0?n[0]:Object.values(n??{})[0]}}}maybeConvertLiteralFernType(t){let r=t["x-fern-type"];if(typeof r!="string")return;let n=r.match(q5p);if(n!=null){if(n[1]!=null)return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n[1],errors:[]};if(n[2]!=null)return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n[2]==="true",errors:[]}}}isConstraintOnlySchema(t){if(t.type!==void 0||t.properties!==void 0||t.allOf!==void 0||t.oneOf!==void 0||t.anyOf!==void 0||"items"in t||t.additionalProperties!==void 0||t.enum!==void 0||t.const!==void 0)return!1;let r=new Set(["required","description","title","deprecated","readOnly","writeOnly","nullable","example","examples","default","minLength","maxLength","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","uniqueItems","pattern","format"]),n=Object.keys(t);return n.length>0&&n.every(i=>r.has(i))}isDeprecatedProperty(t){return t!=null&&"availability"in t&&t.availability==="deprecated"}isRequiredProperty({key:t,resolvedSchema:r}){return r.required?.includes(t)??!1}collectAllPropertyKeys(t,r=new Set){let n=new Set;if(t.properties)for(let i of Object.keys(t.properties))n.add(i);for(let i of t.allOf??[]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}for(let i of[...t.oneOf??[],...t.anyOf??[]]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}return n}};var GIi={};X(GIi,{ArraySchemaConverter:()=>VVe,EnumSchemaConverter:()=>Dme,ObjectSchemaConverter:()=>UVe,OneOfSchemaConverter:()=>oPe,PrimitiveSchemaConverter:()=>zVe,SchemaConverter:()=>Rme,SchemaOrReferenceConverter:()=>ZS});Ci();function zpa(e){return Q0({type:e,_default:void 0,validation:void 0,visitor:{primitive:t=>{switch(t.v1){case"BASE_64":return Fr.primitive({v1:"BASE_64",v2:Qn.base64({})});case"BOOLEAN":return Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})});case"DATE":return Fr.primitive({v1:"DATE",v2:Qn.date({})});case"DATE_TIME":return Fr.primitive({v1:"DATE_TIME",v2:Qn.dateTime({})});case"DATE_TIME_RFC_2822":return Fr.primitive({v1:"DATE_TIME_RFC_2822",v2:Qn.dateTimeRfc2822({})});case"FLOAT":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:void 0,validation:void 0})});case"DOUBLE":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:void 0,validation:void 0})});case"UINT":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:void 0,validation:void 0})});case"UINT_64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:void 0,validation:void 0})});case"INTEGER":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:void 0,validation:void 0})});case"LONG":return Fr.primitive({v1:"LONG",v2:Qn.long({default:void 0,validation:void 0})});case"STRING":return Fr.primitive({v1:"STRING",v2:Qn.string({default:void 0,validation:void 0})});case"UUID":return Fr.primitive({v1:"UUID",v2:Qn.uuid({})});case"BIG_INTEGER":return Fr.primitive({v1:"BIG_INTEGER",v2:Qn.bigInteger({default:void 0})});default:return}},unknown:()=>Fr.unknown(),map:({keyType:t,valueType:r})=>{if(!(t==null||r==null))return Fr.container(Vs.map({keyType:t,valueType:r}))},list:t=>{if(t!=null)return Fr.container(Vs.list(t))},optional:t=>{if(t!=null)return Fr.container(Vs.optional(t))},nullable:t=>{if(t!=null)return Fr.container(Vs.nullable(t))},set:t=>{if(t!=null)return Fr.container(Vs.set(t))},literal:t=>Fr.container(Vs.literal(t._visit({string:r=>Pw.string(r),boolean:r=>Pw.boolean(r),_other:()=>{throw new Error("Unexpected literal type")}}))),named:()=>{}}})}var Dme=class extends Ki{schema;maybeFernEnum;forwardCompatible;constructor({context:t,breadcrumbs:r,schema:n,maybeFernEnum:i,forwardCompatible:o}){super({context:t,breadcrumbs:r}),this.schema=n,this.maybeFernEnum=i,this.forwardCompatible=o??!1}convert(){if(!this.schema.enum)return;let r=this.schema.enum.filter(i=>typeof i=="string"||typeof i=="number").map(i=>{let o=i.toString(),s=this.maybeFernEnum?.[o],a=s?.name??o;return{name:this.context.casingsGenerator.generateNameAndWireValue({name:a,wireValue:o}),docs:s?.description,availability:void 0,casing:s?.casing}});if(r.length===0){this.context.errorCollector.collect({message:`Received enum schema with no valid values: ${JSON.stringify(this.schema)}`,path:this.breadcrumbs});return}let n=this.context.getAsString(this.schema.default);return{type:Ha.enum({default:n!=null?r.find(i=>i.name.wireValue===n):void 0,values:r,forwardCompatible:this.forwardCompatible||void 0})}}};var vmr=class extends Ki{schemaOrReferenceOrBoolean;constructor({context:t,breadcrumbs:r,schemaOrReferenceOrBoolean:n}){super({context:t,breadcrumbs:r}),this.schemaOrReferenceOrBoolean=n}convert(){let t=this.tryConvertUnknownMap();if(t!=null)return t;let r=this.tryConvertTypedMap();if(r!=null)return r}tryConvertUnknownMap(){if(typeof this.schemaOrReferenceOrBoolean=="boolean"){let t=Fr.container(Vs.map({keyType:Ki.STRING,valueType:Fr.unknown()}));return{type:Ha.alias({aliasOf:t,resolvedType:t}),referencedTypes:new Set,inlinedTypes:{}}}}tryConvertTypedMap(){if(typeof this.schemaOrReferenceOrBoolean=="boolean")return;let r=new ZS({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReference:this.schemaOrReferenceOrBoolean}).convert();if(r!=null){let n=Fr.container(Vs.map({keyType:Ki.STRING,valueType:r.type})),i=new Set;for(let o of r.schema?.typeDeclaration.referencedTypes??[])i.add(o);for(let o of Object.keys(r.inlinedTypes))i.add(o);return{type:Ha.alias({aliasOf:n,resolvedType:n}),referencedTypes:i,inlinedTypes:r.inlinedTypes}}}};St();function LVe({properties:e,required:t,breadcrumbs:r,context:n,errorCollector:i}){let o=[],s={},a={},u=new Set;for(let[c,l]of Object.entries(e??{})){let p=[...r,"properties",c];if(typeof l!="object"){i.collect({message:`Schema property ${c} should be an object`,path:p});continue}let d=$5p(r,l,n)??n.convertBreadcrumbsToName(p),f="nullable"in l?l.nullable:!1,h=new ZS({context:n,breadcrumbs:p,schemaOrReference:l,schemaIdOverride:d,wrapAsOptional:!t.includes(c),wrapAsNullable:f}).convert();if(h!=null){o.push({name:n.casingsGenerator.generateNameAndWireValue({name:c,wireValue:c}),valueType:h.type,docs:l.description,availability:h.availability,propertyAccess:n.getPropertyAccess(l),v2Examples:h.schema?.typeDeclaration?.v2Examples??W5p({propertySchema:l,breadcrumbs:p,context:n,propertyId:d})}),s={...s,...h.inlinedTypes},h.schema?.typeDeclaration.referencedTypes!=null&&h.schema.typeDeclaration.referencedTypes.forEach(g=>{u.add(g)});for(let g of h.schema?.audiences??[])a[g]==null&&(a[g]=new Set),a[g].add(c)}}for(let c of Object.keys(s))u.add(c);return{convertedProperties:o,propertiesByAudience:a,inlinedTypesFromProperties:s,referencedTypes:u}}function W5p({propertySchema:e,breadcrumbs:t,context:r,propertyId:n}){let i=r.resolveMaybeReference({schemaOrReference:e,breadcrumbs:t,skipErrorCollector:!0}),o=r.getExamplesFromSchema({schema:i??void 0,breadcrumbs:t});if(o.length>0){let c={};for(let[l,p]of o.entries()){let d=r.resolveExample(p),f=`${n}_example_${l}`,m=new iE({breadcrumbs:t,context:r,schema:e,example:d}),{validExample:h}=m.convert();c[f]=h}return{userSpecifiedExamples:c,autogeneratedExamples:{}}}let s=`${n}_example_autogenerated`,a=new iE({breadcrumbs:t,context:r,schema:e,example:void 0,generateOptionalProperties:!0}),{validExample:u}=a.convert();return{userSpecifiedExamples:{},autogeneratedExamples:{[s]:u}}}function $5p(e,t,r){return r.isReferenceObject(t)?void 0:new zI.FernTypeNameExtension({breadcrumbs:e,schema:t,context:r}).convert()}var UVe=class extends Ki{schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){let t=typeof this.schema.additionalProperties=="boolean"&&this.schema.additionalProperties;if(!this.schema.properties&&!this.schema.allOf)return{type:Ha.object({properties:[],extends:[],extendedProperties:[],extraProperties:t}),propertiesByAudience:{},inlinedTypes:{},referencedTypes:new Set};let{convertedProperties:r,inlinedTypesFromProperties:n,referencedTypes:i,propertiesByAudience:o}=LVe({properties:this.schema.properties??{},required:this.schema.required??[],breadcrumbs:this.breadcrumbs,context:this.context,errorCollector:this.context.errorCollector}),s=[],a=i,u=this.schema.required!=null&&this.schema.required.length>0,c=n,l=o;for(let[p,d]of(this.schema.allOf??[]).entries()){let f=[...this.breadcrumbs,"allOf",p.toString()],m;if(this.context.isReferenceObject(d)){let E=this.context.resolveMaybeReference({schemaOrReference:d,breadcrumbs:f});if(E==null){this.context.logger.debug?.(`[ObjectSchemaConverter] allOf[${p}] reference could not be resolved. Skipping: ${JSON.stringify(d)}`);continue}if(m=E,typeof m.additionalProperties=="boolean"&&m.additionalProperties&&(t=!0),!u||Object.keys(m.properties??{}).every(I=>!this.schema.required?.includes(I))){this.addTypeReferenceToExtends({reference:d,breadcrumbs:f,extends_:s,referencedTypes:a});continue}}else m=d;typeof m.additionalProperties=="boolean"&&m.additionalProperties&&(t=!0);let h=m.oneOf??m.anyOf;if(h!=null&&m.type==null&&m.properties==null){let E=new Set(r.map(I=>I.name.wireValue));for(let[I,w]of h.entries()){let x=[...f,m.oneOf!=null?"oneOf":"anyOf",I.toString()],C=this.context.isReferenceObject(w)?this.context.resolveMaybeReference({schemaOrReference:w,breadcrumbs:x}):w;if(C==null)continue;let _={};for(let[V,H]of Object.entries(C.properties??{}))!this.context.isReferenceObject(H)&&"not"in H||(_[V]=H);let R=Object.keys(_).filter(V=>!E.has(V));if(R.length===0)continue;let U={};for(let V of R){let H=_[V];H!=null&&(U[V]=H,E.add(V))}let{convertedProperties:q,inlinedTypesFromProperties:z,referencedTypes:Y,propertiesByAudience:oe}=LVe({properties:U,required:[],breadcrumbs:x,context:this.context,errorCollector:this.context.errorCollector});r.push(...q),c={...c,...z},l={...l,...oe},Y.forEach(V=>{a.add(V)})}continue}let{convertedProperties:g,inlinedTypesFromProperties:A,referencedTypes:b,propertiesByAudience:v}=LVe({properties:m.properties??{},required:[...this.schema.required??[],...m.required??[]],breadcrumbs:f,context:this.context,errorCollector:this.context.errorCollector});r.push(...g),c={...c,...A},l={...l,...v},b.forEach(E=>{a.add(E)})}for(let p of Object.keys(c))a.add(p);return{type:Ha.object({properties:r,extends:s.map(p=>this.context.typeReferenceToDeclaredTypeName(p)).filter(ua),extendedProperties:[],extraProperties:t}),propertiesByAudience:l,referencedTypes:a,inlinedTypes:c}}addTypeReferenceToExtends({reference:t,breadcrumbs:r,extends_:n,referencedTypes:i}){let o=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:r});o.ok&&n.push(o.reference);let s=this.context.getTypeIdFromSchemaReference(t);s!=null&&i.add(s)}};var Imr=class extends _a{node;key="x-fern-discriminated";constructor({breadcrumbs:t,node:r,context:n}){super({breadcrumbs:t,context:n}),this.node=r}convert(){let t=this.getExtensionValue(this.node);if(t!=null&&typeof t=="boolean")return t}};var oPe=class extends Ki{schema;id;constructor({context:t,breadcrumbs:r,schema:n,id:i,inlinedTypes:o}){super({context:t,breadcrumbs:r}),this.schema=n,this.id=i}convert(){if(this.shouldConvertAsNullableSchemaOrReference())return this.convertAsNullableSchemaOrReference();if(new Imr({context:this.context,breadcrumbs:this.breadcrumbs,node:this.schema}).convert()===!1)return this.convertAsUndiscriminatedUnion();if(this.schema.discriminator!=null)return this.convertAsDiscriminatedUnion();if(this.context.settings.inferForwardCompatible){let n=this.convertAsOpenEndedEnum();if(n!=null)return n}return this.convertAsUndiscriminatedUnion()}convertAsOpenEndedEnum(){let t=this.schema.oneOf??this.schema.anyOf;if(t==null||t.length!==2)return;let r,n=!1;for(let u of t){let c;if(this.context.isReferenceObject(u)){let l=this.context.resolveReference({reference:u,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});l.resolved&&(c=l.value)}else c=u;c!=null&&(c.enum!=null&&c.enum.length>1&&(c.type==="string"||c.type==null)?r=c:c.type==="string"&&c.enum==null&&(n=!0))}if(r==null||!n)return;let o=new MVe({breadcrumbs:this.breadcrumbs,schema:r,context:this.context}).convert(),a=new Dme({context:this.context,breadcrumbs:this.breadcrumbs,schema:r,maybeFernEnum:o,forwardCompatible:!0}).convert();if(a!=null)return{...a,referencedTypes:new Set,inlinedTypes:{}}}filterDiscriminantFromSchema(t,r){if(t.properties==null||!(r in t.properties))return t;let{[r]:n,...i}=t.properties,o=t.required?.filter(s=>s!==r);return{...t,properties:i,required:o}}convertAsDiscriminatedUnion(){if(this.schema.discriminator==null)return;let t=this.schema.discriminator.propertyName,r=[],n=new Set,i={};for(let[c,l]of Object.entries(this.schema.discriminator.mapping??{})){let p=this.context.getTypeIdFromSchemaReference({$ref:l}),d=[...this.breadcrumbs,"discriminator","mapping",c],f=this.context.resolveReference({reference:{$ref:l},breadcrumbs:d}),m={$ref:l};f.resolved&&f.value.properties!=null&&t in f.value.properties&&(m=this.filterDiscriminantFromSchema(f.value,t));let h=new ZS({context:this.context,schemaOrReference:m,schemaIdOverride:p??void 0,breadcrumbs:d});p!=null&&n.add(p);let g=h.convert();if(g?.type!=null&&p!=null){for(let v of Object.keys(g?.inlinedTypes??{}))n.add(v);for(let v of g.schema?.typeDeclaration.referencedTypes??[])n.add(v);let A=this.context.casingsGenerator.generateNameAndWireValue({name:c,wireValue:c}),b=l.match(/\/schemas\/([^/]+)/)?.[1]??p;r.push({docs:void 0,discriminantValue:A,availability:g.availability,displayName:c,shape:Tw.samePropertiesAsObject({typeId:p,name:this.context.casingsGenerator.generateName(b),fernFilepath:{allParts:[],packagePath:[],file:void 0},displayName:c})}),i={...i,...g.inlinedTypes}}}let{convertedProperties:o,referencedTypes:s,inlinedTypesFromProperties:a}=LVe({properties:this.schema.properties??{},required:this.schema.required??[],breadcrumbs:this.breadcrumbs,context:this.context,errorCollector:this.context.errorCollector});n=new Set([...n,...s]);let u=[];for(let[c,l]of(this.schema.allOf??[]).entries()){let p=[...this.breadcrumbs,"allOf",c.toString()];if(this.context.isReferenceObject(l)){let d=this.context.convertReferenceToTypeReference({reference:l,breadcrumbs:p});if(d.ok){let m=this.context.typeReferenceToDeclaredTypeName(d.reference);m!=null&&u.push(m)}let f=this.context.getTypeIdFromSchemaReference(l);f!=null&&n.add(f);continue}}for(let c of Object.keys({...i,...a}))n.add(c);return{type:Ha.union({baseProperties:o,discriminant:this.context.casingsGenerator.generateNameAndWireValue({name:this.schema.discriminator.propertyName,wireValue:this.schema.discriminator.propertyName}),extends:u,types:r,discriminatorContext:void 0}),referencedTypes:n,inlinedTypes:{...i,...a}}}convertAsUndiscriminatedUnion(){if(!this.schema.oneOf&&!this.schema.anyOf||this.schema.anyOf?.length===0&&this.schema.oneOf?.length===0)return;let t=[],r=new Set,n={},i=[...this.schema.oneOf??[],...this.schema.anyOf??[]].filter(o=>!this.context.isReferenceObject(o));for(let[o,s]of[...(this.schema.oneOf??[]).entries(),...(this.schema.anyOf??[]).entries()]){if(this.context.isReferenceObject(s)){let d;if(this.context.isReferenceObjectWithIdentifier(s))d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:s.summary??s.title??s.name??s.messageId,displayNameOverrideSource:"reference_identifier"});else if(this.getDiscriminatorKeyForRef(s)!=null){let m=this.getDiscriminatorKeyForRef(s);d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:m,displayNameOverrideSource:"discriminator_key"})}else d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:s.$ref.split("/").pop(),displayNameOverrideSource:"schema_identifier"});d.ok&&t.push({type:d.reference,docs:s.description});let f=this.context.getTypeIdFromSchemaReference(s);f!=null&&r.add(f);continue}let a=this.extendSubSchema(s),u=this.context.convertBreadcrumbsToName([`${this.id}_${o}`]),c=s.title,p=new Rme({context:this.context,id:u,nameOverride:c,breadcrumbs:[...this.breadcrumbs,`oneOf[${o}]`],schema:a??s}).convert();if(p!=null){let d=p.convertedSchema.typeDeclaration.shape;if(d.type==="alias"&&this.typeReferenceIsWrappedPrimitive(d.aliasOf))t.push({type:d.aliasOf,docs:s.description});else if(d.type==="object"&&d.properties.length===0&&d.extends.length===0)t.push({type:Fr.container(Vs.map({keyType:Ki.STRING,valueType:Fr.unknown()})),docs:s.description});else{t.push({type:this.context.createNamedTypeReference(u,c),docs:s.description});let f=this.context.getNamespacedSchemaId(u);n={...n,...p.inlinedTypes,[f]:p.convertedSchema}}p.convertedSchema.typeDeclaration.referencedTypes.forEach(f=>{r.add(f)})}}return{type:Ha.undiscriminatedUnion({members:t}),referencedTypes:r,inlinedTypes:n}}shouldConvertAsNullableSchemaOrReference(){return this.schema.oneOf!=null?this.schema.oneOf.some(t=>t&&typeof t=="object"&&"type"in t&&t.type==="null"):this.schema.anyOf!=null?this.schema.anyOf.some(t=>t&&typeof t=="object"&&"type"in t&&t.type==="null"):!1}removeNullFromOneOfOrAnyOf(){let t=this.schema.oneOf??this.schema.anyOf,r=this.schema.oneOf!=null?"oneOf":"anyOf";if(t==null)return;let n=t.filter(i=>!("type"in i&&i.type==="null"));if(n.length===0){this.context.errorCollector.collect({message:`Received ${r} schema with no valid non-null types`,path:this.breadcrumbs});return}return n.length===1?{...this.schema,[r]:void 0,...n[0]}:{...this.schema,[r]:n}}convertAsNullableSchemaOrReference(){let t=this.removeNullFromOneOfOrAnyOf();if(t==null)return;let n=new ZS({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReference:t}).convert();if(n==null)return;let i=this.wrapInNullable(n.type);return{type:Ha.alias({aliasOf:i,resolvedType:i}),referencedTypes:n.schema?.typeDeclaration.referencedTypes??new Set,inlinedTypes:n.inlinedTypes}}typeReferenceIsWrappedPrimitive(t){switch(t.type){case"container":return this.containerTypeIsWrappedPrimitive(t.container);case"named":return!1;case"primitive":return!0;case"unknown":return!0;default:return!1}}containerTypeIsWrappedPrimitive(t){switch(t.type){case"list":return this.typeReferenceIsWrappedPrimitive(t.list);case"map":return this.typeReferenceIsWrappedPrimitive(t.keyType)&&this.typeReferenceIsWrappedPrimitive(t.valueType);case"nullable":return this.typeReferenceIsWrappedPrimitive(t.nullable);case"optional":return this.typeReferenceIsWrappedPrimitive(t.optional);case"set":return this.typeReferenceIsWrappedPrimitive(t.set);case"literal":return!0;default:return!1}}wrapInNullable(t){return Fr.container(Vs.nullable(t))}mergeIntoObjectSchema(t,r){return{...t,properties:{...r,...t.properties??{}}}}extendSubSchema(t){if(Object.entries(this.schema.properties??{}).length===0)return t;if(t.type==="object")return this.mergeIntoObjectSchema(t,this.schema.properties??{});this.context.isObjectSchemaType(t)||this.context.errorCollector.collect({message:"Received additional object properties for oneOf/anyOf that are not objects",path:this.breadcrumbs})}getDiscriminatorKeyForRef(t){return Object.entries(this.schema.discriminator?.mapping??{}).find(([r,n])=>n===t.$ref)?.[0]}};var zVe=class extends Ki{schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){switch(this.schema.type){case"string":{let t=this.context.getAsString(this.schema.const);if(t!=null)return Fr.container(Vs.literal(Pw.string(t)));if(this.schema.format==="date-time-rfc-2822")return Fr.primitive({v1:Jo.DateTimeRfc2822,v2:Qn.dateTimeRfc2822({})});if(this.context.settings.typeDatesAsStrings===!1){if(this.schema.format==="date")return Fr.primitive({v1:Jo.Date,v2:Qn.date({})});if(this.schema.format==="date-time")return Fr.primitive({v1:Jo.DateTime,v2:Qn.dateTime({})})}return Fr.primitive({v1:"STRING",v2:Qn.string({default:this.context.getAsString(this.schema.default),validation:this.getStringValidation(this.schema)})})}case"number":switch(this.schema.format){case"double":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"float":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int32":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int64":return Fr.primitive({v1:"LONG",v2:Qn.long({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint32":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});default:return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})})}case"integer":switch(this.schema.format){case"double":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"float":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int32":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int64":return Fr.primitive({v1:"LONG",v2:Qn.long({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint32":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});default:return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})})}case"boolean":{let t=this.context.getAsBoolean(this.schema.const);return t!=null?Fr.container(Vs.literal(Pw.boolean(t))):Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:this.context.getAsBoolean(this.schema.default)})})}default:return}}getNumberValidation(t){let r=t.minimum,n=t.maximum,i,o;return typeof t.exclusiveMinimum=="boolean"?i=t.exclusiveMinimum:typeof t.exclusiveMinimum=="number"&&(r=t.exclusiveMinimum,i=!0),typeof t.exclusiveMaximum=="boolean"?o=t.exclusiveMaximum:typeof t.exclusiveMaximum=="number"&&(n=t.exclusiveMaximum,o=!0),{max:n,min:r,exclusiveMax:o,exclusiveMin:i,multipleOf:t.multipleOf}}getStringValidation(t){let r=t.format??(t.contentMediaType==="application/octet-stream"?"binary":void 0);return{minLength:t.minLength,maxLength:t.maxLength,pattern:t.pattern,format:r}}};var H5p=["description","example","title","default","deprecated","readOnly","writeOnly","xml","externalDocs","extensions"],Rme=class e extends Ki{schema;id;inlined;audiences;nameOverride;constructor({context:t,breadcrumbs:r,schema:n,id:i,inlined:o=!1,nameOverride:s}){super({context:t,breadcrumbs:r}),this.schema=n,this.id=i,this.inlined=o,this.nameOverride=s,this.audiences=this.context.getAudiences({operation:this.schema,breadcrumbs:this.breadcrumbs})??[]}convert(){let t=this.tryConvertFernTypeDeclaration();if(t!=null)return t;let r=this.tryConvertEnumSchema();if(r!=null)return r;let n=this.tryConvertSingularAllOfSchema();if(n!=null)return n;let i=this.tryConvertPrimitiveSchema();if(i!=null)return i;let o=this.tryConvertArraySchema();if(o!=null)return o;let s=this.tryConvertTypeArraySchema();if(s!=null)return s;let a=this.tryConvertOneOfAnyOfSchema();if(a!=null)return a;let u=this.tryConvertMapSchema();if(u!=null)return u;let c=this.tryConvertDiscriminatorMappingSchema();if(c!=null)return c;let l=this.tryConvertObjectAllOfSchema();if(l!=null)return l;let p=this.tryConvertUntypedSchema();if(p!=null)return p;this.context.errorCollector.collect({message:`Failed to convert schema object: ${JSON.stringify(this.schema,null,2)}`,path:this.breadcrumbs})}tryConvertEnumSchema(){if(!this.schema.enum?.length)return;let r=new zI.FernEnumExtension({breadcrumbs:this.breadcrumbs,schema:this.schema,context:this.context}).convert(),i=new Dme({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema,maybeFernEnum:r}).convert();if(i!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:i.type,referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertSingularAllOfSchema(){if(this.schemaOnlyHasAllowedKeys(["allOf","type","title"])&&this.schema.allOf?.length===1&&this.schema.allOf[0]!=null){let r=this.context.resolveMaybeReference({schemaOrReference:this.schema.allOf[0],breadcrumbs:this.breadcrumbs});if(r!=null){let i=new e({context:this.context,breadcrumbs:[...this.breadcrumbs,"allOf","0"],schema:r,id:this.id,inlined:!0}).convert();if(i?.convertedSchema.typeDeclaration?.shape.type!=="object")return i}}if(this.schemaOnlyHasAllowedKeys(["allOf","type","title"])&&Array.isArray(this.schema.allOf)&&this.schema.allOf.length>=1){let r={};for(let i of this.schema.allOf??[]){if(this.context.isReferenceObject(i))return;let o=i.oneOf??i.anyOf;if(o!=null&&i.type==null&&i.properties==null){let s={};for(let a of o){let u=this.context.isReferenceObject(a)?this.context.resolveMaybeReference({schemaOrReference:a,breadcrumbs:this.breadcrumbs}):a;if(u!=null)for(let[c,l]of Object.entries(u.properties??{}))!this.context.isReferenceObject(l)&&"not"in l||c in s||(s[c]=l)}if(Object.keys(s).length>0){let a=r.properties??{};r.properties={...a,...s}}continue}r=JNe(r,i,(s,a)=>{if(a===i)return s;if(Array.isArray(s)&&Array.isArray(a))return[...s,...a]})}return new e({context:this.context,breadcrumbs:this.breadcrumbs,schema:r,id:this.id,inlined:!0}).convert()}}tryConvertPrimitiveSchema(){let r=new zVe({context:this.context,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:r,resolvedType:r}),referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertArraySchema(){if(this.schema.type==="array"){let r=new VVe({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:r.typeReference,resolvedType:r.typeReference}),referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertTypeArraySchema(){if(Array.isArray(this.schema.type)&&this.schema.type.length>0)return this.schema.type.length===1?this.schema.type=this.schema.type[0]:(this.schema.oneOf=this.schema.type.map(t=>({type:t})),this.schema.type=void 0),this.convert()}tryConvertOneOfAnyOfSchema(){if(this.schema.oneOf!=null||this.schema.anyOf!=null){let r=new oPe({id:this.id,context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema,inlinedTypes:{}}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertMapSchema(){if((typeof this.schema.additionalProperties=="object"||typeof this.schema.additionalProperties=="boolean")&&this.schema.additionalProperties!=null&&!this.schema.properties&&!this.schema.allOf){if(typeof this.schema.additionalProperties=="boolean"&&this.schema.additionalProperties===!1)return;let r=new vmr({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReferenceOrBoolean:this.schema.additionalProperties}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertDiscriminatorMappingSchema(){if(this.schema.discriminator?.mapping!=null&&Object.keys(this.schema.discriminator.mapping).length>0&&this.schema.oneOf==null&&this.schema.anyOf==null){let t={...this.schema,oneOf:Object.values(this.schema.discriminator.mapping).map(i=>({$ref:i}))},n=new oPe({id:this.id,context:this.context,breadcrumbs:this.breadcrumbs,schema:t,inlinedTypes:{}}).convert();if(n!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:n.type,referencedTypes:n.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:n.inlinedTypes}}}tryConvertObjectAllOfSchema(){if(this.schema.type==="object"||this.schema.properties!=null||this.schema.allOf!=null){let r=new UVe({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:r.propertiesByAudience},inlinedTypes:r.inlinedTypes}}}tryConvertUntypedSchema(){if(this.isUntypedSchema())return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:Fr.unknown(),resolvedType:Fr.unknown()}),referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertFernTypeDeclaration(){let r=new zI.FernTypeExtension({breadcrumbs:this.breadcrumbs,schema:this.schema,context:this.context}).convert();if(r==null)return;let n=zpa(r);if(n!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:n,resolvedType:n}),referencedTypes:new Set,omitV2Examples:!0}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}createTypeDeclaration({shape:t,referencedTypes:r,omitV2Examples:n}){return{name:this.convertDeclaredTypeName(),shape:t,autogeneratedExamples:[],userProvidedExamples:[],encoding:void 0,availability:this.context.getAvailability({node:this.schema,breadcrumbs:this.breadcrumbs}),docs:this.schema.description,referencedTypes:r,source:void 0,inline:this.inlined,v2Examples:n?void 0:this.convertSchemaExamples()}}convertDeclaredTypeName(){let t=this.context.getRawSchemaId(this.id);return{typeId:this.context.getNamespacedSchemaId(this.id),fernFilepath:this.context.createFernFilepath(),name:this.context.casingsGenerator.generateName(t),displayName:this.nameOverride}}schemaOnlyHasAllowedKeys(t){let r=[...H5p,...t];return Object.keys(this.schema).every(i=>r.includes(i))}isUntypedSchema(){return!!(this.schema&&typeof this.schema=="object"&&!("oneOf"in this.schema)&&!("anyOf"in this.schema)&&!("allOf"in this.schema)&&!("items"in this.schema)&&!("properties"in this.schema))}convertSchemaExamples(){let t={userSpecifiedExamples:{},autogeneratedExamples:{}},r=this.context.getExamplesFromSchema({schema:this.schema,breadcrumbs:this.breadcrumbs});if(r.length===0){let n=this.generateOrValidateExample({example:void 0,ignoreErrors:!0});return t.autogeneratedExamples={[`${this.id}_example_autogenerated`]:n},t}return t.userSpecifiedExamples=this.convertUserSpecifiedExamples(r),t}convertUserSpecifiedExamples(t){let r={};for(let[n,i]of t.entries()){let o=this.context.resolveExample(i),s=`${this.id}_example_${n}`,a=this.generateOrValidateExample({example:o,exampleName:s});r[s]=a}return r}generateOrValidateExample({example:t}){let r=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:this.schema,example:t}),{validExample:n}=r.convert();return n}};var ZS=class extends Ki{schemaOrReference;schemaIdOverride;wrapAsOptional;wrapAsNullable;constructor({context:t,breadcrumbs:r,schemaOrReference:n,schemaIdOverride:i,wrapAsOptional:o=!1,wrapAsNullable:s=!1}){super({context:t,breadcrumbs:r}),this.schemaOrReference=n,this.schemaIdOverride=i,this.wrapAsOptional=o,this.wrapAsNullable=s}convert(){let t=this.maybeConvertReferenceObject({schemaOrReference:this.schemaOrReference});if(t!=null)return t;let r=this.maybeConvertSingularAllOfReferenceObject();return r??this.convertSchemaObject({schema:this.schemaOrReference})}maybeConvertReferenceObject({schemaOrReference:t}){if(this.context.isReferenceObject(t)){let r=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:this.breadcrumbs});if(r.ok)return{type:this.wrapTypeReference(r.reference),inlinedTypes:r.inlinedTypes??{}}}}maybeConvertSingularAllOfReferenceObject(){if(this.context.isReferenceObject(this.schemaOrReference)||this.schemaOrReference.allOf==null||this.schemaOrReference.allOf.length!==1)return;let t=this.schemaOrReference.allOf[0];if(this.context.isReferenceObject(t)){let r=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:this.breadcrumbs});if(r.ok)return{type:this.wrapTypeReference(r.reference),inlinedTypes:{}}}}convertSchemaObject({schema:t}){let r=this.schemaIdOverride??this.context.convertBreadcrumbsToName(this.breadcrumbs),n=this.context.getNamespacedSchemaId(r),i=new Rme({context:this.context,breadcrumbs:this.breadcrumbs,schema:t,id:r}),o=this.context.getAvailability({node:t,breadcrumbs:this.breadcrumbs}),s=i.convert();if(s!=null){let a=s.convertedSchema.typeDeclaration.shape;return a.type==="alias"?{type:this.wrapTypeReference(a.aliasOf),schema:s.convertedSchema,inlinedTypes:s.inlinedTypes,availability:o}:{type:this.wrapTypeReference(this.context.createNamedTypeReference(r)),schema:s.convertedSchema,inlinedTypes:{...s.inlinedTypes,[n]:s.convertedSchema},availability:o}}}wrapTypeReference(t){return this.wrapAsOptional&&this.wrapAsNullable?this.wrapInOptional(this.wrapInNullable(t)):this.wrapAsOptional?this.wrapInOptional(t):this.wrapAsNullable?this.wrapInNullable(t):t}wrapInOptional(t){return Fr.container(Vs.optional(t))}wrapInNullable(t){return Fr.container(Vs.nullable(t))}};var VVe=class e extends Ki{static LIST_UNKNOWN=Fr.container(Vs.list(Fr.unknown()));schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){if(this.schema.items!=null){Array.isArray(this.schema.items)&&(this.schema.items={oneOf:this.schema.items});let r=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs,"items"],schemaOrReference:this.schema.items}).convert();if(r!=null){let n=new Set;for(let i of r.schema?.typeDeclaration.referencedTypes??[])n.add(i);return r.inlinedTypes!=null&&Object.values(r.inlinedTypes).forEach(i=>{i.typeDeclaration.referencedTypes.forEach(o=>{n.add(o)})}),{typeReference:Fr.container(Vs.list(r.type)),referencedTypes:n,inlinedTypes:r.inlinedTypes}}}return{typeReference:e.LIST_UNKNOWN,referencedTypes:new Set,inlinedTypes:{}}}};var wmr=class extends Ki{group;method;constructor({context:t,breadcrumbs:r,group:n,method:i}){super({context:t,breadcrumbs:r}),this.group=n,this.method=i}parseMediaTypeObject({mediaTypeObject:t,resolveSchema:r,contentType:n,schemaId:i}){if(t.schema==null)return;if(r){let u=this.context.resolveMaybeReference({schemaOrReference:t.schema,breadcrumbs:[...this.breadcrumbs,"content",n]});if(u==null)return;t.schema=u}let s=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs,"content",n,"schema"],schemaOrReference:t.schema,schemaIdOverride:i}).convert();if(s==null)return;let a=t.examples!=null?Object.fromEntries(Object.entries(t.examples).map(([u,c])=>{if(this.context.isReferenceObject(c)){let l=this.context.resolveReference({reference:c,breadcrumbs:[...this.breadcrumbs,"content",n,"examples"],skipErrorCollector:!0});return l.resolved?[u,l.value.value??l.value]:null}return[u,c.value??c]}).filter(u=>u!=null)):void 0;return{...s,examples:a}}parseMediaTypeSchemaOrReference({schemaOrReference:t,schemaId:r}){let i=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs],schemaOrReference:t,schemaIdOverride:r}).convert();if(i!=null)return{...i,examples:void 0}}getIdForExample({key:t,example:r,usedExampleNames:n}){if(this.context.isExampleWithSummary(r)){let i=r.summary;if(!n.has(i))return i;let o=`${i} (${t})`;return n.has(o)?t:o}return t}convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:r,exampleGenerationStrategy:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t?.schema,s=this.context.getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:this.breadcrumbs,defaultExampleName:`${[...this.group,this.method].join("_")}_example`}),a=new Set;for(let[u,c]of s){let l=this.context.resolveExampleWithValue(c),p=this.context.resolveExampleRecursively({example:c,breadcrumbs:this.breadcrumbs}),d=this.getIdForExample({key:u,example:p,usedExampleNames:a});a.add(d),l!=null&&(o!=null?i.userSpecifiedExamples[d]=this.generateOrValidateExample({schema:o,example:l,exampleGenerationStrategy:n,exampleName:d}):i.userSpecifiedExamples[d]=l)}if(Object.keys(i.userSpecifiedExamples).length===0&&o!=null){let u=Un(`${[...this.group,this.method].join("_")}_example`);i.autogeneratedExamples[u]=this.generateOrValidateExample({schema:o,example:void 0,ignoreErrors:!0,generateOptionalProperties:r,exampleGenerationStrategy:n,exampleName:u})}return i}generateOrValidateExample({schema:t,example:r,generateOptionalProperties:n,exampleGenerationStrategy:i}){let o=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o==null)return;let s=this.context.getExamplesFromSchema({schema:o,breadcrumbs:this.breadcrumbs}),a=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:o,example:r??s[0],generateOptionalProperties:n??!1,exampleGenerationStrategy:i}),{validExample:u}=a.convert();return u}};var Cmr=class extends Ki{parameter;constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r}),this.parameter=n}convertToOutput({schema:t,typeReference:r,inlinedTypes:n}){let i=this.context.getAvailability({node:this.parameter,breadcrumbs:this.breadcrumbs}),o=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs}),s=this.getParameterSchemaWithExampleOverride({schema:o});switch(this.parameter.in){case"query":return{type:"query",parameter:{name:this.context.casingsGenerator.generateNameAndWireValue({name:this.parameter.name,wireValue:this.parameter.name}),docs:this.parameter.description,valueType:r??Ki.OPTIONAL_STRING,allowMultiple:this.parameter.explode??!1,v2Examples:this.convertParameterExamples({schema:s??t}),availability:i,explode:this.getExplodeForQueryParameter()},inlinedTypes:n};case"header":return{type:"header",parameter:{name:this.context.casingsGenerator.generateNameAndWireValue({name:this.parameter.name,wireValue:this.parameter.name}),docs:this.parameter.description,valueType:r??Ki.OPTIONAL_STRING,env:void 0,v2Examples:this.convertParameterExamples({schema:s??t}),availability:i},inlinedTypes:n};case"path":return{type:"path",parameter:{name:this.context.casingsGenerator.generateName(this.parameter.name),docs:this.parameter.description,valueType:r??Ki.STRING,location:"ENDPOINT",variable:void 0,v2Examples:this.convertParameterExamples({schema:s??t}),explode:this.getExplodeForPathParameter()},inlinedTypes:n};default:return}}getParameterSchemaWithExampleOverride({schema:t}){if(t!=null)return t.type==="string"&&t.example==null?{...t,example:this.parameter.name}:t}convertParameterExamples({schema:t}){let r={userSpecifiedExamples:{},autogeneratedExamples:{}},n=this.parameter.example,i=this.parameter.examples;for(let[o,s]of Object.entries(i??{})){let a=this.context.resolveExampleWithValue(s);a!=null&&(r.userSpecifiedExamples[o]=this.generateOrValidateExample({schema:t,example:a,exampleName:o}))}if(n!=null){let o=this.context.generateUniqueName({prefix:`${this.parameter.name}_example`,existingNames:Object.keys(r.userSpecifiedExamples)});r.userSpecifiedExamples[o]=this.generateOrValidateExample({schema:t,example:n,exampleName:o})}if(Object.keys(r.userSpecifiedExamples).length===0){let o=`${this.parameter.name}_example`;r.autogeneratedExamples[o]=this.generateOrValidateExample({schema:t,example:void 0,ignoreErrors:!0,exampleName:o})}return r}generateOrValidateExample({schema:t,example:r}){let n=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:i}=n.convert();return i}getExplodeForQueryParameter(){let t=this.parameter.style??"form",r=this.parameter.explode;if(r!==void 0)return t==="form"||t==="deepObject"?r===!0?void 0:r:r===!1?void 0:r}getExplodeForPathParameter(){let t=this.parameter.explode;if(t!==void 0)return t===!1?void 0:t}};St();var xmr=class extends _a{server;key="x-fern-server-name";constructor({breadcrumbs:t,server:r,context:n}){super({breadcrumbs:t,context:n}),this.server=r}convert(){let t=this.getExtensionValue(this.server,"x-name");if(!(t==null||typeof t!="string"))return t}};var Vpa="Base",K5p="x-fern-default-url",RQ=class e extends Ki{servers;endpointLevelServers;constructor({breadcrumbs:t,context:r,servers:n,endpointLevelServers:i}){super({breadcrumbs:t,context:r}),this.servers=n,this.endpointLevelServers=i}convert(){if(this.servers==null||this.servers.length===0||this.servers[0]==null)return;if(this.endpointLevelServers!=null&&this.endpointLevelServers.length>0){let n=this.getDefaultBaseUrlName(),i={id:n,name:this.context.casingsGenerator.generateName(n)},o=this.endpointLevelServers.map(u=>{let c=e.getServerName({server:u,context:this.context});return{id:c,name:this.context.casingsGenerator.generateName(c)}}).filter((u,c,l)=>l.findIndex(p=>p.id===u.id)===c),s=[i,...o],a=this.servers.map(u=>{let c=e.getServerName({server:u,context:this.context}),l=this.endpointLevelServers?.map(h=>[e.getServerName({server:h,context:this.context}),this.getServerUrl(h)]),p=e.getServerAudiences({server:u,context:this.context}),{defaultUrls:d,urlTemplates:f,urlVariables:m}=this.buildMultiUrlTemplateFields({defaultBaseUrlId:n,topLevelServer:u,endpointServers:this.endpointLevelServers??[]});return{id:c,name:this.context.casingsGenerator.generateName(c),urls:{[n]:this.getServerUrl(u),...Object.fromEntries(l??[])},docs:u.description,audiences:p,defaultUrls:d,urlTemplates:f,urlVariables:m}});return{value:{defaultEnvironment:a[0]?.id,environments:ly.multipleBaseUrls({baseUrls:s,environments:a})},defaultUrl:i.id}}let t=this.extractFernDefaultUrl(),r=this.servers.map(n=>{let i=e.getServerName({server:n,context:this.context}),o=e.getServerAudiences({server:n,context:this.context});return n.variables!=null&&Object.keys(n.variables).length>0&&n.variables!=null?{id:i,name:this.context.casingsGenerator.generateName(i),url:this.maybeRemoveTrailingSlashIfNotEmpty(this.getServerUrl(n)),audiences:o,defaultUrl:t,urlTemplate:this.maybeRemoveTrailingSlashIfNotEmpty(n.url),urlVariables:this.convertServerVariables(n.variables),docs:n.description}:{id:i,name:this.context.casingsGenerator.generateName(i),url:this.maybeRemoveTrailingSlashIfNotEmpty(this.getServerUrl(n)),audiences:o,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0,docs:n.description}}).filter(ua);return{value:{defaultEnvironment:r[0]?.id,environments:ly.singleBaseUrl({environments:r})},defaultUrl:r[0]?.id}}convertServerVariables(t){return Object.entries(t).map(([r,n])=>({id:r,name:this.context.casingsGenerator.generateName(r),default:n.default,values:n.enum}))}static getServerExtensionName({server:t,context:r}){return new xmr({breadcrumbs:[],server:t,context:r}).convert()}static getServerAudiences({server:t,context:r}){return new jVe({breadcrumbs:[],operation:t,context:r}).convert()?.audiences}static getServerName({server:t,context:r}){return t.name!=null?t.name:e.getServerExtensionName({server:t,context:r})??t.description??t.url}getServerUrl(t){if(t.variables==null)return t.url;let r=t.url;for(let[n,i]of Object.entries(t.variables))i.default!=null&&(r=r.replace(`{${n}}`,encodeURIComponent(i.default)));return r}getDefaultBaseUrlName(){return this.servers==null||this.servers.length===0||this.servers[0]==null?Vpa:e.getServerExtensionName({server:this.servers[0],context:this.context})??Vpa}maybeRemoveTrailingSlashIfNotEmpty(t){return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}buildMultiUrlTemplateFields({defaultBaseUrlId:t,topLevelServer:r,endpointServers:n}){let i={},o={},s={},a=!1;if(r.variables!=null&&Object.keys(r.variables).length>0){a=!0;let u=this.extractFernDefaultUrlFromServer(r);u!=null&&(i[t]=u),o[t]=this.maybeRemoveTrailingSlashIfNotEmpty(r.url),s[t]=this.convertServerVariables(r.variables)}for(let u of n){let c=e.getServerName({server:u,context:this.context});if(u.variables!=null&&Object.keys(u.variables).length>0){a=!0;let l=this.extractFernDefaultUrlFromServer(u);l!=null&&(i[c]=l),o[c]=this.maybeRemoveTrailingSlashIfNotEmpty(u.url),s[c]=this.convertServerVariables(u.variables)}}return a?{defaultUrls:Object.keys(i).length>0?i:void 0,urlTemplates:o,urlVariables:s}:{defaultUrls:void 0,urlTemplates:void 0,urlVariables:void 0}}extractFernDefaultUrlFromServer(t){let r=t[K5p];if(typeof r=="string")return this.maybeRemoveTrailingSlashIfNotEmpty(r)}extractFernDefaultUrl(){if(this.servers!=null)for(let t of this.servers){let r=this.extractFernDefaultUrlFromServer(t);if(r!=null)return r}}};var sPe=class{context;constructor({context:t}){this.context=t}validateExample({example:t,schema:r,breadcrumbs:n,exampleGenerationStrategy:i}){return new iE({breadcrumbs:n,context:this.context,schema:r,example:t,depth:0,exampleGenerationStrategy:i,generateOptionalProperties:!1}).convert()}validateEndpointExample({exampleToValidate:t}){let r=[],n=[],i=!0,o=!1,s,a=[t.endpointPath,t.method];if(t.requestExample!==void 0&&t.requestSchema!==void 0){let c=this.validateExample({example:t.requestExample,schema:t.requestSchema,breadcrumbs:[...a,"request"],exampleGenerationStrategy:"request"});if(!c.isValid){i=!1;let l=t.exampleSource==="human"?Rv.WARNING:Rv.ERROR;r.push(...c.errors.map(p=>({...p,level:l,message:`Invalid request example: ${p.message}`})))}c.coerced&&(o=!0,n.push({level:Rv.WARNING,message:"Request example was coerced to match schema",path:[...a,"request"]})),s={request:c.validExample}}let u=this.getResponseSchemaForValidation(t);if(t.responseExample!==void 0&&u!==void 0){let c=this.validateExample({example:t.responseExample,schema:u,breadcrumbs:[...a,"response"],exampleGenerationStrategy:"response"});if(!c.isValid){i=!1;let l=t.exampleSource==="human"?Rv.WARNING:Rv.ERROR;r.push(...c.errors.map(p=>({...p,level:l,message:`Invalid response example: ${p.message}`})))}c.coerced&&(o=!0,n.push({level:Rv.WARNING,message:"Response example was coerced to match schema",path:[...a,"response"]})),s={...typeof s=="object"&&s!==null?s:{},response:c.validExample}}return{isValid:i,errors:r,warnings:n,endpointPath:t.endpointPath,method:t.method,exampleSource:t.exampleSource,exampleName:t.exampleName,validExample:s,coerced:o}}getResponseSchemaForValidation(t){let{responseStatusCode:r,responseSchemas:n,responseSchema:i}=t;return n&&Object.keys(n).length>0?r&&n[r]?n[r]:n[200]??n[201]:i}validateAiExamples({aiExamples:t,spec:r}){let n=[],i=[];for(let o of t){let{requestSchema:s,responseSchema:a,responseSchemas:u}=this.getSchemasForEndpoint({spec:r,endpointPath:o.endpointPath,method:o.method}),c={endpointPath:o.endpointPath,method:o.method,exampleSource:"ai",requestExample:o.request?.body,responseExample:o.response?.body,requestSchema:s,responseSchema:a,responseSchemas:u},l=this.validateEndpointExample({exampleToValidate:c}),p=this.hasUnexpectedProperties({requestExample:o.request?.body,responseExample:o.response?.body,requestSchema:s,responseSchema:a}),d=l.errors.length>0||l.warnings.length>0;!l.isValid||d||p?i.push({example:o,validationResult:l}):n.push(o)}return{validExamples:n,invalidExamples:i}}hasUnexpectedProperties({requestExample:t,responseExample:r,requestSchema:n,responseSchema:i}){return!!(t&&n&&this.exampleHasUnexpectedProperties(t,n)||r&&i&&this.exampleHasUnexpectedProperties(r,i))}exampleHasUnexpectedProperties(t,r){if(!t||typeof t!="object"||t===null)return!1;let n=this.context.resolveMaybeReference({schemaOrReference:r,breadcrumbs:[],skipErrorCollector:!0});if(!n||!n.properties&&!n.allOf&&!n.oneOf&&!n.anyOf)return!1;let i=t,o=this.collectAllPropertyKeys(n);return Object.keys(i).some(a=>!o.has(a))}collectAllPropertyKeys(t,r=new Set){let n=new Set;if(t.properties)for(let i of Object.keys(t.properties))n.add(i);for(let i of t.allOf??[]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[],skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}for(let i of[...t.oneOf??[],...t.anyOf??[]]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[],skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}return n}validateHumanExamples({spec:t}){let r=[],n=0,i=0,o=0,s=[],a=[];if(!t.paths)return{endpoints:r,totalExamples:n,validExamples:i,invalidExamples:o,hasInvalidHumanExamples:!1,hasInvalidAiExamples:!1,invalidHumanExamples:s,invalidAiExamples:a};for(let[u,c]of Object.entries(t.paths)){if(!c)continue;let l=["get","post","put","delete","patch","options","head","trace"];for(let p of l){let d=c[p];if(!d)continue;let f=[],{requestSchema:m,responseSchema:h,responseSchemas:g}=this.getSchemasForOperation({operation:d}),A=this.extractExamplesFromOperation({operation:d,path:u,method:p});for(let b of A){n++;let v={endpointPath:u,method:p,exampleName:b.name,exampleSource:b.source,requestExample:b.request,responseExample:b.response,requestSchema:m,responseSchema:h,responseStatusCode:b.statusCode,responseSchemas:g},E=this.validateEndpointExample({exampleToValidate:v});f.push(E),E.isValid?i++:(o++,b.source==="human"?s.push(E):b.source==="ai"&&a.push(E))}f.length>0&&r.push({endpointPath:u,method:p,results:f,hasInvalidExamples:f.some(b=>!b.isValid),invalidExampleCount:f.filter(b=>!b.isValid).length})}}return{endpoints:r,totalExamples:n,validExamples:i,invalidExamples:o,hasInvalidHumanExamples:s.length>0,hasInvalidAiExamples:a.length>0,invalidHumanExamples:s,invalidAiExamples:a}}getSchemasForEndpoint({spec:t,endpointPath:r,method:n}){let i=t.paths?.[r];if(!i)return{responseSchemas:{}};let o=i[n.toLowerCase()];return!o||typeof o!="object"||!("responses"in o)?{responseSchemas:{}}:this.getSchemasForOperation({operation:o})}getSchemasForOperation({operation:t}){let r,n,i={};if(t.requestBody&&!this.context.isReferenceObject(t.requestBody)){let s=t.requestBody.content?.["application/json"];s?.schema&&(r=s.schema)}if(t.responses){for(let[o,s]of Object.entries(t.responses)){if(!s||this.context.isReferenceObject(s))continue;let u=s.content?.["application/json"];u?.schema&&(i[o]=u.schema)}n=i[200]??i[201]}return{requestSchema:r,responseSchema:n,responseSchemas:i}}extractExamplesFromOperation({operation:t,path:r,method:n}){let i=[];if(t.requestBody&&!this.context.isReferenceObject(t.requestBody)){let a=t.requestBody.content?.["application/json"];if(a?.example!==void 0&&i.push({name:`${n}_${r}_request_example`,source:"openapi",request:a.example}),a?.examples)for(let[u,c]of Object.entries(a.examples)){let l=this.context.isReferenceObject(c)?this.context.resolveExample(c):c;l&&typeof l=="object"&&"value"in l&&i.push({name:u,source:"human",request:l.value})}}if(t.responses)for(let[s,a]of Object.entries(t.responses)){if(!a||this.context.isReferenceObject(a))continue;let c=a.content?.["application/json"];if(c?.example!==void 0){let l=i.find(p=>p.request!==void 0&&p.response===void 0);l?(l.response=c.example,l.statusCode=s):i.push({name:`${n}_${r}_response_${s}_example`,source:"openapi",response:c.example,statusCode:s})}if(c?.examples)for(let[l,p]of Object.entries(c.examples)){let d=this.context.isReferenceObject(p)?this.context.resolveExample(p):p;if(d&&typeof d=="object"&&"value"in d){let f=i.find(m=>m.name===l);f?(f.response=d.value,f.statusCode=s):i.push({name:l,source:"human",response:d.value,statusCode:s})}}}let o=t["x-fern-examples"];if(Array.isArray(o)){for(let s of o)if(typeof s=="object"&&s!==null){let a=s;i.push({name:a.name,source:"human",request:a.request?.body,response:a.response?.body})}}return i}};var _mr={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},J5p=new Set(Object.values(_mr));Ci();var Y5p=mt.object({type:mt.string(),channelId:mt.string().optional(),messageId:mt.string(),value:mt.any()}),X5p=mt.object({summary:mt.string().optional(),description:mt.string().optional(),"query-parameters":mt.record(mt.string()).optional(),headers:mt.record(mt.string()).optional(),messages:mt.array(Y5p)}),qpa=mt.array(X5p);var Smr=class extends _a{channel;baseDir;key="x-fern-examples";constructor({breadcrumbs:t,channel:r,context:n,baseDir:i}){super({breadcrumbs:t??[],context:n}),this.channel=r,this.baseDir=i}convert(){let t=this.getExtensionValue(this.channel);if(t==null)return;let r=qpa.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-examples extension: ${r.error.message}`,path:this.breadcrumbs});return}return r.data.map(n=>({summary:n.summary,description:n.description,queryParameters:n["query-parameters"],headers:n.headers,messages:n.messages.map(i=>({type:i.type,channelId:i.channelId,messageId:i.messageId,value:i.value}))}))}};var qVe=class extends Ki{channel;channelPath;inlinedTypes={};websocketGroup;constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}){super({context:t,breadcrumbs:r}),this.websocketGroup=n,this.channel=i,this.channelPath=o}convertExamples({fullPath:t,baseUrl:r,asyncApiVersion:n}){let o=new Smr({context:this.context,breadcrumbs:this.breadcrumbs,channel:this.channel,baseDir:this.context.documentBaseDir}).convert();return o==null?{}:Object.fromEntries(o.map((s,a)=>[a.toString(),{channel:{method:"GET",path:t},baseUrl:t,environment:r,auth:void 0,pathParameters:{},queryParameters:s.queryParameters,headers:s.headers,messages:s.messages.map(u=>({type:n==="v2"?u.type:u.messageId,body:u.value}))}]))}transformToValidPath(t){return t.startsWith("/")?t:"/"+t}};var Z5p="x-fern-server-name",V6=class e extends Ki{servers;constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r}),this.servers=n}convert(){if(this.servers==null||Object.keys(this.servers).length===0)return;let t=[],r;for(let[n,i]of Object.entries(this.servers)){let o=e.getServerName(n,i),s=this.buildSingleBaseUrlEnvironment(this.context,o,i);t.push(s),r==null&&(r=s.id)}return{defaultEnvironment:r,environments:ly.singleBaseUrl({environments:t})}}static getServerName(t,r){if(r!=null&&typeof r=="object"){let n=r[Z5p];if(typeof n=="string"&&n.length>0)return n}return t}constructServerUrl(t,r){return r.includes("://")?r:`${t}://${r}`}};var Fme=class extends Wf.AbstractConverters.AbstractParameterConverter{parameterNamePrefix;constructor({context:t,breadcrumbs:r,parameter:n,parameterNamePrefix:i}){super({context:t,breadcrumbs:r,parameter:n}),this.parameterNamePrefix=i}convert(){let t,r={},i=new zI.FernOptionalExtension({breadcrumbs:this.breadcrumbs,parameter:this.parameter,context:this.context}).convert()??this.parameter.required===!1,o=this.parameter.schema??{...this.parameter,type:"string",enum:this.parameter.enum,default:this.parameter.default,example:this.parameter.example??this.parameter.name,examples:Object.values(this.parameter.examples??{}),deprecated:this.parameter.deprecated,required:void 0},a=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,"schema"],schemaIdOverride:this.parameterNamePrefix?`${this.parameterNamePrefix}_${this.parameter.name}`:this.parameter.name,schemaOrReference:o,wrapAsOptional:i}).convert();return a!=null&&(t=a.type,r=a.inlinedTypes??{}),this.convertToOutput({schema:o,typeReference:t,inlinedTypes:r})}};var Bmr=class extends _a{channel;key="x-fern-address";constructor({breadcrumbs:t,channel:r,context:n}){super({breadcrumbs:t,context:n}),this.channel=r}convert(){let t=this.getExtensionValue(this.channel);if(!(t==null||typeof t!="string"))return t}};var GVe=class extends _a{channel;key="x-fern-display-name";constructor({breadcrumbs:t,channel:r,context:n}){super({breadcrumbs:t,context:n}),this.channel=r}convert(){let t=this.getExtensionValue(this.channel);if(!(t==null||typeof t!="string"))return t}};var Omr=class extends _a{operation;key="x-fern-sdk-method-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(!(t==null||typeof t!="string"))return t}};var Pmr=class extends qVe{inlinedTypes={};constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}){super({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o})}convert(){let t=[],r=[],n=[],o=new GVe({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert()??this.websocketGroup?.join(".");this.channel.parameters&&this.convertPathParameters({context:this.context,pathParameters:t}),this.channel.bindings?.ws!=null&&(this.convertHeaders({context:this.context,headers:n}),this.convertBindingQueryParameters({context:this.context,queryParameters:r}));let s;this.channel.subscribe!=null&&(s=this.convertMessage({context:this.context,operation:this.channel.subscribe,origin:"server"}));let a;this.channel.publish!=null&&(a=this.convertMessage({context:this.context,operation:this.channel.publish,origin:"client"}));let u=[];s!=null&&u.push(s),a!=null&&u.push(a);let l=new Bmr({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert(),p=this.transformToValidPath(l??this.channelPath),d=this.resolveServerName(this.channel.servers?.[0])??this.resolveServerName(Object.keys(this.context.spec.servers??{})[0]),f=vy(p),m=Un(this.channelPath),h=this.context.getAudiences({operation:this.channel,breadcrumbs:this.breadcrumbs})??[],g=this.hasServerSecurity()||this.context.authOverrides?.auth!=null;return{channel:{name:this.context.casingsGenerator.generateName(m),displayName:o,connectMethodName:void 0,baseUrl:d,path:f,auth:g,headers:n,queryParameters:r,pathParameters:t,messages:u,availability:this.context.getAvailability({node:this.channel,breadcrumbs:this.breadcrumbs}),docs:this.channel.description,examples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples({fullPath:p,baseUrl:d,asyncApiVersion:"v2"})}},audiences:h,inlinedTypes:this.inlinedTypes}}hasServerSecurity(){let t=this.context.spec.servers??{};if(this.channel.servers&&this.channel.servers.length>0){for(let r of this.channel.servers){let n=t[r];if(n?.security&&n.security.length>0)return!0}return!1}for(let r of Object.values(t)){let n=r;if(n.security&&n.security.length>0)return!0}return!1}convertMessage({context:t,operation:r,origin:n}){let i,o=n==="server"?"subscribe":"publish",s=[...this.breadcrumbs,o],a=t.resolveMaybeReference({schemaOrReference:r.message,breadcrumbs:s});a!=null&&(r.message=a);let u=exe(Un(`${this.channelPath}_${o}`)).replace(/ /g,"");if("oneOf"in r.message){let l=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:s,schemaOrReference:r.message,schemaIdOverride:u}).convert();l!=null&&l.schema!=null&&(i=l.schema,this.inlinedTypes={...this.inlinedTypes,...l.inlinedTypes})}else if(t.isMessageWithPayload(r.message)){let c=t.resolveMaybeReference({schemaOrReference:r.message.payload,breadcrumbs:s});if(c!=null){let p=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:s,schemaOrReference:c,schemaIdOverride:u}).convert();p!=null&&p.schema!=null&&(i=p.schema,this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes})}}if(i!=null){let c=i,l=Fr.named({fernFilepath:t.createFernFilepath(),name:c.typeDeclaration.name.name,typeId:c.typeDeclaration.name.typeId,displayName:void 0,default:void 0,inline:!1}),p=a_.reference({bodyType:l,docs:r.description}),d=n==="server"?"subscribe":"publish";return{type:d,displayName:d,origin:n,body:p,availability:t.getAvailability({node:r,breadcrumbs:this.breadcrumbs}),docs:r.description,methodName:this.getOperationMethodName(r)}}}convertPathParameters({context:t,pathParameters:r}){for(let[n,i]of Object.entries(this.channel.parameters??{})){let o=t.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs});if(o==null)continue;let a=new Fme({context:this.context,breadcrumbs:this.breadcrumbs,parameter:{...o,name:n,in:"path",description:o.description,required:o.required??!0}}).convert();a!=null&&(this.inlinedTypes={...this.inlinedTypes,...a.inlinedTypes},a.type==="path"&&r.push(a.parameter))}}convertHeaders({context:t,headers:r}){if(this.channel.bindings?.ws?.headers!=null){let n=this.channel.bindings.ws.headers.required??[];for(let[i,o]of Object.entries(this.channel.bindings.ws.headers.properties??{})){let s=t.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,i]});if(s==null)continue;let u=new Fme({context:this.context,breadcrumbs:[...this.breadcrumbs,i],parameter:{name:i,in:"header",required:n.includes(i),schema:s,description:"description"in s?s.description:void 0}}).convert();u!=null&&u.type==="header"&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},r.push(u.parameter))}}}resolveServerName(t){if(t==null)return;let r=this.context.spec.servers;if(r!=null&&t in r){let n=r[t];return V6.getServerName(t,n)}return t}getOperationMethodName(t){return new Omr({breadcrumbs:this.breadcrumbs,operation:t,context:this.context}).convert()}convertBindingQueryParameters({context:t,queryParameters:r}){if(this.channel.bindings?.ws?.query!=null){let n=this.channel.bindings.ws.query.required??[];for(let[i,o]of Object.entries(this.channel.bindings.ws.query.properties??{})){let s=t.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,i]});if(s==null)continue;let u=new Fme({context:this.context,breadcrumbs:[...this.breadcrumbs,i],parameter:{name:i,in:"query",required:n.includes(i),schema:s,description:"description"in s?s.description:void 0,deprecated:s.deprecated??!1}}).convert();u!=null&&u.type==="query"&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},r.push(u.parameter))}}}};var Tmr=class extends V6{constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r,servers:n})}buildSingleBaseUrlEnvironment(t,r,n){return{id:r,name:t.casingsGenerator.generateName(r),url:this.constructServerUrl(n.protocol,n.url),docs:void 0,audiences:void 0,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0}}};var $Ii="$message.",Gpa="#/channels/",HIi="#/servers/",Dmr=class extends qVe{operations;inlinedTypes={};constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o,operations:s}){super({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}),this.operations=s}convert(){let t=[],r=[],n=[],o=new GVe({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert()??this.websocketGroup?.join(".")??this.channelPath;this.channel.parameters&&this.convertChannelParameters({pathParameters:t,queryParameters:r,headers:n,channelPath:this.channelPath});let s=Object.entries(this.operations).reduce((f,[m,h])=>{try{this.getChannelPathFromOperation(h)===this.channelPath&&(f[m]=h)}catch{}return f},{}),a=[];for(let[f,m]of Object.entries(s))for(let h of m.messages){let g=this.context.convertReferenceToTypeReference({reference:h});if(g.ok){let A=a_.reference({bodyType:g.reference,docs:m.description});a.push({type:f,displayName:f,origin:m.action==="send"?"client":"server",body:A,availability:this.context.getAvailability({node:m,breadcrumbs:this.breadcrumbs}),docs:m.description,methodName:void 0})}}let u=this.resolveChannelServersFromReference(this.channel.servers??[])??this.resolveFirstServerName(),c=this.transformToValidPath(this.channel.address??this.channelPath),l=vy(c),p=this.context.getAudiences({operation:this.channel,breadcrumbs:this.breadcrumbs})??[],d=this.hasServerSecurity()||this.context.authOverrides?.auth!=null;return{channel:{name:this.context.casingsGenerator.generateName(o),displayName:o,connectMethodName:void 0,baseUrl:u,path:l,auth:d,headers:n,queryParameters:r,pathParameters:t,messages:a,availability:this.context.getAvailability({node:this.channel,breadcrumbs:this.breadcrumbs}),docs:this.channel.description,examples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples({fullPath:c,baseUrl:u,asyncApiVersion:"v3"})}},audiences:p,inlinedTypes:this.inlinedTypes}}hasServerSecurity(){let r=this.context.spec.servers??{};if(this.channel.servers&&this.channel.servers.length>0){for(let n of this.channel.servers){let i=n.$ref.replace(HIi,""),o=r[i];if(o?.security&&o.security.length>0)return!0}return!1}for(let n of Object.values(r))if(n.security&&n.security.length>0)return!0;return!1}convertChannelParameters({pathParameters:t,queryParameters:r,headers:n,channelPath:i}){for(let o of Object.values(this.channel.parameters??{})){let s=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,"parameters"]});if(s==null)continue;let a=this.convertChannelParameterLocation(s.location);if(a==null)continue;let{type:u,parameterKey:c}=a,p=new Fme({context:this.context,breadcrumbs:this.breadcrumbs,parameter:{...s,name:c,in:u},parameterNamePrefix:this.channelPath}).convert();if(p!=null)switch(this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes},p.type){case"path":t.push(p.parameter);break;case"query":r.push(p.parameter);break;case"header":n.push(p.parameter);break}}}convertChannelParameterLocation(t){try{let[r,n]=t.split("#/");if(r==null||n==null){this.context.errorCollector.collect({message:`Invalid location format: ${t}; unable to parse message type and parameter key`,path:this.breadcrumbs});return}if(!r.startsWith($Ii)){this.context.errorCollector.collect({message:`Invalid location format: ${t}; expected ${$Ii} prefix`,path:this.breadcrumbs});return}let i=r.substring($Ii.length);if(i!=="header"&&i!=="path"&&i!=="payload"){this.context.errorCollector.collect({message:`Invalid message type: ${i}. Must be one of: header, path, payload`,path:this.breadcrumbs});return}return i==="payload"?{type:"query",parameterKey:n}:{type:i,parameterKey:n}}catch{this.context.errorCollector.collect({message:`Invalid location format: ${t}; see here for more details: https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression`,path:this.breadcrumbs});return}}resolveChannelServersFromReference(t){if(t==null||t.length===0||t[0]==null)return;let r=t[0];if(!r.$ref.startsWith(HIi)){this.context.errorCollector.collect({message:`Failed to resolve server name from server ref ${r.$ref}`,path:this.breadcrumbs});return}let n=r.$ref.substring(HIi.length);if(n==null){this.context.errorCollector.collect({message:`Failed to find server with name ${n}`,path:this.breadcrumbs});return}let i=this.context.spec.servers;if(i!=null&&n in i){let o=i[n];return V6.getServerName(n,o)}return n}resolveFirstServerName(){let t=this.context.spec.servers;if(t==null)return;let r=Object.keys(t)[0];if(r==null)return;let n=t[r];return V6.getServerName(r,n)}getChannelPathFromOperation(t){if(!t.channel.$ref.startsWith(Gpa))throw new Error(`Failed to resolve channel path from operation ${t.channel.$ref}`);return t.channel.$ref.substring(Gpa.length)}};var Rmr=class extends V6{constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r,servers:n})}buildSingleBaseUrlEnvironment(t,r,n){return{id:r,name:t.casingsGenerator.generateName(r),url:this.constructServerUrl(n.protocol,n.host),docs:void 0,audiences:void 0,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0}}};var jIt=class extends z6{constructor({context:t,breadcrumbs:r,audiences:n}){super({context:t,breadcrumbs:r,audiences:n})}async convert(){return this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.context.spec=await this.resolveAllExternalRefs({spec:this.context.spec}),this.isAsyncAPIV3(this.context)?this.convertChannelMessages():this.convertComponentMessages(),this.convertSchemas(),this.convertServers(),this.convertSecuritySchemes(),this.convertChannels(),this.finalizeIr()}isAsyncAPIV3(t){return parseFloat(t.spec.asyncapi)>=3}convertChannelMessages(){let t=this.context.spec;for(let[r,n]of Object.entries(t.channels??{}))for(let[i,o]of Object.entries(n.messages??{})){if(!this.context.isMessageWithPayload(o)&&!this.context.isReferenceObject(o))continue;let s=["channels",r,"messages",i],a=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:s});if(!this.context.isMessageWithPayload(a))continue;let u=this.context.resolveMaybeReference({schemaOrReference:a.payload,breadcrumbs:s});if(u==null)continue;let c=`${r}_${i}`;this.convertSchema({id:c,breadcrumbs:s,schema:u})}}convertComponentMessages(){for(let[t,r]of Object.entries(this.context.spec.components?.messages??{})){if(r.payload==null)continue;let n=["components","messages",t],i=this.context.resolveMaybeReference({schemaOrReference:r.payload,breadcrumbs:n});i!=null&&this.convertSchema({id:t,breadcrumbs:n,schema:i})}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{}))this.convertSchema({id:t,breadcrumbs:["components","schemas",t],schema:r})}convertSchema({id:t,breadcrumbs:r,schema:n}){let o=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:r,schema:n}).convert();o!=null&&this.addSchemaOutputToIr(t,o)}convertServers(){let t;if(this.isAsyncAPIV3(this.context)){let r=this.context.spec.servers;t=new Rmr({context:this.context,breadcrumbs:["servers"],servers:r}).convert()}else{let r=this.context.spec.servers;t=new Tmr({context:this.context,breadcrumbs:["servers"],servers:r}).convert()}this.addEnvironmentsToIr({environmentConfig:t})}convertSecuritySchemes(){if(this.context.authOverrides){let r=nEt({rawApiFileSchema:this.context.authOverrides,casingsGenerator:this.context.casingsGenerator});this.addAuthToIR({requirement:r.requirement,schemes:r.schemes,docs:r.docs});return}let t=this.convertAsyncApiSecuritySchemes();t.length>0&&this.addAuthToIR({requirement:t.length===1?"ALL":"ANY",schemes:t,docs:void 0})}convertAsyncApiSecuritySchemes(){let t=[];for(let[r,n]of Object.entries(this.context.spec.components?.securitySchemes??{})){let i=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:["components","securitySchemes",r]});if(i==null)continue;let o=this.convertSecurityScheme({securityScheme:i,schemeId:r});o!=null&&t.push(o)}return t}convertSecurityScheme({securityScheme:t,schemeId:r}){switch(t.type){case"http":{if(t.scheme?.toLowerCase()==="bearer")return Ep.bearer({key:r,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:t.description});if(t.scheme?.toLowerCase()==="basic")return Ep.basic({key:r,username:this.context.casingsGenerator.generateName("username"),password:this.context.casingsGenerator.generateName("password"),usernameEnvVar:void 0,passwordEnvVar:void 0,usernameOmit:!1,passwordOmit:!1,docs:t.description});break}case"apiKey":{if(t.in==="header")return Ep.header({key:r,name:{name:this.context.casingsGenerator.generateName("apiKey"),wireValue:t.name},valueType:Ki.OPTIONAL_STRING,prefix:void 0,headerEnvVar:void 0,docs:t.description});break}case"oauth2":return Ep.bearer({key:r,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:t.description})}}convertChannels(){for(let[t,r]of Object.entries(this.context.spec.channels??{})){let i=new zI.SdkGroupNameExtension({breadcrumbs:["channels",t],operation:r,context:this.context}).convert()?.groups,o;if(this.isAsyncAPIV3(this.context)){let a=this.context.spec.operations??{};o=new Dmr({context:this.context,breadcrumbs:["channels",t],websocketGroup:i,channel:r,channelPath:t,operations:a}).convert()}else o=new Pmr({context:this.context,breadcrumbs:["channels",t],websocketGroup:i,channel:r,channelPath:t}).convert();o!=null&&(this.addWebsocketChannelToIr({websocketChannel:o.channel,channelPath:t,audiences:o.audiences,websocketGroup:i}),this.addTypesToIr(o.inlinedTypes))}}};var MIt=class extends QA{isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}getTypeIdFromMessageReference(t){let r=t.$ref.match(/\/messages\/(.+)$/);if(!(!r||!r[1]))return r[1]}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o,s=t.$ref.match(/^.*\/schemas\/(.+)$/),a=t.$ref.match(/^.*\/channels\/([^/]+)\/messages\/(.+)$/),u=t.$ref.match(/^.*\/messages\/(.+)$/);if(s&&s[1])return o=s[1],this.convertSchemaReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o});if(a&&a[2]){let c=a[1],l=a[2];return o=`${c}_${l}`,this.convertV3MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o})}else return u&&u[1]?(o=u[1],this.convertV2MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o})):{ok:!1}}convertSchemaReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.title:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.title??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}convertV3MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.name:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.name??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}convertV2MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.messageId??s.value.name:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.messageId??s.value.name??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}};St();qt();var Xpa=xe(Fmr(),1);var kmr=class extends _a{document;key="x-fern-base-path";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(typeof t!="string"){this.context.errorCollector.collect({message:"Received unexpected non-string value for x-fern-base-path",path:this.breadcrumbs});return}return t}}};var Qmr=class extends _a{document;key="x-fern-global-headers";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(!Array.isArray(t)){this.context.errorCollector.collect({message:"Received unexpected non-array value for x-fern-global-headers",path:this.breadcrumbs});return}return t}}};function Wpa({globalHeaders:e,context:t}){return e.map(r=>({name:t.casingsGenerator.generateNameAndWireValue({name:r.name??"",wireValue:r.header}),valueType:r.optional?Ki.OPTIONAL_STRING:Ki.STRING,env:r.env,v2Examples:r.optional?void 0:r8p({header:r,context:t}),availability:void 0,docs:void 0}))}function r8p({header:e,context:t}){let r=new iE({breadcrumbs:[],context:t,schema:{type:"string"},example:e.header}),{validExample:n}=r.convert();return{userSpecifiedExamples:{},autogeneratedExamples:{globalHeaderExample:n}}}Ci();var Nmr=class extends Wf.AbstractConverters.AbstractParameterConverter{constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r,parameter:n})}convert(){let t,r={};if(this.parameter.schema!=null){let n=this.context.convertBreadcrumbsToName([...this.breadcrumbs,this.parameter.name]),o=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,this.parameter.name,"schema"],schemaOrReference:this.parameter.schema,wrapAsOptional:this.parameter.required==null||!this.parameter.required,schemaIdOverride:n}).convert();o!=null&&(t=o.type,r=o.inlinedTypes??{})}return this.convertToOutput({schema:this.parameter.schema??{type:"string"},typeReference:t,inlinedTypes:r})}};St();var jmr=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{contentType;mediaType;description;required;schemaId;streamingExtension;queryParameters;constructor({context:t,breadcrumbs:r,contentType:n,mediaType:i,description:o,required:s,group:a,method:u,streamingExtension:c,queryParameters:l}){super({context:t,breadcrumbs:r,group:a,method:u}),this.contentType=n,this.mediaType=i,this.description=o,this.required=s,this.schemaId=[...this.group,this.method,"Request"].join("_"),this.streamingExtension=c,this.queryParameters=l??[]}convert(){return this.streamingExtension?.type=="streamCondition"?this.convertStreamConditionRequestBody():this.convertNonStreamConditionRequestBody()}convertStreamConditionRequestBody(){if(this.isOrderedJsonOrFormContentType())return this.handleStreamConditionJsonOrFormContent({contentType:this.contentType})}convertNonStreamConditionRequestBody(){if(this.isOrderedJsonOrFormContentType())return this.handleJsonOrFormContent({contentType:this.contentType});if(Wp.parse(this.contentType)?.isMultipart())return this.handleMultipartContent({contentType:this.contentType});if(this.isBinaryContentType())return this.handleBinaryContent({contentType:this.contentType})}isOrderedJsonOrFormContentType(){let t=Wp.parse(this.contentType);return t?t.isJSON()||t.isURLEncoded()||t.isPlainText()||t.isCSV()||t.isHTML()||t.isXML()||t.isDNS()||t.isApplicationText():!1}isBinaryContentType(){let t=Wp.parse(this.contentType);return t?t.isBinary():!1}handleJsonOrFormContent({contentType:t}){let r=this.mediaType;if(r==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,contentType:t});if(n==null)return;let i=n.schema?.typeDeclaration.shape;return i?.type==="object"?this.hasBodyQueryParameterOverlap(i.properties)?{requestBody:Rf.reference({contentType:t,docs:this.description,requestBodyType:n.type,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n.inlinedTypes??{}}:{requestBody:Rf.inlinedRequestBody({contentType:t,docs:this.description,name:this.context.casingsGenerator.generateName(this.schemaId),extendedProperties:i.extendedProperties,extends:i.extends,properties:i.properties,extraProperties:i.extraProperties,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:n.inlinedTypes})}:{requestBody:Rf.reference({contentType:t,docs:this.description,requestBodyType:n.type,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n.inlinedTypes??{}}}handleMultipartContent({contentType:t}){let r=this.mediaType;if(r==null||r.schema==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,resolveSchema:!0,contentType:t});if(n==null)return;let i=n.schema?.typeDeclaration.shape;if(i?.type==="object")return{requestBody:Rf.fileUpload({contentType:t,docs:this.description,name:this.context.casingsGenerator.generateName(this.schemaId),properties:i.properties.map(o=>{let s=r.encoding?.[o.name.wireValue];return this.convertRequestBodyProperty({property:o,contentType:t,encoding:s})}),v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:n.inlinedTypes}),examples:n.examples}}handleBinaryContent({contentType:t}){let r=this.mediaType;if(r==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,contentType:t});return{requestBody:Rf.bytes({contentType:t,isOptional:this.required===!1,docs:this.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n?.inlinedTypes??{}}}convertRequestBodyProperty({property:t,contentType:r,encoding:n}){let{isFile:i,isOptional:o,isArray:s}=this.recursivelyCheckTypeReferenceIsFile({typeReference:t.valueType});return i?s?nv.file(RD.fileArray({key:t.name,isOptional:o,contentType:r,docs:t.docs})):nv.file(RD.file({key:t.name,isOptional:o,contentType:r,docs:t.docs})):nv.bodyProperty({...t,contentType:n?.contentType??r,style:i8p({encoding:n}),name:t.name})}handleStreamConditionJsonOrFormContent({contentType:t}){if(this.streamingExtension?.type!=="streamCondition")return;let r=this.mediaType;if(r==null||r.schema==null)return;let n=this.context.resolveMaybeReference({schemaOrReference:r.schema,breadcrumbs:[...this.breadcrumbs,"content",t,"schema"]});if(n==null)return;let i=n.properties?.[this.streamingExtension.streamConditionProperty];if(i==null||this.context.isReferenceObject(i))return;let o=this.buildStreamConditionInlinedRequestBody({streamConditionProperty:i,resolvedMediaTypeSchema:n,isStreaming:!0,contentType:t,mediaTypeObject:r}),s=this.buildStreamConditionInlinedRequestBody({streamConditionProperty:i,resolvedMediaTypeSchema:n,isStreaming:!1,contentType:t,mediaTypeObject:r});if(!(o==null||s==null))return{requestBody:s.requestBody,streamRequestBody:o.requestBody,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:{...o.inlinedTypes,...s.inlinedTypes}})}}buildStreamConditionInlinedRequestBody({streamConditionProperty:t,resolvedMediaTypeSchema:r,isStreaming:n,contentType:i,mediaTypeObject:o}){if(this.streamingExtension==null||this.streamingExtension.type!=="streamCondition")return;let s={...r,properties:{...r.properties,[this.streamingExtension.streamConditionProperty]:{...t,type:"boolean",const:n}},required:[...r.required??[],this.streamingExtension.streamConditionProperty]},a={...o,schema:s},u=this.parseMediaTypeObject({mediaTypeObject:a,schemaId:this.schemaId,contentType:i});if(u==null)return;let c=u.schema?.typeDeclaration.shape;if(c?.type==="object")return{requestBody:Rf.inlinedRequestBody({contentType:i,docs:void 0,name:this.context.casingsGenerator.generateName(n?this.streamingExtension?.streamRequestName??`${this.schemaId}_streaming`:this.schemaId),extendedProperties:c.extendedProperties,extends:c.extends,properties:c.properties,extraProperties:c.extraProperties,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:a,exampleGenerationStrategy:"request"})}),inlinedTypes:u.inlinedTypes}}recursivelyCheckTypeReferenceIsFile({typeReference:t,isOptional:r,isArray:n}){return this.context.isList(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.list,isOptional:r,isArray:!0}):this.context.isOptional(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.optional,isOptional:!0,isArray:n}):this.context.isNullable(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.nullable,isOptional:r,isArray:n}):{isFile:this.context.isFile(t),isOptional:r??!1,isArray:n??!1}}hasBodyQueryParameterOverlap(t){if(this.queryParameters.length===0)return!1;let r=new Set(this.queryParameters.map(n=>n.name.wireValue.toLowerCase()));return t.some(n=>r.has(n.name.wireValue.toLowerCase()))}},n8p={"application/json":"json"};function i8p({encoding:e}){if(e){if(e.explode)return"exploded";if(e.style==="form")return"form";if(e.contentType)return n8p[e.contentType]}}var o8p=/{([^}]+)}/g,s8p=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]),WVe=class extends Ki{operation;method;path;inlinedTypes={};constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o}){super({context:t,breadcrumbs:r}),this.operation=n,this.method=i,this.path=o}convertHttpMethod(){switch(this.method){case"get":return Wh.Get;case"post":return Wh.Post;case"put":return Wh.Put;case"delete":return Wh.Delete;case"patch":return Wh.Patch;case"head":return Wh.Head;default:return}}convertParameters({breadcrumbs:t}){let r=[],n=[],i=[];if(!this.operation.parameters)return this.checkMissingPathParameters(r),{pathParameters:r,queryParameters:n,headers:i};for(let o of this.operation.parameters){let s=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:t});if(s==null)continue;let u=new Nmr({context:this.context,breadcrumbs:t,parameter:s}).convert();if(u!=null)switch(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},u.type){case"path":r.push(u.parameter);break;case"query":n.push(u.parameter);break;case"header":{let c=u.parameter.name.name.originalName,l=u.parameter.name.wireValue,p=!1,d=this.context.authOverrides?.["auth-schemes"];if(d!=null){for(let m of Object.values(d))if(l8p(m)&&m.header.toLowerCase()===l.toLowerCase()){p=!0;break}}let f=this.context.globalHeaderNames;if(f!=null){for(let m of f)if(m.toLowerCase()===l.toLowerCase()){p=!0;break}}!s8p.has(c.toLowerCase())&&!p&&i.push(u.parameter);break}}}return this.checkMissingPathParameters(r),{pathParameters:r,queryParameters:n,headers:i}}checkMissingPathParameters(t){let n=[...this.path.matchAll(o8p)].map(i=>i[1]).filter(i=>!t.some(o=>o.name.originalName===i));for(let i of n){if(i==null)continue;let o=`${i}_example`;t.push({name:this.context.casingsGenerator.generateName(i),valueType:Ki.STRING,docs:void 0,location:"ENDPOINT",variable:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{[o]:this.generateStringParameterExample({example:i})}},explode:void 0})}}convertRequestBody({breadcrumbs:t,group:r,method:n,streamingExtension:i,queryParameters:o}){if(this.operation.requestBody==null)return;let s=this.context.resolveMaybeReference({schemaOrReference:this.operation.requestBody,breadcrumbs:t});if(s==null)return null;let a=[];for(let[u,c]of Object.entries(s.content)){let p=new jmr({context:this.context,breadcrumbs:t,contentType:u,mediaType:c,description:s.description,required:s.required,group:r??[],method:n,streamingExtension:i,queryParameters:o}).convert();p!=null&&(this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes},a.push({requestBody:p.requestBody,streamRequestBody:p.streamRequestBody,examples:p.examples}))}return a}computeGroupNameAndLocationFromExtensions(){let r=new zI.SdkMethodNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert()?.methodName,i=new zI.SdkGroupNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert()?.groups??[];if(r!=null)return{group:i,method:r}}evaluateMethodNameFromOperation(){let t=this.operation.operationId;return t??(this.operation.summary!=null?Un(this.operation.summary):Un(`${this.method}_${this.path.split("/").join("_")}`))}computeGroupNameFromTagAndOperationId(){let t=this.operation.tags?.[0],r=this.evaluateMethodNameFromOperation();if(t==null)return{method:r};let n=$pa(t),i=$pa(r);return Lb(n,i)?{method:t}:this.computeGroupAndMethodFromTokens({tag:t,tagTokens:n,methodName:r,methodNameTokens:i})}computeGroupAndMethodFromTokens({tag:t,tagTokens:r,methodName:n,methodNameTokens:i}){if(r.some((a,u)=>a!==i[u]))return{group:[t],method:n};let s=i.slice(r.length);return{group:[t],method:Un(s.join("_"))}}generateStringParameterExample({example:t}){let r=new Wf.ExampleConverter({breadcrumbs:this.breadcrumbs,context:this.context,schema:{type:"string"},example:t}),{validExample:n}=r.convert();return n}};function $pa(e){let t=a8p(e)?u8p(e):c8p(e);return t=t.map(r=>r.toLowerCase()),t=Ej(t),t}function a8p(e){return/^[a-z]+(?:[A-Z][a-z]+)*$/.test(e)}function u8p(e){return e.split(/(?=[A-Z])/)}function c8p(e){return e.split(/[^a-zA-Z0-9]+/)}function l8p(e){return e?.header!=null}var $Ve=class extends WVe{constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o}){super({context:t,breadcrumbs:r,operation:n,method:i,path:o})}convert(){if(this.operation.requestBody==null){this.context.errorCollector.collect({message:"Skipping webhook because no request body present",path:this.breadcrumbs});return}let t=this.convertHttpMethod();if(t==null)return;if(t!=="POST"&&t!=="GET"){this.context.errorCollector.collect({message:"Skipping webhook because non-POST or GET method",path:this.breadcrumbs});return}let{group:r,method:n}=this.computeGroupNameAndLocationFromExtensions()??this.computeGroupNameFromTagAndOperationId(),i=[...this.breadcrumbs,"Payload"],{headers:o,queryParameters:s}=this.convertParameters({breadcrumbs:i}),a=this.convertRequestBody({breadcrumbs:i,group:r,method:n,streamingExtension:void 0,queryParameters:s});if(a==null)return;let u=a[0]?.requestBody;if(u==null)return;let c,l;if(u.type==="inlinedRequestBody")c=Dw.inlinedPayload({name:u.name,extends:u.extends,properties:u.properties});else if(u.type==="reference")c=Dw.reference({payloadType:u.requestBodyType,docs:u.docs});else if(u.type==="fileUpload")l={name:u.name,properties:u.properties,docs:u.docs,v2Examples:u.v2Examples,contentType:u.contentType},c=Dw.inlinedPayload({name:u.name,extends:[],properties:[]});else return;let p=this.convertWebhookResponses();return{audiences:this.context.getAudiences({operation:this.operation,breadcrumbs:this.breadcrumbs})??[],group:r,webhook:{id:`${r?.join(".")??""}.${n}`,name:this.context.casingsGenerator.generateName(n),displayName:this.operation.summary,method:t,headers:o,payload:c,signatureVerification:void 0,fileUploadPayload:l,responses:p.length>0?p:void 0,examples:[],availability:this.context.getAvailability({node:this.operation,breadcrumbs:this.breadcrumbs}),docs:this.operation.description,v2Examples:{autogeneratedExamples:this.getWebhookV2ExamplesFromRequestBodyV2Examples(u.v2Examples?.autogeneratedExamples??{}),userSpecifiedExamples:this.getWebhookV2ExamplesFromRequestBodyV2Examples(u.v2Examples?.userSpecifiedExamples??{})}},inlinedTypes:this.inlinedTypes}}convertWebhookResponses(){let t=[];if(this.operation.responses==null)return t;for(let[r,n]of Object.entries(this.operation.responses)){let i=/^\d[Xx]{2}$/.test(r),o;if(i)o=parseInt(r.charAt(0))*100;else if(o=parseInt(r),isNaN(o))continue;let a=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:[...this.breadcrumbs,"responses",r]})?.description;t.push({statusCode:o,isWildcardStatusCode:i?!0:void 0,body:void 0,docs:a})}return t}getWebhookV2ExamplesFromRequestBodyV2Examples(t){return Object.fromEntries(Object.entries(t).map(([r,n])=>[r,{name:r,payload:n}]))}};var YIi=xe(Fmr(),1);var Hpa=["get","post","put","delete","patch","head"];var Mmr=class extends _a{operation;key="x-fern-idempotent";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-idempotent",path:this.breadcrumbs});return}return t}}};var p8p=mt.object({cursor:mt.string(),next_cursor:mt.string(),results:mt.string()}),f8p=mt.object({offset:mt.string(),results:mt.string(),step:mt.string().optional(),"has-next-page":mt.string().optional()}),d8p=mt.object({next_uri:mt.string(),results:mt.string()}),m8p=mt.object({next_path:mt.string(),results:mt.string()}),KIi=mt.union([mt.boolean(),p8p,f8p,d8p,m8p]);var JIi="$request.",Qme="$response.",Lmr=class extends _a{operation;document;key="x-fern-pagination";constructor({breadcrumbs:t,operation:r,document:n,context:i}){super({breadcrumbs:t,context:i}),this.operation=r,this.document=n}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=KIi.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-pagination extension: ${r.error.message}`,path:this.breadcrumbs});return}if(typeof r.data=="boolean"){let n=this.getExtensionValue(this.document);if(n==null)return;if(typeof n=="boolean"){this.context.errorCollector.collect({message:"Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.",path:this.breadcrumbs});return}let i=KIi.safeParse(n);if(!i.success){this.context.errorCollector.collect({message:`Invalid x-fern-pagination extension: ${i.error.message}`,path:this.breadcrumbs});return}if(typeof i.data=="boolean"){this.context.errorCollector.collect({message:"Global pagination extension is a boolean, expected an object.",path:this.breadcrumbs});return}return this.convertPaginationConfig({config:i.data})}if(typeof r.data=="boolean"){this.context.errorCollector.collect({message:"Pagination extension is a boolean with no global configuration.",path:this.breadcrumbs});return}return this.convertPaginationConfig({config:r.data})}convertPaginationConfig({config:t}){let r=t;if("cursor"in r)return{type:"cursor",cursor:QA.maybeTrimPrefix(r.cursor,JIi),nextCursor:QA.maybeTrimPrefix(r.next_cursor,Qme),results:QA.maybeTrimPrefix(r.results,Qme)};let n=t;if("next_uri"in n)return{type:"uri",nextUri:QA.maybeTrimPrefix(n.next_uri,Qme),results:QA.maybeTrimPrefix(n.results,Qme)};let i=t;if("next_path"in i)return{type:"path",nextPath:QA.maybeTrimPrefix(i.next_path,Qme),results:QA.maybeTrimPrefix(i.results,Qme)};let o=t;return{type:"offset",offset:QA.maybeTrimPrefix(o.offset,JIi),results:QA.maybeTrimPrefix(o.results,Qme),step:o.step!=null?QA.maybeTrimPrefix(o.step,JIi):void 0,hasNextPage:o["has-next-page"]!=null?QA.maybeTrimPrefix(o["has-next-page"],Qme):void 0}}};var h8p="$request.",g8p=mt.object({"stream-condition":mt.string().optional(),format:mt.enum(["sse","json"]).optional(),"stream-description":mt.string().optional(),"stream-request-name":mt.string().optional(),"response-stream":mt.any(),response:mt.any(),terminator:mt.string().optional()}),A8p=mt.union([mt.boolean(),g8p]),Umr=class extends _a{operation;key="x-fern-streaming";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=A8p.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-streaming extension: ${r.error.message}`,path:this.breadcrumbs});return}if(typeof r.data=="boolean")return r.data?{type:"stream",format:"json",terminator:void 0}:void 0;if(r.data["stream-condition"]==null&&r.data.format!=null)return{type:"stream",format:r.data.format,terminator:r.data.terminator};if(r.data["stream-condition"]==null){this.context.errorCollector.collect({message:"Missing stream-condition property without specified format.",path:this.breadcrumbs});return}return{type:"streamCondition",format:r.data.format??"json",terminator:r.data.terminator,streamDescription:r.data["stream-description"],streamConditionProperty:QA.maybeTrimPrefix(r.data["stream-condition"],h8p),streamRequestName:r.data["stream-request-name"],responseStream:r.data["response-stream"],response:r.data.response}}};var zmr=class extends _a{operation;key="x-fern-webhook";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-webhook",path:this.breadcrumbs});return}return t}}};Ci();St();var qmr=require("fs"),Kpa=require("path");function y8p(e){return Aa(e)&&typeof e.$ref=="string"}function b8p(e,t){if(e!=null){if(typeof e=="string")return e;if(y8p(e)){let r=(0,Kpa.resolve)(t??process.cwd(),e.$ref);if((0,qmr.existsSync)(r))try{return(0,qmr.readFileSync)(r,"utf-8")}catch{return}}}}var Vmr=class extends _a{operation;baseDir;key="x-codeSamples";constructor({context:t,breadcrumbs:r,operation:n,baseDir:i}){super({breadcrumbs:r,context:t}),this.operation=n,this.baseDir=i}convert(){let t=Aa(this.operation)?this.operation:{},r=t["x-codeSamples"],n=t["x-code-samples"],i=Array.isArray(r)?r:[],o=Array.isArray(n)?n:[],s=[...i,...o];if(s.length===0)return;let a=[];for(let u of s){if(!Aa(u))continue;let c=u,l=c.lang,p=c.label,d=c.source;if(typeof l!="string")continue;let f=b8p(d,this.baseDir);f!=null&&a.push({name:typeof p=="string"?p:l,language:l,code:f,install:void 0,docs:void 0})}if(a.length!==0)return[{"code-samples":a}]}};St();var Wmr=require("fs"),Jpa=require("path");function E8p(e){return Aa(e)&&typeof e.$ref=="string"}function v8p(e,t){if(e!=null){if(typeof e=="string")return e;if(E8p(e)){let r=(0,Jpa.resolve)(t??process.cwd(),e.$ref);if((0,Wmr.existsSync)(r))try{return(0,Wmr.readFileSync)(r,"utf-8")}catch{return}}}}function I8p(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!Aa(n))continue;let o=v8p(n.code,t);o!=null&&r.push({...n,code:o})}return r}var Gmr=class extends _a{operation;baseDir;key="x-fern-examples";constructor({context:t,breadcrumbs:r,operation:n,baseDir:i}){super({breadcrumbs:r,context:t}),this.operation=n,this.baseDir=i}convert(){let t=this.getExtensionValue(this.operation);return t==null?void 0:(Array.isArray(t)?t:[]).map(o=>{if(!Aa(o))return o;let a=o["code-samples"];if(a!=null){let u=I8p(a,this.baseDir);return{...o,"code-samples":u}}return o}).filter(o=>{let s=Hd.serialization.ExampleEndpointCallSchema.parse(o);return s.ok||this.context.errorCollector.collect({message:`Failed to parse x-fern-example in ${this.breadcrumbs.join(".")}`,path:this.breadcrumbs}),s.ok})}};var LIt=class extends _a{document;key="x-fern-explorer";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-explorer",path:this.breadcrumbs});return}return t}}};St();var UIt=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{responseBody;statusCode;streamingExtension;constructor({context:t,breadcrumbs:r,responseBody:n,group:i,method:o,statusCode:s,streamingExtension:a}){super({context:t,breadcrumbs:r,group:i,method:o}),this.responseBody=n,this.statusCode=s,this.streamingExtension=a}convert(){return this.shouldConvertAsStreaming()?this.convertStreamingResponseBody():this.convertNonStreamingResponseBody()}convertStreamingResponseBody(){if(this.streamingExtension!=null){if(this.streamingExtension.type=="streamCondition"){let t=this.streamingExtension.responseStream,r=this.streamingExtension.response,n=[...this.group,this.method,"Response",this.statusCode].join("_"),i=`${n}_streaming`,o=this.parseMediaTypeSchemaOrReference({schemaOrReference:t,schemaId:i}),s=this.parseMediaTypeSchemaOrReference({schemaOrReference:r,schemaId:n});return this.convertStreamConditionResponse({convertedStreamingSchema:o,convertedNonStreamingSchema:s})}if(this.streamingExtension.type==="stream"){let t=[...this.group,this.method,"Response",this.statusCode].join("_"),r=Object.keys(this.responseBody.content??{}),n=this.streamingExtension.format==="sse"?[...r.filter(i=>i.includes("text/event-stream")),...r.filter(i=>!i.includes("text/event-stream"))]:r;for(let i of n){let o=this.responseBody.content?.[i];if(o==null)continue;let s=this.parseMediaTypeObject({mediaTypeObject:o,schemaId:t,contentType:this.streamingExtension.format});if(s!=null)return this.convertStreamingResponse({mediaTypeObject:o,convertedSchema:s})}}}}convertNonStreamingResponseBody(){let t=[...this.group,this.method,"Response",this.statusCode].join("_"),r=Object.keys(this.responseBody.content??{}).filter(o=>o.includes("json"));for(let o of r){let s=this.responseBody.content?.[o];if(s==null)continue;let a=this.parseMediaTypeObject({mediaTypeObject:s,schemaId:t,contentType:o});if(a!=null&&this.shouldReturnJsonResponse(o))return this.returnJsonResponse({mediaTypeObject:s,convertedSchema:a})}let n=Object.keys(this.responseBody.content??{}).filter(o=>!o.includes("json"));for(let o of n){let s=this.responseBody.content?.[o];if(s==null)continue;let a=this.parseMediaTypeObject({mediaTypeObject:s,schemaId:t,contentType:o});if(a!=null){if(this.isBinarySchema(a))return this.shouldReturnBytesResponse()?this.returnBytesResponse({mediaTypeObject:s}):this.returnFileDownloadResponse({mediaTypeObject:s});if(this.shouldReturnTextResponse(o))return this.returnTextResponse({mediaTypeObject:s})}}let i=parseInt(this.statusCode);if(!isNaN(i)&&i>=200&&i<300){let o={schema:{type:"object",description:"Empty response body"}},s=this.parseMediaTypeObject({mediaTypeObject:o,schemaId:t,contentType:"application/json",resolveSchema:!0});if(s!=null)return this.returnJsonResponse({mediaTypeObject:o,convertedSchema:s})}}convertStreamConditionResponse({convertedStreamingSchema:t,convertedNonStreamingSchema:r}){if(t==null||r==null)return;let n=this.responseBody.description;return this.streamingExtension?.type==="streamCondition"&&this.streamingExtension.streamDescription!=null&&(n=this.streamingExtension.streamDescription),{responseBody:tc.json(F0.response({responseBodyType:r.type,docs:this.responseBody.description,v2Examples:r.schema?.typeDeclaration.v2Examples})),streamResponseBody:tc.streaming(zb.json({docs:n,payload:t.type,terminator:this.streamingExtension?.terminator,v2Examples:t.schema?.typeDeclaration.v2Examples})),inlinedTypes:{...t.inlinedTypes,...r.inlinedTypes},headers:this.convertResponseHeaders()}}convertStreamingResponse({mediaTypeObject:t,convertedSchema:r}){if(this.streamingExtension==null)return;switch(this.streamingExtension.format){case"json":return{responseBody:tc.streaming(zb.json({docs:this.responseBody.description,payload:r.type,terminator:this.streamingExtension?.terminator,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()};case"sse":return{responseBody:tc.streaming(zb.sse({docs:this.responseBody.description,payload:r.type,terminator:this.streamingExtension?.terminator,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()};default:return}}returnJsonResponse({mediaTypeObject:t,convertedSchema:r}){return{responseBody:tc.json(F0.response({responseBodyType:r.type,docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()}}returnBytesResponse({mediaTypeObject:t}){return{responseBody:tc.bytes({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}returnFileDownloadResponse({mediaTypeObject:t}){return{responseBody:tc.fileDownload({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}returnTextResponse({mediaTypeObject:t}){return{responseBody:tc.text({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}isBinarySchema(t){let r=t.type;switch(r.type){case"container":case"named":case"unknown":return!1;case"primitive":return r.primitive.v2==null?!1:r.primitive.v2.type==="string"&&r.primitive.v2.validation?.format==="binary";default:return!1}}shouldConvertAsStreaming(){return this.streamingExtension!=null}shouldReturnJsonResponse(t){return t.includes("json")}shouldReturnBytesResponse(){return this.context.settings.useBytesForBinaryResponse&&this.streamingExtension==null}shouldReturnTextResponse(t){return Wp.parse(t)?.isText()??!1}convertResponseHeaders(){let t=[],r=this.responseBody.headers;if(r==null)return t;for(let[n,i]of Object.entries(r)){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[...this.breadcrumbs,"headers",n]});if(o==null)continue;let s=o.schema,a=Ki.OPTIONAL_STRING;if(s!=null){let c=this.context.resolveMaybeReference({schemaOrReference:s,breadcrumbs:[...this.breadcrumbs,"headers",n,"schema"]});c!=null&&(c.type==="number"||c.type==="integer"?a=Fr.primitive({v1:c.type==="integer"?"INTEGER":"DOUBLE",v2:c.type==="integer"?Qn.integer({default:void 0,validation:void 0}):Qn.double({default:void 0,validation:void 0})}):c.type==="boolean"&&(a=Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})})))}let u=this.convertHeaderExamples({header:o,headerName:n,schema:s});t.push({name:this.context.casingsGenerator.generateNameAndWireValue({name:n,wireValue:n}),docs:o.description,valueType:a,env:void 0,v2Examples:u,availability:void 0})}return t}convertHeaderExamples({header:t,headerName:r,schema:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t.example,s=t.examples;for(let[a,u]of Object.entries(s??{})){let c=this.context.resolveExampleWithValue(u);c!=null&&(i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:c}))}if(o!=null){let a=this.context.generateUniqueName({prefix:`${r}_example`,existingNames:Object.keys(i.userSpecifiedExamples)});i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:o})}if(Object.keys(i.userSpecifiedExamples).length===0&&n!=null){let a=`${r}_example`;i.autogeneratedExamples[a]=this.generateHeaderExample({schema:n,example:void 0,ignoreErrors:!0})}return i}generateHeaderExample({schema:t,example:r,ignoreErrors:n}){if(t==null)return r;let i=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:o,errors:s}=i.convert();return n||s.forEach(a=>{this.context.errorCollector.collect({message:a.message,path:a.path})}),o}};var $mr=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{responseError;statusCode;methodName;isWildcardStatusCode;constructor({context:t,breadcrumbs:r,responseError:n,group:i,method:o,methodName:s,statusCode:a,isWildcardStatusCode:u}){super({context:t,breadcrumbs:r,group:i,method:o}),this.responseError=n,this.statusCode=a,this.methodName=s,this.isWildcardStatusCode=u}convert(){if(!this.responseError.content){let n=this.getErrorNameForStatusCode(this.statusCode,this.isWildcardStatusCode);if(n==null){this.context.logger.warn(`No error name found for status code ${this.statusCode}`);return}let i=this.getErrorIdFromErrorName(n);return{error:{error:{name:this.context.casingsGenerator.generateName(i),fernFilepath:{allParts:[],packagePath:[],file:void 0},errorId:i},docs:this.responseError.description},errorType:Fr.unknown(),displayName:n,statusCode:this.statusCode,isWildcardStatusCode:this.isWildcardStatusCode,inlinedTypes:{},examples:{},headers:this.convertResponseHeaders()}}let t=Object.keys(this.responseError.content).filter(n=>n.includes("json")),r=this.getErrorNameForStatusCode(this.statusCode,this.isWildcardStatusCode);if(r==null){this.context.logger.warn(`No error name found for status code ${this.statusCode}`);return}for(let n of[...t]){let i=this.responseError.content?.[n];if(i==null)continue;let o=this.parseMediaTypeObject({mediaTypeObject:i,schemaId:Ypa(`${this.methodName}Request${r}`),contentType:n});if(o==null)continue;let s=this.getErrorIdFromErrorName(r);if(o.schema!=null)return this.constructErrorConverterOutput({errorName:r,errorId:s,fernFilepath:o.schema.typeDeclaration.name.fernFilepath,convertedSchema:o,mediaTypeObject:i});if(o.type.type==="named")return this.constructErrorConverterOutput({errorName:r,errorId:s,fernFilepath:o.type.fernFilepath,convertedSchema:o,mediaTypeObject:i})}}constructErrorConverterOutput({errorName:t,errorId:r,fernFilepath:n,convertedSchema:i,mediaTypeObject:o}){return{error:{error:{name:this.context.casingsGenerator.generateName(r),fernFilepath:n,errorId:r},docs:this.responseError.description},errorType:i.type,displayName:t,statusCode:this.statusCode,isWildcardStatusCode:this.isWildcardStatusCode,inlinedTypes:i.inlinedTypes,examples:this.convertErrorExamples({mediaTypeObject:o}),headers:this.convertResponseHeaders()}}convertErrorExamples({mediaTypeObject:t}){let r=this.context.getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:this.breadcrumbs,defaultExampleName:`${[...this.group,this.method].join("_")}_error_example`});if(r.length===0)return;let n=new Set,i={};for(let[o,s]of r){let a=this.context.resolveExampleWithValue(s),u=this.context.resolveExampleRecursively({example:s,breadcrumbs:this.breadcrumbs}),c=this.getIdForErrorExample({key:o,example:u,usedExampleNames:n});n.add(c),a!=null&&(i[c]=a)}return Object.keys(i).length>0?i:void 0}getIdForErrorExample({key:t,example:r,usedExampleNames:n}){if(this.context.isExampleWithSummary(r)){let i=r.summary;if(!n.has(i))return i;let o=`${i} (${t})`;return n.has(o)?t:o}return t}getErrorNameForStatusCode(t,r){if(r){if(t===400)return"ClientRequestError";if(t===500)return"ServerError"}return _mr[t]}getErrorIdFromErrorName(t){return this.context.enableUniqueErrorsPerEndpoint?Ypa(`${this.methodName}Request${t}`):t}convertResponseHeaders(){let t=[],r=this.responseError.headers;if(r==null)return t;for(let[n,i]of Object.entries(r)){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[...this.breadcrumbs,"headers",n]});if(o==null)continue;let s=o.schema,a=Ki.OPTIONAL_STRING;if(s!=null){let c=this.context.resolveMaybeReference({schemaOrReference:s,breadcrumbs:[...this.breadcrumbs,"headers",n,"schema"]});c!=null&&(c.type==="number"||c.type==="integer"?a=Fr.primitive({v1:c.type==="integer"?"INTEGER":"DOUBLE",v2:c.type==="integer"?Qn.integer({default:void 0,validation:void 0}):Qn.double({default:void 0,validation:void 0})}):c.type==="boolean"&&(a=Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})})))}let u=this.convertHeaderExamples({header:o,headerName:n,schema:s});t.push({name:this.context.casingsGenerator.generateNameAndWireValue({name:n,wireValue:n}),docs:o.description,valueType:a,env:void 0,v2Examples:u,availability:void 0})}return t}convertHeaderExamples({header:t,headerName:r,schema:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t.example,s=t.examples;for(let[a,u]of Object.entries(s??{})){let c=this.context.resolveExampleWithValue(u);c!=null&&(i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:c}))}if(o!=null){let a=this.context.generateUniqueName({prefix:`${r}_example`,existingNames:Object.keys(i.userSpecifiedExamples)});i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:o})}if(Object.keys(i.userSpecifiedExamples).length===0&&n!=null){let a=`${r}_example`;i.autogeneratedExamples[a]=this.generateHeaderExample({schema:n,example:void 0,ignoreErrors:!0})}return i}generateHeaderExample({schema:t,example:r,ignoreErrors:n}){if(t==null)return r;let i=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:o,errors:s}=i.convert();return n||s.forEach(a=>{this.context.errorCollector.collect({message:a.message,path:a.path})}),o}};function Ypa(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}var Hmr=class e extends WVe{idempotent;idToAuthScheme;topLevelServers;pathLevelServers;streamingExtension;static AUTHORIZATION_HEADER="Authorization";constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o,idempotent:s,idToAuthScheme:a,topLevelServers:u,pathLevelServers:c,streamingExtension:l}){super({context:t,breadcrumbs:r,operation:n,method:i,path:o}),this.idempotent=s,this.idToAuthScheme=a,this.topLevelServers=u,this.pathLevelServers=c,this.streamingExtension=l}convert(){let t=this.convertHttpMethod();if(t==null)return;let{group:r,method:n}=this.computeGroupNameAndLocationFromExtensions()??this.computeGroupNameFromTagAndOperationId(),i=this.getGroupDisplayName(r),{headers:o,pathParameters:s,queryParameters:a}=this.convertParameters({breadcrumbs:[...this.breadcrumbs,"parameters"]}),u=this.convertRequestBody({breadcrumbs:[...this.breadcrumbs,"requestBody"],group:r,method:n,streamingExtension:this.streamingExtension,queryParameters:a}),c=u?.[0]?.requestBody,l=u?.[0]?.streamRequestBody,p={requestBodies:u?.map(H=>H.requestBody)},d=this.convertResponseBody({breadcrumbs:[...this.breadcrumbs,"responses"],group:r,method:n,streamingExtension:this.streamingExtension}),f=d?.response,m=d?.streamResponse,h=d!=null?d.errors:[],g={},A=h.map(H=>H.error),b=vy(this.path),v=this.getEndpointBaseUrl(),E=this.getEndpointBaseUrls(),I=this.convertExamples({httpPath:b,httpMethod:t,baseUrl:v}),w=new Set(this.operation.security?.flatMap(H=>Object.keys(H))??[]),x=this.authSchemeToHeaders(Array.from(w));x.length>0&&o.push(...x);for(let H of h){let Ee=H.error,Ce=H.errorType,J=Ee.error.errorId,K=H.examples;g[J]={name:Ee.error,displayName:H.displayName,discriminantValue:{name:Ee.error.name,wireValue:J},type:Ce,statusCode:H.statusCode,isWildcardStatusCode:H.isWildcardStatusCode,docs:Ee.docs,examples:[],v2Examples:{userSpecifiedExamples:K??{},autogeneratedExamples:{}},headers:H.headers}}let C=this.context.getAudiences({operation:this.operation,breadcrumbs:this.breadcrumbs})??[],R=new LIt({context:this.context,breadcrumbs:this.breadcrumbs,document:this.context.spec}).convert(),z=new LIt({context:this.context,breadcrumbs:this.breadcrumbs,document:this.operation}).convert()??R,Y={displayName:this.operation.summary,method:t,baseUrl:v,v2BaseUrls:E,path:b,pathParameters:s,queryParameters:a,headers:o.filter((H,Ee,Ce)=>Ee===Ce.findIndex(J=>J.name.wireValue===H.name.wireValue)),responseHeaders:d?.responseHeaders,sdkRequest:void 0,errors:A,auth:this.computeEndpointAuth(),security:this.computeEndpointSecurity(),availability:this.context.getAvailability({node:this.operation,breadcrumbs:this.breadcrumbs}),userSpecifiedExamples:[],autogeneratedExamples:[],idempotent:this.idempotent??!1,basePath:void 0,fullPath:b,allPathParameters:s,pagination:void 0,transport:void 0,source:uS.openapi(),audiences:C,retries:void 0,apiPlayground:z},oe=this.context.namespace!=null?[this.context.namespace]:[],V=r?.map(H=>Un(H));return oe.push(...V??[]),{audiences:C,group:r,groupDisplayName:i,errors:g,endpoint:{...Y,id:`endpoint_${oe.join("/")}.${n}`,name:this.context.casingsGenerator.generateName(n),requestBody:c,v2RequestBodies:p,response:f,docs:this.operation.description,v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:I.examples},v2Responses:{responses:d?.v2Responses}},streamEndpoint:m!=null&&m.body!=null?{...Y,id:`endpoint_${oe.join("/")}.${n}_stream`,name:this.context.casingsGenerator.generateName(`${n}_stream`),requestBody:l,v2RequestBodies:void 0,response:m,docs:this.streamingExtension?.type==="streamCondition"?this.streamingExtension.streamDescription??this.operation.description:this.operation.description,v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:I.streamExamples},v2Responses:{responses:[{statusCode:200,isWildcardStatusCode:void 0,body:m.body,docs:m.docs}]}}:void 0,inlinedTypes:this.inlinedTypes,servers:this.filterOutTopLevelServers(this.operation.servers??this.pathLevelServers??[])}}convertResponseBody({breadcrumbs:t,group:r,method:n,streamingExtension:i}){if(this.operation.responses==null)return;let o,s=!1;for(let[a,u]of Object.entries(this.operation.responses)){let c=/^[45]XX$/i.test(a),l,p=!1;if(c)l=parseInt(a.charAt(0))*100,p=!0;else{if(l=parseInt(a),isNaN(l)||l<200||l>=300&&l<400)continue;p=l>=400&&l<600}if(o==null&&(o={response:void 0,v2Responses:void 0,streamResponse:void 0,errors:[],examples:{},responseHeaders:[]}),l>=200&&l<300){let d=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:[...t,a]});if(d==null)continue;let m=new UIt({context:this.context,breadcrumbs:[...t,a],responseBody:d,group:r??[],method:n,statusCode:a,streamingExtension:i}).convert();m!=null&&(this.inlinedTypes={...this.inlinedTypes,...m.inlinedTypes},s||(s=!0,o.response={statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.responseBody,docs:d.description},o.streamResponse={statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.streamResponseBody,docs:d.description},m.headers!=null&&(o.responseHeaders=m.headers)),o.v2Responses=[...o.v2Responses??[],{statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.responseBody,docs:d.description}])}if(p){let d=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:[...t,a]});if(d==null)continue;let m=new $mr({context:this.context,breadcrumbs:[...t,a],responseError:d,group:r??[],method:n,methodName:this.evaluateMethodNameFromOperation(),statusCode:l,isWildcardStatusCode:c?!0:void 0}).convert();m!=null&&(this.inlinedTypes={...this.inlinedTypes,...m.inlinedTypes},o.errors.push(m))}}if(this.streamingExtension!=null){o==null&&(o={response:void 0,v2Responses:void 0,streamResponse:void 0,errors:[],examples:{},responseHeaders:[]});let u=new UIt({context:this.context,breadcrumbs:[...t,"stream"],responseBody:{description:""},group:r??[],method:n,statusCode:"stream",streamingExtension:i}).convert();u!=null&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},o.response={statusCode:200,isWildcardStatusCode:void 0,body:u.responseBody,docs:void 0},o.streamResponse={statusCode:200,isWildcardStatusCode:void 0,body:u.streamResponseBody,docs:void 0},o.v2Responses=[{statusCode:200,isWildcardStatusCode:void 0,body:u.responseBody,docs:void 0}])}return o}computeEndpointAuth(){return this.operation.security!=null&&this.operation.security.length===0?!1:this.operation.security!=null&&this.operation.security.length>0?!0:this.context.spec.security!=null&&this.context.spec.security.length>0||this.shouldApplyDefaultAuthOverrides()}computeEndpointSecurity(){return this.operation.security!=null&&this.operation.security.length===0?[]:this.context.authOverrides?.auth!=null?this.getDefaultSecurityFromAuthOverrides():this.operation.security??this.context.spec.security}shouldApplyDefaultAuthOverrides(){if(!this.context.authOverrides?.auth)return!1;let t=this.context.spec.security!=null&&this.context.spec.security.length>0,r=this.operation.security!=null&&this.operation.security.length>0;return!(t||r)}getDefaultSecurityFromAuthOverrides(){if(!this.context.authOverrides?.auth)return;let t=this.context.authOverrides.auth;if(typeof t=="string"){let r={};return r[t]=[],[r]}if(typeof t=="object"&&"any"in t){let r=t.any;if(Array.isArray(r))return r.map(n=>{let i=typeof n=="string"?n:n.scheme,o={};return o[i]=[],o})}}authSchemeToHeaders(t){let r=[];for(let n of t){let i=this.idToAuthScheme?.[n];if(i==null)continue;let o={valueType:Ki.STRING,availability:void 0,docs:void 0,env:void 0,v2Examples:void 0};switch(i.type){case"bearer":r.push({name:{name:this.context.casingsGenerator.generateName(e.AUTHORIZATION_HEADER),wireValue:e.AUTHORIZATION_HEADER},...o});break;case"basic":r.push({name:{name:this.context.casingsGenerator.generateName(e.AUTHORIZATION_HEADER),wireValue:e.AUTHORIZATION_HEADER},...o});break;case"header":r.push({name:i.name,...o});break}}return r}convertExamples({httpPath:t,httpMethod:r,baseUrl:n}){let o=new Gmr({context:this.context,breadcrumbs:this.breadcrumbs,operation:this.operation,baseDir:this.context.documentBaseDir}).convert()??[],a=new Vmr({context:this.context,breadcrumbs:this.breadcrumbs,operation:this.operation,baseDir:this.context.documentBaseDir}).convert()??[],c=o.some(l=>Array.isArray(l["code-samples"])&&l["code-samples"].length>0)?o:[...o,...a];return c.length===0?{examples:{},streamExamples:{}}:this.streamingExtension?.type==="streamCondition"?this.convertStreamConditionExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:c}):{examples:this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:c}),streamExamples:{}}}convertStreamConditionExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:i}){let o=i.filter(c=>!(c.response!=null&&"stream"in c.response)),s=i.filter(c=>c.response!=null&&"stream"in c.response),a=this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:o}),u=this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:s});return{examples:a,streamExamples:u}}convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:i}){return Object.fromEntries(i.map((o,s)=>[this.getExampleName({example:o,exampleIndex:s}),{displayName:void 0,request:o.request!=null||o["path-parameters"]!=null||o["query-parameters"]!=null||o.headers!=null?{docs:void 0,endpoint:{method:r,path:this.buildExamplePath(t,o["path-parameters"]??{})},baseUrl:void 0,environment:n,auth:void 0,pathParameters:o["path-parameters"]??{},queryParameters:o["query-parameters"]??{},headers:o.headers??{},requestBody:o.request??void 0}:void 0,response:o.response!=null?{docs:void 0,statusCode:void 0,body:this.getExampleResponseBody({example:o})}:void 0,codeSamples:o["code-samples"]?.map(a=>{let u=("language"in a?a.language:a.sdk)??void 0;return{name:a.name,docs:void 0,language:u,code:a.code}})}]))}getExampleName({example:t,exampleIndex:r}){return t.name??t["code-samples"]?.[0]?.name??`Example_${r}`}getExampleResponseBody({example:t}){if(t.response!=null){if("stream"in t.response)return Gt.V2HttpEndpointResponseBody.stream(t.response.stream);if("body"in t.response)return Gt.V2HttpEndpointResponseBody.json(t.response.body)}}getEndpointBaseUrl(){let r=new zI.ServerFromOperationNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert();if(r!=null)return this.context.logger.debug(`[getEndpointBaseUrl] Endpoint ${this.method.toUpperCase()} ${this.path} specifies a server with "${En.SERVER_NAME_V2}" extension. Returning server type: ${r}`),r;let n=this.operation.servers?.[0]??this.pathLevelServers?.[0];if(n==null)return;let o=this.topLevelServers?.find(s=>s.url===n.url)??n;return RQ.getServerName({server:o,context:this.context})}getEndpointBaseUrls(){let t=this.operation.servers??this.pathLevelServers;return t?.map(n=>{let o=this.topLevelServers?.find(s=>s.url===n.url)??n;return RQ.getServerName({server:o,context:this.context})})}buildExamplePath(t,r){return t.head+t.parts.map(n=>`${r[n.pathParameter]?.toString()??n.pathParameter}${n.tail}`).join("")}filterOutTopLevelServers(t){return t.filter(r=>!this.topLevelServers?.some(n=>n.url===r.url))}getGroupDisplayName(t){let r=this.operation.tags?.[0];r!=null&&(r=this.context.getDisplayNameForTag(r));let n=t?.[t.length-1];if(n!=null&&r!=null)return r.toLowerCase().replaceAll(" ","")===n?r:void 0}};var Kmr=class extends Ki{pathItem;path;idToAuthScheme;topLevelServers;constructor({context:t,breadcrumbs:r,pathItem:n,path:i,idToAuthScheme:o,topLevelServers:s}){super({context:t,breadcrumbs:r}),this.pathItem=n,this.path=i,this.idToAuthScheme=o,this.topLevelServers=s}convert(){let t=[],r=[],n={};for(let i of Hpa){let o=this.pathItem[i];if(o==null)continue;let s=[...this.breadcrumbs,i],a=this.tryParseAsWebhook({operationBreadcrumbs:s,operation:o,method:i,context:this.context});if(a!=null){r.push(a),Object.assign(n,a.inlinedTypes);continue}let c=new Umr({breadcrumbs:s,operation:o,context:this.context}).convert();c==null&&this.operationHasTextEventStreamResponse(o)&&(c={type:"stream",format:"sse",terminator:void 0});let l=this.tryParseAsHttpEndpoint({operationBreadcrumbs:s,operation:o,method:i,streamingExtension:c});l!=null&&(t.push(l),Object.assign(n,l.inlinedTypes))}return{endpoints:t,webhooks:r,inlinedTypes:n}}tryParseAsWebhook({operation:t,method:r,operationBreadcrumbs:n,context:i}){return new zmr({breadcrumbs:n,operation:t,context:i}).convert()?new $Ve({context:this.context,breadcrumbs:n,operation:t,method:YIi.OpenAPIV3.HttpMethods[r.toUpperCase()],path:this.path}).convert():void 0}operationHasTextEventStreamResponse(t){if(t.responses==null)return!1;for(let[r,n]of Object.entries(t.responses)){let i=parseInt(r);if(isNaN(i)||i<200||i>=300)continue;let o=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:this.breadcrumbs});if(o?.content==null)continue;let s=Object.keys(o.content);if(s.length===1&&s[0]?.includes("text/event-stream"))return!0}return!1}tryParseAsHttpEndpoint({operation:t,method:r,operationBreadcrumbs:n,streamingExtension:i}){new Lmr({breadcrumbs:n,operation:t,document:this.context.spec,context:this.context}).convert()!=null;let u=new Mmr({breadcrumbs:n,operation:t,context:this.context}).convert();return new Hmr({context:this.context,breadcrumbs:n,operation:t,method:YIi.OpenAPIV3.HttpMethods[r.toUpperCase()],path:this.path,idempotent:u,idToAuthScheme:this.idToAuthScheme,topLevelServers:this.topLevelServers,pathLevelServers:this.pathItem.servers,streamingExtension:i}).convert()}};var Jmr=class extends Ki{securityScheme;schemeId;constructor({context:t,breadcrumbs:r,securityScheme:n,schemeId:i}){super({context:t,breadcrumbs:r}),this.securityScheme=n,this.schemeId=i}getExtension(t){return this.securityScheme[t]}convert(){switch(this.securityScheme.type){case"http":{if(this.securityScheme.scheme?.toLowerCase()==="bearer"){let t=this.getExtension("x-fern-bearer"),r=t?.name??"token",n=t?.env;return Ep.bearer({key:this.schemeId,token:this.context.casingsGenerator.generateName(r),tokenEnvVar:n,docs:this.securityScheme.description})}if(this.securityScheme.scheme?.toLowerCase()==="basic"){let t=this.getExtension("x-fern-basic"),r=t?.username?.name??"username",n=t?.password?.name??"password",i=t?.username?.env,o=t?.password?.env;return Ep.basic({key:this.schemeId,username:this.context.casingsGenerator.generateName(r),password:this.context.casingsGenerator.generateName(n),usernameEnvVar:i,passwordEnvVar:o,usernameOmit:!1,passwordOmit:!1,docs:this.securityScheme.description})}break}case"apiKey":{if(this.securityScheme.in==="header"){let t=this.getExtension("x-fern-header"),r=t?.name??"apiKey",n=t?.env,i=t?.prefix;return Ep.header({key:this.schemeId,name:{name:this.context.casingsGenerator.generateName(r),wireValue:this.securityScheme.name},valueType:Ki.OPTIONAL_STRING,prefix:i,headerEnvVar:n,docs:this.securityScheme.description})}break}case"oauth2":return Ep.bearer({key:this.schemeId,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:this.securityScheme.description})}}};var zIt=class extends z6{constructor({breadcrumbs:t,context:r,audiences:n}){super({breadcrumbs:t,context:r,audiences:n})}async convert(){this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.context.spec=await this.resolveAllExternalRefs({spec:this.context.spec}),this.overrideOpenApiAuthWithGeneratorsAuth(),this.convertSecuritySchemes(),this.convertGlobalHeaders(),this.convertBasePath(),this.convertSchemas(),this.convertWebhooks();let{endpointLevelServers:t,errors:r}=this.convertPaths();this.addErrorsToIr(r);let{defaultUrl:n}=this.convertServers({endpointLevelServers:t});this.updateEndpointsWithDefaultUrl(n);let i=this.context.spec.info?.title?.trim();return i&&i!=='""'&&(this.ir.apiDisplayName=i),this.finalizeIr()}convertGlobalHeaders(){this.context.globalHeaderOverrides;let r=new Qmr({breadcrumbs:["x-fern-global-headers"],document:this.context.spec,context:this.context}).convert();if(r!=null){let n=Wpa({globalHeaders:r,context:this.context});this.addGlobalHeadersToIr(n),this.context.setGlobalHeaders(n)}}convertBasePath(){let r=new kmr({breadcrumbs:["x-fern-base-path"],document:this.context.spec,context:this.context}).convert();r!=null&&(this.ir.basePath=vy(r))}convertSecuritySchemes(){if(this.context.authOverrides){let r=nEt({rawApiFileSchema:this.context.authOverrides,casingsGenerator:this.context.casingsGenerator});this.addAuthToIR({requirement:r.requirement,schemes:r.schemes,docs:r.docs});return}let t=this.convertOpenApiSecuritySchemes();t.length>0&&this.addAuthToIR({requirement:t.length===1?"ALL":"ANY",schemes:t,docs:void 0})}convertOpenApiSecuritySchemes(){let t=[];for(let[r,n]of Object.entries(this.context.spec.components?.securitySchemes??{})){let i=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:["components","securitySchemes",r]});if(i==null)continue;let s=new Jmr({context:this.context,breadcrumbs:["components","securitySchemes",r],securityScheme:i,schemeId:r}).convert();s!=null&&t.push(s)}return t}convertServers({endpointLevelServers:t}){if(this.context.environmentOverrides){let i=iEt({rawApiFileSchema:this.context.environmentOverrides,casingsGenerator:this.context.casingsGenerator});return i!=null&&this.addEnvironmentsToIr({environmentConfig:i.environmentsConfig,audiences:i.audiences}),{defaultUrl:this.context.environmentOverrides["default-url"]}}let n=new RQ({context:this.context,breadcrumbs:["servers"],servers:this.context.spec.servers,endpointLevelServers:t}).convert();return this.addEnvironmentsToIr({environmentConfig:n?.value}),{defaultUrl:n?.defaultUrl}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{})){let i=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:["components","schemas",t],schema:r}).convert();i!=null&&this.addSchemaOutputToIr(t,i)}}convertWebhooks(){for(let[t,r]of Object.entries(this.context.spec.webhooks??{})){if(r==null){this.context.errorCollector.collect({message:"Skipping empty webhook",path:this.breadcrumbs});continue}if(!("post"in r)||r.post==null){this.context.errorCollector.collect({message:"Skipping webhook as it is not a POST method",path:this.breadcrumbs});continue}let n=r.post.operationId??t,i=r.post.operationId!=null?r.post:{...r.post,operationId:n},s=new $Ve({context:this.context,breadcrumbs:["webhooks",n],operation:i,method:Xpa.OpenAPIV3.HttpMethods.POST,path:n}).convert();s!=null&&(this.addWebhookToIr({webhook:s.webhook,operationId:n,audiences:s.audiences,group:s.group}),this.addTypesToIr(s.inlinedTypes))}}convertPaths(){let t=[],r={};for(let[n,i]of Object.entries(this.context.spec.paths??{})){if(i==null)continue;let s=new Kmr({context:this.context,breadcrumbs:["paths",n],topLevelServers:this.context.spec.servers,pathItem:i,path:n}).convert();if(s!=null){for(let a of s.endpoints){if(a.streamEndpoint!=null&&this.addEndpointToIr({endpoint:a.streamEndpoint,audiences:a.audiences,endpointGroup:a.group,endpointGroupDisplayName:a.groupDisplayName}),this.addEndpointToIr({endpoint:a.endpoint,audiences:a.audiences,endpointGroup:a.group,endpointGroupDisplayName:a.groupDisplayName}),a.servers)for(let u of a.servers)this.shouldAddServerToCollectedServers({server:u,currentServers:t})&&t.push(u);if(a.errors)for(let[u,c]of Object.entries(a.errors))r[u]=c}for(let a of s.webhooks){let u=this.context.getGroup({groupParts:a.group,namespace:this.context.namespace});this.addWebhookToIr({webhook:a.webhook,operationId:u.join("."),group:u,audiences:a.audiences})}this.addTypesToIr(s.inlinedTypes)}}return{endpointLevelServers:t,errors:r}}overrideOpenApiAuthWithGeneratorsAuth(){if(!this.context.authOverrides?.["auth-schemes"])return;this.context.spec.components||(this.context.spec.components={}),this.context.spec.components.securitySchemes={};let t={};for(let r of Object.keys(this.context.authOverrides["auth-schemes"]))this.context.spec.components.securitySchemes[r]={type:"http",scheme:"bearer"},t[r]=[];this.context.spec.security=[t],this.removeEndpointSpecificAuth()}removeEndpointSpecificAuth(){if(this.context.spec.paths)for(let t of Object.values(this.context.spec.paths)){if(!t)continue;let r=["get","post","put","patch","delete","options","head","trace"];for(let n of r){let i=t[n];i?.security&&delete i.security}}}};var Ymr=class extends _a{tag;key="x-displayName";constructor({breadcrumbs:t,tag:r,context:n}){super({breadcrumbs:t,context:n}),this.tag=r}convert(){if(typeof this.tag!="object"||this.tag==null)return;let t=this.tag[this.key];if(t!=null){if(typeof t!="string"){this.context.errorCollector.collect({message:"x-displayName extension must be a string",path:this.breadcrumbs});return}if(t.trim().length!==0)return{displayName:t}}}};var Goe=class extends QA{globalHeaderNames;tagToDisplayName={};isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o=this.getTypeIdFromSchemaReference(t);if(o==null)return{ok:!1};let s=this.getRawSchemaNameFromReference(t)??o,a=this.resolveReference({reference:t,breadcrumbs:r});if(!a.resolved)return{ok:!1};let u;i==="reference_identifier"?u=n??a.value.title:i==="discriminator_key"?u=a.value.title??n:i==="schema_identifier"&&(u=a.value.title);let c;if(o.includes("/")){let p=new Wf.SchemaConverters.SchemaConverter({context:this,breadcrumbs:r??[],schema:a.value,id:o}).convert();p!=null&&(c={[o]:p.convertedSchema})}return{ok:!0,reference:Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(s),typeId:o,default:void 0,inline:!1,displayName:u}),inlinedTypes:c}}setGlobalHeaders(t){this.globalHeaderNames=t.map(r=>r.name.wireValue)}getDisplayNameForTag(t){if(Object.keys(this.tagToDisplayName).length===0)for(let r of this.spec.tags??[]){let i=new Ymr({breadcrumbs:["tags",r.name],tag:r,context:this}).convert()?.displayName??r.name;this.tagToDisplayName[r.name]=i}return this.tagToDisplayName[t]??t}};St();var w8p=mt.object({description:mt.string().optional(),required:mt.boolean().optional(),deprecated:mt.boolean().optional(),allowEmptyValue:mt.boolean().optional(),style:mt.string().optional(),explode:mt.boolean().optional(),allowReserved:mt.boolean().optional(),schema:mt.any().optional(),example:mt.any().optional(),examples:mt.record(mt.string(),mt.any()).optional(),content:mt.record(mt.string(),mt.any()).optional()}),C8p=w8p.extend({name:mt.string(),in:mt.string()}),x8p=mt.array(C8p),Xmr=class extends _a{operation;key="x-fern-parameters";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null)try{return x8p.parse(t)}catch(r){this.context.errorCollector.collect({message:`Failed to parse x-fern-parameters extension: ${xi(r)}`,path:this.breadcrumbs});return}}};var Zmr=class extends Ki{method;pathParameters;queryParameters;headers;topLevelServers;constructor({context:t,breadcrumbs:r,method:n,pathParameters:i=[],queryParameters:o=[],headers:s=[],topLevelServers:a=[]}){super({context:t,breadcrumbs:r}),this.method=n,this.pathParameters=i,this.queryParameters=o,this.headers=s,this.topLevelServers=a}convert(){let t={},r="";for(let c of this.pathParameters)r+=`/{${c.name.originalName}}`;let n=vy(r),i=[];for(let[c,l]of this.method.params.entries()){let p;if(this.context.isReferenceObject(l)){let h=this.context.resolveReference({reference:l});if(h.resolved)p=h.value;else continue}else p=l;let d=[this.method.name,"Param",p.name].join("_"),m=new Wf.SchemaConverters.SchemaOrReferenceConverter({breadcrumbs:[this.method.name,"Param",p.name],schemaIdOverride:d,context:this.context,schemaOrReference:p.schema,wrapAsOptional:!p.required}).convert();m!=null&&(i.push({docs:p.description,availability:this.context.getAvailability({node:l,breadcrumbs:[...this.breadcrumbs,"parameters"]}),name:this.context.casingsGenerator.generateNameAndWireValue({name:p.name,wireValue:p.name}),valueType:m.type,v2Examples:m.schema?.typeDeclaration.v2Examples,propertyAccess:void 0}),t={...m.inlinedTypes,...t,...m.schema!=null?{[d]:m.schema}:{}})}let o;if(this.method.result!=null){let c=this.context.resolveMaybeReference({schemaOrReference:this.method.result,breadcrumbs:[...this.breadcrumbs,"result"]});if(c!=null){let l=new Wf.SchemaConverters.SchemaOrReferenceConverter({breadcrumbs:[this.method.name,"result"],context:this.context,schemaOrReference:c.schema}),p=[this.method.name,"Result"].join("_"),d=l.convert();d!=null&&(o={docs:c.description,v2Examples:d.schema?.typeDeclaration.v2Examples,responseBodyType:d.type},t={...d.inlinedTypes,...t,...d.schema!=null?{[p]:d.schema}:{}})}}let s=this.getEndpointBaseUrls(),a=this.context.getAudiences({operation:this.method,breadcrumbs:this.breadcrumbs})??[];return{endpoint:{baseUrl:void 0,v2BaseUrls:s,basePath:void 0,auth:!1,security:void 0,method:"POST",id:this.method.name,docs:this.method.description,name:this.context.casingsGenerator.generateName(this.method.name),headers:this.headers,displayName:this.method.name,pathParameters:this.pathParameters,queryParameters:this.queryParameters,allPathParameters:this.pathParameters,path:n,fullPath:n,requestBody:i.length>0?Rf.inlinedRequestBody({name:this.context.casingsGenerator.generateName([this.method.name,"Request"].join("_")),docs:void 0,properties:i,extends:[],extendedProperties:[],contentType:"application/json",extraProperties:!1,v2Examples:void 0}):void 0,v2RequestBodies:void 0,sdkRequest:void 0,response:o!=null?{body:tc.json(F0.response(o)),statusCode:void 0,isWildcardStatusCode:void 0,docs:o.docs}:void 0,v2Responses:void 0,errors:[],idempotent:!1,pagination:void 0,userSpecifiedExamples:[],autogeneratedExamples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples()},transport:void 0,availability:void 0,source:uS.openrpc(),audiences:a,retries:void 0,apiPlayground:void 0,responseHeaders:[]},audiences:a,inlinedTypes:t,servers:this.filterOutTopLevelServers(this.method.servers??[])}}filterOutTopLevelServers(t){return t.filter(r=>!this.topLevelServers.some(n=>n.url===r.url))}getEndpointBaseUrls(){let t=this.method.servers;return t?.map(n=>{if(this.topLevelServers.find(a=>a.name===n.name&&a.url!==n.url)!=null)return n.url;let s=this.topLevelServers.find(a=>a.url===n.url)??n;return RQ.getServerName({server:s,context:this.context})})}convertExamples(){let t={},r=0;if(this.method.examples&&this.method.examples.length>0){for(let n of this.method.examples??[]){let i;if(this.context.isReferenceObject(n)){let u=this.context.resolveReference({reference:n});if(u.resolved)i=u.value;else continue}else i=n;let o;if(i.result)if(this.context.isReferenceObject(i.result)){let u=this.context.resolveReference({reference:i.result});u.resolved&&(o=u.value)}else o=i.result;let s=i.name??`Example ${r+1}`,a=[];if(i.params&&Array.isArray(i.params)){a=[];for(let u of i.params)if(this.context.isReferenceObject(u)){let c=this.context.resolveReference({reference:u});if(c.resolved)a.push(c.value);else continue}else a.push(u)}t[s]={displayName:void 0,request:{docs:void 0,endpoint:{method:"POST",path:"/{apiKey}"},baseUrl:void 0,environment:void 0,auth:void 0,pathParameters:{},queryParameters:{},headers:{},requestBody:a.map(u=>u.value)??void 0},response:{docs:void 0,statusCode:void 0,body:o?.value?Gt.V2HttpEndpointResponseBody.json({jsonrpc:"2.0",id:i.examplePairedRequest?.id||"1",result:o.value}):void 0},codeSamples:[]}}++r}return t}};var ehr=class extends Wf.AbstractConverters.AbstractParameterConverter{constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r,parameter:n})}convert(){let t,r={};if(this.parameter.schema!=null){let i=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,"schema"],schemaOrReference:this.parameter.schema,wrapAsOptional:this.parameter.required==null||!this.parameter.required}).convert();i!=null&&(t=i.type,r=i.inlinedTypes??{})}return this.convertToOutput({schema:this.parameter.schema??{type:"string"},typeReference:t,inlinedTypes:r})}};var VIt=class extends z6{constructor({context:t,breadcrumbs:r,audiences:n}){super({context:t,breadcrumbs:r,audiences:n})}async convert(){this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.convertSchemas();let{endpointLevelServers:t}=this.convertMethods(),{defaultUrl:r}=this.convertServers({endpointLevelServers:t});return this.updateEndpointsWithDefaultUrl(r),this.finalizeIr()}convertServers({endpointLevelServers:t}){let n=new RQ({context:this.context,breadcrumbs:["servers"],servers:this.context.spec.servers,endpointLevelServers:t}).convert();return this.addEnvironmentsToIr({environmentConfig:n?.value}),{defaultUrl:n?.defaultUrl}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{})){let i=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:["components","schemas",t],schema:r}).convert();i!=null&&this.addSchemaOutputToIr(t,i)}}convertMethods(){let t=[],n=new Xmr({context:this.context,breadcrumbs:["methods"],operation:this.context.spec}).convert(),i=[],o=[],s=[];if(n&&n.length>0)for(let[u,c]of n.entries()){let p=new ehr({context:this.context,breadcrumbs:[...this.breadcrumbs,`x-fern-parameters[${u}]`],parameter:c}).convert();if(p!=null)switch(p.type){case"path":{i.push(p.parameter);break}case"query":{o.push(p.parameter);break}case"header":{s.push(p.parameter);break}}}let a=this.context.getGroup({groupParts:[],namespace:this.context.namespace});for(let u of this.context.spec.methods??[]){let c=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:["methods"]});if(c==null)continue;let p=new Zmr({context:this.context,breadcrumbs:["methods"],method:c,pathParameters:i,queryParameters:o,headers:s,topLevelServers:this.context.spec.servers}).convert();if(p!=null&&(this.addEndpointToIr({endpoint:p.endpoint,audiences:p.audiences,endpointGroup:a,serviceName:"service_root"}),this.addTypesToIr(p.inlinedTypes),p.servers))for(let d of p.servers)this.shouldAddServerToCollectedServers({server:d,currentServers:t,specType:"openrpc"})&&t.push(this.maybeDeduplicateServerName(d))}return{endpointLevelServers:t}}maybeDeduplicateServerName(t){return this.context.spec.servers?.find(n=>n.name===t.name&&n.url!==t.url)?{...t,name:t.url}:t}};var qIt=class extends QA{isReferenceObject(t){return t!=null&&"$ref"in t}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o=this.getTypeIdFromSchemaReference(t);if(o==null)return{ok:!1};let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.title:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.title??n),{ok:!0,reference:Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}};var bga=require("fs/promises");var Zpa=require("fs/promises");async function XIi({context:e,absoluteFilePath:t,absoluteFilePathToOverrides:r}){let n=(await(0,Zpa.readFile)(t)).toString(),i;try{i=JSON.parse(n)}catch{i=xr.load(n)}let o=[];r!=null&&(Array.isArray(r)?o=r:o=[r]);let s=i;for(let a of o)s=await NVe({absoluteFilePathToOverrides:a,context:e,data:s});return s}qt();var Sda=xe(_da(),1);function yVp(e,t){if(!t)return;if(e.catch(()=>{}),t.aborted){e.kill();return}let r=()=>{e.kill()};t.addEventListener("abort",r,{once:!0}),e.finally(()=>t.removeEventListener("abort",r)).catch(()=>{})}function FQ(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:o={},signal:s,...a}={}){let u=i.reduce((p,d)=>({...p,[d]:"<redacted>"}),o),c=[t,...r].join(" ");for(let[p,d]of Object.entries(u))c=c.replaceAll(p,d);e?.debug(`+ ${c}`);let l=(0,Sda.default)(t,r,a);return yVp(l,s),l}async function pc(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:o={},signal:s,...a}={}){let u=FQ(e,t,r,{doNotPipeOutput:n,secrets:i,substitutions:o,signal:s,...a});n||(u.stdout?.pipe(process.stdout),u.stderr?.pipe(process.stderr));let c=await u;return c.stdout==null&&(c.stdout=""),c.stderr==null&&(c.stderr=""),c}function q6(e,{logger:t,...r}={}){return(n,i)=>pc(t,e,n,{...r,...i})}var TP=require("fs/promises"),Lda=xe(require("path"),1),Ewi=xe(Cw(),1);St();qt();var aPe=require("fs/promises"),Tda=xe(Cw(),1);qt();var NA=require("fs/promises"),uhr=xe(require("os"),1),Awi=xe(require("path"),1),Woe="v1.50.0",bVp="https://github.com/bufbuild/buf/releases/download",KIt="buf",EVp=".fern",vVp="bin",Bda=12e4,hwi=200;function ywi(){let e=uhr.default.platform(),t=uhr.default.arch(),r;switch(e){case"linux":r="Linux";break;case"darwin":r="Darwin";break;case"win32":r="Windows";break;default:throw new Error(`Unsupported platform: ${e}`)}let n;switch(t){case"x64":n="x86_64";break;case"arm64":n=e==="linux"?"aarch64":"arm64";break;default:throw new Error(`Unsupported architecture: ${t}`)}return{os:r,arch:n,extension:r==="Windows"?".exe":""}}function JIt(){let e=uhr.default.homedir();return Ut.of(Awi.default.join(e,EVp,vVp))}function IVp(){let{extension:e}=ywi(),t=JIt();return We(t,_e.of(`${KIt}-${Woe}${e}`))}function wVp(){let{extension:e}=ywi(),t=JIt();return We(t,_e.of(`${KIt}${e}`))}function CVp(){let e=JIt();return We(e,_e.of(`${KIt}.version`))}function xVp(){let e=JIt();return Awi.default.join(e,`${KIt}.lock`)}function _Vp(){let{os:e,arch:t,extension:r}=ywi();return`${bVp}/${Woe}/${KIt}-${e}-${t}${r}`}async function Oda(e){try{return await(0,NA.access)(e),!0}catch{return!1}}async function SVp(e){let t=xVp(),r=Date.now()+Bda;for(;Date.now()<r;)try{return await(0,NA.mkdir)(t,{recursive:!1}),gwi(t,e)}catch{e.debug(`Waiting for buf lock on ${t}...`),await new Promise(n=>setTimeout(n,hwi))}e.debug(`Buf lock timed out after ${Bda}ms, breaking stale lock`);try{await(0,NA.rm)(t,{recursive:!0})}catch(n){e.debug(`Failed to remove stale buf lock: ${n instanceof Error?n.message:String(n)}`)}try{await(0,NA.mkdir)(t,{recursive:!1})}catch{let n=Math.max(hwi*5,r-Date.now()),i=Date.now()+n;for(;Date.now()<i;)try{return await(0,NA.mkdir)(t,{recursive:!1}),gwi(t,e)}catch{e.debug(`Waiting for buf lock on ${t} (post-break retry)...`),await new Promise(o=>setTimeout(o,hwi))}throw new Error("Failed to acquire buf lock after timeout and retry")}return gwi(t,e)}function gwi(e,t){return async()=>{try{await(0,NA.rm)(e,{recursive:!0})}catch(r){t.debug(`Failed to release buf lock: ${r instanceof Error?r.message:String(r)}`)}}}async function YIt(e){try{let t=JIt();await(0,NA.mkdir)(t,{recursive:!0});let r=await SVp(e);try{return await BVp(e)}finally{await r()}}catch(t){e.debug(`Failed to resolve buf: ${t instanceof Error?t.message:String(t)}`);return}}async function BVp(e){let t=IVp(),r=wVp(),n=CVp();if(await Oda(t))return await OVp(n,e)===Woe&&await Oda(r)?(e.info(`Using cached buf ${Woe}`),r):(await Pda(t,r),await(0,NA.writeFile)(n,Woe),e.info(`Updated buf to ${Woe}`),r);let i=_Vp();e.info(`Downloading buf ${Woe}...`);let o=Ut.of(`${t}.download`);try{let s=await fetch(i,{redirect:"follow"});if(!s.ok){e.debug(`Failed to download buf: ${s.status} ${s.statusText}`);return}let a=await s.arrayBuffer();return await(0,NA.writeFile)(o,new Uint8Array(a)),await(0,NA.chmod)(o,493),await(0,NA.rename)(o,t),await Pda(t,r),await(0,NA.writeFile)(n,Woe),e.info(`Downloaded buf ${Woe}`),r}catch(s){e.debug(`Failed to download buf: ${s instanceof Error?s.message:String(s)}`);try{await(0,NA.rm)(o,{force:!0})}catch(a){e.debug(`Failed to clean up partial buf download: ${a instanceof Error?a.message:String(a)}`)}return}}async function OVp(e,t){try{return(await(0,NA.readFile)(e,"utf-8")).trim()}catch(r){t.debug(`Failed to read buf version marker: ${r instanceof Error?r.message:String(r)}`);return}}async function Pda(e,t){let r=Ut.of(`${t}.tmp`);await(0,NA.copyFile)(e,r),await(0,NA.chmod)(r,493),await(0,NA.rename)(r,t)}function ZIt(e){return e.includes("server hosted at that remote is unavailable")||e.includes("fetch failed")||e.includes("failed to connect")||e.includes("network")||e.includes("ENOTFOUND")||e.includes("ETIMEDOUT")||e.includes("TIMEDOUT")||e.includes("timed out")||e.includes("ECONNREFUSED")||e.includes("ECONNRESET")||e.includes("socket hang up")}var XIt,bwi;async function ewt(e,t,r=5e3){return XIt!==void 0?XIt:(bwi==null&&(bwi=PVp(e,t,r)),bwi)}async function PVp(e,t,r){t.debug(`Detecting air-gapped mode by checking connectivity to ${e}`);try{return await fetch(e,{method:"GET",signal:AbortSignal.timeout(r)}),XIt=!1,t.debug("Network check succeeded - not in air-gapped mode"),!1}catch(n){let i=xi(n);return ZIt(i)?(XIt=!0,t.debug(`Network check failed - entering air-gapped mode: ${i}`),!0):(XIt=!1,!1)}}async function twt(e,t,r="buf"){let n=We(e,_e.of("buf.lock")),i=!1;try{await(0,aPe.access)(n),i=!0,t.debug(`Found buf.lock at: ${n}`)}catch{t.debug(`No buf.lock found at: ${n}`)}if(!i)return!1;let o=Ut.of((await Tda.default.dir()).path);try{let s=We(e,_e.of("buf.yaml"));try{await(0,aPe.cp)(s,We(o,_e.of("buf.yaml"))),await(0,aPe.cp)(n,We(o,_e.of("buf.lock")))}catch{return!1}try{return await FQ(t,r,["dep","update"],{cwd:o,stdio:"pipe",timeout:3e4}),t.debug("Network check succeeded - not in air-gapped mode"),!1}catch(a){let u=xi(a);return ZIt(u)?(t.debug(`Network check failed - entering air-gapped mode: ${u.substring(0,100)}`),!0):!1}}finally{try{await(0,aPe.rm)(o,{recursive:!0,force:!0})}catch{}}}async function chr(e){let t=q6("which",{cwd:Ut.of(process.cwd()),logger:void 0,doNotPipeOutput:!0});try{let n=(await t(["buf"])).stdout?.trim();return n?e.debug(`Found buf on PATH: ${n}`):e.debug("Found buf on PATH"),"buf"}catch{e.debug("buf not found on PATH, attempting auto-download");let r=await YIt(e);if(r!=null)return e.debug(`Using auto-downloaded buf: ${r}`),r;throw new Error("Missing required dependency; please install 'buf' to continue (e.g. 'brew install buf').")}}var Dda="buf.gen.yaml",TVp="output",Rda=`${TVp}/ir.json`,Fda="protoc-gen-fern",kda=`version: v1
|
|
1545
|
+
`).reduce(YNp,Object.create(null)),YNp=(e,t)=>{let r=parseInt(t,10);if(r!==Buffer.byteLength(t)+1)return e;t=t.slice((r+" ").length);let n=t.split("="),i=n.shift();if(!i)return e;let o=i.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),s=n.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(Number(s)*1e3):/^[0-9]+$/.test(s)?+s:s,e},XNp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,ep=XNp!=="win32"?e=>e:e=>e&&e.replace(/\\/g,"/"),Msa=class extends WOe{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(e,t,r){switch(super({}),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.remain=e.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=e.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!e.path)throw new Error("no path provided for tar.ReadEntry");this.path=ep(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=this.remain,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath?ep(e.linkpath):void 0,this.uname=e.uname,this.gname=e.gname,t&&this.#e(t),r&&this.#e(r,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:r>=t?super.write(e):super.write(e.subarray(0,r))}#e(e,t=!1){e.path&&(e.path=ep(e.path)),e.linkpath&&(e.linkpath=ep(e.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(e).filter(([r,n])=>!(n==null||r==="path"&&t))))}},Xfr=(e,t,r,n={})=>{e.file&&(n.file=e.file),e.cwd&&(n.cwd=e.cwd),n.code=r instanceof Error&&r.code||t,n.tarCode=t,!e.strict&&n.recoverable!==!1?(r instanceof Error&&(n=Object.assign(r,n),r=r.message),e.emit("warn",t,r,n)):r instanceof Error?e.emit("error",Object.assign(r,n)):e.emit("error",Object.assign(new Error(`${t}: ${r}`),n))},ZNp=1024*1024,J0i=Buffer.from([31,139]),Y0i=Buffer.from([40,181,47,253]),ejp=Math.max(J0i.length,Y0i.length),V4=Symbol("state"),QOe=Symbol("writeEntry"),Qoe=Symbol("readEntry"),k0i=Symbol("nextEntry"),rsa=Symbol("processEntry"),FH=Symbol("extendedHeader"),vvt=Symbol("globalExtendedHeader"),ime=Symbol("meta"),nsa=Symbol("emitMeta"),Rg=Symbol("buffer"),Noe=Symbol("queue"),ome=Symbol("ended"),Q0i=Symbol("emittedEnd"),NOe=Symbol("emit"),Pv=Symbol("unzip"),_fr=Symbol("consumeChunk"),Sfr=Symbol("consumeChunkSub"),N0i=Symbol("consumeBody"),isa=Symbol("consumeMeta"),osa=Symbol("consumeHeader"),Ivt=Symbol("consuming"),j0i=Symbol("bufferConcat"),Bfr=Symbol("maybeEnd"),aVe=Symbol("writing"),sme=Symbol("aborted"),Ofr=Symbol("onDone"),jOe=Symbol("sawValidEntry"),Pfr=Symbol("sawNullBlock"),Tfr=Symbol("sawEOF"),ssa=Symbol("closeStream"),tjp=()=>!0,Qvt=class extends Psa.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[Noe]=[];[Rg];[Qoe];[QOe];[V4]="begin";[ime]="";[FH];[vvt];[ome]=!1;[Pv];[sme]=!1;[jOe];[Pfr]=!1;[Tfr]=!1;[aVe]=!1;[Ivt]=!1;[Q0i]=!1;constructor(e={}){super(),this.file=e.file||"",this.on(Ofr,()=>{(this[V4]==="begin"||this[jOe]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Ofr,e.ondone):this.on(Ofr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||ZNp,this.filter=typeof e.filter=="function"?e.filter:tjp;let t=e.file&&(e.file.endsWith(".tar.br")||e.file.endsWith(".tbr"));this.brotli=!(e.gzip||e.zstd)&&e.brotli!==void 0?e.brotli:t?void 0:!1;let r=e.file&&(e.file.endsWith(".tar.zst")||e.file.endsWith(".tzst"));this.zstd=!(e.gzip||e.brotli)&&e.zstd!==void 0?e.zstd:r?!0:void 0,this.on("end",()=>this[ssa]()),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onReadEntry=="function"&&this.on("entry",e.onReadEntry)}warn(e,t,r={}){Xfr(this,e,t,r)}[osa](e,t){this[jOe]===void 0&&(this[jOe]=!1);let r;try{r=new GOe(e,t,this[FH],this[vvt])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(r.nullBlock)this[Pfr]?(this[Tfr]=!0,this[V4]==="begin"&&(this[V4]="header"),this[NOe]("eof")):(this[Pfr]=!0,this[NOe]("nullBlock"));else if(this[Pfr]=!1,!r.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:r});else if(!r.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:r});else{let n=r.type;if(/^(Symbolic)?Link$/.test(n)&&!r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:r});else if(!/^(Symbolic)?Link$/.test(n)&&!/^(Global)?ExtendedHeader$/.test(n)&&r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:r});else{let i=this[QOe]=new Msa(r,this[FH],this[vvt]);if(!this[jOe])if(i.remain){let o=()=>{i.invalid||(this[jOe]=!0)};i.on("end",o)}else this[jOe]=!0;i.meta?i.size>this.maxMetaEntrySize?(i.ignore=!0,this[NOe]("ignoredEntry",i),this[V4]="ignore",i.resume()):i.size>0&&(this[ime]="",i.on("data",o=>this[ime]+=o),this[V4]="meta"):(this[FH]=void 0,i.ignore=i.ignore||!this.filter(i.path,i),i.ignore?(this[NOe]("ignoredEntry",i),this[V4]=i.remain?"ignore":"header",i.resume()):(i.remain?this[V4]="body":(this[V4]="header",i.end()),this[Qoe]?this[Noe].push(i):(this[Noe].push(i),this[k0i]())))}}}[ssa](){queueMicrotask(()=>this.emit("close"))}[rsa](e){let t=!0;if(!e)this[Qoe]=void 0,t=!1;else if(Array.isArray(e)){let[r,...n]=e;this.emit(r,...n)}else this[Qoe]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",()=>this[k0i]()),t=!1);return t}[k0i](){do;while(this[rsa](this[Noe].shift()));if(!this[Noe].length){let e=this[Qoe];!e||e.flowing||e.size===e.remain?this[aVe]||this.emit("drain"):e.once("drain",()=>this.emit("drain"))}}[N0i](e,t){let r=this[QOe];if(!r)throw new Error("attempt to consume body without entry??");let n=r.blockRemain??0,i=n>=e.length&&t===0?e:e.subarray(t,t+n);return r.write(i),r.blockRemain||(this[V4]="header",this[QOe]=void 0,r.end()),i.length}[isa](e,t){let r=this[QOe],n=this[N0i](e,t);return!this[QOe]&&r&&this[nsa](r),n}[NOe](e,t,r){!this[Noe].length&&!this[Qoe]?this.emit(e,t,r):this[Noe].push([e,t,r])}[nsa](e){switch(this[NOe]("meta",this[ime]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[FH]=Gfr.parse(this[ime],this[FH],!1);break;case"GlobalExtendedHeader":this[vvt]=Gfr.parse(this[ime],this[vvt],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let t=this[FH]??Object.create(null);this[FH]=t,t.path=this[ime].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let t=this[FH]||Object.create(null);this[FH]=t,t.linkpath=this[ime].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+e.type)}}abort(e){this[sme]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this[sme])return r?.(),!1;if((this[Pv]===void 0||this.brotli===void 0&&this[Pv]===!1)&&e){if(this[Rg]&&(e=Buffer.concat([this[Rg],e]),this[Rg]=void 0),e.length<ejp)return this[Rg]=e,r?.(),!0;for(let s=0;this[Pv]===void 0&&s<J0i.length;s++)e[s]!==J0i[s]&&(this[Pv]=!1);let i=!1;if(this[Pv]===!1&&this.zstd!==!1){i=!0;for(let s=0;s<Y0i.length;s++)if(e[s]!==Y0i[s]){i=!1;break}}let o=this.brotli===void 0&&!i;if(this[Pv]===!1&&o)if(e.length<512)if(this[ome])this.brotli=!0;else return this[Rg]=e,r?.(),!0;else try{new GOe(e.subarray(0,512)),this.brotli=!1}catch{this.brotli=!0}if(this[Pv]===void 0||this[Pv]===!1&&(this.brotli||i)){let s=this[ome];this[ome]=!1,this[Pv]=this[Pv]===void 0?new SNp({}):i?new TNp({}):new ONp({}),this[Pv].on("data",u=>this[_fr](u)),this[Pv].on("error",u=>this.abort(u)),this[Pv].on("end",()=>{this[ome]=!0,this[_fr]()}),this[aVe]=!0;let a=!!this[Pv][s?"end":"write"](e);return this[aVe]=!1,r?.(),a}}this[aVe]=!0,this[Pv]?this[Pv].write(e):this[_fr](e),this[aVe]=!1;let n=this[Noe].length?!1:this[Qoe]?this[Qoe].flowing:!0;return!n&&!this[Noe].length&&this[Qoe]?.once("drain",()=>this.emit("drain")),r?.(),n}[j0i](e){e&&!this[sme]&&(this[Rg]=this[Rg]?Buffer.concat([this[Rg],e]):e)}[Bfr](){if(this[ome]&&!this[Q0i]&&!this[sme]&&!this[Ivt]){this[Q0i]=!0;let e=this[QOe];if(e&&e.blockRemain){let t=this[Rg]?this[Rg].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Rg]&&e.write(this[Rg]),e.end()}this[NOe](Ofr)}}[_fr](e){if(this[Ivt]&&e)this[j0i](e);else if(!e&&!this[Rg])this[Bfr]();else if(e){if(this[Ivt]=!0,this[Rg]){this[j0i](e);let t=this[Rg];this[Rg]=void 0,this[Sfr](t)}else this[Sfr](e);for(;this[Rg]&&this[Rg]?.length>=512&&!this[sme]&&!this[Tfr];){let t=this[Rg];this[Rg]=void 0,this[Sfr](t)}this[Ivt]=!1}(!this[Rg]||this[ome])&&this[Bfr]()}[Sfr](e){let t=0,r=e.length;for(;t+512<=r&&!this[sme]&&!this[Tfr];)switch(this[V4]){case"begin":case"header":this[osa](e,t),t+=512;break;case"ignore":case"body":t+=this[N0i](e,t);break;case"meta":t+=this[isa](e,t);break;default:throw new Error("invalid state: "+this[V4])}t<r&&(this[Rg]?this[Rg]=Buffer.concat([e.subarray(t),this[Rg]]):this[Rg]=e.subarray(t))}end(e,t,r){return typeof e=="function"&&(r=e,t=void 0,e=void 0),typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,t)),r&&this.once("finish",r),this[sme]||(this[Pv]?(e&&this[Pv].write(e),this[Pv].end()):(this[ome]=!0,(this.brotli===void 0||this.zstd===void 0)&&(e=e||Buffer.alloc(0)),e&&this.write(e),this[Bfr]())),this}},Pvt=e=>{let t=e.length-1,r=-1;for(;t>-1&&e.charAt(t)==="/";)r=t,t--;return r===-1?e:e.slice(0,r)},rjp=e=>{let t=e.onReadEntry;e.onReadEntry=t?r=>{t(r),r.resume()}:r=>r.resume()},Lsa=(e,t)=>{let r=new Map(t.map(o=>[Pvt(o),!0])),n=e.filter,i=(o,s="")=>{let a=s||(0,Jfr.parse)(o).root||".",u;if(o===a)u=!1;else{let c=r.get(o);c!==void 0?u=c:u=i((0,Jfr.dirname)(o),a)}return r.set(o,u),u};e.filter=n?(o,s)=>n(o,s)&&i(Pvt(o)):o=>i(Pvt(o))},njp=e=>{let t=new Qvt(e),r=e.file,n;try{n=zOe.default.openSync(r,"r");let i=zOe.default.fstatSync(n),o=e.maxReadSize||16*1024*1024;if(i.size<o){let s=Buffer.allocUnsafe(i.size),a=zOe.default.readSync(n,s,0,i.size,0);t.end(a===s.byteLength?s:s.subarray(0,a))}else{let s=0,a=Buffer.allocUnsafe(o);for(;s<i.size;){let u=zOe.default.readSync(n,a,0,o,s);if(u===0)break;s+=u,t.write(a.subarray(0,u))}t.end()}}finally{if(typeof n=="number")try{zOe.default.closeSync(n)}catch{}}},ijp=(e,t)=>{let r=new Qvt(e),n=e.maxReadSize||16*1024*1024,i=e.file;return new Promise((o,s)=>{r.on("error",s),r.on("end",o),zOe.default.stat(i,(a,u)=>{if(a)s(a);else{let c=new AEi(i,{readSize:n,size:u.size});c.on("error",s),c.pipe(r)}})})},Zfr=Mvt(njp,ijp,e=>new Qvt(e),e=>new Qvt(e),(e,t)=>{t?.length&&Lsa(e,t),e.noResume||rjp(e)}),Usa=(e,t,r)=>(e&=4095,r&&(e=(e|384)&-19),t&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e),{isAbsolute:ojp,parse:asa}=zsa.win32,IEi=e=>{let t="",r=asa(e);for(;ojp(e)||r.root;){let n=e.charAt(0)==="/"&&e.slice(0,4)!=="//?/"?"/":r.root;e=e.slice(n.length),t+=n,r=asa(e)}return[t,e]},edr=["|","<",">","?",":"],wEi=edr.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),sjp=new Map(edr.map((e,t)=>[e,wEi[t]])),ajp=new Map(wEi.map((e,t)=>[e,edr[t]])),usa=e=>edr.reduce((t,r)=>t.split(r).join(sjp.get(r)),e),ujp=e=>wEi.reduce((t,r)=>t.split(r).join(ajp.get(r)),e),Vsa=(e,t)=>t?(e=ep(e).replace(/^\.(\/|$)/,""),Pvt(t)+"/"+e):ep(e),cjp=16*1024*1024,csa=Symbol("process"),lsa=Symbol("file"),psa=Symbol("directory"),Z0i=Symbol("symlink"),fsa=Symbol("hardlink"),wvt=Symbol("header"),Qfr=Symbol("read"),eEi=Symbol("lstat"),Nfr=Symbol("onlstat"),tEi=Symbol("onread"),rEi=Symbol("onreadlink"),nEi=Symbol("openfile"),iEi=Symbol("onopenfile"),lme=Symbol("close"),Wfr=Symbol("mode"),oEi=Symbol("awaitDrain"),M0i=Symbol("ondrain"),kH=Symbol("prefix"),qsa=class extends WOe{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(e,t={}){let r=bEi(t);super(),this.path=ep(e),this.portable=!!r.portable,this.maxReadSize=r.maxReadSize||cjp,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=ep(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime,this.prefix=r.prefix?ep(r.prefix):void 0,this.onWriteEntry=r.onWriteEntry,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let n=!1;if(!this.preservePaths){let[o,s]=IEi(this.path);o&&typeof s=="string"&&(this.path=s,n=o)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=ujp(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=ep(r.absolute||X0i.default.resolve(this.cwd,e)),this.path===""&&(this.path="./"),n&&this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:this,path:n+this.path});let i=this.statCache.get(this.absolute);i?this[Nfr](i):this[eEi]()}warn(e,t,r={}){return Xfr(this,e,t,r)}emit(e,...t){return e==="error"&&(this.#e=!0),super.emit(e,...t)}[eEi](){F6.default.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[Nfr](t)})}[Nfr](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=fjp(e),this.emit("stat",e),this[csa]()}[csa](){switch(this.type){case"File":return this[lsa]();case"Directory":return this[psa]();case"SymbolicLink":return this[Z0i]();default:return this.end()}}[Wfr](e){return Usa(e,this.type==="Directory",this.portable)}[kH](e){return Vsa(e,this.prefix)}[wvt](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new GOe({path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,mode:this[Wfr](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Gfr({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let e=this.header?.block;if(!e)throw new Error("failed to encode header");super.write(e)}[psa](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[wvt](),this.end()}[Z0i](){F6.default.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[rEi](t)})}[rEi](e){this.linkpath=ep(e),this[wvt](),this.end()}[fsa](e){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=ep(X0i.default.relative(this.cwd,e)),this.stat.size=0,this[wvt](),this.end()}[lsa](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let e=`${this.stat.dev}:${this.stat.ino}`,t=this.linkCache.get(e);if(t?.indexOf(this.cwd)===0)return this[fsa](t);this.linkCache.set(e,this.absolute)}if(this[wvt](),this.stat.size===0)return this.end();this[nEi]()}[nEi](){F6.default.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[iEi](t)})}[iEi](e){if(this.fd=e,this.#e)return this[lme]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Qfr]()}[Qfr](){let{fd:e,buf:t,offset:r,length:n,pos:i}=this;if(e===void 0||t===void 0)throw new Error("cannot read file without first opening");F6.default.read(e,t,r,n,i,(o,s)=>{if(o)return this[lme](()=>this.emit("error",o));this[tEi](s)})}[lme](e=()=>{}){this.fd!==void 0&&F6.default.close(this.fd,e)}[tEi](e){if(e<=0&&this.remain>0){let r=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[lme](()=>this.emit("error",r))}if(e>this.remain){let r=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[lme](()=>this.emit("error",r))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(e===this.remain)for(let r=e;r<this.length&&e<this.blockRemain;r++)this.buf[r+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+e);this.write(t)?this[M0i]():this[oEi](()=>this[M0i]())}[oEi](e){this.once("drain",e)}write(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this.blockRemain<e.length){let n=Object.assign(new Error("writing more data than expected"),{path:this.absolute});return this.emit("error",n)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e,null,r)}[M0i](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[lme](e=>e?this.emit("error",e):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Qfr]()}},ljp=class extends qsa{sync=!0;[eEi](){this[Nfr](F6.default.lstatSync(this.absolute))}[Z0i](){this[rEi](F6.default.readlinkSync(this.absolute))}[nEi](){this[iEi](F6.default.openSync(this.absolute,"r"))}[Qfr](){let e=!0;try{let{fd:t,buf:r,offset:n,length:i,pos:o}=this;if(t===void 0||r===void 0)throw new Error("fd and buf must be set in READ method");let s=F6.default.readSync(t,r,n,i,o);this[tEi](s),e=!1}finally{if(e)try{this[lme](()=>{})}catch{}}}[oEi](e){e()}[lme](e=()=>{}){this.fd!==void 0&&F6.default.closeSync(this.fd),e()}},pjp=class extends WOe{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(e,t,r={}){return Xfr(this,e,t,r)}constructor(e,t={}){let r=bEi(t);super(),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.onWriteEntry=r.onWriteEntry,this.readEntry=e;let{type:n}=e;if(n==="Unsupported")throw new Error("writing entry that should be ignored");this.type=n,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix,this.path=ep(e.path),this.mode=e.mode!==void 0?this[Wfr](e.mode):void 0,this.uid=this.portable?void 0:e.uid,this.gid=this.portable?void 0:e.gid,this.uname=this.portable?void 0:e.uname,this.gname=this.portable?void 0:e.gname,this.size=e.size,this.mtime=this.noMtime?void 0:r.mtime||e.mtime,this.atime=this.portable?void 0:e.atime,this.ctime=this.portable?void 0:e.ctime,this.linkpath=e.linkpath!==void 0?ep(e.linkpath):void 0,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths){let[s,a]=IEi(this.path);s&&typeof a=="string"&&(this.path=a,i=s)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.onWriteEntry?.(this),this.header=new GOe({path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new Gfr({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[kH](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[kH](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let o=this.header?.block;if(!o)throw new Error("failed to encode header");super.write(o),e.pipe(this)}[kH](e){return Vsa(e,this.prefix)}[Wfr](e){return Usa(e,this.type==="Directory",this.portable)}write(e,t,r){typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8"));let n=e.length;if(n>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=n,super.write(e,r)}end(e,t,r){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof e=="function"&&(r=e,t=void 0,e=void 0),typeof t=="function"&&(r=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,t??"utf8")),r&&this.once("finish",r),e?super.end(e,r):super.end(r),this}},fjp=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported",djp=class dVe{tail;head;length=0;static create(t=[]){return new dVe(t)}constructor(t=[]){for(let r of t)this.push(r)}*[Symbol.iterator](){for(let t=this.head;t;t=t.next)yield t.value}removeNode(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");let r=t.next,n=t.prev;return r&&(r.prev=n),n&&(n.next=r),t===this.head&&(this.head=r),t===this.tail&&(this.tail=n),this.length--,t.next=void 0,t.prev=void 0,t.list=void 0,r}unshiftNode(t){if(t===this.head)return;t.list&&t.list.removeNode(t);let r=this.head;t.list=this,t.next=r,r&&(r.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}pushNode(t){if(t===this.tail)return;t.list&&t.list.removeNode(t);let r=this.tail;t.list=this,t.prev=r,r&&(r.next=t),this.tail=t,this.head||(this.head=t),this.length++}push(...t){for(let r=0,n=t.length;r<n;r++)hjp(this,t[r]);return this.length}unshift(...t){for(var r=0,n=t.length;r<n;r++)gjp(this,t[r]);return this.length}pop(){if(!this.tail)return;let t=this.tail.value,r=this.tail;return this.tail=this.tail.prev,this.tail?this.tail.next=void 0:this.head=void 0,r.list=void 0,this.length--,t}shift(){if(!this.head)return;let t=this.head.value,r=this.head;return this.head=this.head.next,this.head?this.head.prev=void 0:this.tail=void 0,r.list=void 0,this.length--,t}forEach(t,r){r=r||this;for(let n=this.head,i=0;n;i++)t.call(r,n.value,i,this),n=n.next}forEachReverse(t,r){r=r||this;for(let n=this.tail,i=this.length-1;n;i--)t.call(r,n.value,i,this),n=n.prev}get(t){let r=0,n=this.head;for(;n&&r<t;r++)n=n.next;if(r===t&&n)return n.value}getReverse(t){let r=0,n=this.tail;for(;n&&r<t;r++)n=n.prev;if(r===t&&n)return n.value}map(t,r){r=r||this;let n=new dVe;for(let i=this.head;i;)n.push(t.call(r,i.value,this)),i=i.next;return n}mapReverse(t,r){r=r||this;var n=new dVe;for(let i=this.tail;i;)n.push(t.call(r,i.value,this)),i=i.prev;return n}reduce(t,r){let n,i=this.head;if(arguments.length>1)n=r;else if(this.head)i=this.head.next,n=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var o=0;i;o++)n=t(n,i.value,o),i=i.next;return n}reduceReverse(t,r){let n,i=this.tail;if(arguments.length>1)n=r;else if(this.tail)i=this.tail.prev,n=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let o=this.length-1;i;o--)n=t(n,i.value,o),i=i.prev;return n}toArray(){let t=new Array(this.length);for(let r=0,n=this.head;n;r++)t[r]=n.value,n=n.next;return t}toArrayReverse(){let t=new Array(this.length);for(let r=0,n=this.tail;n;r++)t[r]=n.value,n=n.prev;return t}slice(t=0,r=this.length){r<0&&(r+=this.length),t<0&&(t+=this.length);let n=new dVe;if(r<t||r<0)return n;t<0&&(t=0),r>this.length&&(r=this.length);let i=this.head,o=0;for(o=0;i&&o<t;o++)i=i.next;for(;i&&o<r;o++,i=i.next)n.push(i.value);return n}sliceReverse(t=0,r=this.length){r<0&&(r+=this.length),t<0&&(t+=this.length);let n=new dVe;if(r<t||r<0)return n;t<0&&(t=0),r>this.length&&(r=this.length);let i=this.length,o=this.tail;for(;o&&i>r;i--)o=o.prev;for(;o&&i>t;i--,o=o.prev)n.push(o.value);return n}splice(t,r=0,...n){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);let i=this.head;for(let s=0;i&&s<t;s++)i=i.next;let o=[];for(let s=0;i&&s<r;s++)o.push(i.value),i=this.removeNode(i);i?i!==this.tail&&(i=i.prev):i=this.tail;for(let s of n)i=mjp(this,i,s);return o}reverse(){let t=this.head,r=this.tail;for(let n=t;n;n=n.prev){let i=n.prev;n.prev=n.next,n.next=i}return this.head=r,this.tail=t,this}};function mjp(e,t,r){let n=t,i=t?t.next:e.head,o=new CEi(r,n,i,e);return o.next===void 0&&(e.tail=o),o.prev===void 0&&(e.head=o),e.length++,o}function hjp(e,t){e.tail=new CEi(t,e.tail,void 0,e),e.head||(e.head=e.tail),e.length++}function gjp(e,t){e.head=new CEi(t,void 0,e.head,e),e.tail||(e.tail=e.head),e.length++}var CEi=class{list;next;prev;value;constructor(e,t,r,n){this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=void 0,r?(r.prev=this,this.next=r):this.next=void 0}},dsa=class{path;absolute;entry;stat;readdir;pending=!1;ignore=!1;piped=!1;constructor(e,t){this.path=e||"./",this.absolute=t}},msa=Buffer.alloc(1024),jfr=Symbol("onStat"),Cvt=Symbol("ended"),D6=Symbol("queue"),MOe=Symbol("current"),LOe=Symbol("process"),xvt=Symbol("processing"),L0i=Symbol("processJob"),R6=Symbol("jobs"),U0i=Symbol("jobDone"),Mfr=Symbol("addFSEntry"),hsa=Symbol("addTarEntry"),aEi=Symbol("stat"),uEi=Symbol("readdir"),Lfr=Symbol("onreaddir"),Ufr=Symbol("pipe"),gsa=Symbol("entry"),z0i=Symbol("entryOpt"),zfr=Symbol("writeEntryClass"),Gsa=Symbol("write"),V0i=Symbol("ondrain"),tdr=class extends WOe{sync=!1;opt;cwd;maxReadSize;preservePaths;strict;noPax;prefix;linkCache;statCache;file;portable;zip;readdirCache;noDirRecurse;follow;noMtime;mtime;filter;jobs;[zfr];onWriteEntry;[D6];[R6]=0;[xvt]=!1;[Cvt]=!1;constructor(e={}){if(super(),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=ep(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this.onWriteEntry=e.onWriteEntry,this[zfr]=qsa,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,e.gzip||e.brotli||e.zstd){if((e.gzip?1:0)+(e.brotli?1:0)+(e.zstd?1:0)>1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(e.gzip&&(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new _Np(e.gzip)),e.brotli&&(typeof e.brotli!="object"&&(e.brotli={}),this.zip=new BNp(e.brotli)),e.zstd&&(typeof e.zstd!="object"&&(e.zstd={}),this.zip=new PNp(e.zstd)),!this.zip)throw new Error("impossible");let t=this.zip;t.on("data",r=>super.write(r)),t.on("end",()=>super.end()),t.on("drain",()=>this[V0i]()),this.on("resume",()=>t.resume())}else this.on("drain",this[V0i]);this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,e.mtime&&(this.mtime=e.mtime),this.filter=typeof e.filter=="function"?e.filter:()=>!0,this[D6]=new djp,this[R6]=0,this.jobs=Number(e.jobs)||4,this[xvt]=!1,this[Cvt]=!1}[Gsa](e){return super.write(e)}add(e){return this.write(e),this}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t=void 0),e&&this.add(e),this[Cvt]=!0,this[LOe](),r&&r(),this}write(e){if(this[Cvt])throw new Error("write after end");return e instanceof Msa?this[hsa](e):this[Mfr](e),this.flowing}[hsa](e){let t=ep(sEi.default.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let r=new dsa(e.path,t);r.entry=new pjp(e,this[z0i](r)),r.entry.on("end",()=>this[U0i](r)),this[R6]+=1,this[D6].push(r)}this[LOe]()}[Mfr](e){let t=ep(sEi.default.resolve(this.cwd,e));this[D6].push(new dsa(e,t)),this[LOe]()}[aEi](e){e.pending=!0,this[R6]+=1;let t=this.follow?"stat":"lstat";Nvt.default[t](e.absolute,(r,n)=>{e.pending=!1,this[R6]-=1,r?this.emit("error",r):this[jfr](e,n)})}[jfr](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)?t.isFile()&&t.nlink>1&&e===this[MOe]&&!this.linkCache.get(`${t.dev}:${t.ino}`)&&!this.sync&&this[L0i](e):e.ignore=!0,this[LOe]()}[uEi](e){e.pending=!0,this[R6]+=1,Nvt.default.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[R6]-=1,t)return this.emit("error",t);this[Lfr](e,r)})}[Lfr](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[LOe]()}[LOe](){if(!this[xvt]){this[xvt]=!0;for(let e=this[D6].head;e&&this[R6]<this.jobs;e=e.next)if(this[L0i](e.value),e.value.ignore){let t=e.next;this[D6].removeNode(e),e.next=t}this[xvt]=!1,this[Cvt]&&!this[D6].length&&this[R6]===0&&(this.zip?this.zip.end(msa):(super.write(msa),super.end()))}}get[MOe](){return this[D6]&&this[D6].head&&this[D6].head.value}[U0i](e){this[D6].shift(),this[R6]-=1,this[LOe]()}[L0i](e){if(!e.pending){if(e.entry){e===this[MOe]&&!e.piped&&this[Ufr](e);return}if(!e.stat){let t=this.statCache.get(e.absolute);t?this[jfr](e,t):this[aEi](e)}if(e.stat&&!e.ignore){if(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir){let t=this.readdirCache.get(e.absolute);if(t?this[Lfr](e,t):this[uEi](e),!e.readdir)return}if(e.entry=this[gsa](e),!e.entry){e.ignore=!0;return}e===this[MOe]&&!e.piped&&this[Ufr](e)}}}[z0i](e){return{onwarn:(t,r,n)=>this.warn(t,r,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[gsa](e){this[R6]+=1;try{return new this[zfr](e.path,this[z0i](e)).on("end",()=>this[U0i](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[V0i](){this[MOe]&&this[MOe].entry&&this[MOe].entry.resume()}[Ufr](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let i=e.path,o=i==="./"?"":i.replace(/\/*$/,"/");this[Mfr](o+n)});let t=e.entry,r=this.zip;if(!t)throw new Error("cannot pipe without source");r?t.on("data",n=>{r.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(e,t,r={}){Xfr(this,e,t,r)}},xEi=class extends tdr{sync=!0;constructor(e){super(e),this[zfr]=ljp}pause(){}resume(){}[aEi](e){let t=this.follow?"statSync":"lstatSync";this[jfr](e,Nvt.default[t](e.absolute))}[uEi](e){this[Lfr](e,Nvt.default.readdirSync(e.absolute))}[Ufr](e){let t=e.entry,r=this.zip;if(e.readdir&&e.readdir.forEach(n=>{let i=e.path,o=i==="./"?"":i.replace(/\/*$/,"/");this[Mfr](o+n)}),!t)throw new Error("Cannot pipe without source");r?t.on("data",n=>{r.write(n)}):t.on("data",n=>{super[Gsa](n)})}},Ajp=(e,t)=>{let r=new xEi(e),n=new Osa(e.file,{mode:e.mode||438});r.pipe(n),Wsa(r,t)},yjp=(e,t)=>{let r=new tdr(e),n=new Kfr(e.file,{mode:e.mode||438});r.pipe(n);let i=new Promise((o,s)=>{n.on("error",s),n.on("close",o),r.on("error",s)});return $sa(r,t),i},Wsa=(e,t)=>{t.forEach(r=>{r.charAt(0)==="@"?Zfr({file:yEi.default.resolve(e.cwd,r.slice(1)),sync:!0,noResume:!0,onReadEntry:n=>e.add(n)}):e.add(r)}),e.end()},$sa=async(e,t)=>{for(let r=0;r<t.length;r++){let n=String(t[r]);n.charAt(0)==="@"?await Zfr({file:yEi.default.resolve(String(e.cwd),n.slice(1)),noResume:!0,onReadEntry:i=>{e.add(i)}}):e.add(n)}e.end()},bjp=(e,t)=>{let r=new xEi(e);return Wsa(r,t),r},Ejp=(e,t)=>{let r=new tdr(e);return $sa(r,t),r},Hsa=Mvt(Ajp,yjp,bjp,Ejp,(e,t)=>{if(!t?.length)throw new TypeError("no paths specified to add to archive")}),vjp=process.env.__FAKE_PLATFORM__||process.platform,Ijp=vjp==="win32",{O_CREAT:wjp,O_TRUNC:Cjp,O_WRONLY:xjp}=BEi.default.constants,Jsa=Number(process.env.__FAKE_FS_O_FILENAME__)||BEi.default.constants.UV_FS_O_FILEMAP||0,_jp=Ijp&&!!Jsa,Sjp=512*1024,Bjp=Jsa|Cjp|wjp|xjp,Ysa=_jp?e=>e<Sjp?Bjp:"w":()=>"w",cEi=(e,t,r)=>{try{return Lvt.default.lchownSync(e,t,r)}catch(n){if(n?.code!=="ENOENT")throw n}},$fr=(e,t,r,n)=>{Lvt.default.lchown(e,t,r,i=>{n(i&&i?.code!=="ENOENT"?i:null)})},Ojp=(e,t,r,n,i)=>{if(t.isDirectory())Xsa(hVe.default.resolve(e,t.name),r,n,o=>{if(o)return i(o);let s=hVe.default.resolve(e,t.name);$fr(s,r,n,i)});else{let o=hVe.default.resolve(e,t.name);$fr(o,r,n,i)}},Xsa=(e,t,r,n)=>{Lvt.default.readdir(e,{withFileTypes:!0},(i,o)=>{if(i){if(i.code==="ENOENT")return n();if(i.code!=="ENOTDIR"&&i.code!=="ENOTSUP")return n(i)}if(i||!o.length)return $fr(e,t,r,n);let s=o.length,a=null,u=c=>{if(!a){if(c)return n(a=c);if(--s===0)return $fr(e,t,r,n)}};for(let c of o)Ojp(e,c,t,r,u)})},Pjp=(e,t,r,n)=>{t.isDirectory()&&Zsa(hVe.default.resolve(e,t.name),r,n),cEi(hVe.default.resolve(e,t.name),r,n)},Zsa=(e,t,r)=>{let n;try{n=Lvt.default.readdirSync(e,{withFileTypes:!0})}catch(i){let o=i;if(o?.code==="ENOENT")return;if(o?.code==="ENOTDIR"||o?.code==="ENOTSUP")return cEi(e,t,r);throw o}for(let i of n)Pjp(e,i,t,r);return cEi(e,t,r)},taa=class extends Error{path;code;syscall="chdir";constructor(e,t){super(`${t}: Cannot cd into '${e}'`),this.path=e,this.code=t}get name(){return"CwdError"}},rdr=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(e,t){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=e,this.path=t}get name(){return"SymlinkError"}},Tjp=(e,t)=>{sF.default.stat(e,(r,n)=>{(r||!n.isDirectory())&&(r=new taa(e,r?.code||"ENOTDIR")),t(r)})},Djp=(e,t,r)=>{e=ep(e);let n=t.umask??18,i=t.mode|448,o=(i&n)!==0,s=t.uid,a=t.gid,u=typeof s=="number"&&typeof a=="number"&&(s!==t.processUid||a!==t.processGid),c=t.preserve,l=t.unlink,p=ep(t.cwd),d=(m,h)=>{m?r(m):h&&u?Xsa(h,s,a,g=>d(g)):o?sF.default.chmod(e,i,r):r()};if(e===p)return Tjp(e,d);if(c)return eaa.default.mkdir(e,{mode:i,recursive:!0}).then(m=>d(null,m??void 0),d);let f=ep(jvt.default.relative(p,e)).split("/");lEi(p,f,i,l,p,void 0,d)},lEi=(e,t,r,n,i,o,s)=>{if(!t.length)return s(null,o);let a=t.shift(),u=ep(jvt.default.resolve(e+"/"+a));sF.default.mkdir(u,r,raa(u,t,r,n,i,o,s))},raa=(e,t,r,n,i,o,s)=>a=>{a?sF.default.lstat(e,(u,c)=>{if(u)u.path=u.path&&ep(u.path),s(u);else if(c.isDirectory())lEi(e,t,r,n,i,o,s);else if(n)sF.default.unlink(e,l=>{if(l)return s(l);sF.default.mkdir(e,r,raa(e,t,r,n,i,o,s))});else{if(c.isSymbolicLink())return s(new rdr(e,e+"/"+t.join("/")));s(a)}}):(o=o||e,lEi(e,t,r,n,i,o,s))},Rjp=e=>{let t=!1,r;try{t=sF.default.statSync(e).isDirectory()}catch(n){r=n?.code}finally{if(!t)throw new taa(e,r??"ENOTDIR")}},Fjp=(e,t)=>{e=ep(e);let r=t.umask??18,n=t.mode|448,i=(n&r)!==0,o=t.uid,s=t.gid,a=typeof o=="number"&&typeof s=="number"&&(o!==t.processUid||s!==t.processGid),u=t.preserve,c=t.unlink,l=ep(t.cwd),p=m=>{m&&a&&Zsa(m,o,s),i&&sF.default.chmodSync(e,n)};if(e===l)return Rjp(l),p();if(u)return p(sF.default.mkdirSync(e,{mode:n,recursive:!0})??void 0);let d=ep(jvt.default.relative(l,e)).split("/"),f;for(let m=d.shift(),h=l;m&&(h+="/"+m);m=d.shift()){h=ep(jvt.default.resolve(h));try{sF.default.mkdirSync(h,n),f=f||h}catch{let g=sF.default.lstatSync(h);if(g.isDirectory())continue;if(c){sF.default.unlinkSync(h),sF.default.mkdirSync(h,n),f=f||h;continue}else if(g.isSymbolicLink())return new rdr(h,h+"/"+d.join("/"))}}return p(f)},q0i=Object.create(null),Asa=1e4,uVe=new Set,kjp=e=>{uVe.has(e)?uVe.delete(e):q0i[e]=e.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),uVe.add(e);let t=q0i[e],r=uVe.size-Asa;if(r>Asa/10){for(let n of uVe)if(uVe.delete(n),delete q0i[n],--r<=0)break}return t},Qjp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Njp=Qjp==="win32",jjp=e=>e.split("/").slice(0,-1).reduce((t,r)=>{let n=t[t.length-1];return n!==void 0&&(r=(0,OEi.join)(n,r)),t.push(r||"/"),t},[]),Mjp=class{#e=new Map;#t=new Map;#r=new Set;reserve(e,t){e=Njp?["win32 parallelization disabled"]:e.map(n=>Pvt((0,OEi.join)(kjp(n))));let r=new Set(e.map(n=>jjp(n)).reduce((n,i)=>n.concat(i)));this.#t.set(t,{dirs:r,paths:e});for(let n of e){let i=this.#e.get(n);i?i.push(t):this.#e.set(n,[t])}for(let n of r){let i=this.#e.get(n);if(!i)this.#e.set(n,[new Set([t])]);else{let o=i[i.length-1];o instanceof Set?o.add(t):i.push(new Set([t]))}}return this.#i(t)}#n(e){let t=this.#t.get(e);if(!t)throw new Error("function does not have any path reservations");return{paths:t.paths.map(r=>this.#e.get(r)),dirs:[...t.dirs].map(r=>this.#e.get(r))}}check(e){let{paths:t,dirs:r}=this.#n(e);return t.every(n=>n&&n[0]===e)&&r.every(n=>n&&n[0]instanceof Set&&n[0].has(e))}#i(e){return this.#r.has(e)||!this.check(e)?!1:(this.#r.add(e),e(()=>this.#o(e)),!0)}#o(e){if(!this.#r.has(e))return!1;let t=this.#t.get(e);if(!t)throw new Error("invalid reservation");let{paths:r,dirs:n}=t,i=new Set;for(let o of r){let s=this.#e.get(o);if(!s||s?.[0]!==e)continue;let a=s[1];if(!a){this.#e.delete(o);continue}if(s.shift(),typeof a=="function")i.add(a);else for(let u of a)i.add(u)}for(let o of n){let s=this.#e.get(o),a=s?.[0];if(!(!s||!(a instanceof Set)))if(a.size===1&&s.length===1){this.#e.delete(o);continue}else if(a.size===1){s.shift();let u=s[0];typeof u=="function"&&i.add(u)}else a.delete(e)}return this.#r.delete(e),i.forEach(o=>this.#i(o)),!0}},Ljp=()=>process.umask(),ysa=Symbol("onEntry"),pEi=Symbol("checkFs"),bsa=Symbol("checkFs2"),fEi=Symbol("isReusable"),q4=Symbol("makeFs"),dEi=Symbol("file"),mEi=Symbol("directory"),Vfr=Symbol("link"),Esa=Symbol("symlink"),vsa=Symbol("hardlink"),Bvt=Symbol("ensureNoSymlink"),Isa=Symbol("unsupported"),wsa=Symbol("checkPath"),G0i=Symbol("stripAbsolutePath"),fme=Symbol("mkdir"),PC=Symbol("onError"),Dfr=Symbol("pending"),Csa=Symbol("pend"),cVe=Symbol("unpend"),W0i=Symbol("ended"),$0i=Symbol("maybeClose"),hEi=Symbol("skip"),Tvt=Symbol("doChown"),Dvt=Symbol("uid"),Rvt=Symbol("gid"),Fvt=Symbol("checkedCwd"),Ujp=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,kvt=Ujp==="win32",zjp=1024,Vjp=(e,t)=>{if(!kvt)return tf.default.unlink(e,t);let r=e+".DELETE."+(0,SEi.randomBytes)(16).toString("hex");tf.default.rename(e,r,n=>{if(n)return t(n);tf.default.unlink(r,t)})},qjp=e=>{if(!kvt)return tf.default.unlinkSync(e);let t=e+".DELETE."+(0,SEi.randomBytes)(16).toString("hex");tf.default.renameSync(e,t),tf.default.unlinkSync(t)},xsa=(e,t,r)=>e!==void 0&&e===e>>>0?e:t!==void 0&&t===t>>>0?t:r,PEi=class extends Qvt{[W0i]=!1;[Fvt]=!1;[Dfr]=0;reservations=new Mjp;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(e={}){if(e.ondone=()=>{this[W0i]=!0,this[$0i]()},super(e),this.transform=e.transform,this.chmod=!!e.chmod,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=!!(process.getuid&&process.getuid()===0):this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:zjp,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||kvt,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=ep(Tv.default.resolve(e.cwd||process.cwd())),this.strip=Number(e.strip)||0,this.processUmask=this.chmod?typeof e.processUmask=="number"?e.processUmask:Ljp():0,this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[ysa](t))}warn(e,t,r={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(r.recoverable=!1),super.warn(e,t,r)}[$0i](){this[W0i]&&this[Dfr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[G0i](e,t){let r=e[t],{type:n}=e;if(!r||this.preservePaths)return!0;let[i,o]=IEi(r),s=o.replace(/\\/g,"/").split("/");if(s.includes("..")||kvt&&/^[a-z]:\.\.$/i.test(s[0]??"")){if(t==="path"||n==="Link")return this.warn("TAR_ENTRY_ERROR",`${t} contains '..'`,{entry:e,[t]:r}),!1;{let a=Tv.default.posix.dirname(e.path),u=Tv.default.posix.normalize(Tv.default.posix.join(a,s.join("/")));if(u.startsWith("../")||u==="..")return this.warn("TAR_ENTRY_ERROR",`${t} escapes extraction directory`,{entry:e,[t]:r}),!1}}return i&&(e[t]=String(o),this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute ${t}`,{entry:e,[t]:r})),!0}[wsa](e){let t=ep(e.path),r=t.split("/");if(this.strip){if(r.length<this.strip)return!1;if(e.type==="Link"){let n=ep(String(e.linkpath)).split("/");if(n.length>=this.strip)e.linkpath=n.slice(this.strip).join("/");else return!1}r.splice(0,this.strip),e.path=r.join("/")}if(isFinite(this.maxDepth)&&r.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:e,path:t,depth:r.length,maxDepth:this.maxDepth}),!1;if(!this[G0i](e,"path")||!this[G0i](e,"linkpath"))return!1;if(Tv.default.isAbsolute(e.path)?e.absolute=ep(Tv.default.resolve(e.path)):e.absolute=ep(Tv.default.resolve(this.cwd,e.path)),!this.preservePaths&&typeof e.absolute=="string"&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:ep(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:n}=Tv.default.win32.parse(String(e.absolute));e.absolute=n+usa(String(e.absolute).slice(n.length));let{root:i}=Tv.default.win32.parse(e.path);e.path=i+usa(e.path.slice(i.length))}return!0}[ysa](e){if(!this[wsa](e))return e.resume();switch(Ksa.default.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[pEi](e);default:return this[Isa](e)}}[PC](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[cVe](),t.resume())}[fme](e,t,r){Djp(ep(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:t},r)}[Tvt](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Dvt](e){return xsa(this.uid,e.uid,this.processUid)}[Rvt](e){return xsa(this.gid,e.gid,this.processGid)}[dEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.fmode,n=new Kfr(String(e.absolute),{flags:Ysa(e.size),mode:r,autoClose:!1});n.on("error",a=>{n.fd&&tf.default.close(n.fd,()=>{}),n.write=()=>!0,this[PC](a,e),t()});let i=1,o=a=>{if(a){n.fd&&tf.default.close(n.fd,()=>{}),this[PC](a,e),t();return}--i===0&&n.fd!==void 0&&tf.default.close(n.fd,u=>{u?this[PC](u,e):this[cVe](),t()})};n.on("finish",()=>{let a=String(e.absolute),u=n.fd;if(typeof u=="number"&&e.mtime&&!this.noMtime){i++;let c=e.atime||new Date,l=e.mtime;tf.default.futimes(u,c,l,p=>p?tf.default.utimes(a,c,l,d=>o(d&&p)):o())}if(typeof u=="number"&&this[Tvt](e)){i++;let c=this[Dvt](e),l=this[Rvt](e);typeof c=="number"&&typeof l=="number"&&tf.default.fchown(u,c,l,p=>p?tf.default.chown(a,c,l,d=>o(d&&p)):o())}o()});let s=this.transform&&this.transform(e)||e;s!==e&&(s.on("error",a=>{this[PC](a,e),t()}),e.pipe(s)),s.pipe(n)}[mEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.dmode;this[fme](String(e.absolute),r,n=>{if(n){this[PC](n,e),t();return}let i=1,o=()=>{--i===0&&(t(),this[cVe](),e.resume())};e.mtime&&!this.noMtime&&(i++,tf.default.utimes(String(e.absolute),e.atime||new Date,e.mtime,o)),this[Tvt](e)&&(i++,tf.default.chown(String(e.absolute),Number(this[Dvt](e)),Number(this[Rvt](e)),o)),o()})}[Isa](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Esa](e,t){let r=ep(Tv.default.relative(this.cwd,Tv.default.resolve(Tv.default.dirname(String(e.absolute)),String(e.linkpath)))).split("/");this[Bvt](e,this.cwd,r,()=>this[Vfr](e,String(e.linkpath),"symlink",t),n=>{this[PC](n,e),t()})}[vsa](e,t){let r=ep(Tv.default.resolve(this.cwd,String(e.linkpath))),n=ep(String(e.linkpath)).split("/");this[Bvt](e,this.cwd,n,()=>this[Vfr](e,r,"link",t),i=>{this[PC](i,e),t()})}[Bvt](e,t,r,n,i){let o=r.shift();if(this.preservePaths||o===void 0)return n();let s=Tv.default.resolve(t,o);tf.default.lstat(s,(a,u)=>{if(a)return n();if(u?.isSymbolicLink())return i(new rdr(s,Tv.default.resolve(s,r.join("/"))));this[Bvt](e,s,r,n,i)})}[Csa](){this[Dfr]++}[cVe](){this[Dfr]--,this[$0i]()}[hEi](e){this[cVe](),e.resume()}[fEi](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!kvt}[pEi](e){this[Csa]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,r=>this[bsa](e,r))}[bsa](e,t){let r=s=>{t(s)},n=()=>{this[fme](this.cwd,this.dmode,s=>{if(s){this[PC](s,e),r();return}this[Fvt]=!0,i()})},i=()=>{if(e.absolute!==this.cwd){let s=ep(Tv.default.dirname(String(e.absolute)));if(s!==this.cwd)return this[fme](s,this.dmode,a=>{if(a){this[PC](a,e),r();return}o()})}o()},o=()=>{tf.default.lstat(String(e.absolute),(s,a)=>{if(a&&(this.keep||this.newer&&a.mtime>(e.mtime??a.mtime))){this[hEi](e),r();return}if(s||this[fEi](e,a))return this[q4](null,e,r);if(a.isDirectory()){if(e.type==="Directory"){let u=this.chmod&&e.mode&&(a.mode&4095)!==e.mode,c=l=>this[q4](l??null,e,r);return u?tf.default.chmod(String(e.absolute),Number(e.mode),c):c()}if(e.absolute!==this.cwd)return tf.default.rmdir(String(e.absolute),u=>this[q4](u??null,e,r))}if(e.absolute===this.cwd)return this[q4](null,e,r);Vjp(String(e.absolute),u=>this[q4](u??null,e,r))})};this[Fvt]?i():n()}[q4](e,t,r){if(e){this[PC](e,t),r();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[dEi](t,r);case"Link":return this[vsa](t,r);case"SymbolicLink":return this[Esa](t,r);case"Directory":case"GNUDumpDir":return this[mEi](t,r)}}[Vfr](e,t,r,n){tf.default[r](t,String(e.absolute),i=>{i?this[PC](i,e):(this[cVe](),e.resume()),n()})}},_vt=e=>{try{return[null,e()]}catch(t){return[t,null]}},naa=class extends PEi{sync=!0;[q4](e,t){return super[q4](e,t,()=>{})}[pEi](e){if(!this[Fvt]){let i=this[fme](this.cwd,this.dmode);if(i)return this[PC](i,e);this[Fvt]=!0}if(e.absolute!==this.cwd){let i=ep(Tv.default.dirname(String(e.absolute)));if(i!==this.cwd){let o=this[fme](i,this.dmode);if(o)return this[PC](o,e)}}let[t,r]=_vt(()=>tf.default.lstatSync(String(e.absolute)));if(r&&(this.keep||this.newer&&r.mtime>(e.mtime??r.mtime)))return this[hEi](e);if(t||this[fEi](e,r))return this[q4](null,e);if(r.isDirectory()){if(e.type==="Directory"){let o=this.chmod&&e.mode&&(r.mode&4095)!==e.mode,[s]=o?_vt(()=>{tf.default.chmodSync(String(e.absolute),Number(e.mode))}):[];return this[q4](s,e)}let[i]=_vt(()=>tf.default.rmdirSync(String(e.absolute)));this[q4](i,e)}let[n]=e.absolute===this.cwd?[]:_vt(()=>qjp(String(e.absolute)));this[q4](n,e)}[dEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.fmode,n=s=>{let a;try{tf.default.closeSync(i)}catch(u){a=u}(s||a)&&this[PC](s||a,e),t()},i;try{i=tf.default.openSync(String(e.absolute),Ysa(e.size),r)}catch(s){return n(s)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",s=>this[PC](s,e)),e.pipe(o)),o.on("data",s=>{try{tf.default.writeSync(i,s,0,s.length)}catch(a){n(a)}}),o.on("end",()=>{let s=null;if(e.mtime&&!this.noMtime){let a=e.atime||new Date,u=e.mtime;try{tf.default.futimesSync(i,a,u)}catch(c){try{tf.default.utimesSync(String(e.absolute),a,u)}catch{s=c}}}if(this[Tvt](e)){let a=this[Dvt](e),u=this[Rvt](e);try{tf.default.fchownSync(i,Number(a),Number(u))}catch(c){try{tf.default.chownSync(String(e.absolute),Number(a),Number(u))}catch{s=s||c}}}n(s)})}[mEi](e,t){let r=typeof e.mode=="number"?e.mode&4095:this.dmode,n=this[fme](String(e.absolute),r);if(n){this[PC](n,e),t();return}if(e.mtime&&!this.noMtime)try{tf.default.utimesSync(String(e.absolute),e.atime||new Date,e.mtime)}catch{}if(this[Tvt](e))try{tf.default.chownSync(String(e.absolute),Number(this[Dvt](e)),Number(this[Rvt](e)))}catch{}t(),e.resume()}[fme](e,t){try{return Fjp(ep(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:t})}catch(r){return r}}[Bvt](e,t,r,n,i){if(this.preservePaths||!r.length)return n();let o=t;for(let s of r){o=Tv.default.resolve(o,s);let[a,u]=_vt(()=>tf.default.lstatSync(o));if(a)return n();if(u.isSymbolicLink())return i(new rdr(o,Tv.default.resolve(t,r.join("/"))))}n()}[Vfr](e,t,r,n){let i=`${r}Sync`;try{tf.default[i](t,String(e.absolute)),n(),e.resume()}catch(o){return this[PC](o,e)}}},Gjp=e=>{let t=new naa(e),r=e.file,n=_Ei.default.statSync(r),i=e.maxReadSize||16*1024*1024;new hNp(r,{readSize:i,size:n.size}).pipe(t)},Wjp=(e,t)=>{let r=new PEi(e),n=e.maxReadSize||16*1024*1024,i=e.file;return new Promise((o,s)=>{r.on("error",s),r.on("close",o),_Ei.default.stat(i,(a,u)=>{if(a)s(a);else{let c=new AEi(i,{readSize:n,size:u.size});c.on("error",s),c.pipe(r)}})})},iaa=Mvt(Gjp,Wjp,e=>new naa(e),e=>new PEi(e),(e,t)=>{t?.length&&Lsa(e,t)}),$jp=(e,t)=>{let r=new xEi(e),n=!0,i,o;try{try{i=oF.default.openSync(e.file,"r+")}catch(u){if(u?.code==="ENOENT")i=oF.default.openSync(e.file,"w+");else throw u}let s=oF.default.fstatSync(i),a=Buffer.alloc(512);e:for(o=0;o<s.size;o+=512){for(let l=0,p=0;l<512;l+=p){if(p=oF.default.readSync(i,a,l,a.length-l,o+l),o===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!p)break e}let u=new GOe(a);if(!u.cksumValid)break;let c=512*Math.ceil((u.size||0)/512);if(o+c+512>s.size)break;o+=c,e.mtimeCache&&u.mtime&&e.mtimeCache.set(String(u.path),u.mtime)}n=!1,Hjp(e,r,o,i,t)}finally{if(n)try{oF.default.closeSync(i)}catch{}}},Hjp=(e,t,r,n,i)=>{let o=new Osa(e.file,{fd:n,start:r});t.pipe(o),Jjp(t,i)},Kjp=(e,t)=>{t=Array.from(t);let r=new tdr(e),n=(i,o,s)=>{let a=(d,f)=>{d?oF.default.close(i,m=>s(d)):s(null,f)},u=0;if(o===0)return a(null,0);let c=0,l=Buffer.alloc(512),p=(d,f)=>{if(d||typeof f>"u")return a(d);if(c+=f,c<512&&f)return oF.default.read(i,l,c,l.length-c,u+c,p);if(u===0&&l[0]===31&&l[1]===139)return a(new Error("cannot append to compressed archives"));if(c<512)return a(null,u);let m=new GOe(l);if(!m.cksumValid)return a(null,u);let h=512*Math.ceil((m.size??0)/512);if(u+h+512>o||(u+=h+512,u>=o))return a(null,u);e.mtimeCache&&m.mtime&&e.mtimeCache.set(String(m.path),m.mtime),c=0,oF.default.read(i,l,0,512,u,p)};oF.default.read(i,l,0,512,u,p)};return new Promise((i,o)=>{r.on("error",o);let s="r+",a=(u,c)=>{if(u&&u.code==="ENOENT"&&s==="r+")return s="w+",oF.default.open(e.file,s,a);if(u||!c)return o(u);oF.default.fstat(c,(l,p)=>{if(l)return oF.default.close(c,()=>o(l));n(c,p.size,(d,f)=>{if(d)return o(d);let m=new Kfr(e.file,{fd:c,start:f});r.pipe(m),m.on("error",o),m.on("close",i),Yjp(r,t)})})};oF.default.open(e.file,s,a)})},Jjp=(e,t)=>{t.forEach(r=>{r.charAt(0)==="@"?Zfr({file:TEi.default.resolve(e.cwd,r.slice(1)),sync:!0,noResume:!0,onReadEntry:n=>e.add(n)}):e.add(r)}),e.end()},Yjp=async(e,t)=>{for(let r=0;r<t.length;r++){let n=String(t[r]);n.charAt(0)==="@"?await Zfr({file:TEi.default.resolve(String(e.cwd),n.slice(1)),noResume:!0,onReadEntry:i=>e.add(i)}):e.add(n)}e.end()},Svt=Mvt($jp,Kjp,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(e,t)=>{if(!vNp(e))throw new TypeError("file is required");if(e.gzip||e.brotli||e.zstd||e.file.endsWith(".br")||e.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!t?.length)throw new TypeError("no paths specified to add/replace")}),xay=Mvt(Svt.syncFile,Svt.asyncFile,Svt.syncNoFile,Svt.asyncNoFile,(e,t=[])=>{Svt.validate?.(e,t),Xjp(e)}),Xjp=e=>{let t=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=t?(r,n)=>t(r,n)&&!((e.mtimeCache?.get(r)??n.mtime??0)>(n.mtime??0)):(r,n)=>!((e.mtimeCache?.get(r)??n.mtime??0)>(n.mtime??0))};var laa=xe(Cw(),1);var Zjp=Poe();async function paa({dependencyName:e,dependenciesConfiguration:t,context:r,rootApiFile:n,cliVersion:i,settings:o,loadAPIWorkspace:s}){let a,u={type:Vc.FAILED_TO_LOAD_DEPENDENCY,dependencyName:e},c=t.dependencies[e];return c==null?u={type:Vc.DEPENDENCY_NOT_LISTED,dependencyName:e}:await r.runInteractiveTask({name:`Download ${sMp(c)}`},async l=>{switch(c.type){case"version":a=await iMp({context:l,dependency:c,cliVersion:i,settings:o,loadAPIWorkspace:s});return;case"local":a=await nMp({context:l,dependency:c,cliVersion:i,settings:o,loadAPIWorkspace:s});return;default:Se(c)}}),a!=null?{didSucceed:!0,definition:a}:{didSucceed:!1,failure:u}}var faa="dependencies";var eMp="metadata.json",tMp=".fern";function rMp(e){return We(Ut.of((0,aaa.homedir)()),_e.of(tMp),_e.of(faa),_e.of(e.organization),_e.of(e.apiName),_e.of(e.version))}async function nMp({dependency:e,context:t,cliVersion:r,settings:n,loadAPIWorkspace:i}){if(i==null){t.failWithoutThrowing("Failed to load api definition");return}t.logger.info("Parsing...");let o=await i({absolutePathToWorkspace:e.absoluteFilepath,context:t,cliVersion:r,workspaceName:void 0});if(!o.didSucceed){t.failWithoutThrowing("Failed to load api definition",o.failures);return}t.logger.info("Modifying source filepath ...");let s=await o.workspace.getDefinition({context:t,relativePathToDependency:_e.of(e.path)},n);return t.logger.info("Loaded..."),s}async function iMp({dependency:e,context:t,cliVersion:r,settings:n,loadAPIWorkspace:i}){let o=rMp(e),s=We(o,_e.of(faa)),a=We(o,_e.of(eMp)),u;if(!await Zt(s)||!await Zt(a)){t.logger.info("Downloading manifest...");let p=await Zjp.definitionRegistry.get(DEi.FernFiddle.OrganizationId(e.organization),DEi.FernFiddle.ApiId(e.apiName),e.version);if(!p.ok){p.error._visit({orgDoesNotExistError:()=>{t.failWithoutThrowing("Organization does not exist")},apiDoesNotExistError:()=>{t.failWithoutThrowing("API does not exist")},versionDoesNotExistError:()=>{t.failWithoutThrowing("Version does not exist")},_other:h=>{t.failWithoutThrowing("Failed to download API manifest",h)}});return}let d=p.body.yamlSchemaVersion!=null?parseInt(p.body.yamlSchemaVersion):void 0,f=COe(r),m=COe(p.body.cliVersion);if(d!=null){if(d>1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a higher version of fern. Upgrade this workspace to ${p.body.cliVersion}`);return}else if(d<1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a lower version of fern. Upgrade it to ${r}`);return}}else if(f.major!==m.major||f.minor!==m.minor){t.failWithoutThrowing(`CLI version is ${p.body.cliVersion}. Expected ${f.major}.${f.minor}.x (to match current workspace).`);return}t.logger.info("Downloading..."),t.logger.debug("Remote URL: "+p.body.definitionS3DownloadUrl),await(0,AVe.mkdir)(s,{recursive:!0});try{await oMp({s3PreSignedReadUrl:p.body.definitionS3DownloadUrl,absolutePathToLocalOutput:s})}catch(h){t.failWithoutThrowing("Failed to download API",h);return}u=p.body,await(0,AVe.writeFile)(a,JSON.stringify(u))}else u=JSON.parse((await(0,AVe.readFile)(a)).toString());if(t.logger.info("Parsing..."),i==null){t.failWithoutThrowing("Failed to load API");return}let c=await i({absolutePathToWorkspace:s,context:t,cliVersion:u.cliVersion,workspaceName:void 0});if(!c.didSucceed){t.failWithoutThrowing("Failed to parse dependency after downloading",c.failures);return}if(c.workspace.type==="oss"){t.failWithoutThrowing("Dependency must be a fern workspace.");return}return await c.workspace.getDefinition({context:t},n)}async function oMp({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await r0.get(e,{responseType:"stream"}),n=await laa.default.dir(),i=uaa.default.join(n.path,"api.tgz");await(0,caa.pipeline)(r.data,(0,saa.createWriteStream)(i)),await iaa({file:i,cwd:t})}function sMp(e){switch(e.type){case"version":return`@${e.organization}/${e.apiName}`;case"local":return`${e.path}`;default:Se(e)}}async function daa({dependenciesConfiguration:e,structuralValidationResult:t,context:r,cliVersion:n,settings:i,loadAPIWorkspace:o}){let s={},a={},u={};return await Promise.all(ay(t.packageMarkers).map(async([c,l])=>{if(l.contents.export==null)s[c]=l;else{let{export:p,...d}=l.contents;if($d(d)>0)u[c]={type:Vc.EXPORTING_PACKAGE_MARKER_OTHER_KEYS,pathOfPackageMarker:c};else{let f=An(c);if(K1(t.namedDefinitionFiles).some(h=>h!==c&&h.startsWith(f)))u[c]={type:Vc.EXPORT_PACKAGE_HAS_DEFINITIONS,pathToPackage:f};else{let h=await paa({dependencyName:typeof l.contents.export=="string"?l.contents.export:l.contents.export.dependency,dependenciesConfiguration:e,context:r,rootApiFile:t.rootApiFile.contents,cliVersion:n,settings:i,loadAPIWorkspace:o});h.didSucceed?a[An(c)]={definition:h.definition,url:typeof l.contents.export=="object"?l.contents.export.url:void 0}:u[c]=h.failure}}}})),$d(u)>0?{didSucceed:!1,failures:u}:{didSucceed:!0,packageMarkers:s,importedDefinitions:a}}St();qt();var maa=xe(require("path"),1);var REi={};X(REi,{additionalProperties:()=>lMp,default:()=>fMp,definitions:()=>pMp,properties:()=>uMp,required:()=>cMp,type:()=>aMp});var aMp="object",uMp={docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"default-url":{oneOf:[{type:"string"},{type:"null"}]},"default-environment":{oneOf:[{type:"string"},{type:"null"}]},environments:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/environments.EnvironmentSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/auth.ApiAuthSchema"},{type:"null"}]},"auth-schemes":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/auth.AuthSchemeDeclarationSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},name:{type:"string"},imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},"error-discrimination":{oneOf:[{$ref:"#/definitions/file.ErrorDiscriminationSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},errors:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"idempotency-headers":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},variables:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/variables.VariableDeclarationSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"null"}]},product:{oneOf:[{$ref:"#/definitions/products.ProductDeclarationSchema"},{type:"null"}]},version:{oneOf:[{$ref:"#/definitions/versioning.VersionDeclarationSchema"},{type:"null"}]}},cMp=["name"],lMp=!1,pMp={"environments.ServerVariableSchema":{type:"object",properties:{id:{type:"string"},default:{oneOf:[{type:"string"},{type:"null"}]},values:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]}},required:["id"],additionalProperties:!1},"environments.SingleBaseUrlEnvironmentSchema":{type:"object",properties:{audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},url:{type:"string"},"default-url":{oneOf:[{type:"string"},{type:"null"}]},"url-template":{oneOf:[{type:"string"},{type:"null"}]},variables:{oneOf:[{type:"array",items:{$ref:"#/definitions/environments.ServerVariableSchema"}},{type:"null"}]}},required:["url"],additionalProperties:!1},"environments.MultipleBaseUrlsEnvironmentSchema":{type:"object",properties:{audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},urls:{type:"object",additionalProperties:{type:"string"}},"url-templates":{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},"default-urls":{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},variables:{oneOf:[{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/environments.ServerVariableSchema"}}},{type:"null"}]}},required:["urls"],additionalProperties:!1},"environments.EnvironmentSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/environments.SingleBaseUrlEnvironmentSchema"},{$ref:"#/definitions/environments.MultipleBaseUrlsEnvironmentSchema"}]},"auth.AuthSchemeReferenceSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{type:"string"}},required:["scheme"],additionalProperties:!1},"auth.AnyAuthItem":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.AuthSchemeReferenceSchema"}]},"auth.AnyAuthSchemesSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},any:{type:"array",items:{$ref:"#/definitions/auth.AnyAuthItem"}}},required:["any"],additionalProperties:!1},"auth.EndpointSecuritySchemaDetails":{type:"object",additionalProperties:!1},"auth.EndpointSecuritySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"endpoint-security":{$ref:"#/definitions/auth.EndpointSecuritySchemaDetails"}},required:["endpoint-security"],additionalProperties:!1},"auth.ApiAuthSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.AuthSchemeReferenceSchema"},{$ref:"#/definitions/auth.AnyAuthSchemesSchema"},{$ref:"#/definitions/auth.EndpointSecuritySchema"}]},"auth.AuthScope":{type:"string"},"auth.OAuthAccessTokenRequestPropertiesSchema":{type:"object",properties:{"client-id":{oneOf:[{type:"string"},{type:"null"}]},"client-secret":{oneOf:[{type:"string"},{type:"null"}]},scopes:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthAccessTokenResponsePropertiesSchema":{type:"object",properties:{"access-token":{oneOf:[{type:"string"},{type:"null"}]},"expires-in":{oneOf:[{type:"string"},{type:"null"}]},"refresh-token":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthGetTokenEndpointSchema":{type:"object",properties:{endpoint:{type:"string"},"request-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthAccessTokenRequestPropertiesSchema"},{type:"null"}]},"response-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthAccessTokenResponsePropertiesSchema"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.OAuthRefreshTokenRequestPropertiesSchema":{type:"object",properties:{"refresh-token":{type:"string"}},required:["refresh-token"],additionalProperties:!1},"auth.OAuthRefreshTokenResponsePropertiesSchema":{type:"object",properties:{"access-token":{oneOf:[{type:"string"},{type:"null"}]},"expires-in":{oneOf:[{type:"string"},{type:"null"}]},"refresh-token":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"auth.OAuthRefreshTokenEndpointSchema":{type:"object",properties:{endpoint:{type:"string"},"request-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenRequestPropertiesSchema"},{type:"null"}]},"response-properties":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenResponsePropertiesSchema"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.OAuthSchemeSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"oauth"},type:{const:"client-credentials"},scopes:{oneOf:[{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}},{type:"null"}]},"client-id-env":{oneOf:[{type:"string"},{type:"null"}]},"client-secret-env":{oneOf:[{type:"string"},{type:"null"}]},"token-prefix":{oneOf:[{type:"string"},{type:"null"}]},"token-header":{oneOf:[{type:"string"},{type:"null"}]},"get-token":{$ref:"#/definitions/auth.OAuthGetTokenEndpointSchema"},"refresh-token":{oneOf:[{$ref:"#/definitions/auth.OAuthRefreshTokenEndpointSchema"},{type:"null"}]}},required:["scheme","type","get-token"],additionalProperties:!1},"auth.HeaderAuthSchemeSchema":{type:"object",properties:{env:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},header:{type:"string"},type:{oneOf:[{type:"string"},{type:"null"}]},prefix:{oneOf:[{type:"string"},{type:"null"}]}},required:["header"],additionalProperties:!1},"auth.AuthVariable":{type:"object",properties:{env:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},omit:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"auth.BasicAuthSchemeSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"basic"},username:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]},password:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]}},required:["scheme"],additionalProperties:!1},"auth.TokenBearerAuthSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"bearer"},token:{oneOf:[{$ref:"#/definitions/auth.AuthVariable"},{type:"null"}]}},required:["scheme"],additionalProperties:!1},"auth.InferredAuthenticatedRequestHeader":{type:"object",properties:{"response-property":{type:"string"},"header-name":{type:"string"},"value-prefix":{oneOf:[{type:"string"},{type:"null"}]}},required:["response-property","header-name"],additionalProperties:!1},"auth.InferredGetTokenEndpointSchemaObject":{type:"object",properties:{endpoint:{type:"string"},"expiry-response-property":{oneOf:[{type:"string"},{type:"null"}]},"authenticated-request-headers":{oneOf:[{type:"array",items:{$ref:"#/definitions/auth.InferredAuthenticatedRequestHeader"}},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"auth.InferredGetTokenEndpointSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/auth.InferredGetTokenEndpointSchemaObject"}]},"auth.InferredBearerAuthSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},scheme:{const:"bearer"},"get-token":{$ref:"#/definitions/auth.InferredGetTokenEndpointSchema"}},required:["scheme","get-token"],additionalProperties:!1},"auth.BearerAuthSchemeSchema":{anyOf:[{$ref:"#/definitions/auth.TokenBearerAuthSchema"},{$ref:"#/definitions/auth.InferredBearerAuthSchema"}]},"auth.AuthSchemeDeclarationSchema":{anyOf:[{$ref:"#/definitions/auth.OAuthSchemeSchema"},{$ref:"#/definitions/auth.HeaderAuthSchemeSchema"},{$ref:"#/definitions/auth.BasicAuthSchemeSchema"},{$ref:"#/definitions/auth.BearerAuthSchemeSchema"}]},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"file.PropertyBasedErrorDiscrimination":{type:"object",properties:{strategy:{const:"property"},"property-name":{type:"string"}},required:["strategy","property-name"],additionalProperties:!1},"file.StatusCodeBasedErrorDiscrimination":{type:"object",properties:{strategy:{const:"status-code"}},required:["strategy"],additionalProperties:!1},"file.ErrorDiscriminationSchema":{anyOf:[{$ref:"#/definitions/file.PropertyBasedErrorDiscrimination"},{$ref:"#/definitions/file.StatusCodeBasedErrorDiscrimination"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"variables.VariableDeclarationDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"variables.VariableDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/variables.VariableDeclarationDetailed"}]},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"versioning.VersionValueDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"versioning.VersionValue":{anyOf:[{type:"string"},{$ref:"#/definitions/versioning.VersionValueDetailed"}]},"versioning.VersionDeclarationHeaderObjectSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"versioning.VersionDeclarationHeaderSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/versioning.VersionDeclarationHeaderObjectSchema"}]},"versioning.VersionDeclarationSchema":{type:"object",properties:{default:{oneOf:[{type:"string"},{type:"null"}]},values:{type:"array",items:{$ref:"#/definitions/versioning.VersionValue"}},header:{$ref:"#/definitions/versioning.VersionDeclarationHeaderSchema"}},required:["values","header"],additionalProperties:!1},"products.ProductValueDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},versions:{oneOf:[{$ref:"#/definitions/versioning.VersionDeclarationSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"products.ProductValue":{anyOf:[{type:"string"},{$ref:"#/definitions/products.ProductValueDetailed"}]},"products.ProductDeclarationHeaderObjectSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"products.ProductDeclarationHeaderSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/products.ProductDeclarationHeaderObjectSchema"}]},"products.ProductDeclarationSchema":{type:"object",properties:{default:{oneOf:[{type:"string"},{type:"null"}]},values:{type:"array",items:{$ref:"#/definitions/products.ProductValue"}},header:{$ref:"#/definitions/products.ProductDeclarationHeaderSchema"}},required:["values","header"],additionalProperties:!1}},fMp={type:aMp,properties:uMp,required:cMp,additionalProperties:lMp,definitions:pMp};var FEi={};X(FEi,{additionalProperties:()=>hMp,default:()=>AMp,definitions:()=>gMp,properties:()=>mMp,type:()=>dMp});var dMp="object",mMp={docs:{oneOf:[{type:"string"},{type:"null"}]},imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},types:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeDeclarationSchema"}},{type:"null"}]},service:{oneOf:[{$ref:"#/definitions/service.HttpServiceSchema"},{type:"null"}]},errors:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/errors.ErrorDeclarationSchema"}},{type:"null"}]},webhooks:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/webhooks.WebhookSchema"}},{type:"null"}]},"webhook-signature":{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},channel:{oneOf:[{$ref:"#/definitions/websocket.WebSocketChannelSchema"},{type:"null"}]}},hMp=!1,gMp={"examples.ExampleTypeValueSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleTypeSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},value:{$ref:"#/definitions/examples.ExampleTypeValueSchema"}},required:["value"],additionalProperties:!1},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"source.OpenAPISourceSchema":{type:"object",properties:{openapi:{type:"string"}},required:["openapi"],additionalProperties:!1},"source.ProtobufSourceSchema":{type:"object",properties:{proto:{type:"string"}},required:["proto"],additionalProperties:!1},"source.SourceSchema":{anyOf:[{$ref:"#/definitions/source.OpenAPISourceSchema"},{$ref:"#/definitions/source.ProtobufSourceSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"types.ObjectExtendsSchema":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"types.ObjectPropertyAccess":{type:"string",enum:["read-only","write-only"]},"types.ObjectPropertyWithAccessSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},access:{oneOf:[{$ref:"#/definitions/types.ObjectPropertyAccess"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.ObjectPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectPropertyWithAccessSchema"}]},"types.ObjectSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"types.CasingOverridesSchema":{type:"object",properties:{camel:{oneOf:[{type:"string"},{type:"null"}]},snake:{oneOf:[{type:"string"},{type:"null"}]},pascal:{oneOf:[{type:"string"},{type:"null"}]},"screaming-snake":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"types.EnumValueSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},casing:{oneOf:[{$ref:"#/definitions/types.CasingOverridesSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.EnumValue":{anyOf:[{type:"string"},{$ref:"#/definitions/types.EnumValueSchema"}]},"types.EnumSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},default:{oneOf:[{type:"string"},{type:"null"}]},enum:{type:"array",items:{$ref:"#/definitions/types.EnumValue"}},"forward-compatible":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["enum"],additionalProperties:!1},"types.UnionDiscriminatorContext":{type:"string",enum:["data","protocol"]},"types.UnionDiscriminantSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},context:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminatorContext"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.UnionDiscriminant":{anyOf:[{type:"string"},{$ref:"#/definitions/types.UnionDiscriminantSchema"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"types.SingleUnionTypeKeySchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"types.SingleUnionTypeKey":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeKeySchema"}]},"types.SingleUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},key:{oneOf:[{$ref:"#/definitions/types.SingleUnionTypeKey"},{type:"null"}]}},additionalProperties:!1},"types.SingleUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeDetailedSchema"}]},"types.DiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminant:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminant"},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"base-properties":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},union:{type:"object",additionalProperties:{$ref:"#/definitions/types.SingleUnionTypeSchema"}}},required:["union"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeDetailedSchema"}]},"types.UndiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminated:{const:!1},union:{type:"array",items:{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeSchema"}}},required:["discriminated","union"],additionalProperties:!1},"types.AliasSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.TypeDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectSchema"},{$ref:"#/definitions/types.EnumSchema"},{$ref:"#/definitions/types.DiscriminatedUnionSchema"},{$ref:"#/definitions/types.UndiscriminatedUnionSchema"},{$ref:"#/definitions/types.AliasSchema"}]},"service.GrpcTransport":{type:"object",properties:{"service-name":{type:"string"}},required:["service-name"],additionalProperties:!1},"service.ServiceTransport":{type:"object",properties:{grpc:{oneOf:[{$ref:"#/definitions/service.GrpcTransport"},{type:"null"}]}},additionalProperties:!1},"service.HttpMethodSchema":{type:"string",enum:["GET","POST","PUT","PATCH","DELETE","HEAD"]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"auth.AuthScope":{type:"string"},"service.HttpEndpointSecurityItem":{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}}},"service.HttpEndpointSecurity":{type:"array",items:{$ref:"#/definitions/service.HttpEndpointSecurityItem"}},"service.HttpEndpointAuth":{anyOf:[{type:"boolean"},{$ref:"#/definitions/service.HttpEndpointSecurity"}]},"service.QueryParameterTypeReferenceDetailed":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"allow-multiple":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpQueryParameterSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.QueryParameterTypeReferenceDetailed"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"service.HttpReferencedRequestBodySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"service.FormDataBodyEncodingStyle":{type:"string",enum:["json","exploded","form"]},"service.HttpInlineFileRequestBodyPropertySchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/service.FormDataBodyEncodingStyle"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpInlineRequestBodyPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpInlineFileRequestBodyPropertySchema"}]},"service.HttpInlineRequestBodySchema":{type:"object",properties:{extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpInlineRequestBodyPropertySchema"}},{type:"null"}]}},additionalProperties:!1},"service.HttpRequestBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpReferencedRequestBodySchema"},{$ref:"#/definitions/service.HttpInlineRequestBodySchema"}]},"service.HttpRequestSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/service.HttpRequestBodySchema"},{type:"null"}]}},additionalProperties:!1},"service.HttpRequest":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpRequestSchema"}]},"service.HttpResponseSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},property:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"service.HttpResponseSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseSchemaDetailed"}]},"service.StreamFormat":{type:"string",enum:["sse","json"]},"service.HttpResponseStreamSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"},format:{oneOf:[{$ref:"#/definitions/service.StreamFormat"},{type:"null"}]},terminator:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpResponseStreamSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseStreamSchemaDetailed"}]},"service.ResponseErrorWithDocsSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},error:{type:"string"}},required:["error"],additionalProperties:!1},"service.ResponseError":{anyOf:[{type:"string"},{$ref:"#/definitions/service.ResponseErrorWithDocsSchema"}]},"service.ResponseErrorsSchema":{type:"array",items:{$ref:"#/definitions/service.ResponseError"}},"examples.ExampleTypeReferenceSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleBodyResponseSchema":{type:"object",properties:{error:{oneOf:[{type:"string"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},additionalProperties:!1},"examples.ExampleStreamResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleSseEventSchema":{type:"object",properties:{event:{type:"string"},data:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},required:["event"],additionalProperties:!1},"examples.ExampleSseResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleSseEventSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleResponseSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleBodyResponseSchema"},{$ref:"#/definitions/examples.ExampleStreamResponseSchema",description:"JSON Streams"},{$ref:"#/definitions/examples.ExampleSseResponseSchema",description:"Server-Sent Event streams"}]},"examples.SupportedSdkLanguageSchema":{type:"string",enum:["curl","python","javascript","typescript","go","ruby","csharp","java","js","node","ts","nodets","golang","dotnet","jvm","c#"]},"examples.ExampleCodeSampleSchemaSdk":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},sdk:{$ref:"#/definitions/examples.SupportedSdkLanguageSchema"},code:{type:"string"}},required:["sdk","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchemaLanguage":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},language:{type:"string"},code:{type:"string"},install:{oneOf:[{type:"string"},{type:"null"}]}},required:["language","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleCodeSampleSchemaSdk"},{$ref:"#/definitions/examples.ExampleCodeSampleSchemaLanguage"}]},"examples.ExampleEndpointCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/examples.ExampleResponseSchema"},{type:"null"}]},"code-samples":{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleCodeSampleSchema"}},{type:"null"}]}},additionalProperties:!1},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"service.Pagination":{anyOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"boolean"}]},"service.RetriesDisabledSchema":{type:"object",properties:{disabled:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"service.RetriesConfiguration":{anyOf:[{$ref:"#/definitions/service.RetriesDisabledSchema"}]},"service.HttpEndpointSchema":{type:"object",properties:{"display-name":{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},method:{oneOf:[{$ref:"#/definitions/service.HttpMethodSchema"},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/service.HttpEndpointAuth"},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},"stream-condition":{oneOf:[{type:"string"},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/service.HttpRequest"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},errors:{oneOf:[{$ref:"#/definitions/service.ResponseErrorsSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleEndpointCallSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/service.Pagination"},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},retries:{oneOf:[{$ref:"#/definitions/service.RetriesConfiguration"},{type:"null"}]}},required:["path"],additionalProperties:!1},"service.HttpServiceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},"base-path":{type:"string"},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},endpoints:{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpEndpointSchema"}}},required:["auth","base-path","endpoints"],additionalProperties:!1},"errors.ErrorDeclarationSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{type:"integer"},type:{oneOf:[{type:"string"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]}},required:["status-code"],additionalProperties:!1},"webhooks.WebhookMethodSchema":{type:"string",enum:["POST","GET"]},"webhooks.WebhookReferencedPayloadSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"webhooks.WebhookInlinedPayloadSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"webhooks.WebhookPayloadSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/webhooks.WebhookReferencedPayloadSchema"},{$ref:"#/definitions/webhooks.WebhookInlinedPayloadSchema"}]},"webhooks.WebhookSignatureAlgorithmSchema":{type:"string",enum:["sha256","sha1","sha384","sha512"]},"webhooks.WebhookSignatureEncodingSchema":{type:"string",enum:["base64","hex"]},"webhooks.WebhookPayloadComponentSchema":{type:"string",enum:["body","timestamp","notification-url","message-id"]},"webhooks.WebhookPayloadFormatSchema":{type:"object",properties:{components:{type:"array",items:{$ref:"#/definitions/webhooks.WebhookPayloadComponentSchema"}},delimiter:{oneOf:[{type:"string"},{type:"null"}]}},required:["components"],additionalProperties:!1},"webhooks.WebhookTimestampFormatSchema":{type:"string",enum:["unix-seconds","unix-millis","iso8601"]},"webhooks.WebhookTimestampSchema":{type:"object",properties:{header:{type:"string"},format:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampFormatSchema"},{type:"null"}]},tolerance:{oneOf:[{type:"integer"},{type:"null"}]}},required:["header"],additionalProperties:!1},"webhooks.AsymmetricAlgorithmSchema":{type:"string",enum:["rsa-sha256","rsa-sha384","rsa-sha512","ecdsa-sha256","ecdsa-sha384","ecdsa-sha512","ed25519"]},"webhooks.WebhookSignatureSchema":{type:"object",properties:{type:{type:"string",enum:["hmac","asymmetric"]}},oneOf:[{properties:{type:{const:"hmac"},header:{type:"string"},algorithm:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureAlgorithmSchema"},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"payload-format":{oneOf:[{$ref:"#/definitions/webhooks.WebhookPayloadFormatSchema"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header"]},{properties:{type:{const:"asymmetric"},header:{type:"string"},"asymmetric-algorithm":{$ref:"#/definitions/webhooks.AsymmetricAlgorithmSchema"},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"jwks-url":{oneOf:[{type:"string"},{type:"null"}]},"key-id-header":{oneOf:[{type:"string"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header","asymmetric-algorithm"]}]},"examples.ExampleWebhookCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},payload:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},required:["payload"],additionalProperties:!1},"webhooks.WebhookSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},method:{$ref:"#/definitions/webhooks.WebhookMethodSchema"},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},payload:{$ref:"#/definitions/webhooks.WebhookPayloadSchema"},signature:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebhookCallSchema"}},{type:"null"}]}},required:["method","payload"],additionalProperties:!1},"websocket.WebSocketOrigin":{type:"string",enum:["client","server"]},"websocket.WebSocketChannelReferencedMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"websocket.WebSocketChannelInlinedMessageSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"websocket.WebSocketChannelMessageBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/websocket.WebSocketChannelReferencedMessageSchema"},{$ref:"#/definitions/websocket.WebSocketChannelInlinedMessageSchema"}]},"websocket.WebSocketChannelMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"method-name":{oneOf:[{type:"string"},{type:"null"}]},origin:{$ref:"#/definitions/websocket.WebSocketOrigin"},body:{$ref:"#/definitions/websocket.WebSocketChannelMessageBodySchema"}},required:["origin","body"],additionalProperties:!1},"examples.ExampleWebSocketMessage":{type:"object",properties:{type:{type:"string"},body:{type:["string","number","boolean","object","array","null"]}},required:["type","body"],additionalProperties:!1},"examples.ExampleWebSocketSession":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},messages:{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketMessage"}}},required:["messages"],additionalProperties:!1},"websocket.WebSocketChannelSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},"connect-method-name":{oneOf:[{type:"string"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},messages:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/websocket.WebSocketChannelMessageSchema"}},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketSession"}},{type:"null"}]}},required:["auth","path"],additionalProperties:!1}},AMp={type:dMp,properties:mMp,additionalProperties:hMp,definitions:gMp};var kEi={};X(kEi,{additionalProperties:()=>EMp,default:()=>IMp,definitions:()=>vMp,properties:()=>bMp,type:()=>yMp});var yMp="object",bMp={imports:{oneOf:[{type:"object",additionalProperties:{type:"string"}},{type:"null"}]},types:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeDeclarationSchema"}},{type:"null"}]},service:{oneOf:[{$ref:"#/definitions/service.HttpServiceSchema"},{type:"null"}]},errors:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/errors.ErrorDeclarationSchema"}},{type:"null"}]},webhooks:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/webhooks.WebhookSchema"}},{type:"null"}]},"webhook-signature":{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},channel:{oneOf:[{$ref:"#/definitions/websocket.WebSocketChannelSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},navigation:{oneOf:[{$ref:"#/definitions/file.Navigation"},{type:"null"}]},export:{oneOf:[{$ref:"#/definitions/file.Export"},{type:"null"}]}},EMp=!1,vMp={"examples.ExampleTypeValueSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleTypeSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},value:{$ref:"#/definitions/examples.ExampleTypeValueSchema"}},required:["value"],additionalProperties:!1},"encoding.ProtobufTypeSchema":{type:"object",properties:{type:{type:"string"}},required:["type"],additionalProperties:!1},"encoding.EncodingSchema":{type:"object",properties:{proto:{oneOf:[{$ref:"#/definitions/encoding.ProtobufTypeSchema"},{type:"null"}]}},additionalProperties:!1},"source.OpenAPISourceSchema":{type:"object",properties:{openapi:{type:"string"}},required:["openapi"],additionalProperties:!1},"source.ProtobufSourceSchema":{type:"object",properties:{proto:{type:"string"}},required:["proto"],additionalProperties:!1},"source.SourceSchema":{anyOf:[{$ref:"#/definitions/source.OpenAPISourceSchema"},{$ref:"#/definitions/source.ProtobufSourceSchema"}]},"availability.AvailabilityStatusSchema":{type:"string",enum:["in-development","pre-release","deprecated","generally-available"]},"availability.AvailabilitySchema":{type:"object",properties:{status:{$ref:"#/definitions/availability.AvailabilityStatusSchema"},message:{oneOf:[{type:"string"},{type:"null"}]}},required:["status"],additionalProperties:!1},"availability.AvailabilityUnionSchema":{anyOf:[{$ref:"#/definitions/availability.AvailabilityStatusSchema"},{$ref:"#/definitions/availability.AvailabilitySchema"}]},"types.ObjectExtendsSchema":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"validation.StringValidationSchema":{type:"object",properties:{minLength:{oneOf:[{type:"integer"},{type:"null"}]},maxLength:{oneOf:[{type:"integer"},{type:"null"}]},pattern:{oneOf:[{type:"string"},{type:"null"}]},format:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"validation.NumberValidationSchema":{type:"object",properties:{min:{oneOf:[{type:"number"},{type:"null"}]},max:{oneOf:[{type:"number"},{type:"null"}]},exclusiveMin:{oneOf:[{type:"boolean"},{type:"null"}]},exclusiveMax:{oneOf:[{type:"boolean"},{type:"null"}]},multipleOf:{oneOf:[{type:"number"},{type:"null"}]}},additionalProperties:!1},"validation.ListValidationSchema":{type:"object",properties:{minItems:{oneOf:[{type:"integer"},{type:"null"}]},maxItems:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.MapValidationSchema":{type:"object",properties:{minProperties:{oneOf:[{type:"integer"},{type:"null"}]},maxProperties:{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"validation.ValidationSchema":{anyOf:[{$ref:"#/definitions/validation.StringValidationSchema"},{$ref:"#/definitions/validation.NumberValidationSchema"},{$ref:"#/definitions/validation.ListValidationSchema"},{$ref:"#/definitions/validation.MapValidationSchema"}]},"types.ObjectPropertyAccess":{type:"string",enum:["read-only","write-only"]},"types.ObjectPropertyWithAccessSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},access:{oneOf:[{$ref:"#/definitions/types.ObjectPropertyAccess"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.ObjectPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectPropertyWithAccessSchema"}]},"types.ObjectSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"types.CasingOverridesSchema":{type:"object",properties:{camel:{oneOf:[{type:"string"},{type:"null"}]},snake:{oneOf:[{type:"string"},{type:"null"}]},pascal:{oneOf:[{type:"string"},{type:"null"}]},"screaming-snake":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"types.EnumValueSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},casing:{oneOf:[{$ref:"#/definitions/types.CasingOverridesSchema"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.EnumValue":{anyOf:[{type:"string"},{$ref:"#/definitions/types.EnumValueSchema"}]},"types.EnumSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},default:{oneOf:[{type:"string"},{type:"null"}]},enum:{type:"array",items:{$ref:"#/definitions/types.EnumValue"}},"forward-compatible":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["enum"],additionalProperties:!1},"types.UnionDiscriminatorContext":{type:"string",enum:["data","protocol"]},"types.UnionDiscriminantSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"},context:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminatorContext"},{type:"null"}]}},required:["value"],additionalProperties:!1},"types.UnionDiscriminant":{anyOf:[{type:"string"},{$ref:"#/definitions/types.UnionDiscriminantSchema"}]},"types.TypeReferenceDetailedSchema":{type:"object",properties:{default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.TypeReferenceSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.TypeReferenceDetailedSchema"}]},"types.SingleUnionTypeKeySchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},value:{type:"string"}},required:["value"],additionalProperties:!1},"types.SingleUnionTypeKey":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeKeySchema"}]},"types.SingleUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},key:{oneOf:[{$ref:"#/definitions/types.SingleUnionTypeKey"},{type:"null"}]}},additionalProperties:!1},"types.SingleUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUnionTypeDetailedSchema"}]},"types.DiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminant:{oneOf:[{$ref:"#/definitions/types.UnionDiscriminant"},{type:"null"}]},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"base-properties":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},union:{type:"object",additionalProperties:{$ref:"#/definitions/types.SingleUnionTypeSchema"}}},required:["union"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeDetailedSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"types.SingleUndiscriminatedUnionTypeSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeDetailedSchema"}]},"types.UndiscriminatedUnionSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},discriminated:{const:!1},union:{type:"array",items:{$ref:"#/definitions/types.SingleUndiscriminatedUnionTypeSchema"}}},required:["discriminated","union"],additionalProperties:!1},"types.AliasSchema":{type:"object",properties:{examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},inline:{oneOf:[{type:"boolean"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},type:{type:"string"},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]}},required:["type"],additionalProperties:!1},"types.TypeDeclarationSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/types.ObjectSchema"},{$ref:"#/definitions/types.EnumSchema"},{$ref:"#/definitions/types.DiscriminatedUnionSchema"},{$ref:"#/definitions/types.UndiscriminatedUnionSchema"},{$ref:"#/definitions/types.AliasSchema"}]},"service.GrpcTransport":{type:"object",properties:{"service-name":{type:"string"}},required:["service-name"],additionalProperties:!1},"service.ServiceTransport":{type:"object",properties:{grpc:{oneOf:[{$ref:"#/definitions/service.GrpcTransport"},{type:"null"}]}},additionalProperties:!1},"service.HttpMethodSchema":{type:"string",enum:["GET","POST","PUT","PATCH","DELETE","HEAD"]},"variables.VariableReferenceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},variable:{type:"string"}},required:["variable"],additionalProperties:!1},"service.HttpPathParameterSchema":{anyOf:[{$ref:"#/definitions/types.TypeReferenceSchema"},{$ref:"#/definitions/variables.VariableReferenceSchema"}]},"auth.AuthScope":{type:"string"},"service.HttpEndpointSecurityItem":{type:"object",additionalProperties:{type:"array",items:{$ref:"#/definitions/auth.AuthScope"}}},"service.HttpEndpointSecurity":{type:"array",items:{$ref:"#/definitions/service.HttpEndpointSecurityItem"}},"service.HttpEndpointAuth":{anyOf:[{type:"boolean"},{$ref:"#/definitions/service.HttpEndpointSecurity"}]},"service.QueryParameterTypeReferenceDetailed":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"allow-multiple":{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpQueryParameterSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.QueryParameterTypeReferenceDetailed"}]},"service.TypeReferenceDeclarationWithEnvOverrideSchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},env:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.TypeReferenceDeclarationWithEnvOverride":{anyOf:[{type:"string"},{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverrideSchema"}]},"service.HttpHeaderSchema":{$ref:"#/definitions/service.TypeReferenceDeclarationWithEnvOverride"},"service.HttpReferencedRequestBodySchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"service.FormDataBodyEncodingStyle":{type:"string",enum:["json","exploded","form"]},"service.HttpInlineFileRequestBodyPropertySchema":{type:"object",properties:{type:{type:"string"},default:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/encoding.EncodingSchema"},{type:"null"}]},validation:{oneOf:[{$ref:"#/definitions/validation.ValidationSchema"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/service.FormDataBodyEncodingStyle"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpInlineRequestBodyPropertySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpInlineFileRequestBodyPropertySchema"}]},"service.HttpInlineRequestBodySchema":{type:"object",properties:{extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},"extra-properties":{oneOf:[{type:"boolean"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpInlineRequestBodyPropertySchema"}},{type:"null"}]}},additionalProperties:!1},"service.HttpRequestBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpReferencedRequestBodySchema"},{$ref:"#/definitions/service.HttpInlineRequestBodySchema"}]},"service.HttpRequestSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"content-type":{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/service.HttpRequestBodySchema"},{type:"null"}]}},additionalProperties:!1},"service.HttpRequest":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpRequestSchema"}]},"service.HttpResponseSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{oneOf:[{type:"string"},{type:"null"}]},property:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"service.HttpResponseSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseSchemaDetailed"}]},"service.StreamFormat":{type:"string",enum:["sse","json"]},"service.HttpResponseStreamSchemaDetailed":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"},format:{oneOf:[{$ref:"#/definitions/service.StreamFormat"},{type:"null"}]},terminator:{oneOf:[{type:"string"},{type:"null"}]}},required:["type"],additionalProperties:!1},"service.HttpResponseStreamSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/service.HttpResponseStreamSchemaDetailed"}]},"service.ResponseErrorWithDocsSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},error:{type:"string"}},required:["error"],additionalProperties:!1},"service.ResponseError":{anyOf:[{type:"string"},{$ref:"#/definitions/service.ResponseErrorWithDocsSchema"}]},"service.ResponseErrorsSchema":{type:"array",items:{$ref:"#/definitions/service.ResponseError"}},"examples.ExampleTypeReferenceSchema":{type:["string","number","boolean","object","array","null"]},"examples.ExampleBodyResponseSchema":{type:"object",properties:{error:{oneOf:[{type:"string"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},additionalProperties:!1},"examples.ExampleStreamResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleSseEventSchema":{type:"object",properties:{event:{type:"string"},data:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]}},required:["event"],additionalProperties:!1},"examples.ExampleSseResponseSchema":{type:"object",properties:{stream:{type:"array",items:{$ref:"#/definitions/examples.ExampleSseEventSchema"}}},required:["stream"],additionalProperties:!1},"examples.ExampleResponseSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleBodyResponseSchema"},{$ref:"#/definitions/examples.ExampleStreamResponseSchema",description:"JSON Streams"},{$ref:"#/definitions/examples.ExampleSseResponseSchema",description:"Server-Sent Event streams"}]},"examples.SupportedSdkLanguageSchema":{type:"string",enum:["curl","python","javascript","typescript","go","ruby","csharp","java","js","node","ts","nodets","golang","dotnet","jvm","c#"]},"examples.ExampleCodeSampleSchemaSdk":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},sdk:{$ref:"#/definitions/examples.SupportedSdkLanguageSchema"},code:{type:"string"}},required:["sdk","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchemaLanguage":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},name:{oneOf:[{type:"string"},{type:"null"}]},language:{type:"string"},code:{type:"string"},install:{oneOf:[{type:"string"},{type:"null"}]}},required:["language","code"],additionalProperties:!1},"examples.ExampleCodeSampleSchema":{anyOf:[{$ref:"#/definitions/examples.ExampleCodeSampleSchemaSdk"},{$ref:"#/definitions/examples.ExampleCodeSampleSchemaLanguage"}]},"examples.ExampleEndpointCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/examples.ExampleResponseSchema"},{type:"null"}]},"code-samples":{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleCodeSampleSchema"}},{type:"null"}]}},additionalProperties:!1},"pagination.CursorPaginationSchema":{type:"object",properties:{cursor:{type:"string"},next_cursor:{type:"string"},results:{type:"string"}},required:["cursor","next_cursor","results"],additionalProperties:!1},"pagination.OffsetPaginationSchema":{type:"object",properties:{offset:{type:"string"},results:{type:"string"},step:{oneOf:[{type:"string"},{type:"null"}]},"has-next-page":{oneOf:[{type:"string"},{type:"null"}]}},required:["offset","results"],additionalProperties:!1},"pagination.CustomPaginationSchema":{type:"object",properties:{type:{const:"custom"},results:{type:"string"}},required:["type","results"],additionalProperties:!1},"pagination.UriPaginationSchema":{type:"object",properties:{next_uri:{type:"string"},results:{type:"string"}},required:["next_uri","results"],additionalProperties:!1},"pagination.PathPaginationSchema":{type:"object",properties:{next_path:{type:"string"},results:{type:"string"}},required:["next_path","results"],additionalProperties:!1},"pagination.PaginationSchema":{anyOf:[{$ref:"#/definitions/pagination.CursorPaginationSchema"},{$ref:"#/definitions/pagination.OffsetPaginationSchema"},{$ref:"#/definitions/pagination.CustomPaginationSchema"},{$ref:"#/definitions/pagination.UriPaginationSchema"},{$ref:"#/definitions/pagination.PathPaginationSchema"}]},"service.Pagination":{anyOf:[{$ref:"#/definitions/pagination.PaginationSchema"},{type:"boolean"}]},"service.RetriesDisabledSchema":{type:"object",properties:{disabled:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"service.RetriesConfiguration":{anyOf:[{$ref:"#/definitions/service.RetriesDisabledSchema"}]},"service.HttpEndpointSchema":{type:"object",properties:{"display-name":{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},method:{oneOf:[{$ref:"#/definitions/service.HttpMethodSchema"},{type:"null"}]},"base-path":{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},auth:{oneOf:[{$ref:"#/definitions/service.HttpEndpointAuth"},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},"stream-condition":{oneOf:[{type:"string"},{type:"null"}]},request:{oneOf:[{$ref:"#/definitions/service.HttpRequest"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},errors:{oneOf:[{$ref:"#/definitions/service.ResponseErrorsSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleEndpointCallSchema"}},{type:"null"}]},pagination:{oneOf:[{$ref:"#/definitions/service.Pagination"},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},retries:{oneOf:[{$ref:"#/definitions/service.RetriesConfiguration"},{type:"null"}]}},required:["path"],additionalProperties:!1},"service.HttpServiceSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},"base-path":{type:"string"},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},idempotent:{oneOf:[{type:"boolean"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.TypeReferenceSchema"}},{type:"null"}]},transport:{oneOf:[{$ref:"#/definitions/service.ServiceTransport"},{type:"null"}]},source:{oneOf:[{$ref:"#/definitions/source.SourceSchema"},{type:"null"}]},endpoints:{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpEndpointSchema"}}},required:["auth","base-path","endpoints"],additionalProperties:!1},"errors.ErrorDeclarationSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},"status-code":{type:"integer"},type:{oneOf:[{type:"string"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleTypeSchema"}},{type:"null"}]}},required:["status-code"],additionalProperties:!1},"webhooks.WebhookMethodSchema":{type:"string",enum:["POST","GET"]},"webhooks.WebhookReferencedPayloadSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"webhooks.WebhookInlinedPayloadSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"webhooks.WebhookPayloadSchema":{anyOf:[{type:"string"},{$ref:"#/definitions/webhooks.WebhookReferencedPayloadSchema"},{$ref:"#/definitions/webhooks.WebhookInlinedPayloadSchema"}]},"webhooks.WebhookSignatureAlgorithmSchema":{type:"string",enum:["sha256","sha1","sha384","sha512"]},"webhooks.WebhookSignatureEncodingSchema":{type:"string",enum:["base64","hex"]},"webhooks.WebhookPayloadComponentSchema":{type:"string",enum:["body","timestamp","notification-url","message-id"]},"webhooks.WebhookPayloadFormatSchema":{type:"object",properties:{components:{type:"array",items:{$ref:"#/definitions/webhooks.WebhookPayloadComponentSchema"}},delimiter:{oneOf:[{type:"string"},{type:"null"}]}},required:["components"],additionalProperties:!1},"webhooks.WebhookTimestampFormatSchema":{type:"string",enum:["unix-seconds","unix-millis","iso8601"]},"webhooks.WebhookTimestampSchema":{type:"object",properties:{header:{type:"string"},format:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampFormatSchema"},{type:"null"}]},tolerance:{oneOf:[{type:"integer"},{type:"null"}]}},required:["header"],additionalProperties:!1},"webhooks.AsymmetricAlgorithmSchema":{type:"string",enum:["rsa-sha256","rsa-sha384","rsa-sha512","ecdsa-sha256","ecdsa-sha384","ecdsa-sha512","ed25519"]},"webhooks.WebhookSignatureSchema":{type:"object",properties:{type:{type:"string",enum:["hmac","asymmetric"]}},oneOf:[{properties:{type:{const:"hmac"},header:{type:"string"},algorithm:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureAlgorithmSchema"},{type:"null"}]},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"payload-format":{oneOf:[{$ref:"#/definitions/webhooks.WebhookPayloadFormatSchema"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header"]},{properties:{type:{const:"asymmetric"},header:{type:"string"},"asymmetric-algorithm":{$ref:"#/definitions/webhooks.AsymmetricAlgorithmSchema"},encoding:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureEncodingSchema"},{type:"null"}]},"signature-prefix":{oneOf:[{type:"string"},{type:"null"}]},"jwks-url":{oneOf:[{type:"string"},{type:"null"}]},"key-id-header":{oneOf:[{type:"string"},{type:"null"}]},timestamp:{oneOf:[{$ref:"#/definitions/webhooks.WebhookTimestampSchema"},{type:"null"}]}},required:["type","header","asymmetric-algorithm"]}]},"examples.ExampleWebhookCallSchema":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},id:{oneOf:[{type:"string"},{type:"null"}]},payload:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},required:["payload"],additionalProperties:!1},"webhooks.WebhookSchema":{type:"object",properties:{availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},method:{$ref:"#/definitions/webhooks.WebhookMethodSchema"},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},payload:{$ref:"#/definitions/webhooks.WebhookPayloadSchema"},signature:{oneOf:[{$ref:"#/definitions/webhooks.WebhookSignatureSchema"},{type:"null"}]},response:{oneOf:[{$ref:"#/definitions/service.HttpResponseSchema"},{type:"null"}]},"response-stream":{oneOf:[{$ref:"#/definitions/service.HttpResponseStreamSchema"},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebhookCallSchema"}},{type:"null"}]}},required:["method","payload"],additionalProperties:!1},"websocket.WebSocketOrigin":{type:"string",enum:["client","server"]},"websocket.WebSocketChannelReferencedMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},type:{type:"string"}},required:["type"],additionalProperties:!1},"websocket.WebSocketChannelInlinedMessageSchema":{type:"object",properties:{name:{type:"string"},extends:{oneOf:[{$ref:"#/definitions/types.ObjectExtendsSchema"},{type:"null"}]},properties:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/types.ObjectPropertySchema"}},{type:"null"}]}},required:["name"],additionalProperties:!1},"websocket.WebSocketChannelMessageBodySchema":{anyOf:[{type:"string"},{$ref:"#/definitions/websocket.WebSocketChannelReferencedMessageSchema"},{$ref:"#/definitions/websocket.WebSocketChannelInlinedMessageSchema"}]},"websocket.WebSocketChannelMessageSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},"method-name":{oneOf:[{type:"string"},{type:"null"}]},origin:{$ref:"#/definitions/websocket.WebSocketOrigin"},body:{$ref:"#/definitions/websocket.WebSocketChannelMessageBodySchema"}},required:["origin","body"],additionalProperties:!1},"examples.ExampleWebSocketMessage":{type:"object",properties:{type:{type:"string"},body:{type:["string","number","boolean","object","array","null"]}},required:["type","body"],additionalProperties:!1},"examples.ExampleWebSocketSession":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},docs:{oneOf:[{type:"string"},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/examples.ExampleTypeReferenceSchema"}},{type:"null"}]},messages:{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketMessage"}}},required:["messages"],additionalProperties:!1},"websocket.WebSocketChannelSchema":{type:"object",properties:{docs:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/availability.AvailabilityUnionSchema"},{type:"null"}]},audiences:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"display-name":{oneOf:[{type:"string"},{type:"null"}]},auth:{type:"boolean"},url:{oneOf:[{type:"string"},{type:"null"}]},path:{type:"string"},"connect-method-name":{oneOf:[{type:"string"},{type:"null"}]},headers:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpHeaderSchema"}},{type:"null"}]},"path-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpPathParameterSchema"}},{type:"null"}]},"query-parameters":{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/service.HttpQueryParameterSchema"}},{type:"null"}]},messages:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/websocket.WebSocketChannelMessageSchema"}},{type:"null"}]},examples:{oneOf:[{type:"array",items:{$ref:"#/definitions/examples.ExampleWebSocketSession"}},{type:"null"}]}},required:["auth","path"],additionalProperties:!1},"file.Navigation":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"file.ExportDetailed":{type:"object",properties:{dependency:{type:"string"},url:{oneOf:[{type:"string"},{type:"null"}]}},required:["dependency"],additionalProperties:!1},"file.Export":{anyOf:[{type:"string"},{$ref:"#/definitions/file.ExportDetailed"}]}},IMp={type:yMp,properties:bMp,additionalProperties:EMp,definitions:vMp};var QEi=new Map,NEi=new Map,jEi=new Map;function haa({files:e,absolutePathToDefinition:t,skipValidation:r}){let n,i={},o={},s={};for(let[a,u]of ay(e)){let c=u.contents,l=p=>{s[a]={type:Vc.JSONSCHEMA_VALIDATION,error:p}};if(a===qb){let p=QEi.get(u.rawContents);if(p!=null&&(p.validated||r))n={defaultUrl:p.value["default-url"],contents:p.value,rawContents:u.rawContents};else if(r){let d=Hd.serialization.RootApiFileSchema.parseOrThrow(c);QEi.set(u.rawContents,{value:d,validated:!1}),n={defaultUrl:d["default-url"],contents:d,rawContents:u.rawContents}}else{let d=Oj(c,REi);if(d.success){let f=Hd.serialization.RootApiFileSchema.parseOrThrow(c);QEi.set(u.rawContents,{value:f,validated:!0}),n={defaultUrl:f["default-url"],contents:f,rawContents:u.rawContents}}else l(d)}}else if(maa.default.basename(a)===Pp){let p=jEi.get(u.rawContents);if(p!=null&&(p.validated||r))o[a]={defaultUrl:typeof p.value.export=="object"?p.value.export.url:void 0,contents:p.value,rawContents:u.rawContents};else if(r){let d=Hd.serialization.PackageMarkerFileSchema.parseOrThrow(c);jEi.set(u.rawContents,{value:d,validated:!1}),o[a]={defaultUrl:typeof d.export=="object"?d.export.url:void 0,contents:d,rawContents:u.rawContents}}else{let d=Oj(c,kEi);if(d.success){let f=Hd.serialization.PackageMarkerFileSchema.parseOrThrow(c);jEi.set(u.rawContents,{value:f,validated:!0}),o[a]={defaultUrl:typeof f.export=="object"?f.export.url:void 0,contents:f,rawContents:u.rawContents}}else l(d)}}else{let p=NEi.get(u.rawContents);if(p!=null&&(p.validated||r))i[a]={defaultUrl:void 0,contents:p.value,rawContents:u.rawContents,absoluteFilePath:We(t,a)};else if(r){let d=Hd.serialization.DefinitionFileSchema.parseOrThrow(c);NEi.set(u.rawContents,{value:d,validated:!1}),i[a]={defaultUrl:void 0,contents:d,rawContents:u.rawContents,absoluteFilePath:We(t,a)}}else{let d=Oj(c,FEi);if(d.success){let f=Hd.serialization.DefinitionFileSchema.parseOrThrow(c);NEi.set(u.rawContents,{value:f,validated:!0}),i[a]={defaultUrl:void 0,contents:f,rawContents:u.rawContents,absoluteFilePath:We(t,a)}}else l(d)}}}return n==null?{didSucceed:!1,failures:{[_e.of(qb)]:{type:Vc.FILE_MISSING},...s}}:Object.keys(s).length>0?{didSucceed:!1,failures:s}:{didSucceed:!0,namedDefinitionFiles:i,rootApiFile:n,packageMarkers:o}}var KS=class extends $5{type="fern";context;fernWorkspaces={};loadAPIWorkspace;constructor({context:t,loadAPIWorkspace:r,...n}){super(n),this.context=t,this.loadAPIWorkspace=r}async getDefinition({context:t},r){let n=t||this.context;return(await this.toFernWorkspace({context:n},r)).definition}async toFernWorkspace({context:t,skipValidation:r},n,i,o){let s=(0,gaa.default)(n??{}),a=this.fernWorkspaces[s];if(a==null){let u=t||this.context,c=We(this.absoluteFilePath,_e.of(Kh)),l=await Xti({absolutePathToWorkspace:this.absoluteFilePath,context:u}),p=await Rna(c,"{yml,yaml}"),d=await Fna(p);if(!d.didSucceed)return Fpr(d.failures,u.logger),u.failAndThrow();let f=haa({files:d.files,absolutePathToDefinition:c,skipValidation:r});if(!f.didSucceed)return Fpr(f.failures,u.logger),u.failAndThrow();let m=await daa({dependenciesConfiguration:l,structuralValidationResult:f,context:u,cliVersion:this.cliVersion,settings:n,loadAPIWorkspace:this.loadAPIWorkspace});if(!m.didSucceed)return Fpr(m.failures,u.logger),u.failAndThrow();let h={absoluteFilePath:c,rootApiFile:f.rootApiFile,namedDefinitionFiles:f.namedDefinitionFiles,packageMarkers:m.packageMarkers,importedDefinitions:m.importedDefinitions};n?.auth!=null&&(h={...h,rootApiFile:{...h.rootApiFile,contents:{...h.rootApiFile.contents,auth:n?.auth}}}),a=new qD({absoluteFilePath:this.absoluteFilePath,generatorsConfiguration:this.generatorsConfiguration,dependenciesConfiguration:l,workspaceName:this.workspaceName,definition:h,cliVersion:this.cliVersion,sources:[]}),this.fernWorkspaces[s]=a}return a}getAbsoluteFilePaths(){return[this.absoluteFilePath]}};qt();var Npa=require("fs/promises");var xpa=xe(Cpa(),1);async function M6(e){return(await(0,xpa.convertObj)(e,{})).openapi}var Tpa=require("fs/promises");var Dpa=require("path");St();var _pa=require("fs/promises");async function NVe({absoluteFilePathToOverrides:e,data:t,context:r,allowNullKeys:n}){let i=null;try{let o=(await(0,_pa.readFile)(e,"utf8")).toString();try{i=JSON.parse(o)}catch{i=xr.load(o,{json:!0})}}catch{return r.failAndThrow(`Failed to read overrides from file ${e}`)}return f9({data:t,overrides:i,allowNullKeys:n})}var Spa=require("fs/promises");var lmr=require("path");function Bpa(e){return e.startsWith("http://")||e.startsWith("https://")}async function F5p(e,t){let r=t.get(e);if(r!==void 0)return r;let n=await(0,Spa.readFile)(e,"utf-8"),i=xr.load(n);return t.set(e,i),i}function Opa(e,t){let r=new Map;if(e==null||typeof e!="object"||Array.isArray(e))return r;let n=e;function i(s,a){if(!(s==null||typeof s!="object"||Array.isArray(s)))for(let[u,c]of Object.entries(s)){if(!k5p(c))continue;let l=c.$ref,{jsonPointer:p,absolutePath:d}=Ppa(l,t);r.set(`${d}#${p}`,`${a}/${u}`)}}i(n.channels,"#/channels"),i(n.operations,"#/operations");let o=n.components;if(o!=null&&typeof o=="object"&&!Array.isArray(o)){let s=o;i(s.schemas,"#/components/schemas"),i(s.messages,"#/components/messages"),i(s.parameters,"#/components/parameters")}return r}function Ppa(e,t){let r=e.indexOf("#"),n=r>=0?e.slice(0,r):e,i=r>=0?e.slice(r+1):"",o=(0,lmr.resolve)(t,n);return{filePath:n,jsonPointer:i,absolutePath:o}}function k5p(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e.$ref;return typeof t=="string"&&t.length>0&&!t.startsWith("#")&&!Bpa(t)}function Q5p(e,t,r,n){if(e===r)return"#"+t;let i=`${e}#${t}`,o=n.get(i);if(o!==void 0)return o;for(let[s,a]of n){let u=s.indexOf("#"),c=s.slice(0,u),l=s.slice(u+1);if(c===e&&t.startsWith(l+"/")){let p=t.slice(l.length);return a+p}}return null}async function FIt(e,t,r,n,i=!1,o=new Set,s=new Map){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return Promise.all(e.map(l=>FIt(l,t,r,n,i,o,s)));let a=e,u=a.$ref;if(typeof u=="string"&&!u.startsWith("#")&&!Bpa(u)){let{jsonPointer:l,absolutePath:p}=Ppa(u,t),d={};for(let[v,E]of Object.entries(a))v!=="$ref"&&(d[v]=E);let f=Object.keys(d).length>0;if(i){let v=Q5p(p,l,r,n);if(v!==null)return{$ref:v,...d}}let m=`${p}#${l}`;if(o.has(m))throw new Error(`Circular $ref detected: "${u}" (resolved to "${m}")`);let h=new Set(o);h.add(m);let g=await F5p(p,s);if(l!==""){let v=l.split("/").filter(I=>I!==""),E=g;for(let I of v){let w=I.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof E!="object"||E==null)throw new Error(`Cannot navigate JSON Pointer "${l}" in "${p}": expected an object but found ${typeof E} at key "${w}"`);let x=E[w];if(x===void 0)throw new Error(`Cannot navigate JSON Pointer "${l}" in "${p}": key "${w}" not found`);E=x}g=E}let A=(0,lmr.dirname)(p),b=await FIt(g,A,r,n,!0,h,s);return f&&b!=null&&typeof b=="object"&&!Array.isArray(b)?{...b,...d}:b}let c={};for(let[l,p]of Object.entries(a))c[l]=await FIt(p,t,r,n,i,o,s);return c}async function UIi({context:e,absoluteFilePath:t,absoluteFilePathToOverrides:r}){let n=(await(0,Tpa.readFile)(t)).toString(),i=await xr.load(n),o=(0,Dpa.dirname)(t),s=Opa(i,o),a=await FIt(i,o,t,s),u=[];r!=null&&(Array.isArray(r)?u=r:u=[r]);let c=a;for(let l of u)c=await NVe({absoluteFilePathToOverrides:l,context:e,data:c});return c}qt();var Qpa=require("fs/promises");St();var fmr=require("fs/promises");var pmr=xe(require("path"),1),Rpa=xe(Cw(),1),zIi;async function N5p(){return zIi===void 0&&(zIi=(await Rpa.default.dir({prefix:"fern-overlay-"})).path),zIi}async function Fpa({absoluteFilePathToOverlay:e,absoluteFilePathToOpenAPI:t,data:r,context:n}){let i=await j5p(e,n);if(!M5p(i,n))return r;n.logger.debug(`Applying overlay "${i.info.title}" v${i.info.version}`);let o=ZNe({data:r,overlay:i}),s=await N5p(),a=pmr.default.basename(t),u=`${pmr.default.parse(a).name}.overlaid.json`,c=pmr.default.join(s,u);return await(0,fmr.writeFile)(c,JSON.stringify(o,null,2),"utf8"),n.logger.info(`Wrote overlaid OpenAPI spec to: ${c}`),o}async function j5p(e,t){let r;try{r=await(0,fmr.readFile)(e,"utf8")}catch(n){return t.failAndThrow(`Failed to read overlay file at ${e}: ${n}`)}try{try{return JSON.parse(r)}catch{return xr.load(r,{json:!0})}}catch(n){return t.failAndThrow(`Failed to parse overlay file at ${e}: ${n}`)}}function M5p(e,t){if(!e.overlay)return t.logger.error("Overlay file missing required 'overlay' version field"),!1;if(!e.info?.title||!e.info?.version)return t.logger.error("Overlay file missing required 'info.title' or 'info.version' field"),!1;if(!Array.isArray(e.actions)||e.actions.length===0)return t.logger.error("Overlay file must have at least one action"),!1;for(let r=0;r<e.actions.length;r++){let n=e.actions[r];if(!n?.target)return t.logger.error(`Overlay action at index ${r} missing required 'target' field`),!1;if(n.update===void 0&&!n.remove)return t.logger.error(`Overlay action at index ${r} must have either 'update' or 'remove'`),!1}return!0}var NIt=xe(Dtr(),1);qt();var kpa=xe(Dtr(),1),kIt=xe(require("path"),1),QIt=class extends kpa.BaseResolver{absolutePathToOpenAPIOverrides;absolutePathToOpenAPIOverlays;constructor({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r}){super(),this.absolutePathToOpenAPIOverrides=t,this.absolutePathToOpenAPIOverlays=r}resolveExternalRef(t,r){let n=super.resolveExternalRef(t,r);if(n.startsWith("http://")||n.startsWith("https://")||y9(Ut.of(n)))return n;if(this.absolutePathToOpenAPIOverlays!=null){let i=kIt.default.resolve(kIt.default.dirname(this.absolutePathToOpenAPIOverlays),r);if(y9(Ut.of(i)))return i}return this.absolutePathToOpenAPIOverrides!=null?kIt.default.resolve(kIt.default.dirname(this.absolutePathToOpenAPIOverrides),r):n}};async function dmr({absolutePathToOpenAPI:e,absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r,parsed:n}){return(n!=null?await(0,NIt.bundle)({...Rtr,doc:{source:new NIt.Source(e,"<openapi>"),parsed:n},externalRefResolver:new QIt({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r})}):await(0,NIt.bundle)({...Rtr,ref:e,externalRefResolver:new QIt({absolutePathToOpenAPIOverrides:t,absolutePathToOpenAPIOverlays:r})})).bundle.parsed}function L5p(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}var U5p=["examples","example",En.EXAMPLES,A_.REDOCLY_CODE_SAMPLES_CAMEL,A_.REDOCLY_CODE_SAMPLES_KEBAB];async function L6({context:e,absolutePathToOpenAPI:t,absolutePathToOpenAPIOverrides:r,absolutePathToOpenAPIOverlays:n,loadAiExamples:i=!1}){let o=await dmr({absolutePathToOpenAPI:t}),s=[];r!=null?Array.isArray(r)?s=r:s=[r]:typeof o=="object"&&o[En.OPENAPI_OVERIDES_FILEPATH]!=null&&(s=[We(An(t),_e.of(o[En.OPENAPI_OVERIDES_FILEPATH]))]);let a=o;for(let c of s)a=await NVe({absoluteFilePathToOverrides:c,context:e,data:a,allowNullKeys:U5p}),a=await dmr({absolutePathToOpenAPI:t,absolutePathToOpenAPIOverrides:c,parsed:a});if(n!=null&&(a=await Fpa({absoluteFilePathToOverlay:n,absoluteFilePathToOpenAPI:t,context:e,data:a})),i){let c=We(An(t),_e.of("ai_examples_override.yml"));try{let l=await(0,Qpa.readFile)(c,"utf-8"),p=xr.load(l);if(p?.paths&&a.paths){for(let[d,f]of Object.entries(p.paths))if(f&&typeof f=="object")for(let[m,h]of Object.entries(f)){let g=m.toLowerCase(),A=a.paths[d];if(!A&&a.paths){let b=L5p(d,Object.keys(a.paths));b&&(A=a.paths[b],e.logger.debug(`Matched override path "${d}" to OpenAPI path "${b}" using pattern matching`))}if(A&&typeof A=="object"){let v=A[g];if(v&&typeof v=="object"){let E=v;!E["x-fern-examples"]&&h["x-fern-examples"]&&(E["x-fern-examples"]=h["x-fern-examples"],e.logger.debug(`Added AI examples for ${m.toUpperCase()} ${d} from override file`))}}}}e.logger.debug(`Processed AI examples from ${c}`)}catch{}}return a!==o&&s.length===0||n!=null?await dmr({absolutePathToOpenAPI:t,absolutePathToOpenAPIOverlays:n,parsed:a}):a}var U6=class{absoluteFilePath;constructor(t){this.absoluteFilePath=t}async loadDocuments({context:t,specs:r,loadAiExamples:n=!1}){return(await Promise.all(r.map(o=>this.loadDocument({context:t,spec:o,loadAiExamples:n})))).filter(o=>o!=null)}async loadDocument({context:t,spec:r,loadAiExamples:n}){try{let i=(await(0,Npa.readFile)(r.absoluteFilepath)).toString(),o=ca(this.absoluteFilePath,r.source.file);r.source.relativePathToDependency!=null&&(o=We(r.source.relativePathToDependency,o));let s=r.source.type==="protobuf"?ES.protobuf({file:o}):ES.openapi({file:o});if(i.includes("openapi")||i.includes("swagger"))try{let a=await L6({absolutePathToOpenAPI:r.absoluteFilepath,context:t,absolutePathToOpenAPIOverrides:r.absoluteFilepathToOverrides,absolutePathToOpenAPIOverlays:r.absoluteFilepathToOverlays,loadAiExamples:n});if(Hti(a))return{type:"openapi",value:a,source:s,namespace:r.namespace,settings:dM({options:r.settings})};if(g8(a))return(!a.schemes||a.schemes.length===0)&&(a.schemes=["https"]),{type:"openapi",value:await M6(a),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.debug(`Failed to parse OpenAPI document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}if(i.includes("asyncapi"))try{return{type:"asyncapi",value:await UIi({context:t,absoluteFilePath:r.absoluteFilepath,absoluteFilePathToOverrides:r.absoluteFilepathToOverrides}),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.error(`Failed to parse AsyncAPI document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}if(i.includes("openrpc"))try{return{type:"asyncapi",value:await UIi({context:t,absoluteFilePath:r.absoluteFilepath,absoluteFilePathToOverrides:r.absoluteFilepathToOverrides}),source:s,namespace:r.namespace,settings:dM({options:r.settings})}}catch(a){t.logger.error(`Failed to parse OpenRPC document at ${r.absoluteFilepath}: ${a}. Skipping...`);return}t.logger.warn(`${r.absoluteFilepath} is not a valid OpenAPI, AsyncAPI, or OpenRPC file. Skipping...`);return}catch(i){t.logger.error(`Failed to read or process file ${r.absoluteFilepath}: ${i}. Skipping...`);return}}};var Ki=class e{breadcrumbs=[];context;static STRING=Gt.TypeReference.primitive({v1:"STRING",v2:Gt.PrimitiveTypeV2.string({default:void 0,validation:void 0})});static OPTIONAL_STRING=Gt.TypeReference.container(Gt.ContainerType.optional(e.STRING));constructor({breadcrumbs:t=[],context:r}){this.breadcrumbs=t,this.context=r}};Ci();qt();var Mpa=require("fs/promises");var VIi=class{_map;_path;_lastScalar;_fragments;_count;constructor(){this._map={},this._path=[],this._lastScalar="",this._fragments=[],this._count=0}get map(){return this._map}resolveNode(t,r){if(t.path==="."&&(r="."),!this._map[r]){let{line:n,position:i,lineStart:o}=t;this._map[r]={line:n,position:i,lineStart:o}}t.children&&t.children.length>0&&t.children.forEach(n=>{this.resolveNode(n,(r==="."?"":r)+"."+n.path)})}iterFragments(t,r){for(let n=this._fragments.length-1;n>=0;n--){if(!this._fragments[n].path.startsWith(t)||this._fragments[n].path===t)continue;let i=this._fragments.pop();r(i)}}handleState(t,r){if(t==="close"){let n=r.result,i=r.kind,o=this._path.join(".");if(i==="scalar"){this._path.pop(),this._lastScalar=`${n}`;let{line:s,position:a,lineStart:u}=r;this._path.length===0?this._map["."+n]={line:s,position:a,lineStart:u}:this._fragments.push({path:this._path.join(".")+"."+n,line:s,position:a,lineStart:u})}else if(i==="mapping"){let s={path:o,children:[],line:0,position:0,lineStart:0},a=0;this.iterFragments(o,u=>{a++,!((!u.children||u.children.length===0)&&a%2===1)&&(this._path.length===1?this.resolveNode(u,u.path):(s.children.push({...u,path:u.path.slice(o.length+1)}),s.line=u.line,s.position=u.position,s.lineStart=u.lineStart))}),s.children&&s.children.length>0&&this._fragments.push(s),this._path.pop()}else if(i==="sequence"){let s={path:o,children:[],line:0,position:0,lineStart:0},a=new Set,u=n.length;this.iterFragments(o,c=>{a.has(c.position)||(u--,a.add(c.position),this._path.length===1?this.resolveNode(c,`${o}.${u}`):(s.children.push({...c,path:u.toString()}),s.line=c.line,s.position=c.position,s.lineStart=c.lineStart))}),s.children&&s.children.length>0&&this._fragments.push(s),this._path.pop()}else this._path.pop()}if(t==="open"){if(this._count===0){let{line:n,position:i,lineStart:o}=r;this._map["."]={line:n,position:i,lineStart:o}}this._path.push(this._lastScalar),this._count++}}listen(){return this.handleState.bind(this)}lookup(t){let r=t instanceof Array?t.map(i=>`${i}`).join("."):`${t}`;r.startsWith(".")||(r="."+r),r.startsWith("..")&&(r=r.slice(1)),r=r.replace(/\[/g,".").replace(/\]/g,"");let n=this._map[r];if(n)return{line:n.line+1,column:n.position-n.lineStart+1,position:n.position}}},jpa=VIi;var Rv;(function(e){e.WARNING="warning",e.ERROR="error"})(Rv||(Rv={}));var H4=class{errors=[];logger;breadcrumbToLineNumberMapper;relativeFilepathToSpec;constructor({logger:t,relativeFilepathToSpec:r}){this.logger=t,this.relativeFilepathToSpec=r,r&&(this.breadcrumbToLineNumberMapper=new qIi({logger:t,relativePathToFile:_e.of(r)}))}collect(t){this.errors.push(t)}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}dedupe(){let t=[],r=new Set,n=0;for(let i of this.errors){let o=i.path?i.path.join("->"):"",s=`${i.message}|${i.level||Rv.WARNING}|${o}`;r.has(s)?n++:(r.add(s),t.push(i))}return this.errors=t,n}getErrorStats(){this.dedupe();let t=0,r=0;for(let n of this.errors)n.level===Rv.ERROR?t++:(n.level===Rv.WARNING||n.level===void 0)&&r++;return{numErrors:t,numWarnings:r}}async logErrors({logWarnings:t}){this.dedupe();for(let r of this.errors){let n=r.level??Rv.WARNING;if(!(n===Rv.WARNING&&!t))switch(n){case Rv.ERROR:if(this.logger.log(qn.Debug,r.message),r.path&&r.path.length>0){let i=await this.breadcrumbToLineNumberMapper?.getSourceLocation(r.path),o=i?`${this.relativeFilepathToSpec}:${i.line}:${i.column}`:r.path.join(" -> ");this.logger.log(qn.Debug,` - at location (${o})`)}break;case Rv.WARNING:if(this.logger.log(qn.Warn,r.message),r.path&&r.path.length>0){let i=await this.breadcrumbToLineNumberMapper?.getSourceLocation(r.path),o=i?`${this.relativeFilepathToSpec}:${i.line}:${i.column}`:r.path.join(" -> ");this.logger.log(qn.Warn,` - at location (${o})`)}r.resolution&&this.logger.log(qn.Warn,` - resolution: ${r.resolution}`);break}}}},qIi=class{logger;relativePathToFile;map=new jpa;initialized=!1;constructor({relativePathToFile:t,logger:r}){this.relativePathToFile=t,this.logger=r}async initialize(){if(!this.initialized)try{let t=await(0,Mpa.readFile)(this.relativePathToFile,"utf-8");xr.load(t,{listener:this.map.listen()}),this.initialized=!0}catch(t){this.logger.log(qn.Warn,`Failed to initialize line number mapping for ${this.relativePathToFile}: ${JSON.stringify(t)}`)}}async getSourceLocation(t){return this.initialized||await this.initialize(),this.map.lookup(t)}};var QA=class e{args;spec;settings;errorCollector;logger;generationLanguage;smartCasing;casingsGenerator;namespace;exampleGenerationArgs;authOverrides;environmentOverrides;globalHeaderOverrides;enableUniqueErrorsPerEndpoint;generateV1Examples;documentBaseDir;constructor(t){this.args=t,this.spec=t.spec,this.settings=t.settings,this.errorCollector=t.errorCollector,this.logger=t.logger,this.generationLanguage=t.generationLanguage,this.smartCasing=t.smartCasing,this.namespace=t.namespace,this.casingsGenerator=NI({generationLanguage:t.generationLanguage,keywords:void 0,smartCasing:t.smartCasing}),this.exampleGenerationArgs=t.exampleGenerationArgs,this.authOverrides=t.authOverrides,this.environmentOverrides=t.environmentOverrides,this.globalHeaderOverrides=t.globalHeaderOverrides,this.enableUniqueErrorsPerEndpoint=t.enableUniqueErrorsPerEndpoint,this.generateV1Examples=t.generateV1Examples,this.documentBaseDir=t.documentBaseDir}static BREADCRUMBS_TO_IGNORE=["properties","allOf","anyOf"];convertBreadcrumbsToName(t){let r=t.filter((i,o)=>!(/^\d+$/.test(i)||e.BREADCRUMBS_TO_IGNORE.includes(i)||o===0&&i==="components"||o===1&&i==="schemas"||t[0]==="paths"&&(o===0||o===1&&["get","post","put","delete","patch"].includes(i)||o===2&&t[1]!=null&&["get","post","put","delete","patch"].includes(t[1])&&i==="parameters"))),n=Un(r.join("_"));return n.charAt(0).toUpperCase()+n.slice(1)}createFernFilepath(t={}){let r=this.namespace!=null?[this.casingsGenerator.generateName(this.namespace)]:[],n=t.name!=null?this.casingsGenerator.generateName(t.name):void 0;return{allParts:n?[...r,n]:r,packagePath:r,file:n}}resolveReference({reference:t,breadcrumbs:r,skipErrorCollector:n}){let i=this.spec,o=t.$ref.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/").map(s=>s.replace(/~1/g,"/"));for(let s of o){if(typeof i!="object"||i==null)return n||this.errorCollector.collect({level:Rv.ERROR,message:this.getErrorMessageForMissingRef({reference:t}),path:r}),{resolved:!1};i=i[s]}return i==null?(n||this.errorCollector.collect({level:Rv.ERROR,message:this.getErrorMessageForMissingRef({reference:t}),path:r}),{resolved:!1}):{resolved:!0,value:i}}getErrorMessageForMissingRef({reference:t}){let r=t.$ref.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/");return r.length>=3&&r[0]==="components"&&r[1]==="schemas"?`Schema ${r[2]} does not exist`:`${t.$ref} does not exist`}async resolveMaybeExternalReference(t){let r=this.spec,n,i=!1,o=null,s;if(this.isExternalReference(t.$ref)){i=!0;let c=t.$ref.split("#"),l=c[0];if(n=c[1],!l)return{resolved:!1};s=l;let p=await fetch(l);if(!p.ok)return{resolved:!1};try{let d=await p.text();try{o=JSON.parse(d),r=o}catch{o=xr.load(d),r=o}if(r==null)return{resolved:!1}}catch{return{resolved:!1}}if(!n)return{resolved:!0,value:r}}let a=n??t.$ref;if(a==null||typeof a!="string")return{resolved:!1};let u=a.replace(/^(?:(?:https?:\/\/)?|#?\/?)?/,"").split("/").map(c=>c.replace(/~1/g,"/"));for(let c of u){if(typeof r!="object"||r==null)return{resolved:!1};r=r[c]}if(r==null)return{resolved:!1};if(i&&typeof r=="object"&&r!==null){let c=new Set;c.add(t.$ref),r=await this.resolveNestedExternalReferences(r,o,c,s)}return{resolved:!0,value:r}}async resolveNestedExternalReferences(t,r,n,i){if(t===null||typeof t!="object")return t;if(Array.isArray(t)){let s=[];for(let a of t)s.push(await this.resolveNestedExternalReferences(a,r,n,i));return s}if(this.isReferenceObject(t)){let s=t.$ref;if(this.isExternalReference(s)){if(n.has(s))return t;n.add(s);let a=await this.resolveMaybeExternalReference({$ref:s});if(n.delete(s),a.resolved)return a.value}else{let a=`${i}${s}`;if(n.has(a))return t;n.add(a);let u=r,c=s.substring(2).split("/").map(l=>l.replace(/~1/g,"/").replace(/~0/g,"~"));for(let l of c){if(typeof u!="object"||u===null)return t;u=u[l]}if(u!=null){let l=await this.resolveNestedExternalReferences(u,r,n,i);return n.delete(s),l}n.delete(s)}return t}let o={};for(let[s,a]of Object.entries(t))typeof a=="object"&&a!==null?o[s]=await this.resolveNestedExternalReferences(a,r,n,i):o[s]=a;return o}getExamplesFromSchema({schema:t,breadcrumbs:r}){if(t==null)return[];let n=t.example!=null?[t.example]:[];return t.examples!=null&&(Array.isArray(t.examples)?n.push(...t.examples):this.errorCollector.collect({message:"Received non-array schema examples",path:r})),n}getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:r,defaultExampleName:n}){if(t==null)return[];let i=[];if(t.example!=null){let o=this.generateUniqueName({prefix:n??`${r.join("_")}_example`,existingNames:[]});i.push([o,{value:t.example}])}return t.examples!=null&&i.push(...Object.entries(t.examples)),i}resolveMaybeReference({schemaOrReference:t,breadcrumbs:r,skipErrorCollector:n}){if(this.isReferenceObject(t)){let i=this.resolveReference({reference:t,breadcrumbs:r,skipErrorCollector:n});return i.resolved?i.value:void 0}return t}resolveExampleRecursively({example:t,breadcrumbs:r,maxDepth:n=10}){let i=t,o=0;for(;this.isReferenceObject(i);){if(o>=n){this.errorCollector.collect({message:`Maximum reference depth (${n}) exceeded while resolving example reference`,path:r});return}let s=this.resolveReference({reference:i,breadcrumbs:r,skipErrorCollector:!0});if(!s.resolved)return;i=s.value,o++}return i}resolveExample(t){if(!this.isReferenceObject(t))return t;let r=this.resolveReference({reference:t});return r.resolved?this.returnExampleValue(r.value):void 0}resolveExampleWithValue(t){if(!this.isReferenceObject(t))return this.returnExampleValue(t);let r=this.resolveReference({reference:t});return r.resolved?this.returnExampleValue(r.value):void 0}returnExampleValue(t){return this.isExampleWithValue(t)?t.value:t}getPropertyAccess(t){let r=t;for(;this.isReferenceObject(r);){let o=this.resolveReference({reference:r});if(!o.resolved)return;r=o.value}let{readOnly:n,writeOnly:i}=this.getReadOnlyWriteOnlyFromSchema(r);if(!(n&&i)){if(n)return Gt.ObjectPropertyAccess.ReadOnly;if(i)return Gt.ObjectPropertyAccess.WriteOnly}}getReadOnlyWriteOnlyFromSchema(t){if(t.allOf&&t.allOf.length>0){let r=!0,n=!0;for(let i of t.allOf){let o=i;if(this.isReferenceObject(i)){let a=this.resolveReference({reference:i});if(!a.resolved)continue;o=a.value}let s=this.getReadOnlyWriteOnlyFromSchema(o);r=r&&s.readOnly,n=n&&s.writeOnly}return{readOnly:r,writeOnly:n}}else return{readOnly:!!t.readOnly,writeOnly:!!t.writeOnly}}getAudiences({operation:t,breadcrumbs:r}){let i=new zI.AudienceExtension({operation:t,breadcrumbs:r,context:this}).convert();if(i!=null)return i.audiences}getAvailability({node:t,breadcrumbs:r}){for(;this.isReferenceObject(t);){let o=this.resolveReference({reference:t});if(!o.resolved)return;t=o.value}let i=new zI.FernAvailabilityExtension({node:t,breadcrumbs:r,context:this}).convert();if(i!=null)return{status:i,message:void 0};if(t.deprecated===!0)return{status:tv.Deprecated,message:void 0}}getNamespacedSchemaId(t){if(this.namespace==null)return t;let r=`${this.namespace}:`;return t.startsWith(r)?t:`${r}${t}`}getRawSchemaId(t){if(this.namespace==null)return t;let r=`${this.namespace}:`;return t.startsWith(r)?t.slice(r.length):t}getTypeIdFromSchemaReference(t){let r=t.$ref.match(/\/schemas\/(.+)$/);if(!(!r||!r[1]))return this.getNamespacedSchemaId(r[1])}getRawSchemaNameFromReference(t){let r=t.$ref.match(/\/schemas\/([^/]+)/);if(!(!r||!r[1]))return r[1]}createNamedTypeReference(t,r){return Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(t),typeId:this.getNamespacedSchemaId(t),displayName:r,default:void 0,inline:!1})}typeReferenceToDeclaredTypeName(t){if(t.type==="named")return{typeId:t.typeId,fernFilepath:{allParts:[],packagePath:[],file:void 0},name:t.name,displayName:t.displayName}}removeSchemaFromInlinedTypes({id:t,inlinedTypes:r}){let n=this.getNamespacedSchemaId(t);return Object.fromEntries(Object.entries(r).filter(([i])=>i!==n))}static maybeTrimPrefix(t,r){return t.startsWith(r)?t.slice(r.length):t}generateUniqueName({prefix:t,existingNames:r}){if(!r.includes(t))return t;let n=0;for(;r.includes(`${t}_${n}`);)n++;return`${t}_${n}`}isReferenceObject(t){return typeof t=="object"&&t!==null&&"$ref"in t}isExternalReference(t){return typeof t=="string"&&(t.startsWith("http://")||t.startsWith("https://"))}isReferenceObjectWithIdentifier(t){return this.isReferenceObject(t)&&("title"in t||"name"in t||"messageId"in t||"summary"in t)}isExampleWithSummary(t){return typeof t=="object"&&t!=null&&"summary"in t&&typeof t.summary=="string"&&t.summary.length>0}isExampleWithValue(t){return typeof t=="object"&&t!=null&&"value"in t}isOptional(t){return t.type==="container"&&t.container.type==="optional"}isNullable(t){return t.type==="container"&&t.container.type==="nullable"}isList(t){return t.type==="container"&&t.container.type==="list"}isFile(t){return t.type==="primitive"&&t.primitive.v2?.type==="string"&&t.primitive.v2.validation?.format==="binary"}getAsString(t){if(typeof t=="string")return t}getAsInteger(t){if(typeof t=="number"&&Number.isInteger(t))return t}getAsNumber(t){if(typeof t=="number")return t}getAsBoolean(t){if(typeof t=="boolean")return t}getAsArray(t){if(Array.isArray(t))return t}getAsObject(t){if(typeof t=="object"&&t!==null&&!Array.isArray(t))return t}getGroup({groupParts:t,namespace:r}){let n=[];return r!=null&&n.push(r),n.push(...t??[]),n}isObjectSchemaType(t){return t.type==="object"||t.properties!=null}};var _a=class{breadcrumbs;context;constructor(t){this.breadcrumbs=t.breadcrumbs,this.context=t.context}getExtensionValue(t,r){if(typeof t!="object"||t==null)return;let n=t[this.key];if(n!=null)return n;if(r!=null)return t[r]}};Ci();var zI={};X(zI,{AudienceExtension:()=>jVe,FernAvailabilityExtension:()=>mmr,FernEnumExtension:()=>MVe,FernIgnoreExtension:()=>iPe,FernOptionalExtension:()=>hmr,FernTypeExtension:()=>bmr,FernTypeNameExtension:()=>Emr,SdkGroupNameExtension:()=>gmr,SdkMethodNameExtension:()=>Amr,ServerFromOperationNameExtension:()=>ymr});var jVe=class extends _a{operation;key="x-fern-audiences";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];if(r.length!==0)return{audiences:r}}};var mmr=class extends _a{node;key="x-fern-availability";constructor({breadcrumbs:t,node:r,context:n}){super({breadcrumbs:t,context:n}),this.node=r}convert(){let t=this.getExtensionValue(this.node);if(t==null||typeof t!="string")return;switch(t.toUpperCase().replace(/[-_\s]/g,"_")){case"IN_DEVELOPMENT":return tv.InDevelopment;case"PRE_RELEASE":case"BETA":return tv.PreRelease;case"GENERAL_AVAILABILITY":case"GA":return tv.GeneralAvailability;case"DEPRECATED":return tv.Deprecated;default:return}}};var z5p=mt.object({snake:mt.string().optional(),camel:mt.string().optional(),screamingSnake:mt.string().optional(),pascal:mt.string().optional()}),V5p=mt.object({description:mt.string().optional(),name:mt.string().optional(),casing:z5p.optional()}),Lpa=mt.record(V5p);var MVe=class extends _a{schema;key="x-fern-enum";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(t==null)return;let r=Lpa.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-enum extension: ${r.error.message}`,path:this.breadcrumbs});return}return r.data}};var iPe=class extends _a{operation;key="x-fern-ignore";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-ignore",path:this.breadcrumbs});return}return t}}};var hmr=class extends _a{parameter;key="x-fern-optional";constructor({breadcrumbs:t,parameter:r,context:n}){super({breadcrumbs:t,context:n}),this.parameter=r}convert(){let t=this.getExtensionValue(this.parameter);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-optional",path:this.breadcrumbs});return}return t}}};var gmr=class extends _a{operation;key="x-fern-sdk-group-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];if(r.length!==0)return{groups:r}}};var Amr=class extends _a{operation;key="x-fern-sdk-method-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null&&typeof t=="string")return{methodName:t}}};var ymr=class extends _a{operation;key="x-fern-server-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation,"x-name");if(!(t==null||typeof t!="string"))return t}};var bmr=class extends _a{schema;key="x-fern-type";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(t!=null&&typeof t=="string")return t}};var Emr=class extends _a{schema;key="x-fern-type-name";constructor({breadcrumbs:t,schema:r,context:n}){super({breadcrumbs:t,context:n}),this.schema=r}convert(){let t=this.getExtensionValue(this.schema);if(typeof t=="string")return t}};var z6=class extends Ki{ir;audiences;irGraph;constructor({breadcrumbs:t=[],context:r,audiences:n}){super({breadcrumbs:t,context:r}),this.audiences=n,this.irGraph=new tOe(n),this.ir={auth:{docs:void 0,requirement:Gt.AuthSchemesRequirement.All,schemes:[]},selfHosted:!1,types:{},services:{},errors:{},webhookGroups:{},websocketChannels:void 0,headers:[],idempotencyHeaders:[],apiVersion:void 0,apiDisplayName:void 0,apiDocs:void 0,basePath:void 0,pathParameters:[],errorDiscriminationStrategy:Gt.ErrorDiscriminationStrategy.statusCode(),variables:[],serviceTypeReferenceInfo:{sharedTypes:[],typesReferencedOnlyByService:{}},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0,dynamic:void 0,environments:void 0,fdrApiDefinitionId:void 0,rootPackage:this.createPackage(),subpackages:{},sdkConfig:{hasFileDownloadEndpoints:!1,hasPaginatedEndpoints:!1,hasStreamingEndpoints:!1,isAuthMandatory:!0,platformHeaders:{language:"",sdkName:"",sdkVersion:"",userAgent:void 0}},audiences:void 0,generationMetadata:void 0,apiPlayground:void 0}}removeXFernIgnores({document:t,breadcrumbs:r=[]}){return Array.isArray(t)?t.filter((n,i)=>!new iPe({breadcrumbs:[...r,String(i)],operation:n,context:this.context}).convert()).map((n,i)=>this.removeXFernIgnores({document:n,breadcrumbs:[...r,String(i)]})):t!=null&&typeof t=="object"?Object.fromEntries(Object.entries(t).filter(([n,i])=>!new iPe({breadcrumbs:[...r,n],operation:i,context:this.context}).convert()).map(([n,i])=>[n,this.removeXFernIgnores({document:i,breadcrumbs:[...r,n]})])):t}finalizeIr(){let t=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.response?.body?.type==="streaming")),r=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.pagination!=null)),n=Object.values(this.ir.services).some(a=>a.endpoints.some(u=>u.response?.body?.type==="fileDownload"));this.ir.sdkConfig={...this.ir.sdkConfig,hasStreamingEndpoints:t,hasPaginatedEndpoints:r,hasFileDownloadEndpoints:n};let i={...this.ir,apiName:this.context.casingsGenerator.generateName(this.ir.apiDisplayName??""),constants:{errorInstanceIdKey:this.context.casingsGenerator.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})},audiences:this.audiences.type==="select"?this.audiences.audiences:void 0};this.irGraph.hasNoAudiences()||(i=this.filterIrForAudiences(i));let o=this.context.exampleGenerationArgs,s=ogi({ir:i,exampleGeneration:o});if(this.context.generateV1Examples){let a=sEt({ir:i,exampleGeneration:o});return{...i,...a,...s}}return{...i,...s}}filterIrForAudiences(t){let r=this.irGraph.getFilteredEndpoints(),n=this.irGraph.getFilteredChannels(),i=this.irGraph.getFilteredWebhooks();for(let o of Object.values(t.services)){let s=[];for(let a of o.endpoints)r.has(a.id)&&s.push(a);o.endpoints=s}return t.websocketChannels=Object.fromEntries(Object.entries(t.websocketChannels??{}).filter(([o])=>n.has(o))),t.webhookGroups=Object.fromEntries(Object.entries(t.webhookGroups).map(([o,s])=>{let a=s.filter(u=>u.id!=null&&i.has(u.id));return[o,a]})),t}async resolveAllExternalRefs({spec:t}){let r=[t];for(;r.length>0;){let n=r.shift();n!=null&&(Array.isArray(n)?await this.resolveExternalRefsInArray(n,r):typeof n=="object"&&await this.resolveExternalRefsInObject(n,r))}return t}async resolveExternalRefsInArray(t,r){for(let n=0;n<t.length;n++)t[n]=await this.resolveReferenceChain(t[n],r)}async resolveExternalRefsInObject(t,r){for(let[n,i]of Object.entries(t))t[n]=await this.resolveReferenceChain(i,r)}async resolveReferenceChain(t,r){let n=t;if(!this.context.isReferenceObject(n))return r.push(n),t;for(;this.context.isReferenceObject(n);){let i=this.context.isExternalReference(n.$ref),o=await this.context.resolveMaybeExternalReference(n);if(o.resolved){if(n=o.value,i)return n}else return t}return t}shouldAddServerToCollectedServers({server:t,currentServers:r,specType:n="openapi"}){return n==="openapi"?!r.some(i=>i.url===t.url&&"x-fern-server-name"in i&&"x-fern-server-name"in t&&i["x-fern-server-name"]===t["x-fern-server-name"]):!r.some(i=>i.url===t.url&&"name"in i&&"name"in t&&i.name===t.name)}addEndpointToIr({endpoint:t,audiences:r,endpointGroup:n,endpointGroupDisplayName:i,serviceName:o}){let s=this.context.getGroup({groupParts:n,namespace:this.context.namespace}),a=this.getOrCreatePackage({group:n}),u=[...s].map(p=>this.context.casingsGenerator.generateName(p)),c=u[u.length-1];a.service==null&&(a.service=o??`service_${s.map(p=>Un(p)).join("/")}`),this.ir.services[a.service]==null&&(this.ir.services[a.service]=this.createNewService({allParts:u,finalpart:c,endpointGroupDisplayName:i})),this.ir.services[a.service]?.endpoints.push(t);let l=this.ir.services[a.service];l!=null&&(this.irGraph.addEndpoint(l,t),this.irGraph.markEndpointForAudience(l.name,[t],r))}addWebhookToIr({webhook:t,operationId:r,audiences:n,group:i}){let o=i?.join(".")??r,s=this.getOrCreatePackage({group:i});this.ir.webhookGroups[o]==null&&(this.ir.webhookGroups[o]=[]),this.ir.webhookGroups[o].push(t),s.webhooks=o;let a=this.context.createFernFilepath();this.irGraph.addWebhook(a,t),n!=null&&this.irGraph.markWebhookForAudiences(a,t,n)}addWebsocketChannelToIr({websocketChannel:t,channelPath:r,audiences:n,websocketGroup:i}){let o=Un(i?.join(".")),s=Un(r),a=this.context.namespace?`${Un(this.context.namespace)}/`:"",u=o?`channel_${a}${o}`:`channel_${a}${s}`,c=i?this.getOrCreatePackage({group:i}):this.getOrCreatePackage({group:[s]});this.ir.websocketChannels={...this.ir.websocketChannels,[u]:t},u!==""?c.websocket==null&&(c.websocket=u):this.ir.rootPackage.websocket="";let l=this.context.createFernFilepath();this.irGraph.addChannel(l,u,t),n!=null&&this.irGraph.markChannelForAudiences(l,u,n)}addAuthToIR(t){this.ir.auth=t}addErrorsToIr(t){this.ir.errors=t;for(let r of Object.values(t))this.irGraph.addError(r)}addGlobalHeadersToIr(t){this.ir.headers=t}addEnvironmentsToIr({environmentConfig:t,audiences:r}){if(this.ir.environments=t,r!=null)for(let[n,i]of Object.entries(t??{}))r[n]!=null&&this.irGraph.markEnvironmentForAudiences(i,r[n])}addTypeToRootPackage(t){this.ir.rootPackage.types.push(t)}addSchemaOutputToIr(t,r){let{convertedSchema:n,inlinedTypes:i}=r,o=this.context.getNamespacedSchemaId(t),a=Object.keys(i).some(u=>u===o)?`${o}Wrapper`:o;this.addTypeToPackage(a),this.addTypesToIr({...i,[a]:n})}addTypeToPackage(t){let r=this.context.getGroup({groupParts:[],namespace:this.context.namespace});this.getOrCreatePackage({group:r}).types.push(t)}addTypesToIr(t){Object.assign(this.ir.types,Object.fromEntries(Object.entries(t).map(([r,n])=>[r,n.typeDeclaration])));for(let r of Object.values(t))this.irGraph.addType({declaredTypeName:r.typeDeclaration.name,descendantTypeIds:r.typeDeclaration.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:r.propertiesByAudience,descendantFilepaths:new Set}),this.irGraph.markTypeForAudiences(r.typeDeclaration.name,r.audiences)}updateEndpointsWithDefaultUrl(t){if(t!=null)for(let r of Object.values(this.ir.services))for(let n of r.endpoints)n.baseUrl==null&&(n.baseUrl=t)}createNewService({allParts:t,finalpart:r,endpointGroupDisplayName:n}){return{name:{fernFilepath:{allParts:t,packagePath:t.slice(0,-1),file:r}},displayName:n,basePath:vy(""),headers:[],pathParameters:[],availability:void 0,endpoints:[],transport:void 0,encoding:void 0,audiences:void 0}}createPackage(t={}){return{fernFilepath:this.context.createFernFilepath(t),service:void 0,types:[],errors:[],subpackages:[],docs:void 0,webhooks:void 0,websocket:void 0,hasEndpointsInTree:!1,navigationConfig:void 0}}getOrCreatePackage({group:t}){let r=[];if(this.context.namespace!=null&&r.push(this.context.namespace),r.push(...(t??[]).map(i=>Un(i))),r.length==0)return this.ir.rootPackage;let n=this.ir.rootPackage;for(let i=0;i<r.length;i++){let o=r[i]??"",a=`subpackage_${r.slice(0,i+1).join("/")}`;this.ir.subpackages[a]==null&&(this.ir.subpackages[a]={name:this.context.casingsGenerator.generateName(o),displayName:void 0,...this.createPackage({name:o})});let u=this.ir.subpackages[a];n.subpackages.includes(a)||n.subpackages.push(a),n=u}return n}};var Wf={};X(Wf,{AbstractConverters:()=>WIi,ExampleConverter:()=>iE,SchemaConverters:()=>GIi,ServersConverter:()=>RQ});var WIi={};X(WIi,{AbstractMediaTypeObjectConverter:()=>wmr,AbstractParameterConverter:()=>Cmr});Ci();St();var q5p=/^literal<\s*(?:"(.*)"|(true|false))\s*>$/;function G5p(e){return e.type==="array"||e.properties||e.oneOf||e.anyOf||e.allOf||e.additionalProperties?!1:!!(e.type==="string"||e.type==="number"||e.type==="integer"||e.type==="boolean"||e.const!==void 0||Array.isArray(e.enum)&&e.enum.length>0)}function Upa(e){if(e.const!==void 0)return e.const;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0]}var iE=class e extends Ki{MAX_DEPTH=12;EXAMPLE_STRING=Ai.STRING;EXAMPLE_NUMBER=Ai.DOUBLE;EXAMPLE_BOOLEAN=Ai.BOOLEAN;EXAMPLE_INTEGER=Ai.INT;EXAMPLE_DATE=Ai.DATE;EXAMPLE_DATE_TIME=Ai.DATE_TIME;schema;example;depth;exampleGenerationStrategy;generateOptionalProperties;seenRefs;constructor({breadcrumbs:t,context:r,schema:n,example:i,depth:o=0,exampleGenerationStrategy:s,generateOptionalProperties:a=!1,seenRefs:u=new Set}){super({breadcrumbs:t,context:r}),this.example=i,this.schema=n,this.depth=o,this.exampleGenerationStrategy=s,this.generateOptionalProperties=a,this.seenRefs=u}convert(){if(this.depth>this.MAX_DEPTH)return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:typeof this.example<"u"?this.example:{},errors:[]};if(this.context.isReferenceObject(this.schema)){let n=this.schema.$ref;if(this.seenRefs.has(n))return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}}let t=this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(t==null)return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:"Schema is not resolvable",path:this.breadcrumbs}]};if(typeof t!="object")return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Schema should be an object: ${JSON.stringify(t,null,2)}`,path:this.breadcrumbs}]};if("nullable"in t&&t.nullable===!0&&this.example===null)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let r=this.maybeConvertLiteralFernType(t);return r??(Array.isArray(t.type)?this.convertSchemaTypeArray({resolvedSchema:t}):t.type=="null"?this.convertNull():t.type=="boolean"?this.convertBoolean():t.enum!=null?this.convertEnum(t):t.type=="number"?this.convertNumber():t.type=="string"?this.convertString():t.type=="integer"?this.convertInteger():t.type=="array"?this.convertArray({resolvedSchema:t}):"oneOf"in t&&t.oneOf!=null?this.convertOneOf({resolvedSchema:t}):"anyOf"in t&&t.anyOf!=null?this.convertAnyOf({resolvedSchema:t}):t.type=="object"||t.properties!=null||t.allOf!=null?this.convertObject({resolvedSchema:t}):typeof t=="object"&&Object.keys(t).length===0?{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Unsupported schema type: ${JSON.stringify(t,null,2)}`,path:this.breadcrumbs}]})}convertNull(){let t=this.example===null;return t?{isValid:t,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[{message:`Example is not null: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertBoolean(){let t=typeof this.example=="boolean";if(t)return{isValid:t,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs})?.default:this.schema.default,n=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs})?.const:this.schema.const;return typeof r=="boolean"||typeof n=="boolean"?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n??r,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_BOOLEAN,errors:[{message:`Example is not a boolean: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertEnum(t){let r=t.enum?.includes(this.example)??!1;if(r)return{isValid:r,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let n=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;return n!==void 0&&t.enum?.includes(n)?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n,errors:[]}:{isValid:r,coerced:!1,usedProvidedExample:!1,validExample:t.enum?.[0],errors:[{message:`Example is not one of the allowed enum values: ${JSON.stringify(t.enum,null,2)}`,path:this.breadcrumbs}]}}convertNumber(){if(typeof this.example=="number")return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};let t=Number(this.example);if(!isNaN(t))return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:t,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0}):this.schema,n=r?.default;return typeof n=="number"?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.adjustNumberToConstraints(this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_NUMBER,r),errors:[{message:`Example is not a number: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}adjustNumberToConstraints(t,r){if(r==null)return this.context.logger.debug("[ExampleConverter.adjustNumberToConstraints] Schema object is null, returning original number","number:",t.toString()),t;let{minimum:n,maximum:i,exclusiveMinimum:o,exclusiveMaximum:s}=r,a;o!=null?typeof o=="boolean"?a=n!=null?n+Math.max(Number.EPSILON,Math.abs(n)*1e-10):void 0:a=o+Math.max(Number.EPSILON,Math.abs(o)*1e-10):n!=null&&(a=n);let u;return s!=null?typeof s=="boolean"?u=i!=null?i-Math.max(Number.EPSILON,Math.abs(i)*Number.EPSILON):void 0:u=s-Math.max(Number.EPSILON,Math.abs(s)*Number.EPSILON):i!=null&&(u=i),a!==void 0&&u!==void 0?(t<a||t>u)&&(t=a+(u-a)/2):a!==void 0&&t<a?t=a+Math.abs(a*.1):u!==void 0&&t>u&&(t=u-Math.abs(u*.1)),Number(Number(t).toPrecision(3))}convertString(){if(typeof this.example=="string")return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};if(typeof this.example!="object"&&!Array.isArray(this.example)&&this.example!=null)return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:String(this.example),errors:[]};let t=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;if(typeof t=="string")return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:t,errors:[]};let r=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0}):this.schema,n=r?.format==="date"?this.EXAMPLE_DATE:r?.format==="date-time"?this.EXAMPLE_DATE_TIME:this.EXAMPLE_STRING;return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??n,errors:[{message:`Example cannot be converted to string: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertInteger(){if(typeof this.example=="number"&&Number.isInteger(this.example))return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:this.example,errors:[]};if(typeof this.example=="string"){let r=Number(this.example);if(!isNaN(r)&&Number.isInteger(r))return{isValid:!0,coerced:!0,usedProvidedExample:!0,validExample:r,errors:[]}}let t=this.context.isReferenceObject(this.schema)?this.context.resolveMaybeReference({schemaOrReference:this.schema,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0})?.default:this.schema.default;return typeof t=="number"&&Number.isInteger(t)?{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:t,errors:[]}:{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:this.maybeResolveSchemaExample(this.schema)??this.EXAMPLE_INTEGER,errors:[{message:`Example is not an integer: ${JSON.stringify(this.example,null,2)}`,path:this.breadcrumbs}]}}convertArray({resolvedSchema:t}){if(t.type!="array")return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};t.items==null&&(t.items={type:"string"});let r=this.example==null,n=this.example??t.example,o=(Array.isArray(n)?n:[n]).map(u=>new e({breadcrumbs:[...this.breadcrumbs,"items"],context:this.context,schema:t.items,example:u,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()),s=o.every(u=>u?.isValid??!1)&&!r,a=!r&&o.some(u=>u.usedProvidedExample);return{isValid:s,coerced:!1,usedProvidedExample:a,validExample:o.map(u=>u.validExample),errors:s?[]:o.flatMap(u=>u.errors)}}convertObject({resolvedSchema:t}){if(t.type=="object"&&t.properties==null&&t.allOf==null)return{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example??{},errors:[]};let r=typeof this.example!="object"||this.example==null?{}:this.example,n=Object.entries(t.properties??{}).map(([p,d])=>{if(typeof d!="object")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if(this.isDeprecatedProperty(d)&&!this.isRequiredProperty({key:p,resolvedSchema:t}))return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("readOnly"in d&&d.readOnly===!0&&"writeOnly"in d&&d.writeOnly===!0)return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("readOnly"in d&&d.readOnly===!0&&this.exampleGenerationStrategy==="request")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};if("writeOnly"in d&&d.writeOnly===!0&&this.exampleGenerationStrategy==="response")return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}};let f=!(p in r)||!("nullable"in d)&&r[p]==null||"nullable"in d&&d.nullable===!0&&r[p]===void 0,m=!t.required?.includes(p);if(f&&m){if(this.example===void 0&&this.generateOptionalProperties){let h=this.maybeResolveSchemaExample(d),g=new e({breadcrumbs:[...this.breadcrumbs,p],context:this.context,schema:d,example:h,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()});return{key:p,result:g.convert()}}return{key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:void 0,errors:[]}}}else{let h=r[p],g=h!==void 0?h:this.maybeResolveSchemaExample(d),b=new e({breadcrumbs:[...this.breadcrumbs,p],context:this.context,schema:d,example:g,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();return{key:p,result:b}}}),i=(t.allOf??[]).map((p,d)=>{let f=this.context.resolveMaybeReference({schemaOrReference:p,breadcrumbs:[...this.breadcrumbs,`allOf[${d}]`],skipErrorCollector:!0});return f&&this.isConstraintOnlySchema(f)?{isValid:!0,coerced:!1,usedProvidedExample:this.example!==void 0,validExample:this.example,errors:[]}:new e({breadcrumbs:[...this.breadcrumbs,`allOf[${d}]`],context:this.context,schema:{...t,...p,allOf:void 0},example:this.example,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()}),o=this.example!==void 0&&(n.some(({result:p})=>p.usedProvidedExample)||i.some(p=>p.usedProvidedExample)),s=Object.fromEntries(n.map(({key:p,result:d})=>[p,d.validExample]).filter(([p,d])=>d!==void 0));for(let p of i)if(typeof p.validExample=="object"&&p.validExample!==null){let d=p.validExample;s={...s,...Object.fromEntries(Object.entries(d).filter(([f,m])=>m!==void 0))}}let a=[],u=this.collectAllPropertyKeys(t),c=Object.keys(r).filter(p=>!u.has(p));if(c.length>0)if(t.additionalProperties===!1)c.forEach(p=>{let d=[...this.breadcrumbs,p].join("."),f={message:`Found unexpected property '${p}' in example. This property does not exist in the schema${d?` at path: ${d}`:""}`,path:[...this.breadcrumbs,p]};a.push({key:p,result:{isValid:!1,coerced:!1,usedProvidedExample:!0,validExample:void 0,errors:[f]}})});else if(t.additionalProperties===!0||t.additionalProperties===void 0)c.forEach(p=>{a.push({key:p,result:{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:r[p],errors:[]}})});else{let p=t.additionalProperties;c.forEach(d=>{let m=new e({breadcrumbs:[...this.breadcrumbs,d],context:this.context,schema:p,example:r[d],depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();a.push({key:d,result:m})})}for(let{key:p,result:d}of a)d.validExample!==void 0&&s[p]===void 0&&(s[p]=d.validExample);let l=n.every(p=>p.result.isValid)&&i.every(p=>p.isValid)&&a.every(({result:p})=>p.isValid);if(Object.keys(s).length===0){let p=i.find(d=>d.validExample!==void 0&&(typeof d.validExample!="object"||d.validExample===null));p&&(s=p.validExample)}return{isValid:l,coerced:!1,usedProvidedExample:o,validExample:s,errors:[...n.flatMap(({result:p})=>p.errors),...i.flatMap(p=>p.errors),...a.flatMap(({result:p})=>p.errors)]}}convertSchemaTypeArray({resolvedSchema:t}){if(!Array.isArray(t.type))return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};if(t.type.length===1)return new e({breadcrumbs:this.breadcrumbs,context:this.context,schema:{...t,type:t.type[0]},example:this.example,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();let r=t.type.map((a,u)=>new e({breadcrumbs:[...this.breadcrumbs,`type[${u}]`],context:this.context,schema:{...t,type:a},example:this.example,depth:this.depth,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert()),n=r.some(a=>a?.isValid??!1),o=r.find(a=>a.isValid)?.validExample??r[0]?.validExample??null,s=r.some(a=>a.usedProvidedExample);return{isValid:n,coerced:!1,usedProvidedExample:s,validExample:o,errors:n?[]:r.flatMap(a=>a?.errors??[])}}convertUnion({resolvedSchema:t,unionType:r}){let n=r==="oneOf"?t.oneOf:t.anyOf;if(!(r in t)||n==null)return{isValid:!1,coerced:!1,usedProvidedExample:!1,validExample:null,errors:[]};let i=this.example??this.maybeResolveSchemaExample(t);if(this.example===void 0){let d=[];for(let m of n){if(!m)continue;let h=this.context.resolveMaybeReference({schemaOrReference:m,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});h&&d.push(h)}if(d.length>0&&d.every(m=>G5p(m))){let m=d.findIndex(h=>Upa(h)!==void 0);if(m!==-1){let h=n[m],g=d[m];if(h&&g){let A=Upa(g),v=new e({breadcrumbs:[...this.breadcrumbs,`${r}[${m}]`],context:this.context,schema:r==="oneOf"?{...t,...h,oneOf:void 0}:h,example:A,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();if(v.isValid)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:v.validExample,errors:[]}}}}}let o=[],s=null,a=null;for(let d=0;d<n.length;d++){let f=n[d];if(!f)continue;let m=r==="oneOf"?{...t,...f,oneOf:void 0}:f,h=i??this.maybeResolveSchemaExample(m),A=new e({breadcrumbs:[...this.breadcrumbs,`${r}[${d}]`],context:this.context,schema:m,example:h,depth:this.depth+1,generateOptionalProperties:this.generateOptionalProperties,exampleGenerationStrategy:this.exampleGenerationStrategy,seenRefs:this.getMaybeUpdatedSeenRefs()}).convert();if(A.isValid&&!A.coerced&&A.usedProvidedExample)return{isValid:!0,coerced:!1,usedProvidedExample:!0,validExample:A.validExample,errors:[]};if(A.isValid&&!A.coerced&&this.example===void 0)return{isValid:!0,coerced:!1,usedProvidedExample:A.usedProvidedExample,validExample:A.validExample,errors:[]};o.push(A),A.isValid&&A.usedProvidedExample&&a===null&&(a=A),A.isValid&&s===null&&(s=A)}let u=a??s,c=u!==null,l=u?.validExample??o[0]?.validExample,p=u?.usedProvidedExample??!1;return{isValid:c,coerced:!1,usedProvidedExample:p,validExample:l,errors:c?[]:o.flatMap(d=>d.errors)}}convertOneOf({resolvedSchema:t}){return this.convertUnion({resolvedSchema:t,unionType:"oneOf"})}convertAnyOf({resolvedSchema:t}){return this.convertUnion({resolvedSchema:t,unionType:"anyOf"})}getMaybeUpdatedSeenRefs(){let t=new Set(this.seenRefs);return this.context.isReferenceObject(this.schema)&&t.add(this.schema.$ref),t}maybeResolveSchemaExample(t){if("example"in t)return t.example;if("examples"in t){let n=t.examples;if(Array.isArray(n)&&n.length>0)return n[0];if(n!=null&&typeof n=="object")return Object.values(n)[0]}let r=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(r!=null){if("example"in r)return r.example;if("examples"in r){let n=r.examples;return Array.isArray(n)&&n.length>0?n[0]:Object.values(n??{})[0]}}}maybeConvertLiteralFernType(t){let r=t["x-fern-type"];if(typeof r!="string")return;let n=r.match(q5p);if(n!=null){if(n[1]!=null)return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n[1],errors:[]};if(n[2]!=null)return{isValid:!0,coerced:!1,usedProvidedExample:!1,validExample:n[2]==="true",errors:[]}}}isConstraintOnlySchema(t){if(t.type!==void 0||t.properties!==void 0||t.allOf!==void 0||t.oneOf!==void 0||t.anyOf!==void 0||"items"in t||t.additionalProperties!==void 0||t.enum!==void 0||t.const!==void 0)return!1;let r=new Set(["required","description","title","deprecated","readOnly","writeOnly","nullable","example","examples","default","minLength","maxLength","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","uniqueItems","pattern","format"]),n=Object.keys(t);return n.length>0&&n.every(i=>r.has(i))}isDeprecatedProperty(t){return t!=null&&"availability"in t&&t.availability==="deprecated"}isRequiredProperty({key:t,resolvedSchema:r}){return r.required?.includes(t)??!1}collectAllPropertyKeys(t,r=new Set){let n=new Set;if(t.properties)for(let i of Object.keys(t.properties))n.add(i);for(let i of t.allOf??[]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}for(let i of[...t.oneOf??[],...t.anyOf??[]]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}return n}};var GIi={};X(GIi,{ArraySchemaConverter:()=>VVe,EnumSchemaConverter:()=>Dme,ObjectSchemaConverter:()=>UVe,OneOfSchemaConverter:()=>oPe,PrimitiveSchemaConverter:()=>zVe,SchemaConverter:()=>Rme,SchemaOrReferenceConverter:()=>ZS});Ci();function zpa(e){return Q0({type:e,_default:void 0,validation:void 0,visitor:{primitive:t=>{switch(t.v1){case"BASE_64":return Fr.primitive({v1:"BASE_64",v2:Qn.base64({})});case"BOOLEAN":return Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})});case"DATE":return Fr.primitive({v1:"DATE",v2:Qn.date({})});case"DATE_TIME":return Fr.primitive({v1:"DATE_TIME",v2:Qn.dateTime({})});case"DATE_TIME_RFC_2822":return Fr.primitive({v1:"DATE_TIME_RFC_2822",v2:Qn.dateTimeRfc2822({})});case"FLOAT":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:void 0,validation:void 0})});case"DOUBLE":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:void 0,validation:void 0})});case"UINT":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:void 0,validation:void 0})});case"UINT_64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:void 0,validation:void 0})});case"INTEGER":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:void 0,validation:void 0})});case"LONG":return Fr.primitive({v1:"LONG",v2:Qn.long({default:void 0,validation:void 0})});case"STRING":return Fr.primitive({v1:"STRING",v2:Qn.string({default:void 0,validation:void 0})});case"UUID":return Fr.primitive({v1:"UUID",v2:Qn.uuid({})});case"BIG_INTEGER":return Fr.primitive({v1:"BIG_INTEGER",v2:Qn.bigInteger({default:void 0})});default:return}},unknown:()=>Fr.unknown(),map:({keyType:t,valueType:r})=>{if(!(t==null||r==null))return Fr.container(Vs.map({keyType:t,valueType:r}))},list:t=>{if(t!=null)return Fr.container(Vs.list(t))},optional:t=>{if(t!=null)return Fr.container(Vs.optional(t))},nullable:t=>{if(t!=null)return Fr.container(Vs.nullable(t))},set:t=>{if(t!=null)return Fr.container(Vs.set(t))},literal:t=>Fr.container(Vs.literal(t._visit({string:r=>Pw.string(r),boolean:r=>Pw.boolean(r),_other:()=>{throw new Error("Unexpected literal type")}}))),named:()=>{}}})}var Dme=class extends Ki{schema;maybeFernEnum;forwardCompatible;constructor({context:t,breadcrumbs:r,schema:n,maybeFernEnum:i,forwardCompatible:o}){super({context:t,breadcrumbs:r}),this.schema=n,this.maybeFernEnum=i,this.forwardCompatible=o??!1}convert(){if(!this.schema.enum)return;let r=this.schema.enum.filter(i=>typeof i=="string"||typeof i=="number").map(i=>{let o=i.toString(),s=this.maybeFernEnum?.[o],a=s?.name??o;return{name:this.context.casingsGenerator.generateNameAndWireValue({name:a,wireValue:o}),docs:s?.description,availability:void 0,casing:s?.casing}});if(r.length===0){this.context.errorCollector.collect({message:`Received enum schema with no valid values: ${JSON.stringify(this.schema)}`,path:this.breadcrumbs});return}let n=this.context.getAsString(this.schema.default);return{type:Ha.enum({default:n!=null?r.find(i=>i.name.wireValue===n):void 0,values:r,forwardCompatible:this.forwardCompatible||void 0})}}};var vmr=class extends Ki{schemaOrReferenceOrBoolean;constructor({context:t,breadcrumbs:r,schemaOrReferenceOrBoolean:n}){super({context:t,breadcrumbs:r}),this.schemaOrReferenceOrBoolean=n}convert(){let t=this.tryConvertUnknownMap();if(t!=null)return t;let r=this.tryConvertTypedMap();if(r!=null)return r}tryConvertUnknownMap(){if(typeof this.schemaOrReferenceOrBoolean=="boolean"){let t=Fr.container(Vs.map({keyType:Ki.STRING,valueType:Fr.unknown()}));return{type:Ha.alias({aliasOf:t,resolvedType:t}),referencedTypes:new Set,inlinedTypes:{}}}}tryConvertTypedMap(){if(typeof this.schemaOrReferenceOrBoolean=="boolean")return;let r=new ZS({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReference:this.schemaOrReferenceOrBoolean}).convert();if(r!=null){let n=Fr.container(Vs.map({keyType:Ki.STRING,valueType:r.type})),i=new Set;for(let o of r.schema?.typeDeclaration.referencedTypes??[])i.add(o);for(let o of Object.keys(r.inlinedTypes))i.add(o);return{type:Ha.alias({aliasOf:n,resolvedType:n}),referencedTypes:i,inlinedTypes:r.inlinedTypes}}}};St();function LVe({properties:e,required:t,breadcrumbs:r,context:n,errorCollector:i}){let o=[],s={},a={},u=new Set;for(let[c,l]of Object.entries(e??{})){let p=[...r,"properties",c];if(typeof l!="object"){i.collect({message:`Schema property ${c} should be an object`,path:p});continue}let d=$5p(r,l,n)??n.convertBreadcrumbsToName(p),f="nullable"in l?l.nullable:!1,h=new ZS({context:n,breadcrumbs:p,schemaOrReference:l,schemaIdOverride:d,wrapAsOptional:!t.includes(c),wrapAsNullable:f}).convert();if(h!=null){o.push({name:n.casingsGenerator.generateNameAndWireValue({name:c,wireValue:c}),valueType:h.type,docs:l.description,availability:h.availability,propertyAccess:n.getPropertyAccess(l),v2Examples:h.schema?.typeDeclaration?.v2Examples??W5p({propertySchema:l,breadcrumbs:p,context:n,propertyId:d})}),s={...s,...h.inlinedTypes},h.schema?.typeDeclaration.referencedTypes!=null&&h.schema.typeDeclaration.referencedTypes.forEach(g=>{u.add(g)});for(let g of h.schema?.audiences??[])a[g]==null&&(a[g]=new Set),a[g].add(c)}}for(let c of Object.keys(s))u.add(c);return{convertedProperties:o,propertiesByAudience:a,inlinedTypesFromProperties:s,referencedTypes:u}}function W5p({propertySchema:e,breadcrumbs:t,context:r,propertyId:n}){let i=r.resolveMaybeReference({schemaOrReference:e,breadcrumbs:t,skipErrorCollector:!0}),o=r.getExamplesFromSchema({schema:i??void 0,breadcrumbs:t});if(o.length>0){let c={};for(let[l,p]of o.entries()){let d=r.resolveExample(p),f=`${n}_example_${l}`,m=new iE({breadcrumbs:t,context:r,schema:e,example:d}),{validExample:h}=m.convert();c[f]=h}return{userSpecifiedExamples:c,autogeneratedExamples:{}}}let s=`${n}_example_autogenerated`,a=new iE({breadcrumbs:t,context:r,schema:e,example:void 0,generateOptionalProperties:!0}),{validExample:u}=a.convert();return{userSpecifiedExamples:{},autogeneratedExamples:{[s]:u}}}function $5p(e,t,r){return r.isReferenceObject(t)?void 0:new zI.FernTypeNameExtension({breadcrumbs:e,schema:t,context:r}).convert()}var UVe=class extends Ki{schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){let t=typeof this.schema.additionalProperties=="boolean"&&this.schema.additionalProperties;if(!this.schema.properties&&!this.schema.allOf)return{type:Ha.object({properties:[],extends:[],extendedProperties:[],extraProperties:t}),propertiesByAudience:{},inlinedTypes:{},referencedTypes:new Set};let{convertedProperties:r,inlinedTypesFromProperties:n,referencedTypes:i,propertiesByAudience:o}=LVe({properties:this.schema.properties??{},required:this.schema.required??[],breadcrumbs:this.breadcrumbs,context:this.context,errorCollector:this.context.errorCollector}),s=[],a=i,u=this.schema.required!=null&&this.schema.required.length>0,c=n,l=o;for(let[p,d]of(this.schema.allOf??[]).entries()){let f=[...this.breadcrumbs,"allOf",p.toString()],m;if(this.context.isReferenceObject(d)){let E=this.context.resolveMaybeReference({schemaOrReference:d,breadcrumbs:f});if(E==null){this.context.logger.debug?.(`[ObjectSchemaConverter] allOf[${p}] reference could not be resolved. Skipping: ${JSON.stringify(d)}`);continue}if(m=E,typeof m.additionalProperties=="boolean"&&m.additionalProperties&&(t=!0),!u||Object.keys(m.properties??{}).every(I=>!this.schema.required?.includes(I))){this.addTypeReferenceToExtends({reference:d,breadcrumbs:f,extends_:s,referencedTypes:a});continue}}else m=d;typeof m.additionalProperties=="boolean"&&m.additionalProperties&&(t=!0);let h=m.oneOf??m.anyOf;if(h!=null&&m.type==null&&m.properties==null){let E=new Set(r.map(I=>I.name.wireValue));for(let[I,w]of h.entries()){let x=[...f,m.oneOf!=null?"oneOf":"anyOf",I.toString()],C=this.context.isReferenceObject(w)?this.context.resolveMaybeReference({schemaOrReference:w,breadcrumbs:x}):w;if(C==null)continue;let _={};for(let[V,H]of Object.entries(C.properties??{}))!this.context.isReferenceObject(H)&&"not"in H||(_[V]=H);let R=Object.keys(_).filter(V=>!E.has(V));if(R.length===0)continue;let U={};for(let V of R){let H=_[V];H!=null&&(U[V]=H,E.add(V))}let{convertedProperties:q,inlinedTypesFromProperties:z,referencedTypes:Y,propertiesByAudience:oe}=LVe({properties:U,required:[],breadcrumbs:x,context:this.context,errorCollector:this.context.errorCollector});r.push(...q),c={...c,...z},l={...l,...oe},Y.forEach(V=>{a.add(V)})}continue}let{convertedProperties:g,inlinedTypesFromProperties:A,referencedTypes:b,propertiesByAudience:v}=LVe({properties:m.properties??{},required:[...this.schema.required??[],...m.required??[]],breadcrumbs:f,context:this.context,errorCollector:this.context.errorCollector});r.push(...g),c={...c,...A},l={...l,...v},b.forEach(E=>{a.add(E)})}for(let p of Object.keys(c))a.add(p);return{type:Ha.object({properties:r,extends:s.map(p=>this.context.typeReferenceToDeclaredTypeName(p)).filter(ua),extendedProperties:[],extraProperties:t}),propertiesByAudience:l,referencedTypes:a,inlinedTypes:c}}addTypeReferenceToExtends({reference:t,breadcrumbs:r,extends_:n,referencedTypes:i}){let o=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:r});o.ok&&n.push(o.reference);let s=this.context.getTypeIdFromSchemaReference(t);s!=null&&i.add(s)}};var Imr=class extends _a{node;key="x-fern-discriminated";constructor({breadcrumbs:t,node:r,context:n}){super({breadcrumbs:t,context:n}),this.node=r}convert(){let t=this.getExtensionValue(this.node);if(t!=null&&typeof t=="boolean")return t}};var oPe=class extends Ki{schema;id;constructor({context:t,breadcrumbs:r,schema:n,id:i,inlinedTypes:o}){super({context:t,breadcrumbs:r}),this.schema=n,this.id=i}convert(){if(this.shouldConvertAsNullableSchemaOrReference())return this.convertAsNullableSchemaOrReference();if(new Imr({context:this.context,breadcrumbs:this.breadcrumbs,node:this.schema}).convert()===!1)return this.convertAsUndiscriminatedUnion();if(this.schema.discriminator!=null)return this.convertAsDiscriminatedUnion();if(this.context.settings.inferForwardCompatible){let n=this.convertAsOpenEndedEnum();if(n!=null)return n}return this.convertAsUndiscriminatedUnion()}convertAsOpenEndedEnum(){let t=this.schema.oneOf??this.schema.anyOf;if(t==null||t.length!==2)return;let r,n=!1;for(let u of t){let c;if(this.context.isReferenceObject(u)){let l=this.context.resolveReference({reference:u,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});l.resolved&&(c=l.value)}else c=u;c!=null&&(c.enum!=null&&c.enum.length>1&&(c.type==="string"||c.type==null)?r=c:c.type==="string"&&c.enum==null&&(n=!0))}if(r==null||!n)return;let o=new MVe({breadcrumbs:this.breadcrumbs,schema:r,context:this.context}).convert(),a=new Dme({context:this.context,breadcrumbs:this.breadcrumbs,schema:r,maybeFernEnum:o,forwardCompatible:!0}).convert();if(a!=null)return{...a,referencedTypes:new Set,inlinedTypes:{}}}filterDiscriminantFromSchema(t,r){if(t.properties==null||!(r in t.properties))return t;let{[r]:n,...i}=t.properties,o=t.required?.filter(s=>s!==r);return{...t,properties:i,required:o}}convertAsDiscriminatedUnion(){if(this.schema.discriminator==null)return;let t=this.schema.discriminator.propertyName,r=[],n=new Set,i={};for(let[c,l]of Object.entries(this.schema.discriminator.mapping??{})){let p=this.context.getTypeIdFromSchemaReference({$ref:l}),d=[...this.breadcrumbs,"discriminator","mapping",c],f=this.context.resolveReference({reference:{$ref:l},breadcrumbs:d}),m={$ref:l};f.resolved&&f.value.properties!=null&&t in f.value.properties&&(m=this.filterDiscriminantFromSchema(f.value,t));let h=new ZS({context:this.context,schemaOrReference:m,schemaIdOverride:p??void 0,breadcrumbs:d});p!=null&&n.add(p);let g=h.convert();if(g?.type!=null&&p!=null){for(let v of Object.keys(g?.inlinedTypes??{}))n.add(v);for(let v of g.schema?.typeDeclaration.referencedTypes??[])n.add(v);let A=this.context.casingsGenerator.generateNameAndWireValue({name:c,wireValue:c}),b=l.match(/\/schemas\/([^/]+)/)?.[1]??p;r.push({docs:void 0,discriminantValue:A,availability:g.availability,displayName:c,shape:Tw.samePropertiesAsObject({typeId:p,name:this.context.casingsGenerator.generateName(b),fernFilepath:{allParts:[],packagePath:[],file:void 0},displayName:c})}),i={...i,...g.inlinedTypes}}}let{convertedProperties:o,referencedTypes:s,inlinedTypesFromProperties:a}=LVe({properties:this.schema.properties??{},required:this.schema.required??[],breadcrumbs:this.breadcrumbs,context:this.context,errorCollector:this.context.errorCollector});n=new Set([...n,...s]);let u=[];for(let[c,l]of(this.schema.allOf??[]).entries()){let p=[...this.breadcrumbs,"allOf",c.toString()];if(this.context.isReferenceObject(l)){let d=this.context.convertReferenceToTypeReference({reference:l,breadcrumbs:p});if(d.ok){let m=this.context.typeReferenceToDeclaredTypeName(d.reference);m!=null&&u.push(m)}let f=this.context.getTypeIdFromSchemaReference(l);f!=null&&n.add(f);continue}}for(let c of Object.keys({...i,...a}))n.add(c);return{type:Ha.union({baseProperties:o,discriminant:this.context.casingsGenerator.generateNameAndWireValue({name:this.schema.discriminator.propertyName,wireValue:this.schema.discriminator.propertyName}),extends:u,types:r,discriminatorContext:void 0}),referencedTypes:n,inlinedTypes:{...i,...a}}}convertAsUndiscriminatedUnion(){if(!this.schema.oneOf&&!this.schema.anyOf||this.schema.anyOf?.length===0&&this.schema.oneOf?.length===0)return;let t=[],r=new Set,n={},i=[...this.schema.oneOf??[],...this.schema.anyOf??[]].filter(o=>!this.context.isReferenceObject(o));for(let[o,s]of[...(this.schema.oneOf??[]).entries(),...(this.schema.anyOf??[]).entries()]){if(this.context.isReferenceObject(s)){let d;if(this.context.isReferenceObjectWithIdentifier(s))d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:s.summary??s.title??s.name??s.messageId,displayNameOverrideSource:"reference_identifier"});else if(this.getDiscriminatorKeyForRef(s)!=null){let m=this.getDiscriminatorKeyForRef(s);d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:m,displayNameOverrideSource:"discriminator_key"})}else d=this.context.convertReferenceToTypeReference({reference:s,displayNameOverride:s.$ref.split("/").pop(),displayNameOverrideSource:"schema_identifier"});d.ok&&t.push({type:d.reference,docs:s.description});let f=this.context.getTypeIdFromSchemaReference(s);f!=null&&r.add(f);continue}let a=this.extendSubSchema(s),u=this.context.convertBreadcrumbsToName([`${this.id}_${o}`]),c=s.title,p=new Rme({context:this.context,id:u,nameOverride:c,breadcrumbs:[...this.breadcrumbs,`oneOf[${o}]`],schema:a??s}).convert();if(p!=null){let d=p.convertedSchema.typeDeclaration.shape;if(d.type==="alias"&&this.typeReferenceIsWrappedPrimitive(d.aliasOf))t.push({type:d.aliasOf,docs:s.description});else if(d.type==="object"&&d.properties.length===0&&d.extends.length===0)t.push({type:Fr.container(Vs.map({keyType:Ki.STRING,valueType:Fr.unknown()})),docs:s.description});else{t.push({type:this.context.createNamedTypeReference(u,c),docs:s.description});let f=this.context.getNamespacedSchemaId(u);n={...n,...p.inlinedTypes,[f]:p.convertedSchema}}p.convertedSchema.typeDeclaration.referencedTypes.forEach(f=>{r.add(f)})}}return{type:Ha.undiscriminatedUnion({members:t}),referencedTypes:r,inlinedTypes:n}}shouldConvertAsNullableSchemaOrReference(){return this.schema.oneOf!=null?this.schema.oneOf.some(t=>t&&typeof t=="object"&&"type"in t&&t.type==="null"):this.schema.anyOf!=null?this.schema.anyOf.some(t=>t&&typeof t=="object"&&"type"in t&&t.type==="null"):!1}removeNullFromOneOfOrAnyOf(){let t=this.schema.oneOf??this.schema.anyOf,r=this.schema.oneOf!=null?"oneOf":"anyOf";if(t==null)return;let n=t.filter(i=>!("type"in i&&i.type==="null"));if(n.length===0){this.context.errorCollector.collect({message:`Received ${r} schema with no valid non-null types`,path:this.breadcrumbs});return}return n.length===1?{...this.schema,[r]:void 0,...n[0]}:{...this.schema,[r]:n}}convertAsNullableSchemaOrReference(){let t=this.removeNullFromOneOfOrAnyOf();if(t==null)return;let n=new ZS({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReference:t}).convert();if(n==null)return;let i=this.wrapInNullable(n.type);return{type:Ha.alias({aliasOf:i,resolvedType:i}),referencedTypes:n.schema?.typeDeclaration.referencedTypes??new Set,inlinedTypes:n.inlinedTypes}}typeReferenceIsWrappedPrimitive(t){switch(t.type){case"container":return this.containerTypeIsWrappedPrimitive(t.container);case"named":return!1;case"primitive":return!0;case"unknown":return!0;default:return!1}}containerTypeIsWrappedPrimitive(t){switch(t.type){case"list":return this.typeReferenceIsWrappedPrimitive(t.list);case"map":return this.typeReferenceIsWrappedPrimitive(t.keyType)&&this.typeReferenceIsWrappedPrimitive(t.valueType);case"nullable":return this.typeReferenceIsWrappedPrimitive(t.nullable);case"optional":return this.typeReferenceIsWrappedPrimitive(t.optional);case"set":return this.typeReferenceIsWrappedPrimitive(t.set);case"literal":return!0;default:return!1}}wrapInNullable(t){return Fr.container(Vs.nullable(t))}mergeIntoObjectSchema(t,r){return{...t,properties:{...r,...t.properties??{}}}}extendSubSchema(t){if(Object.entries(this.schema.properties??{}).length===0)return t;if(t.type==="object")return this.mergeIntoObjectSchema(t,this.schema.properties??{});this.context.isObjectSchemaType(t)||this.context.errorCollector.collect({message:"Received additional object properties for oneOf/anyOf that are not objects",path:this.breadcrumbs})}getDiscriminatorKeyForRef(t){return Object.entries(this.schema.discriminator?.mapping??{}).find(([r,n])=>n===t.$ref)?.[0]}};var zVe=class extends Ki{schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){switch(this.schema.type){case"string":{let t=this.context.getAsString(this.schema.const);if(t!=null)return Fr.container(Vs.literal(Pw.string(t)));if(this.schema.format==="date-time-rfc-2822")return Fr.primitive({v1:Jo.DateTimeRfc2822,v2:Qn.dateTimeRfc2822({})});if(this.context.settings.typeDatesAsStrings===!1){if(this.schema.format==="date")return Fr.primitive({v1:Jo.Date,v2:Qn.date({})});if(this.schema.format==="date-time")return Fr.primitive({v1:Jo.DateTime,v2:Qn.dateTime({})})}return Fr.primitive({v1:"STRING",v2:Qn.string({default:this.context.getAsString(this.schema.default),validation:this.getStringValidation(this.schema)})})}case"number":switch(this.schema.format){case"double":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"float":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int32":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int64":return Fr.primitive({v1:"LONG",v2:Qn.long({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint32":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});default:return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})})}case"integer":switch(this.schema.format){case"double":return Fr.primitive({v1:"DOUBLE",v2:Qn.double({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"float":return Fr.primitive({v1:"FLOAT",v2:Qn.float({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int32":return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"int64":return Fr.primitive({v1:"LONG",v2:Qn.long({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint32":return Fr.primitive({v1:"UINT",v2:Qn.uint({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});case"uint64":return Fr.primitive({v1:"UINT_64",v2:Qn.uint64({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})});default:return Fr.primitive({v1:"INTEGER",v2:Qn.integer({default:this.context.getAsNumber(this.schema.default),validation:this.getNumberValidation(this.schema)})})}case"boolean":{let t=this.context.getAsBoolean(this.schema.const);return t!=null?Fr.container(Vs.literal(Pw.boolean(t))):Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:this.context.getAsBoolean(this.schema.default)})})}default:return}}getNumberValidation(t){let r=t.minimum,n=t.maximum,i,o;return typeof t.exclusiveMinimum=="boolean"?i=t.exclusiveMinimum:typeof t.exclusiveMinimum=="number"&&(r=t.exclusiveMinimum,i=!0),typeof t.exclusiveMaximum=="boolean"?o=t.exclusiveMaximum:typeof t.exclusiveMaximum=="number"&&(n=t.exclusiveMaximum,o=!0),{max:n,min:r,exclusiveMax:o,exclusiveMin:i,multipleOf:t.multipleOf}}getStringValidation(t){let r=t.format??(t.contentMediaType==="application/octet-stream"?"binary":void 0);return{minLength:t.minLength,maxLength:t.maxLength,pattern:t.pattern,format:r}}};var H5p=["description","example","title","default","deprecated","readOnly","writeOnly","xml","externalDocs","extensions"],Rme=class e extends Ki{schema;id;inlined;audiences;nameOverride;constructor({context:t,breadcrumbs:r,schema:n,id:i,inlined:o=!1,nameOverride:s}){super({context:t,breadcrumbs:r}),this.schema=n,this.id=i,this.inlined=o,this.nameOverride=s,this.audiences=this.context.getAudiences({operation:this.schema,breadcrumbs:this.breadcrumbs})??[]}convert(){let t=this.tryConvertFernTypeDeclaration();if(t!=null)return t;let r=this.tryConvertEnumSchema();if(r!=null)return r;let n=this.tryConvertSingularAllOfSchema();if(n!=null)return n;let i=this.tryConvertPrimitiveSchema();if(i!=null)return i;let o=this.tryConvertArraySchema();if(o!=null)return o;let s=this.tryConvertTypeArraySchema();if(s!=null)return s;let a=this.tryConvertOneOfAnyOfSchema();if(a!=null)return a;let u=this.tryConvertMapSchema();if(u!=null)return u;let c=this.tryConvertDiscriminatorMappingSchema();if(c!=null)return c;let l=this.tryConvertObjectAllOfSchema();if(l!=null)return l;let p=this.tryConvertUntypedSchema();if(p!=null)return p;this.context.errorCollector.collect({message:`Failed to convert schema object: ${JSON.stringify(this.schema,null,2)}`,path:this.breadcrumbs})}tryConvertEnumSchema(){if(!this.schema.enum?.length)return;let r=new zI.FernEnumExtension({breadcrumbs:this.breadcrumbs,schema:this.schema,context:this.context}).convert(),i=new Dme({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema,maybeFernEnum:r}).convert();if(i!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:i.type,referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertSingularAllOfSchema(){if(this.schemaOnlyHasAllowedKeys(["allOf","type","title"])&&this.schema.allOf?.length===1&&this.schema.allOf[0]!=null){let r=this.context.resolveMaybeReference({schemaOrReference:this.schema.allOf[0],breadcrumbs:this.breadcrumbs});if(r!=null){let i=new e({context:this.context,breadcrumbs:[...this.breadcrumbs,"allOf","0"],schema:r,id:this.id,inlined:!0}).convert();if(i?.convertedSchema.typeDeclaration?.shape.type!=="object")return i}}if(this.schemaOnlyHasAllowedKeys(["allOf","type","title"])&&Array.isArray(this.schema.allOf)&&this.schema.allOf.length>=1){let r={};for(let i of this.schema.allOf??[]){if(this.context.isReferenceObject(i))return;let o=i.oneOf??i.anyOf;if(o!=null&&i.type==null&&i.properties==null){let s={};for(let a of o){let u=this.context.isReferenceObject(a)?this.context.resolveMaybeReference({schemaOrReference:a,breadcrumbs:this.breadcrumbs}):a;if(u!=null)for(let[c,l]of Object.entries(u.properties??{}))!this.context.isReferenceObject(l)&&"not"in l||c in s||(s[c]=l)}if(Object.keys(s).length>0){let a=r.properties??{};r.properties={...a,...s}}continue}r=JNe(r,i,(s,a)=>{if(a===i)return s;if(Array.isArray(s)&&Array.isArray(a))return[...s,...a]})}return new e({context:this.context,breadcrumbs:this.breadcrumbs,schema:r,id:this.id,inlined:!0}).convert()}}tryConvertPrimitiveSchema(){let r=new zVe({context:this.context,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:r,resolvedType:r}),referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertArraySchema(){if(this.schema.type==="array"){let r=new VVe({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:r.typeReference,resolvedType:r.typeReference}),referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertTypeArraySchema(){if(Array.isArray(this.schema.type)&&this.schema.type.length>0)return this.schema.type.length===1?this.schema.type=this.schema.type[0]:(this.schema.oneOf=this.schema.type.map(t=>({type:t})),this.schema.type=void 0),this.convert()}tryConvertOneOfAnyOfSchema(){if(this.schema.oneOf!=null||this.schema.anyOf!=null){let r=new oPe({id:this.id,context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema,inlinedTypes:{}}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertMapSchema(){if((typeof this.schema.additionalProperties=="object"||typeof this.schema.additionalProperties=="boolean")&&this.schema.additionalProperties!=null&&!this.schema.properties&&!this.schema.allOf){if(typeof this.schema.additionalProperties=="boolean"&&this.schema.additionalProperties===!1)return;let r=new vmr({context:this.context,breadcrumbs:this.breadcrumbs,schemaOrReferenceOrBoolean:this.schema.additionalProperties}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:r.inlinedTypes}}}tryConvertDiscriminatorMappingSchema(){if(this.schema.discriminator?.mapping!=null&&Object.keys(this.schema.discriminator.mapping).length>0&&this.schema.oneOf==null&&this.schema.anyOf==null){let t={...this.schema,oneOf:Object.values(this.schema.discriminator.mapping).map(i=>({$ref:i}))},n=new oPe({id:this.id,context:this.context,breadcrumbs:this.breadcrumbs,schema:t,inlinedTypes:{}}).convert();if(n!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:n.type,referencedTypes:n.referencedTypes}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:n.inlinedTypes}}}tryConvertObjectAllOfSchema(){if(this.schema.type==="object"||this.schema.properties!=null||this.schema.allOf!=null){let r=new UVe({context:this.context,breadcrumbs:this.breadcrumbs,schema:this.schema}).convert();if(r!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:r.type,referencedTypes:r.referencedTypes}),audiences:this.audiences,propertiesByAudience:r.propertiesByAudience},inlinedTypes:r.inlinedTypes}}}tryConvertUntypedSchema(){if(this.isUntypedSchema())return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:Fr.unknown(),resolvedType:Fr.unknown()}),referencedTypes:new Set}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}tryConvertFernTypeDeclaration(){let r=new zI.FernTypeExtension({breadcrumbs:this.breadcrumbs,schema:this.schema,context:this.context}).convert();if(r==null)return;let n=zpa(r);if(n!=null)return{convertedSchema:{typeDeclaration:this.createTypeDeclaration({shape:Ha.alias({aliasOf:n,resolvedType:n}),referencedTypes:new Set,omitV2Examples:!0}),audiences:this.audiences,propertiesByAudience:{}},inlinedTypes:{}}}createTypeDeclaration({shape:t,referencedTypes:r,omitV2Examples:n}){return{name:this.convertDeclaredTypeName(),shape:t,autogeneratedExamples:[],userProvidedExamples:[],encoding:void 0,availability:this.context.getAvailability({node:this.schema,breadcrumbs:this.breadcrumbs}),docs:this.schema.description,referencedTypes:r,source:void 0,inline:this.inlined,v2Examples:n?void 0:this.convertSchemaExamples()}}convertDeclaredTypeName(){let t=this.context.getRawSchemaId(this.id);return{typeId:this.context.getNamespacedSchemaId(this.id),fernFilepath:this.context.createFernFilepath(),name:this.context.casingsGenerator.generateName(t),displayName:this.nameOverride}}schemaOnlyHasAllowedKeys(t){let r=[...H5p,...t];return Object.keys(this.schema).every(i=>r.includes(i))}isUntypedSchema(){return!!(this.schema&&typeof this.schema=="object"&&!("oneOf"in this.schema)&&!("anyOf"in this.schema)&&!("allOf"in this.schema)&&!("items"in this.schema)&&!("properties"in this.schema))}convertSchemaExamples(){let t={userSpecifiedExamples:{},autogeneratedExamples:{}},r=this.context.getExamplesFromSchema({schema:this.schema,breadcrumbs:this.breadcrumbs});if(r.length===0){let n=this.generateOrValidateExample({example:void 0,ignoreErrors:!0});return t.autogeneratedExamples={[`${this.id}_example_autogenerated`]:n},t}return t.userSpecifiedExamples=this.convertUserSpecifiedExamples(r),t}convertUserSpecifiedExamples(t){let r={};for(let[n,i]of t.entries()){let o=this.context.resolveExample(i),s=`${this.id}_example_${n}`,a=this.generateOrValidateExample({example:o,exampleName:s});r[s]=a}return r}generateOrValidateExample({example:t}){let r=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:this.schema,example:t}),{validExample:n}=r.convert();return n}};var ZS=class extends Ki{schemaOrReference;schemaIdOverride;wrapAsOptional;wrapAsNullable;constructor({context:t,breadcrumbs:r,schemaOrReference:n,schemaIdOverride:i,wrapAsOptional:o=!1,wrapAsNullable:s=!1}){super({context:t,breadcrumbs:r}),this.schemaOrReference=n,this.schemaIdOverride=i,this.wrapAsOptional=o,this.wrapAsNullable=s}convert(){let t=this.maybeConvertReferenceObject({schemaOrReference:this.schemaOrReference});if(t!=null)return t;let r=this.maybeConvertSingularAllOfReferenceObject();return r??this.convertSchemaObject({schema:this.schemaOrReference})}maybeConvertReferenceObject({schemaOrReference:t}){if(this.context.isReferenceObject(t)){let r=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:this.breadcrumbs});if(r.ok)return{type:this.wrapTypeReference(r.reference),inlinedTypes:r.inlinedTypes??{}}}}maybeConvertSingularAllOfReferenceObject(){if(this.context.isReferenceObject(this.schemaOrReference)||this.schemaOrReference.allOf==null||this.schemaOrReference.allOf.length!==1)return;let t=this.schemaOrReference.allOf[0];if(this.context.isReferenceObject(t)){let r=this.context.convertReferenceToTypeReference({reference:t,breadcrumbs:this.breadcrumbs});if(r.ok)return{type:this.wrapTypeReference(r.reference),inlinedTypes:{}}}}convertSchemaObject({schema:t}){let r=this.schemaIdOverride??this.context.convertBreadcrumbsToName(this.breadcrumbs),n=this.context.getNamespacedSchemaId(r),i=new Rme({context:this.context,breadcrumbs:this.breadcrumbs,schema:t,id:r}),o=this.context.getAvailability({node:t,breadcrumbs:this.breadcrumbs}),s=i.convert();if(s!=null){let a=s.convertedSchema.typeDeclaration.shape;return a.type==="alias"?{type:this.wrapTypeReference(a.aliasOf),schema:s.convertedSchema,inlinedTypes:s.inlinedTypes,availability:o}:{type:this.wrapTypeReference(this.context.createNamedTypeReference(r)),schema:s.convertedSchema,inlinedTypes:{...s.inlinedTypes,[n]:s.convertedSchema},availability:o}}}wrapTypeReference(t){return this.wrapAsOptional&&this.wrapAsNullable?this.wrapInOptional(this.wrapInNullable(t)):this.wrapAsOptional?this.wrapInOptional(t):this.wrapAsNullable?this.wrapInNullable(t):t}wrapInOptional(t){return Fr.container(Vs.optional(t))}wrapInNullable(t){return Fr.container(Vs.nullable(t))}};var VVe=class e extends Ki{static LIST_UNKNOWN=Fr.container(Vs.list(Fr.unknown()));schema;constructor({context:t,breadcrumbs:r,schema:n}){super({context:t,breadcrumbs:r}),this.schema=n}convert(){if(this.schema.items!=null){Array.isArray(this.schema.items)&&(this.schema.items={oneOf:this.schema.items});let r=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs,"items"],schemaOrReference:this.schema.items}).convert();if(r!=null){let n=new Set;for(let i of r.schema?.typeDeclaration.referencedTypes??[])n.add(i);return r.inlinedTypes!=null&&Object.values(r.inlinedTypes).forEach(i=>{i.typeDeclaration.referencedTypes.forEach(o=>{n.add(o)})}),{typeReference:Fr.container(Vs.list(r.type)),referencedTypes:n,inlinedTypes:r.inlinedTypes}}}return{typeReference:e.LIST_UNKNOWN,referencedTypes:new Set,inlinedTypes:{}}}};var wmr=class extends Ki{group;method;constructor({context:t,breadcrumbs:r,group:n,method:i}){super({context:t,breadcrumbs:r}),this.group=n,this.method=i}parseMediaTypeObject({mediaTypeObject:t,resolveSchema:r,contentType:n,schemaId:i}){if(t.schema==null)return;if(r){let u=this.context.resolveMaybeReference({schemaOrReference:t.schema,breadcrumbs:[...this.breadcrumbs,"content",n]});if(u==null)return;t.schema=u}let s=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs,"content",n,"schema"],schemaOrReference:t.schema,schemaIdOverride:i}).convert();if(s==null)return;let a=t.examples!=null?Object.fromEntries(Object.entries(t.examples).map(([u,c])=>{if(this.context.isReferenceObject(c)){let l=this.context.resolveReference({reference:c,breadcrumbs:[...this.breadcrumbs,"content",n,"examples"],skipErrorCollector:!0});return l.resolved?[u,l.value.value??l.value]:null}return[u,c.value??c]}).filter(u=>u!=null)):void 0;return{...s,examples:a}}parseMediaTypeSchemaOrReference({schemaOrReference:t,schemaId:r}){let i=new ZS({context:this.context,breadcrumbs:[...this.breadcrumbs],schemaOrReference:t,schemaIdOverride:r}).convert();if(i!=null)return{...i,examples:void 0}}getIdForExample({key:t,example:r,usedExampleNames:n}){if(this.context.isExampleWithSummary(r)){let i=r.summary;if(!n.has(i))return i;let o=`${i} (${t})`;return n.has(o)?t:o}return t}convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:r,exampleGenerationStrategy:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t?.schema,s=this.context.getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:this.breadcrumbs,defaultExampleName:`${[...this.group,this.method].join("_")}_example`}),a=new Set;for(let[u,c]of s){let l=this.context.resolveExampleWithValue(c),p=this.context.resolveExampleRecursively({example:c,breadcrumbs:this.breadcrumbs}),d=this.getIdForExample({key:u,example:p,usedExampleNames:a});a.add(d),l!=null&&(o!=null?i.userSpecifiedExamples[d]=this.generateOrValidateExample({schema:o,example:l,exampleGenerationStrategy:n,exampleName:d}):i.userSpecifiedExamples[d]=l)}if(Object.keys(i.userSpecifiedExamples).length===0&&o!=null){let u=Un(`${[...this.group,this.method].join("_")}_example`);i.autogeneratedExamples[u]=this.generateOrValidateExample({schema:o,example:void 0,ignoreErrors:!0,generateOptionalProperties:r,exampleGenerationStrategy:n,exampleName:u})}return i}generateOrValidateExample({schema:t,example:r,generateOptionalProperties:n,exampleGenerationStrategy:i}){let o=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs,skipErrorCollector:!0});if(o==null)return;let s=this.context.getExamplesFromSchema({schema:o,breadcrumbs:this.breadcrumbs}),a=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:o,example:r??s[0],generateOptionalProperties:n??!1,exampleGenerationStrategy:i}),{validExample:u}=a.convert();return u}};var Cmr=class extends Ki{parameter;constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r}),this.parameter=n}convertToOutput({schema:t,typeReference:r,inlinedTypes:n}){let i=this.context.getAvailability({node:this.parameter,breadcrumbs:this.breadcrumbs}),o=this.context.resolveMaybeReference({schemaOrReference:t,breadcrumbs:this.breadcrumbs}),s=this.getParameterSchemaWithExampleOverride({schema:o});switch(this.parameter.in){case"query":return{type:"query",parameter:{name:this.context.casingsGenerator.generateNameAndWireValue({name:this.parameter.name,wireValue:this.parameter.name}),docs:this.parameter.description,valueType:r??Ki.OPTIONAL_STRING,allowMultiple:this.parameter.explode??!1,v2Examples:this.convertParameterExamples({schema:s??t}),availability:i,explode:this.getExplodeForQueryParameter()},inlinedTypes:n};case"header":return{type:"header",parameter:{name:this.context.casingsGenerator.generateNameAndWireValue({name:this.parameter.name,wireValue:this.parameter.name}),docs:this.parameter.description,valueType:r??Ki.OPTIONAL_STRING,env:void 0,v2Examples:this.convertParameterExamples({schema:s??t}),availability:i},inlinedTypes:n};case"path":return{type:"path",parameter:{name:this.context.casingsGenerator.generateName(this.parameter.name),docs:this.parameter.description,valueType:r??Ki.STRING,location:"ENDPOINT",variable:void 0,v2Examples:this.convertParameterExamples({schema:s??t}),explode:this.getExplodeForPathParameter()},inlinedTypes:n};default:return}}getParameterSchemaWithExampleOverride({schema:t}){if(t!=null)return t.type==="string"&&t.example==null?{...t,example:this.parameter.name}:t}convertParameterExamples({schema:t}){let r={userSpecifiedExamples:{},autogeneratedExamples:{}},n=this.parameter.example,i=this.parameter.examples;for(let[o,s]of Object.entries(i??{})){let a=this.context.resolveExampleWithValue(s);a!=null&&(r.userSpecifiedExamples[o]=this.generateOrValidateExample({schema:t,example:a,exampleName:o}))}if(n!=null){let o=this.context.generateUniqueName({prefix:`${this.parameter.name}_example`,existingNames:Object.keys(r.userSpecifiedExamples)});r.userSpecifiedExamples[o]=this.generateOrValidateExample({schema:t,example:n,exampleName:o})}if(Object.keys(r.userSpecifiedExamples).length===0){let o=`${this.parameter.name}_example`;r.autogeneratedExamples[o]=this.generateOrValidateExample({schema:t,example:void 0,ignoreErrors:!0,exampleName:o})}return r}generateOrValidateExample({schema:t,example:r}){let n=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:i}=n.convert();return i}getExplodeForQueryParameter(){let t=this.parameter.style??"form",r=this.parameter.explode;if(r!==void 0)return t==="form"||t==="deepObject"?r===!0?void 0:r:r===!1?void 0:r}getExplodeForPathParameter(){let t=this.parameter.explode;if(t!==void 0)return t===!1?void 0:t}};St();var xmr=class extends _a{server;key="x-fern-server-name";constructor({breadcrumbs:t,server:r,context:n}){super({breadcrumbs:t,context:n}),this.server=r}convert(){let t=this.getExtensionValue(this.server,"x-name");if(!(t==null||typeof t!="string"))return t}};var Vpa="Base",K5p="x-fern-default-url",RQ=class e extends Ki{servers;endpointLevelServers;constructor({breadcrumbs:t,context:r,servers:n,endpointLevelServers:i}){super({breadcrumbs:t,context:r}),this.servers=n,this.endpointLevelServers=i}convert(){if(this.servers==null||this.servers.length===0||this.servers[0]==null)return;if(this.endpointLevelServers!=null&&this.endpointLevelServers.length>0){let n=this.getDefaultBaseUrlName(),i={id:n,name:this.context.casingsGenerator.generateName(n)},o=this.endpointLevelServers.map(u=>{let c=e.getServerName({server:u,context:this.context});return{id:c,name:this.context.casingsGenerator.generateName(c)}}).filter((u,c,l)=>l.findIndex(p=>p.id===u.id)===c),s=[i,...o],a=this.servers.map(u=>{let c=e.getServerName({server:u,context:this.context}),l=this.endpointLevelServers?.map(h=>[e.getServerName({server:h,context:this.context}),this.getServerUrl(h)]),p=e.getServerAudiences({server:u,context:this.context}),{defaultUrls:d,urlTemplates:f,urlVariables:m}=this.buildMultiUrlTemplateFields({defaultBaseUrlId:n,topLevelServer:u,endpointServers:this.endpointLevelServers??[]});return{id:c,name:this.context.casingsGenerator.generateName(c),urls:{[n]:this.getServerUrl(u),...Object.fromEntries(l??[])},docs:u.description,audiences:p,defaultUrls:d,urlTemplates:f,urlVariables:m}});return{value:{defaultEnvironment:a[0]?.id,environments:ly.multipleBaseUrls({baseUrls:s,environments:a})},defaultUrl:i.id}}let t=this.extractFernDefaultUrl(),r=this.servers.map(n=>{let i=e.getServerName({server:n,context:this.context}),o=e.getServerAudiences({server:n,context:this.context});return n.variables!=null&&Object.keys(n.variables).length>0&&n.variables!=null?{id:i,name:this.context.casingsGenerator.generateName(i),url:this.maybeRemoveTrailingSlashIfNotEmpty(this.getServerUrl(n)),audiences:o,defaultUrl:t,urlTemplate:this.maybeRemoveTrailingSlashIfNotEmpty(n.url),urlVariables:this.convertServerVariables(n.variables),docs:n.description}:{id:i,name:this.context.casingsGenerator.generateName(i),url:this.maybeRemoveTrailingSlashIfNotEmpty(this.getServerUrl(n)),audiences:o,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0,docs:n.description}}).filter(ua);return{value:{defaultEnvironment:r[0]?.id,environments:ly.singleBaseUrl({environments:r})},defaultUrl:r[0]?.id}}convertServerVariables(t){return Object.entries(t).map(([r,n])=>({id:r,name:this.context.casingsGenerator.generateName(r),default:n.default,values:n.enum}))}static getServerExtensionName({server:t,context:r}){return new xmr({breadcrumbs:[],server:t,context:r}).convert()}static getServerAudiences({server:t,context:r}){return new jVe({breadcrumbs:[],operation:t,context:r}).convert()?.audiences}static getServerName({server:t,context:r}){return t.name!=null?t.name:e.getServerExtensionName({server:t,context:r})??t.description??t.url}getServerUrl(t){if(t.variables==null)return t.url;let r=t.url;for(let[n,i]of Object.entries(t.variables))i.default!=null&&(r=r.replace(`{${n}}`,encodeURIComponent(i.default)));return r}getDefaultBaseUrlName(){return this.servers==null||this.servers.length===0||this.servers[0]==null?Vpa:e.getServerExtensionName({server:this.servers[0],context:this.context})??Vpa}maybeRemoveTrailingSlashIfNotEmpty(t){return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}buildMultiUrlTemplateFields({defaultBaseUrlId:t,topLevelServer:r,endpointServers:n}){let i={},o={},s={},a=!1;if(r.variables!=null&&Object.keys(r.variables).length>0){a=!0;let u=this.extractFernDefaultUrlFromServer(r);u!=null&&(i[t]=u),o[t]=this.maybeRemoveTrailingSlashIfNotEmpty(r.url),s[t]=this.convertServerVariables(r.variables)}for(let u of n){let c=e.getServerName({server:u,context:this.context});if(u.variables!=null&&Object.keys(u.variables).length>0){a=!0;let l=this.extractFernDefaultUrlFromServer(u);l!=null&&(i[c]=l),o[c]=this.maybeRemoveTrailingSlashIfNotEmpty(u.url),s[c]=this.convertServerVariables(u.variables)}}return a?{defaultUrls:Object.keys(i).length>0?i:void 0,urlTemplates:o,urlVariables:s}:{defaultUrls:void 0,urlTemplates:void 0,urlVariables:void 0}}extractFernDefaultUrlFromServer(t){let r=t[K5p];if(typeof r=="string")return this.maybeRemoveTrailingSlashIfNotEmpty(r)}extractFernDefaultUrl(){if(this.servers!=null)for(let t of this.servers){let r=this.extractFernDefaultUrlFromServer(t);if(r!=null)return r}}};var sPe=class{context;constructor({context:t}){this.context=t}validateExample({example:t,schema:r,breadcrumbs:n,exampleGenerationStrategy:i}){return new iE({breadcrumbs:n,context:this.context,schema:r,example:t,depth:0,exampleGenerationStrategy:i,generateOptionalProperties:!1}).convert()}validateEndpointExample({exampleToValidate:t}){let r=[],n=[],i=!0,o=!1,s,a=[t.endpointPath,t.method];if(t.requestExample!==void 0&&t.requestSchema!==void 0){let c=this.validateExample({example:t.requestExample,schema:t.requestSchema,breadcrumbs:[...a,"request"],exampleGenerationStrategy:"request"});if(!c.isValid){i=!1;let l=t.exampleSource==="human"?Rv.WARNING:Rv.ERROR;r.push(...c.errors.map(p=>({...p,level:l,message:`Invalid request example: ${p.message}`})))}c.coerced&&(o=!0,n.push({level:Rv.WARNING,message:"Request example was coerced to match schema",path:[...a,"request"]})),s={request:c.validExample}}let u=this.getResponseSchemaForValidation(t);if(t.responseExample!==void 0&&u!==void 0){let c=this.validateExample({example:t.responseExample,schema:u,breadcrumbs:[...a,"response"],exampleGenerationStrategy:"response"});if(!c.isValid){i=!1;let l=t.exampleSource==="human"?Rv.WARNING:Rv.ERROR;r.push(...c.errors.map(p=>({...p,level:l,message:`Invalid response example: ${p.message}`})))}c.coerced&&(o=!0,n.push({level:Rv.WARNING,message:"Response example was coerced to match schema",path:[...a,"response"]})),s={...typeof s=="object"&&s!==null?s:{},response:c.validExample}}return{isValid:i,errors:r,warnings:n,endpointPath:t.endpointPath,method:t.method,exampleSource:t.exampleSource,exampleName:t.exampleName,validExample:s,coerced:o}}getResponseSchemaForValidation(t){let{responseStatusCode:r,responseSchemas:n,responseSchema:i}=t;return n&&Object.keys(n).length>0?r&&n[r]?n[r]:n[200]??n[201]:i}validateAiExamples({aiExamples:t,spec:r}){let n=[],i=[];for(let o of t){let{requestSchema:s,responseSchema:a,responseSchemas:u}=this.getSchemasForEndpoint({spec:r,endpointPath:o.endpointPath,method:o.method}),c={endpointPath:o.endpointPath,method:o.method,exampleSource:"ai",requestExample:o.request?.body,responseExample:o.response?.body,requestSchema:s,responseSchema:a,responseSchemas:u},l=this.validateEndpointExample({exampleToValidate:c}),p=this.hasUnexpectedProperties({requestExample:o.request?.body,responseExample:o.response?.body,requestSchema:s,responseSchema:a}),d=l.errors.length>0||l.warnings.length>0;!l.isValid||d||p?i.push({example:o,validationResult:l}):n.push(o)}return{validExamples:n,invalidExamples:i}}hasUnexpectedProperties({requestExample:t,responseExample:r,requestSchema:n,responseSchema:i}){return!!(t&&n&&this.exampleHasUnexpectedProperties(t,n)||r&&i&&this.exampleHasUnexpectedProperties(r,i))}exampleHasUnexpectedProperties(t,r){if(!t||typeof t!="object"||t===null)return!1;let n=this.context.resolveMaybeReference({schemaOrReference:r,breadcrumbs:[],skipErrorCollector:!0});if(!n||!n.properties&&!n.allOf&&!n.oneOf&&!n.anyOf)return!1;let i=t,o=this.collectAllPropertyKeys(n);return Object.keys(i).some(a=>!o.has(a))}collectAllPropertyKeys(t,r=new Set){let n=new Set;if(t.properties)for(let i of Object.keys(t.properties))n.add(i);for(let i of t.allOf??[]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[],skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}for(let i of[...t.oneOf??[],...t.anyOf??[]]){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[],skipErrorCollector:!0});if(o){let s=this.context.isReferenceObject(i)?i.$ref:JSON.stringify(o);if(!r.has(s)){r.add(s);let a=this.collectAllPropertyKeys(o,r);for(let u of a)n.add(u)}}}return n}validateHumanExamples({spec:t}){let r=[],n=0,i=0,o=0,s=[],a=[];if(!t.paths)return{endpoints:r,totalExamples:n,validExamples:i,invalidExamples:o,hasInvalidHumanExamples:!1,hasInvalidAiExamples:!1,invalidHumanExamples:s,invalidAiExamples:a};for(let[u,c]of Object.entries(t.paths)){if(!c)continue;let l=["get","post","put","delete","patch","options","head","trace"];for(let p of l){let d=c[p];if(!d)continue;let f=[],{requestSchema:m,responseSchema:h,responseSchemas:g}=this.getSchemasForOperation({operation:d}),A=this.extractExamplesFromOperation({operation:d,path:u,method:p});for(let b of A){n++;let v={endpointPath:u,method:p,exampleName:b.name,exampleSource:b.source,requestExample:b.request,responseExample:b.response,requestSchema:m,responseSchema:h,responseStatusCode:b.statusCode,responseSchemas:g},E=this.validateEndpointExample({exampleToValidate:v});f.push(E),E.isValid?i++:(o++,b.source==="human"?s.push(E):b.source==="ai"&&a.push(E))}f.length>0&&r.push({endpointPath:u,method:p,results:f,hasInvalidExamples:f.some(b=>!b.isValid),invalidExampleCount:f.filter(b=>!b.isValid).length})}}return{endpoints:r,totalExamples:n,validExamples:i,invalidExamples:o,hasInvalidHumanExamples:s.length>0,hasInvalidAiExamples:a.length>0,invalidHumanExamples:s,invalidAiExamples:a}}getSchemasForEndpoint({spec:t,endpointPath:r,method:n}){let i=t.paths?.[r];if(!i)return{responseSchemas:{}};let o=i[n.toLowerCase()];return!o||typeof o!="object"||!("responses"in o)?{responseSchemas:{}}:this.getSchemasForOperation({operation:o})}getSchemasForOperation({operation:t}){let r,n,i={};if(t.requestBody&&!this.context.isReferenceObject(t.requestBody)){let s=t.requestBody.content?.["application/json"];s?.schema&&(r=s.schema)}if(t.responses){for(let[o,s]of Object.entries(t.responses)){if(!s||this.context.isReferenceObject(s))continue;let u=s.content?.["application/json"];u?.schema&&(i[o]=u.schema)}n=i[200]??i[201]}return{requestSchema:r,responseSchema:n,responseSchemas:i}}extractExamplesFromOperation({operation:t,path:r,method:n}){let i=[];if(t.requestBody&&!this.context.isReferenceObject(t.requestBody)){let a=t.requestBody.content?.["application/json"];if(a?.example!==void 0&&i.push({name:`${n}_${r}_request_example`,source:"openapi",request:a.example}),a?.examples)for(let[u,c]of Object.entries(a.examples)){let l=this.context.isReferenceObject(c)?this.context.resolveExample(c):c;l&&typeof l=="object"&&"value"in l&&i.push({name:u,source:"human",request:l.value})}}if(t.responses)for(let[s,a]of Object.entries(t.responses)){if(!a||this.context.isReferenceObject(a))continue;let c=a.content?.["application/json"];if(c?.example!==void 0){let l=i.find(p=>p.request!==void 0&&p.response===void 0);l?(l.response=c.example,l.statusCode=s):i.push({name:`${n}_${r}_response_${s}_example`,source:"openapi",response:c.example,statusCode:s})}if(c?.examples)for(let[l,p]of Object.entries(c.examples)){let d=this.context.isReferenceObject(p)?this.context.resolveExample(p):p;if(d&&typeof d=="object"&&"value"in d){let f=i.find(m=>m.name===l);f?(f.response=d.value,f.statusCode=s):i.push({name:l,source:"human",response:d.value,statusCode:s})}}}let o=t["x-fern-examples"];if(Array.isArray(o)){for(let s of o)if(typeof s=="object"&&s!==null){let a=s;i.push({name:a.name,source:"human",request:a.request?.body,response:a.response?.body})}}return i}};var _mr={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},J5p=new Set(Object.values(_mr));Ci();var Y5p=mt.object({type:mt.string(),channelId:mt.string().optional(),messageId:mt.string(),value:mt.any()}),X5p=mt.object({summary:mt.string().optional(),description:mt.string().optional(),"query-parameters":mt.record(mt.string()).optional(),headers:mt.record(mt.string()).optional(),messages:mt.array(Y5p)}),qpa=mt.array(X5p);var Smr=class extends _a{channel;baseDir;key="x-fern-examples";constructor({breadcrumbs:t,channel:r,context:n,baseDir:i}){super({breadcrumbs:t??[],context:n}),this.channel=r,this.baseDir=i}convert(){let t=this.getExtensionValue(this.channel);if(t==null)return;let r=qpa.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-examples extension: ${r.error.message}`,path:this.breadcrumbs});return}return r.data.map(n=>({summary:n.summary,description:n.description,queryParameters:n["query-parameters"],headers:n.headers,messages:n.messages.map(i=>({type:i.type,channelId:i.channelId,messageId:i.messageId,value:i.value}))}))}};var qVe=class extends Ki{channel;channelPath;inlinedTypes={};websocketGroup;constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}){super({context:t,breadcrumbs:r}),this.websocketGroup=n,this.channel=i,this.channelPath=o}convertExamples({fullPath:t,baseUrl:r,asyncApiVersion:n}){let o=new Smr({context:this.context,breadcrumbs:this.breadcrumbs,channel:this.channel,baseDir:this.context.documentBaseDir}).convert();return o==null?{}:Object.fromEntries(o.map((s,a)=>[a.toString(),{channel:{method:"GET",path:t},baseUrl:t,environment:r,auth:void 0,pathParameters:{},queryParameters:s.queryParameters,headers:s.headers,messages:s.messages.map(u=>({type:n==="v2"?u.type:u.messageId,body:u.value}))}]))}transformToValidPath(t){return t.startsWith("/")?t:"/"+t}};var Z5p="x-fern-server-name",V6=class e extends Ki{servers;constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r}),this.servers=n}convert(){if(this.servers==null||Object.keys(this.servers).length===0)return;let t=[],r;for(let[n,i]of Object.entries(this.servers)){let o=e.getServerName(n,i),s=this.buildSingleBaseUrlEnvironment(this.context,o,i);t.push(s),r==null&&(r=s.id)}return{defaultEnvironment:r,environments:ly.singleBaseUrl({environments:t})}}static getServerName(t,r){if(r!=null&&typeof r=="object"){let n=r[Z5p];if(typeof n=="string"&&n.length>0)return n}return t}constructServerUrl(t,r){return r.includes("://")?r:`${t}://${r}`}};var Fme=class extends Wf.AbstractConverters.AbstractParameterConverter{parameterNamePrefix;constructor({context:t,breadcrumbs:r,parameter:n,parameterNamePrefix:i}){super({context:t,breadcrumbs:r,parameter:n}),this.parameterNamePrefix=i}convert(){let t,r={},i=new zI.FernOptionalExtension({breadcrumbs:this.breadcrumbs,parameter:this.parameter,context:this.context}).convert()??this.parameter.required===!1,o=this.parameter.schema??{...this.parameter,type:"string",enum:this.parameter.enum,default:this.parameter.default,example:this.parameter.example??this.parameter.name,examples:Object.values(this.parameter.examples??{}),deprecated:this.parameter.deprecated,required:void 0},a=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,"schema"],schemaIdOverride:this.parameterNamePrefix?`${this.parameterNamePrefix}_${this.parameter.name}`:this.parameter.name,schemaOrReference:o,wrapAsOptional:i}).convert();return a!=null&&(t=a.type,r=a.inlinedTypes??{}),this.convertToOutput({schema:o,typeReference:t,inlinedTypes:r})}};var Bmr=class extends _a{channel;key="x-fern-address";constructor({breadcrumbs:t,channel:r,context:n}){super({breadcrumbs:t,context:n}),this.channel=r}convert(){let t=this.getExtensionValue(this.channel);if(!(t==null||typeof t!="string"))return t}};var GVe=class extends _a{channel;key="x-fern-display-name";constructor({breadcrumbs:t,channel:r,context:n}){super({breadcrumbs:t,context:n}),this.channel=r}convert(){let t=this.getExtensionValue(this.channel);if(!(t==null||typeof t!="string"))return t}};var Omr=class extends _a{operation;key="x-fern-sdk-method-name";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(!(t==null||typeof t!="string"))return t}};var Pmr=class extends qVe{inlinedTypes={};constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}){super({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o})}convert(){let t=[],r=[],n=[],o=new GVe({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert()??this.websocketGroup?.join(".");this.channel.parameters&&this.convertPathParameters({context:this.context,pathParameters:t}),this.channel.bindings?.ws!=null&&(this.convertHeaders({context:this.context,headers:n}),this.convertBindingQueryParameters({context:this.context,queryParameters:r}));let s;this.channel.subscribe!=null&&(s=this.convertMessage({context:this.context,operation:this.channel.subscribe,origin:"server"}));let a;this.channel.publish!=null&&(a=this.convertMessage({context:this.context,operation:this.channel.publish,origin:"client"}));let u=[];s!=null&&u.push(s),a!=null&&u.push(a);let l=new Bmr({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert(),p=this.transformToValidPath(l??this.channelPath),d=this.resolveServerName(this.channel.servers?.[0])??this.resolveServerName(Object.keys(this.context.spec.servers??{})[0]),f=vy(p),m=Un(this.channelPath),h=this.context.getAudiences({operation:this.channel,breadcrumbs:this.breadcrumbs})??[],g=this.hasServerSecurity()||this.context.authOverrides?.auth!=null;return{channel:{name:this.context.casingsGenerator.generateName(m),displayName:o,connectMethodName:void 0,baseUrl:d,path:f,auth:g,headers:n,queryParameters:r,pathParameters:t,messages:u,availability:this.context.getAvailability({node:this.channel,breadcrumbs:this.breadcrumbs}),docs:this.channel.description,examples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples({fullPath:p,baseUrl:d,asyncApiVersion:"v2"})}},audiences:h,inlinedTypes:this.inlinedTypes}}hasServerSecurity(){let t=this.context.spec.servers??{};if(this.channel.servers&&this.channel.servers.length>0){for(let r of this.channel.servers){let n=t[r];if(n?.security&&n.security.length>0)return!0}return!1}for(let r of Object.values(t)){let n=r;if(n.security&&n.security.length>0)return!0}return!1}convertMessage({context:t,operation:r,origin:n}){let i,o=n==="server"?"subscribe":"publish",s=[...this.breadcrumbs,o],a=t.resolveMaybeReference({schemaOrReference:r.message,breadcrumbs:s});a!=null&&(r.message=a);let u=exe(Un(`${this.channelPath}_${o}`)).replace(/ /g,"");if("oneOf"in r.message){let l=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:s,schemaOrReference:r.message,schemaIdOverride:u}).convert();l!=null&&l.schema!=null&&(i=l.schema,this.inlinedTypes={...this.inlinedTypes,...l.inlinedTypes})}else if(t.isMessageWithPayload(r.message)){let c=t.resolveMaybeReference({schemaOrReference:r.message.payload,breadcrumbs:s});if(c!=null){let p=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:s,schemaOrReference:c,schemaIdOverride:u}).convert();p!=null&&p.schema!=null&&(i=p.schema,this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes})}}if(i!=null){let c=i,l=Fr.named({fernFilepath:t.createFernFilepath(),name:c.typeDeclaration.name.name,typeId:c.typeDeclaration.name.typeId,displayName:void 0,default:void 0,inline:!1}),p=a_.reference({bodyType:l,docs:r.description}),d=n==="server"?"subscribe":"publish";return{type:d,displayName:d,origin:n,body:p,availability:t.getAvailability({node:r,breadcrumbs:this.breadcrumbs}),docs:r.description,methodName:this.getOperationMethodName(r)}}}convertPathParameters({context:t,pathParameters:r}){for(let[n,i]of Object.entries(this.channel.parameters??{})){let o=t.resolveMaybeReference({schemaOrReference:i,breadcrumbs:this.breadcrumbs});if(o==null)continue;let a=new Fme({context:this.context,breadcrumbs:this.breadcrumbs,parameter:{...o,name:n,in:"path",description:o.description,required:o.required??!0}}).convert();a!=null&&(this.inlinedTypes={...this.inlinedTypes,...a.inlinedTypes},a.type==="path"&&r.push(a.parameter))}}convertHeaders({context:t,headers:r}){if(this.channel.bindings?.ws?.headers!=null){let n=this.channel.bindings.ws.headers.required??[];for(let[i,o]of Object.entries(this.channel.bindings.ws.headers.properties??{})){let s=t.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,i]});if(s==null)continue;let u=new Fme({context:this.context,breadcrumbs:[...this.breadcrumbs,i],parameter:{name:i,in:"header",required:n.includes(i),schema:s,description:"description"in s?s.description:void 0}}).convert();u!=null&&u.type==="header"&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},r.push(u.parameter))}}}resolveServerName(t){if(t==null)return;let r=this.context.spec.servers;if(r!=null&&t in r){let n=r[t];return V6.getServerName(t,n)}return t}getOperationMethodName(t){return new Omr({breadcrumbs:this.breadcrumbs,operation:t,context:this.context}).convert()}convertBindingQueryParameters({context:t,queryParameters:r}){if(this.channel.bindings?.ws?.query!=null){let n=this.channel.bindings.ws.query.required??[];for(let[i,o]of Object.entries(this.channel.bindings.ws.query.properties??{})){let s=t.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,i]});if(s==null)continue;let u=new Fme({context:this.context,breadcrumbs:[...this.breadcrumbs,i],parameter:{name:i,in:"query",required:n.includes(i),schema:s,description:"description"in s?s.description:void 0,deprecated:s.deprecated??!1}}).convert();u!=null&&u.type==="query"&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},r.push(u.parameter))}}}};var Tmr=class extends V6{constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r,servers:n})}buildSingleBaseUrlEnvironment(t,r,n){return{id:r,name:t.casingsGenerator.generateName(r),url:this.constructServerUrl(n.protocol,n.url),docs:void 0,audiences:void 0,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0}}};var $Ii="$message.",Gpa="#/channels/",HIi="#/servers/",Dmr=class extends qVe{operations;inlinedTypes={};constructor({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o,operations:s}){super({context:t,breadcrumbs:r,websocketGroup:n,channel:i,channelPath:o}),this.operations=s}convert(){let t=[],r=[],n=[],o=new GVe({breadcrumbs:this.breadcrumbs,channel:this.channel,context:this.context}).convert()??this.websocketGroup?.join(".")??this.channelPath;this.channel.parameters&&this.convertChannelParameters({pathParameters:t,queryParameters:r,headers:n,channelPath:this.channelPath});let s=Object.entries(this.operations).reduce((f,[m,h])=>{try{this.getChannelPathFromOperation(h)===this.channelPath&&(f[m]=h)}catch{}return f},{}),a=[];for(let[f,m]of Object.entries(s))for(let h of m.messages){let g=this.context.convertReferenceToTypeReference({reference:h});if(g.ok){let A=a_.reference({bodyType:g.reference,docs:m.description});a.push({type:f,displayName:f,origin:m.action==="send"?"client":"server",body:A,availability:this.context.getAvailability({node:m,breadcrumbs:this.breadcrumbs}),docs:m.description,methodName:void 0})}}let u=this.resolveChannelServersFromReference(this.channel.servers??[])??this.resolveFirstServerName(),c=this.transformToValidPath(this.channel.address??this.channelPath),l=vy(c),p=this.context.getAudiences({operation:this.channel,breadcrumbs:this.breadcrumbs})??[],d=this.hasServerSecurity()||this.context.authOverrides?.auth!=null;return{channel:{name:this.context.casingsGenerator.generateName(o),displayName:o,connectMethodName:void 0,baseUrl:u,path:l,auth:d,headers:n,queryParameters:r,pathParameters:t,messages:a,availability:this.context.getAvailability({node:this.channel,breadcrumbs:this.breadcrumbs}),docs:this.channel.description,examples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples({fullPath:c,baseUrl:u,asyncApiVersion:"v3"})}},audiences:p,inlinedTypes:this.inlinedTypes}}hasServerSecurity(){let r=this.context.spec.servers??{};if(this.channel.servers&&this.channel.servers.length>0){for(let n of this.channel.servers){let i=n.$ref.replace(HIi,""),o=r[i];if(o?.security&&o.security.length>0)return!0}return!1}for(let n of Object.values(r))if(n.security&&n.security.length>0)return!0;return!1}convertChannelParameters({pathParameters:t,queryParameters:r,headers:n,channelPath:i}){for(let o of Object.values(this.channel.parameters??{})){let s=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:[...this.breadcrumbs,"parameters"]});if(s==null)continue;let a=this.convertChannelParameterLocation(s.location);if(a==null)continue;let{type:u,parameterKey:c}=a,p=new Fme({context:this.context,breadcrumbs:this.breadcrumbs,parameter:{...s,name:c,in:u},parameterNamePrefix:this.channelPath}).convert();if(p!=null)switch(this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes},p.type){case"path":t.push(p.parameter);break;case"query":r.push(p.parameter);break;case"header":n.push(p.parameter);break}}}convertChannelParameterLocation(t){try{let[r,n]=t.split("#/");if(r==null||n==null){this.context.errorCollector.collect({message:`Invalid location format: ${t}; unable to parse message type and parameter key`,path:this.breadcrumbs});return}if(!r.startsWith($Ii)){this.context.errorCollector.collect({message:`Invalid location format: ${t}; expected ${$Ii} prefix`,path:this.breadcrumbs});return}let i=r.substring($Ii.length);if(i!=="header"&&i!=="path"&&i!=="payload"){this.context.errorCollector.collect({message:`Invalid message type: ${i}. Must be one of: header, path, payload`,path:this.breadcrumbs});return}return i==="payload"?{type:"query",parameterKey:n}:{type:i,parameterKey:n}}catch{this.context.errorCollector.collect({message:`Invalid location format: ${t}; see here for more details: https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression`,path:this.breadcrumbs});return}}resolveChannelServersFromReference(t){if(t==null||t.length===0||t[0]==null)return;let r=t[0];if(!r.$ref.startsWith(HIi)){this.context.errorCollector.collect({message:`Failed to resolve server name from server ref ${r.$ref}`,path:this.breadcrumbs});return}let n=r.$ref.substring(HIi.length);if(n==null){this.context.errorCollector.collect({message:`Failed to find server with name ${n}`,path:this.breadcrumbs});return}let i=this.context.spec.servers;if(i!=null&&n in i){let o=i[n];return V6.getServerName(n,o)}return n}resolveFirstServerName(){let t=this.context.spec.servers;if(t==null)return;let r=Object.keys(t)[0];if(r==null)return;let n=t[r];return V6.getServerName(r,n)}getChannelPathFromOperation(t){if(!t.channel.$ref.startsWith(Gpa))throw new Error(`Failed to resolve channel path from operation ${t.channel.$ref}`);return t.channel.$ref.substring(Gpa.length)}};var Rmr=class extends V6{constructor({context:t,breadcrumbs:r,servers:n}){super({context:t,breadcrumbs:r,servers:n})}buildSingleBaseUrlEnvironment(t,r,n){return{id:r,name:t.casingsGenerator.generateName(r),url:this.constructServerUrl(n.protocol,n.host),docs:void 0,audiences:void 0,defaultUrl:void 0,urlTemplate:void 0,urlVariables:void 0}}};var jIt=class extends z6{constructor({context:t,breadcrumbs:r,audiences:n}){super({context:t,breadcrumbs:r,audiences:n})}async convert(){return this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.context.spec=await this.resolveAllExternalRefs({spec:this.context.spec}),this.isAsyncAPIV3(this.context)?this.convertChannelMessages():this.convertComponentMessages(),this.convertSchemas(),this.convertServers(),this.convertSecuritySchemes(),this.convertChannels(),this.finalizeIr()}isAsyncAPIV3(t){return parseFloat(t.spec.asyncapi)>=3}convertChannelMessages(){let t=this.context.spec;for(let[r,n]of Object.entries(t.channels??{}))for(let[i,o]of Object.entries(n.messages??{})){if(!this.context.isMessageWithPayload(o)&&!this.context.isReferenceObject(o))continue;let s=["channels",r,"messages",i],a=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:s});if(!this.context.isMessageWithPayload(a))continue;let u=this.context.resolveMaybeReference({schemaOrReference:a.payload,breadcrumbs:s});if(u==null)continue;let c=`${r}_${i}`;this.convertSchema({id:c,breadcrumbs:s,schema:u})}}convertComponentMessages(){for(let[t,r]of Object.entries(this.context.spec.components?.messages??{})){if(r.payload==null)continue;let n=["components","messages",t],i=this.context.resolveMaybeReference({schemaOrReference:r.payload,breadcrumbs:n});i!=null&&this.convertSchema({id:t,breadcrumbs:n,schema:i})}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{}))this.convertSchema({id:t,breadcrumbs:["components","schemas",t],schema:r})}convertSchema({id:t,breadcrumbs:r,schema:n}){let o=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:r,schema:n}).convert();o!=null&&this.addSchemaOutputToIr(t,o)}convertServers(){let t;if(this.isAsyncAPIV3(this.context)){let r=this.context.spec.servers;t=new Rmr({context:this.context,breadcrumbs:["servers"],servers:r}).convert()}else{let r=this.context.spec.servers;t=new Tmr({context:this.context,breadcrumbs:["servers"],servers:r}).convert()}this.addEnvironmentsToIr({environmentConfig:t})}convertSecuritySchemes(){if(this.context.authOverrides){let r=nEt({rawApiFileSchema:this.context.authOverrides,casingsGenerator:this.context.casingsGenerator});this.addAuthToIR({requirement:r.requirement,schemes:r.schemes,docs:r.docs});return}let t=this.convertAsyncApiSecuritySchemes();t.length>0&&this.addAuthToIR({requirement:t.length===1?"ALL":"ANY",schemes:t,docs:void 0})}convertAsyncApiSecuritySchemes(){let t=[];for(let[r,n]of Object.entries(this.context.spec.components?.securitySchemes??{})){let i=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:["components","securitySchemes",r]});if(i==null)continue;let o=this.convertSecurityScheme({securityScheme:i,schemeId:r});o!=null&&t.push(o)}return t}convertSecurityScheme({securityScheme:t,schemeId:r}){switch(t.type){case"http":{if(t.scheme?.toLowerCase()==="bearer")return Ep.bearer({key:r,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:t.description});if(t.scheme?.toLowerCase()==="basic")return Ep.basic({key:r,username:this.context.casingsGenerator.generateName("username"),password:this.context.casingsGenerator.generateName("password"),usernameEnvVar:void 0,passwordEnvVar:void 0,usernameOmit:!1,passwordOmit:!1,docs:t.description});break}case"apiKey":{if(t.in==="header")return Ep.header({key:r,name:{name:this.context.casingsGenerator.generateName("apiKey"),wireValue:t.name},valueType:Ki.OPTIONAL_STRING,prefix:void 0,headerEnvVar:void 0,docs:t.description});break}case"oauth2":return Ep.bearer({key:r,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:t.description})}}convertChannels(){for(let[t,r]of Object.entries(this.context.spec.channels??{})){let i=new zI.SdkGroupNameExtension({breadcrumbs:["channels",t],operation:r,context:this.context}).convert()?.groups,o;if(this.isAsyncAPIV3(this.context)){let a=this.context.spec.operations??{};o=new Dmr({context:this.context,breadcrumbs:["channels",t],websocketGroup:i,channel:r,channelPath:t,operations:a}).convert()}else o=new Pmr({context:this.context,breadcrumbs:["channels",t],websocketGroup:i,channel:r,channelPath:t}).convert();o!=null&&(this.addWebsocketChannelToIr({websocketChannel:o.channel,channelPath:t,audiences:o.audiences,websocketGroup:i}),this.addTypesToIr(o.inlinedTypes))}}};var MIt=class extends QA{isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}getTypeIdFromMessageReference(t){let r=t.$ref.match(/\/messages\/(.+)$/);if(!(!r||!r[1]))return r[1]}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o,s=t.$ref.match(/^.*\/schemas\/(.+)$/),a=t.$ref.match(/^.*\/channels\/([^/]+)\/messages\/(.+)$/),u=t.$ref.match(/^.*\/messages\/(.+)$/);if(s&&s[1])return o=s[1],this.convertSchemaReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o});if(a&&a[2]){let c=a[1],l=a[2];return o=`${c}_${l}`,this.convertV3MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o})}else return u&&u[1]?(o=u[1],this.convertV2MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o})):{ok:!1}}convertSchemaReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.title:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.title??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}convertV3MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.name:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.name??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}convertV2MessageReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i,typeId:o}){let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.messageId??s.value.name:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.messageId??s.value.name??n),{ok:!0,reference:Fr.named({fernFilepath:this.createFernFilepath(),name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}};St();qt();var Xpa=xe(Fmr(),1);var kmr=class extends _a{document;key="x-fern-base-path";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(typeof t!="string"){this.context.errorCollector.collect({message:"Received unexpected non-string value for x-fern-base-path",path:this.breadcrumbs});return}return t}}};var Qmr=class extends _a{document;key="x-fern-global-headers";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(!Array.isArray(t)){this.context.errorCollector.collect({message:"Received unexpected non-array value for x-fern-global-headers",path:this.breadcrumbs});return}return t}}};function Wpa({globalHeaders:e,context:t}){return e.map(r=>({name:t.casingsGenerator.generateNameAndWireValue({name:r.name??"",wireValue:r.header}),valueType:r.optional?Ki.OPTIONAL_STRING:Ki.STRING,env:r.env,v2Examples:r.optional?void 0:r8p({header:r,context:t}),availability:void 0,docs:void 0}))}function r8p({header:e,context:t}){let r=new iE({breadcrumbs:[],context:t,schema:{type:"string"},example:e.header}),{validExample:n}=r.convert();return{userSpecifiedExamples:{},autogeneratedExamples:{globalHeaderExample:n}}}Ci();var Nmr=class extends Wf.AbstractConverters.AbstractParameterConverter{constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r,parameter:n})}convert(){let t,r={};if(this.parameter.schema!=null){let n=this.context.convertBreadcrumbsToName([...this.breadcrumbs,this.parameter.name]),o=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,this.parameter.name,"schema"],schemaOrReference:this.parameter.schema,wrapAsOptional:this.parameter.required==null||!this.parameter.required,schemaIdOverride:n}).convert();o!=null&&(t=o.type,r=o.inlinedTypes??{})}return this.convertToOutput({schema:this.parameter.schema??{type:"string"},typeReference:t,inlinedTypes:r})}};St();var jmr=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{contentType;mediaType;description;required;schemaId;streamingExtension;queryParameters;constructor({context:t,breadcrumbs:r,contentType:n,mediaType:i,description:o,required:s,group:a,method:u,streamingExtension:c,queryParameters:l}){super({context:t,breadcrumbs:r,group:a,method:u}),this.contentType=n,this.mediaType=i,this.description=o,this.required=s,this.schemaId=[...this.group,this.method,"Request"].join("_"),this.streamingExtension=c,this.queryParameters=l??[]}convert(){return this.streamingExtension?.type=="streamCondition"?this.convertStreamConditionRequestBody():this.convertNonStreamConditionRequestBody()}convertStreamConditionRequestBody(){if(this.isOrderedJsonOrFormContentType())return this.handleStreamConditionJsonOrFormContent({contentType:this.contentType})}convertNonStreamConditionRequestBody(){if(this.isOrderedJsonOrFormContentType())return this.handleJsonOrFormContent({contentType:this.contentType});if(Wp.parse(this.contentType)?.isMultipart())return this.handleMultipartContent({contentType:this.contentType});if(this.isBinaryContentType())return this.handleBinaryContent({contentType:this.contentType})}isOrderedJsonOrFormContentType(){let t=Wp.parse(this.contentType);return t?t.isJSON()||t.isURLEncoded()||t.isPlainText()||t.isCSV()||t.isHTML()||t.isXML()||t.isDNS()||t.isApplicationText():!1}isBinaryContentType(){let t=Wp.parse(this.contentType);return t?t.isBinary():!1}handleJsonOrFormContent({contentType:t}){let r=this.mediaType;if(r==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,contentType:t});if(n==null)return;let i=n.schema?.typeDeclaration.shape;return i?.type==="object"?this.hasBodyQueryParameterOverlap(i.properties)?{requestBody:Rf.reference({contentType:t,docs:this.description,requestBodyType:n.type,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n.inlinedTypes??{}}:{requestBody:Rf.inlinedRequestBody({contentType:t,docs:this.description??n.schema?.typeDeclaration.docs,name:this.context.casingsGenerator.generateName(this.schemaId),extendedProperties:i.extendedProperties,extends:i.extends,properties:i.properties,extraProperties:i.extraProperties,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:n.inlinedTypes})}:{requestBody:Rf.reference({contentType:t,docs:this.description,requestBodyType:n.type,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n.inlinedTypes??{}}}handleMultipartContent({contentType:t}){let r=this.mediaType;if(r==null||r.schema==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,resolveSchema:!0,contentType:t});if(n==null)return;let i=n.schema?.typeDeclaration.shape;if(i?.type==="object")return{requestBody:Rf.fileUpload({contentType:t,docs:this.description,name:this.context.casingsGenerator.generateName(this.schemaId),properties:i.properties.map(o=>{let s=r.encoding?.[o.name.wireValue];return this.convertRequestBodyProperty({property:o,contentType:t,encoding:s})}),v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:n.inlinedTypes}),examples:n.examples}}handleBinaryContent({contentType:t}){let r=this.mediaType;if(r==null)return;let n=this.parseMediaTypeObject({mediaTypeObject:r,schemaId:this.schemaId,contentType:t});return{requestBody:Rf.bytes({contentType:t,isOptional:this.required===!1,docs:this.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:r,exampleGenerationStrategy:"request"})}),streamRequestBody:void 0,inlinedTypes:n?.inlinedTypes??{}}}convertRequestBodyProperty({property:t,contentType:r,encoding:n}){let{isFile:i,isOptional:o,isArray:s}=this.recursivelyCheckTypeReferenceIsFile({typeReference:t.valueType});return i?s?nv.file(RD.fileArray({key:t.name,isOptional:o,contentType:r,docs:t.docs})):nv.file(RD.file({key:t.name,isOptional:o,contentType:r,docs:t.docs})):nv.bodyProperty({...t,contentType:n?.contentType??r,style:i8p({encoding:n}),name:t.name})}handleStreamConditionJsonOrFormContent({contentType:t}){if(this.streamingExtension?.type!=="streamCondition")return;let r=this.mediaType;if(r==null||r.schema==null)return;let n=this.context.resolveMaybeReference({schemaOrReference:r.schema,breadcrumbs:[...this.breadcrumbs,"content",t,"schema"]});if(n==null)return;let i=n.properties?.[this.streamingExtension.streamConditionProperty];if(i==null||this.context.isReferenceObject(i))return;let o=this.buildStreamConditionInlinedRequestBody({streamConditionProperty:i,resolvedMediaTypeSchema:n,isStreaming:!0,contentType:t,mediaTypeObject:r}),s=this.buildStreamConditionInlinedRequestBody({streamConditionProperty:i,resolvedMediaTypeSchema:n,isStreaming:!1,contentType:t,mediaTypeObject:r});if(!(o==null||s==null))return{requestBody:s.requestBody,streamRequestBody:o.requestBody,inlinedTypes:this.context.removeSchemaFromInlinedTypes({id:this.schemaId,inlinedTypes:{...o.inlinedTypes,...s.inlinedTypes}})}}buildStreamConditionInlinedRequestBody({streamConditionProperty:t,resolvedMediaTypeSchema:r,isStreaming:n,contentType:i,mediaTypeObject:o}){if(this.streamingExtension==null||this.streamingExtension.type!=="streamCondition")return;let s={...r,properties:{...r.properties,[this.streamingExtension.streamConditionProperty]:{...t,type:"boolean",const:n}},required:[...r.required??[],this.streamingExtension.streamConditionProperty]},a={...o,schema:s},u=this.parseMediaTypeObject({mediaTypeObject:a,schemaId:this.schemaId,contentType:i});if(u==null)return;let c=u.schema?.typeDeclaration.shape;if(c?.type==="object")return{requestBody:Rf.inlinedRequestBody({contentType:i,docs:this.description??u.schema?.typeDeclaration.docs,name:this.context.casingsGenerator.generateName(n?this.streamingExtension?.streamRequestName??`${this.schemaId}_streaming`:this.schemaId),extendedProperties:c.extendedProperties,extends:c.extends,properties:c.properties,extraProperties:c.extraProperties,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:a,exampleGenerationStrategy:"request"})}),inlinedTypes:u.inlinedTypes}}recursivelyCheckTypeReferenceIsFile({typeReference:t,isOptional:r,isArray:n}){return this.context.isList(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.list,isOptional:r,isArray:!0}):this.context.isOptional(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.optional,isOptional:!0,isArray:n}):this.context.isNullable(t)?this.recursivelyCheckTypeReferenceIsFile({typeReference:t.container.nullable,isOptional:r,isArray:n}):{isFile:this.context.isFile(t),isOptional:r??!1,isArray:n??!1}}hasBodyQueryParameterOverlap(t){if(this.queryParameters.length===0)return!1;let r=new Set(this.queryParameters.map(n=>n.name.wireValue.toLowerCase()));return t.some(n=>r.has(n.name.wireValue.toLowerCase()))}},n8p={"application/json":"json"};function i8p({encoding:e}){if(e){if(e.explode)return"exploded";if(e.style==="form")return"form";if(e.contentType)return n8p[e.contentType]}}var o8p=/{([^}]+)}/g,s8p=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]),WVe=class extends Ki{operation;method;path;inlinedTypes={};constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o}){super({context:t,breadcrumbs:r}),this.operation=n,this.method=i,this.path=o}convertHttpMethod(){switch(this.method){case"get":return Wh.Get;case"post":return Wh.Post;case"put":return Wh.Put;case"delete":return Wh.Delete;case"patch":return Wh.Patch;case"head":return Wh.Head;default:return}}convertParameters({breadcrumbs:t}){let r=[],n=[],i=[];if(!this.operation.parameters)return this.checkMissingPathParameters(r),{pathParameters:r,queryParameters:n,headers:i};for(let o of this.operation.parameters){let s=this.context.resolveMaybeReference({schemaOrReference:o,breadcrumbs:t});if(s==null)continue;let u=new Nmr({context:this.context,breadcrumbs:t,parameter:s}).convert();if(u!=null)switch(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},u.type){case"path":r.push(u.parameter);break;case"query":n.push(u.parameter);break;case"header":{let c=u.parameter.name.name.originalName,l=u.parameter.name.wireValue,p=!1,d=this.context.authOverrides?.["auth-schemes"];if(d!=null){for(let m of Object.values(d))if(l8p(m)&&m.header.toLowerCase()===l.toLowerCase()){p=!0;break}}let f=this.context.globalHeaderNames;if(f!=null){for(let m of f)if(m.toLowerCase()===l.toLowerCase()){p=!0;break}}!s8p.has(c.toLowerCase())&&!p&&i.push(u.parameter);break}}}return this.checkMissingPathParameters(r),{pathParameters:r,queryParameters:n,headers:i}}checkMissingPathParameters(t){let n=[...this.path.matchAll(o8p)].map(i=>i[1]).filter(i=>!t.some(o=>o.name.originalName===i));for(let i of n){if(i==null)continue;let o=`${i}_example`;t.push({name:this.context.casingsGenerator.generateName(i),valueType:Ki.STRING,docs:void 0,location:"ENDPOINT",variable:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{[o]:this.generateStringParameterExample({example:i})}},explode:void 0})}}convertRequestBody({breadcrumbs:t,group:r,method:n,streamingExtension:i,queryParameters:o}){if(this.operation.requestBody==null)return;let s=this.context.resolveMaybeReference({schemaOrReference:this.operation.requestBody,breadcrumbs:t});if(s==null)return null;let a=[];for(let[u,c]of Object.entries(s.content)){let p=new jmr({context:this.context,breadcrumbs:t,contentType:u,mediaType:c,description:s.description,required:s.required,group:r??[],method:n,streamingExtension:i,queryParameters:o}).convert();p!=null&&(this.inlinedTypes={...this.inlinedTypes,...p.inlinedTypes},a.push({requestBody:p.requestBody,streamRequestBody:p.streamRequestBody,examples:p.examples}))}return a}computeGroupNameAndLocationFromExtensions(){let r=new zI.SdkMethodNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert()?.methodName,i=new zI.SdkGroupNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert()?.groups??[];if(r!=null)return{group:i,method:r}}evaluateMethodNameFromOperation(){let t=this.operation.operationId;return t??(this.operation.summary!=null?Un(this.operation.summary):Un(`${this.method}_${this.path.split("/").join("_")}`))}computeGroupNameFromTagAndOperationId(){let t=this.operation.tags?.[0],r=this.evaluateMethodNameFromOperation();if(t==null)return{method:r};let n=$pa(t),i=$pa(r);return Lb(n,i)?{method:t}:this.computeGroupAndMethodFromTokens({tag:t,tagTokens:n,methodName:r,methodNameTokens:i})}computeGroupAndMethodFromTokens({tag:t,tagTokens:r,methodName:n,methodNameTokens:i}){if(r.some((a,u)=>a!==i[u]))return{group:[t],method:n};let s=i.slice(r.length);return{group:[t],method:Un(s.join("_"))}}generateStringParameterExample({example:t}){let r=new Wf.ExampleConverter({breadcrumbs:this.breadcrumbs,context:this.context,schema:{type:"string"},example:t}),{validExample:n}=r.convert();return n}};function $pa(e){let t=a8p(e)?u8p(e):c8p(e);return t=t.map(r=>r.toLowerCase()),t=Ej(t),t}function a8p(e){return/^[a-z]+(?:[A-Z][a-z]+)*$/.test(e)}function u8p(e){return e.split(/(?=[A-Z])/)}function c8p(e){return e.split(/[^a-zA-Z0-9]+/)}function l8p(e){return e?.header!=null}var $Ve=class extends WVe{constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o}){super({context:t,breadcrumbs:r,operation:n,method:i,path:o})}convert(){if(this.operation.requestBody==null){this.context.errorCollector.collect({message:"Skipping webhook because no request body present",path:this.breadcrumbs});return}let t=this.convertHttpMethod();if(t==null)return;if(t!=="POST"&&t!=="GET"){this.context.errorCollector.collect({message:"Skipping webhook because non-POST or GET method",path:this.breadcrumbs});return}let{group:r,method:n}=this.computeGroupNameAndLocationFromExtensions()??this.computeGroupNameFromTagAndOperationId(),i=[...this.breadcrumbs,"Payload"],{headers:o,queryParameters:s}=this.convertParameters({breadcrumbs:i}),a=this.convertRequestBody({breadcrumbs:i,group:r,method:n,streamingExtension:void 0,queryParameters:s});if(a==null)return;let u=a[0]?.requestBody;if(u==null)return;let c,l;if(u.type==="inlinedRequestBody")c=Dw.inlinedPayload({name:u.name,extends:u.extends,properties:u.properties});else if(u.type==="reference")c=Dw.reference({payloadType:u.requestBodyType,docs:u.docs});else if(u.type==="fileUpload")l={name:u.name,properties:u.properties,docs:u.docs,v2Examples:u.v2Examples,contentType:u.contentType},c=Dw.inlinedPayload({name:u.name,extends:[],properties:[]});else return;let p=this.convertWebhookResponses();return{audiences:this.context.getAudiences({operation:this.operation,breadcrumbs:this.breadcrumbs})??[],group:r,webhook:{id:`${r?.join(".")??""}.${n}`,name:this.context.casingsGenerator.generateName(n),displayName:this.operation.summary,method:t,headers:o,payload:c,signatureVerification:void 0,fileUploadPayload:l,responses:p.length>0?p:void 0,examples:[],availability:this.context.getAvailability({node:this.operation,breadcrumbs:this.breadcrumbs}),docs:this.operation.description,v2Examples:{autogeneratedExamples:this.getWebhookV2ExamplesFromRequestBodyV2Examples(u.v2Examples?.autogeneratedExamples??{}),userSpecifiedExamples:this.getWebhookV2ExamplesFromRequestBodyV2Examples(u.v2Examples?.userSpecifiedExamples??{})}},inlinedTypes:this.inlinedTypes}}convertWebhookResponses(){let t=[];if(this.operation.responses==null)return t;for(let[r,n]of Object.entries(this.operation.responses)){let i=/^\d[Xx]{2}$/.test(r),o;if(i)o=parseInt(r.charAt(0))*100;else if(o=parseInt(r),isNaN(o))continue;let a=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:[...this.breadcrumbs,"responses",r]})?.description;t.push({statusCode:o,isWildcardStatusCode:i?!0:void 0,body:void 0,docs:a})}return t}getWebhookV2ExamplesFromRequestBodyV2Examples(t){return Object.fromEntries(Object.entries(t).map(([r,n])=>[r,{name:r,payload:n}]))}};var YIi=xe(Fmr(),1);var Hpa=["get","post","put","delete","patch","head"];var Mmr=class extends _a{operation;key="x-fern-idempotent";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-idempotent",path:this.breadcrumbs});return}return t}}};var p8p=mt.object({cursor:mt.string(),next_cursor:mt.string(),results:mt.string()}),f8p=mt.object({offset:mt.string(),results:mt.string(),step:mt.string().optional(),"has-next-page":mt.string().optional()}),d8p=mt.object({next_uri:mt.string(),results:mt.string()}),m8p=mt.object({next_path:mt.string(),results:mt.string()}),KIi=mt.union([mt.boolean(),p8p,f8p,d8p,m8p]);var JIi="$request.",Qme="$response.",Lmr=class extends _a{operation;document;key="x-fern-pagination";constructor({breadcrumbs:t,operation:r,document:n,context:i}){super({breadcrumbs:t,context:i}),this.operation=r,this.document=n}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=KIi.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-pagination extension: ${r.error.message}`,path:this.breadcrumbs});return}if(typeof r.data=="boolean"){let n=this.getExtensionValue(this.document);if(n==null)return;if(typeof n=="boolean"){this.context.errorCollector.collect({message:"Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.",path:this.breadcrumbs});return}let i=KIi.safeParse(n);if(!i.success){this.context.errorCollector.collect({message:`Invalid x-fern-pagination extension: ${i.error.message}`,path:this.breadcrumbs});return}if(typeof i.data=="boolean"){this.context.errorCollector.collect({message:"Global pagination extension is a boolean, expected an object.",path:this.breadcrumbs});return}return this.convertPaginationConfig({config:i.data})}if(typeof r.data=="boolean"){this.context.errorCollector.collect({message:"Pagination extension is a boolean with no global configuration.",path:this.breadcrumbs});return}return this.convertPaginationConfig({config:r.data})}convertPaginationConfig({config:t}){let r=t;if("cursor"in r)return{type:"cursor",cursor:QA.maybeTrimPrefix(r.cursor,JIi),nextCursor:QA.maybeTrimPrefix(r.next_cursor,Qme),results:QA.maybeTrimPrefix(r.results,Qme)};let n=t;if("next_uri"in n)return{type:"uri",nextUri:QA.maybeTrimPrefix(n.next_uri,Qme),results:QA.maybeTrimPrefix(n.results,Qme)};let i=t;if("next_path"in i)return{type:"path",nextPath:QA.maybeTrimPrefix(i.next_path,Qme),results:QA.maybeTrimPrefix(i.results,Qme)};let o=t;return{type:"offset",offset:QA.maybeTrimPrefix(o.offset,JIi),results:QA.maybeTrimPrefix(o.results,Qme),step:o.step!=null?QA.maybeTrimPrefix(o.step,JIi):void 0,hasNextPage:o["has-next-page"]!=null?QA.maybeTrimPrefix(o["has-next-page"],Qme):void 0}}};var h8p="$request.",g8p=mt.object({"stream-condition":mt.string().optional(),format:mt.enum(["sse","json"]).optional(),"stream-description":mt.string().optional(),"stream-request-name":mt.string().optional(),"response-stream":mt.any(),response:mt.any(),terminator:mt.string().optional()}),A8p=mt.union([mt.boolean(),g8p]),Umr=class extends _a{operation;key="x-fern-streaming";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t==null)return;let r=A8p.safeParse(t);if(!r.success){this.context.errorCollector.collect({message:`Invalid x-fern-streaming extension: ${r.error.message}`,path:this.breadcrumbs});return}if(typeof r.data=="boolean")return r.data?{type:"stream",format:"json",terminator:void 0}:void 0;if(r.data["stream-condition"]==null&&r.data.format!=null)return{type:"stream",format:r.data.format,terminator:r.data.terminator};if(r.data["stream-condition"]==null){this.context.errorCollector.collect({message:"Missing stream-condition property without specified format.",path:this.breadcrumbs});return}return{type:"streamCondition",format:r.data.format??"json",terminator:r.data.terminator,streamDescription:r.data["stream-description"],streamConditionProperty:QA.maybeTrimPrefix(r.data["stream-condition"],h8p),streamRequestName:r.data["stream-request-name"],responseStream:r.data["response-stream"],response:r.data.response}}};var zmr=class extends _a{operation;key="x-fern-webhook";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-webhook",path:this.breadcrumbs});return}return t}}};Ci();St();var qmr=require("fs"),Kpa=require("path");function y8p(e){return Aa(e)&&typeof e.$ref=="string"}function b8p(e,t){if(e!=null){if(typeof e=="string")return e;if(y8p(e)){let r=(0,Kpa.resolve)(t??process.cwd(),e.$ref);if((0,qmr.existsSync)(r))try{return(0,qmr.readFileSync)(r,"utf-8")}catch{return}}}}var Vmr=class extends _a{operation;baseDir;key="x-codeSamples";constructor({context:t,breadcrumbs:r,operation:n,baseDir:i}){super({breadcrumbs:r,context:t}),this.operation=n,this.baseDir=i}convert(){let t=Aa(this.operation)?this.operation:{},r=t["x-codeSamples"],n=t["x-code-samples"],i=Array.isArray(r)?r:[],o=Array.isArray(n)?n:[],s=[...i,...o];if(s.length===0)return;let a=[];for(let u of s){if(!Aa(u))continue;let c=u,l=c.lang,p=c.label,d=c.source;if(typeof l!="string")continue;let f=b8p(d,this.baseDir);f!=null&&a.push({name:typeof p=="string"?p:l,language:l,code:f,install:void 0,docs:void 0})}if(a.length!==0)return[{"code-samples":a}]}};St();var Wmr=require("fs"),Jpa=require("path");function E8p(e){return Aa(e)&&typeof e.$ref=="string"}function v8p(e,t){if(e!=null){if(typeof e=="string")return e;if(E8p(e)){let r=(0,Jpa.resolve)(t??process.cwd(),e.$ref);if((0,Wmr.existsSync)(r))try{return(0,Wmr.readFileSync)(r,"utf-8")}catch{return}}}}function I8p(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!Aa(n))continue;let o=v8p(n.code,t);o!=null&&r.push({...n,code:o})}return r}var Gmr=class extends _a{operation;baseDir;key="x-fern-examples";constructor({context:t,breadcrumbs:r,operation:n,baseDir:i}){super({breadcrumbs:r,context:t}),this.operation=n,this.baseDir=i}convert(){let t=this.getExtensionValue(this.operation);return t==null?void 0:(Array.isArray(t)?t:[]).map(o=>{if(!Aa(o))return o;let a=o["code-samples"];if(a!=null){let u=I8p(a,this.baseDir);return{...o,"code-samples":u}}return o}).filter(o=>{let s=Hd.serialization.ExampleEndpointCallSchema.parse(o);return s.ok||this.context.errorCollector.collect({message:`Failed to parse x-fern-example in ${this.breadcrumbs.join(".")}`,path:this.breadcrumbs}),s.ok})}};var LIt=class extends _a{document;key="x-fern-explorer";constructor({breadcrumbs:t,document:r,context:n}){super({breadcrumbs:t,context:n}),this.document=r}convert(){let t=this.getExtensionValue(this.document);if(t!=null){if(typeof t!="boolean"){this.context.errorCollector.collect({message:"Received unexpected non-boolean value for x-fern-explorer",path:this.breadcrumbs});return}return t}}};St();var UIt=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{responseBody;statusCode;streamingExtension;constructor({context:t,breadcrumbs:r,responseBody:n,group:i,method:o,statusCode:s,streamingExtension:a}){super({context:t,breadcrumbs:r,group:i,method:o}),this.responseBody=n,this.statusCode=s,this.streamingExtension=a}convert(){return this.shouldConvertAsStreaming()?this.convertStreamingResponseBody():this.convertNonStreamingResponseBody()}convertStreamingResponseBody(){if(this.streamingExtension!=null){if(this.streamingExtension.type=="streamCondition"){let t=this.streamingExtension.responseStream,r=this.streamingExtension.response,n=[...this.group,this.method,"Response",this.statusCode].join("_"),i=`${n}_streaming`,o=this.parseMediaTypeSchemaOrReference({schemaOrReference:t,schemaId:i}),s=this.parseMediaTypeSchemaOrReference({schemaOrReference:r,schemaId:n});return this.convertStreamConditionResponse({convertedStreamingSchema:o,convertedNonStreamingSchema:s})}if(this.streamingExtension.type==="stream"){let t=[...this.group,this.method,"Response",this.statusCode].join("_"),r=Object.keys(this.responseBody.content??{}),n=this.streamingExtension.format==="sse"?[...r.filter(i=>i.includes("text/event-stream")),...r.filter(i=>!i.includes("text/event-stream"))]:r;for(let i of n){let o=this.responseBody.content?.[i];if(o==null)continue;let s=this.parseMediaTypeObject({mediaTypeObject:o,schemaId:t,contentType:this.streamingExtension.format});if(s!=null)return this.convertStreamingResponse({mediaTypeObject:o,convertedSchema:s})}}}}convertNonStreamingResponseBody(){let t=[...this.group,this.method,"Response",this.statusCode].join("_"),r=Object.keys(this.responseBody.content??{}).filter(o=>o.includes("json"));for(let o of r){let s=this.responseBody.content?.[o];if(s==null)continue;let a=this.parseMediaTypeObject({mediaTypeObject:s,schemaId:t,contentType:o});if(a!=null&&this.shouldReturnJsonResponse(o))return this.returnJsonResponse({mediaTypeObject:s,convertedSchema:a})}let n=Object.keys(this.responseBody.content??{}).filter(o=>!o.includes("json"));for(let o of n){let s=this.responseBody.content?.[o];if(s==null)continue;let a=this.parseMediaTypeObject({mediaTypeObject:s,schemaId:t,contentType:o});if(a!=null){if(this.isBinarySchema(a))return this.shouldReturnBytesResponse()?this.returnBytesResponse({mediaTypeObject:s}):this.returnFileDownloadResponse({mediaTypeObject:s});if(this.shouldReturnTextResponse(o))return this.returnTextResponse({mediaTypeObject:s})}}let i=parseInt(this.statusCode);if(!isNaN(i)&&i>=200&&i<300){let o={schema:{type:"object",description:"Empty response body"}},s=this.parseMediaTypeObject({mediaTypeObject:o,schemaId:t,contentType:"application/json",resolveSchema:!0});if(s!=null)return this.returnJsonResponse({mediaTypeObject:o,convertedSchema:s})}}convertStreamConditionResponse({convertedStreamingSchema:t,convertedNonStreamingSchema:r}){if(t==null||r==null)return;let n=this.responseBody.description;return this.streamingExtension?.type==="streamCondition"&&this.streamingExtension.streamDescription!=null&&(n=this.streamingExtension.streamDescription),{responseBody:tc.json(F0.response({responseBodyType:r.type,docs:this.responseBody.description,v2Examples:r.schema?.typeDeclaration.v2Examples})),streamResponseBody:tc.streaming(zb.json({docs:n,payload:t.type,terminator:this.streamingExtension?.terminator,v2Examples:t.schema?.typeDeclaration.v2Examples})),inlinedTypes:{...t.inlinedTypes,...r.inlinedTypes},headers:this.convertResponseHeaders()}}convertStreamingResponse({mediaTypeObject:t,convertedSchema:r}){if(this.streamingExtension==null)return;switch(this.streamingExtension.format){case"json":return{responseBody:tc.streaming(zb.json({docs:this.responseBody.description,payload:r.type,terminator:this.streamingExtension?.terminator,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()};case"sse":return{responseBody:tc.streaming(zb.sse({docs:this.responseBody.description,payload:r.type,terminator:this.streamingExtension?.terminator,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()};default:return}}returnJsonResponse({mediaTypeObject:t,convertedSchema:r}){return{responseBody:tc.json(F0.response({responseBodyType:r.type,docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})})),streamResponseBody:void 0,inlinedTypes:r.inlinedTypes,examples:r.examples,headers:this.convertResponseHeaders()}}returnBytesResponse({mediaTypeObject:t}){return{responseBody:tc.bytes({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}returnFileDownloadResponse({mediaTypeObject:t}){return{responseBody:tc.fileDownload({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}returnTextResponse({mediaTypeObject:t}){return{responseBody:tc.text({docs:this.responseBody.description,v2Examples:this.convertMediaTypeObjectExamples({mediaTypeObject:t,generateOptionalProperties:!0,exampleGenerationStrategy:"response"})}),streamResponseBody:void 0,inlinedTypes:{},headers:this.convertResponseHeaders()}}isBinarySchema(t){let r=t.type;switch(r.type){case"container":case"named":case"unknown":return!1;case"primitive":return r.primitive.v2==null?!1:r.primitive.v2.type==="string"&&r.primitive.v2.validation?.format==="binary";default:return!1}}shouldConvertAsStreaming(){return this.streamingExtension!=null}shouldReturnJsonResponse(t){return t.includes("json")}shouldReturnBytesResponse(){return this.context.settings.useBytesForBinaryResponse&&this.streamingExtension==null}shouldReturnTextResponse(t){return Wp.parse(t)?.isText()??!1}convertResponseHeaders(){let t=[],r=this.responseBody.headers;if(r==null)return t;for(let[n,i]of Object.entries(r)){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[...this.breadcrumbs,"headers",n]});if(o==null)continue;let s=o.schema,a=Ki.OPTIONAL_STRING;if(s!=null){let c=this.context.resolveMaybeReference({schemaOrReference:s,breadcrumbs:[...this.breadcrumbs,"headers",n,"schema"]});c!=null&&(c.type==="number"||c.type==="integer"?a=Fr.primitive({v1:c.type==="integer"?"INTEGER":"DOUBLE",v2:c.type==="integer"?Qn.integer({default:void 0,validation:void 0}):Qn.double({default:void 0,validation:void 0})}):c.type==="boolean"&&(a=Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})})))}let u=this.convertHeaderExamples({header:o,headerName:n,schema:s});t.push({name:this.context.casingsGenerator.generateNameAndWireValue({name:n,wireValue:n}),docs:o.description,valueType:a,env:void 0,v2Examples:u,availability:void 0})}return t}convertHeaderExamples({header:t,headerName:r,schema:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t.example,s=t.examples;for(let[a,u]of Object.entries(s??{})){let c=this.context.resolveExampleWithValue(u);c!=null&&(i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:c}))}if(o!=null){let a=this.context.generateUniqueName({prefix:`${r}_example`,existingNames:Object.keys(i.userSpecifiedExamples)});i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:o})}if(Object.keys(i.userSpecifiedExamples).length===0&&n!=null){let a=`${r}_example`;i.autogeneratedExamples[a]=this.generateHeaderExample({schema:n,example:void 0,ignoreErrors:!0})}return i}generateHeaderExample({schema:t,example:r,ignoreErrors:n}){if(t==null)return r;let i=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:o,errors:s}=i.convert();return n||s.forEach(a=>{this.context.errorCollector.collect({message:a.message,path:a.path})}),o}};var $mr=class extends Wf.AbstractConverters.AbstractMediaTypeObjectConverter{responseError;statusCode;methodName;isWildcardStatusCode;constructor({context:t,breadcrumbs:r,responseError:n,group:i,method:o,methodName:s,statusCode:a,isWildcardStatusCode:u}){super({context:t,breadcrumbs:r,group:i,method:o}),this.responseError=n,this.statusCode=a,this.methodName=s,this.isWildcardStatusCode=u}convert(){if(!this.responseError.content){let n=this.getErrorNameForStatusCode(this.statusCode,this.isWildcardStatusCode);if(n==null){this.context.logger.warn(`No error name found for status code ${this.statusCode}`);return}let i=this.getErrorIdFromErrorName(n);return{error:{error:{name:this.context.casingsGenerator.generateName(i),fernFilepath:{allParts:[],packagePath:[],file:void 0},errorId:i},docs:this.responseError.description},errorType:Fr.unknown(),displayName:n,statusCode:this.statusCode,isWildcardStatusCode:this.isWildcardStatusCode,inlinedTypes:{},examples:{},headers:this.convertResponseHeaders()}}let t=Object.keys(this.responseError.content).filter(n=>n.includes("json")),r=this.getErrorNameForStatusCode(this.statusCode,this.isWildcardStatusCode);if(r==null){this.context.logger.warn(`No error name found for status code ${this.statusCode}`);return}for(let n of[...t]){let i=this.responseError.content?.[n];if(i==null)continue;let o=this.parseMediaTypeObject({mediaTypeObject:i,schemaId:Ypa(`${this.methodName}Request${r}`),contentType:n});if(o==null)continue;let s=this.getErrorIdFromErrorName(r);if(o.schema!=null)return this.constructErrorConverterOutput({errorName:r,errorId:s,fernFilepath:o.schema.typeDeclaration.name.fernFilepath,convertedSchema:o,mediaTypeObject:i});if(o.type.type==="named")return this.constructErrorConverterOutput({errorName:r,errorId:s,fernFilepath:o.type.fernFilepath,convertedSchema:o,mediaTypeObject:i})}}constructErrorConverterOutput({errorName:t,errorId:r,fernFilepath:n,convertedSchema:i,mediaTypeObject:o}){return{error:{error:{name:this.context.casingsGenerator.generateName(r),fernFilepath:n,errorId:r},docs:this.responseError.description},errorType:i.type,displayName:t,statusCode:this.statusCode,isWildcardStatusCode:this.isWildcardStatusCode,inlinedTypes:i.inlinedTypes,examples:this.convertErrorExamples({mediaTypeObject:o}),headers:this.convertResponseHeaders()}}convertErrorExamples({mediaTypeObject:t}){let r=this.context.getNamedExamplesFromMediaTypeObject({mediaTypeObject:t,breadcrumbs:this.breadcrumbs,defaultExampleName:`${[...this.group,this.method].join("_")}_error_example`});if(r.length===0)return;let n=new Set,i={};for(let[o,s]of r){let a=this.context.resolveExampleWithValue(s),u=this.context.resolveExampleRecursively({example:s,breadcrumbs:this.breadcrumbs}),c=this.getIdForErrorExample({key:o,example:u,usedExampleNames:n});n.add(c),a!=null&&(i[c]=a)}return Object.keys(i).length>0?i:void 0}getIdForErrorExample({key:t,example:r,usedExampleNames:n}){if(this.context.isExampleWithSummary(r)){let i=r.summary;if(!n.has(i))return i;let o=`${i} (${t})`;return n.has(o)?t:o}return t}getErrorNameForStatusCode(t,r){if(r){if(t===400)return"ClientRequestError";if(t===500)return"ServerError"}return _mr[t]}getErrorIdFromErrorName(t){return this.context.enableUniqueErrorsPerEndpoint?Ypa(`${this.methodName}Request${t}`):t}convertResponseHeaders(){let t=[],r=this.responseError.headers;if(r==null)return t;for(let[n,i]of Object.entries(r)){let o=this.context.resolveMaybeReference({schemaOrReference:i,breadcrumbs:[...this.breadcrumbs,"headers",n]});if(o==null)continue;let s=o.schema,a=Ki.OPTIONAL_STRING;if(s!=null){let c=this.context.resolveMaybeReference({schemaOrReference:s,breadcrumbs:[...this.breadcrumbs,"headers",n,"schema"]});c!=null&&(c.type==="number"||c.type==="integer"?a=Fr.primitive({v1:c.type==="integer"?"INTEGER":"DOUBLE",v2:c.type==="integer"?Qn.integer({default:void 0,validation:void 0}):Qn.double({default:void 0,validation:void 0})}):c.type==="boolean"&&(a=Fr.primitive({v1:"BOOLEAN",v2:Qn.boolean({default:void 0})})))}let u=this.convertHeaderExamples({header:o,headerName:n,schema:s});t.push({name:this.context.casingsGenerator.generateNameAndWireValue({name:n,wireValue:n}),docs:o.description,valueType:a,env:void 0,v2Examples:u,availability:void 0})}return t}convertHeaderExamples({header:t,headerName:r,schema:n}){let i={userSpecifiedExamples:{},autogeneratedExamples:{}},o=t.example,s=t.examples;for(let[a,u]of Object.entries(s??{})){let c=this.context.resolveExampleWithValue(u);c!=null&&(i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:c}))}if(o!=null){let a=this.context.generateUniqueName({prefix:`${r}_example`,existingNames:Object.keys(i.userSpecifiedExamples)});i.userSpecifiedExamples[a]=this.generateHeaderExample({schema:n,example:o})}if(Object.keys(i.userSpecifiedExamples).length===0&&n!=null){let a=`${r}_example`;i.autogeneratedExamples[a]=this.generateHeaderExample({schema:n,example:void 0,ignoreErrors:!0})}return i}generateHeaderExample({schema:t,example:r,ignoreErrors:n}){if(t==null)return r;let i=new iE({breadcrumbs:this.breadcrumbs,context:this.context,schema:t,example:r}),{validExample:o,errors:s}=i.convert();return n||s.forEach(a=>{this.context.errorCollector.collect({message:a.message,path:a.path})}),o}};function Ypa(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}var Hmr=class e extends WVe{idempotent;idToAuthScheme;topLevelServers;pathLevelServers;streamingExtension;static AUTHORIZATION_HEADER="Authorization";constructor({context:t,breadcrumbs:r,operation:n,method:i,path:o,idempotent:s,idToAuthScheme:a,topLevelServers:u,pathLevelServers:c,streamingExtension:l}){super({context:t,breadcrumbs:r,operation:n,method:i,path:o}),this.idempotent=s,this.idToAuthScheme=a,this.topLevelServers=u,this.pathLevelServers=c,this.streamingExtension=l}convert(){let t=this.convertHttpMethod();if(t==null)return;let{group:r,method:n}=this.computeGroupNameAndLocationFromExtensions()??this.computeGroupNameFromTagAndOperationId(),i=this.getGroupDisplayName(r),{headers:o,pathParameters:s,queryParameters:a}=this.convertParameters({breadcrumbs:[...this.breadcrumbs,"parameters"]}),u=this.convertRequestBody({breadcrumbs:[...this.breadcrumbs,"requestBody"],group:r,method:n,streamingExtension:this.streamingExtension,queryParameters:a}),c=u?.[0]?.requestBody,l=u?.[0]?.streamRequestBody,p={requestBodies:u?.map(H=>H.requestBody)},d=this.convertResponseBody({breadcrumbs:[...this.breadcrumbs,"responses"],group:r,method:n,streamingExtension:this.streamingExtension}),f=d?.response,m=d?.streamResponse,h=d!=null?d.errors:[],g={},A=h.map(H=>H.error),b=vy(this.path),v=this.getEndpointBaseUrl(),E=this.getEndpointBaseUrls(),I=this.convertExamples({httpPath:b,httpMethod:t,baseUrl:v}),w=new Set(this.operation.security?.flatMap(H=>Object.keys(H))??[]),x=this.authSchemeToHeaders(Array.from(w));x.length>0&&o.push(...x);for(let H of h){let Ee=H.error,Ce=H.errorType,J=Ee.error.errorId,K=H.examples;g[J]={name:Ee.error,displayName:H.displayName,discriminantValue:{name:Ee.error.name,wireValue:J},type:Ce,statusCode:H.statusCode,isWildcardStatusCode:H.isWildcardStatusCode,docs:Ee.docs,examples:[],v2Examples:{userSpecifiedExamples:K??{},autogeneratedExamples:{}},headers:H.headers}}let C=this.context.getAudiences({operation:this.operation,breadcrumbs:this.breadcrumbs})??[],R=new LIt({context:this.context,breadcrumbs:this.breadcrumbs,document:this.context.spec}).convert(),z=new LIt({context:this.context,breadcrumbs:this.breadcrumbs,document:this.operation}).convert()??R,Y={displayName:this.operation.summary,method:t,baseUrl:v,v2BaseUrls:E,path:b,pathParameters:s,queryParameters:a,headers:o.filter((H,Ee,Ce)=>Ee===Ce.findIndex(J=>J.name.wireValue===H.name.wireValue)),responseHeaders:d?.responseHeaders,sdkRequest:void 0,errors:A,auth:this.computeEndpointAuth(),security:this.computeEndpointSecurity(),availability:this.context.getAvailability({node:this.operation,breadcrumbs:this.breadcrumbs}),userSpecifiedExamples:[],autogeneratedExamples:[],idempotent:this.idempotent??!1,basePath:void 0,fullPath:b,allPathParameters:s,pagination:void 0,transport:void 0,source:uS.openapi(),audiences:C,retries:void 0,apiPlayground:z},oe=this.context.namespace!=null?[this.context.namespace]:[],V=r?.map(H=>Un(H));return oe.push(...V??[]),{audiences:C,group:r,groupDisplayName:i,errors:g,endpoint:{...Y,id:`endpoint_${oe.join("/")}.${n}`,name:this.context.casingsGenerator.generateName(n),requestBody:c,v2RequestBodies:p,response:f,docs:this.operation.description,v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:I.examples},v2Responses:{responses:d?.v2Responses}},streamEndpoint:m!=null&&m.body!=null?{...Y,id:`endpoint_${oe.join("/")}.${n}_stream`,name:this.context.casingsGenerator.generateName(`${n}_stream`),requestBody:l,v2RequestBodies:void 0,response:m,docs:this.streamingExtension?.type==="streamCondition"?this.streamingExtension.streamDescription??this.operation.description:this.operation.description,v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:I.streamExamples},v2Responses:{responses:[{statusCode:200,isWildcardStatusCode:void 0,body:m.body,docs:m.docs}]}}:void 0,inlinedTypes:this.inlinedTypes,servers:this.filterOutTopLevelServers(this.operation.servers??this.pathLevelServers??[])}}convertResponseBody({breadcrumbs:t,group:r,method:n,streamingExtension:i}){if(this.operation.responses==null)return;let o,s=!1;for(let[a,u]of Object.entries(this.operation.responses)){let c=/^[45]XX$/i.test(a),l,p=!1;if(c)l=parseInt(a.charAt(0))*100,p=!0;else{if(l=parseInt(a),isNaN(l)||l<200||l>=300&&l<400)continue;p=l>=400&&l<600}if(o==null&&(o={response:void 0,v2Responses:void 0,streamResponse:void 0,errors:[],examples:{},responseHeaders:[]}),l>=200&&l<300){let d=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:[...t,a]});if(d==null)continue;let m=new UIt({context:this.context,breadcrumbs:[...t,a],responseBody:d,group:r??[],method:n,statusCode:a,streamingExtension:i}).convert();m!=null&&(this.inlinedTypes={...this.inlinedTypes,...m.inlinedTypes},s||(s=!0,o.response={statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.responseBody,docs:d.description},o.streamResponse={statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.streamResponseBody,docs:d.description},m.headers!=null&&(o.responseHeaders=m.headers)),o.v2Responses=[...o.v2Responses??[],{statusCode:l,isWildcardStatusCode:c?!0:void 0,body:m.responseBody,docs:d.description}])}if(p){let d=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:[...t,a]});if(d==null)continue;let m=new $mr({context:this.context,breadcrumbs:[...t,a],responseError:d,group:r??[],method:n,methodName:this.evaluateMethodNameFromOperation(),statusCode:l,isWildcardStatusCode:c?!0:void 0}).convert();m!=null&&(this.inlinedTypes={...this.inlinedTypes,...m.inlinedTypes},o.errors.push(m))}}if(this.streamingExtension!=null){o==null&&(o={response:void 0,v2Responses:void 0,streamResponse:void 0,errors:[],examples:{},responseHeaders:[]});let u=new UIt({context:this.context,breadcrumbs:[...t,"stream"],responseBody:{description:""},group:r??[],method:n,statusCode:"stream",streamingExtension:i}).convert();u!=null&&(this.inlinedTypes={...this.inlinedTypes,...u.inlinedTypes},o.response={statusCode:200,isWildcardStatusCode:void 0,body:u.responseBody,docs:void 0},o.streamResponse={statusCode:200,isWildcardStatusCode:void 0,body:u.streamResponseBody,docs:void 0},o.v2Responses=[{statusCode:200,isWildcardStatusCode:void 0,body:u.responseBody,docs:void 0}])}return o}computeEndpointAuth(){return this.operation.security!=null&&this.operation.security.length===0?!1:this.operation.security!=null&&this.operation.security.length>0?!0:this.context.spec.security!=null&&this.context.spec.security.length>0||this.shouldApplyDefaultAuthOverrides()}computeEndpointSecurity(){return this.operation.security!=null&&this.operation.security.length===0?[]:this.context.authOverrides?.auth!=null?this.getDefaultSecurityFromAuthOverrides():this.operation.security??this.context.spec.security}shouldApplyDefaultAuthOverrides(){if(!this.context.authOverrides?.auth)return!1;let t=this.context.spec.security!=null&&this.context.spec.security.length>0,r=this.operation.security!=null&&this.operation.security.length>0;return!(t||r)}getDefaultSecurityFromAuthOverrides(){if(!this.context.authOverrides?.auth)return;let t=this.context.authOverrides.auth;if(typeof t=="string"){let r={};return r[t]=[],[r]}if(typeof t=="object"&&"any"in t){let r=t.any;if(Array.isArray(r))return r.map(n=>{let i=typeof n=="string"?n:n.scheme,o={};return o[i]=[],o})}}authSchemeToHeaders(t){let r=[];for(let n of t){let i=this.idToAuthScheme?.[n];if(i==null)continue;let o={valueType:Ki.STRING,availability:void 0,docs:void 0,env:void 0,v2Examples:void 0};switch(i.type){case"bearer":r.push({name:{name:this.context.casingsGenerator.generateName(e.AUTHORIZATION_HEADER),wireValue:e.AUTHORIZATION_HEADER},...o});break;case"basic":r.push({name:{name:this.context.casingsGenerator.generateName(e.AUTHORIZATION_HEADER),wireValue:e.AUTHORIZATION_HEADER},...o});break;case"header":r.push({name:i.name,...o});break}}return r}convertExamples({httpPath:t,httpMethod:r,baseUrl:n}){let o=new Gmr({context:this.context,breadcrumbs:this.breadcrumbs,operation:this.operation,baseDir:this.context.documentBaseDir}).convert()??[],a=new Vmr({context:this.context,breadcrumbs:this.breadcrumbs,operation:this.operation,baseDir:this.context.documentBaseDir}).convert()??[],c=o.some(l=>Array.isArray(l["code-samples"])&&l["code-samples"].length>0)?o:[...o,...a];return c.length===0?{examples:{},streamExamples:{}}:this.streamingExtension?.type==="streamCondition"?this.convertStreamConditionExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:c}):{examples:this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:c}),streamExamples:{}}}convertStreamConditionExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:i}){let o=i.filter(c=>!(c.response!=null&&"stream"in c.response)),s=i.filter(c=>c.response!=null&&"stream"in c.response),a=this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:o}),u=this.convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:s});return{examples:a,streamExamples:u}}convertEndpointExamples({httpPath:t,httpMethod:r,baseUrl:n,fernExamples:i}){return Object.fromEntries(i.map((o,s)=>[this.getExampleName({example:o,exampleIndex:s}),{displayName:void 0,request:o.request!=null||o["path-parameters"]!=null||o["query-parameters"]!=null||o.headers!=null?{docs:void 0,endpoint:{method:r,path:this.buildExamplePath(t,o["path-parameters"]??{})},baseUrl:void 0,environment:n,auth:void 0,pathParameters:o["path-parameters"]??{},queryParameters:o["query-parameters"]??{},headers:o.headers??{},requestBody:o.request??void 0}:void 0,response:o.response!=null?{docs:void 0,statusCode:void 0,body:this.getExampleResponseBody({example:o})}:void 0,codeSamples:o["code-samples"]?.map(a=>{let u=("language"in a?a.language:a.sdk)??void 0;return{name:a.name,docs:void 0,language:u,code:a.code}})}]))}getExampleName({example:t,exampleIndex:r}){return t.name??t["code-samples"]?.[0]?.name??`Example_${r}`}getExampleResponseBody({example:t}){if(t.response!=null){if("stream"in t.response)return Gt.V2HttpEndpointResponseBody.stream(t.response.stream);if("body"in t.response)return Gt.V2HttpEndpointResponseBody.json(t.response.body)}}getEndpointBaseUrl(){let r=new zI.ServerFromOperationNameExtension({breadcrumbs:this.breadcrumbs,operation:this.operation,context:this.context}).convert();if(r!=null)return this.context.logger.debug(`[getEndpointBaseUrl] Endpoint ${this.method.toUpperCase()} ${this.path} specifies a server with "${En.SERVER_NAME_V2}" extension. Returning server type: ${r}`),r;let n=this.operation.servers?.[0]??this.pathLevelServers?.[0];if(n==null)return;let o=this.topLevelServers?.find(s=>s.url===n.url)??n;return RQ.getServerName({server:o,context:this.context})}getEndpointBaseUrls(){let t=this.operation.servers??this.pathLevelServers;return t?.map(n=>{let o=this.topLevelServers?.find(s=>s.url===n.url)??n;return RQ.getServerName({server:o,context:this.context})})}buildExamplePath(t,r){return t.head+t.parts.map(n=>`${r[n.pathParameter]?.toString()??n.pathParameter}${n.tail}`).join("")}filterOutTopLevelServers(t){return t.filter(r=>!this.topLevelServers?.some(n=>n.url===r.url))}getGroupDisplayName(t){let r=this.operation.tags?.[0];r!=null&&(r=this.context.getDisplayNameForTag(r));let n=t?.[t.length-1];if(n!=null&&r!=null)return r.toLowerCase().replaceAll(" ","")===n?r:void 0}};var Kmr=class extends Ki{pathItem;path;idToAuthScheme;topLevelServers;constructor({context:t,breadcrumbs:r,pathItem:n,path:i,idToAuthScheme:o,topLevelServers:s}){super({context:t,breadcrumbs:r}),this.pathItem=n,this.path=i,this.idToAuthScheme=o,this.topLevelServers=s}convert(){let t=[],r=[],n={};for(let i of Hpa){let o=this.pathItem[i];if(o==null)continue;let s=[...this.breadcrumbs,i],a=this.tryParseAsWebhook({operationBreadcrumbs:s,operation:o,method:i,context:this.context});if(a!=null){r.push(a),Object.assign(n,a.inlinedTypes);continue}let c=new Umr({breadcrumbs:s,operation:o,context:this.context}).convert();c==null&&this.operationHasTextEventStreamResponse(o)&&(c={type:"stream",format:"sse",terminator:void 0});let l=this.tryParseAsHttpEndpoint({operationBreadcrumbs:s,operation:o,method:i,streamingExtension:c});l!=null&&(t.push(l),Object.assign(n,l.inlinedTypes))}return{endpoints:t,webhooks:r,inlinedTypes:n}}tryParseAsWebhook({operation:t,method:r,operationBreadcrumbs:n,context:i}){return new zmr({breadcrumbs:n,operation:t,context:i}).convert()?new $Ve({context:this.context,breadcrumbs:n,operation:t,method:YIi.OpenAPIV3.HttpMethods[r.toUpperCase()],path:this.path}).convert():void 0}operationHasTextEventStreamResponse(t){if(t.responses==null)return!1;for(let[r,n]of Object.entries(t.responses)){let i=parseInt(r);if(isNaN(i)||i<200||i>=300)continue;let o=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:this.breadcrumbs});if(o?.content==null)continue;let s=Object.keys(o.content);if(s.length===1&&s[0]?.includes("text/event-stream"))return!0}return!1}tryParseAsHttpEndpoint({operation:t,method:r,operationBreadcrumbs:n,streamingExtension:i}){new Lmr({breadcrumbs:n,operation:t,document:this.context.spec,context:this.context}).convert()!=null;let u=new Mmr({breadcrumbs:n,operation:t,context:this.context}).convert();return new Hmr({context:this.context,breadcrumbs:n,operation:t,method:YIi.OpenAPIV3.HttpMethods[r.toUpperCase()],path:this.path,idempotent:u,idToAuthScheme:this.idToAuthScheme,topLevelServers:this.topLevelServers,pathLevelServers:this.pathItem.servers,streamingExtension:i}).convert()}};var Jmr=class extends Ki{securityScheme;schemeId;constructor({context:t,breadcrumbs:r,securityScheme:n,schemeId:i}){super({context:t,breadcrumbs:r}),this.securityScheme=n,this.schemeId=i}getExtension(t){return this.securityScheme[t]}convert(){switch(this.securityScheme.type){case"http":{if(this.securityScheme.scheme?.toLowerCase()==="bearer"){let t=this.getExtension("x-fern-bearer"),r=t?.name??"token",n=t?.env;return Ep.bearer({key:this.schemeId,token:this.context.casingsGenerator.generateName(r),tokenEnvVar:n,docs:this.securityScheme.description})}if(this.securityScheme.scheme?.toLowerCase()==="basic"){let t=this.getExtension("x-fern-basic"),r=t?.username?.name??"username",n=t?.password?.name??"password",i=t?.username?.env,o=t?.password?.env;return Ep.basic({key:this.schemeId,username:this.context.casingsGenerator.generateName(r),password:this.context.casingsGenerator.generateName(n),usernameEnvVar:i,passwordEnvVar:o,usernameOmit:!1,passwordOmit:!1,docs:this.securityScheme.description})}break}case"apiKey":{if(this.securityScheme.in==="header"){let t=this.getExtension("x-fern-header"),r=t?.name??"apiKey",n=t?.env,i=t?.prefix;return Ep.header({key:this.schemeId,name:{name:this.context.casingsGenerator.generateName(r),wireValue:this.securityScheme.name},valueType:Ki.OPTIONAL_STRING,prefix:i,headerEnvVar:n,docs:this.securityScheme.description})}break}case"oauth2":return Ep.bearer({key:this.schemeId,token:this.context.casingsGenerator.generateName("token"),tokenEnvVar:void 0,docs:this.securityScheme.description})}}};var zIt=class extends z6{constructor({breadcrumbs:t,context:r,audiences:n}){super({breadcrumbs:t,context:r,audiences:n})}async convert(){this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.context.spec=await this.resolveAllExternalRefs({spec:this.context.spec}),this.overrideOpenApiAuthWithGeneratorsAuth(),this.convertSecuritySchemes(),this.convertGlobalHeaders(),this.convertBasePath(),this.convertSchemas(),this.convertWebhooks();let{endpointLevelServers:t,errors:r}=this.convertPaths();this.addErrorsToIr(r);let{defaultUrl:n}=this.convertServers({endpointLevelServers:t});this.updateEndpointsWithDefaultUrl(n);let i=this.context.spec.info?.title?.trim();return i&&i!=='""'&&(this.ir.apiDisplayName=i),this.finalizeIr()}convertGlobalHeaders(){this.context.globalHeaderOverrides;let r=new Qmr({breadcrumbs:["x-fern-global-headers"],document:this.context.spec,context:this.context}).convert();if(r!=null){let n=Wpa({globalHeaders:r,context:this.context});this.addGlobalHeadersToIr(n),this.context.setGlobalHeaders(n)}}convertBasePath(){let r=new kmr({breadcrumbs:["x-fern-base-path"],document:this.context.spec,context:this.context}).convert();r!=null&&(this.ir.basePath=vy(r))}convertSecuritySchemes(){if(this.context.authOverrides){let r=nEt({rawApiFileSchema:this.context.authOverrides,casingsGenerator:this.context.casingsGenerator});this.addAuthToIR({requirement:r.requirement,schemes:r.schemes,docs:r.docs});return}let t=this.convertOpenApiSecuritySchemes();t.length>0&&this.addAuthToIR({requirement:t.length===1?"ALL":"ANY",schemes:t,docs:void 0})}convertOpenApiSecuritySchemes(){let t=[];for(let[r,n]of Object.entries(this.context.spec.components?.securitySchemes??{})){let i=this.context.resolveMaybeReference({schemaOrReference:n,breadcrumbs:["components","securitySchemes",r]});if(i==null)continue;let s=new Jmr({context:this.context,breadcrumbs:["components","securitySchemes",r],securityScheme:i,schemeId:r}).convert();s!=null&&t.push(s)}return t}convertServers({endpointLevelServers:t}){if(this.context.environmentOverrides){let i=iEt({rawApiFileSchema:this.context.environmentOverrides,casingsGenerator:this.context.casingsGenerator});return i!=null&&this.addEnvironmentsToIr({environmentConfig:i.environmentsConfig,audiences:i.audiences}),{defaultUrl:this.context.environmentOverrides["default-url"]}}let n=new RQ({context:this.context,breadcrumbs:["servers"],servers:this.context.spec.servers,endpointLevelServers:t}).convert();return this.addEnvironmentsToIr({environmentConfig:n?.value}),{defaultUrl:n?.defaultUrl}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{})){let i=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:["components","schemas",t],schema:r}).convert();i!=null&&this.addSchemaOutputToIr(t,i)}}convertWebhooks(){for(let[t,r]of Object.entries(this.context.spec.webhooks??{})){if(r==null){this.context.errorCollector.collect({message:"Skipping empty webhook",path:this.breadcrumbs});continue}if(!("post"in r)||r.post==null){this.context.errorCollector.collect({message:"Skipping webhook as it is not a POST method",path:this.breadcrumbs});continue}let n=r.post.operationId??t,i=r.post.operationId!=null?r.post:{...r.post,operationId:n},s=new $Ve({context:this.context,breadcrumbs:["webhooks",n],operation:i,method:Xpa.OpenAPIV3.HttpMethods.POST,path:n}).convert();s!=null&&(this.addWebhookToIr({webhook:s.webhook,operationId:n,audiences:s.audiences,group:s.group}),this.addTypesToIr(s.inlinedTypes))}}convertPaths(){let t=[],r={};for(let[n,i]of Object.entries(this.context.spec.paths??{})){if(i==null)continue;let s=new Kmr({context:this.context,breadcrumbs:["paths",n],topLevelServers:this.context.spec.servers,pathItem:i,path:n}).convert();if(s!=null){for(let a of s.endpoints){if(a.streamEndpoint!=null&&this.addEndpointToIr({endpoint:a.streamEndpoint,audiences:a.audiences,endpointGroup:a.group,endpointGroupDisplayName:a.groupDisplayName}),this.addEndpointToIr({endpoint:a.endpoint,audiences:a.audiences,endpointGroup:a.group,endpointGroupDisplayName:a.groupDisplayName}),a.servers)for(let u of a.servers)this.shouldAddServerToCollectedServers({server:u,currentServers:t})&&t.push(u);if(a.errors)for(let[u,c]of Object.entries(a.errors))r[u]=c}for(let a of s.webhooks){let u=this.context.getGroup({groupParts:a.group,namespace:this.context.namespace});this.addWebhookToIr({webhook:a.webhook,operationId:u.join("."),group:u,audiences:a.audiences})}this.addTypesToIr(s.inlinedTypes)}}return{endpointLevelServers:t,errors:r}}overrideOpenApiAuthWithGeneratorsAuth(){if(!this.context.authOverrides?.["auth-schemes"])return;this.context.spec.components||(this.context.spec.components={}),this.context.spec.components.securitySchemes={};let t={};for(let r of Object.keys(this.context.authOverrides["auth-schemes"]))this.context.spec.components.securitySchemes[r]={type:"http",scheme:"bearer"},t[r]=[];this.context.spec.security=[t],this.removeEndpointSpecificAuth()}removeEndpointSpecificAuth(){if(this.context.spec.paths)for(let t of Object.values(this.context.spec.paths)){if(!t)continue;let r=["get","post","put","patch","delete","options","head","trace"];for(let n of r){let i=t[n];i?.security&&delete i.security}}}};var Ymr=class extends _a{tag;key="x-displayName";constructor({breadcrumbs:t,tag:r,context:n}){super({breadcrumbs:t,context:n}),this.tag=r}convert(){if(typeof this.tag!="object"||this.tag==null)return;let t=this.tag[this.key];if(t!=null){if(typeof t!="string"){this.context.errorCollector.collect({message:"x-displayName extension must be a string",path:this.breadcrumbs});return}if(t.trim().length!==0)return{displayName:t}}}};var Goe=class extends QA{globalHeaderNames;tagToDisplayName={};isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o=this.getTypeIdFromSchemaReference(t);if(o==null)return{ok:!1};let s=this.getRawSchemaNameFromReference(t)??o,a=this.resolveReference({reference:t,breadcrumbs:r});if(!a.resolved)return{ok:!1};let u;i==="reference_identifier"?u=n??a.value.title:i==="discriminator_key"?u=a.value.title??n:i==="schema_identifier"&&(u=a.value.title);let c;if(o.includes("/")){let p=new Wf.SchemaConverters.SchemaConverter({context:this,breadcrumbs:r??[],schema:a.value,id:o}).convert();p!=null&&(c={[o]:p.convertedSchema})}return{ok:!0,reference:Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(s),typeId:o,default:void 0,inline:!1,displayName:u}),inlinedTypes:c}}setGlobalHeaders(t){this.globalHeaderNames=t.map(r=>r.name.wireValue)}getDisplayNameForTag(t){if(Object.keys(this.tagToDisplayName).length===0)for(let r of this.spec.tags??[]){let i=new Ymr({breadcrumbs:["tags",r.name],tag:r,context:this}).convert()?.displayName??r.name;this.tagToDisplayName[r.name]=i}return this.tagToDisplayName[t]??t}};St();var w8p=mt.object({description:mt.string().optional(),required:mt.boolean().optional(),deprecated:mt.boolean().optional(),allowEmptyValue:mt.boolean().optional(),style:mt.string().optional(),explode:mt.boolean().optional(),allowReserved:mt.boolean().optional(),schema:mt.any().optional(),example:mt.any().optional(),examples:mt.record(mt.string(),mt.any()).optional(),content:mt.record(mt.string(),mt.any()).optional()}),C8p=w8p.extend({name:mt.string(),in:mt.string()}),x8p=mt.array(C8p),Xmr=class extends _a{operation;key="x-fern-parameters";constructor({breadcrumbs:t,operation:r,context:n}){super({breadcrumbs:t,context:n}),this.operation=r}convert(){let t=this.getExtensionValue(this.operation);if(t!=null)try{return x8p.parse(t)}catch(r){this.context.errorCollector.collect({message:`Failed to parse x-fern-parameters extension: ${xi(r)}`,path:this.breadcrumbs});return}}};var Zmr=class extends Ki{method;pathParameters;queryParameters;headers;topLevelServers;constructor({context:t,breadcrumbs:r,method:n,pathParameters:i=[],queryParameters:o=[],headers:s=[],topLevelServers:a=[]}){super({context:t,breadcrumbs:r}),this.method=n,this.pathParameters=i,this.queryParameters=o,this.headers=s,this.topLevelServers=a}convert(){let t={},r="";for(let c of this.pathParameters)r+=`/{${c.name.originalName}}`;let n=vy(r),i=[];for(let[c,l]of this.method.params.entries()){let p;if(this.context.isReferenceObject(l)){let h=this.context.resolveReference({reference:l});if(h.resolved)p=h.value;else continue}else p=l;let d=[this.method.name,"Param",p.name].join("_"),m=new Wf.SchemaConverters.SchemaOrReferenceConverter({breadcrumbs:[this.method.name,"Param",p.name],schemaIdOverride:d,context:this.context,schemaOrReference:p.schema,wrapAsOptional:!p.required}).convert();m!=null&&(i.push({docs:p.description,availability:this.context.getAvailability({node:l,breadcrumbs:[...this.breadcrumbs,"parameters"]}),name:this.context.casingsGenerator.generateNameAndWireValue({name:p.name,wireValue:p.name}),valueType:m.type,v2Examples:m.schema?.typeDeclaration.v2Examples,propertyAccess:void 0}),t={...m.inlinedTypes,...t,...m.schema!=null?{[d]:m.schema}:{}})}let o;if(this.method.result!=null){let c=this.context.resolveMaybeReference({schemaOrReference:this.method.result,breadcrumbs:[...this.breadcrumbs,"result"]});if(c!=null){let l=new Wf.SchemaConverters.SchemaOrReferenceConverter({breadcrumbs:[this.method.name,"result"],context:this.context,schemaOrReference:c.schema}),p=[this.method.name,"Result"].join("_"),d=l.convert();d!=null&&(o={docs:c.description,v2Examples:d.schema?.typeDeclaration.v2Examples,responseBodyType:d.type},t={...d.inlinedTypes,...t,...d.schema!=null?{[p]:d.schema}:{}})}}let s=this.getEndpointBaseUrls(),a=this.context.getAudiences({operation:this.method,breadcrumbs:this.breadcrumbs})??[];return{endpoint:{baseUrl:void 0,v2BaseUrls:s,basePath:void 0,auth:!1,security:void 0,method:"POST",id:this.method.name,docs:this.method.description,name:this.context.casingsGenerator.generateName(this.method.name),headers:this.headers,displayName:this.method.name,pathParameters:this.pathParameters,queryParameters:this.queryParameters,allPathParameters:this.pathParameters,path:n,fullPath:n,requestBody:i.length>0?Rf.inlinedRequestBody({name:this.context.casingsGenerator.generateName([this.method.name,"Request"].join("_")),docs:void 0,properties:i,extends:[],extendedProperties:[],contentType:"application/json",extraProperties:!1,v2Examples:void 0}):void 0,v2RequestBodies:void 0,sdkRequest:void 0,response:o!=null?{body:tc.json(F0.response(o)),statusCode:void 0,isWildcardStatusCode:void 0,docs:o.docs}:void 0,v2Responses:void 0,errors:[],idempotent:!1,pagination:void 0,userSpecifiedExamples:[],autogeneratedExamples:[],v2Examples:{autogeneratedExamples:{},userSpecifiedExamples:this.convertExamples()},transport:void 0,availability:void 0,source:uS.openrpc(),audiences:a,retries:void 0,apiPlayground:void 0,responseHeaders:[]},audiences:a,inlinedTypes:t,servers:this.filterOutTopLevelServers(this.method.servers??[])}}filterOutTopLevelServers(t){return t.filter(r=>!this.topLevelServers.some(n=>n.url===r.url))}getEndpointBaseUrls(){let t=this.method.servers;return t?.map(n=>{if(this.topLevelServers.find(a=>a.name===n.name&&a.url!==n.url)!=null)return n.url;let s=this.topLevelServers.find(a=>a.url===n.url)??n;return RQ.getServerName({server:s,context:this.context})})}convertExamples(){let t={},r=0;if(this.method.examples&&this.method.examples.length>0){for(let n of this.method.examples??[]){let i;if(this.context.isReferenceObject(n)){let u=this.context.resolveReference({reference:n});if(u.resolved)i=u.value;else continue}else i=n;let o;if(i.result)if(this.context.isReferenceObject(i.result)){let u=this.context.resolveReference({reference:i.result});u.resolved&&(o=u.value)}else o=i.result;let s=i.name??`Example ${r+1}`,a=[];if(i.params&&Array.isArray(i.params)){a=[];for(let u of i.params)if(this.context.isReferenceObject(u)){let c=this.context.resolveReference({reference:u});if(c.resolved)a.push(c.value);else continue}else a.push(u)}t[s]={displayName:void 0,request:{docs:void 0,endpoint:{method:"POST",path:"/{apiKey}"},baseUrl:void 0,environment:void 0,auth:void 0,pathParameters:{},queryParameters:{},headers:{},requestBody:a.map(u=>u.value)??void 0},response:{docs:void 0,statusCode:void 0,body:o?.value?Gt.V2HttpEndpointResponseBody.json({jsonrpc:"2.0",id:i.examplePairedRequest?.id||"1",result:o.value}):void 0},codeSamples:[]}}++r}return t}};var ehr=class extends Wf.AbstractConverters.AbstractParameterConverter{constructor({context:t,breadcrumbs:r,parameter:n}){super({context:t,breadcrumbs:r,parameter:n})}convert(){let t,r={};if(this.parameter.schema!=null){let i=new Wf.SchemaConverters.SchemaOrReferenceConverter({context:this.context,breadcrumbs:[...this.breadcrumbs,"schema"],schemaOrReference:this.parameter.schema,wrapAsOptional:this.parameter.required==null||!this.parameter.required}).convert();i!=null&&(t=i.type,r=i.inlinedTypes??{})}return this.convertToOutput({schema:this.parameter.schema??{type:"string"},typeReference:t,inlinedTypes:r})}};var VIt=class extends z6{constructor({context:t,breadcrumbs:r,audiences:n}){super({context:t,breadcrumbs:r,audiences:n})}async convert(){this.context.spec=this.removeXFernIgnores({document:this.context.spec}),this.convertSchemas();let{endpointLevelServers:t}=this.convertMethods(),{defaultUrl:r}=this.convertServers({endpointLevelServers:t});return this.updateEndpointsWithDefaultUrl(r),this.finalizeIr()}convertServers({endpointLevelServers:t}){let n=new RQ({context:this.context,breadcrumbs:["servers"],servers:this.context.spec.servers,endpointLevelServers:t}).convert();return this.addEnvironmentsToIr({environmentConfig:n?.value}),{defaultUrl:n?.defaultUrl}}convertSchemas(){for(let[t,r]of Object.entries(this.context.spec.components?.schemas??{})){let i=new Wf.SchemaConverters.SchemaConverter({context:this.context,id:t,breadcrumbs:["components","schemas",t],schema:r}).convert();i!=null&&this.addSchemaOutputToIr(t,i)}}convertMethods(){let t=[],n=new Xmr({context:this.context,breadcrumbs:["methods"],operation:this.context.spec}).convert(),i=[],o=[],s=[];if(n&&n.length>0)for(let[u,c]of n.entries()){let p=new ehr({context:this.context,breadcrumbs:[...this.breadcrumbs,`x-fern-parameters[${u}]`],parameter:c}).convert();if(p!=null)switch(p.type){case"path":{i.push(p.parameter);break}case"query":{o.push(p.parameter);break}case"header":{s.push(p.parameter);break}}}let a=this.context.getGroup({groupParts:[],namespace:this.context.namespace});for(let u of this.context.spec.methods??[]){let c=this.context.resolveMaybeReference({schemaOrReference:u,breadcrumbs:["methods"]});if(c==null)continue;let p=new Zmr({context:this.context,breadcrumbs:["methods"],method:c,pathParameters:i,queryParameters:o,headers:s,topLevelServers:this.context.spec.servers}).convert();if(p!=null&&(this.addEndpointToIr({endpoint:p.endpoint,audiences:p.audiences,endpointGroup:a,serviceName:"service_root"}),this.addTypesToIr(p.inlinedTypes),p.servers))for(let d of p.servers)this.shouldAddServerToCollectedServers({server:d,currentServers:t,specType:"openrpc"})&&t.push(this.maybeDeduplicateServerName(d))}return{endpointLevelServers:t}}maybeDeduplicateServerName(t){return this.context.spec.servers?.find(n=>n.name===t.name&&n.url!==t.url)?{...t,name:t.url}:t}};var qIt=class extends QA{isReferenceObject(t){return t!=null&&"$ref"in t}convertReferenceToTypeReference({reference:t,breadcrumbs:r,displayNameOverride:n,displayNameOverrideSource:i}){let o=this.getTypeIdFromSchemaReference(t);if(o==null)return{ok:!1};let s=this.resolveReference({reference:t,breadcrumbs:r});if(!s.resolved)return{ok:!1};let a;return i==="reference_identifier"?a=n??s.value.title:(i==="discriminator_key"||i==="schema_identifier")&&(a=s.value.title??n),{ok:!0,reference:Fr.named({fernFilepath:{allParts:[],packagePath:[],file:void 0},name:this.casingsGenerator.generateName(o),typeId:o,displayName:a,default:void 0,inline:!1})}}};var bga=require("fs/promises");var Zpa=require("fs/promises");async function XIi({context:e,absoluteFilePath:t,absoluteFilePathToOverrides:r}){let n=(await(0,Zpa.readFile)(t)).toString(),i;try{i=JSON.parse(n)}catch{i=xr.load(n)}let o=[];r!=null&&(Array.isArray(r)?o=r:o=[r]);let s=i;for(let a of o)s=await NVe({absoluteFilePathToOverrides:a,context:e,data:s});return s}qt();var Sda=xe(_da(),1);function yVp(e,t){if(!t)return;if(e.catch(()=>{}),t.aborted){e.kill();return}let r=()=>{e.kill()};t.addEventListener("abort",r,{once:!0}),e.finally(()=>t.removeEventListener("abort",r)).catch(()=>{})}function FQ(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:o={},signal:s,...a}={}){let u=i.reduce((p,d)=>({...p,[d]:"<redacted>"}),o),c=[t,...r].join(" ");for(let[p,d]of Object.entries(u))c=c.replaceAll(p,d);e?.debug(`+ ${c}`);let l=(0,Sda.default)(t,r,a);return yVp(l,s),l}async function pc(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:o={},signal:s,...a}={}){let u=FQ(e,t,r,{doNotPipeOutput:n,secrets:i,substitutions:o,signal:s,...a});n||(u.stdout?.pipe(process.stdout),u.stderr?.pipe(process.stderr));let c=await u;return c.stdout==null&&(c.stdout=""),c.stderr==null&&(c.stderr=""),c}function q6(e,{logger:t,...r}={}){return(n,i)=>pc(t,e,n,{...r,...i})}var TP=require("fs/promises"),Lda=xe(require("path"),1),Ewi=xe(Cw(),1);St();qt();var aPe=require("fs/promises"),Tda=xe(Cw(),1);qt();var NA=require("fs/promises"),uhr=xe(require("os"),1),Awi=xe(require("path"),1),Woe="v1.50.0",bVp="https://github.com/bufbuild/buf/releases/download",KIt="buf",EVp=".fern",vVp="bin",Bda=12e4,hwi=200;function ywi(){let e=uhr.default.platform(),t=uhr.default.arch(),r;switch(e){case"linux":r="Linux";break;case"darwin":r="Darwin";break;case"win32":r="Windows";break;default:throw new Error(`Unsupported platform: ${e}`)}let n;switch(t){case"x64":n="x86_64";break;case"arm64":n=e==="linux"?"aarch64":"arm64";break;default:throw new Error(`Unsupported architecture: ${t}`)}return{os:r,arch:n,extension:r==="Windows"?".exe":""}}function JIt(){let e=uhr.default.homedir();return Ut.of(Awi.default.join(e,EVp,vVp))}function IVp(){let{extension:e}=ywi(),t=JIt();return We(t,_e.of(`${KIt}-${Woe}${e}`))}function wVp(){let{extension:e}=ywi(),t=JIt();return We(t,_e.of(`${KIt}${e}`))}function CVp(){let e=JIt();return We(e,_e.of(`${KIt}.version`))}function xVp(){let e=JIt();return Awi.default.join(e,`${KIt}.lock`)}function _Vp(){let{os:e,arch:t,extension:r}=ywi();return`${bVp}/${Woe}/${KIt}-${e}-${t}${r}`}async function Oda(e){try{return await(0,NA.access)(e),!0}catch{return!1}}async function SVp(e){let t=xVp(),r=Date.now()+Bda;for(;Date.now()<r;)try{return await(0,NA.mkdir)(t,{recursive:!1}),gwi(t,e)}catch{e.debug(`Waiting for buf lock on ${t}...`),await new Promise(n=>setTimeout(n,hwi))}e.debug(`Buf lock timed out after ${Bda}ms, breaking stale lock`);try{await(0,NA.rm)(t,{recursive:!0})}catch(n){e.debug(`Failed to remove stale buf lock: ${n instanceof Error?n.message:String(n)}`)}try{await(0,NA.mkdir)(t,{recursive:!1})}catch{let n=Math.max(hwi*5,r-Date.now()),i=Date.now()+n;for(;Date.now()<i;)try{return await(0,NA.mkdir)(t,{recursive:!1}),gwi(t,e)}catch{e.debug(`Waiting for buf lock on ${t} (post-break retry)...`),await new Promise(o=>setTimeout(o,hwi))}throw new Error("Failed to acquire buf lock after timeout and retry")}return gwi(t,e)}function gwi(e,t){return async()=>{try{await(0,NA.rm)(e,{recursive:!0})}catch(r){t.debug(`Failed to release buf lock: ${r instanceof Error?r.message:String(r)}`)}}}async function YIt(e){try{let t=JIt();await(0,NA.mkdir)(t,{recursive:!0});let r=await SVp(e);try{return await BVp(e)}finally{await r()}}catch(t){e.debug(`Failed to resolve buf: ${t instanceof Error?t.message:String(t)}`);return}}async function BVp(e){let t=IVp(),r=wVp(),n=CVp();if(await Oda(t))return await OVp(n,e)===Woe&&await Oda(r)?(e.info(`Using cached buf ${Woe}`),r):(await Pda(t,r),await(0,NA.writeFile)(n,Woe),e.info(`Updated buf to ${Woe}`),r);let i=_Vp();e.info(`Downloading buf ${Woe}...`);let o=Ut.of(`${t}.download`);try{let s=await fetch(i,{redirect:"follow"});if(!s.ok){e.debug(`Failed to download buf: ${s.status} ${s.statusText}`);return}let a=await s.arrayBuffer();return await(0,NA.writeFile)(o,new Uint8Array(a)),await(0,NA.chmod)(o,493),await(0,NA.rename)(o,t),await Pda(t,r),await(0,NA.writeFile)(n,Woe),e.info(`Downloaded buf ${Woe}`),r}catch(s){e.debug(`Failed to download buf: ${s instanceof Error?s.message:String(s)}`);try{await(0,NA.rm)(o,{force:!0})}catch(a){e.debug(`Failed to clean up partial buf download: ${a instanceof Error?a.message:String(a)}`)}return}}async function OVp(e,t){try{return(await(0,NA.readFile)(e,"utf-8")).trim()}catch(r){t.debug(`Failed to read buf version marker: ${r instanceof Error?r.message:String(r)}`);return}}async function Pda(e,t){let r=Ut.of(`${t}.tmp`);await(0,NA.copyFile)(e,r),await(0,NA.chmod)(r,493),await(0,NA.rename)(r,t)}function ZIt(e){return e.includes("server hosted at that remote is unavailable")||e.includes("fetch failed")||e.includes("failed to connect")||e.includes("network")||e.includes("ENOTFOUND")||e.includes("ETIMEDOUT")||e.includes("TIMEDOUT")||e.includes("timed out")||e.includes("ECONNREFUSED")||e.includes("ECONNRESET")||e.includes("socket hang up")}var XIt,bwi;async function ewt(e,t,r=5e3){return XIt!==void 0?XIt:(bwi==null&&(bwi=PVp(e,t,r)),bwi)}async function PVp(e,t,r){t.debug(`Detecting air-gapped mode by checking connectivity to ${e}`);try{return await fetch(e,{method:"GET",signal:AbortSignal.timeout(r)}),XIt=!1,t.debug("Network check succeeded - not in air-gapped mode"),!1}catch(n){let i=xi(n);return ZIt(i)?(XIt=!0,t.debug(`Network check failed - entering air-gapped mode: ${i}`),!0):(XIt=!1,!1)}}async function twt(e,t,r="buf"){let n=We(e,_e.of("buf.lock")),i=!1;try{await(0,aPe.access)(n),i=!0,t.debug(`Found buf.lock at: ${n}`)}catch{t.debug(`No buf.lock found at: ${n}`)}if(!i)return!1;let o=Ut.of((await Tda.default.dir()).path);try{let s=We(e,_e.of("buf.yaml"));try{await(0,aPe.cp)(s,We(o,_e.of("buf.yaml"))),await(0,aPe.cp)(n,We(o,_e.of("buf.lock")))}catch{return!1}try{return await FQ(t,r,["dep","update"],{cwd:o,stdio:"pipe",timeout:3e4}),t.debug("Network check succeeded - not in air-gapped mode"),!1}catch(a){let u=xi(a);return ZIt(u)?(t.debug(`Network check failed - entering air-gapped mode: ${u.substring(0,100)}`),!0):!1}}finally{try{await(0,aPe.rm)(o,{recursive:!0,force:!0})}catch{}}}async function chr(e){let t=q6("which",{cwd:Ut.of(process.cwd()),logger:void 0,doNotPipeOutput:!0});try{let n=(await t(["buf"])).stdout?.trim();return n?e.debug(`Found buf on PATH: ${n}`):e.debug("Found buf on PATH"),"buf"}catch{e.debug("buf not found on PATH, attempting auto-download");let r=await YIt(e);if(r!=null)return e.debug(`Using auto-downloaded buf: ${r}`),r;throw new Error("Missing required dependency; please install 'buf' to continue (e.g. 'brew install buf').")}}var Dda="buf.gen.yaml",TVp="output",Rda=`${TVp}/ir.json`,Fda="protoc-gen-fern",kda=`version: v1
|
|
1546
1546
|
`,Qda=`version: v2
|
|
1547
1547
|
`,rwt=e=>{let t=`version: v1
|
|
1548
1548
|
`;if(e.length>0){t+=`deps:
|
|
@@ -1655,7 +1655,7 @@ ${p1a.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&jBi(th
|
|
|
1655
1655
|
`+$Pe.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?$Pe.default.cyan(E1a(t,this.opt.mask)):$Pe.default.italic($Pe.default.dim("[hidden]")):this.opt.mask?E1a(t,this.opt.mask):$Pe.default.italic($Pe.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var _vr=xe(GI(),1);var bSa=xe(bOi(),1),Cvr=require("child_process"),q9e=require("fs"),wvr=xe(require("path"),1),ESa=xe(require("os"),1),vSa=require("crypto"),nPi=xe(ASa(),1);var Evr=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var lxt=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var vvr=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Ivr=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function xvr(e="",t,r){let n=new iPi(e,r);n.runAsync((i,o)=>{if(i)setImmediate(t,i,void 0);else try{n.cleanup(),setImmediate(t,void 0,o)}catch(s){setImmediate(t,s,void 0)}})}function ySa(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function OEf(e){let t=[],r="";for(let n=0;n<e.length;n++){let i=e.charAt(n);n>0&&i===" "&&e[n-1]!=="\\"&&r.length>0?(t.push(r),r=""):r=`${r}${i}`}return r.length>0&&t.push(r),t}var iPi=class{text="";tempFile;editor;lastExitStatus=0;fileOptions={};get temp_file(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile}get last_exit_status(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus}constructor(t="",r){this.text=t,r&&(this.fileOptions=r),this.determineEditor(),this.createTemporaryFile()}run(){return this.launchEditor(),this.readTemporaryFile(),this.text}runAsync(t){try{this.launchEditorAsync(()=>{try{this.readTemporaryFile(),setImmediate(t,void 0,this.text)}catch(r){setImmediate(t,r,void 0)}})}catch(r){setImmediate(t,r,void 0)}}cleanup(){this.removeTemporaryFile()}determineEditor(){let t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:process.platform.startsWith("win")?"notepad":"vim",r=OEf(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??ESa.default.tmpdir(),r=(0,vSa.randomUUID)(),n=ySa(this.fileOptions.prefix),i=ySa(this.fileOptions.postfix),o=`${n}${r}${i}`,s=wvr.default.resolve(t,o),a=wvr.default.resolve(t)+wvr.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let u={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(u.mode=this.fileOptions.mode),(0,q9e.writeFileSync)(this.tempFile,this.text,u)}catch(t){throw new Evr(t)}}readTemporaryFile(){try{let t=(0,q9e.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,bSa.detect)(t)??"utf8";nPi.default.encodingExists(r)||(r="utf8"),this.text=nPi.default.decode(t,r)}}catch(t){throw new vvr(t)}}removeTemporaryFile(){try{(0,q9e.unlinkSync)(this.tempFile)}catch(t){throw new Ivr(t)}}launchEditor(){try{let t=(0,Cvr.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new lxt(t)}}launchEditorAsync(t){try{(0,Cvr.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new lxt(r)}}};var ISa=xe(WQ(),1);var pxt=class extends WI{_run(t){this.done=t,this.editorResult=new ISa.Subject;let r=c1(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?_vr.default.dim("Received"):_vr.default.dim("Press <enter> to launch your preferred editor."),t&&(r=_vr.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),xvr(this.currentText,this.endExternalEditor.bind(this),{postfix:this.opt.postfix??".txt"})}endExternalEditor(t,r){this.rl.resume(),t?this.editorResult.error(t):this.editorResult.next(r)}onEnd(t){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=t.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(t){this.render(t.isValid)}};var SSa=require("stream");var xSa=xe(require("readline"),1),_Sa=xe(CSa(),1),YPe=class{constructor(t){this.rl||=xSa.default.createInterface(TEf(t)),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&typeof this.activePrompt.close=="function"&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}};function TEf(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){let i=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw i.isTtyError=!0,i}let r=new _Sa.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var fxt=class extends YPe{constructor(t={}){super(t),this.log=new SSa.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return KCt(this.rl,this.bottomBar.split(`
|
|
1656
1656
|
`).length),this}updateBottomBar(t){return KCt(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=t,this.render(),this.rl.output.mute(),this}writeLog(t){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(t.toString())),this.render(),this.rl.output.mute(),this}enforceLF(t){return/[\n\r]$/.test(t)?t:t+`
|
|
1657
1657
|
`}write(t){let r=t.split(/\n/);this.height=r.length,this.rl.setPrompt(r.at(-1)),this.rl.output.rows===0&&this.rl.output.columns===0&&HEr(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var vf=xe(WQ(),1),PSa=xe(_Ct(),1);var Svr=xe(WQ(),1),BSa=xe(_Ct(),1),Bvr=function(e,t,r){return typeof e[t]!="function"?(0,Svr.of)(e):(0,Svr.from)((0,BSa.default)(e[t])(r).then(n=>(e[t]=n,e)))};var OSa={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},G9e=class extends YPe{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,vf.from)(t):(0,vf.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,vf.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,vf.from)([t]),this.process=n.pipe((0,vf.concatMap)(this.processQuestion.bind(this)),(0,vf.publish)()),this.process.connect(),this.process.pipe((0,vf.reduce)((i,o)=>(OSa.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,vf.defer)(()=>(0,vf.of)(t).pipe((0,vf.concatMap)(this.setDefaultType.bind(this)),(0,vf.concatMap)(this.filterIfRunnable.bind(this)),(0,vf.concatMap)(()=>Bvr(t,"message",this.answers)),(0,vf.concatMap)(()=>Bvr(t,"default",this.answers)),(0,vf.concatMap)(()=>Bvr(t,"choices",this.answers)),(0,vf.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,vf.defer)(()=>(0,vf.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,vf.defer)(()=>(0,vf.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&OSa.get(this.answers,t.name)!==void 0)return vf.EMPTY;if(t.when===!1)return vf.EMPTY;if(typeof t.when!="function")return(0,vf.of)(t);let{answers:r}=this;return(0,vf.defer)(()=>(0,vf.from)((0,PSa.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,vf.filter)(n=>n!=null)))}};function TSa(e){let t=function(r,n){let i;try{i=new G9e(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",YCt),this.registerPrompt("input",WPe),this.registerPrompt("number",XCt),this.registerPrompt("confirm",ZCt),this.registerPrompt("rawlist",ext),this.registerPrompt("expand",txt),this.registerPrompt("checkbox",rxt),this.registerPrompt("password",nxt),this.registerPrompt("editor",pxt)},t.restoreDefaultPrompts(),t}var sPi=TSa();function REf(e,t){sPi.registerPrompt(e,t)}function FEf(){sPi.restoreDefaultPrompts()}var kEf={prompt:sPi,ui:{BottomBar:fxt,Prompt:G9e},createPromptModule:TSa,registerPrompt:REf,restoreDefaultPrompts:FEf,Separator:EF},pp=kEf;var W9e=require("path");function RSa(){let e=QEf();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function QEf(e=process.argv[1]?(0,W9e.dirname)(process.argv[1]):process.cwd(),t=W9e.sep==="\\"){let r=t?DSa(e):e;return n=>{if(!n)return;let i=t?DSa(n):n,{dir:o,base:s,ext:a}=W9e.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let u=decodeURIComponent(s);o||(o=".");let c=o.lastIndexOf("/node_modules");if(c>-1)return`${o.slice(c+14).replace(/\//g,".")}:${u}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${u}`:u}return u}}function DSa(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var aPi=e=>{if("flags"in e){let t=FSa(e.flags),r=kSa(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,uPi(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,NEf(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function NEf(e,t,r){return{key:e,enabled:typeof t=="string"?!0:t,variant:typeof t=="string"?t:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:r?JSON.stringify(r):void 0,description:void 0}}}var FSa=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,dxt(r)]).filter(([,t])=>t!==void 0)),kSa=e=>{let t=e??{};return Object.fromEntries(Object.keys(t).filter(r=>{let n=t[r];return n.enabled&&n.metadata&&n.metadata.payload!==void 0}).map(r=>{let n=t[r].metadata?.payload;return[r,n?uPi(n):void 0]}))};var dxt=e=>e===void 0?void 0:e.variant??e.enabled,uPi=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Ovr="0123456789abcdef",Pvr=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Ovr.charAt(this.bytes[r]>>>4),t+=Ovr.charAt(15&this.bytes[r]),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Ovr.charAt(this.bytes[r]>>>4),t+=Ovr.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},cPi=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??jEf()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let n=this.generateOrAbortCore(t,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,r)),n}generateOrAbortCore(t,r){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+r>=this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return Pvr.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,Pvr.ofInner(t)}},jEf=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),QSa,pK=()=>MEf().toString(),MEf=()=>(QSa||(QSa=new cPi)).generate();var IF=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e})({});var LEf=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],NSa=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return LEf.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var zEf=Array.isArray,jSa=Object.prototype,ZMy=jSa.hasOwnProperty,lPi=jSa.toString,pPi=zEf||function(e){return lPi.call(e)==="[object Array]"};var fPi=e=>e===Object(e)&&!pPi(e);var $9e=e=>e===void 0,mxt=e=>lPi.call(e)=="[object String]",MSa=e=>mxt(e)&&e.trim().length===0;var LSa=e=>lPi.call(e)=="[object Number]"&&e===e;var dPi=e=>e instanceof Error;function hxt(e){return e===null||typeof e!="object"}function XPe(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function USa(e){return XPe(e,"ErrorEvent")}function Tvr(e){return!$9e(Event)&&VEf(e,Event)}function zSa(e){return XPe(e,"Object")}function VEf(e,t){try{return e instanceof t}catch{return!1}}function gxt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),LSa(e)?e>r?(n.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(n.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(n.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+i),gxt(i||r,t,r,n))}var qEf=864e5,Dvr=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=gxt(t.bucketSize,0,100,t._logger),this._refillRate=gxt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=gxt(t.refillInterval,0,qEf,t._logger)}_applyRefill(t,r){let n=r-t.lastAccess,i=Math.floor(n/this._refillInterval);if(i>0){let o=i*this._refillRate;t.tokens=Math.min(t.tokens+o,this._bucketSize),t.lastAccess=t.lastAccess+i*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),n=String(t),i=this._buckets[n];return i?this._applyRefill(i,r):(i={tokens:this._bucketSize,lastAccess:r},this._buckets[n]=i),i.tokens===0?!0:(i.tokens--,i.tokens===0&&this._onBucketRateLimited?.(t),i.tokens===0)}stop(){this._buckets={}}};var Rvr=class{add(t){let r=pK();return this.promiseByIds[r]=t,t.catch(()=>{}).finally(()=>{delete this.promiseByIds[r]}),t}async join(){let t=Object.values(this.promiseByIds),r=t.length;for(;r>0;)await Promise.all(t),t=Object.values(this.promiseByIds),r=t.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}};function GEf(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var VSa=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>VSa(`${e} ${o}`,t,r)}},WEf=e=>e();function qSa(e,t=WEf){return VSa(e,t,GEf())}var K9e="Mobile",kvr="iOS",H9e="Android",GSa="Tablet",p4y=H9e+" "+GSa;var $Ef="Apple",f4y=$Ef+" Watch",WSa="Safari",Qvr="BlackBerry",$Sa="Samsung",HEf=$Sa+"Browser",KEf=$Sa+" Internet",Nvr="Chrome",JEf=Nvr+" OS",YEf=Nvr+" "+kvr,HSa="Internet Explorer",XEf=HSa+" "+K9e,hPi="Opera",d4y=hPi+" Mini",KSa="Edge",ZEf="Microsoft "+KSa,gPi="Firefox",evf=gPi+" "+kvr,APi="Nintendo",yPi="PlayStation",Fvr="Xbox",tvf=H9e+" "+K9e,rvf=K9e+" "+WSa,Axt="Windows",nvf=Axt+" Phone";var JSa="Generic",m4y=JSa+" "+K9e.toLowerCase(),h4y=JSa+" "+GSa.toLowerCase(),ivf="Konqueror",QP="(\\d+(\\.\\d+)?)",mPi=new RegExp("Version/"+QP),g4y=new RegExp(Fvr,"i"),A4y=new RegExp(yPi+" \\w+","i"),y4y=new RegExp(APi+" \\w+","i"),ovf=new RegExp(Qvr+"|PlayBook|BB10","i"),svf={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"};var b4y={[XEf]:[new RegExp("rv:"+QP)],[ZEf]:[new RegExp(KSa+"?\\/"+QP)],[Nvr]:[new RegExp("("+Nvr+"|CrMo)\\/"+QP)],[YEf]:[new RegExp("CriOS\\/"+QP)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QP)],[WSa]:[mPi],[rvf]:[mPi],[hPi]:[new RegExp("("+hPi+"|OPR)\\/"+QP)],[gPi]:[new RegExp(gPi+"\\/"+QP)],[evf]:[new RegExp("FxiOS\\/"+QP)],[ivf]:[new RegExp("Konqueror[:/]?"+QP,"i")],[Qvr]:[new RegExp(Qvr+" "+QP),mPi],[tvf]:[new RegExp("android\\s"+QP,"i")],[KEf]:[new RegExp(HEf+"\\/"+QP)],[HSa]:[new RegExp("(rv:|MSIE )"+QP)],Mozilla:[new RegExp("rv:"+QP)]};var E4y=[[new RegExp(Fvr+"; "+Fvr+" (.*?)[);]","i"),e=>[Fvr,e&&e[1]||""]],[new RegExp(APi,"i"),[APi,""]],[new RegExp(yPi,"i"),[yPi,""]],[ovf,[Qvr,""]],[new RegExp(Axt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[nvf,""];if(new RegExp(K9e).test(t)&&!/IEMobile\b/.test(t))return[Axt+" "+K9e,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=svf[n]||"";return/arm/i.test(t)&&(i="RT"),[Axt,i]}return[Axt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[kvr,t.join(".")]}return[kvr,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=$9e(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+H9e+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+H9e+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[H9e,t.join(".")]}return[H9e,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,e=>{let t=["Mac OS X",""];if(e&&e[1]){let r=[e[1],e[2],e[3]||"0"];t[1]=r.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[JEf,""]],[/Linux|debian/i,["Linux",""]]];var YSa="utf8";function XSa(e,t){if(!e||typeof e!="string"||avf(e))throw new Error(t)}function avf(e){return e.trim().length===0}function ZSa(e){return e?.replace(/\/+$/,"")}async function eBa(e,t){let r=null;for(let n=0;n<t.retryCount+1;n++){n>0&&await new Promise(i=>setTimeout(i,t.retryDelay));try{return await e()}catch(i){if(r=i,!t.retryCheck(i))throw i}}throw r}function jvr(){return new Date().toISOString()}function ZPe(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var tBa=e=>e instanceof Error;function bPi(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Mvr=class{constructor(){this.events={},this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),()=>{this.events[t]=this.events[t].filter(n=>n!==r)}}emit(t,r){for(let n of this.events[t]||[])n(r);for(let n of this.events["*"]||[])n(t,r)}};function rBa(){return"CompressionStream"in globalThis}async function EPi(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var eTe=class extends Error{constructor(t,r){super("HTTP error while fetching PostHog: status="+t.status+", reqByteLength="+r),this.response=t,this.reqByteLength=r,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}},J9e=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function nBa(e){if(e instanceof eTe){let t="";try{t=await e.text}catch{}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function vPi(e){return typeof e=="object"&&(e instanceof eTe||e instanceof J9e)}function iBa(e){return typeof e=="object"&&e instanceof eTe&&e.status===413}var yxt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Rvr,this._events=new Mvr,this._isInitialized=!1,XSa(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=ZSa(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:vPi},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=qSa("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!rBa()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(IF.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(IF.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(IF.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!0){await this._initPromise;let a=s?"&config=true":"",u=`${this.host}/flags/?v=2${a}`,c={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(c.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(c)};return this._logger.info("Flags URL",u),this.fetchWithRetry(u,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:aPi(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof eTe)return{type:"api_error",statusCode:t.status};if(t instanceof J9e){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let u=dxt(a.response);return u===void 0&&(u=!1),{response:u,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let u=a[t];return u===void 0?null:u}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let u=await this.getFlags(t,r,n,i,a);if(!u.success)return;let c=u.response;return c.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),c.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:c?.requestId,quotaLimited:c.quotaLimited}):c}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(IF.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(IF.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(IF.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(IF.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(IF.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=ZPe(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:jvr()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,u=this.disableCompression?null:await EPi(s,this.isDebug),c={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...u!==null&&{"Content-Encoding":"gzip"}},body:u||s};try{await this.fetchWithRetry(a,c)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:jvr(),uuid:n?.uuid?n.uuid:pK()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await nBa(t)})}async flush(){let t=bPi([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),bPi([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(IF.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=async()=>{let m=(this.getPersistedProperty(IF.Queue)||[]).slice(i.length);this.setPersistedProperty(IF.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:jvr()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),c=`${this.host}/batch/`,l=this.disableCompression?null:await EPi(u,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||u},d={retryCheck:f=>iBa(f)?!1:vPi(f)};try{await this.fetchWithRetry(c,p,d)}catch(f){if(iBa(f)&&o.length>1){this.maxBatchSize=Math.max(1,Math.floor(o.length/2)),this._logger.warn(`Received 413 when sending batch of size ${o.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw f instanceof J9e||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let u=new AbortController;return setTimeout(()=>u.abort(),a),u.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,YSa)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await eBa(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(c){throw new J9e(c)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new eTe(a,s);return a},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(IF.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!vPi(i))throw i;await nBa(i)}};return Promise.race([new Promise((i,o)=>{ZPe(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,o("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var wF={};X(wF,{DOMExceptionCoercer:()=>xPi,ErrorCoercer:()=>_Pi,ErrorEventCoercer:()=>SPi,ErrorPropertiesBuilder:()=>IPi,EventCoercer:()=>PPi,ObjectCoercer:()=>OPi,PrimitiveCoercer:()=>TPi,PromiseRejectionEventCoercer:()=>DPi,ReduceableCache:()=>RPi,StringCoercer:()=>BPi,chromeStackLineParser:()=>wPi,createDefaultStackParser:()=>Ivf,createStackParser:()=>hBa,geckoStackLineParser:()=>CPi,nodeStackLineParser:()=>pBa,opera10StackLineParser:()=>uBa,opera11StackLineParser:()=>cBa,reverseAndStripFrames:()=>mBa,winjsStackLineParser:()=>aBa});var Lvr,oBa,Uvr;function sBa(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Uvr&&r.length===oBa||(oBa=r.length,Uvr=r.reduce((n,i)=>{Lvr||(Lvr={});let o=Lvr[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let c=s[a]?.filename,l=t[i];if(c&&l){n[c]=l,Lvr[i]=[c,l];break}}}return n},{})),Uvr}var cvf=4,IPi=class{constructor(t,r,n=[]){this.coercers=t,this.stackParser=r,this.modifiers=n}buildFromUnknown(t,r={}){let i=r&&r.mechanism||{handled:!0,type:"generic"},s=this.buildCoercingContext(i,r,0).apply(t),a=this.buildParsingContext(r),u=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(u,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&pPi(r.stacktrace.frames)&&(r.stacktrace.frames=await this.applyModifiers(r.stacktrace.frames));return t}coerceFallback(t){return{type:"Error",value:"Unknown error",stack:t.syntheticException?.stack,synthetic:!0}}parseStacktrace(t,r){let n;t.cause!=null&&(n=this.parseStacktrace(t.cause,r));let i;return t.stack!=""&&t.stack!=null&&(i=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?r.skipFirstLines:0),r.chunkIdMap)),{...t,cause:n,stack:i}}applyChunkIds(t,r){return t.map(n=>(n.filename&&r&&(n.chunk_id=r[n.filename]),n))}applyCoercers(t,r){for(let n of this.coercers)if(n.match(t))return n.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let n of this.modifiers)r=await n(r);return r}convertToExceptionList(t,r){let n={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(n.stacktrace={type:"raw",frames:t.stack});let i=[n];return t.cause!=null&&i.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),i}buildParsingContext(t){return{chunkIdMap:sBa(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=cvf){let u=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,u)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var p1="?";function fK(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?p1:r,in_app:!0};return $9e(n)||(o.lineno=n),$9e(i)||(o.colno=i),o}var zvr=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:p1,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var lvf=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,pvf=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,fvf=/\((\S*)(?::(\d+))(?::(\d+))\)/,wPi=(e,t)=>{let r=lvf.exec(e);if(r){let[,i,o,s]=r;return fK(t,i,p1,+o,+s)}let n=pvf.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=fvf.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=zvr(n[1]||p1,n[2]);return fK(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var dvf=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,mvf=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,CPi=(e,t)=>{let r=dvf.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=mvf.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||p1;return[o,i]=zvr(o,i),fK(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var hvf=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,aBa=(e,t)=>{let r=hvf.exec(e);return r?fK(t,r[2],r[1]||p1,+r[3],r[4]?+r[4]:void 0):void 0};var gvf=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,uBa=(e,t)=>{let r=gvf.exec(e);return r?fK(t,r[2],r[3]||p1,+r[1]):void 0},Avf=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,cBa=(e,t)=>{let r=Avf.exec(e);return r?fK(t,r[5],r[3]||r[4]||p1,+r[1],+r[2]):void 0};var yvf=/^\s*[-]{4,}$/,bvf=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,pBa=(e,t)=>{let r=e.match(bvf);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||p1,o=s?`${s}.${a}`:a);let u=r[2]?.startsWith("file://")?r[2].slice(7):r[2],c=r[5]==="native";return u?.match(/\/[A-Z]:/)&&(u=u.slice(1)),!u&&r[5]&&!c&&(u=r[5]),{filename:u?decodeURI(u):void 0,module:void 0,function:o,lineno:lBa(r[3]),colno:lBa(r[4]),in_app:Evf(u||"",c),platform:t}}if(e.match(yvf))return{filename:e,platform:t}};function Evf(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function lBa(e){return parseInt(e||"",10)||void 0}var fBa=/\(error: (.*)\)/,dBa=50;function mBa(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,dBa).map(r=>({...r,filename:r.filename||vvf(t).filename,function:r.function||p1}))}function vvf(e){return e[e.length-1]||{}}function Ivf(){return hBa("web:javascript",wPi,CPi)}function hBa(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
1658
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=fBa.test(a)?a.replace(fBa,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=dBa)break}}return mBa(i)}}var xPi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=mxt(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return XPe(t,"DOMException")}isDOMError(t){return XPe(t,"DOMError")}};var _Pi=class{match(t){return dPi(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var SPi=class{constructor(){}match(t){return USa(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var wvf=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,BPi=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(wvf);return i&&(r=i[1],n=i[2]),[r,n]}};var gBa=["fatal","error","warning","log","info","debug"];function Vvr(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var OPi=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Tvr(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Vvr(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return mxt(t)&&!MSa(t)&&gBa.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(tBa(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var PPi=class{match(t){return Tvr(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Vvr(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var TPi=class{match(t){return hxt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var DPi=class{match(t){return XPe(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return hxt(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(hxt(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var RPi=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var bBa=require("fs"),EBa=require("readline"),qvr=new wF.ReduceableCache(25),vBa=new wF.ReduceableCache(20),FPi=7,Cvf=1e3,xvf=1e4;async function IBa(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||Ovf(s)||Pvf(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(vBa.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=Dvf(o);if(s.every(u=>Tvf(i,u)))continue;let a=Rvf(qvr,i,{});n.push(_vf(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Svf(e,qvr),qvr.reduce(),e}function _vf(e,t,r){return new Promise(n=>{let i=(0,bBa.createReadStream)(e),o=(0,EBa.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){vBa.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Fvf(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function Svf(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;Bvf(r.lineno,r,n)}}function Bvf(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=wBa(e);i<e;i++){let o=r[i];if(o===void 0)return void ABa(t);t.pre_context.push(o)}if(r[e]===void 0)return void ABa(t);t.context_line=r[e];let n=CBa(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function ABa(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Ovf(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Pvf(e){return e.lineno!==void 0&&e.lineno>xvf||e.colno!==void 0&&e.colno>Cvf}function Tvf(e,t){let r=qvr.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function Dvf(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=yBa(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+FPi:(i.push(n),n=yBa(o)),t++}return i}function yBa(e){return[wBa(e),CBa(e)]}function wBa(e){return Math.max(1,e-FPi)}function CBa(e){return e+FPi}function Rvf(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Fvf(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function kvf(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function xBa(e,t){globalThis.process?.on("uncaughtException",kvf(e,t))}function _Ba(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Qvf=2e3,cV=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Dvr({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return fPi(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||pK(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(xBa(this.onException.bind(this),this.onFatalError.bind(this)),_Ba(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(Qvf),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var SBa="5.26.2";var bxt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function BBa(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Nvf=6e4,jvf=1152921504606847e3,Mvf=["is_not"],Y9e=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},uh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},dK=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Gvr=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof dK||c instanceof uh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof dK||c instanceof uh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new uh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new uh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new uh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new uh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new uh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new uh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new uh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new uh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new uh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new uh(`Dependency '${u}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof dK)throw l;if(l instanceof uh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new uh("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?RBa(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):DBa(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await OBa(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await OBa(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(Nvf,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new Y9e(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new Y9e(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new Y9e(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof Y9e&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=ZPe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function OBa(e,t,r=""){let n=await BBa(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/jvf}function DBa(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new uh("Operator is_not_set is not supported")}else throw new uh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!Mvf.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return PBa(String(i))&&String(s).match(String(i))!==null;case"not_regex":return PBa(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new uh("Date operations cannot be performed on boolean values");let c=Uvf(String(i));if(c==null&&(c=TBa(i)),c==null)throw new uh(`Invalid date: ${i}`);let l=TBa(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new uh(`Unknown operator: ${o}`)}}function Lvf(e,t){if(!(e in t))throw new dK(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function RBa(e,t,r,n=!1){let i=String(e.value);Lvf(i,r);let o=r[i];return FBa(o,t,r,n)}function FBa(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let u=FBa(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=RBa(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else u=DBa(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("can't match cohort without a given cohort property value");return i==="AND"}function PBa(e){try{return new RegExp(e),!0}catch{return!1}}function TBa(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new uh(`${e} is in an invalid date format`)}throw new uh(`The date provided ${e} must be a string, number, or date object`)}function Uvf(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Wvr=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var zvf=100,kBa=3e4,Vvf=5e4,$vr=class extends yxt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Wvr,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,zvf):kBa,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new Gvr({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new cV(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Vvf}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return SBa}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=kBa){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let x=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:x}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,g,A,b,v,E;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let x=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(x){m=!0;let C=x.value;b=w.id,E="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:x.payload??void 0}}}catch(x){if(x instanceof dK||x instanceof uh)this._logger?.info(`${x.name} when computing flag locally: ${t}: ${x.message}`);else throw x}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)A=bxt.UNKNOWN_ERROR;else{h=w.requestId,g=w.evaluatedAt;let x=[];w.errorsWhileComputingFlags&&x.push(bxt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&x.push(bxt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)x.push(bxt.FLAG_MISSING);else{b=C.metadata?.id,v=C.metadata?.version,E=C.reason?.description??C.reason?.code;let _;if(C.metadata?.payload!==void 0)try{_=JSON.parse(C.metadata.payload)}catch{_=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:_}}x.length>0&&(A=x.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,x=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(x)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(x):this.distinctIdHasSentFlagCalls[r]=[x];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:v,$feature_flag_reason:E,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():g};if(m&&this.featureFlagsPoller){let _=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();_!==void 0&&(C.$feature_flag_definitions_loaded_at=_)}A&&(C.$feature_flag_error=A),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},g=!0;if(f&&(m=f.response,h=f.payloads,g=f.fallbackToFlags),g&&!u){let A=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...A.flags||{}},h={...h,...A.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=ZPe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(zSa(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!cV.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cV.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=pK(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let g={};if(h)for(let[b,v]of Object.entries(h))g[`$feature/${b}`]=v;let A=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return A.length>0&&(g.$active_feature_flags=A),g}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&NSa(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var QBa=require("async_hooks"),Hvr=class{constructor(){this.storage=new QBa.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var NBa="posthog-node";function qvf(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let u=s.tags[kPi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:u,properties:f}),s}}var kPi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=NBa,this.name=NBa,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(qvf(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cV.errorPropertiesBuilder=new wF.ErrorPropertiesBuilder([new wF.EventCoercer,new wF.ErrorCoercer,new wF.ObjectCoercer,new wF.StringCoercer,new wF.PrimitiveCoercer],wF.createStackParser("node:javascript",wF.nodeStackLineParser),[RSa(),IBa]);var X9e=class extends $vr{getLibraryId(){return"posthog-node"}initializeContext(){return new Hvr}};var Kvr=class{posthog;constructor({posthogApiKey:t}){this.posthog=new X9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.37.10",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var Ext=class{async sendEvent(){}async identify(){}async flush(){}};qt();var Z9e=require("fs/promises"),jBa=require("os"),MBa=require("path");var Gvf="id",Wvf=".fern",vxt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new X9e(r),this.userId=t==null?void 0:XCi(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"4.37.10",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await kA({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=We(Ut.of((0,jBa.homedir)()),_e.of(Wvf),_e.of(Gvf));await Zt(t)||(await(0,Z9e.mkdir)((0,MBa.dirname)(t),{recursive:!0}),await(0,Z9e.writeFile)(t,vC())),this.persistedDistinctId=(await(0,Z9e.readFile)(t)).toString()}return this.persistedDistinctId}};var QPi;async function eGe(){return QPi==null&&(QPi=await $vf()),QPi}async function $vf(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new Ext;let r=await ugr();return r!=null?new vxt({token:r,posthogApiKey:e}):await HH()!=null?new Kvr({posthogApiKey:e}):new vxt({token:void 0,posthogApiKey:e})}catch{return new Ext}}St();var Ixt=xe(require("process"),1);ENe();var zBa=xe(KAi(),1),VBa=xe(UBa(),1);function jC(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=C5(e),e.length===0))return 0;e=e.replace((0,VBa.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(zBa.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function Jvr(e){let t=0;for(let r of e.split(`
|
|
1658
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=fBa.test(a)?a.replace(fBa,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=dBa)break}}return mBa(i)}}var xPi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=mxt(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return XPe(t,"DOMException")}isDOMError(t){return XPe(t,"DOMError")}};var _Pi=class{match(t){return dPi(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var SPi=class{constructor(){}match(t){return USa(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var wvf=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,BPi=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(wvf);return i&&(r=i[1],n=i[2]),[r,n]}};var gBa=["fatal","error","warning","log","info","debug"];function Vvr(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var OPi=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Tvr(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Vvr(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return mxt(t)&&!MSa(t)&&gBa.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(tBa(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var PPi=class{match(t){return Tvr(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Vvr(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var TPi=class{match(t){return hxt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var DPi=class{match(t){return XPe(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return hxt(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(hxt(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var RPi=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var bBa=require("fs"),EBa=require("readline"),qvr=new wF.ReduceableCache(25),vBa=new wF.ReduceableCache(20),FPi=7,Cvf=1e3,xvf=1e4;async function IBa(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||Ovf(s)||Pvf(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(vBa.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=Dvf(o);if(s.every(u=>Tvf(i,u)))continue;let a=Rvf(qvr,i,{});n.push(_vf(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Svf(e,qvr),qvr.reduce(),e}function _vf(e,t,r){return new Promise(n=>{let i=(0,bBa.createReadStream)(e),o=(0,EBa.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){vBa.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Fvf(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function Svf(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;Bvf(r.lineno,r,n)}}function Bvf(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=wBa(e);i<e;i++){let o=r[i];if(o===void 0)return void ABa(t);t.pre_context.push(o)}if(r[e]===void 0)return void ABa(t);t.context_line=r[e];let n=CBa(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function ABa(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Ovf(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Pvf(e){return e.lineno!==void 0&&e.lineno>xvf||e.colno!==void 0&&e.colno>Cvf}function Tvf(e,t){let r=qvr.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function Dvf(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=yBa(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+FPi:(i.push(n),n=yBa(o)),t++}return i}function yBa(e){return[wBa(e),CBa(e)]}function wBa(e){return Math.max(1,e-FPi)}function CBa(e){return e+FPi}function Rvf(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Fvf(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function kvf(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function xBa(e,t){globalThis.process?.on("uncaughtException",kvf(e,t))}function _Ba(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Qvf=2e3,cV=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Dvr({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return fPi(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||pK(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(xBa(this.onException.bind(this),this.onFatalError.bind(this)),_Ba(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(Qvf),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var SBa="5.26.2";var bxt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function BBa(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Nvf=6e4,jvf=1152921504606847e3,Mvf=["is_not"],Y9e=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},uh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},dK=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Gvr=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof dK||c instanceof uh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof dK||c instanceof uh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new uh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new uh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new uh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new uh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new uh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new uh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new uh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new uh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new uh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new uh(`Dependency '${u}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof dK)throw l;if(l instanceof uh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new uh("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?RBa(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):DBa(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await OBa(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await OBa(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(Nvf,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new Y9e(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new Y9e(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new Y9e(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof Y9e&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=ZPe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function OBa(e,t,r=""){let n=await BBa(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/jvf}function DBa(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new uh("Operator is_not_set is not supported")}else throw new uh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!Mvf.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return PBa(String(i))&&String(s).match(String(i))!==null;case"not_regex":return PBa(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new uh("Date operations cannot be performed on boolean values");let c=Uvf(String(i));if(c==null&&(c=TBa(i)),c==null)throw new uh(`Invalid date: ${i}`);let l=TBa(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new uh(`Unknown operator: ${o}`)}}function Lvf(e,t){if(!(e in t))throw new dK(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function RBa(e,t,r,n=!1){let i=String(e.value);Lvf(i,r);let o=r[i];return FBa(o,t,r,n)}function FBa(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let u=FBa(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=RBa(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else u=DBa(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("can't match cohort without a given cohort property value");return i==="AND"}function PBa(e){try{return new RegExp(e),!0}catch{return!1}}function TBa(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new uh(`${e} is in an invalid date format`)}throw new uh(`The date provided ${e} must be a string, number, or date object`)}function Uvf(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Wvr=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var zvf=100,kBa=3e4,Vvf=5e4,$vr=class extends yxt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Wvr,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,zvf):kBa,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new Gvr({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new cV(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Vvf}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return SBa}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=kBa){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let x=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:x}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,g,A,b,v,E;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let x=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(x){m=!0;let C=x.value;b=w.id,E="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:x.payload??void 0}}}catch(x){if(x instanceof dK||x instanceof uh)this._logger?.info(`${x.name} when computing flag locally: ${t}: ${x.message}`);else throw x}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)A=bxt.UNKNOWN_ERROR;else{h=w.requestId,g=w.evaluatedAt;let x=[];w.errorsWhileComputingFlags&&x.push(bxt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&x.push(bxt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)x.push(bxt.FLAG_MISSING);else{b=C.metadata?.id,v=C.metadata?.version,E=C.reason?.description??C.reason?.code;let _;if(C.metadata?.payload!==void 0)try{_=JSON.parse(C.metadata.payload)}catch{_=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:_}}x.length>0&&(A=x.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,x=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(x)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(x):this.distinctIdHasSentFlagCalls[r]=[x];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:v,$feature_flag_reason:E,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():g};if(m&&this.featureFlagsPoller){let _=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();_!==void 0&&(C.$feature_flag_definitions_loaded_at=_)}A&&(C.$feature_flag_error=A),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},g=!0;if(f&&(m=f.response,h=f.payloads,g=f.fallbackToFlags),g&&!u){let A=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...A.flags||{}},h={...h,...A.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=ZPe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(zSa(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!cV.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cV.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=pK(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let g={};if(h)for(let[b,v]of Object.entries(h))g[`$feature/${b}`]=v;let A=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return A.length>0&&(g.$active_feature_flags=A),g}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&NSa(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var QBa=require("async_hooks"),Hvr=class{constructor(){this.storage=new QBa.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var NBa="posthog-node";function qvf(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let u=s.tags[kPi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:u,properties:f}),s}}var kPi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=NBa,this.name=NBa,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(qvf(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cV.errorPropertiesBuilder=new wF.ErrorPropertiesBuilder([new wF.EventCoercer,new wF.ErrorCoercer,new wF.ObjectCoercer,new wF.StringCoercer,new wF.PrimitiveCoercer],wF.createStackParser("node:javascript",wF.nodeStackLineParser),[RSa(),IBa]);var X9e=class extends $vr{getLibraryId(){return"posthog-node"}initializeContext(){return new Hvr}};var Kvr=class{posthog;constructor({posthogApiKey:t}){this.posthog=new X9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.37.11",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var Ext=class{async sendEvent(){}async identify(){}async flush(){}};qt();var Z9e=require("fs/promises"),jBa=require("os"),MBa=require("path");var Gvf="id",Wvf=".fern",vxt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new X9e(r),this.userId=t==null?void 0:XCi(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"4.37.11",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await kA({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=We(Ut.of((0,jBa.homedir)()),_e.of(Wvf),_e.of(Gvf));await Zt(t)||(await(0,Z9e.mkdir)((0,MBa.dirname)(t),{recursive:!0}),await(0,Z9e.writeFile)(t,vC())),this.persistedDistinctId=(await(0,Z9e.readFile)(t)).toString()}return this.persistedDistinctId}};var QPi;async function eGe(){return QPi==null&&(QPi=await $vf()),QPi}async function $vf(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new Ext;let r=await ugr();return r!=null?new vxt({token:r,posthogApiKey:e}):await HH()!=null?new Kvr({posthogApiKey:e}):new vxt({token:void 0,posthogApiKey:e})}catch{return new Ext}}St();var Ixt=xe(require("process"),1);ENe();var zBa=xe(KAi(),1),VBa=xe(UBa(),1);function jC(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=C5(e),e.length===0))return 0;e=e.replace((0,VBa.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(zBa.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function Jvr(e){let t=0;for(let r of e.split(`
|
|
1659
1659
|
`))t=Math.max(t,jC(r));return t}var cOa=xe(jPi(),1);var Kvf=/[\p{Lu}]/u,Jvf=/[\p{Ll}]/u,WBa=/^[\p{Lu}](?![\p{Lu}])/gu,KBa=/([\p{Alpha}\p{N}_]|$)/u,MPi=/[_.\- ]+/,Yvf=new RegExp("^"+MPi.source),$Ba=new RegExp(MPi.source+KBa.source,"gu"),HBa=new RegExp("\\d+"+KBa.source,"gu"),Xvf=(e,t,r,n)=>{let i=!1,o=!1,s=!1,a=!1;for(let u=0;u<e.length;u++){let c=e[u];a=u>2?e[u-3]==="-":!0,i&&Kvf.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),i=!1,s=o,o=!0,u++):o&&s&&Jvf.test(c)&&(!a||n)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),s=o,o=!1,i=!0):(i=t(c)===c&&r(c)!==c,s=o,o=r(c)===c&&t(c)!==c)}return e},Zvf=(e,t)=>(WBa.lastIndex=0,e.replace(WBa,r=>t(r))),eIf=(e,t)=>($Ba.lastIndex=0,HBa.lastIndex=0,e.replace($Ba,(r,n)=>t(n)).replace(HBa,r=>t(r)));function LPi(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?MPi.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=Xvf(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(Yvf,""),e=t.preserveConsecutiveUppercase?Zvf(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),eIf(e,n))}var qPi=xe(YBa(),1);ENe();var XBa=(e=0)=>t=>`\x1B[${t+e}m`,ZBa=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,eOa=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,By={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},B3y=Object.keys(By.modifier),iIf=Object.keys(By.color),oIf=Object.keys(By.bgColor),O3y=[...iIf,...oIf];function sIf(){let e=new Map;for(let[t,r]of Object.entries(By)){for(let[n,i]of Object.entries(r))By[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=By[n],e.set(i[0],i[1]);Object.defineProperty(By,t,{value:r,enumerable:!1})}return Object.defineProperty(By,"codes",{value:e,enumerable:!1}),By.color.close="\x1B[39m",By.bgColor.close="\x1B[49m",By.color.ansi=XBa(),By.color.ansi256=ZBa(),By.color.ansi16m=eOa(),By.bgColor.ansi=XBa(10),By.bgColor.ansi256=ZBa(10),By.bgColor.ansi16m=eOa(10),Object.defineProperties(By,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>By.rgbToAnsi256(...By.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>By.ansi256ToAnsi(By.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>By.ansi256ToAnsi(By.hexToAnsi256(t)),enumerable:!1}}),By}var aIf=sIf(),tOa=aIf;var Yvr=new Set(["\x1B","\x9B"]),uIf=39,zPi="\x07",iOa="[",cIf="]",oOa="m",VPi=`${cIf}8;;`,rOa=e=>`${Yvr.values().next().value}${iOa}${e}${oOa}`,nOa=e=>`${Yvr.values().next().value}${VPi}${e}${zPi}`,lIf=e=>e.split(" ").map(t=>jC(t)),UPi=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=jC(C5(e[e.length-1]));for(let[a,u]of n.entries()){let c=jC(u);if(s+c<=r?e[e.length-1]+=u:(e.push(u),s=0),Yvr.has(u)&&(i=!0,o=n.slice(a+1).join("").startsWith(VPi)),i){o?u===zPi&&(i=!1,o=!1):u===oOa&&(i=!1);continue}s+=c,s===r&&a<n.length-1&&(e.push(""),s=0)}!s&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},pIf=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(jC(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},fIf=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=lIf(e),a=[""];for(let[c,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=jC(a[a.length-1]);if(c!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),p=0),(p>0||r.trim===!1)&&(a[a.length-1]+=" ",p++)),r.hard&&s[c]>t){let d=t-p,f=1+Math.floor((s[c]-d-1)/t);Math.floor((s[c]-1)/t)<f&&a.push(""),UPi(a,l,t);continue}if(p+s[c]>t&&p>0&&s[c]>0){if(r.wordWrap===!1&&p<t){UPi(a,l,t);continue}a.push("")}if(p+s[c]>t&&r.wordWrap===!1){UPi(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(c=>pIf(c)));let u=[...a.join(`
|
|
1660
1660
|
`)];for(let[c,l]of u.entries()){if(n+=l,Yvr.has(l)){let{groups:d}=new RegExp(`(?:\\${iOa}(?<code>\\d+)m|\\${VPi}(?<uri>.*)${zPi})`).exec(u.slice(c).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===uIf?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=tOa.codes.get(Number(i));u[c+1]===`
|
|
1661
1661
|
`?(o&&(n+=nOa("")),i&&p&&(n+=rOa(p))):l===`
|
|
@@ -2165,7 +2165,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
|
|
|
2165
2165
|
Example: package-name: "@scope/package"`)}return{success:!1,warnings:[{type:"conflict",message:`Failed to parse generators.yml: ${o}`}]}}}checkDeprecatedFields(t,r){t.openapi!=null&&r.push({type:"deprecated",message:"The 'openapi' field is deprecated",suggestion:"Use 'api.specs' instead"}),t["openapi-overrides"]!=null&&r.push({type:"deprecated",message:"The 'openapi-overrides' field is deprecated",suggestion:"Use 'api.specs.[].overrides' instead"}),t["spec-origin"]!=null&&r.push({type:"deprecated",message:"The 'spec-origin' field is deprecated",suggestion:"Use 'api.specs.[].origin' instead"}),t["async-api"]!=null&&r.push({type:"deprecated",message:"The 'async-api' field is deprecated",suggestion:"Use 'api.specs' with asyncapi instead"}),t["api-settings"]!=null&&r.push({type:"deprecated",message:"The 'api-settings' field is deprecated",suggestion:"Use 'api.specs.[].settings' instead"}),t.whitelabel!=null&&r.push({type:"unsupported",message:"Whitelabel configuration is not yet supported in fern.yml"}),t.metadata!=null&&r.push({type:"unsupported",message:"Metadata configuration is not yet supported in fern.yml"}),t.reviewers!=null&&r.push({type:"unsupported",message:"Reviewers configuration is not yet supported in fern.yml"}),t.aliases!=null&&r.push({type:"unsupported",message:"Group aliases are not yet supported in fern.yml",suggestion:"Use multiple group names in target.group array instead"}),t["auth-schemes"]!=null&&r.push({type:"info",message:"Auth schemes configuration detected but not yet migrated",suggestion:"Auth schemes will be supported in a future version"})}async getAbsoluteFilePath(){let t=We(this.cwd,_e.of(Kd)),r=We(this.cwd,_e.of(S4e));if(await Zt(t,"file"))return t;if(await Zt(r,"file"))return r}};var eBt=class{cwd;logger;deleteOriginals;constructor(t){this.cwd=t.cwd,this.logger=t.logger,this.deleteOriginals=t.deleteOriginals??!0}async migrate(){let t=[],r=[],n=await this.findFernDirectory();if(n==null)return{success:!1,warnings:[{type:"conflict",message:"Could not find fern directory",suggestion:"Run this command from a directory containing a 'fern' folder"}],migratedFiles:r};let o=await new ZSt({cwd:n}).migrate();if(t.push(...o.warnings),!o.success||o.org==null)return{success:!1,warnings:[...t,{type:"conflict",message:"Failed to migrate fern.config.json - organization is required"}],migratedFiles:r};o.absoluteFilePath!=null&&r.push(o.absoluteFilePath);let s=We(n,_e.of(JO)),a=await Zt(s,"directory"),u;if(a){let p=await this.migrateMultiApi({fernDir:n,apisDir:s,org:o.org,warnings:t,migratedFiles:r});if(!p.success)return{success:!1,warnings:t,migratedFiles:r};u=p.fernYml}else{let p=await this.migrateSingleApi({fernDir:n,org:o.org,warnings:t,migratedFiles:r});if(!p.success)return{success:!1,warnings:t,migratedFiles:r};u=p.fernYml}let c=We(this.cwd,_e.of(vE)),l=this.serializeFernYml(u);if(await(0,Drt.writeFile)(c,l,"utf-8"),this.deleteOriginals)for(let p of r)try{await(0,Drt.rm)(p),this.logger.debug(`Deleted ${p}`)}catch{t.push({type:"info",message:`Could not delete ${p}`})}return this.logger.info(`Created ${c}`),{success:!0,warnings:t,migratedFiles:r,outputPath:c}}async migrateSingleApi(t){let{fernDir:r,org:n,warnings:i,migratedFiles:o}=t,a=await new zDe({cwd:r}).migrate();i.push(...a.warnings),a.absoluteFilePath!=null&&o.push(a.absoluteFilePath);let u=await R8i({fernDir:r,generatorsYmlApi:a.rawApi});i.push(...u.warnings);let c={org:n};return u.api!=null&&(c.api=u.api),a.sdks!=null&&(c.sdks=a.sdks),{success:!0,fernYml:c}}async migrateMultiApi(t){let{fernDir:r,apisDir:n,org:i,warnings:o,migratedFiles:s}=t,u=(await(0,Drt.readdir)(n,{withFileTypes:!0})).filter(A=>A.isDirectory()).map(A=>A.name);if(u.length===0)return o.push({type:"conflict",message:"No API directories found in fern/apis/"}),{success:!1,fernYml:{org:i}};let c={},l={targets:{}},p,d;for(let A of u){let b=We(n,_e.of(A)),E=await new zDe({cwd:b,apiName:A}).migrate();if(o.push(...E.warnings),E.absoluteFilePath!=null&&s.push(E.absoluteFilePath),c[A]=E.rawApi,E.sdks!=null){for(let[I,w]of Object.entries(E.sdks.targets))l.targets[I]=w;E.sdks.defaultGroup!=null&&p==null&&(p=E.sdks.defaultGroup),E.sdks.autorelease!=null&&d==null&&(d=E.sdks.autorelease)}}let f=await F8i({fernDir:r,apisDir:n,generatorsYmlApis:c});o.push(...f.warnings);let m={org:i,apis:f.apis};Object.keys(l.targets).length>0&&(p!=null&&(l.defaultGroup=p),d!=null&&(l.autorelease=d),m.sdks=l);let g=await new zDe({cwd:r}).detect();return g.found&&g.absoluteFilePath!=null&&(o.push({type:"info",message:"Found generators.yml in fern root alongside apis/ directory",suggestion:"Review the migrated configuration to ensure it's correct"}),s.push(g.absoluteFilePath)),{success:!0,fernYml:m}}async findFernDirectory(){if(this.cwd.split("/").pop()===Hh)return this.cwd;let r=We(this.cwd,_e.of(Hh));if(await Zt(r,"directory"))return r}serializeFernYml(t){let r={edition:t.edition,org:t.org};return t.api!=null&&(r.api=t.api),t.apis!=null&&(r.apis=t.apis),t.ai!=null&&(r.ai=t.ai),t.cli!=null&&(r.cli=t.cli),t.sdks!=null&&(r.sdks=this.simplifySdks(t.sdks)),xr.dump(r,{indent:2,lineWidth:120,noRefs:!0,sortKeys:!1,quotingType:'"',forceQuotes:!1})}simplifySdks(t){let r={...t},n={};for(let[i,o]of Object.entries(t.targets)){let s=o.output;if(typeof s=="string"){n[i]=o;continue}if(s.git==null&&s.path!=null){n[i]={...o,output:s.path};continue}n[i]=o}return r.targets=n,r}};var k8i=class{async handle(t,r){let i=await new eBt({cwd:t.cwd,logger:t.stdout,deleteOriginals:r.delete}).migrate();for(let o of i.warnings){switch(o.type){case"deprecated":t.stdout.warn(`Deprecated: ${o.message}`);break;case"unsupported":t.stdout.warn(`Unsupported: ${o.message}`);break;case"conflict":t.stderr.error(`Error: ${o.message}`);break;case"info":t.stdout.info(o.message);break}o.suggestion!=null&&t.stdout.info(` Suggestion: ${o.suggestion}`)}if(i.success){i.outputPath!=null&&t.stdout.debug(`Created: ${i.outputPath}`);return}throw new Jr({message:"Migration failed"})}};function Q8i(e){let t=new k8i;Ia(e,"migrate","Migrate legacy configuration files to fern.yml",(r,n)=>t.handle(r,n),r=>r.option("delete",{type:"boolean",description:"Keep original files after migration",default:!0}))}function N8i(e){H1(e,"config","Configure, edit, and inspect your settings",[Q8i])}var j8i=class{async handle(t,r){let n=await t.loadWorkspaceOrThrow();if(n.docs==null)throw new Jr({message:`No docs configuration found in fern.yml.
|
|
2166
2166
|
|
|
2167
2167
|
Add a 'docs:' section to your fern.yml to get started.`});let o=await new Sve({context:t}).check({workspace:n,strict:r.strict}),s=o.hasErrors||r.strict&&o.hasWarnings;if(r.json){let a=this.buildJsonResponse({result:o,hasErrors:s});if(t.stdout.info(JSON.stringify(a,null,2)),s)throw Jr.exit();return}if(o.violations.length>0)for(let a of o.violations){let u=a.severity==="warning"?be.yellow:be.red;process.stderr.write(`${u(`${a.displayRelativeFilepath}:${a.line}:${a.column}: ${a.message}`)}
|
|
2168
|
-
`)}if(s)throw Jr.exit();if(o.warningCount>0){t.stderr.info(`${fo.warning} ${be.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(be.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${fo.success} ${be.green("All checks passed")}`)}buildJsonResponse({result:t,hasErrors:r}){let n={};return t.violations.length>0&&(n.docs=t.violations.map(i=>bK(i))),{success:!r,results:n}}};function M8i(e){let t=new j8i;Ia(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}))}var vHa=xe(require("net"),1),IHa=xe(require("os"),1),yEn=class extends Error{constructor(t){super(`${t} is locked`)}},Rrt={old:new Set,young:new Set},pXf=1e3*15;var tBt,fXf=()=>{let e=IHa.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},bHa=e=>new Promise((t,r)=>{let n=vHa.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),EHa=async(e,t)=>{if(e.host||e.port===0)return bHa(e);for(let r of t)try{await bHa({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},dXf=function*(e){e&&(yield*e),yield 0};async function Bve(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let i=e.exclude;if(typeof i[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let o of i){if(typeof o!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(o))throw new TypeError(`Number ${o} in the exclude option is not a safe integer and can't be used`)}r=new Set(i)}tBt===void 0&&(tBt=setTimeout(()=>{tBt=void 0,Rrt.old=Rrt.young,Rrt.young=new Set},pXf),tBt.unref&&tBt.unref());let n=fXf();for(let i of dXf(t))try{if(r.has(i))continue;let o=await EHa({...e,port:i},n);for(;Rrt.old.has(o)||Rrt.young.has(o);){if(i!==0)throw new yEn(i);o=await EHa({...e,port:i},n)}return Rrt.young.add(o),o}catch(o){if(!["EADDRINUSE","EACCES"].includes(o.code)&&!(o instanceof yEn))throw o}throw new Error("No available ports found")}St();ng();qt();var Msu=xe(z8i(),1),Lsu=xe(ivn(),1),zIn=require("fs/promises"),Usu=xe(require("http"),1),zsu=xe(require("path"),1);var EZa=require("events"),cvn=xe(require("fs"),1),XDe=xe(require("path"),1);var rZa=xe(require("os"),1),nZa=300,kve=20,_Bt=1e7,iZa=rZa.default.platform();var Bod=iZa==="darwin",aVi=iZa==="win32",Qve=Bod||aVi,oZa=3e3,sZa=2e4,uVi=1250;var zX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(zX||(zX={}));var YDe;(function(e){e.CHANGE="change",e.RENAME="rename"})(YDe||(YDe={}));var SBt;(function(e){e.CHANGE="change",e.ERROR="error"})(SBt||(SBt={}));var eu;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(eu||(eu={}));var LT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(LT||(LT={}));var Ood=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,u=0,c=0,l=()=>{let E=Date.now(),I=E-u,w=E-c,x=I>=t||w>=o;return[E,x]},p=E=>{if(c=E,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=E=>{if(c=E,n)return p(E)},h=E=>{if(i&&s)return p(E);s=void 0},g=()=>{a=void 0;let[E,I]=l();return I?h(E):A(E)},A=E=>{let I=E-u,w=E-c,x=t-I,C=o-w,_=Math.min(x,C);return b(_)},b=E=>{a&&clearTimeout(a),!(E<=0)&&(a=setTimeout(g,E))},v=(...E)=>{let[I,w]=l(),x=!!a;if(s=E,u=I,(w||!a)&&b(t),w)return x?p(I):m(I)};return v.cancel=d,v.flush=f,v},ovn=Ood;var fVi=xe(require("fs"),1),avn=xe(require("path"),1);var wf=xe(require("fs"),1),x1=require("util");var wae=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},VX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var cVi=xe(require("process"),1),aZa=cVi.default.getuid?!cVi.default.getuid():!1,uZa=1e4,Dk=()=>{};var BBt={isChangeErrorOk:e=>{if(!BBt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!aZa&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!BBt.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!BBt.isNodeError(e))throw e;if(!BBt.isChangeErrorOk(e))throw e}},OE=BBt;var lVi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=uZa,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},cZa=new lVi;var Cae=(e,t)=>function(n){return function i(...o){return cZa.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},xae=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var Pod={attempt:{chmod:wae((0,x1.promisify)(wf.default.chmod),OE.onChangeError),chown:wae((0,x1.promisify)(wf.default.chown),OE.onChangeError),close:wae((0,x1.promisify)(wf.default.close),Dk),fsync:wae((0,x1.promisify)(wf.default.fsync),Dk),mkdir:wae((0,x1.promisify)(wf.default.mkdir),Dk),realpath:wae((0,x1.promisify)(wf.default.realpath),Dk),stat:wae((0,x1.promisify)(wf.default.stat),Dk),unlink:wae((0,x1.promisify)(wf.default.unlink),Dk),chmodSync:VX(wf.default.chmodSync,OE.onChangeError),chownSync:VX(wf.default.chownSync,OE.onChangeError),closeSync:VX(wf.default.closeSync,Dk),existsSync:VX(wf.default.existsSync,Dk),fsyncSync:VX(wf.default.fsync,Dk),mkdirSync:VX(wf.default.mkdirSync,Dk),realpathSync:VX(wf.default.realpathSync,Dk),statSync:VX(wf.default.statSync,Dk),unlinkSync:VX(wf.default.unlinkSync,Dk)},retry:{close:Cae((0,x1.promisify)(wf.default.close),OE.isRetriableError),fsync:Cae((0,x1.promisify)(wf.default.fsync),OE.isRetriableError),open:Cae((0,x1.promisify)(wf.default.open),OE.isRetriableError),readFile:Cae((0,x1.promisify)(wf.default.readFile),OE.isRetriableError),rename:Cae((0,x1.promisify)(wf.default.rename),OE.isRetriableError),stat:Cae((0,x1.promisify)(wf.default.stat),OE.isRetriableError),write:Cae((0,x1.promisify)(wf.default.write),OE.isRetriableError),writeFile:Cae((0,x1.promisify)(wf.default.writeFile),OE.isRetriableError),closeSync:xae(wf.default.closeSync,OE.isRetriableError),fsyncSync:xae(wf.default.fsyncSync,OE.isRetriableError),openSync:xae(wf.default.openSync,OE.isRetriableError),readFileSync:xae(wf.default.readFileSync,OE.isRetriableError),renameSync:xae(wf.default.renameSync,OE.isRetriableError),statSync:xae(wf.default.statSync,OE.isRetriableError),writeSync:xae(wf.default.writeSync,OE.isRetriableError),writeFileSync:xae(wf.default.writeFileSync,OE.isRetriableError)}},lZa=Pod;var svn=xe(require("fs"),1),OBt=xe(require("path"),1);var pVi=()=>{};var Tod=()=>{let e=pVi,t=pVi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},pZa=Tod;var Dod=()=>{let{promise:e,resolve:t,isPending:r}=pZa(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},fZa=Dod;var dZa={then:e=>{e()}};var mZa=e=>Array.isArray(e)?e:[e],hZa=e=>typeof e=="function";var Rod=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=mZa(o).map(J=>hZa(J)?J:K=>J.test(K)),a=J=>s.some(K=>K(J)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},g=[],A=new Set,b={},v={},E=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:g,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:x,increment:C,decrement:_}=fZa(),R=0,U=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.directories.push(K),J.directoriesNames.add(ge),l.push(K),p.add(ge),d.propertyIsEnumerable(ge)||(d[ge]=[]),d[ge].push(K),E.add(K),!(he>=n)&&(R>=i||H(K,he+1)))},q=(J,K,ge)=>{E.has(K)||R>=i||(R+=1,J.files.push(K),J.filesNames.add(ge),f.push(K),m.add(ge),h.propertyIsEnumerable(ge)||(h[ge]=[]),h[ge].push(K),E.add(K))},z=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.symlinks.push(K),J.symlinksNames.add(ge),g.push(K),A.add(ge),b.propertyIsEnumerable(ge)||(b[ge]=[]),b[ge].push(K),E.add(K),r&&(he>=n||R>=i||Ee(K,he+1)))},Y=(J,K,ge,he,we)=>{u.aborted||a(K)||(he.isDirectory()?U(J,K,ge,we):he.isFile()?q(J,K,ge):he.isSymbolicLink()&&z(J,K,ge,we))},oe=(J,K,ge,he)=>{if(u.aborted)return;let we=K===OBt.default.sep?"":OBt.default.sep,Be=ge.name,le=`${K}${we}${Be}`;a(le)||(ge.isDirectory()?U(J,le,Be,he):ge.isFile()?q(J,le,Be):ge.isSymbolicLink()&&z(J,le,Be,he))},V=(J,K,ge,he)=>{for(let we=0,Be=ge.length;we<Be;we++)oe(J,K,ge[we],he)},H=(J,K)=>{u.aborted||K>n||R>=i||(C(),svn.default.readdir(J,{withFileTypes:!0},(ge,he)=>{if(ge||u.aborted||!he.length)return _();(c(he)||dZa).then(()=>{let Be=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Be,J,he,K),_()})}))},Ee=(J,K)=>{C(),svn.default.realpath(J,(ge,he)=>{if(ge||u.aborted)return _();svn.default.stat(he,(we,Be)=>{if(we||u.aborted)return _();let le=OBt.default.basename(he),ue=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Y(ue,he,le,Be,K),_()})})};return(async(J,K=1)=>(J=OBt.default.normalize(J),E.add(J),H(J,K),await x,u.aborted?I:w))(e)},gZa=Rod;var qX={lang:{debounce:ovn,attempt:e=>{try{return e()}catch(t){return qX.lang.castError(t)}},castArray:e=>qX.lang.isArray(e)?e:[e],castError:e=>qX.lang.isError(e)?e:qX.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(qX.lang.isNaN(e))return qX.lang.isNaN(t);if(qX.lang.isPrimitive(e)||qX.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(avn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?fVi.default.realpathSync.native(e):fVi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===avn.default.sep&&t.length-e.length>avn.default.sep.length,poll:(e,t=sZa)=>lZa.retry.stat(t)(e,{bigint:!0}).catch(qX.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await gZa(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},pl=qX;var uvn=xe(require("path"),1);var dVi=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||pl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=nZa){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=pl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===eu.CHANGE&&a===eu.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===eu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===eu.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??kve:Math.min(1,this.options.depth??kve),s=this.options.limit??_Bt,[a,u]=await pl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())pl.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(eu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!Qve&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(eu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(eu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(uvn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(uvn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===eu.ADD?this.onTargetAdd(n):r===eu.ADD_DIR?this.onTargetAddDir(n):r===eu.CHANGE?this.onTargetChange(n):r===eu.UNLINK?this.onTargetUnlink(n):r===eu.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=YDe.CHANGE,r){if(this.watcher.isClosed())return;let n=uvn.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){aVi&&t.code==="EPERM"?this.onWatcherChange(YDe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(SBt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(SBt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(YDe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&Qve&&this.options.native!==!1?this.options.depth??kve:Math.min(1,this.options.depth??kve),n=this.options.limit??_Bt,[i,o]=await pl.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(YDe.CHANGE,a,t)}))}}},AZa=dVi;var UT={interval:100,intervalId:void 0,fns:new Map,init:()=>{UT.intervalId||(UT.intervalId=setInterval(UT.resolve,UT.interval))},reset:()=>{UT.intervalId&&(clearInterval(UT.intervalId),delete UT.intervalId)},add:(e,t)=>{UT.fns.set(e,Date.now()+t),UT.init()},remove:e=>{UT.fns.delete(e)},resolve:()=>{if(!UT.fns.size)return UT.reset();let e=Date.now();for(let[t,r]of UT.fns)r>=e||(UT.remove(t),t())}},PBt=UT;var TBt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=uVi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(pl.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let u=()=>{s.add.delete(n),PBt.remove(c)},c=()=>{u(),a()};PBt.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=uVi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),PBt.remove(c)},c=()=>{u(),a()};PBt.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,eu.ADD,zX.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,eu.ADD_DIR,zX.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,eu.UNLINK,zX.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,eu.UNLINK_DIR,zX.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};TBt.DIR_EVENTS={add:eu.ADD_DIR,rename:eu.RENAME_DIR,unlink:eu.UNLINK_DIR};TBt.FILE_EVENTS={add:eu.ADD,change:eu.CHANGE,rename:eu.RENAME,unlink:eu.UNLINK};var yZa=TBt;var mVi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(pl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(pl.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(pl.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(pl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return pl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);pl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},hVi=mVi;var gVi=class{constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},bZa=gVi;var AVi=class{constructor(){this.inos={},this.paths=new hVi,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await pl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new bZa(n)}reset(){this.inos={},this.paths=new hVi,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,eu.ADD,i),[eu.ADD];if(i.isDirectory())return this.updateIno(t,eu.ADD_DIR,i),[eu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,eu.UNLINK,n),[eu.UNLINK];if(n.isDirectory())return this.updateIno(t,eu.UNLINK_DIR,n),[eu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,eu.CHANGE,i),[eu.CHANGE]);if(i.isDirectory())return this.updateIno(t,eu.UNLINK,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK,eu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD,i),[eu.UNLINK_DIR,eu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK_DIR,eu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?zX.FILE:zX.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},yVi=AVi;var bVi=class e extends EZa.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(LT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(LT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(LT.READY,i)),this._locker=new yZa(this),this._roots=new Set,this._poller=new yVi,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(pl.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(LT.CLOSE))}error(t){if(this.isClosed())return!1;let r=pl.lang.castError(t);return this.emit(LT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(LT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(LT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)pl.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new AZa(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=pl.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=XDe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??kve))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&Qve&&l.options.native!==!1)))return!0;if(!Qve)break;let c=XDe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=pl.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let u=!r.recursive||Qve&&r.native!==!1?r:{...r,recursive:!1},l={watcher:cvn.default.watch(a,u),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=XDe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||Qve&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??kve,a=r.limit??_Bt,[u]=await pl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=pl.fs.getDepth(t);for(let p of u){let d=pl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(LT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(LT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=XDe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new yVi,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return pl.lang.noop;if(this.pollerExists(t,r))return pl.lang.noop;let i={...r,interval:r.pollingInterval??oZa},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(LT.CLOSE,a),cvn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(LT.CLOSE,a),cvn.default.unwatchFile(t,n)};return pl.lang.attempt(s),()=>pl.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=pl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!pl.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=XDe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await pl.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=XDe.default.dirname(t);return(await pl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=pl.lang.noop){if(pl.lang.isFunction(t))return this.watch([],{},t);if(pl.lang.isUndefined(t))return this.watch([],r,n);if(pl.lang.isFunction(r))return this.watch(t,{},r);if(pl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=pl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==pl.lang.noop&&this.on(LT.ALL,n),r.readdirMap=void 0,this.ready())}},lvn=bVi;Cvn();qt();var nnt=require("fs/promises"),_eu=require("os"),Seu=xe(require("path"),1),rad=".fern",nad="logs";function iad(){return"cli@4.37.10"}var iRe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Ut.of((0,_eu.homedir)()),_e.of(rad)),r=We(t,_e.of(nad));await Zt(r)||await(0,nnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,_e.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Seu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2168
|
+
`)}if(s)throw Jr.exit();if(o.warningCount>0){t.stderr.info(`${fo.warning} ${be.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(be.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${fo.success} ${be.green("All checks passed")}`)}buildJsonResponse({result:t,hasErrors:r}){let n={};return t.violations.length>0&&(n.docs=t.violations.map(i=>bK(i))),{success:!r,results:n}}};function M8i(e){let t=new j8i;Ia(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}))}var vHa=xe(require("net"),1),IHa=xe(require("os"),1),yEn=class extends Error{constructor(t){super(`${t} is locked`)}},Rrt={old:new Set,young:new Set},pXf=1e3*15;var tBt,fXf=()=>{let e=IHa.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},bHa=e=>new Promise((t,r)=>{let n=vHa.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),EHa=async(e,t)=>{if(e.host||e.port===0)return bHa(e);for(let r of t)try{await bHa({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},dXf=function*(e){e&&(yield*e),yield 0};async function Bve(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let i=e.exclude;if(typeof i[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let o of i){if(typeof o!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(o))throw new TypeError(`Number ${o} in the exclude option is not a safe integer and can't be used`)}r=new Set(i)}tBt===void 0&&(tBt=setTimeout(()=>{tBt=void 0,Rrt.old=Rrt.young,Rrt.young=new Set},pXf),tBt.unref&&tBt.unref());let n=fXf();for(let i of dXf(t))try{if(r.has(i))continue;let o=await EHa({...e,port:i},n);for(;Rrt.old.has(o)||Rrt.young.has(o);){if(i!==0)throw new yEn(i);o=await EHa({...e,port:i},n)}return Rrt.young.add(o),o}catch(o){if(!["EADDRINUSE","EACCES"].includes(o.code)&&!(o instanceof yEn))throw o}throw new Error("No available ports found")}St();ng();qt();var Msu=xe(z8i(),1),Lsu=xe(ivn(),1),zIn=require("fs/promises"),Usu=xe(require("http"),1),zsu=xe(require("path"),1);var EZa=require("events"),cvn=xe(require("fs"),1),XDe=xe(require("path"),1);var rZa=xe(require("os"),1),nZa=300,kve=20,_Bt=1e7,iZa=rZa.default.platform();var Bod=iZa==="darwin",aVi=iZa==="win32",Qve=Bod||aVi,oZa=3e3,sZa=2e4,uVi=1250;var zX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(zX||(zX={}));var YDe;(function(e){e.CHANGE="change",e.RENAME="rename"})(YDe||(YDe={}));var SBt;(function(e){e.CHANGE="change",e.ERROR="error"})(SBt||(SBt={}));var eu;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(eu||(eu={}));var LT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(LT||(LT={}));var Ood=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,u=0,c=0,l=()=>{let E=Date.now(),I=E-u,w=E-c,x=I>=t||w>=o;return[E,x]},p=E=>{if(c=E,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=E=>{if(c=E,n)return p(E)},h=E=>{if(i&&s)return p(E);s=void 0},g=()=>{a=void 0;let[E,I]=l();return I?h(E):A(E)},A=E=>{let I=E-u,w=E-c,x=t-I,C=o-w,_=Math.min(x,C);return b(_)},b=E=>{a&&clearTimeout(a),!(E<=0)&&(a=setTimeout(g,E))},v=(...E)=>{let[I,w]=l(),x=!!a;if(s=E,u=I,(w||!a)&&b(t),w)return x?p(I):m(I)};return v.cancel=d,v.flush=f,v},ovn=Ood;var fVi=xe(require("fs"),1),avn=xe(require("path"),1);var wf=xe(require("fs"),1),x1=require("util");var wae=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},VX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var cVi=xe(require("process"),1),aZa=cVi.default.getuid?!cVi.default.getuid():!1,uZa=1e4,Dk=()=>{};var BBt={isChangeErrorOk:e=>{if(!BBt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!aZa&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!BBt.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!BBt.isNodeError(e))throw e;if(!BBt.isChangeErrorOk(e))throw e}},OE=BBt;var lVi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=uZa,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},cZa=new lVi;var Cae=(e,t)=>function(n){return function i(...o){return cZa.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},xae=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var Pod={attempt:{chmod:wae((0,x1.promisify)(wf.default.chmod),OE.onChangeError),chown:wae((0,x1.promisify)(wf.default.chown),OE.onChangeError),close:wae((0,x1.promisify)(wf.default.close),Dk),fsync:wae((0,x1.promisify)(wf.default.fsync),Dk),mkdir:wae((0,x1.promisify)(wf.default.mkdir),Dk),realpath:wae((0,x1.promisify)(wf.default.realpath),Dk),stat:wae((0,x1.promisify)(wf.default.stat),Dk),unlink:wae((0,x1.promisify)(wf.default.unlink),Dk),chmodSync:VX(wf.default.chmodSync,OE.onChangeError),chownSync:VX(wf.default.chownSync,OE.onChangeError),closeSync:VX(wf.default.closeSync,Dk),existsSync:VX(wf.default.existsSync,Dk),fsyncSync:VX(wf.default.fsync,Dk),mkdirSync:VX(wf.default.mkdirSync,Dk),realpathSync:VX(wf.default.realpathSync,Dk),statSync:VX(wf.default.statSync,Dk),unlinkSync:VX(wf.default.unlinkSync,Dk)},retry:{close:Cae((0,x1.promisify)(wf.default.close),OE.isRetriableError),fsync:Cae((0,x1.promisify)(wf.default.fsync),OE.isRetriableError),open:Cae((0,x1.promisify)(wf.default.open),OE.isRetriableError),readFile:Cae((0,x1.promisify)(wf.default.readFile),OE.isRetriableError),rename:Cae((0,x1.promisify)(wf.default.rename),OE.isRetriableError),stat:Cae((0,x1.promisify)(wf.default.stat),OE.isRetriableError),write:Cae((0,x1.promisify)(wf.default.write),OE.isRetriableError),writeFile:Cae((0,x1.promisify)(wf.default.writeFile),OE.isRetriableError),closeSync:xae(wf.default.closeSync,OE.isRetriableError),fsyncSync:xae(wf.default.fsyncSync,OE.isRetriableError),openSync:xae(wf.default.openSync,OE.isRetriableError),readFileSync:xae(wf.default.readFileSync,OE.isRetriableError),renameSync:xae(wf.default.renameSync,OE.isRetriableError),statSync:xae(wf.default.statSync,OE.isRetriableError),writeSync:xae(wf.default.writeSync,OE.isRetriableError),writeFileSync:xae(wf.default.writeFileSync,OE.isRetriableError)}},lZa=Pod;var svn=xe(require("fs"),1),OBt=xe(require("path"),1);var pVi=()=>{};var Tod=()=>{let e=pVi,t=pVi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},pZa=Tod;var Dod=()=>{let{promise:e,resolve:t,isPending:r}=pZa(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},fZa=Dod;var dZa={then:e=>{e()}};var mZa=e=>Array.isArray(e)?e:[e],hZa=e=>typeof e=="function";var Rod=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=mZa(o).map(J=>hZa(J)?J:K=>J.test(K)),a=J=>s.some(K=>K(J)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},g=[],A=new Set,b={},v={},E=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:g,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:x,increment:C,decrement:_}=fZa(),R=0,U=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.directories.push(K),J.directoriesNames.add(ge),l.push(K),p.add(ge),d.propertyIsEnumerable(ge)||(d[ge]=[]),d[ge].push(K),E.add(K),!(he>=n)&&(R>=i||H(K,he+1)))},q=(J,K,ge)=>{E.has(K)||R>=i||(R+=1,J.files.push(K),J.filesNames.add(ge),f.push(K),m.add(ge),h.propertyIsEnumerable(ge)||(h[ge]=[]),h[ge].push(K),E.add(K))},z=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.symlinks.push(K),J.symlinksNames.add(ge),g.push(K),A.add(ge),b.propertyIsEnumerable(ge)||(b[ge]=[]),b[ge].push(K),E.add(K),r&&(he>=n||R>=i||Ee(K,he+1)))},Y=(J,K,ge,he,we)=>{u.aborted||a(K)||(he.isDirectory()?U(J,K,ge,we):he.isFile()?q(J,K,ge):he.isSymbolicLink()&&z(J,K,ge,we))},oe=(J,K,ge,he)=>{if(u.aborted)return;let we=K===OBt.default.sep?"":OBt.default.sep,Be=ge.name,le=`${K}${we}${Be}`;a(le)||(ge.isDirectory()?U(J,le,Be,he):ge.isFile()?q(J,le,Be):ge.isSymbolicLink()&&z(J,le,Be,he))},V=(J,K,ge,he)=>{for(let we=0,Be=ge.length;we<Be;we++)oe(J,K,ge[we],he)},H=(J,K)=>{u.aborted||K>n||R>=i||(C(),svn.default.readdir(J,{withFileTypes:!0},(ge,he)=>{if(ge||u.aborted||!he.length)return _();(c(he)||dZa).then(()=>{let Be=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Be,J,he,K),_()})}))},Ee=(J,K)=>{C(),svn.default.realpath(J,(ge,he)=>{if(ge||u.aborted)return _();svn.default.stat(he,(we,Be)=>{if(we||u.aborted)return _();let le=OBt.default.basename(he),ue=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Y(ue,he,le,Be,K),_()})})};return(async(J,K=1)=>(J=OBt.default.normalize(J),E.add(J),H(J,K),await x,u.aborted?I:w))(e)},gZa=Rod;var qX={lang:{debounce:ovn,attempt:e=>{try{return e()}catch(t){return qX.lang.castError(t)}},castArray:e=>qX.lang.isArray(e)?e:[e],castError:e=>qX.lang.isError(e)?e:qX.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(qX.lang.isNaN(e))return qX.lang.isNaN(t);if(qX.lang.isPrimitive(e)||qX.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(avn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?fVi.default.realpathSync.native(e):fVi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===avn.default.sep&&t.length-e.length>avn.default.sep.length,poll:(e,t=sZa)=>lZa.retry.stat(t)(e,{bigint:!0}).catch(qX.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await gZa(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},pl=qX;var uvn=xe(require("path"),1);var dVi=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||pl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=nZa){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=pl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===eu.CHANGE&&a===eu.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===eu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===eu.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??kve:Math.min(1,this.options.depth??kve),s=this.options.limit??_Bt,[a,u]=await pl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())pl.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(eu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!Qve&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(eu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(eu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(uvn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(uvn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===eu.ADD?this.onTargetAdd(n):r===eu.ADD_DIR?this.onTargetAddDir(n):r===eu.CHANGE?this.onTargetChange(n):r===eu.UNLINK?this.onTargetUnlink(n):r===eu.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=YDe.CHANGE,r){if(this.watcher.isClosed())return;let n=uvn.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){aVi&&t.code==="EPERM"?this.onWatcherChange(YDe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(SBt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(SBt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(YDe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&Qve&&this.options.native!==!1?this.options.depth??kve:Math.min(1,this.options.depth??kve),n=this.options.limit??_Bt,[i,o]=await pl.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(YDe.CHANGE,a,t)}))}}},AZa=dVi;var UT={interval:100,intervalId:void 0,fns:new Map,init:()=>{UT.intervalId||(UT.intervalId=setInterval(UT.resolve,UT.interval))},reset:()=>{UT.intervalId&&(clearInterval(UT.intervalId),delete UT.intervalId)},add:(e,t)=>{UT.fns.set(e,Date.now()+t),UT.init()},remove:e=>{UT.fns.delete(e)},resolve:()=>{if(!UT.fns.size)return UT.reset();let e=Date.now();for(let[t,r]of UT.fns)r>=e||(UT.remove(t),t())}},PBt=UT;var TBt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=uVi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(pl.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let u=()=>{s.add.delete(n),PBt.remove(c)},c=()=>{u(),a()};PBt.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=uVi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),PBt.remove(c)},c=()=>{u(),a()};PBt.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,eu.ADD,zX.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,eu.ADD_DIR,zX.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,eu.UNLINK,zX.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,eu.UNLINK_DIR,zX.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};TBt.DIR_EVENTS={add:eu.ADD_DIR,rename:eu.RENAME_DIR,unlink:eu.UNLINK_DIR};TBt.FILE_EVENTS={add:eu.ADD,change:eu.CHANGE,rename:eu.RENAME,unlink:eu.UNLINK};var yZa=TBt;var mVi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(pl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(pl.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(pl.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(pl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return pl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);pl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},hVi=mVi;var gVi=class{constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},bZa=gVi;var AVi=class{constructor(){this.inos={},this.paths=new hVi,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await pl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new bZa(n)}reset(){this.inos={},this.paths=new hVi,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,eu.ADD,i),[eu.ADD];if(i.isDirectory())return this.updateIno(t,eu.ADD_DIR,i),[eu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,eu.UNLINK,n),[eu.UNLINK];if(n.isDirectory())return this.updateIno(t,eu.UNLINK_DIR,n),[eu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,eu.CHANGE,i),[eu.CHANGE]);if(i.isDirectory())return this.updateIno(t,eu.UNLINK,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK,eu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD,i),[eu.UNLINK_DIR,eu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK_DIR,eu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?zX.FILE:zX.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},yVi=AVi;var bVi=class e extends EZa.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(LT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(LT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(LT.READY,i)),this._locker=new yZa(this),this._roots=new Set,this._poller=new yVi,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(pl.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(LT.CLOSE))}error(t){if(this.isClosed())return!1;let r=pl.lang.castError(t);return this.emit(LT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(LT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(LT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)pl.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new AZa(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=pl.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=XDe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??kve))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&Qve&&l.options.native!==!1)))return!0;if(!Qve)break;let c=XDe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=pl.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let u=!r.recursive||Qve&&r.native!==!1?r:{...r,recursive:!1},l={watcher:cvn.default.watch(a,u),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=XDe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||Qve&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??kve,a=r.limit??_Bt,[u]=await pl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=pl.fs.getDepth(t);for(let p of u){let d=pl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(LT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(LT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=XDe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new yVi,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return pl.lang.noop;if(this.pollerExists(t,r))return pl.lang.noop;let i={...r,interval:r.pollingInterval??oZa},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(LT.CLOSE,a),cvn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(LT.CLOSE,a),cvn.default.unwatchFile(t,n)};return pl.lang.attempt(s),()=>pl.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=pl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!pl.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=XDe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await pl.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=XDe.default.dirname(t);return(await pl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=pl.lang.noop){if(pl.lang.isFunction(t))return this.watch([],{},t);if(pl.lang.isUndefined(t))return this.watch([],r,n);if(pl.lang.isFunction(r))return this.watch(t,{},r);if(pl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=pl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==pl.lang.noop&&this.on(LT.ALL,n),r.readdirMap=void 0,this.ready())}},lvn=bVi;Cvn();qt();var nnt=require("fs/promises"),_eu=require("os"),Seu=xe(require("path"),1),rad=".fern",nad="logs";function iad(){return"cli@4.37.11"}var iRe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Ut.of((0,_eu.homedir)()),_e.of(rad)),r=We(t,_e.of(nad));await Zt(r)||await(0,nnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,_e.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Seu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2169
2169
|
`);await(0,nnt.writeFile)(this.logFilePath,o,"utf-8"),this.initialized=!0}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
|
|
2170
2170
|
`;try{await(0,nnt.appendFile)(this.logFilePath,r,"utf-8")}catch{}}async logFrontendMetrics(t){let r={timestamp:t.timestamp,source:t.source,level:t.level,eventType:this.getEventType(t.payload,t.isAggregate),isAggregate:t.isAggregate,data:t.payload};await this.writeEntry(r)}async logCliMetric(t,r="info"){let n={timestamp:t.timestamp,source:iad(),level:r,eventType:t.type,data:{durationMs:t.durationMs,metadata:t.metadata}};await this.writeEntry(n)}async logCliMemory(){let t=process.memoryUsage(),r={type:"cli_memory",timestamp:new Date().toISOString(),metadata:{heapUsed:t.heapUsed,heapTotal:t.heapTotal,external:t.external,rss:t.rss,heapUsedMB:Math.round(t.heapUsed/1024/1024*100)/100,heapTotalMB:Math.round(t.heapTotal/1024/1024*100)/100,rssMB:Math.round(t.rss/1024/1024*100)/100}};await this.logCliMetric(r)}async logCliReloadStart(){let t={type:"cli_reload_start",timestamp:new Date().toISOString()};await this.logCliMetric(t)}async logCliReloadFinish(t,r){let n={type:"cli_reload_finish",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliDocsGeneration(t,r){let n={type:"cli_docs_generation",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliValidation(t,r){let n={type:"cli_validation",timestamp:new Date().toISOString(),durationMs:t,metadata:{success:r}};await this.logCliMetric(n)}getEventType(t,r){return r?"aggregate_summary":"type"in t&&typeof t.type=="string"?t.type:"unknown"}static isMetricsMessage(t){if(typeof t!="object"||t===null)return!1;let r=t;return r.type==="metrics"&&typeof r.timestamp=="string"&&typeof r.source=="string"}};var UVi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function Beu(e){let t=oad();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i}=e,o=new Map;function s(u){let c=JSON.stringify(u),l=[];for(let[p]of o)try{p.send(c)}catch{l.push(p)}for(let p of l){let d=o.get(p);d&&(clearInterval(d.pingInterval),o.delete(p))}}let a=t.serve({port:r,fetch(u,c){if(u.method==="OPTIONS")return new Response(null,{status:204,headers:UVi});let l=new URL(u.url);if(u.headers.get("upgrade")?.toLowerCase()==="websocket"){c.upgrade(u,{data:{connectionId:`${Date.now()}`}});return}if(u.method==="POST"&&l.pathname==="/v2/registry/docs/load-with-url")return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...UVi}});let p=/^\/_local\/(.*)/.exec(l.pathname);return u.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:UVi}):new Response("Not Found",{status:404})},websocket:{open(u){let{connectionId:c}=u.data,l=setInterval(()=>{let p=o.get(u);if(!p)return;let d=Date.now();if(d-p.lastPong>9e4){u.close();return}try{u.send(JSON.stringify({type:"ping",timestamp:d}))}catch{u.close()}},3e4);o.set(u,{pingInterval:l,lastPong:Date.now()});try{u.send(JSON.stringify({type:"connected",connectionId:c}))}catch{}},message(u,c){try{let l=JSON.parse(c.toString());if(l.type==="pong"){let p=o.get(u);p&&(p.lastPong=Date.now())}else iRe.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(u){let c=o.get(u);c&&(clearInterval(c.pingInterval),o.delete(u))}}});return{sendData:s,stop:u=>a.stop(u)}}function oad(){return globalThis.Bun}qt();var v9i=xe(JVi(),1),Tsu=xe(c9i(),1),Rk=require("fs/promises"),Dsu=require("os"),Rsu=xe(Cw(),1),Fsu=xe(Osu(),1),QIn=process.platform==="win32",E9i=be.cyan("[docs]:"),kpd="etag",Qpd=23,Psu=e=>e.padEnd(Qpd," "),Npd="preview",jpd="app-preview",Mpd="bundle",Lpd=".next",Upd="standalone",zpd=".fern",Vpd="packages/fern-docs/bundle/.next/server/instrumentation.js",qpd=".npmrc",Gpd=".pnpmfile.cjs",Wpd="pnpm-workspace.yaml",$pd='Cannot find matching keyid: {"signatures":';function Hpd(){return We(Ut.of((0,Dsu.homedir)()),_e.of(zpd))}function vnt({app:e=!1}){return We(Hpd(),_e.of(e?jpd:Npd))}function $ve({app:e=!1}){return We(vnt({app:e}),_e.of(e?Lpd:Mpd))}function lOt({app:e=!1}){return We($ve({app:e}),_e.of(Upd))}function Kpd({app:e=!1}){return We(lOt({app:e}),_e.of(Vpd))}function Jpd({app:e=!1}){return We(lOt({app:e}),_e.of(Wpd))}function Ypd({app:e=!1}){return We(lOt({app:e}),_e.of(Gpd))}function Xpd({app:e=!1}){return We(lOt({app:e}),_e.of(qpd))}function dRe(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function Zpd({app:e=!1}){return We(vnt({app:e}),_e.of(kpd))}var efd=`module.exports = {
|
|
2171
2171
|
hooks: {
|
|
@@ -2206,7 +2206,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
|
|
|
2206
2206
|
|
|
2207
2207
|
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`);case"UnavailableError":return t.failAndThrow("Failed to publish docs. Please try again later or reach out to Fern support at support@buildwithfern.com.");default:return t.failAndThrow("Failed to publish docs.",e)}}function Wmd(e,t){let n=e?.content;if(n?.reason==="status-code"){let i=n.statusCode;if(i===401||i===403)return`${`You do not have permission to publish docs to organization '${t}'. Please run 'fern login' to ensure you are logged in with the correct account.`}
|
|
2208
2208
|
|
|
2209
|
-
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}}function $md(e){try{return new URL(RT(e)).pathname}catch{return}}async function Hmd({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await Kmd({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=await e.api.v1.register.checkSdkDynamicIrExists({orgId:_r.OrgId(r),snippetConfiguration:o});if(!s.ok||!s.body){n.logger.debug("[SDK Dynamic IR] API call failed or returned empty body");return}let a=s.body.existingDynamicIrs;if(Object.keys(a).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[c,l]of Object.entries(a))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${c}...`);let p=await fetch(l.downloadUrl);if(p.ok){let d=await p.json();u[c]={dynamicIR:d},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${c}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${c}: ${p.status}`)}catch(p){n.logger.warn(`Error downloading SDK dynamic IR for ${c}: ${p}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function Euu(e){return e.replace(/^https:\/\//,"")}async function Kmd({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package,explicitVersion:r.typescriptSdk?.version},{language:"python",snippetName:r.pythonSdk?.package,explicitVersion:r.pythonSdk?.version},{language:"java",snippetName:r.javaSdk?.coordinate,explicitVersion:r.javaSdk?.version},{language:"go",snippetName:r.goSdk?.githubRepo&&Euu(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version},{language:"csharp",snippetName:r.csharpSdk?.package,explicitVersion:r.csharpSdk?.version},{language:"ruby",snippetName:r.rubySdk?.gem,explicitVersion:r.rubySdk?.version},{language:"php",snippetName:r.phpSdk?.package,explicitVersion:r.phpSdk?.version},{language:"swift",snippetName:r.swiftSdk?.package,explicitVersion:r.swiftSdk?.version},{language:"rust",snippetName:r.rustSdk?.package,explicitVersion:r.rustSdk?.version}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion;a||(a=(await Jmd({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function Jmd({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,u;if(t.generatorsConfiguration?.groups){let c=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=bn.getPackageName({generatorInvocation:p});d&&c.push(d),!a&&d&&(a=d,u=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let c=await e.sdks.versions.computeSemanticVersion({githubRepository:s,language:o,package:a});if(!c.ok){i.logger.debug(`[SDK Dynamic IR] ${r}: version computation failed for package "${a}"`);return}return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${c.body.version} for package "${a}"`),{version:c.body.version,generatorPackage:a}}catch(c){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${c}`);return}}async function Ymd({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&Euu(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let u of a.generators){let c=mRe({apiName:e.workspaceName??"",organization:t,generatorInvocation:u}),l="";if(c?.outputConfig.type==="publish")switch(c.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=c.outputConfig.value.packageName;break;case"maven":l=c.outputConfig.value.coordinate;break;case"go":l=c.outputConfig.value.repoUrl;break;case"swift":l=c.outputConfig.value.repoUrl;break;case"crates":l=c.outputConfig.value.packageName;break}if(u.language==="php"&&u.config&&typeof u.config=="object"&&"packageName"in u.config&&(l=u.config.packageName??""),!!u.language){if(i.has(u.language)){r.logger.debug(`Skipping dynamic IR generation for ${u.language} (using existing SDK dynamic IR)`);continue}if(u.language&&s[u.language]===l){let p=eh({workspace:e,generationLanguage:u.language,keywords:void 0,smartCasing:u.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new rm(r,e),dynamicGeneratorConfig:c}),d=oOe({ir:p,disableExamples:!0,smartCasing:u.smartCasing,generationLanguage:u.language,generatorConfig:c});d?o[u.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${u.language}`)}}}for(let[a,u]of Object.entries(s))a&&u&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${u}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${u} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function Xmd({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function Zmd({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(be.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function ehd(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function thd(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var yOt=[60*1e3,300*1e3,300*1e3];async function bOt({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:u,disableTemplates:c,skipUpload:l,cliVersion:p}){let d=a&&!n.config.settings?.substituteEnvVars;n.config=uy(n.config,{onError:A=>i.failAndThrow(A)},{substituteAsEmpty:d});let f=n.config.instances;if(f.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.");return}if(f.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${f[0]?.url})`);return}let m=f.find(A=>A.url===s)??f[0];if(m==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`);return}let h=[];m.customDomain!=null&&(typeof m.customDomain=="string"?h.push(m.customDomain):Array.isArray(m.customDomain)&&h.push(...m.customDomain)),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${m.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let g;return await i.runInteractiveTask({name:m.url},async()=>{let A=performance.now(),b=()=>buu({docsWorkspace:n,customDomains:h,domain:m.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:u,editThisPage:m.editThisPage,isPrivate:m.private,disableTemplates:c,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:m.audiences?Array.isArray(m.audiences)?m.audiences:[m.audiences]:void 0,docsUrl:m.url,cliVersion:p});for(let E=0;;E++)try{g=await b();break}catch(I){if(!(I instanceof xnt)||E>=yOt.length){if(I instanceof xnt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.");throw I}let w=yOt[E]??yOt[yOt.length-1]??6e4,x=w/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${x} minute${x===1?"":"s"} (attempt ${E+1}/${yOt.length})...`),await new Promise(C=>setTimeout(C,w))}let v=performance.now()-A;i.logger.debug(`Docs publishing completed in ${v.toFixed(0)}ms`)}),g}var Dwn=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,skipUpload:n}){let i=new oh({context:this.context,task:this.task});try{let o=await bOt({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:i,token:this.token,instanceUrl:t,preview:r,previewId:void 0,disableTemplates:void 0,skipUpload:n,cliVersion:"4.37.10"});return i.getResult()===Tp.Failure?{success:!1}:{success:!0,url:o}}catch(o){return{success:!1,error:xi(o)}}}};St();var _nt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
|
|
2209
|
+
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}}function $md(e){try{return new URL(RT(e)).pathname}catch{return}}async function Hmd({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await Kmd({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=await e.api.v1.register.checkSdkDynamicIrExists({orgId:_r.OrgId(r),snippetConfiguration:o});if(!s.ok||!s.body){n.logger.debug("[SDK Dynamic IR] API call failed or returned empty body");return}let a=s.body.existingDynamicIrs;if(Object.keys(a).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[c,l]of Object.entries(a))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${c}...`);let p=await fetch(l.downloadUrl);if(p.ok){let d=await p.json();u[c]={dynamicIR:d},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${c}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${c}: ${p.status}`)}catch(p){n.logger.warn(`Error downloading SDK dynamic IR for ${c}: ${p}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function Euu(e){return e.replace(/^https:\/\//,"")}async function Kmd({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package,explicitVersion:r.typescriptSdk?.version},{language:"python",snippetName:r.pythonSdk?.package,explicitVersion:r.pythonSdk?.version},{language:"java",snippetName:r.javaSdk?.coordinate,explicitVersion:r.javaSdk?.version},{language:"go",snippetName:r.goSdk?.githubRepo&&Euu(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version},{language:"csharp",snippetName:r.csharpSdk?.package,explicitVersion:r.csharpSdk?.version},{language:"ruby",snippetName:r.rubySdk?.gem,explicitVersion:r.rubySdk?.version},{language:"php",snippetName:r.phpSdk?.package,explicitVersion:r.phpSdk?.version},{language:"swift",snippetName:r.swiftSdk?.package,explicitVersion:r.swiftSdk?.version},{language:"rust",snippetName:r.rustSdk?.package,explicitVersion:r.rustSdk?.version}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion;a||(a=(await Jmd({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function Jmd({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,u;if(t.generatorsConfiguration?.groups){let c=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=bn.getPackageName({generatorInvocation:p});d&&c.push(d),!a&&d&&(a=d,u=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let c=await e.sdks.versions.computeSemanticVersion({githubRepository:s,language:o,package:a});if(!c.ok){i.logger.debug(`[SDK Dynamic IR] ${r}: version computation failed for package "${a}"`);return}return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${c.body.version} for package "${a}"`),{version:c.body.version,generatorPackage:a}}catch(c){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${c}`);return}}async function Ymd({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&Euu(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let u of a.generators){let c=mRe({apiName:e.workspaceName??"",organization:t,generatorInvocation:u}),l="";if(c?.outputConfig.type==="publish")switch(c.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=c.outputConfig.value.packageName;break;case"maven":l=c.outputConfig.value.coordinate;break;case"go":l=c.outputConfig.value.repoUrl;break;case"swift":l=c.outputConfig.value.repoUrl;break;case"crates":l=c.outputConfig.value.packageName;break}if(u.language==="php"&&u.config&&typeof u.config=="object"&&"packageName"in u.config&&(l=u.config.packageName??""),!!u.language){if(i.has(u.language)){r.logger.debug(`Skipping dynamic IR generation for ${u.language} (using existing SDK dynamic IR)`);continue}if(u.language&&s[u.language]===l){let p=eh({workspace:e,generationLanguage:u.language,keywords:void 0,smartCasing:u.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new rm(r,e),dynamicGeneratorConfig:c}),d=oOe({ir:p,disableExamples:!0,smartCasing:u.smartCasing,generationLanguage:u.language,generatorConfig:c});d?o[u.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${u.language}`)}}}for(let[a,u]of Object.entries(s))a&&u&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${u}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${u} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function Xmd({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function Zmd({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(be.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function ehd(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function thd(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var yOt=[60*1e3,300*1e3,300*1e3];async function bOt({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:u,disableTemplates:c,skipUpload:l,cliVersion:p}){let d=a&&!n.config.settings?.substituteEnvVars;n.config=uy(n.config,{onError:A=>i.failAndThrow(A)},{substituteAsEmpty:d});let f=n.config.instances;if(f.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.");return}if(f.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${f[0]?.url})`);return}let m=f.find(A=>A.url===s)??f[0];if(m==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`);return}let h=[];m.customDomain!=null&&(typeof m.customDomain=="string"?h.push(m.customDomain):Array.isArray(m.customDomain)&&h.push(...m.customDomain)),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${m.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let g;return await i.runInteractiveTask({name:m.url},async()=>{let A=performance.now(),b=()=>buu({docsWorkspace:n,customDomains:h,domain:m.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:u,editThisPage:m.editThisPage,isPrivate:m.private,disableTemplates:c,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:m.audiences?Array.isArray(m.audiences)?m.audiences:[m.audiences]:void 0,docsUrl:m.url,cliVersion:p});for(let E=0;;E++)try{g=await b();break}catch(I){if(!(I instanceof xnt)||E>=yOt.length){if(I instanceof xnt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.");throw I}let w=yOt[E]??yOt[yOt.length-1]??6e4,x=w/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${x} minute${x===1?"":"s"} (attempt ${E+1}/${yOt.length})...`),await new Promise(C=>setTimeout(C,w))}let v=performance.now()-A;i.logger.debug(`Docs publishing completed in ${v.toFixed(0)}ms`)}),g}var Dwn=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,skipUpload:n}){let i=new oh({context:this.context,task:this.task});try{let o=await bOt({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:i,token:this.token,instanceUrl:t,preview:r,previewId:void 0,disableTemplates:void 0,skipUpload:n,cliVersion:"4.37.11"});return i.getResult()===Tp.Failure?{success:!1}:{success:!0,url:o}}catch(o){return{success:!1,error:xi(o)}}}};St();var _nt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
|
|
2210
2210
|
`),this.stream.write(`${be.cyan("\u25C6")} ${be.bold(t.title)}
|
|
2211
2211
|
`),t.subtitle!=null&&this.stream.write(` ${be.dim(t.subtitle)}
|
|
2212
2212
|
`),this.stream.write(`
|
|
@@ -2456,7 +2456,7 @@ ${ZOt(this).map(t=>` ${t.fn} - ${t.path}:${t.position}`).join(`
|
|
|
2456
2456
|
`),this.hasSameAccess(this.init)||t.write(`${this.init} `),t.writeTextStatement("init"),t.writeNoIndent(`#else
|
|
2457
2457
|
`),t.writeTextStatement("set"),t.writeNoIndent(`#endif
|
|
2458
2458
|
`)):(this.hasSameAccess(this.init)||t.write(`${this.init} `),this.accessors?.init?(t.write("init"),t.write(" => "),this.accessors.init(t),t.writeTextStatement("")):t.write("init; "))),this.set&&(this.hasSameAccess(this.set)||t.write(`${this.set} `),this.accessors?.set?(t.write("set"),t.write(" => "),this.accessors.set(t),t.writeTextStatement("")):t.write("set; ")),t.write("}")),this.initializer!=null?(i?t.write(" => "):t.write(" = "),this.initializer.write(t),t.writeLine(";")):!this.skipDefaultInitializer&&!r&&n?ka.Type(this.type)&&this.type.writeEmptyCollectionInitializer(t):!this.get&&!this.init&&t.writeLine(";")}hasSameAccess(t){return t===!0||t===this.access}};St();var Aq;(function(e){e[e.INSTANCE=0]="INSTANCE",e[e.STATIC=1]="STATIC"})(Aq||(Aq={}));var BIe=class e extends mIe{name;isAsync;access;return;noBody;body;bodyType;summary;doc;type;reference;override;parameters;typeParameters;annotations;interfaceReference;constructor({name:t,isAsync:r,override:n,access:i,return_:o,body:s,noBody:a,bodyType:u,summary:c,doc:l,type:p,classReference:d,parameters:f,typeParameters:m,annotations:h,codeExample:g,interfaceReference:A,origin:b,enclosingType:v},E){super({enclosingType:v},b,E),this.name=t,this.isAsync=r??!1,this.override=n??!1,this.access=i,this.return=o,this.noBody=a??!1,this.body=s,this.bodyType=u??e.BodyType.Statement,this.summary=c,this.doc=this.csharp.xmlDocBlockOf(l??{summary:c,codeExample:g}),this.type=p??Aq.INSTANCE,this.reference=d,this.parameters=f??[],this.typeParameters=m??[],this.annotations=(h??[]).map(I=>I instanceof dO?this.csharp.annotation({reference:I}):I),this.interfaceReference=A}get isAsyncEnumerable(){return ka.AsyncEnumerable(this.return)}addParameter(t){return t instanceof gq||(t=new gq(t,this.generation)),this.parameters.push(t),t}write(t){if(t.writeNode(this.doc),this.annotations.forEach(r=>{r.write(t)}),t.writeNewLineIfLastLineNot(),this.access&&t.write(`${this.access} `),this.type===Aq.STATIC&&t.write("static "),this.isAsync&&t.write("async "),this.override&&t.write("override "),this.return==null?this.isAsync?(t.writeNode(this.System.Threading.Tasks.Task()),t.write(" ")):t.write("void "):(this.isAsync&&!this.isAsyncEnumerable?t.writeNode(this.System.Threading.Tasks.Task(this.return)):this.return.write(t),t.write(" ")),this.interfaceReference&&t.write(`${this.interfaceReference.name}.`),t.write(this.name),this.typeParameters.length>0&&(t.write("<"),this.typeParameters.forEach((r,n)=>{r.write(t),n<this.typeParameters.length-1&&t.write(", ")}),t.write(">")),t.write("("),this.parameters.forEach((r,n)=>{r.write(t),n<this.parameters.length-1&&t.write(", ")}),t.write(")"),this.noBody)t.writeLine(";");else switch(this.bodyType){case e.BodyType.Statement:t.write(" "),t.pushScope(),this.body?.write(t),t.popScope();break;case e.BodyType.Expression:t.write(" => "),this.body?.write(t),t.writeSemicolonIfLastCharacterIsNot();break;default:Se(this.bodyType)}}getParameters(){return this.parameters}};(function(e){e.BodyType={Statement:"statement",Expression:"expression"}})(BIe||(BIe={}));var zit=class extends vN{access;partial;reference;interfaceReferences;fields=[];methods=[];constructor({name:t,namespace:r,access:n,partial:i,interfaceReferences:o,enclosingType:s,origin:a},u){super(a,u),t=t||(a?this.model.getClassNameFor(a):JA("Class/Interface name or origin is required")),this.reference=s?this.csharp.classReference({name:t,enclosingType:s}):this.csharp.classReference({name:t,namespace:r||JA("Class/Interface: Namespace or enclosingType is required ")}),this.access=n,this.partial=i??!1,this.interfaceReferences=o??[]}get name(){return this.reference.name}get namespace(){return this.reference.namespace}get enclosingType(){return this.reference.enclosingType}get isNested(){return this.enclosingType!=null}explicit(t){return this.origin?this.model.explicit(ka.Provenance(this.origin)?this.origin.node:this.origin,t):JA(`Cannot create explicit named member '${t}' on '${this.name}' because the class is not bound to an origin.`)}getField(t){return this.fields.find(r=>this.model.provenance(r.origin)?.jsonPath===t.jsonPath)}addField(t){t.enclosingType=this.reference;let r=new Uit(t,this.generation);return this.fields.push(r),r}addMethod(t){t.enclosingType=this.reference;let r=new BIe(t,this.generation);return this.methods.push(r),r}get multipartMethodName(){return"AddJsonPart"}get multipartMethodNameForCollection(){return"AddJsonParts"}get isOptional(){return!1}get isCollection(){return!1}get isReferenceType(){}asOptional(){return new Pz(this,this.generation)}asNullable(){return new XRe(this,this.generation)}asNonOptional(){return this}get defaultValue(){return this.csharp.Literal.null()}get fullyQualifiedName(){return this.reference.fullyQualifiedName}};var KZ=class e extends zit{static ClassType={Class:"class",Record:"record",Struct:"struct",RecordStruct:"record struct"};static Access=oI;static_;abstract_;sealed;readonly;parentClassReference;type;summary;doc;annotations=[];primaryConstructor;namespaceReferences=[];constructors=[];operators=[];nestedClasses=[];nestedInterfaces=[];rawBodyBlocks=[];constructor({name:t,namespace:r,access:n,static_:i,abstract_:o,sealed:s,partial:a,readonly:u,parentClassReference:c,interfaceReferences:l,enclosingType:p,type:d,summary:f,doc:m,annotations:h,primaryConstructor:g,origin:A},b){super({name:t,namespace:r,access:n,partial:a,interfaceReferences:l,enclosingType:p,origin:A},b),this.static_=i??!1,this.abstract_=o??!1,this.sealed=s??!1,this.readonly=u??!1,this.type=d??e.ClassType.Class,this.summary=f,this.doc=this.csharp.xmlDocBlockOf(m??{summary:f}),this.parentClassReference=c,this.annotations=(h??[]).map(v=>v instanceof dO?this.csharp.annotation({reference:v}):v),this.primaryConstructor=g}addConstructor(t){let r=new e.Constructor(t,this.generation);return this.constructors.push(r),r}addNestedClass(t){if(t instanceof e||(t.enclosingType=this.reference,t=new e(t,this.generation)),!t.isNested)throw new Error(`Set the enclosingType of the class ${this.name} to add the nested class ${t.name}.`);return this.nestedClasses.push(t),t}addNestedClasses(t){t.forEach(r=>{r instanceof e?this.addNestedClass(r):this.addNestedClass(r)})}addAnnotation(t){return t instanceof tue||(t=new tue(t,this.generation)),this.annotations.push(t),t}addOperator(t){this.operators.push(t)}addOperators(t){t.forEach(r=>this.addOperator(r))}addRawBodyContent(t){this.rawBodyBlocks.push(t)}write(t){if(this.namespaceReferences.forEach(r=>{t.addNamespace(r)}),this.isNested||(t.writeLine(`namespace ${this.namespace};`),t.newLine()),t.writeNode(this.doc),this.annotations.forEach(r=>{r.write(t)}),t.writeNewLineIfLastLineNot(),t.write(`${this.access}`),this.static_&&t.write(" static"),this.abstract_&&t.write(" abstract"),this.sealed&&t.write(" sealed"),this.readonly&&t.write(" readonly"),this.partial&&t.write(" partial"),t.write(` ${this.type}`),t.write(` ${this.name}`),this.primaryConstructor!=null&&this.primaryConstructor.parameters.length>0){let r=this.primaryConstructor;t.write("("),r.parameters.forEach((n,i)=>{i>0&&t.write(","),n.write(t)}),t.write(")")}if(this.parentClassReference!=null||this.interfaceReferences.length>0){if(t.write(" : "),this.parentClassReference!=null&&(this.parentClassReference.write(t),this.interfaceReferences.length>0&&t.write(", ")),this.primaryConstructor!=null&&this.primaryConstructor.superClassArguments.length>0){let r=this.primaryConstructor;t.write("("),this.primaryConstructor.superClassArguments.forEach((n,i)=>{n.write(t),i<r.superClassArguments.length-1&&t.write(", ")}),t.write(")")}this.interfaceReferences.forEach((r,n)=>{r.write(t),n<this.interfaceReferences.length-1&&t.write(", ")})}if(!this.hasBody()){t.write(";");return}t.writeNewLineIfLastLineNot(),t.pushScope(),this.writeConsts(t),this.writeFieldFields(t),this.writeConstructors(t),this.writeProperties(t),this.writeMethods(t),this.writeOperators(t),this.writeRawBodyBlocks(t),this.writeNestedClasses(t),this.writeNestedInterfaces(t),t.popScope()}hasBody(){return this.fields.length>0||this.constructors.length>0||this.nestedClasses.length>0||this.nestedInterfaces.length>0||this.methods.length>0||this.operators.length>0||this.rawBodyBlocks.length>0}writeConstructors(t){this.constructors.forEach(r=>{t.writeNode(this.csharp.xmlDocBlockOf(r.doc)),r.annotations.forEach(n=>{n.write(t),t.writeNewLineIfLastLineNot()}),t.write(`${r.access} ${this.name} (`),r.parameters.forEach((n,i)=>{n.write(t),i<r.parameters.length-1&&t.write(", ")}),t.write(")"),r.baseConstructorCall!=null&&(t.write(" : "),r.baseConstructorCall.write(t)),t.pushScope(),r.body.write(t),t.popScope(),t.newLine()})}writeFields({writer:t,fields:r}){r.forEach((n,i)=>{n.write(t),t.writeNewLineIfLastLineNot(),i<this.fields.length-1&&t.newLine()})}writeConsts(t){this.writeFields({writer:t,fields:this.getFields().sort(Vit).sort(jWi).filter(this.fieldConstFilter())})}writeFieldFields(t){this.writeFields({writer:t,fields:this.getFields().sort(Vit).sort(jWi).filter(this.fieldFieldFilter())})}writeProperties(t){this.writeFields({writer:t,fields:this.getFields().sort(Vit).sort(jWi).filter(this.fieldPropertyFilter())})}writeMethods(t){this.methods.sort(Vit).sort(Zwd).sort(Xwd).forEach(r=>{r.write(t),t.writeNewLineIfLastLineNot(),t.newLine()})}writeOperators(t){this.operators.forEach(r=>{this.writeOperator({writer:t,operator:r}),t.newLine()})}writeRawBodyBlocks(t){this.rawBodyBlocks.forEach(r=>{r.write(t),t.writeNewLineIfLastLineNot()})}writeNestedClasses(t){this.nestedClasses.sort(Vit).forEach((r,n)=>{r.write(t),t.writeNewLineIfLastLineNot(),n<this.fields.length-1&&t.newLine()})}writeNestedInterfaces(t){this.nestedInterfaces.sort(Vit).forEach((r,n)=>{r.write(t),t.writeNewLineIfLastLineNot(),n<this.fields.length-1&&t.newLine()})}fieldConstFilter(){return t=>t.isConst}fieldFieldFilter(){return t=>t.isField}fieldPropertyFilter(){return t=>t.isProperty}getFields(){return this.fields}get isReferenceType(){return this.type===e.ClassType.Class||this.type===e.ClassType.Record}writeOperator({writer:t,operator:r}){if(t.write("public static "),r.type===e.CastOperator.Type.Explicit||r.type===e.CastOperator.Type.Implicit){t.write(`${r.type} `),t.write("operator ");let n=r.to??this.reference;t.writeNode(n),t.write("("),r.parameter.write(t)}else{let n=r;n.return.write(t),t.write(" operator "),t.write(`${r.type}(`),n.parameters.forEach((i,o)=>{i.write(t),o<n.parameters.length-1&&t.write(", ")})}r.useExpressionBody?(t.write(") => "),t.writeNodeStatement(r.body)):(t.write(") {"),t.writeNode(r.body),t.writeLine("}"))}addNamespaceReference(t){this.namespaceReferences.push(t)}};(function(e){class t{generation;doc;body;parameters;access;baseConstructorCall;annotations;constructor({doc:i,body:o,parameters:s,access:a,baseConstructorCall:u,annotations:c},l){this.generation=l,this.parameters=s??[],this.access=a??oI.Public,this.doc=i,this.annotations=c??[],this.body=new xIe({},this.generation),o!=null&&this.body.append(o),this.baseConstructorCall=u}addParameter(i){let o=new gq(i,this.generation);return this.parameters.push(o),o}}e.Constructor=t;let r;(function(n){n.Type={Implicit:"implicit",Explicit:"explicit"}})(r=e.CastOperator||(e.CastOperator={}))})(KZ||(KZ={}));function egu(e){switch(e){case void 0:return 0;case oI.Private:return 1;case oI.Protected:return 2;case oI.Internal:return 3;case oI.Public:return 4}}function Vit(e,t){return egu(e.access)-egu(t.access)}function jWi(e,t){return e.isStatic===t.isStatic?0:e.isStatic?-1:1}function Xwd(e,t){return e.type===Aq.STATIC&&t.type!==Aq.STATIC?-1:e.type!==Aq.STATIC&&t.type===Aq.STATIC?1:0}function Zwd(e,t){return e.name==="FromProto"||e.name==="ToProto"?t.name==="Equals"||t.name==="ToString"?-1:1:t.name==="FromProto"||t.name==="ToProto"?e.name==="Equals"||e.name==="ToString"?1:-1:e.name==="ToString"?1:t.name==="ToString"?-1:e.name==="Equals"?t.name==="ToString"?-1:1:t.name==="Equals"?e.name==="ToString"?1:-1:0}var qit=class extends vN{get name(){return this.reference.name}get namespace(){return this.reference.namespace}access;reference;annotations;fields=[];generateSerializer=!1;serializerClassReference;constructor({name:t,namespace:r,access:n,annotations:i,origin:o},s){super(o,s),this.reference=this.csharp.classReference({name:t,namespace:r,origin:o}),this.access=n,this.annotations=i??[]}getNamespace(){return this.namespace}addAnnotation(t){this.annotations.push(t)}addMember(t){this.fields.push({name:t.name,wireValue:t.value,value:this.csharp.annotation({reference:this.System.Runtime.Serialization.EnumMember,argument:this.csharp.codeblock(r=>{r.write("Value = "),r.writeNode(this.csharp.string_({string:t.value}))})})})}enableSerializerGeneration(){return this.generateSerializer=!0,this.serializerClassReference=this.csharp.classReference({name:`${this.name}Serializer`,namespace:this.namespace}),this.serializerClassReference}write(t){t.writeLine(`namespace ${this.namespace};`),t.newLine();for(let r of this.annotations)r.write(t);t.writeNewLineIfLastLineNot(),t.write(`${this.access} `),t.write("enum "),t.writeLine(`${this.name}`),t.pushScope(),this.fields.forEach((r,n)=>{r.value.write(t),t.write(r.name),n<this.fields.length-1&&(t.writeLine(","),t.newLine())}),t.writeNewLineIfLastLineNot(),t.popScope(),this.generateSerializer&&this.writeSerializerClass(t)}writeSerializerClass(t){t.newLine(),t.writeLine(`internal class ${this.name}Serializer : global::System.Text.Json.Serialization.JsonConverter<${this.name}>`),t.pushScope(),t.writeLine(`private static readonly global::System.Collections.Generic.Dictionary<string, ${this.name}> _stringToEnum = new()`),t.pushScope();for(let r of this.fields)t.writeLine(`{ ${JSON.stringify(r.wireValue)}, ${this.name}.${r.name} },`);t.popScope(!1),t.writeLine(";"),t.newLine(),t.writeLine(`private static readonly global::System.Collections.Generic.Dictionary<${this.name}, string> _enumToString = new()`),t.pushScope();for(let r of this.fields)t.writeLine(`{ ${this.name}.${r.name}, ${JSON.stringify(r.wireValue)} },`);t.popScope(!1),t.writeLine(";"),t.newLine(),t.writeLine(`public override ${this.name} Read(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)`),t.pushScope(),t.writeLine('var stringValue = reader.GetString() ?? throw new global::System.Exception("The JSON value could not be read as a string.");'),t.writeLine("return _stringToEnum.TryGetValue(stringValue, out var enumValue) ? enumValue : default;"),t.popScope(),t.newLine(),t.writeLine(`public override void Write(global::System.Text.Json.Utf8JsonWriter writer, ${this.name} value, global::System.Text.Json.JsonSerializerOptions options)`),t.pushScope(),t.writeLine("writer.WriteStringValue(_enumToString.TryGetValue(value, out var stringValue) ? stringValue : null);"),t.popScope(),t.newLine(),t.writeLine(`public override ${this.name} ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)`),t.pushScope(),t.writeLine('var stringValue = reader.GetString() ?? throw new global::System.Exception("The JSON property name could not be read as a string.");'),t.writeLine("return _stringToEnum.TryGetValue(stringValue, out var enumValue) ? enumValue : default;"),t.popScope(),t.newLine(),t.writeLine(`public override void WriteAsPropertyName(global::System.Text.Json.Utf8JsonWriter writer, ${this.name} value, global::System.Text.Json.JsonSerializerOptions options)`),t.pushScope(),t.writeLine("writer.WritePropertyName(_enumToString.TryGetValue(value, out var stringValue) ? stringValue : value.ToString());"),t.popScope(),t.popScope()}};var Git=class extends zit{constructor({name:t,namespace:r,access:n,partial:i,interfaceReferences:o,enclosingType:s,origin:a},u){super({name:t,namespace:r,access:n,partial:i,interfaceReferences:o,enclosingType:s,origin:a},u)}write(t){this.isNested||(t.writeLine(`namespace ${this.namespace};`),t.newLine()),t.write(`${this.access} `),this.partial&&t.write("partial "),t.write("interface "),t.writeLine(`${this.name}`),this.interfaceReferences.length>0&&(t.write(" : "),this.interfaceReferences.forEach((r,n)=>{r.write(t),n<this.interfaceReferences.length-1&&t.write(", ")})),t.pushScope();for(let r of this.fields)r.write(t),t.writeLine("");t.dedent(),t.indent();for(let r of this.methods)r.write(t),t.writeLine("");t.popScope()}};var Wit=class extends vN{get name(){return this.reference.name}get namespace(){return this.reference.namespace}reference;parentClassReference;testMethods=[];constructor({name:t,namespace:r,parentClassReference:n,origin:i},o){super(i,o),this.reference=this.csharp.classReference({name:t,namespace:r,origin:i}),this.parentClassReference=n}write(t){t.writeNode(this.getClass())}getClass(){let t=[this.NUnit.Framework.TestFixture,this.csharp.annotation({reference:this.NUnit.Framework.Parallelizable,argument:"ParallelScope.Self"})],r=new KZ({access:oI.Public,name:this.name,namespace:this.namespace,annotations:t,parentClassReference:this.parentClassReference,origin:this.origin},this.generation);for(let n of this.testMethods)r.addMethod({access:oI.Public,isAsync:n.isAsync,name:n.name,parameters:[],body:n.body,annotations:[this.NUnit.Framework.Test]});return r}addTestMethod(t){this.testMethods.push(t)}};var MWi={System:["AccessViolationException","Action","Activator","AggregateException","AppContext","AppDomain","AppDomainSetup","AppDomainUnloadedException","ApplicationException","ApplicationId","ArgIterator","ArgumentException","ArgumentNullException","ArgumentOutOfRangeException","ArithmeticException","Array","ArrayTypeMismatchException","AssemblyLoadEventArgs","AssemblyLoadEventHandler","AsyncCallback","Attribute","AttributeTargets","AttributeUsageAttribute","BadImageFormatException","Base64FormattingOptions","BitConverter","Boolean","Buffer","Byte","CannotUnloadAppDomainException","Char","CharEnumerator","CLSCompliantAttribute","Console","ConsoleCancelEventArgs","ConsoleCancelEventHandler","ConsoleColor","ConsoleKey","ConsoleKeyInfo","ConsoleModifiers","ConsoleSpecialKey","ContextBoundObject","ContextMarshalException","ContextStaticAttribute","Convert","CultureAwareComparer","DataMisalignedException","DateOnly","DateTime","DateTimeKind","DateTimeOffset","DayOfWeek","DBNull","Decimal","Delegate","DivideByZeroException","DllNotFoundException","Double","DuplicateWaitObjectException","EntryPointNotFoundException","Enum","Environment","EnvironmentVariableTarget","EventArgs","EventHandler","Exception","ExecutionEngineException","FieldAccessException","FlagsAttribute","FormatException","FormattableString","GC","GCCollectionMode","GCGenerationInfo","GCKind","GCMemoryInfo","GCNotificationStatus","Guid","Half","HashCode","IAsyncDisposable","IAsyncResult","ICloneable","IComparable","IConvertible","ICustomFormatter","IDisposable","IFormatProvider","IFormattable","Index","IndexOutOfRangeException","InsufficientExecutionStackException","InsufficientMemoryException","Int128","Int16","Int32","Int64","IntPtr","InvalidCastException","InvalidOperationException","InvalidProgramException","InvalidTimeZoneException","ISpanFormattable","IUtf8SpanFormattable","LoaderOptimization","LoaderOptimizationAttribute","LocalDataStoreSlot","MarshalByRefObject","Math","MathF","MemberAccessException","MemoryExtensions","MethodAccessException","MidpointRounding","MissingFieldException","MissingMemberException","MissingMethodException","ModuleHandle","MTAThreadAttribute","MulticastDelegate","MulticastNotSupportedException","NonSerializedAttribute","NotFiniteNumberException","NotImplementedException","NotSupportedException","Nullable","NullReferenceException","Object","ObjectDisposedException","ObsoleteAttribute","OperatingSystem","OperationCanceledException","OrdinalComparer","OutOfMemoryException","OverflowException","ParamArrayAttribute","PlatformID","PlatformNotSupportedException","Random","Range","RankException","ResolveEventArgs","ResolveEventHandler","RuntimeArgumentHandle","RuntimeFieldHandle","RuntimeMethodHandle","RuntimeTypeHandle","SByte","SerializableAttribute","Single","StackOverflowException","STAThreadAttribute","String","StringComparer","StringComparison","StringNormalizationExtensions","StringSplitOptions","SystemException","ThreadStaticAttribute","TimeOnly","TimeoutException","TimeProvider","TimeSpan","TimeZone","TimeZoneInfo","TimeZoneNotFoundException","Tuple","TupleExtensions","Type","TypeAccessException","TypeCode","TypedReference","TypeInitializationException","TypeLoadException","TypeUnloadedException","UInt128","UInt16","UInt32","UInt64","UIntPtr","UnauthorizedAccessException","UnhandledExceptionEventArgs","UnhandledExceptionEventHandler","UnitySerializationHolder","ValueTuple","ValueType","Version","Void","WeakReference","Buffers","Collections","ComponentModel","Diagnostics","Globalization","IO","Linq","Net","Numerics","Reflection","Resources","Runtime","Security","Text","Threading"],"System.Collections.Generic":["ByteEqualityComparer","CollectionExtensions","IEnumerable","KeyNotFoundException","KeyValuePair","NonRandomizedStringEqualityComparer","ReferenceEqualityComparer"],"System.IO":["BinaryReader","BinaryWriter","BufferedStream","Directory","DirectoryInfo","DirectoryNotFoundException","EndOfStreamException","EnumerationOptions","File","FileAccess","FileAttributes","FileInfo","FileLoadException","FileMode","FileNotFoundException","FileOptions","FileShare","FileStream","FileStreamOptions","FileSystemInfo","HandleInheritability","InvalidDataException","IOException","MatchCasing","MatchType","MemoryStream","Path","PathTooLongException","RandomAccess","SearchOption","SeekOrigin","Stream","StreamReader","StreamWriter","StringReader","StringWriter","TextReader","TextWriter","UnixFileMode","UnmanagedMemoryAccessor","UnmanagedMemoryStream","System.IO.Enumeration"],"System.Linq":["Enumerable"],"System.Net.Http":["HttpClient","HttpMethod"],"System.Threading":["AbandonedMutexException","ApartmentState","AsyncFlowControl","AutoResetEvent","CancellationToken","CancellationTokenRegistration","CancellationTokenSource","CompressedStack","ContextCallback","EventResetMode","EventWaitHandle","ExecutionContext","Interlocked","IOCompletionCallback","IThreadPoolWorkItem","ITimer","LazyInitializer","LazyThreadSafetyMode","Lock","LockRecursionException","LockRecursionPolicy","ManualResetEvent","ManualResetEventSlim","Monitor","Mutex","NativeOverlapped","Overlapped","ParameterizedThreadStart","PeriodicTimer","PreAllocatedOverlapped","ReaderWriterLockSlim","RegisteredWaitHandle","Semaphore","SemaphoreFullException","SemaphoreSlim","SendOrPostCallback","SpinLock","SpinWait","SynchronizationContext","SynchronizationLockException","Thread","ThreadAbortException","ThreadExceptionEventArgs","ThreadExceptionEventHandler","ThreadInterruptedException","ThreadPool","ThreadPoolBoundHandle","ThreadPriority","ThreadStart","ThreadStartException","ThreadState","ThreadStateException","Timeout","Timer","TimerCallback","Volatile","WaitCallback","WaitHandle","WaitHandleCannotBeOpenedException","WaitHandleExtensions","WaitOrTimerCallback","Tasks"],"System.Threading.Tasks":["ConcurrentExclusiveSchedulerPair","ConfigureAwaitOptions","Task","TaskAsyncEnumerableExtensions","TaskCanceledException","TaskCompletionSource","TaskContinuationOptions","TaskCreationOptions","TaskExtensions","TaskFactory","TaskScheduler","TaskSchedulerException","TaskStatus","TaskToAsyncResult","UnobservedTaskExceptionEventArgs","ValueTask","Sources"]};var eCd=new Set(["abstract","as","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","else","enum","event","explicit","extern","false","finally","fixed","float","for","foreach","goto","if","implicit","in","int","interface","internal","is","lock","long","namespace","new","null","object","operator","out","override","params","private","protected","public","readonly","ref","return","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","virtual","void","volatile","while"]);var tCd=new Set(["from","where","select","orderby","groupby","into","let","join","on","equals"]),rCd=new Set(["async","await"]),nCd=new Set(["yield"]),iCd=new Set(["var","dynamic"]),oCd=new Set(["using","alias"]);var sCd=new Set(["required","scoped","unmanaged","managed"]),aCd=new Set(["when","and","or","not"]),uCd=new Set(["Equals","GetHashCode","ToString","GetType","MemberwiseClone","Finalize"]),cCd=new Set([...eCd,...tCd,...rCd,...nCd,...iCd,...oCd,...sCd,...aCd]),Qxn=class{registry;name;jsonPath;constructor(t,r,n){this.registry=t,this.name=r,this.jsonPath=n}};var Nxn=class{scope;constructor(t){this.scope=t}byName=new Map;byPath=new Map;redirections=new Map;[Symbol.iterator](){return this.byName.values()}has(t){return this.byName.has(t)}getByJsonPath(t){return this.byPath.get(t)}getByName(t){return this.byName.get(t)}getRedirectedName(t){return this.redirections.get(t)}set(t){this.byName.has(t.name)&&JA(`set: ${t.name} in ${this.scope.fullyQualifiedName} already exists`),t.jsonPath&&this.byPath.has(t.jsonPath)&&JA(`set: ${t.name} in ${this.scope.fullyQualifiedName} already exists by jsonPath`),this.byName.set(t.name,t),t.jsonPath&&this.byPath.set(t.jsonPath,t)}redirect(t,r){this.redirections.has(t)&&JA(`redirect: ${t} in ${this.scope.fullyQualifiedName} already has a redirect`),this.redirections.set(t,r)}},LWi=class extends Qxn{namespace;fullyQualifiedName;fields;methods;constructor(t,r,n,i){super(t,r),this.namespace=n,this.fullyQualifiedName=i,this.fields=new Nxn(this),this.methods=new Nxn(this)}isKeyword(t){return cCd.has(t)}isBuiltinMemberName(t){return uCd.has(t)}isTypeName(t){return this.name===t}isField(t){return this.fields.has(t)}isMethod(t){return this.methods.has(t)}isMember(t){return this.isField(t)||this.isMethod(t)}nameBlocked(t){if(this.isKeyword(t))return"keyword";if(this.isBuiltinMemberName(t))return"builtin";if(this.isTypeName(t))return"typeName";if(this.isField(t))return"field";if(this.isMethod(t))return"method"}getAlternativeName(t){let r=`${t}_`,n=2;for(;this.nameBlocked(r);)r=`${t}_${n}`,n++;return r}getFieldByJsonPath(t){return t!==void 0?this.fields.getByJsonPath(t):void 0}getFieldByName(t){return this.fields.getByName(t)}getRedirectedFieldName(t){return this.fields.getRedirectedName(t)}registerField(t,r,n){let i=this.registry.model.jsonPath(r);if(i){let a=this.fields.getByJsonPath(i);if(a)return a.name}let o=this.fields.getByName(t);if(o&&i===o.jsonPath)return t;switch(this.nameBlocked(t)){case"field":r&&ka.Provenance(r)&&r.explicit||JA(`Field ${t} already exists - attempting to add a duplicate field with the same name that is not an explicitly named property`);break;case"keyword":case"builtin":case"typeName":case"method":break;default:return this.fields.set(new jxn(this.registry,t,this,i,n)),this.registry.setFieldNameShortcut(i,t),t}let s=this.getAlternativeName(t);return this.fields.set(new jxn(this.registry,s,this,i,n)),this.fields.redirect(t,s),this.registry.setFieldNameShortcut(i,s),s}getFieldName(t,r){let n=this.getFieldByJsonPath(this.registry.model.jsonPath(t))?.name;if(n)return n;if(ka.Provenance(t)){let s=this.getRedirectedFieldName(r);if(s)return s;let a=this.getFieldByName(r);return a?this.registry.model.provenance(a.jsonPath)?.explicit?r:`${r}_`:r}let i=this.getFieldByName(r);if(i)return this.registry.model.provenance(i.jsonPath)?.explicit?r:i.name;let o=this.getRedirectedFieldName(r);if(o)return o;this.isMethod(r)}},UWi=class extends Qxn{scope;constructor(t,r,n,i){super(t,r,i),this.scope=n}},jxn=class extends UWi{field;constructor(t,r,n,i,o){super(t,r,n,i),this.field=o}};var Hit=class e{generation;classReferenceByJsonPath=new Map;typeRegistry=new Map;namespaceRegistry=new Map;typeNames=new Map;namespaceNames=new Map;implicitNamespaces=new Set;shortcuts=new Map;knownBuiltInIdentifiers=new Set(["Text","Json","Xml","Security","Collections","Data","Diagnostics","Globalization","Math","Reflection","Runtime","Security","Serialization","Threading","Xml"]);constructor(t){this.generation=t,this.initializeBuiltIns()}get csharp(){return this.generation.csharp}get model(){return this.generation.model}initializeBuiltIns(){for(let[t,r]of Object.entries(MWi))t.split(".").forEach(n=>this.knownBuiltInIdentifiers.add(n)),r.forEach(n=>this.knownBuiltInIdentifiers.add(n));for(let[t,r]of Object.entries(MWi)){for(let i of r)this.typeNames.set(i,new Set([t]));let n=t.split(".")[0];n&&this.typeNames.set(n,new Set([t]))}this.typeNames.set("System",new Set(["System"])),this.typeNames.set("NUnit",new Set(["NUnit"])),this.typeNames.set("OneOf",new Set(["OneOf"])),this.knownBuiltInIdentifiers.add("NUnit"),this.knownBuiltInIdentifiers.add("OneOf")}setFieldNameShortcut(t,r){if(t){let n=this.shortcuts.get(t);n&&n!==r&&JA(`BAD_BAD_BAD setFieldNameShortcut: ${t} already has a name: ${n} - while setting to ${r} - if this is happening, then you could be getting back the wrong name later!`),this.shortcuts.set(t,r)}}getFieldNameByOrigin(t){return this.shortcuts.get(this.model.jsonPath(t)??">ignore<")}isKnownBuiltInIdentifier(t){return!t||typeof t!="string"?!1:this.knownBuiltInIdentifiers.has(t)}isKnownNamespace(t){return!t||typeof t!="string"?!1:this.namespaceRegistry.has(t)}isRegisteredTypeName(t){return this.typeRegistry.has(t)}isAmbiguousTypeName(t){return t?(this.typeNames.get(t)?.size??0)>1:!1}isAmbiguousNamespaceName(t){return t?(this.namespaceNames.get(t)?.size??0)>1:!1}hasTypeNamespaceConflict(t){return!t||this.knownBuiltInIdentifiers.has(t)?!1:this.typeNames.has(t)&&(this.namespaceNames.get(t)?.has("")??!1)}static fullyQualifiedNameOf(t){return t.enclosingType?`${t.enclosingType.fullyQualifiedName??`${t.namespace}.${t.enclosingType.name}`}+${t.name}`:`${t.namespace}.${t.name}`}registerNamespace(t,r){this.namespaceRegistry.has(t)&&this.namespaceRegistry.get(t)!==r||this.namespaceRegistry.set(t,r)}trackType(t,r){let{name:n,namespace:i,enclosingType:o,fullyQualifiedName:s,origin:a}=t;if(a){let u=this.model.jsonPath(a)??JA(`JsonPath not found for origin: ${JSON.stringify(a).substring(0,100)}`);this.classReferenceByJsonPath.set(u,t)}if(r&&r!==s&&!this.typeRegistry.has(r)&&this.typeRegistry.set(r,t),!this.typeRegistry.has(s)){this.typeRegistry.set(s,t);for(let u of this.allNamespacesOf(i))this.registerNamespace(u,u);o||this.trackTypeName(n,i);for(let u of[this.generation.namespaces.root,...this.implicitNamespaces])if(i.startsWith(u)){let c=i.split(".")[u.split(".").length];c&&this.trackTypeName(c,i)}}return t}addImplicitNamespace(t){this.implicitNamespaces.add(t)}isNamespaceImplicit(t){return this.implicitNamespaces.has(t)}get implicitlyImportedNamespaces(){return[...this.implicitNamespaces]}trackTypeName(t,r){this.typeNames.has(t)?this.typeNames.get(t)?.add(r):this.typeNames.set(t,new Set([r]));let n=r.split("."),i="";for(let o of n)this.namespaceNames.has(o)?this.namespaceNames.get(o)?.add(i):this.namespaceNames.set(o,new Set([i])),i=i?`${i}.${o}`:o}allNamespacesOf(t){if(!t||typeof t!="string")return new Set;let r="",n=new Set;for(let i of t.split("."))i.trim()&&(r=r?`${r}.${i}`:`${i}`,n.add(r));return n}registerClassReference(t,r){let{name:n,namespace:i,enclosingType:o,origin:s}=t,a=this.model.jsonPath(s),u=(a?this.classReferenceByJsonPath.get(a):void 0)??this.typeRegistry.get(r),c=this.model.jsonPath(u?.origin),l=c&&a?c===a?"match":"mismatch":"no origin";if(u&&l!=="mismatch")return new dO({name:u.name,namespace:u.namespace,enclosingType:u.enclosingType,fullyQualifiedName:u.fullyQualifiedName,namespaceAlias:t.namespaceAlias,fullyQualified:t.fullyQualified,generics:t.generics,global:t.global,origin:u.origin??s,isCollection:u.isCollection,isReferenceType:u.isReferenceType,multipartMethodName:u.multipartMethodName,multipartMethodNameForCollection:u.multipartMethodNameForCollection},u.scope,this.generation);let p=!1,d=this.resolveNamespace(i);d!==i&&(i=d,p=!0);let f;e:for(;;){f=e.fullyQualifiedNameOf({name:n,namespace:i,enclosingType:o});let m="",h=i.split(".");for(let g=0;g<h.length;g++)if(m=m?`${m}.${h[g]}`:`${h[g]}`,this.typeRegistry.has(m)){h[g]=`${h[g]}_`,i=h.join("."),p=!0;continue e}if(p&&this.registerNamespace(t.namespace,i),l==="mismatch"&&u?.name===n){n=`${n}_`,p=!0;continue e}if(this.namespaceRegistry.has(f)){n=`${n}_`,p=!0;continue e}if(this.typeRegistry.has(f)){n=`${n}_`,p=!0;continue e}if(o){let g=f.replaceAll("+",".");if(this.typeRegistry.has(g)){n=`${n}_`,p=!0;continue e}if(this.namespaceRegistry.has(g)){n=`${n}_`,p=!0;continue e}}else{let g=f.split(".");for(let A=1;A<g.length;A++){let b=g.slice(0,A).join(".")+"+"+g.slice(A).join("+");if(this.typeRegistry.has(b)){n=`${n}_`,p=!0;continue e}}}break}return this.trackType(new dO({name:n,namespace:i,enclosingType:o,namespaceAlias:t.namespaceAlias,fullyQualified:t.fullyQualified,generics:t.generics,global:t.global,fullyQualifiedName:f,origin:s,isCollection:t.isCollection,isReferenceType:t.isReferenceType,multipartMethodName:t.multipartMethodName,multipartMethodNameForCollection:t.multipartMethodNameForCollection},new LWi(this,n,i,f),this.generation),r)}resolveNamespace(t){let r=this.namespaceRegistry.get(t);if(r!==void 0)return r;let n=t.split(".");for(let i=n.length-1;i>=0;i--){let o=n.slice(0,i).join(".");if(this.namespaceRegistry.has(o)){let s=this.namespaceRegistry.get(o);if(s!==void 0){let a=n.slice(i).join("."),u=`${s}.${a}`;return this.registerNamespace(t,u),u}}}return t}canonicalizeNamespace(t){let r=this.namespaceRegistry.get(t);if(r!==void 0)return r;let n=!1,i=t;e:for(;;){let o="",s=i.split(".");for(let a=0;a<s.length;a++)if(o=o?`${o}.${s[a]}`:`${s[a]}`,this.typeRegistry.has(o)){s[a]=`${s[a]}_`,i=s.join("."),n=!0;continue e}break}return n&&this.registerNamespace(t,i),i}};var Mxn=class{generation;constructor(t){this.generation=t}get model(){return this.generation.model}frozen=!1;extraClassReferences=new Map;classReference(t){return this.classReferenceInternal(t)}classReferenceInternal(t){if(!t.name&&"origin"in t&&t.origin&&(t.name=this.model.getClassNameFor(t.origin)),t.enclosingType){if(t.namespace)throw new Error("ClassReference: Both enclosingType and namespace cannot be provided");t.namespace=t.enclosingType.namespace}let r=Hit.fullyQualifiedNameOf(t);if(this.frozen&&!this.generation.registry.isRegisteredTypeName(r)){let n=this.extraClassReferences.get(r);n||(n=new Set,this.extraClassReferences.set(r,n)),n.add(`${r} -
|
|
2459
|
-
${XOt()}`)}return this.generation.registry.registerClassReference(t,r)}freezeClassReferences(){this.frozen=!0}getPropertyName(t,r){let n=this.model.getPropertyNameFor(r),i=this.model.origin(r)??JA(`Origin not found for property: ${JSON.stringify(r).substring(0,100)}`),o=t.getFieldName(i,n);return o||n}class_(t){let r=t;return"reference"in t&&(r={...t.reference,...t}),new KZ(r,this.generation)}testClass(t){return new Wit(t,this.generation)}annotation(t){return new tue(t,this.generation)}annotationGroup(t){return new Qit(t,this.generation)}instantiateClass(t){return new bit(t,this.generation)}invokeMethod(t){return new wit(t,this.generation)}codeblock(t){return new CIe(t,this.generation)}code(){return new xIe({},this.generation)}anonymousFunction(t){return new Nit(t)}parameter(t){return new gq(t,this.generation)}interface_(t){return new Git(t,this.generation)}enum_(t){return new qit(t,this.generation)}dictionary(t){return new Eit(t,this.generation)}list(t){return new Iit(t,this.generation)}readOnlyMemory(t){return new Cit(t,this.generation)}set(t){return new xit(t,this.generation)}switch_(t){return new Mit(t,this.generation)}ternary(t){return new Lit(t,this.generation)}and(t){return new kit(t,this.generation)}or(t){return new jit(t,this.generation)}enumInstantiation(t){return new vit(t,this.generation)}string_(t){return new _it(t,this.generation)}xmlDocBlock(t){return new SIe(t,this.generation)}InstantiatedPrimitive={string:t=>new R1({type:"string",value:t},this.generation),boolean:t=>new R1({type:"boolean",value:t},this.generation),integer:t=>new R1({type:"integer",value:t},this.generation),long:t=>new R1({type:"long",value:t},this.generation),uint:t=>new R1({type:"uint",value:t},this.generation),ulong:t=>new R1({type:"ulong",value:t},this.generation),float:t=>new R1({type:"float",value:t},this.generation),double:t=>new R1({type:"double",value:t},this.generation),date:t=>new R1({type:"date",value:t},this.generation),dateTime:(t,r=!0)=>new R1({type:"dateTime",value:t,parse:r},this.generation),uuid:t=>new R1({type:"uuid",value:t},this.generation),null:()=>new R1({type:"null"},this.generation)};Literal={class_:({reference:t,fields:r})=>new kc.Class_(t,r,this.generation),dictionary:({keyType:t,valueType:r,entries:n})=>new kc.Dictionary(t,r,n,this.generation),list:({valueType:t,values:r})=>new kc.List(t,r,this.generation),set:({valueType:t,values:r})=>new kc.Set(t,r,this.generation),boolean:t=>new kc.Boolean(t,this.generation),float:t=>new kc.Float(t,this.generation),date:t=>new kc.Date(t,this.generation),datetime:t=>new kc.DateTime(t,this.generation),decimal:t=>new kc.Decimal(t,this.generation),double:t=>new kc.Double(t,this.generation),integer:t=>new kc.Integer(t,this.generation),long:t=>new kc.Long(t,this.generation),uint:t=>new kc.Uint(t,this.generation),ulong:t=>new kc.Ulong(t,this.generation),reference:t=>new kc.Reference(t,this.generation),string:t=>new kc.String(t,this.generation),null:()=>new kc.Null(this.generation),nop:()=>new kc.Nop(this.generation),unknown:t=>new kc.Unknown(t,this.generation)};xmlDocBlockOf(t){return t instanceof SIe?t:new SIe(t,this.generation)}VALID_READ_ONLY_MEMORY_TYPES=new Set(["int","long","uint","ulong","string","bool","float","double"]);validateReadOnlyMemoryTypes(){for(let t of this.generation.settings.readOnlyMemoryTypes)if(!this.VALID_READ_ONLY_MEMORY_TYPES.has(t))throw new Error(`Type "${t}" is not a valid 'read-only-memory-types' custom config option; expected one of ${JSON.stringify(this.VALID_READ_ONLY_MEMORY_TYPES)}.`)}};function qu(e){let t={},r={};for(let[n,i]of Object.entries(e))i.length===0?Object.defineProperty(r,n,{get(){return n in t||(t[n]=i()),t[n]},enumerable:!0,configurable:!0}):r[n]=i;return r}var Lxn=class{generation;constructor(t){this.generation=t}get csharp(){return this.generation.csharp}System=qu({Action:t=>this.csharp.classReference({name:"Action",namespace:"System",generics:t||void 0,multipartMethodName:null,multipartMethodNameForCollection:null,isReferenceType:!0}),Func:(t,r)=>this.csharp.classReference({name:"Func",namespace:"System",generics:t?r?[...t,r]:t:r?[r]:void 0,multipartMethodName:null,multipartMethodNameForCollection:null,isReferenceType:!0}),DateOnly:()=>this.csharp.classReference({name:"DateOnly",namespace:"System"}),DateTime:()=>this.csharp.classReference({name:"DateTime",namespace:"System"}),Enum:()=>this.csharp.classReference({name:"Enum",namespace:"System"}),Exception:()=>this.csharp.classReference({name:"Exception",namespace:"System"}),ReadOnlyMemory:t=>this.csharp.classReference({name:"ReadOnlyMemory",namespace:"System",generics:[t]}),Serializable:()=>this.csharp.classReference({name:"SerializableAttribute",namespace:"System"}),String:()=>this.csharp.classReference({name:"String",namespace:"System"}),Type:()=>this.csharp.classReference({name:"Type",namespace:"System",isReferenceType:!0,multipartMethodName:null,multipartMethodNameForCollection:null,fullyQualified:!0}),TimeSpan:()=>this.csharp.classReference({name:"TimeSpan",namespace:"System"}),Uri:()=>this.csharp.classReference({name:"Uri",namespace:"System"}),UriBuilder:()=>this.csharp.classReference({name:"UriBuilder",namespace:"System"}),Runtime:()=>qu({Serialization:()=>qu({EnumMember:()=>this.csharp.classReference({name:"EnumMemberAttribute",namespace:"System.Runtime.Serialization"})})}),Collections:()=>qu({Generic:()=>qu({IAsyncEnumerable:t=>this.csharp.classReference({name:"IAsyncEnumerable",namespace:"System.Collections.Generic",generics:t?[t]:void 0}),IEnumerable:t=>this.csharp.classReference({name:"IEnumerable",namespace:"System.Collections.Generic",generics:t?[t]:void 0}),KeyValuePair:(t,r)=>this.csharp.classReference({name:"KeyValuePair",namespace:"System.Collections.Generic",generics:t&&r?[t,r]:void 0}),List:t=>this.csharp.classReference({name:"List",namespace:"System.Collections.Generic",generics:t?[t]:void 0,isCollection:!0}),HashSet:t=>this.csharp.classReference({name:"HashSet",namespace:"System.Collections.Generic",generics:t?[t]:void 0,isCollection:!0}),Dictionary:(t,r)=>this.csharp.classReference({name:"Dictionary",namespace:"System.Collections.Generic",generics:t&&r?[t,r]:void 0,isCollection:!0}),IDictionary:(t,r)=>this.csharp.classReference({name:"IDictionary",namespace:"System.Collections.Generic",generics:[t,r]})}),Linq:()=>qu({Enumerable:()=>this.csharp.classReference({name:"Enumerable",namespace:"System.Linq"})})}),Globalization:()=>qu({DateTimeStyles:()=>this.csharp.classReference({name:"DateTimeStyles",namespace:"System.Globalization"})}),Linq:()=>qu({Enumerable:()=>this.csharp.classReference({name:"Enumerable",namespace:"System.Linq"})}),Net:()=>qu({Http:()=>qu({HttpClient:()=>this.csharp.classReference({name:"HttpClient",namespace:"System.Net.Http"}),HttpMethod:()=>this.csharp.classReference({name:"HttpMethod",namespace:"System.Net.Http"}),HttpResponseHeaders:()=>this.csharp.classReference({name:"HttpResponseHeaders",namespace:"System.Net.Http.Headers"})}),ServerSentEvents:()=>qu({SseEvent:()=>this.csharp.classReference({name:"SseEvent",namespace:"System.Net.ServerSentEvents"}),SseParser:()=>this.csharp.classReference({name:"SseParser",namespace:"System.Net.ServerSentEvents"})}),WebSockets:()=>qu({ClientWebSocketOptions:()=>this.csharp.classReference({name:"ClientWebSocketOptions",namespace:"System.Net.WebSockets"})})}),IO:()=>qu({MemoryStream:()=>this.csharp.classReference({name:"MemoryStream",namespace:"System.IO"}),Stream:()=>this.csharp.classReference({name:"Stream",namespace:"System.IO"}),StreamReader:()=>this.csharp.classReference({name:"StreamReader",namespace:"System.IO"})}),Text:()=>qu({Encoding:()=>this.csharp.classReference({name:"Encoding",namespace:"System.Text"}),Encoding_UTF8:()=>this.csharp.classReference({name:"UTF8",enclosingType:this.csharp.classReference({name:"Encoding",namespace:"System.Text"})}),Json:()=>qu({JsonElement:()=>this.csharp.classReference({name:"JsonElement",namespace:"System.Text.Json"}),JsonDocument:()=>this.csharp.classReference({name:"JsonDocument",namespace:"System.Text.Json"}),JsonException:()=>this.csharp.classReference({name:"JsonException",namespace:"System.Text.Json"}),Utf8JsonReader:()=>this.csharp.classReference({name:"Utf8JsonReader",namespace:"System.Text.Json"}),JsonSerializerOptions:()=>this.csharp.classReference({name:"JsonSerializerOptions",namespace:"System.Text.Json"}),JsonSerializer:()=>this.csharp.classReference({name:"JsonSerializer",namespace:"System.Text.Json"}),Utf8JsonWriter:()=>this.csharp.classReference({name:"Utf8JsonWriter",namespace:"System.Text.Json"}),Nodes:()=>qu({JsonNode:()=>this.csharp.classReference({name:"JsonNode",namespace:"System.Text.Json.Nodes"}),JsonObject:()=>this.csharp.classReference({name:"JsonObject",namespace:"System.Text.Json.Nodes"})}),Serialization:()=>qu({IJsonOnDeserialized:()=>this.csharp.classReference({name:"IJsonOnDeserialized",namespace:"System.Text.Json.Serialization"}),IJsonOnSerializing:()=>this.csharp.classReference({name:"IJsonOnSerializing",namespace:"System.Text.Json.Serialization"}),JsonOnDeserializedAttribute:()=>this.csharp.classReference({name:"JsonOnDeserializedAttribute",namespace:"System.Text.Json.Serialization"}),JsonExtensionData:()=>this.csharp.classReference({name:"JsonExtensionDataAttribute",namespace:"System.Text.Json.Serialization"}),JsonConverter:t=>this.csharp.classReference({name:"JsonConverter",namespace:"System.Text.Json.Serialization",generics:t?[t]:void 0}),JsonIgnore:()=>this.csharp.classReference({name:"JsonIgnoreAttribute",namespace:"System.Text.Json.Serialization"}),JsonPropertyName:()=>this.csharp.classReference({name:"JsonPropertyNameAttribute",namespace:"System.Text.Json.Serialization"})})})}),Threading:()=>qu({CancellationToken:()=>this.csharp.classReference({name:"CancellationToken",namespace:"System.Threading"}),Tasks:()=>qu({Task:t=>this.csharp.classReference({name:"Task",namespace:"System.Threading.Tasks",generics:t?[t]:void 0}),ValueTask:t=>this.csharp.classReference({name:"ValueTask",namespace:"System.Threading.Tasks",generics:t?[t]:void 0})})}),ComponentModel:()=>qu({INotifyPropertyChanged:()=>this.csharp.classReference({name:"INotifyPropertyChanged",namespace:"System.ComponentModel"}),PropertyChangedEventHandler:()=>this.csharp.classReference({name:"PropertyChangedEventHandler",namespace:"System.ComponentModel"})}),IAsyncDisposable:()=>this.csharp.classReference({name:"IAsyncDisposable",namespace:"System"}),IDisposable:()=>this.csharp.classReference({name:"IDisposable",namespace:"System"})});NUnit=qu({Framework:()=>qu({TestFixture:()=>this.csharp.classReference({name:"TestFixture",namespace:"NUnit.Framework"}),Test:()=>this.csharp.classReference({name:"Test",namespace:"NUnit.Framework"}),OneTimeTearDown:()=>this.csharp.classReference({name:"OneTimeTearDown",namespace:"NUnit.Framework"}),OneTimeSetUp:()=>this.csharp.classReference({name:"OneTimeSetUp",namespace:"NUnit.Framework"}),SetUpFixture:()=>this.csharp.classReference({name:"SetUpFixture",namespace:"NUnit.Framework"}),Parallelizable:()=>this.csharp.classReference({name:"Parallelizable",namespace:"NUnit.Framework"})})});OneOf=qu({OneOf:t=>this.csharp.classReference({name:"OneOf",namespace:"OneOf",generics:t}),OneOfBase:t=>this.csharp.classReference({name:"OneOfBase",namespace:"OneOf",generics:t})});Google=qu({Protobuf:()=>qu({ByteString:()=>this.csharp.classReference({name:"ByteString",namespace:"Google.Protobuf"}),WellKnownTypes:()=>qu({Struct:()=>this.csharp.classReference({name:"Struct",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),Value:()=>this.csharp.classReference({name:"Value",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),ListValue:()=>this.csharp.classReference({name:"ListValue",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),Timestamp:()=>this.csharp.classReference({name:"Timestamp",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"})})})});WireMock=qu({Server:()=>this.csharp.classReference({name:"WireMockServer",namespace:"WireMock.Server"}),WireMockServerSettings:()=>this.csharp.classReference({name:"WireMockServerSettings",namespace:"WireMock.Settings"}),WireMockConsoleLogger:()=>this.csharp.classReference({name:"WireMockConsoleLogger",namespace:"WireMock.Logging"})});Grpc=qu({Core:()=>qu({RpcException:()=>this.csharp.classReference({name:"RpcException",namespace:"Grpc.Core"})})})};var zWi=new Set(["name","camelCase","snakeCase","screamingSnakeCase","pascalCase"]);function lCd(e,t){return zWi.has(t)?e??"":e?`${e}.${t}`:t}var Uxn=class{generation;indexByObject=new Map;indexByPath=new Map;explicitByObject=new Map;explicitByPath=new Map;root;ir;get csharp(){return this.generation.csharp}get registry(){return this.generation.registry}constructor(t,r){this.generation=r,this.root=this.createIndex(t),this.ir=t}createIndex(t,r="",n){let i=lCd(n?.jsonPath,r);if(this.indexByPath.has(i)){n||JA(`Parent provenance not found for node: ${JSON.stringify(t).substring(0,100)}`),this.indexByObject.set(t,n);let s=zWi.has(r);for(let[a,u]of Object.entries(t))typeof u=="object"&&u!==null&&(s&&zWi.has(a)?this.indexByObject.set(u,n):this.createIndex(u,a,n));return n}let o={jsonPath:i,name:r,node:t,parent:n};this.indexByObject.set(t,o),this.indexByPath.set(i,o);for(let[s,a]of Object.entries(t))typeof a=="object"&&a!==null&&this.createIndex(a,s,o);return o}staticExplicit(t){return this.explicit(this.ir,t)}explicit(t,r){let n=this.provenance(t)??JA(`Provenance not found for node: ${JSON.stringify(t).substring(0,100)}`),i={...n,jsonPath:`${n.jsonPath}+${r}`,name:r,node:n.node,parent:n,explicit:!0},o=this.explicitByObject.get(n.node);return o?o.add(i):this.explicitByObject.set(n.node,new Set([i])),this.explicitByPath.set(i.jsonPath,i),i}provenance(t){if(t!==void 0)return ka.string(t)?this.explicitByPath.get(t)??this.indexByPath.get(t):ka.Provenance(t)?this.explicitByPath.get(t.jsonPath)??this.indexByPath.get(t.jsonPath):this.indexByObject.get(t)}origin(t){let r=this.provenance(t);return r?.explicit?r:r?.node}irNode(t){return this.provenance(t)?.node}jsonPath(t){return this.provenance(t)?.jsonPath}getEnumValueName(t,r){let n=ka.IR.ExampleEnumType(r)?r.value.name:r.name,i=t.values.find(o=>this.nameEquals(o.name.name,n));return i?this.getPropertyNameFor(i):JA(`Unexpected - can't find enum value ${n} in enum`)}getPropertyNameFor(t){let r=this.registry.getFieldNameByOrigin(t);if(r)return r;if(ka.Provenance(t))return t.name;if("name"in t){if(ka.IR.NameAndWireValue(t.name))return t.name.name.pascalCase.safeName;if(ka.IR.Name(t.name))return t.name.pascalCase.safeName;if(typeof t.name=="string")return t.name}if("pascalCase"in t)return t.pascalCase.safeName;throw new Error(`Unknown property type: ${this.jsonPath(t)}`)}getClassNameFor(t){if(ka.Provenance(t))return t.name;if("name"in t){if(ka.IR.TypeDeclaration(t)||ka.IR.NameAndWireValue(t.name))return t.name.name.pascalCase.safeName;if(ka.IR.Name(t.name))return t.name.pascalCase.safeName;if(typeof t.name=="string")return t.name}if("pascalCase"in t)return t.pascalCase.safeName;throw new Error(`Unknown property type: ${JSON.stringify(t)}`)}nameEquals(t,r){return t.camelCase.safeName===r.camelCase.safeName}dereferenceType(t){let r=ka.string(t)?t:ka.IR.NamedType(t)||ka.IR.DeclaredTypeName(t)?t.typeId:ka.IR.ExampleNamedType(t)?t.typeName.typeId:t.name.typeId,n=this.irNode(this.ir.types[r]);if(ka.IR.TypeDeclaration(n))return{typeId:r,typeDeclaration:n};JA(`dereferenceType: typeId ${r} not resolved.`)}};function zxn(...e){return e.filter(Boolean).join("/")}var kPt=class{intermediateRepresentation;apiName;customConfig;generatorConfig;support;constructor(t,r,n,i,o={makeRelativeFilePath:s=>s,makeAbsoluteFilePath:s=>s,getNamespaceForTypeId:s=>"",getDirectoryForTypeId:s=>"",getCoreAsIsFiles:()=>[],getCoreTestAsIsFiles:()=>[],getPublicCoreAsIsFiles:()=>[],getAsyncCoreAsIsFiles:()=>[],getChildNamespaceSegments:s=>[]}){this.intermediateRepresentation=t,this.apiName=r,this.customConfig=n,this.generatorConfig=i,this.support=o,this.model=new Uxn(t,this),this.ir=ka.IR.IntermediateRepresentation(t)?t:{},this.dir=ka.DynamicIR.DynamicIntermediateRepresentation(t)?t:{}}ir;dir;csharp=new Mxn(this);registry=new Hit(this);model;extern=new Lxn(this);settings=qu({namespace:()=>this.customConfig.namespace??Sxn(Bxn(`${this.generatorConfig.organization}_${this.apiName}`)),readOnlyMemoryTypes:()=>this.customConfig["read-only-memory-types"]??[],simplifyObjectDictionaries:()=>this.customConfig["simplify-object-dictionaries"]??!1,useFullyQualifiedNamespaces:()=>this.customConfig["experimental-fully-qualified-namespaces"]??!1,useDotnetFormat:()=>this.customConfig["experimental-dotnet-format"]??!1,enableWebsockets:()=>this.customConfig["experimental-enable-websockets"]??!1,enableReadonlyConstants:()=>this.customConfig["experimental-readonly-constants"]??!1,generateLiterals:()=>this.customConfig["generate-literals"]??this.customConfig["experimental-readonly-constants"]??!1,enableExplicitNullableOptional:()=>this.customConfig["experimental-explicit-nullable-optional"]??!1,useDefaultRequestParameterValues:()=>this.customConfig["use-default-request-parameter-values"]??!1,redactResponseBodyOnError:()=>this.customConfig["redact-response-body-on-error"]??!1,temporaryWebsocketEnvironments:()=>this.customConfig["temporary-websocket-environments"]??{},baseApiExceptionClassName:()=>this.customConfig["base-api-exception-class-name"]??"",baseExceptionClassName:()=>this.customConfig["base-exception-class-name"]??"",shouldGeneratedDiscriminatedUnions:()=>this.customConfig["use-discriminated-unions"]??!0,shouldGenerateUndiscriminatedUnions:()=>this.customConfig["use-undiscriminated-unions"]??!1,exportedClientClassName:()=>this.customConfig["exported-client-class-name"]??"",clientClassName:()=>this.customConfig["client-class-name"]??"",rootNamespaceForCoreClasses:()=>this.customConfig["root-namespace-for-core-classes"]??!0,packageId:()=>this.customConfig["package-id"]??"",isForwardCompatibleEnumsEnabled:()=>this.customConfig["enable-forward-compatible-enums"]??this.customConfig["experimental-enable-forward-compatible-enums"]??!0,websocketEnvironments:()=>this.customConfig["temporary-websocket-environments"]??{},customPagerName:()=>this.customConfig["custom-pager-name"]??"",environmentClassName:()=>this.customConfig["environment-class-name"]??"",generateErrorTypes:()=>this.customConfig["generate-error-types"]??!0,shouldInlinePathParameters:()=>this.customConfig["inline-path-parameters"]??!0,includeExceptionHandler:()=>this.customConfig["include-exception-handler"]??!1,exceptionInterceptorClassName:()=>this.customConfig["exception-interceptor-class-name"]??"",shouldGenerateMockServerTests:()=>this.customConfig["generate-mock-server-tests"]??this.customConfig["enable-wire-tests"]??!0,rootClientAccess:()=>this.customConfig["root-client-class-access"]=="internal"?oI.Internal:oI.Public,extraDependencies:()=>this.customConfig["extra-dependencies"]??{},omitFernHeaders:()=>this.customConfig["omit-fern-headers"]??!1,unifiedClientOptions:()=>this.customConfig["unified-client-options"]??!1,pascalCaseEnvironments:()=>this.customConfig["pascal-case-environments"]??!0,slnFormat:()=>this.customConfig["sln-format"]??"slnx",explicitNamespaces:()=>this.customConfig["explicit-namespaces"]===!0,outputPath:()=>{let t=this.customConfig["output-path"];return t==null?{library:"src",test:"src",solution:".",other:"."}:typeof t=="string"?{library:t,test:t,solution:".",other:"."}:{library:t.library??"src",test:t.test??"src",solution:t.solution??".",other:t.other??"."}}});constants={folders:qu({mockServerTests:()=>this.support.makeRelativeFilePath("Unit/MockServer"),types:()=>"Types",exceptions:()=>"Exceptions",src:()=>"src",protobuf:()=>"proto",serializationTests:()=>this.support.makeRelativeFilePath("Unit/Serialization"),project:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.sourceFiles,this.support.makeRelativeFilePath(this.names.files.project))),sourceFiles:()=>this.support.makeRelativeFilePath(this.constants.folders.src),coreFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.project,this.support.makeRelativeFilePath(this.constants.defaults.core))),publicCoreFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.project,this.support.makeRelativeFilePath(this.constants.defaults.core),this.support.makeRelativeFilePath(this.constants.defaults.publicCore))),testFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.sourceFiles,this.support.makeRelativeFilePath(this.names.files.testProject)))}),formatting:qu({indent:()=>" "}),defaults:qu({core:()=>"Core",publicCore:()=>"Public",version:()=>"0.0.0"})};namespaces=qu({root:()=>this.settings.namespace,core:()=>`${this.namespaces.root}.Core`,qualifiedRoot:()=>this.qualifyNamespace(this.namespaces.root),qualifiedCore:()=>this.qualifyNamespace(this.namespaces.core),test:()=>this.registry.canonicalizeNamespace(`${this.namespaces.root}.Test`),testUtils:()=>`${this.namespaces.test}.Utils`,mockServerTest:()=>`${this.namespaces.test}.Unit.MockServer`,publicCore:()=>this.namespaces.root,webSocketsCore:()=>`${this.namespaces.core}.WebSockets`,publicCoreTest:()=>`${this.namespaces.root}.Test.PublicCore`,asIsTestUtils:()=>`${this.namespaces.root}.Test.Utils`,publicCoreClasses:()=>this.settings.rootNamespaceForCoreClasses?this.namespaces.root:this.namespaces.core,implicit:()=>new Set(["System","System.Collections.Generic","System.IO","System.Linq","System.Threading","System.Threading.Tasks","System.Net.Http"])});names={classes:qu({baseApiException:()=>this.settings.baseApiExceptionClassName||`${this.names.project.clientPrefix}ApiException`,baseException:()=>this.settings.baseExceptionClassName||`${this.names.project.clientPrefix}Exception`,rootClient:()=>this.settings.clientClassName||`${this.names.project.clientPrefix}Client`,rootClientForSnippets:()=>this.settings.exportedClientClassName||this.names.classes.rootClient,customPager:()=>this.settings.customPagerName||`${this.names.project.packageId.replace(/[^a-zA-Z0-9]/g,"")}Pager`,environment:()=>this.settings.environmentClassName||`${this.names.project.clientPrefix}Environment`,exceptionInterceptor:()=>this.settings.exceptionInterceptorClassName||`${this.names.project.packageId.replace(/[^a-zA-Z0-9]/g,"")}ExceptionInterceptor`}),project:qu({client:()=>Sxn(Bxn(`${this.generatorConfig.organization}_${this.generatorConfig.workspaceName}`)),clientPrefix:()=>this.settings.exportedClientClassName||this.settings.clientClassName||this.names.project.client,packageId:()=>this.settings.packageId||this.namespaces.root}),files:qu({project:()=>this.namespaces.root,testProject:()=>`${this.namespaces.root}.Test`}),methods:qu({mockOauth:()=>"MockOAuthEndpoint",mockInferredAuth:()=>"MockInferredAuthEndpoint",getAccessTokenAsync:()=>"GetAccessTokenAsync",getAuthHeadersAsync:()=>"GetAuthHeadersAsync"}),variables:qu({client:()=>"client",response:()=>"response",httpRequest:()=>"httpRequest",sendRequest:()=>"sendRequest",responseBody:()=>"responseBody",query:()=>"_query",headers:()=>"_headers"}),parameters:qu({cancellationToken:()=>"cancellationToken",requestOptions:()=>"options",idempotentOptions:()=>"options"})};Types=qu({Arbitrary:t=>new af.ArbitraryType(t,this),HttpMethodExtensions:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("HttpMethodExtensions")}),FormRequest:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("FormRequest")}),Optional:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("Optional")}),ClientOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("ClientOptions"),namespace:this.namespaces.publicCoreClasses}),RawClient:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("RawClient")}),RequestOptions:()=>this.csharp.classReference({namespace:this.namespaces.publicCoreClasses,origin:this.model.staticExplicit("RequestOptions")}),RequestOptionsInterface:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("IRequestOptions")}),JsonRequest:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("JsonRequest")}),Version:()=>this.csharp.classReference({namespace:this.namespaces.publicCore,origin:this.model.staticExplicit("Version")}),ValueConvert:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("ValueConvert")}),FileParameter:()=>this.csharp.classReference({namespace:this.namespaces.publicCore,origin:this.model.staticExplicit("FileParameter"),multipartMethodName:"AddFileParameterPart",multipartMethodNameForCollection:"AddFileParameterParts",isReferenceType:!0}),Headers:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("Headers")}),HeaderValue:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("HeaderValue")}),RootClient:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.rootClient),namespace:this.namespaces.root}),RootClientForSnippets:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.rootClientForSnippets),namespace:this.namespaces.root}),BaseApiException:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.baseApiException),namespace:this.namespaces.publicCoreClasses}),BaseException:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.baseException),namespace:this.namespaces.publicCoreClasses}),ExceptionInterceptor:()=>this.csharp.classReference({origin:this.model.staticExplicit("IExceptionInterceptor"),namespace:this.namespaces.core}),ExceptionHandler:()=>this.csharp.classReference({origin:this.model.staticExplicit("ExceptionHandler"),namespace:this.namespaces.core}),CustomExceptionInterceptor:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.exceptionInterceptor),namespace:this.namespaces.core}),ProtoAnyMapper:()=>this.csharp.classReference({origin:this.model.staticExplicit("ProtoAnyMapper"),namespace:this.namespaces.core}),Constants:()=>this.csharp.classReference({origin:this.model.staticExplicit("Constants"),namespace:this.namespaces.core}),EnumSerializer:()=>this.csharp.classReference({origin:this.model.staticExplicit("EnumSerializer"),namespace:this.namespaces.core}),DateTimeSerializer:()=>this.csharp.classReference({origin:this.model.staticExplicit("DateTimeSerializer"),namespace:this.namespaces.core}),JsonUtils:()=>this.csharp.classReference({origin:this.model.staticExplicit("JsonUtils"),namespace:this.namespaces.core}),JsonAssert:()=>this.csharp.classReference({origin:this.model.staticExplicit("JsonAssert"),namespace:this.namespaces.testUtils}),CustomPagerFactory:()=>this.csharp.classReference({origin:this.model.staticExplicit(`${this.names.classes.customPager}Factory`),namespace:this.namespaces.core}),CustomPagerContext:()=>this.csharp.classReference({origin:this.model.staticExplicit(`${this.names.classes.customPager}Context`),namespace:this.namespaces.core}),Environments:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.environment),namespace:this.namespaces.publicCoreClasses}),TestClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("TestClient"),namespace:this.namespaces.test}),BaseMockServerTest:()=>this.csharp.classReference({origin:this.model.staticExplicit("BaseMockServerTest"),namespace:this.namespaces.mockServerTest}),IdempotentRequestOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("IdempotentRequestOptions"),namespace:this.namespaces.publicCoreClasses}),IdempotentRequestOptionsInterface:()=>this.csharp.classReference({origin:this.model.staticExplicit("IIdempotentRequestOptions"),namespace:this.namespaces.core}),IStringEnum:()=>this.csharp.classReference({origin:this.model.staticExplicit("IStringEnum"),namespace:this.namespaces.core}),WebSocketClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("WebSocketClient"),namespace:this.namespaces.webSocketsCore}),QueryBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("Query"),namespace:this.namespaces.webSocketsCore}),QueryStringBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("QueryStringBuilder"),namespace:this.namespaces.core}),QueryStringBuilderBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("QueryStringBuilder.Builder"),namespace:this.namespaces.core}),OAuthTokenProvider:()=>this.csharp.classReference({origin:this.model.staticExplicit("OAuthTokenProvider"),namespace:this.namespaces.core}),InferredAuthTokenProvider:()=>this.csharp.classReference({origin:this.model.staticExplicit("InferredAuthTokenProvider"),namespace:this.namespaces.core}),ProtoConverter:()=>this.csharp.classReference({origin:this.model.staticExplicit("ProtoConverter"),namespace:this.namespaces.core}),RawGrpcClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("RawGrpcClient"),namespace:this.namespaces.core}),Extensions:()=>this.csharp.classReference({origin:this.model.staticExplicit("Extensions"),namespace:this.namespaces.core}),GrpcRequestOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("GrpcRequestOptions"),namespace:this.namespaces.root}),GrpcChannelOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("GrpcChannelOptions"),namespace:"Grpc.Net.Client"}),StringEnum:t=>this.csharp.classReference({origin:this.model.staticExplicit("StringEnum"),namespace:this.namespaces.core,generics:t?[t]:void 0}),WebSocketEvent:t=>this.csharp.classReference({origin:this.model.staticExplicit("Event"),namespace:this.namespaces.webSocketsCore,generics:[t]}),ConnectionStatus:()=>this.csharp.classReference({origin:this.model.staticExplicit("ConnectionStatus"),namespace:this.namespaces.webSocketsCore}),WebSocketConnected:()=>this.csharp.classReference({origin:this.model.staticExplicit("Connected"),namespace:this.namespaces.webSocketsCore}),WebSocketClosed:()=>this.csharp.classReference({origin:this.model.staticExplicit("Closed"),namespace:this.namespaces.webSocketsCore}),CustomPagerClass:t=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.customPager),namespace:this.namespaces.core,generics:[t]}),Pager:t=>this.csharp.classReference({origin:this.model.staticExplicit("Pager"),namespace:this.namespaces.core,generics:[t]}),OffsetPager:({requestType:t,requestOptionsType:r,responseType:n,offsetType:i,stepType:o,itemType:s})=>this.csharp.classReference({origin:this.model.staticExplicit("OffsetPager"),namespace:this.namespaces.core,generics:[t,r,n,i,o,s]}),CursorPager:({requestType:t,requestOptionsType:r,responseType:n,cursorType:i,itemType:o})=>this.csharp.classReference({origin:this.model.staticExplicit("CursorPager"),namespace:this.namespaces.core,generics:[t,r,n,i,o]}),CollectionItemSerializer:(t,r)=>this.csharp.classReference({origin:this.model.staticExplicit("CollectionItemSerializer"),namespace:this.namespaces.core,generics:[t,r]}),OneOfSerializer:t=>this.csharp.classReference({origin:this.model.staticExplicit("OneOfSerializer"),namespace:this.namespaces.core,generics:[t]}),AdditionalProperties:t=>this.csharp.classReference({origin:this.model.staticExplicit("AdditionalProperties"),namespace:this.namespaces.publicCore,generics:t?[t]:void 0}),ReadOnlyAdditionalProperties:t=>this.csharp.classReference({origin:this.model.staticExplicit("ReadOnlyAdditionalProperties"),namespace:this.namespaces.publicCore,generics:t?[t]:void 0})});Primitive=qu({string:()=>new af.String(this),boolean:()=>new af.Boolean(this),integer:()=>new af.Integer(this),long:()=>new af.Long(this),uint:()=>new af.Uint(this),ulong:()=>new af.ULong(this),float:()=>new af.Float(this),double:()=>new af.Double(this),object:()=>new af.Object(this)});Value=qu({binary:()=>new wN.Binary(this),dateOnly:()=>new wN.DateOnly(this),dateTime:()=>new wN.DateTime(this),uuid:()=>new wN.Uuid(this),stringEnum:t=>new wN.StringEnum(t,this)});Collection=qu({array:t=>new Sx.Array(t,this),listType:t=>new Sx.ListType(t,this),list:t=>new Sx.List(t,this),set:t=>new Sx.Set(t,this),map:(t,r,n)=>new Sx.Map(t,r,this,n),idictionary:(t,r,n)=>new Sx.IDictionary(t,r,this,n),keyValuePair:(t,r)=>new Sx.KeyValuePair(t,r,this)});format=qu({private:t=>`_${Oxn.camelCase(t)}`});initialize(){return this.initializers.implicitNamespaces}initializers=qu({implicitNamespaces:()=>{for(let t of this.namespaces.implicit)this.registry.addImplicitNamespace(t);return!0}});get System(){return this.extern.System}get NUnit(){return this.extern.NUnit}get OneOf(){return this.extern.OneOf}get Google(){return this.extern.Google}get Grpc(){return this.extern.Grpc}get WireMock(){return this.extern.WireMock}qualifyNamespace(t){let r=t.split(".")[0];return r&&this.registry.hasTypeNamespaceConflict(r)?`global::${t}`:t}};var yq=class{generation;constructor(t){this.generation=t}get csharp(){return this.generation.csharp}get settings(){return this.generation.settings}get constants(){return this.generation.constants}get namespaces(){return this.generation.namespaces}get names(){return this.generation.names}get model(){return this.generation.model}get format(){return this.generation.format}get registry(){return this.generation.registry}get Types(){return this.generation.Types}get System(){return this.generation.extern.System}get NUnit(){return this.generation.extern.NUnit}get OneOf(){return this.generation.extern.OneOf}get Google(){return this.generation.extern.Google}get Grpc(){return this.generation.extern.Grpc}get WireMock(){return this.generation.extern.WireMock}get Primitive(){return this.generation.Primitive}get Value(){return this.generation.Value}get Collection(){return this.generation.Collection}};St();var Vxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}convert(t){if(t.value===null)return this.context.isNullable(t.typeReference)?this.csharp.Literal.null():(this.context.errors.add({severity:vr.Critical,message:"Expected non-null value, but got null"}),this.csharp.Literal.nop());if(t.value===void 0&&!t.fallbackToDefault)return this.csharp.Literal.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value,fallbackToDefault:t.fallbackToDefault});case"literal":return this.convertLiteral({literal:t.typeReference.value,value:t.value});case"map":return this.convertMap({map:t.typeReference,value:t.value,fallbackToDefault:t.fallbackToDefault});case"named":{let r=this.context.resolveNamedType({typeId:t.typeReference.value});return r==null?this.csharp.Literal.nop():this.convertNamed({named:r,value:t.value,as:t.as,fallbackToDefault:t.fallbackToDefault})}case"nullable":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as});case"optional":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as});case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as,fallbackToDefault:t.fallbackToDefault});case"set":return this.convertSet({set:t.typeReference.value,value:t.value,fallbackToDefault:t.fallbackToDefault});case"unknown":return this.convertUnknown({value:t.value,fallbackToDefault:t.fallbackToDefault});default:Se(t.typeReference)}}convertList({list:t,value:r,fallbackToDefault:n}){return Array.isArray(r)?this.csharp.Literal.list({valueType:this.context.dynamicTypeMapper.convert({typeReference:t,unboxOptionals:!0}),values:r.map((i,o)=>{this.context.errors.scope({index:o});try{return this.convert({typeReference:t,value:i})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:vr.Critical,message:`Expected array but got: ${typeof r}`}),this.csharp.Literal.nop())}convertLiteral({literal:t,value:r,fallbackToDefault:n}){switch(t.type){case"boolean":{let i=this.context.getValueAsBoolean({value:r});return i==null?this.csharp.Literal.nop():this.csharp.Literal.boolean(i)}case"string":{let i=this.context.getValueAsString({value:r});return i==null?n?this.Primitive.string.getDeterminsticDefault(n):this.csharp.Literal.nop():this.csharp.Literal.string(i)}default:Se(t)}}convertSet({set:t,value:r,fallbackToDefault:n}){return Array.isArray(r)?this.csharp.Literal.set({valueType:this.context.dynamicTypeMapper.convert({typeReference:t,unboxOptionals:!0}),values:r.map((i,o)=>{this.context.errors.scope({index:o});try{return this.convert({typeReference:t,value:i})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:vr.Critical,message:`Expected array but got: ${typeof r}`}),this.csharp.Literal.nop())}convertMap({map:t,value:r,fallbackToDefault:n}){return typeof r!="object"||r==null?(this.context.errors.add({severity:vr.Critical,message:`Expected object but got: ${r==null?"null":typeof r}`}),this.csharp.Literal.nop()):this.csharp.Literal.dictionary({keyType:this.context.dynamicTypeMapper.convert({typeReference:t.key}),valueType:t.value.type==="unknown"?this.context.dynamicTypeMapper.convert({typeReference:t.value}).asOptional():this.context.dynamicTypeMapper.convert({typeReference:t.value}),entries:Object.entries(r).map(([i,o])=>{this.context.errors.scope(i);try{return{key:this.convert({typeReference:t.key,value:i,as:"key"}),value:this.convert({typeReference:t.value,value:o})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:r,as:n,fallbackToDefault:i}){switch(t.type){case"alias":return this.convert({typeReference:t.typeReference,value:r,as:n,fallbackToDefault:i});case"discriminatedUnion":return this.settings.shouldGeneratedDiscriminatedUnions?this.convertDiscriminatedUnion({discriminatedUnion:t,value:r,fallbackToDefault:i}):this.convertUnknown({value:r,fallbackToDefault:i});case"enum":return this.getEnumValue(t,r);case"object":return this.convertObject({object_:t,value:r,fallbackToDefault:i});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:r,fallbackToDefault:i});default:Se(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:r,fallbackToDefault:n}){let i=this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),o=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:r});if(o==null)return this.csharp.Literal.nop();let s=o.singleDiscriminatedUnionType,a=this.getBaseProperties({discriminatedUnionTypeInstance:o,singleDiscriminatedUnionType:s});switch(s.type){case"samePropertiesAsObject":{let u=this.context.resolveNamedType({typeId:s.typeId});return u==null?this.csharp.Literal.nop():this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.convertNamed({named:u,value:o.value})]})}case"singleProperty":{if(this.context.getRecord(o.value)==null)return this.csharp.Literal.nop();try{let c=["Value","Type"].includes(s.discriminantValue.name.pascalCase.safeName)?`${s.discriminantValue.name.pascalCase.safeName}Inner`:s.discriminantValue.name.pascalCase.safeName;return this.context.errors.scope(s.discriminantValue.wireValue),this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.csharp.instantiateClass({classReference:this.csharp.classReference({name:c,enclosingType:i}),arguments_:[this.convert({typeReference:s.typeReference,value:s.discriminantValue.wireValue})]})]})}finally{this.context.errors.unscope()}}case"noProperties":return this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.csharp.instantiateClass({classReference:this.csharp.classReference({origin:o.discriminantValue,enclosingType:i}),arguments_:[]})]});default:Se(s)}}getBaseProperties({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:r}){return this.context.associateByWireValue({parameters:r.properties??[],values:this.context.getRecord(t.value)??{},ignoreMissingParameters:!0}).map(i=>{this.context.errors.scope(i.name.wireValue);try{return{name:this.context.getPropertyName(i.name.name),assignment:this.convert(i)}}finally{this.context.errors.unscope()}})}instantiateUnionWithBaseProperties({classReference:t,arguments_:r,baseProperties:n}){let i=this.csharp.instantiateClass({classReference:t,arguments_:r,multiline:!0});return n.length===0?this.csharp.Literal.reference(i):this.csharp.Literal.reference(this.csharp.codeblock(o=>{o.write(i," "),o.pushScope();for(let s of n)o.write(s.name," = ",s.assignment,",");o.popScope(!1)}))}getEnumValue(t,r){if(typeof r!="string")return this.context.errors.add({severity:vr.Critical,message:`Expected enum value string, got: ${typeof r}`}),this.csharp.Literal.nop();let n=t.values.find(s=>s.wireValue===r);if(n==null)return this.context.errors.add({severity:vr.Critical,message:`An enum value named "${r}" does not exist in this context`}),this.csharp.Literal.nop();let i=this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),o=i.registerField(this.model.getPropertyNameFor(n),n);return this.csharp.Literal.reference(this.csharp.enumInstantiation({reference:i,value:o}))}convertObject({object_:t,value:r,fallbackToDefault:n}){let i=this.context.associateByWireValue({parameters:t.properties,values:this.context.getRecord(r)??{}});return this.csharp.Literal.class_({reference:this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),fields:i.map(o=>{this.context.errors.scope(o.name.wireValue);try{return{name:this.context.getClassName(o.name.name),value:this.convert(o)}}finally{this.context.errors.unscope()}})})}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:r,fallbackToDefault:n}){let i=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:r});return i==null?this.csharp.Literal.nop():i.typeLiteral}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:r}){for(let n of t.types)try{let i=this.convert({typeReference:n,value:r});return{valueTypeReference:n,typeLiteral:i}}catch{continue}this.context.errors.add({severity:vr.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof r}" value`})}convertUnknown({value:t,fallbackToDefault:r}){return this.csharp.Literal.unknown(t)}convertPrimitive({primitive:t,value:r,as:n,fallbackToDefault:i}){switch(t){case"INTEGER":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.integer.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.integer(o)}case"LONG":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.long.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.long(o)}case"UINT":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.uint.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.uint(o)}case"UINT_64":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.ulong.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.ulong(o)}case"FLOAT":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.float.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.float(o)}case"DOUBLE":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.double.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.double(o)}case"BOOLEAN":{let o=this.getValueAsBoolean({value:r,as:n});return o==null?i?this.Primitive.boolean.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.boolean(o)}case"STRING":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"DATE":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Value.dateOnly.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.date(o)}case"DATE_TIME":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Value.dateTime.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.datetime(o)}case"UUID":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"BASE_64":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"BIG_INTEGER":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}default:Se(t)}}getValueAsNumber({value:t,as:r}){let n=r==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:r}){let n=r==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:n})}};St();var qxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}convert(t){switch(t.typeReference.type){case"list":return this.Collection.list(this.convert({typeReference:t.typeReference.value,unboxOptionals:!0}));case"literal":return this.convertLiteral({literal:t.typeReference.value});case"map":return this.Collection.map(this.convert({typeReference:t.typeReference.key}),this.convert({typeReference:t.typeReference.value}));case"named":{let r=this.context.resolveNamedType({typeId:t.typeReference.value});return r==null?this.convertUnknown():this.convertNamed({named:r})}case"optional":case"nullable":{let r=this.convert({typeReference:t.typeReference.value});return t.unboxOptionals?r.asNonOptional():r.asOptional()}case"primitive":return this.convertPrimitive({primitive:t.typeReference.value});case"set":return this.Collection.set(this.convert({typeReference:t.typeReference.value,unboxOptionals:!0}));case"unknown":return this.convertUnknown();default:Se(t.typeReference)}}convertToClassReference(t){return this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)})}convertNamed({named:t}){switch(t.type){case"alias":return this.convert({typeReference:t.typeReference});case"enum":case"object":return this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)});case"discriminatedUnion":return this.settings.shouldGeneratedDiscriminatedUnions?this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}):this.Primitive.object;case"undiscriminatedUnion":return this.settings.shouldGenerateUndiscriminatedUnions?this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}):this.OneOf.OneOf(t.types.map(r=>this.convert({typeReference:r})));default:Se(t)}}convertLiteral({literal:t}){switch(t.type){case"boolean":return this.Primitive.boolean;case"string":return this.Primitive.string}}convertUnknown(){return this.Primitive.object}convertPrimitive({primitive:t}){switch(t){case"INTEGER":return this.Primitive.integer;case"UINT":return this.Primitive.uint;case"LONG":return this.Primitive.long;case"UINT_64":return this.Primitive.ulong;case"FLOAT":return this.Primitive.float;case"DOUBLE":return this.Primitive.double;case"BOOLEAN":return this.Primitive.boolean;case"STRING":return this.Primitive.string;case"DATE":return this.Value.dateOnly;case"DATE_TIME":return this.Value.dateTime;case"UUID":return this.Primitive.string;case"BASE_64":return this.Primitive.string;case"BIG_INTEGER":return this.Primitive.string;default:Se(t)}}};St();var Gxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}getFilePropertyInfo({body:t,value:r}){let n={fileFields:[],bodyPropertyFields:[]},i=this.context.getRecord(r)??{};for(let o of t.properties)switch(o.type){case"file":ka.Record.missingKey(i,o.wireValue)&&(i[o.wireValue]="[bytes]"),n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getSingleFileProperty({property:o,record:i})});break;case"fileArray":ka.Record.missingKey(i,o.wireValue)&&(i[o.wireValue]=["[bytes]"]),n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getArrayFileProperty({property:o,record:i})});break;case"bodyProperty":if(ka.Record.missingKey(i,o.name.wireValue))switch(o.typeReference.type){case"optional":break;case"primitive":{switch(o.typeReference.value.toLowerCase()){case"integer":{i[o.name.wireValue]=123;break}case"string":{i[o.name.wireValue]="[string]";break}case"boolean":{i[o.name.wireValue]=!0;break}case"double":{i[o.name.wireValue]=123.456;break}case"float":{i[o.name.wireValue]=123.456;break}case"long":{i[o.name.wireValue]=123456789;break}case"uint":{i[o.name.wireValue]=123;break}case"uint64":{i[o.name.wireValue]=12345;break}case"date":{i[o.name.wireValue]=new Date(2021,1,1);break}case"datetime":{i[o.name.wireValue]=new Date(2021,1,1,12,0,0);break}case"uuid":{i[o.name.wireValue]="123e4567-e89b-12d3-a456-426614174000";break}case"base64":{i[o.name.wireValue]="SGVsbG8gd29ybGQh";break}case"biginteger":{i[o.name.wireValue]="12345678901234567890";break}}break}default:break}n.bodyPropertyFields.push({name:this.context.getPropertyName(o.name.name),value:this.getBodyProperty({property:o,record:i})});break;default:Se(o)}return n}getSingleFileProperty({property:t,record:r}){let n=this.context.getSingleFileValue({property:t,record:r});return n==null?this.csharp.Literal.nop():this.context.getFileParameterForString(n)}getArrayFileProperty({property:t,record:r}){let n=this.context.getFileArrayValues({property:t,record:r});return n==null?this.csharp.Literal.nop():this.csharp.Literal.list({valueType:this.Types.FileParameter,values:n.map(i=>this.context.getFileParameterForString(i))})}getBodyProperty({property:t,record:r}){let n=r[t.name.wireValue];return n==null?this.csharp.Literal.nop():this.context.dynamicLiteralMapper.convert({typeReference:t.typeReference,value:n})}};var Wxn=class e extends RE{ir;dynamicTypeMapper;dynamicLiteralMapper;filePropertyMapper;generation;get namespaces(){return this.generation.namespaces}get registry(){return this.generation.registry}get settings(){return this.generation.settings}get constants(){return this.generation.constants}get names(){return this.generation.names}get model(){return this.generation.model}get format(){return this.generation.format}get csharp(){return this.generation.csharp}get Types(){return this.generation.Types}get System(){return this.generation.extern.System}get NUnit(){return this.generation.extern.NUnit}get OneOf(){return this.generation.extern.OneOf}get Google(){return this.generation.extern.Google}get WireMock(){return this.generation.extern.WireMock}get Primitive(){return this.generation.Primitive}get Value(){return this.generation.Value}get Collection(){return this.generation.Collection}constructor({ir:t,config:r,options:n,generation:i}){super({ir:t,config:r,options:n}),this.ir=t,this.generation=i??new kPt(t,r.workspaceName,r.customConfig!=null?r.customConfig:{},r),this.dynamicTypeMapper=new qxn({context:this}),this.dynamicLiteralMapper=new Vxn({context:this}),this.filePropertyMapper=new Gxn({context:this})}clone(){return new e({ir:this.ir,config:this.config,options:this.options,generation:this.generation})}getFileParameterForString(t){return this.csharp.Literal.reference(this.csharp.instantiateClass({classReference:this.Types.FileParameter,arguments_:[],properties:[{name:"Stream",value:this.getMemoryStreamForString(t)}],multiline:!0}))}getMemoryStreamForString(t){return this.System.IO.MemoryStream.new({arguments_:[this.csharp.invokeMethod({on:this.System.Text.Encoding_UTF8,method:"GetBytes",arguments_:[this.csharp.Literal.string(t)]})]})}getClassName(t){return t.pascalCase.safeName}getParameterName(t){return t.camelCase.safeName}getPropertyName(t){return t.pascalCase.safeName}getMethodName(t){return`${t.pascalCase.safeName}Async`}getNamespace(t,r){let n=this.getNamespaceSegments(t);return n=r!=null?[...n,r]:n,[this.namespaces.root,...n].join(".")}getEnvironmentTypeReferenceFromID(t){let r=this.resolveEnvironmentName(t);if(r!=null)return this.getEnvironmentClassReferenceForEnumName(r)}getEnvironmentClassReferenceForEnumName(t){return this.csharp.classReference({name:`${this.generation.Types.Environments.name}.${this.getClassName(t)}`,namespace:this.namespaces.root})}getNamespaceSegments(t){return(this.settings.explicitNamespaces?t.allParts:t.packagePath).map(n=>n.pascalCase.safeName)}precalculate(t){this.generation.initialize(),this.System.Collections.Generic.KeyValuePair(),this.System.Collections.Generic.IEnumerable(),this.System.Collections.Generic.IAsyncEnumerable(),this.System.Collections.Generic.HashSet(),this.System.Collections.Generic.List(),this.System.Collections.Generic.Dictionary(),this.System.Threading.Tasks.Task(),Object.entries(this.ir.types).sort((r,n)=>r[0].length-n[0].length).forEach(([r,n])=>{this.dynamicTypeMapper.convertToClassReference(n)});for(let[r,n]of t.entries())if(this.csharp.classReference({origin:this.model.staticExplicit(`Example${r}`),namespace:"Usage"}),n.endpoint){let i=this.resolveEndpointLocation(n.endpoint);for(let o of i)switch(o.request.type){case"inlined":this.csharp.classReference({origin:o.request.declaration.name,namespace:this.getNamespace(o.request.declaration.fernFilepath)});break;case"body":break}}this.generation.Types.ClientOptions,this.generation.Types.RootClient,this.csharp.freezeClassReferences()}};St();Ci();var $xn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}async generateSnippet({endpoint:t,request:r,options:n}){return this.buildCodeBlock({endpoint:t,snippet:r,options:n}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}generateSnippetSync({endpoint:t,request:r,options:n}){return this.buildCodeBlock({endpoint:t,snippet:r,options:n}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}async generateSnippetAst({endpoint:t,request:r,options:n}){throw new Error("Unsupported")}buildCodeBlock({endpoint:t,snippet:r,options:n}){if(t.examples&&!t.examples?.find(s=>ka.DynamicIR.EndpointExample(r)&&s.id===r.id))throw new Error("Endpoint does not have an example that matches the snippet");let i=this.csharp.codeblock(s=>{s.writeNodeStatement(this.constructClient({endpoint:t,snippet:r})),s.newLine(),s.writeNodeStatement(this.callMethod({endpoint:t,snippet:r}))}),o=this.getStyle(n);switch(o){case YI.Concise:return i;case YI.Full:return this.buildFullCodeBlock({body:i,options:n});default:Se(o)}}buildFullCodeBlock({body:t,options:r}){let n=this.getConfig(r),i=this.csharp.class_({name:n.fullStyleClassName??"Example",namespace:"Usage",access:$it.Access.Public});return i.addNamespaceReference(this.Types.RootClient.namespace),i.addMethod({name:"Do",access:$it.Access.Public,isAsync:!0,parameters:[],body:t}),i}constructClient({endpoint:t,snippet:r}){return this.csharp.codeblock(n=>{n.write("var client = "),n.writeNode(this.getRootClientConstructorInvocation(this.getConstructorArgs({endpoint:t,snippet:r})))})}callMethod({endpoint:t,snippet:r}){let n=t.response?.type==="streaming"||t.response?.type==="streamParameter",i=this.csharp.invokeMethod({on:this.csharp.codeblock("client"),method:this.getMethod({endpoint:t}),arguments_:this.getMethodArgs({endpoint:t,snippet:r}),async:!0,configureAwait:!0,multiline:!0,isAsyncEnumerable:n});return n?this.csharp.codeblock(o=>{o.write("await foreach (var item in "),o.writeNode(i),o.writeLine(")"),o.pushScope(),o.writeLine("/* consume each item */"),o.popScope()}):i}getConstructorArgs({endpoint:t,snippet:r}){let n=[];t.auth!=null&&(r.auth!=null?n.push(...this.getConstructorAuthArgs({auth:t.auth,values:r.auth})):this.context.errors.add({severity:vr.Warning,message:`Auth with ${t.auth.type} configuration is required for this endpoint`}));let i=[],o=this.getConstructorBaseUrlArgs({baseUrl:r.baseURL,environment:r.environment});o.length>0&&i.push(...o),this.context.errors.scope(Fo.Headers);let s=[];if(this.context.ir.headers!=null&&r.headers!=null&&s.push(...this.getConstructorHeaderArgs({headers:this.context.ir.headers,values:r.headers})),this.context.errors.unscope(),this.settings.unifiedClientOptions){let a=[...n.map(u=>({name:Xu(u.name),assignment:u.assignment})),...s.map(u=>({name:Xu(u.name),assignment:u.assignment})),...i.map(u=>({name:u.name,assignment:u.assignment}))];return a.length===0?[]:[{name:"clientOptions",assignment:this.csharp.instantiateClass({classReference:this.Types.ClientOptions,arguments_:a,multiline:!0})}]}return i.length===0?[...n,...s]:[...n,...s,{name:"clientOptions",assignment:this.csharp.instantiateClass({classReference:this.Types.ClientOptions,arguments_:i.map(a=>({name:a.name,assignment:a.assignment})),multiline:!0})}]}getConstructorBaseUrlArgs({baseUrl:t,environment:r}){let n=this.getBaseUrlArg({baseUrl:t,environment:r});return ka.Literal.nop(n)?[]:[{name:this.getBaseUrlOptionName(),assignment:n}]}getBaseUrlArg({baseUrl:t,environment:r}){if(t!=null&&r!=null)return this.context.errors.add({severity:vr.Critical,message:"Cannot specify both baseUrl and environment options"}),this.csharp.Literal.nop();if(t!=null)return this.context.ir.environments?.environments.type==="multipleBaseUrls"?(this.context.errors.add({severity:vr.Critical,message:"The C# SDK doesn't support a baseUrl when multiple URL environments are configured"}),this.csharp.Literal.nop()):this.csharp.Literal.string(t);if(r!=null){if(this.context.isSingleEnvironmentID(r)){let n=this.context.getEnvironmentTypeReferenceFromID(r);return n==null?(this.context.errors.add({severity:vr.Warning,message:`Environment ${JSON.stringify(r)} was not found`}),this.csharp.Literal.nop()):this.csharp.Literal.reference(n)}if(this.context.isMultiEnvironmentValues(r))return this.context.validateMultiEnvironmentUrlValues(r)?this.csharp.Literal.reference(this.csharp.instantiateClass({classReference:this.Types.Environments,arguments_:Object.entries(r).map(([n,i])=>({name:Xu(Un(n)),assignment:this.context.dynamicLiteralMapper.convert({typeReference:{type:"primitive",value:"STRING"},value:i})})),multiline:!0})):this.csharp.Literal.nop()}return this.csharp.Literal.nop()}getConstructorAuthArgs({auth:t,values:r}){if(r.type!==t.type)return this.addError(this.context.newAuthMismatchError({auth:t,values:r}).message),[];switch(t.type){case"basic":return r.type==="basic"?this.getConstructorBasicAuthArg({auth:t,values:r}):[];case"bearer":return r.type==="bearer"?this.getConstructorBearerAuthArgs({auth:t,values:r}):[];case"header":return r.type==="header"?this.getConstructorHeaderAuthArgs({auth:t,values:r}):[];case"oauth":return r.type==="oauth"?this.getConstructorOAuthArgs({auth:t,values:r}):[];case"inferred":return r.type==="inferred"?this.getConstructorInferredAuthArgs({auth:t,values:r}):[];default:Se(t)}}addError(t){this.context.errors.add({severity:vr.Critical,message:t})}addWarning(t){this.context.errors.add({severity:vr.Warning,message:t})}getConstructorBasicAuthArg({auth:t,values:r}){return[{name:this.context.getParameterName(t.username),assignment:this.csharp.Literal.string(r.username)},{name:this.context.getParameterName(t.password),assignment:this.csharp.Literal.string(r.password)}]}getConstructorBearerAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.token),assignment:this.csharp.Literal.string(r.token)}]}getConstructorHeaderAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.header.name.name),assignment:this.context.dynamicLiteralMapper.convert({typeReference:t.header.typeReference,value:r.value,fallbackToDefault:t.header.name.wireValue})}]}getConstructorOAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.clientId),assignment:this.csharp.Literal.string(r.clientId)},{name:this.context.getParameterName(t.clientSecret),assignment:this.csharp.Literal.string(r.clientSecret)}]}getConstructorInferredAuthArgs({auth:t,values:r}){let n=[];if(t.parameters!=null)for(let i of t.parameters){let o=i.name.wireValue,s=r.values?.[o];n.push({name:this.context.getParameterName(i.name.name),assignment:this.context.dynamicLiteralMapper.convert({typeReference:i.typeReference,value:s,fallbackToDefault:o})})}else this.context.errors.add({severity:vr.Critical,message:"Inferred auth parameters are not defined in the IR. Please ensure you're using IR version 62.3.0 or later."});return n}getConstructorHeaderArgs({headers:t,values:r}){let n=[];for(let i of t){let o=r[i.name.wireValue],s=this.getConstructorHeaderArg({header:i,value:o});s!=null&&n.push({name:this.context.getParameterName(i.name.name),assignment:s})}return n}getConstructorHeaderArg({header:t,value:r}){let n=this.context.dynamicLiteralMapper.convert({typeReference:t.typeReference,value:r,fallbackToDefault:t.name.wireValue});if(!ka.Literal.nop(n))return n}getMethodArgs({endpoint:t,snippet:r}){switch(t.request.type){case"inlined":return this.getMethodArgsForInlinedRequest({request:t.request,snippet:r});case"body":return this.getMethodArgsForBodyRequest({request:t.request,snippet:r});default:Se(t.request)}}getMethodArgsForInlinedRequest({request:t,snippet:r}){let n=[];this.context.errors.scope(Fo.PathParameters);let i=[],o=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];o.length>0&&i.push(...this.getPathParameters({namedParameters:o,snippet:r})),this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody);let s=this.getFilePropertyInfo({request:t,snippet:r});return this.context.errors.unscope(),this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:this.settings.shouldInlinePathParameters})||n.push(...i.map(a=>a.value)),n.push(this.getInlinedRequestArg({request:t,snippet:r,pathParameterFields:this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:this.settings.shouldInlinePathParameters})?i:[],filePropertyInfo:s})),n}getFilePropertyInfo({request:t,snippet:r}){return t.body==null||!this.context.isFileUploadRequestBody(t.body)?{fileFields:[],bodyPropertyFields:[]}:this.context.filePropertyMapper.getFilePropertyInfo({body:t.body,value:r.requestBody})}getInlinedRequestArg({request:t,snippet:r,pathParameterFields:n,filePropertyInfo:i}){this.context.errors.scope(Fo.QueryParameters);let s=this.context.associateQueryParametersByWireValue({parameters:t.queryParameters??[],values:r.queryParameters??{}}).map(l=>({name:this.context.getPropertyName(l.name.name),value:this.context.dynamicLiteralMapper.convert(l)}));this.context.errors.unscope(),this.context.errors.scope(Fo.Headers);let u=this.context.associateByWireValue({parameters:t.headers??[],values:r.headers??{}}).map(l=>({name:this.context.getPropertyName(l.name.name),value:this.context.dynamicLiteralMapper.convert({...l,fallbackToDefault:l.name.wireValue})}));this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody);let c=t.body!=null?this.getInlinedRequestBodyConstructorFields({body:t.body,value:r.requestBody,filePropertyInfo:i}):[];return this.context.errors.unscope(),this.csharp.Literal.class_({reference:this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),fields:[...n,...s,...u,...c]})}getInlinedRequestBodyConstructorFields({body:t,value:r,filePropertyInfo:n}){switch(t.type){case"properties":return this.getInlinedRequestBodyPropertyConstructorFields({parameters:t.value,value:r});case"referenced":return[this.getReferencedRequestBodyPropertyConstructorField({body:t,value:r})];case"fileUpload":return this.getFileUploadRequestBodyConstructorFields({filePropertyInfo:n});default:Se(t)}}getInlinedRequestBodyPropertyConstructorFields({parameters:t,value:r}){let n=[],i=this.context.associateByWireValue({parameters:t,values:this.context.getRecord(r)??{}});for(let o of i)n.push({name:this.context.getPropertyName(o.name.name),value:this.context.dynamicLiteralMapper.convert({...o,fallbackToDefault:o.name.wireValue})});return n}getFileUploadRequestBodyConstructorFields({filePropertyInfo:t}){return[...t.fileFields,...t.bodyPropertyFields]}getReferencedRequestBodyPropertyConstructorField({body:t,value:r}){return{name:this.context.getPropertyName(t.bodyKey),value:this.getReferencedRequestBodyPropertyLiteral({body:t.bodyType,value:r})}}getReferencedRequestBodyPropertyLiteral({body:t,value:r}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:r});case"typeReference":return this.context.dynamicLiteralMapper.convert({typeReference:t.value,value:r,fallbackToDefault:JSON.stringify(t.value)});default:Se(t)}}getMethodArgsForBodyRequest({request:t,snippet:r}){let n=[];this.context.errors.scope(Fo.PathParameters);let i=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];return i.length>0&&n.push(...this.getPathParameters({namedParameters:i,snippet:r}).map(o=>o.value)),this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody),t.body!=null&&n.push(this.getBodyRequestArg({body:t.body,value:r.requestBody})),this.context.errors.unscope(),n}getBodyRequestArg({body:t,value:r}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:r});case"typeReference":return t.value.type==="optional"&&r==null?this.csharp.Literal.null():this.context.dynamicLiteralMapper.convert({typeReference:t.value,value:r,fallbackToDefault:JSON.stringify(t.value)});default:Se(t)}}getBytesBodyRequestArg({value:t}){let r=this.context.getValueAsString({value:t});return r==null&&(this.context.errors.add({severity:vr.Critical,message:"The bytes request body must be provided in string format"}),r="[bytes]"),this.csharp.Literal.reference(this.context.getMemoryStreamForString(r))}getRootClientConstructorInvocation(t){return this.csharp.instantiateClass({classReference:this.Types.RootClient,arguments_:t,forceUseConstructor:!0,multiline:!0})}getPathParameters({namedParameters:t,snippet:r}){let n=[],i=this.context.associateByWireValueOrDefault({parameters:t,values:r.pathParameters??{}});for(let o of i)n.push({name:this.context.getPropertyName(o.name.name),value:this.context.dynamicLiteralMapper.convert({...o,fallbackToDefault:o.name.wireValue})});return n}getMethod({endpoint:t}){return t.declaration.fernFilepath.allParts.length>0?`${t.declaration.fernFilepath.allParts.map(r=>this.context.getClassName(r)).join(".")}.${this.context.getMethodName(t.declaration.name)}`:this.context.getMethodName(t.declaration.name)}getBaseUrlOptionName(){return this.context.ir.environments?.environments.type==="multipleBaseUrls"?"Environment":"BaseUrl"}getStyle(t){return t.style??this.context.options.style??YI.Full}getConfig(t){return t.config??this.context.options.config??{}}};var QPt=class extends DE{constructor({ir:t,config:r,options:n={}}){super(new Wxn({ir:t,config:r,options:n}))}precalculate(t){this.context.precalculate(t)}async generate(t,r={}){return super.generate(t,r)}generateSync(t,r={}){return super.generateSync(t,r)}async generateSnippetAst(t){return super.generateSnippetAst(t)}createSnippetGenerator(t){return new $xn({context:t})}};qt();var Kit=require("fs/promises"),rgu=xe(require("path"),1);function Px(e){let t=e.endpoint.method;if(t!=="HEAD")return{...e,baseURL:e.baseUrl,endpoint:{...e.endpoint,method:t},auth:pCd(e.auth)}}function pCd(e){if(e!=null)return e}function tgu(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,fCd(r)]).filter(([t,r])=>r!=null))}function fCd(e){let t=e.location.method;if(t!=="HEAD")return{...e,location:{...e.location,method:t},examples:e.examples!=null?dCd(e.examples):void 0,auth:gCd(e.auth)}}function dCd(e){return e.map(t=>mCd(t)).filter(t=>t!=null)}function mCd(e){let t=e.endpoint.method;if(t!=="HEAD")return{...e,baseURL:e.baseUrl,endpoint:{...e.endpoint,method:t},auth:hCd(e.auth)}}function hCd(e){if(e!=null)return e}function gCd(e){if(e!=null)return e}function Tx(e){return{...e,endpoints:tgu(e.endpoints)}}var ACd=`
|
|
2459
|
+
${XOt()}`)}return this.generation.registry.registerClassReference(t,r)}freezeClassReferences(){this.frozen=!0}getPropertyName(t,r){let n=this.model.getPropertyNameFor(r),i=this.model.origin(r)??JA(`Origin not found for property: ${JSON.stringify(r).substring(0,100)}`),o=t.getFieldName(i,n);return o||n}class_(t){let r=t;return"reference"in t&&(r={...t.reference,...t}),new KZ(r,this.generation)}testClass(t){return new Wit(t,this.generation)}annotation(t){return new tue(t,this.generation)}annotationGroup(t){return new Qit(t,this.generation)}instantiateClass(t){return new bit(t,this.generation)}invokeMethod(t){return new wit(t,this.generation)}codeblock(t){return new CIe(t,this.generation)}code(){return new xIe({},this.generation)}anonymousFunction(t){return new Nit(t)}parameter(t){return new gq(t,this.generation)}interface_(t){return new Git(t,this.generation)}enum_(t){return new qit(t,this.generation)}dictionary(t){return new Eit(t,this.generation)}list(t){return new Iit(t,this.generation)}readOnlyMemory(t){return new Cit(t,this.generation)}set(t){return new xit(t,this.generation)}switch_(t){return new Mit(t,this.generation)}ternary(t){return new Lit(t,this.generation)}and(t){return new kit(t,this.generation)}or(t){return new jit(t,this.generation)}enumInstantiation(t){return new vit(t,this.generation)}string_(t){return new _it(t,this.generation)}xmlDocBlock(t){return new SIe(t,this.generation)}InstantiatedPrimitive={string:t=>new R1({type:"string",value:t},this.generation),boolean:t=>new R1({type:"boolean",value:t},this.generation),integer:t=>new R1({type:"integer",value:t},this.generation),long:t=>new R1({type:"long",value:t},this.generation),uint:t=>new R1({type:"uint",value:t},this.generation),ulong:t=>new R1({type:"ulong",value:t},this.generation),float:t=>new R1({type:"float",value:t},this.generation),double:t=>new R1({type:"double",value:t},this.generation),date:t=>new R1({type:"date",value:t},this.generation),dateTime:(t,r=!0)=>new R1({type:"dateTime",value:t,parse:r},this.generation),uuid:t=>new R1({type:"uuid",value:t},this.generation),null:()=>new R1({type:"null"},this.generation)};Literal={class_:({reference:t,fields:r})=>new kc.Class_(t,r,this.generation),dictionary:({keyType:t,valueType:r,entries:n})=>new kc.Dictionary(t,r,n,this.generation),list:({valueType:t,values:r})=>new kc.List(t,r,this.generation),set:({valueType:t,values:r})=>new kc.Set(t,r,this.generation),boolean:t=>new kc.Boolean(t,this.generation),float:t=>new kc.Float(t,this.generation),date:t=>new kc.Date(t,this.generation),datetime:t=>new kc.DateTime(t,this.generation),decimal:t=>new kc.Decimal(t,this.generation),double:t=>new kc.Double(t,this.generation),integer:t=>new kc.Integer(t,this.generation),long:t=>new kc.Long(t,this.generation),uint:t=>new kc.Uint(t,this.generation),ulong:t=>new kc.Ulong(t,this.generation),reference:t=>new kc.Reference(t,this.generation),string:t=>new kc.String(t,this.generation),null:()=>new kc.Null(this.generation),nop:()=>new kc.Nop(this.generation),unknown:t=>new kc.Unknown(t,this.generation)};xmlDocBlockOf(t){return t instanceof SIe?t:new SIe(t,this.generation)}VALID_READ_ONLY_MEMORY_TYPES=new Set(["int","long","uint","ulong","string","bool","float","double"]);validateReadOnlyMemoryTypes(){for(let t of this.generation.settings.readOnlyMemoryTypes)if(!this.VALID_READ_ONLY_MEMORY_TYPES.has(t))throw new Error(`Type "${t}" is not a valid 'read-only-memory-types' custom config option; expected one of ${JSON.stringify(this.VALID_READ_ONLY_MEMORY_TYPES)}.`)}};function qu(e){let t={},r={};for(let[n,i]of Object.entries(e))i.length===0?Object.defineProperty(r,n,{get(){return n in t||(t[n]=i()),t[n]},enumerable:!0,configurable:!0}):r[n]=i;return r}var Lxn=class{generation;constructor(t){this.generation=t}get csharp(){return this.generation.csharp}System=qu({Action:t=>this.csharp.classReference({name:"Action",namespace:"System",generics:t||void 0,multipartMethodName:null,multipartMethodNameForCollection:null,isReferenceType:!0}),Func:(t,r)=>this.csharp.classReference({name:"Func",namespace:"System",generics:t?r?[...t,r]:t:r?[r]:void 0,multipartMethodName:null,multipartMethodNameForCollection:null,isReferenceType:!0}),DateOnly:()=>this.csharp.classReference({name:"DateOnly",namespace:"System"}),DateTime:()=>this.csharp.classReference({name:"DateTime",namespace:"System"}),Enum:()=>this.csharp.classReference({name:"Enum",namespace:"System"}),Exception:()=>this.csharp.classReference({name:"Exception",namespace:"System"}),ReadOnlyMemory:t=>this.csharp.classReference({name:"ReadOnlyMemory",namespace:"System",generics:[t]}),Serializable:()=>this.csharp.classReference({name:"SerializableAttribute",namespace:"System"}),String:()=>this.csharp.classReference({name:"String",namespace:"System"}),Type:()=>this.csharp.classReference({name:"Type",namespace:"System",isReferenceType:!0,multipartMethodName:null,multipartMethodNameForCollection:null,fullyQualified:!0}),TimeSpan:()=>this.csharp.classReference({name:"TimeSpan",namespace:"System"}),Uri:()=>this.csharp.classReference({name:"Uri",namespace:"System"}),UriBuilder:()=>this.csharp.classReference({name:"UriBuilder",namespace:"System"}),Runtime:()=>qu({Serialization:()=>qu({EnumMember:()=>this.csharp.classReference({name:"EnumMemberAttribute",namespace:"System.Runtime.Serialization"})})}),Collections:()=>qu({Generic:()=>qu({IAsyncEnumerable:t=>this.csharp.classReference({name:"IAsyncEnumerable",namespace:"System.Collections.Generic",generics:t?[t]:void 0}),IEnumerable:t=>this.csharp.classReference({name:"IEnumerable",namespace:"System.Collections.Generic",generics:t?[t]:void 0}),KeyValuePair:(t,r)=>this.csharp.classReference({name:"KeyValuePair",namespace:"System.Collections.Generic",generics:t&&r?[t,r]:void 0}),List:t=>this.csharp.classReference({name:"List",namespace:"System.Collections.Generic",generics:t?[t]:void 0,isCollection:!0}),HashSet:t=>this.csharp.classReference({name:"HashSet",namespace:"System.Collections.Generic",generics:t?[t]:void 0,isCollection:!0}),Dictionary:(t,r)=>this.csharp.classReference({name:"Dictionary",namespace:"System.Collections.Generic",generics:t&&r?[t,r]:void 0,isCollection:!0}),IDictionary:(t,r)=>this.csharp.classReference({name:"IDictionary",namespace:"System.Collections.Generic",generics:[t,r]})}),Linq:()=>qu({Enumerable:()=>this.csharp.classReference({name:"Enumerable",namespace:"System.Linq"})})}),Globalization:()=>qu({DateTimeStyles:()=>this.csharp.classReference({name:"DateTimeStyles",namespace:"System.Globalization"})}),Linq:()=>qu({Enumerable:()=>this.csharp.classReference({name:"Enumerable",namespace:"System.Linq"})}),Net:()=>qu({Http:()=>qu({HttpClient:()=>this.csharp.classReference({name:"HttpClient",namespace:"System.Net.Http"}),HttpMethod:()=>this.csharp.classReference({name:"HttpMethod",namespace:"System.Net.Http"}),HttpResponseHeaders:()=>this.csharp.classReference({name:"HttpResponseHeaders",namespace:"System.Net.Http.Headers"})}),ServerSentEvents:()=>qu({SseEvent:()=>this.csharp.classReference({name:"SseEvent",namespace:"System.Net.ServerSentEvents"}),SseParser:()=>this.csharp.classReference({name:"SseParser",namespace:"System.Net.ServerSentEvents"})}),WebSockets:()=>qu({ClientWebSocketOptions:()=>this.csharp.classReference({name:"ClientWebSocketOptions",namespace:"System.Net.WebSockets"})})}),IO:()=>qu({MemoryStream:()=>this.csharp.classReference({name:"MemoryStream",namespace:"System.IO"}),Stream:()=>this.csharp.classReference({name:"Stream",namespace:"System.IO"}),StreamReader:()=>this.csharp.classReference({name:"StreamReader",namespace:"System.IO"})}),Text:()=>qu({Encoding:()=>this.csharp.classReference({name:"Encoding",namespace:"System.Text"}),Encoding_UTF8:()=>this.csharp.classReference({name:"UTF8",enclosingType:this.csharp.classReference({name:"Encoding",namespace:"System.Text"})}),Json:()=>qu({JsonElement:()=>this.csharp.classReference({name:"JsonElement",namespace:"System.Text.Json"}),JsonDocument:()=>this.csharp.classReference({name:"JsonDocument",namespace:"System.Text.Json"}),JsonException:()=>this.csharp.classReference({name:"JsonException",namespace:"System.Text.Json"}),Utf8JsonReader:()=>this.csharp.classReference({name:"Utf8JsonReader",namespace:"System.Text.Json"}),JsonSerializerOptions:()=>this.csharp.classReference({name:"JsonSerializerOptions",namespace:"System.Text.Json"}),JsonSerializer:()=>this.csharp.classReference({name:"JsonSerializer",namespace:"System.Text.Json"}),Utf8JsonWriter:()=>this.csharp.classReference({name:"Utf8JsonWriter",namespace:"System.Text.Json"}),Nodes:()=>qu({JsonNode:()=>this.csharp.classReference({name:"JsonNode",namespace:"System.Text.Json.Nodes"}),JsonObject:()=>this.csharp.classReference({name:"JsonObject",namespace:"System.Text.Json.Nodes"})}),Serialization:()=>qu({IJsonOnDeserialized:()=>this.csharp.classReference({name:"IJsonOnDeserialized",namespace:"System.Text.Json.Serialization"}),IJsonOnSerializing:()=>this.csharp.classReference({name:"IJsonOnSerializing",namespace:"System.Text.Json.Serialization"}),JsonOnDeserializedAttribute:()=>this.csharp.classReference({name:"JsonOnDeserializedAttribute",namespace:"System.Text.Json.Serialization"}),JsonExtensionData:()=>this.csharp.classReference({name:"JsonExtensionDataAttribute",namespace:"System.Text.Json.Serialization"}),JsonConverter:t=>this.csharp.classReference({name:"JsonConverter",namespace:"System.Text.Json.Serialization",generics:t?[t]:void 0}),JsonIgnore:()=>this.csharp.classReference({name:"JsonIgnoreAttribute",namespace:"System.Text.Json.Serialization"}),JsonPropertyName:()=>this.csharp.classReference({name:"JsonPropertyNameAttribute",namespace:"System.Text.Json.Serialization"})})})}),Threading:()=>qu({CancellationToken:()=>this.csharp.classReference({name:"CancellationToken",namespace:"System.Threading"}),Tasks:()=>qu({Task:t=>this.csharp.classReference({name:"Task",namespace:"System.Threading.Tasks",generics:t?[t]:void 0}),ValueTask:t=>this.csharp.classReference({name:"ValueTask",namespace:"System.Threading.Tasks",generics:t?[t]:void 0})})}),ComponentModel:()=>qu({INotifyPropertyChanged:()=>this.csharp.classReference({name:"INotifyPropertyChanged",namespace:"System.ComponentModel"}),PropertyChangedEventHandler:()=>this.csharp.classReference({name:"PropertyChangedEventHandler",namespace:"System.ComponentModel"})}),IAsyncDisposable:()=>this.csharp.classReference({name:"IAsyncDisposable",namespace:"System"}),IDisposable:()=>this.csharp.classReference({name:"IDisposable",namespace:"System"})});NUnit=qu({Framework:()=>qu({TestFixture:()=>this.csharp.classReference({name:"TestFixture",namespace:"NUnit.Framework"}),Test:()=>this.csharp.classReference({name:"Test",namespace:"NUnit.Framework"}),OneTimeTearDown:()=>this.csharp.classReference({name:"OneTimeTearDown",namespace:"NUnit.Framework"}),OneTimeSetUp:()=>this.csharp.classReference({name:"OneTimeSetUp",namespace:"NUnit.Framework"}),SetUpFixture:()=>this.csharp.classReference({name:"SetUpFixture",namespace:"NUnit.Framework"}),Parallelizable:()=>this.csharp.classReference({name:"Parallelizable",namespace:"NUnit.Framework"})})});OneOf=qu({OneOf:t=>this.csharp.classReference({name:"OneOf",namespace:"OneOf",generics:t}),OneOfBase:t=>this.csharp.classReference({name:"OneOfBase",namespace:"OneOf",generics:t})});Google=qu({Protobuf:()=>qu({ByteString:()=>this.csharp.classReference({name:"ByteString",namespace:"Google.Protobuf"}),WellKnownTypes:()=>qu({Struct:()=>this.csharp.classReference({name:"Struct",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),Value:()=>this.csharp.classReference({name:"Value",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),ListValue:()=>this.csharp.classReference({name:"ListValue",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"}),Timestamp:()=>this.csharp.classReference({name:"Timestamp",namespace:"Google.Protobuf.WellKnownTypes",namespaceAlias:"WellKnownProto"})})})});WireMock=qu({Server:()=>this.csharp.classReference({name:"WireMockServer",namespace:"WireMock.Server"}),WireMockServerSettings:()=>this.csharp.classReference({name:"WireMockServerSettings",namespace:"WireMock.Settings"}),WireMockConsoleLogger:()=>this.csharp.classReference({name:"WireMockConsoleLogger",namespace:"WireMock.Logging"})});Grpc=qu({Core:()=>qu({RpcException:()=>this.csharp.classReference({name:"RpcException",namespace:"Grpc.Core"})})})};var zWi=new Set(["name","camelCase","snakeCase","screamingSnakeCase","pascalCase"]);function lCd(e,t){return zWi.has(t)?e??"":e?`${e}.${t}`:t}var Uxn=class{generation;indexByObject=new Map;indexByPath=new Map;explicitByObject=new Map;explicitByPath=new Map;root;ir;get csharp(){return this.generation.csharp}get registry(){return this.generation.registry}constructor(t,r){this.generation=r,this.root=this.createIndex(t),this.ir=t}createIndex(t,r="",n){let i=lCd(n?.jsonPath,r);if(this.indexByPath.has(i)){n||JA(`Parent provenance not found for node: ${JSON.stringify(t).substring(0,100)}`),this.indexByObject.set(t,n);let s=zWi.has(r);for(let[a,u]of Object.entries(t))typeof u=="object"&&u!==null&&(s&&zWi.has(a)?this.indexByObject.set(u,n):this.createIndex(u,a,n));return n}let o={jsonPath:i,name:r,node:t,parent:n};this.indexByObject.set(t,o),this.indexByPath.set(i,o);for(let[s,a]of Object.entries(t))typeof a=="object"&&a!==null&&this.createIndex(a,s,o);return o}staticExplicit(t){return this.explicit(this.ir,t)}explicit(t,r){let n=this.provenance(t)??JA(`Provenance not found for node: ${JSON.stringify(t).substring(0,100)}`),i={...n,jsonPath:`${n.jsonPath}+${r}`,name:r,node:n.node,parent:n,explicit:!0},o=this.explicitByObject.get(n.node);return o?o.add(i):this.explicitByObject.set(n.node,new Set([i])),this.explicitByPath.set(i.jsonPath,i),i}provenance(t){if(t!==void 0)return ka.string(t)?this.explicitByPath.get(t)??this.indexByPath.get(t):ka.Provenance(t)?this.explicitByPath.get(t.jsonPath)??this.indexByPath.get(t.jsonPath):this.indexByObject.get(t)}origin(t){let r=this.provenance(t);return r?.explicit?r:r?.node}irNode(t){return this.provenance(t)?.node}jsonPath(t){return this.provenance(t)?.jsonPath}getEnumValueName(t,r){let n=ka.IR.ExampleEnumType(r)?r.value.name:r.name,i=t.values.find(o=>this.nameEquals(o.name.name,n));return i?this.getPropertyNameFor(i):JA(`Unexpected - can't find enum value ${n} in enum`)}getPropertyNameFor(t){let r=this.registry.getFieldNameByOrigin(t);if(r)return r;if(ka.Provenance(t))return t.name;if("name"in t){if(ka.IR.NameAndWireValue(t.name))return t.name.name.pascalCase.safeName;if(ka.IR.Name(t.name))return t.name.pascalCase.safeName;if(typeof t.name=="string")return t.name}if("pascalCase"in t)return t.pascalCase.safeName;throw new Error(`Unknown property type: ${this.jsonPath(t)}`)}getClassNameFor(t){if(ka.Provenance(t))return t.name;if("name"in t){if(ka.IR.TypeDeclaration(t)||ka.IR.NameAndWireValue(t.name))return t.name.name.pascalCase.safeName;if(ka.IR.Name(t.name))return t.name.pascalCase.safeName;if(typeof t.name=="string")return t.name}if("pascalCase"in t)return t.pascalCase.safeName;throw new Error(`Unknown property type: ${JSON.stringify(t)}`)}nameEquals(t,r){return t.camelCase.safeName===r.camelCase.safeName}dereferenceType(t){let r=ka.string(t)?t:ka.IR.NamedType(t)||ka.IR.DeclaredTypeName(t)?t.typeId:ka.IR.ExampleNamedType(t)?t.typeName.typeId:t.name.typeId,n=this.irNode(this.ir.types[r]);if(ka.IR.TypeDeclaration(n))return{typeId:r,typeDeclaration:n};JA(`dereferenceType: typeId ${r} not resolved.`)}};function zxn(...e){return e.filter(Boolean).join("/")}var kPt=class{intermediateRepresentation;apiName;customConfig;generatorConfig;support;constructor(t,r,n,i,o={makeRelativeFilePath:s=>s,makeAbsoluteFilePath:s=>s,getNamespaceForTypeId:s=>"",getDirectoryForTypeId:s=>"",getCoreAsIsFiles:()=>[],getCoreTestAsIsFiles:()=>[],getPublicCoreAsIsFiles:()=>[],getAsyncCoreAsIsFiles:()=>[],getChildNamespaceSegments:s=>[]}){this.intermediateRepresentation=t,this.apiName=r,this.customConfig=n,this.generatorConfig=i,this.support=o,this.model=new Uxn(t,this),this.ir=ka.IR.IntermediateRepresentation(t)?t:{},this.dir=ka.DynamicIR.DynamicIntermediateRepresentation(t)?t:{}}ir;dir;csharp=new Mxn(this);registry=new Hit(this);model;extern=new Lxn(this);settings=qu({namespace:()=>this.customConfig.namespace??Sxn(Bxn(`${this.generatorConfig.organization}_${this.apiName}`)),readOnlyMemoryTypes:()=>this.customConfig["read-only-memory-types"]??[],simplifyObjectDictionaries:()=>this.customConfig["simplify-object-dictionaries"]??!1,useFullyQualifiedNamespaces:()=>this.customConfig["experimental-fully-qualified-namespaces"]??!1,useDotnetFormat:()=>this.customConfig["experimental-dotnet-format"]??!1,enableWebsockets:()=>this.customConfig["experimental-enable-websockets"]??!1,enableReadonlyConstants:()=>this.customConfig["experimental-readonly-constants"]??!1,generateLiterals:()=>this.customConfig["generate-literals"]??this.customConfig["experimental-readonly-constants"]??!1,enableExplicitNullableOptional:()=>this.customConfig["experimental-explicit-nullable-optional"]??!1,useDefaultRequestParameterValues:()=>this.customConfig["use-default-request-parameter-values"]??!1,redactResponseBodyOnError:()=>this.customConfig["redact-response-body-on-error"]??!1,temporaryWebsocketEnvironments:()=>this.customConfig["temporary-websocket-environments"]??{},baseApiExceptionClassName:()=>this.customConfig["base-api-exception-class-name"]??"",baseExceptionClassName:()=>this.customConfig["base-exception-class-name"]??"",shouldGeneratedDiscriminatedUnions:()=>this.customConfig["use-discriminated-unions"]??!0,shouldGenerateUndiscriminatedUnions:()=>this.customConfig["use-undiscriminated-unions"]??!1,exportedClientClassName:()=>this.customConfig["exported-client-class-name"]??"",clientClassName:()=>this.customConfig["client-class-name"]??"",rootNamespaceForCoreClasses:()=>this.customConfig["root-namespace-for-core-classes"]??!0,packageId:()=>this.customConfig["package-id"]??"",isForwardCompatibleEnumsEnabled:()=>this.customConfig["enable-forward-compatible-enums"]??this.customConfig["experimental-enable-forward-compatible-enums"]??!0,websocketEnvironments:()=>this.customConfig["temporary-websocket-environments"]??{},customPagerName:()=>this.customConfig["custom-pager-name"]??"",environmentClassName:()=>this.customConfig["environment-class-name"]??"",generateErrorTypes:()=>this.customConfig["generate-error-types"]??!0,shouldInlinePathParameters:()=>this.customConfig["inline-path-parameters"]??!0,includeExceptionHandler:()=>this.customConfig["include-exception-handler"]??!1,exceptionInterceptorClassName:()=>this.customConfig["exception-interceptor-class-name"]??"",shouldGenerateMockServerTests:()=>this.customConfig["generate-mock-server-tests"]??this.customConfig["enable-wire-tests"]??!0,rootClientAccess:()=>this.customConfig["root-client-class-access"]=="internal"?oI.Internal:oI.Public,extraDependencies:()=>this.customConfig["extra-dependencies"]??{},omitFernHeaders:()=>this.customConfig["omit-fern-headers"]??!1,unifiedClientOptions:()=>this.customConfig["unified-client-options"]??!1,pascalCaseEnvironments:()=>this.customConfig["pascal-case-environments"]??!0,slnFormat:()=>this.customConfig["sln-format"]??"slnx",explicitNamespaces:()=>this.customConfig["explicit-namespaces"]===!0,outputPath:()=>{let t=this.customConfig["output-path"];return t==null?{library:"src",test:"src",solution:".",other:"."}:typeof t=="string"?{library:t,test:t,solution:".",other:"."}:{library:t.library??"src",test:t.test??"src",solution:t.solution??".",other:t.other??"."}}});constants={folders:qu({mockServerTests:()=>this.support.makeRelativeFilePath("Unit/MockServer"),types:()=>"Types",exceptions:()=>"Exceptions",src:()=>"src",protobuf:()=>"proto",serializationTests:()=>this.support.makeRelativeFilePath("Unit/Serialization"),project:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.sourceFiles,this.support.makeRelativeFilePath(this.names.files.project))),sourceFiles:()=>this.support.makeRelativeFilePath(this.constants.folders.src),coreFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.project,this.support.makeRelativeFilePath(this.constants.defaults.core))),publicCoreFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.project,this.support.makeRelativeFilePath(this.constants.defaults.core),this.support.makeRelativeFilePath(this.constants.defaults.publicCore))),testFiles:()=>this.support.makeRelativeFilePath(zxn(this.constants.folders.sourceFiles,this.support.makeRelativeFilePath(this.names.files.testProject)))}),formatting:qu({indent:()=>" "}),defaults:qu({core:()=>"Core",publicCore:()=>"Public",version:()=>"0.0.0"})};namespaces=qu({root:()=>this.settings.namespace,core:()=>`${this.namespaces.root}.Core`,qualifiedRoot:()=>this.qualifyNamespace(this.namespaces.root),qualifiedCore:()=>this.qualifyNamespace(this.namespaces.core),test:()=>this.registry.canonicalizeNamespace(`${this.namespaces.root}.Test`),testUtils:()=>`${this.namespaces.test}.Utils`,mockServerTest:()=>`${this.namespaces.test}.Unit.MockServer`,publicCore:()=>this.namespaces.root,webSocketsCore:()=>`${this.namespaces.core}.WebSockets`,publicCoreTest:()=>`${this.namespaces.root}.Test.PublicCore`,asIsTestUtils:()=>`${this.namespaces.root}.Test.Utils`,publicCoreClasses:()=>this.settings.rootNamespaceForCoreClasses?this.namespaces.root:this.namespaces.core,implicit:()=>new Set(["System","System.Collections.Generic","System.IO","System.Linq","System.Threading","System.Threading.Tasks","System.Net.Http"])});names={classes:qu({baseApiException:()=>this.settings.baseApiExceptionClassName||`${this.names.project.clientPrefix}ApiException`,baseException:()=>this.settings.baseExceptionClassName||`${this.names.project.clientPrefix}Exception`,rootClient:()=>this.settings.clientClassName||`${this.names.project.clientPrefix}Client`,rootClientForSnippets:()=>this.settings.exportedClientClassName||this.names.classes.rootClient,customPager:()=>this.settings.customPagerName||`${this.names.project.packageId.replace(/[^a-zA-Z0-9]/g,"")}Pager`,environment:()=>this.settings.environmentClassName||`${this.names.project.clientPrefix}Environment`,exceptionInterceptor:()=>this.settings.exceptionInterceptorClassName||`${this.names.project.packageId.replace(/[^a-zA-Z0-9]/g,"")}ExceptionInterceptor`}),project:qu({client:()=>Sxn(Bxn(`${this.generatorConfig.organization}_${this.generatorConfig.workspaceName}`)),clientPrefix:()=>this.settings.exportedClientClassName||this.settings.clientClassName||this.names.project.client,packageId:()=>this.settings.packageId||this.namespaces.root}),files:qu({project:()=>this.namespaces.root,testProject:()=>`${this.namespaces.root}.Test`}),methods:qu({mockOauth:()=>"MockOAuthEndpoint",mockInferredAuth:()=>"MockInferredAuthEndpoint",getAccessTokenAsync:()=>"GetAccessTokenAsync",getAuthHeadersAsync:()=>"GetAuthHeadersAsync"}),variables:qu({client:()=>"client",response:()=>"response",httpRequest:()=>"httpRequest",sendRequest:()=>"sendRequest",responseBody:()=>"responseBody",query:()=>"_query",headers:()=>"_headers"}),parameters:qu({cancellationToken:()=>"cancellationToken",requestOptions:()=>"options",idempotentOptions:()=>"options"})};Types=qu({Arbitrary:t=>new af.ArbitraryType(t,this),HttpMethodExtensions:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("HttpMethodExtensions")}),FormRequest:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("FormRequest")}),Optional:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("Optional")}),ClientOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("ClientOptions"),namespace:this.namespaces.publicCoreClasses}),RawClient:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("RawClient")}),RequestOptions:()=>this.csharp.classReference({namespace:this.namespaces.publicCoreClasses,origin:this.model.staticExplicit("RequestOptions")}),RequestOptionsInterface:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("IRequestOptions")}),JsonRequest:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("JsonRequest")}),Version:()=>this.csharp.classReference({namespace:this.namespaces.publicCore,origin:this.model.staticExplicit("Version")}),ValueConvert:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("ValueConvert")}),FileParameter:()=>this.csharp.classReference({namespace:this.namespaces.publicCore,origin:this.model.staticExplicit("FileParameter"),multipartMethodName:"AddFileParameterPart",multipartMethodNameForCollection:"AddFileParameterParts",isReferenceType:!0}),Headers:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("Headers")}),HeaderValue:()=>this.csharp.classReference({namespace:this.namespaces.core,origin:this.model.staticExplicit("HeaderValue")}),RootClient:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.rootClient),namespace:this.namespaces.root}),RootClientForSnippets:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.rootClientForSnippets),namespace:this.namespaces.root}),BaseApiException:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.baseApiException),namespace:this.namespaces.publicCoreClasses}),BaseException:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.baseException),namespace:this.namespaces.publicCoreClasses}),ExceptionInterceptor:()=>this.csharp.classReference({origin:this.model.staticExplicit("IExceptionInterceptor"),namespace:this.namespaces.core}),ExceptionHandler:()=>this.csharp.classReference({origin:this.model.staticExplicit("ExceptionHandler"),namespace:this.namespaces.core}),CustomExceptionInterceptor:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.exceptionInterceptor),namespace:this.namespaces.core}),ProtoAnyMapper:()=>this.csharp.classReference({origin:this.model.staticExplicit("ProtoAnyMapper"),namespace:this.namespaces.core}),Constants:()=>this.csharp.classReference({origin:this.model.staticExplicit("Constants"),namespace:this.namespaces.core}),EnumSerializer:()=>this.csharp.classReference({origin:this.model.staticExplicit("EnumSerializer"),namespace:this.namespaces.core}),DateTimeSerializer:()=>this.csharp.classReference({origin:this.model.staticExplicit("DateTimeSerializer"),namespace:this.namespaces.core}),JsonUtils:()=>this.csharp.classReference({origin:this.model.staticExplicit("JsonUtils"),namespace:this.namespaces.core}),JsonAssert:()=>this.csharp.classReference({origin:this.model.staticExplicit("JsonAssert"),namespace:this.namespaces.testUtils}),CustomPagerFactory:()=>this.csharp.classReference({origin:this.model.staticExplicit(`${this.names.classes.customPager}Factory`),namespace:this.namespaces.core}),CustomPagerContext:()=>this.csharp.classReference({origin:this.model.staticExplicit(`${this.names.classes.customPager}Context`),namespace:this.namespaces.core}),Environments:()=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.environment),namespace:this.namespaces.publicCoreClasses}),TestClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("TestClient"),namespace:this.namespaces.test}),BaseMockServerTest:()=>this.csharp.classReference({origin:this.model.staticExplicit("BaseMockServerTest"),namespace:this.namespaces.mockServerTest}),IdempotentRequestOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("IdempotentRequestOptions"),namespace:this.namespaces.publicCoreClasses}),IdempotentRequestOptionsInterface:()=>this.csharp.classReference({origin:this.model.staticExplicit("IIdempotentRequestOptions"),namespace:this.namespaces.core}),IStringEnum:()=>this.csharp.classReference({origin:this.model.staticExplicit("IStringEnum"),namespace:this.namespaces.core}),WebSocketClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("WebSocketClient"),namespace:this.namespaces.webSocketsCore}),QueryBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("Query"),namespace:this.namespaces.webSocketsCore}),QueryStringBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("QueryStringBuilder"),namespace:this.namespaces.core}),QueryStringBuilderBuilder:()=>this.csharp.classReference({origin:this.model.staticExplicit("QueryStringBuilder.Builder"),namespace:this.namespaces.core}),OAuthTokenProvider:()=>this.csharp.classReference({origin:this.model.staticExplicit("OAuthTokenProvider"),namespace:this.namespaces.core}),InferredAuthTokenProvider:()=>this.csharp.classReference({origin:this.model.staticExplicit("InferredAuthTokenProvider"),namespace:this.namespaces.core}),ProtoConverter:()=>this.csharp.classReference({origin:this.model.staticExplicit("ProtoConverter"),namespace:this.namespaces.core}),RawGrpcClient:()=>this.csharp.classReference({origin:this.model.staticExplicit("RawGrpcClient"),namespace:this.namespaces.core}),Extensions:()=>this.csharp.classReference({origin:this.model.staticExplicit("Extensions"),namespace:this.namespaces.core}),GrpcRequestOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("GrpcRequestOptions"),namespace:this.namespaces.root}),GrpcChannelOptions:()=>this.csharp.classReference({origin:this.model.staticExplicit("GrpcChannelOptions"),namespace:"Grpc.Net.Client"}),StringEnum:t=>this.csharp.classReference({origin:this.model.staticExplicit("StringEnum"),namespace:this.namespaces.core,generics:t?[t]:void 0}),WebSocketEvent:t=>this.csharp.classReference({origin:this.model.staticExplicit("Event"),namespace:this.namespaces.webSocketsCore,generics:[t]}),ConnectionStatus:()=>this.csharp.classReference({origin:this.model.staticExplicit("ConnectionStatus"),namespace:this.namespaces.webSocketsCore}),WebSocketConnected:()=>this.csharp.classReference({origin:this.model.staticExplicit("Connected"),namespace:this.namespaces.webSocketsCore}),WebSocketClosed:()=>this.csharp.classReference({origin:this.model.staticExplicit("Closed"),namespace:this.namespaces.webSocketsCore}),ReconnectionInfo:()=>this.csharp.classReference({origin:this.model.staticExplicit("ReconnectionInfo"),namespace:this.namespaces.webSocketsCore}),CustomPagerClass:t=>this.csharp.classReference({origin:this.model.staticExplicit(this.names.classes.customPager),namespace:this.namespaces.core,generics:[t]}),Pager:t=>this.csharp.classReference({origin:this.model.staticExplicit("Pager"),namespace:this.namespaces.core,generics:[t]}),OffsetPager:({requestType:t,requestOptionsType:r,responseType:n,offsetType:i,stepType:o,itemType:s})=>this.csharp.classReference({origin:this.model.staticExplicit("OffsetPager"),namespace:this.namespaces.core,generics:[t,r,n,i,o,s]}),CursorPager:({requestType:t,requestOptionsType:r,responseType:n,cursorType:i,itemType:o})=>this.csharp.classReference({origin:this.model.staticExplicit("CursorPager"),namespace:this.namespaces.core,generics:[t,r,n,i,o]}),CollectionItemSerializer:(t,r)=>this.csharp.classReference({origin:this.model.staticExplicit("CollectionItemSerializer"),namespace:this.namespaces.core,generics:[t,r]}),OneOfSerializer:t=>this.csharp.classReference({origin:this.model.staticExplicit("OneOfSerializer"),namespace:this.namespaces.core,generics:[t]}),AdditionalProperties:t=>this.csharp.classReference({origin:this.model.staticExplicit("AdditionalProperties"),namespace:this.namespaces.publicCore,generics:t?[t]:void 0}),ReadOnlyAdditionalProperties:t=>this.csharp.classReference({origin:this.model.staticExplicit("ReadOnlyAdditionalProperties"),namespace:this.namespaces.publicCore,generics:t?[t]:void 0})});Primitive=qu({string:()=>new af.String(this),boolean:()=>new af.Boolean(this),integer:()=>new af.Integer(this),long:()=>new af.Long(this),uint:()=>new af.Uint(this),ulong:()=>new af.ULong(this),float:()=>new af.Float(this),double:()=>new af.Double(this),object:()=>new af.Object(this)});Value=qu({binary:()=>new wN.Binary(this),dateOnly:()=>new wN.DateOnly(this),dateTime:()=>new wN.DateTime(this),uuid:()=>new wN.Uuid(this),stringEnum:t=>new wN.StringEnum(t,this)});Collection=qu({array:t=>new Sx.Array(t,this),listType:t=>new Sx.ListType(t,this),list:t=>new Sx.List(t,this),set:t=>new Sx.Set(t,this),map:(t,r,n)=>new Sx.Map(t,r,this,n),idictionary:(t,r,n)=>new Sx.IDictionary(t,r,this,n),keyValuePair:(t,r)=>new Sx.KeyValuePair(t,r,this)});format=qu({private:t=>`_${Oxn.camelCase(t)}`});initialize(){return this.initializers.implicitNamespaces}initializers=qu({implicitNamespaces:()=>{for(let t of this.namespaces.implicit)this.registry.addImplicitNamespace(t);return!0}});get System(){return this.extern.System}get NUnit(){return this.extern.NUnit}get OneOf(){return this.extern.OneOf}get Google(){return this.extern.Google}get Grpc(){return this.extern.Grpc}get WireMock(){return this.extern.WireMock}qualifyNamespace(t){let r=t.split(".")[0];return r&&this.registry.hasTypeNamespaceConflict(r)?`global::${t}`:t}};var yq=class{generation;constructor(t){this.generation=t}get csharp(){return this.generation.csharp}get settings(){return this.generation.settings}get constants(){return this.generation.constants}get namespaces(){return this.generation.namespaces}get names(){return this.generation.names}get model(){return this.generation.model}get format(){return this.generation.format}get registry(){return this.generation.registry}get Types(){return this.generation.Types}get System(){return this.generation.extern.System}get NUnit(){return this.generation.extern.NUnit}get OneOf(){return this.generation.extern.OneOf}get Google(){return this.generation.extern.Google}get Grpc(){return this.generation.extern.Grpc}get WireMock(){return this.generation.extern.WireMock}get Primitive(){return this.generation.Primitive}get Value(){return this.generation.Value}get Collection(){return this.generation.Collection}};St();var Vxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}convert(t){if(t.value===null)return this.context.isNullable(t.typeReference)?this.csharp.Literal.null():(this.context.errors.add({severity:vr.Critical,message:"Expected non-null value, but got null"}),this.csharp.Literal.nop());if(t.value===void 0&&!t.fallbackToDefault)return this.csharp.Literal.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value,fallbackToDefault:t.fallbackToDefault});case"literal":return this.convertLiteral({literal:t.typeReference.value,value:t.value});case"map":return this.convertMap({map:t.typeReference,value:t.value,fallbackToDefault:t.fallbackToDefault});case"named":{let r=this.context.resolveNamedType({typeId:t.typeReference.value});return r==null?this.csharp.Literal.nop():this.convertNamed({named:r,value:t.value,as:t.as,fallbackToDefault:t.fallbackToDefault})}case"nullable":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as});case"optional":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as});case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as,fallbackToDefault:t.fallbackToDefault});case"set":return this.convertSet({set:t.typeReference.value,value:t.value,fallbackToDefault:t.fallbackToDefault});case"unknown":return this.convertUnknown({value:t.value,fallbackToDefault:t.fallbackToDefault});default:Se(t.typeReference)}}convertList({list:t,value:r,fallbackToDefault:n}){return Array.isArray(r)?this.csharp.Literal.list({valueType:this.context.dynamicTypeMapper.convert({typeReference:t,unboxOptionals:!0}),values:r.map((i,o)=>{this.context.errors.scope({index:o});try{return this.convert({typeReference:t,value:i})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:vr.Critical,message:`Expected array but got: ${typeof r}`}),this.csharp.Literal.nop())}convertLiteral({literal:t,value:r,fallbackToDefault:n}){switch(t.type){case"boolean":{let i=this.context.getValueAsBoolean({value:r});return i==null?this.csharp.Literal.nop():this.csharp.Literal.boolean(i)}case"string":{let i=this.context.getValueAsString({value:r});return i==null?n?this.Primitive.string.getDeterminsticDefault(n):this.csharp.Literal.nop():this.csharp.Literal.string(i)}default:Se(t)}}convertSet({set:t,value:r,fallbackToDefault:n}){return Array.isArray(r)?this.csharp.Literal.set({valueType:this.context.dynamicTypeMapper.convert({typeReference:t,unboxOptionals:!0}),values:r.map((i,o)=>{this.context.errors.scope({index:o});try{return this.convert({typeReference:t,value:i})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:vr.Critical,message:`Expected array but got: ${typeof r}`}),this.csharp.Literal.nop())}convertMap({map:t,value:r,fallbackToDefault:n}){return typeof r!="object"||r==null?(this.context.errors.add({severity:vr.Critical,message:`Expected object but got: ${r==null?"null":typeof r}`}),this.csharp.Literal.nop()):this.csharp.Literal.dictionary({keyType:this.context.dynamicTypeMapper.convert({typeReference:t.key}),valueType:t.value.type==="unknown"?this.context.dynamicTypeMapper.convert({typeReference:t.value}).asOptional():this.context.dynamicTypeMapper.convert({typeReference:t.value}),entries:Object.entries(r).map(([i,o])=>{this.context.errors.scope(i);try{return{key:this.convert({typeReference:t.key,value:i,as:"key"}),value:this.convert({typeReference:t.value,value:o})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:r,as:n,fallbackToDefault:i}){switch(t.type){case"alias":return this.convert({typeReference:t.typeReference,value:r,as:n,fallbackToDefault:i});case"discriminatedUnion":return this.settings.shouldGeneratedDiscriminatedUnions?this.convertDiscriminatedUnion({discriminatedUnion:t,value:r,fallbackToDefault:i}):this.convertUnknown({value:r,fallbackToDefault:i});case"enum":return this.getEnumValue(t,r);case"object":return this.convertObject({object_:t,value:r,fallbackToDefault:i});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:r,fallbackToDefault:i});default:Se(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:r,fallbackToDefault:n}){let i=this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),o=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:r});if(o==null)return this.csharp.Literal.nop();let s=o.singleDiscriminatedUnionType,a=this.getBaseProperties({discriminatedUnionTypeInstance:o,singleDiscriminatedUnionType:s});switch(s.type){case"samePropertiesAsObject":{let u=this.context.resolveNamedType({typeId:s.typeId});return u==null?this.csharp.Literal.nop():this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.convertNamed({named:u,value:o.value})]})}case"singleProperty":{if(this.context.getRecord(o.value)==null)return this.csharp.Literal.nop();try{let c=["Value","Type"].includes(s.discriminantValue.name.pascalCase.safeName)?`${s.discriminantValue.name.pascalCase.safeName}Inner`:s.discriminantValue.name.pascalCase.safeName;return this.context.errors.scope(s.discriminantValue.wireValue),this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.csharp.instantiateClass({classReference:this.csharp.classReference({name:c,enclosingType:i}),arguments_:[this.convert({typeReference:s.typeReference,value:s.discriminantValue.wireValue})]})]})}finally{this.context.errors.unscope()}}case"noProperties":return this.instantiateUnionWithBaseProperties({classReference:i,baseProperties:a,arguments_:[this.csharp.instantiateClass({classReference:this.csharp.classReference({origin:o.discriminantValue,enclosingType:i}),arguments_:[]})]});default:Se(s)}}getBaseProperties({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:r}){return this.context.associateByWireValue({parameters:r.properties??[],values:this.context.getRecord(t.value)??{},ignoreMissingParameters:!0}).map(i=>{this.context.errors.scope(i.name.wireValue);try{return{name:this.context.getPropertyName(i.name.name),assignment:this.convert(i)}}finally{this.context.errors.unscope()}})}instantiateUnionWithBaseProperties({classReference:t,arguments_:r,baseProperties:n}){let i=this.csharp.instantiateClass({classReference:t,arguments_:r,multiline:!0});return n.length===0?this.csharp.Literal.reference(i):this.csharp.Literal.reference(this.csharp.codeblock(o=>{o.write(i," "),o.pushScope();for(let s of n)o.write(s.name," = ",s.assignment,",");o.popScope(!1)}))}getEnumValue(t,r){if(typeof r!="string")return this.context.errors.add({severity:vr.Critical,message:`Expected enum value string, got: ${typeof r}`}),this.csharp.Literal.nop();let n=t.values.find(s=>s.wireValue===r);if(n==null)return this.context.errors.add({severity:vr.Critical,message:`An enum value named "${r}" does not exist in this context`}),this.csharp.Literal.nop();let i=this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),o=i.registerField(this.model.getPropertyNameFor(n),n);return this.csharp.Literal.reference(this.csharp.enumInstantiation({reference:i,value:o}))}convertObject({object_:t,value:r,fallbackToDefault:n}){let i=this.context.associateByWireValue({parameters:t.properties,values:this.context.getRecord(r)??{}});return this.csharp.Literal.class_({reference:this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),fields:i.map(o=>{this.context.errors.scope(o.name.wireValue);try{return{name:this.context.getClassName(o.name.name),value:this.convert(o)}}finally{this.context.errors.unscope()}})})}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:r,fallbackToDefault:n}){let i=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:r});return i==null?this.csharp.Literal.nop():i.typeLiteral}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:r}){for(let n of t.types)try{let i=this.convert({typeReference:n,value:r});return{valueTypeReference:n,typeLiteral:i}}catch{continue}this.context.errors.add({severity:vr.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof r}" value`})}convertUnknown({value:t,fallbackToDefault:r}){return this.csharp.Literal.unknown(t)}convertPrimitive({primitive:t,value:r,as:n,fallbackToDefault:i}){switch(t){case"INTEGER":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.integer.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.integer(o)}case"LONG":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.long.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.long(o)}case"UINT":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.uint.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.uint(o)}case"UINT_64":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.ulong.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.ulong(o)}case"FLOAT":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.float.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.float(o)}case"DOUBLE":{let o=this.getValueAsNumber({value:r,as:n});return o==null?i?this.Primitive.double.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.double(o)}case"BOOLEAN":{let o=this.getValueAsBoolean({value:r,as:n});return o==null?i?this.Primitive.boolean.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.boolean(o)}case"STRING":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"DATE":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Value.dateOnly.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.date(o)}case"DATE_TIME":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Value.dateTime.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.datetime(o)}case"UUID":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"BASE_64":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}case"BIG_INTEGER":{let o=this.context.getValueAsString({value:r});return o==null?i?this.Primitive.string.getDeterminsticDefault(i):this.csharp.Literal.nop():this.csharp.Literal.string(o)}default:Se(t)}}getValueAsNumber({value:t,as:r}){let n=r==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:r}){let n=r==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:n})}};St();var qxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}convert(t){switch(t.typeReference.type){case"list":return this.Collection.list(this.convert({typeReference:t.typeReference.value,unboxOptionals:!0}));case"literal":return this.convertLiteral({literal:t.typeReference.value});case"map":return this.Collection.map(this.convert({typeReference:t.typeReference.key}),this.convert({typeReference:t.typeReference.value}));case"named":{let r=this.context.resolveNamedType({typeId:t.typeReference.value});return r==null?this.convertUnknown():this.convertNamed({named:r})}case"optional":case"nullable":{let r=this.convert({typeReference:t.typeReference.value});return t.unboxOptionals?r.asNonOptional():r.asOptional()}case"primitive":return this.convertPrimitive({primitive:t.typeReference.value});case"set":return this.Collection.set(this.convert({typeReference:t.typeReference.value,unboxOptionals:!0}));case"unknown":return this.convertUnknown();default:Se(t.typeReference)}}convertToClassReference(t){return this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)})}convertNamed({named:t}){switch(t.type){case"alias":return this.convert({typeReference:t.typeReference});case"enum":case"object":return this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)});case"discriminatedUnion":return this.settings.shouldGeneratedDiscriminatedUnions?this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}):this.Primitive.object;case"undiscriminatedUnion":return this.settings.shouldGenerateUndiscriminatedUnions?this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}):this.OneOf.OneOf(t.types.map(r=>this.convert({typeReference:r})));default:Se(t)}}convertLiteral({literal:t}){switch(t.type){case"boolean":return this.Primitive.boolean;case"string":return this.Primitive.string}}convertUnknown(){return this.Primitive.object}convertPrimitive({primitive:t}){switch(t){case"INTEGER":return this.Primitive.integer;case"UINT":return this.Primitive.uint;case"LONG":return this.Primitive.long;case"UINT_64":return this.Primitive.ulong;case"FLOAT":return this.Primitive.float;case"DOUBLE":return this.Primitive.double;case"BOOLEAN":return this.Primitive.boolean;case"STRING":return this.Primitive.string;case"DATE":return this.Value.dateOnly;case"DATE_TIME":return this.Value.dateTime;case"UUID":return this.Primitive.string;case"BASE_64":return this.Primitive.string;case"BIG_INTEGER":return this.Primitive.string;default:Se(t)}}};St();var Gxn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}getFilePropertyInfo({body:t,value:r}){let n={fileFields:[],bodyPropertyFields:[]},i=this.context.getRecord(r)??{};for(let o of t.properties)switch(o.type){case"file":ka.Record.missingKey(i,o.wireValue)&&(i[o.wireValue]="[bytes]"),n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getSingleFileProperty({property:o,record:i})});break;case"fileArray":ka.Record.missingKey(i,o.wireValue)&&(i[o.wireValue]=["[bytes]"]),n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getArrayFileProperty({property:o,record:i})});break;case"bodyProperty":if(ka.Record.missingKey(i,o.name.wireValue))switch(o.typeReference.type){case"optional":break;case"primitive":{switch(o.typeReference.value.toLowerCase()){case"integer":{i[o.name.wireValue]=123;break}case"string":{i[o.name.wireValue]="[string]";break}case"boolean":{i[o.name.wireValue]=!0;break}case"double":{i[o.name.wireValue]=123.456;break}case"float":{i[o.name.wireValue]=123.456;break}case"long":{i[o.name.wireValue]=123456789;break}case"uint":{i[o.name.wireValue]=123;break}case"uint64":{i[o.name.wireValue]=12345;break}case"date":{i[o.name.wireValue]=new Date(2021,1,1);break}case"datetime":{i[o.name.wireValue]=new Date(2021,1,1,12,0,0);break}case"uuid":{i[o.name.wireValue]="123e4567-e89b-12d3-a456-426614174000";break}case"base64":{i[o.name.wireValue]="SGVsbG8gd29ybGQh";break}case"biginteger":{i[o.name.wireValue]="12345678901234567890";break}}break}default:break}n.bodyPropertyFields.push({name:this.context.getPropertyName(o.name.name),value:this.getBodyProperty({property:o,record:i})});break;default:Se(o)}return n}getSingleFileProperty({property:t,record:r}){let n=this.context.getSingleFileValue({property:t,record:r});return n==null?this.csharp.Literal.nop():this.context.getFileParameterForString(n)}getArrayFileProperty({property:t,record:r}){let n=this.context.getFileArrayValues({property:t,record:r});return n==null?this.csharp.Literal.nop():this.csharp.Literal.list({valueType:this.Types.FileParameter,values:n.map(i=>this.context.getFileParameterForString(i))})}getBodyProperty({property:t,record:r}){let n=r[t.name.wireValue];return n==null?this.csharp.Literal.nop():this.context.dynamicLiteralMapper.convert({typeReference:t.typeReference,value:n})}};var Wxn=class e extends RE{ir;dynamicTypeMapper;dynamicLiteralMapper;filePropertyMapper;generation;get namespaces(){return this.generation.namespaces}get registry(){return this.generation.registry}get settings(){return this.generation.settings}get constants(){return this.generation.constants}get names(){return this.generation.names}get model(){return this.generation.model}get format(){return this.generation.format}get csharp(){return this.generation.csharp}get Types(){return this.generation.Types}get System(){return this.generation.extern.System}get NUnit(){return this.generation.extern.NUnit}get OneOf(){return this.generation.extern.OneOf}get Google(){return this.generation.extern.Google}get WireMock(){return this.generation.extern.WireMock}get Primitive(){return this.generation.Primitive}get Value(){return this.generation.Value}get Collection(){return this.generation.Collection}constructor({ir:t,config:r,options:n,generation:i}){super({ir:t,config:r,options:n}),this.ir=t,this.generation=i??new kPt(t,r.workspaceName,r.customConfig!=null?r.customConfig:{},r),this.dynamicTypeMapper=new qxn({context:this}),this.dynamicLiteralMapper=new Vxn({context:this}),this.filePropertyMapper=new Gxn({context:this})}clone(){return new e({ir:this.ir,config:this.config,options:this.options,generation:this.generation})}getFileParameterForString(t){return this.csharp.Literal.reference(this.csharp.instantiateClass({classReference:this.Types.FileParameter,arguments_:[],properties:[{name:"Stream",value:this.getMemoryStreamForString(t)}],multiline:!0}))}getMemoryStreamForString(t){return this.System.IO.MemoryStream.new({arguments_:[this.csharp.invokeMethod({on:this.System.Text.Encoding_UTF8,method:"GetBytes",arguments_:[this.csharp.Literal.string(t)]})]})}getClassName(t){return t.pascalCase.safeName}getParameterName(t){return t.camelCase.safeName}getPropertyName(t){return t.pascalCase.safeName}getMethodName(t){return`${t.pascalCase.safeName}Async`}getNamespace(t,r){let n=this.getNamespaceSegments(t);return n=r!=null?[...n,r]:n,[this.namespaces.root,...n].join(".")}getEnvironmentTypeReferenceFromID(t){let r=this.resolveEnvironmentName(t);if(r!=null)return this.getEnvironmentClassReferenceForEnumName(r)}getEnvironmentClassReferenceForEnumName(t){return this.csharp.classReference({name:`${this.generation.Types.Environments.name}.${this.getClassName(t)}`,namespace:this.namespaces.root})}getNamespaceSegments(t){return(this.settings.explicitNamespaces?t.allParts:t.packagePath).map(n=>n.pascalCase.safeName)}precalculate(t){this.generation.initialize(),this.System.Collections.Generic.KeyValuePair(),this.System.Collections.Generic.IEnumerable(),this.System.Collections.Generic.IAsyncEnumerable(),this.System.Collections.Generic.HashSet(),this.System.Collections.Generic.List(),this.System.Collections.Generic.Dictionary(),this.System.Threading.Tasks.Task(),Object.entries(this.ir.types).sort((r,n)=>r[0].length-n[0].length).forEach(([r,n])=>{this.dynamicTypeMapper.convertToClassReference(n)});for(let[r,n]of t.entries())if(this.csharp.classReference({origin:this.model.staticExplicit(`Example${r}`),namespace:"Usage"}),n.endpoint){let i=this.resolveEndpointLocation(n.endpoint);for(let o of i)switch(o.request.type){case"inlined":this.csharp.classReference({origin:o.request.declaration.name,namespace:this.getNamespace(o.request.declaration.fernFilepath)});break;case"body":break}}this.generation.Types.ClientOptions,this.generation.Types.RootClient,this.csharp.freezeClassReferences()}};St();Ci();var $xn=class extends yq{context;constructor({context:t}){super(t.generation),this.context=t}async generateSnippet({endpoint:t,request:r,options:n}){return this.buildCodeBlock({endpoint:t,snippet:r,options:n}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}generateSnippetSync({endpoint:t,request:r,options:n}){return this.buildCodeBlock({endpoint:t,snippet:r,options:n}).toString({namespace:"Usage",generation:this.generation,allNamespaceSegments:new Set,allTypeClassReferences:new Map})}async generateSnippetAst({endpoint:t,request:r,options:n}){throw new Error("Unsupported")}buildCodeBlock({endpoint:t,snippet:r,options:n}){if(t.examples&&!t.examples?.find(s=>ka.DynamicIR.EndpointExample(r)&&s.id===r.id))throw new Error("Endpoint does not have an example that matches the snippet");let i=this.csharp.codeblock(s=>{s.writeNodeStatement(this.constructClient({endpoint:t,snippet:r})),s.newLine(),s.writeNodeStatement(this.callMethod({endpoint:t,snippet:r}))}),o=this.getStyle(n);switch(o){case YI.Concise:return i;case YI.Full:return this.buildFullCodeBlock({body:i,options:n});default:Se(o)}}buildFullCodeBlock({body:t,options:r}){let n=this.getConfig(r),i=this.csharp.class_({name:n.fullStyleClassName??"Example",namespace:"Usage",access:$it.Access.Public});return i.addNamespaceReference(this.Types.RootClient.namespace),i.addMethod({name:"Do",access:$it.Access.Public,isAsync:!0,parameters:[],body:t}),i}constructClient({endpoint:t,snippet:r}){return this.csharp.codeblock(n=>{n.write("var client = "),n.writeNode(this.getRootClientConstructorInvocation(this.getConstructorArgs({endpoint:t,snippet:r})))})}callMethod({endpoint:t,snippet:r}){let n=t.response?.type==="streaming"||t.response?.type==="streamParameter",i=this.csharp.invokeMethod({on:this.csharp.codeblock("client"),method:this.getMethod({endpoint:t}),arguments_:this.getMethodArgs({endpoint:t,snippet:r}),async:!0,configureAwait:!0,multiline:!0,isAsyncEnumerable:n});return n?this.csharp.codeblock(o=>{o.write("await foreach (var item in "),o.writeNode(i),o.writeLine(")"),o.pushScope(),o.writeLine("/* consume each item */"),o.popScope()}):i}getConstructorArgs({endpoint:t,snippet:r}){let n=[];t.auth!=null&&(r.auth!=null?n.push(...this.getConstructorAuthArgs({auth:t.auth,values:r.auth})):this.context.errors.add({severity:vr.Warning,message:`Auth with ${t.auth.type} configuration is required for this endpoint`}));let i=[],o=this.getConstructorBaseUrlArgs({baseUrl:r.baseURL,environment:r.environment});o.length>0&&i.push(...o),this.context.errors.scope(Fo.Headers);let s=[];if(this.context.ir.headers!=null&&r.headers!=null&&s.push(...this.getConstructorHeaderArgs({headers:this.context.ir.headers,values:r.headers})),this.context.errors.unscope(),this.settings.unifiedClientOptions){let a=[...n.map(u=>({name:Xu(u.name),assignment:u.assignment})),...s.map(u=>({name:Xu(u.name),assignment:u.assignment})),...i.map(u=>({name:u.name,assignment:u.assignment}))];return a.length===0?[]:[{name:"clientOptions",assignment:this.csharp.instantiateClass({classReference:this.Types.ClientOptions,arguments_:a,multiline:!0})}]}return i.length===0?[...n,...s]:[...n,...s,{name:"clientOptions",assignment:this.csharp.instantiateClass({classReference:this.Types.ClientOptions,arguments_:i.map(a=>({name:a.name,assignment:a.assignment})),multiline:!0})}]}getConstructorBaseUrlArgs({baseUrl:t,environment:r}){let n=this.getBaseUrlArg({baseUrl:t,environment:r});return ka.Literal.nop(n)?[]:[{name:this.getBaseUrlOptionName(),assignment:n}]}getBaseUrlArg({baseUrl:t,environment:r}){if(t!=null&&r!=null)return this.context.errors.add({severity:vr.Critical,message:"Cannot specify both baseUrl and environment options"}),this.csharp.Literal.nop();if(t!=null)return this.context.ir.environments?.environments.type==="multipleBaseUrls"?(this.context.errors.add({severity:vr.Critical,message:"The C# SDK doesn't support a baseUrl when multiple URL environments are configured"}),this.csharp.Literal.nop()):this.csharp.Literal.string(t);if(r!=null){if(this.context.isSingleEnvironmentID(r)){let n=this.context.getEnvironmentTypeReferenceFromID(r);return n==null?(this.context.errors.add({severity:vr.Warning,message:`Environment ${JSON.stringify(r)} was not found`}),this.csharp.Literal.nop()):this.csharp.Literal.reference(n)}if(this.context.isMultiEnvironmentValues(r))return this.context.validateMultiEnvironmentUrlValues(r)?this.csharp.Literal.reference(this.csharp.instantiateClass({classReference:this.Types.Environments,arguments_:Object.entries(r).map(([n,i])=>({name:Xu(Un(n)),assignment:this.context.dynamicLiteralMapper.convert({typeReference:{type:"primitive",value:"STRING"},value:i})})),multiline:!0})):this.csharp.Literal.nop()}return this.csharp.Literal.nop()}getConstructorAuthArgs({auth:t,values:r}){if(r.type!==t.type)return this.addError(this.context.newAuthMismatchError({auth:t,values:r}).message),[];switch(t.type){case"basic":return r.type==="basic"?this.getConstructorBasicAuthArg({auth:t,values:r}):[];case"bearer":return r.type==="bearer"?this.getConstructorBearerAuthArgs({auth:t,values:r}):[];case"header":return r.type==="header"?this.getConstructorHeaderAuthArgs({auth:t,values:r}):[];case"oauth":return r.type==="oauth"?this.getConstructorOAuthArgs({auth:t,values:r}):[];case"inferred":return r.type==="inferred"?this.getConstructorInferredAuthArgs({auth:t,values:r}):[];default:Se(t)}}addError(t){this.context.errors.add({severity:vr.Critical,message:t})}addWarning(t){this.context.errors.add({severity:vr.Warning,message:t})}getConstructorBasicAuthArg({auth:t,values:r}){return[{name:this.context.getParameterName(t.username),assignment:this.csharp.Literal.string(r.username)},{name:this.context.getParameterName(t.password),assignment:this.csharp.Literal.string(r.password)}]}getConstructorBearerAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.token),assignment:this.csharp.Literal.string(r.token)}]}getConstructorHeaderAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.header.name.name),assignment:this.context.dynamicLiteralMapper.convert({typeReference:t.header.typeReference,value:r.value,fallbackToDefault:t.header.name.wireValue})}]}getConstructorOAuthArgs({auth:t,values:r}){return[{name:this.context.getParameterName(t.clientId),assignment:this.csharp.Literal.string(r.clientId)},{name:this.context.getParameterName(t.clientSecret),assignment:this.csharp.Literal.string(r.clientSecret)}]}getConstructorInferredAuthArgs({auth:t,values:r}){let n=[];if(t.parameters!=null)for(let i of t.parameters){let o=i.name.wireValue,s=r.values?.[o];n.push({name:this.context.getParameterName(i.name.name),assignment:this.context.dynamicLiteralMapper.convert({typeReference:i.typeReference,value:s,fallbackToDefault:o})})}else this.context.errors.add({severity:vr.Critical,message:"Inferred auth parameters are not defined in the IR. Please ensure you're using IR version 62.3.0 or later."});return n}getConstructorHeaderArgs({headers:t,values:r}){let n=[];for(let i of t){let o=r[i.name.wireValue],s=this.getConstructorHeaderArg({header:i,value:o});s!=null&&n.push({name:this.context.getParameterName(i.name.name),assignment:s})}return n}getConstructorHeaderArg({header:t,value:r}){let n=this.context.dynamicLiteralMapper.convert({typeReference:t.typeReference,value:r,fallbackToDefault:t.name.wireValue});if(!ka.Literal.nop(n))return n}getMethodArgs({endpoint:t,snippet:r}){switch(t.request.type){case"inlined":return this.getMethodArgsForInlinedRequest({request:t.request,snippet:r});case"body":return this.getMethodArgsForBodyRequest({request:t.request,snippet:r});default:Se(t.request)}}getMethodArgsForInlinedRequest({request:t,snippet:r}){let n=[];this.context.errors.scope(Fo.PathParameters);let i=[],o=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];o.length>0&&i.push(...this.getPathParameters({namedParameters:o,snippet:r})),this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody);let s=this.getFilePropertyInfo({request:t,snippet:r});return this.context.errors.unscope(),this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:this.settings.shouldInlinePathParameters})||n.push(...i.map(a=>a.value)),n.push(this.getInlinedRequestArg({request:t,snippet:r,pathParameterFields:this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:this.settings.shouldInlinePathParameters})?i:[],filePropertyInfo:s})),n}getFilePropertyInfo({request:t,snippet:r}){return t.body==null||!this.context.isFileUploadRequestBody(t.body)?{fileFields:[],bodyPropertyFields:[]}:this.context.filePropertyMapper.getFilePropertyInfo({body:t.body,value:r.requestBody})}getInlinedRequestArg({request:t,snippet:r,pathParameterFields:n,filePropertyInfo:i}){this.context.errors.scope(Fo.QueryParameters);let s=this.context.associateQueryParametersByWireValue({parameters:t.queryParameters??[],values:r.queryParameters??{}}).map(l=>({name:this.context.getPropertyName(l.name.name),value:this.context.dynamicLiteralMapper.convert(l)}));this.context.errors.unscope(),this.context.errors.scope(Fo.Headers);let u=this.context.associateByWireValue({parameters:t.headers??[],values:r.headers??{}}).map(l=>({name:this.context.getPropertyName(l.name.name),value:this.context.dynamicLiteralMapper.convert({...l,fallbackToDefault:l.name.wireValue})}));this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody);let c=t.body!=null?this.getInlinedRequestBodyConstructorFields({body:t.body,value:r.requestBody,filePropertyInfo:i}):[];return this.context.errors.unscope(),this.csharp.Literal.class_({reference:this.csharp.classReference({origin:t.declaration,namespace:this.context.getNamespace(t.declaration.fernFilepath)}),fields:[...n,...s,...u,...c]})}getInlinedRequestBodyConstructorFields({body:t,value:r,filePropertyInfo:n}){switch(t.type){case"properties":return this.getInlinedRequestBodyPropertyConstructorFields({parameters:t.value,value:r});case"referenced":return[this.getReferencedRequestBodyPropertyConstructorField({body:t,value:r})];case"fileUpload":return this.getFileUploadRequestBodyConstructorFields({filePropertyInfo:n});default:Se(t)}}getInlinedRequestBodyPropertyConstructorFields({parameters:t,value:r}){let n=[],i=this.context.associateByWireValue({parameters:t,values:this.context.getRecord(r)??{}});for(let o of i)n.push({name:this.context.getPropertyName(o.name.name),value:this.context.dynamicLiteralMapper.convert({...o,fallbackToDefault:o.name.wireValue})});return n}getFileUploadRequestBodyConstructorFields({filePropertyInfo:t}){return[...t.fileFields,...t.bodyPropertyFields]}getReferencedRequestBodyPropertyConstructorField({body:t,value:r}){return{name:this.context.getPropertyName(t.bodyKey),value:this.getReferencedRequestBodyPropertyLiteral({body:t.bodyType,value:r})}}getReferencedRequestBodyPropertyLiteral({body:t,value:r}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:r});case"typeReference":return this.context.dynamicLiteralMapper.convert({typeReference:t.value,value:r,fallbackToDefault:JSON.stringify(t.value)});default:Se(t)}}getMethodArgsForBodyRequest({request:t,snippet:r}){let n=[];this.context.errors.scope(Fo.PathParameters);let i=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];return i.length>0&&n.push(...this.getPathParameters({namedParameters:i,snippet:r}).map(o=>o.value)),this.context.errors.unscope(),this.context.errors.scope(Fo.RequestBody),t.body!=null&&n.push(this.getBodyRequestArg({body:t.body,value:r.requestBody})),this.context.errors.unscope(),n}getBodyRequestArg({body:t,value:r}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:r});case"typeReference":return t.value.type==="optional"&&r==null?this.csharp.Literal.null():this.context.dynamicLiteralMapper.convert({typeReference:t.value,value:r,fallbackToDefault:JSON.stringify(t.value)});default:Se(t)}}getBytesBodyRequestArg({value:t}){let r=this.context.getValueAsString({value:t});return r==null&&(this.context.errors.add({severity:vr.Critical,message:"The bytes request body must be provided in string format"}),r="[bytes]"),this.csharp.Literal.reference(this.context.getMemoryStreamForString(r))}getRootClientConstructorInvocation(t){return this.csharp.instantiateClass({classReference:this.Types.RootClient,arguments_:t,forceUseConstructor:!0,multiline:!0})}getPathParameters({namedParameters:t,snippet:r}){let n=[],i=this.context.associateByWireValueOrDefault({parameters:t,values:r.pathParameters??{}});for(let o of i)n.push({name:this.context.getPropertyName(o.name.name),value:this.context.dynamicLiteralMapper.convert({...o,fallbackToDefault:o.name.wireValue})});return n}getMethod({endpoint:t}){return t.declaration.fernFilepath.allParts.length>0?`${t.declaration.fernFilepath.allParts.map(r=>this.context.getClassName(r)).join(".")}.${this.context.getMethodName(t.declaration.name)}`:this.context.getMethodName(t.declaration.name)}getBaseUrlOptionName(){return this.context.ir.environments?.environments.type==="multipleBaseUrls"?"Environment":"BaseUrl"}getStyle(t){return t.style??this.context.options.style??YI.Full}getConfig(t){return t.config??this.context.options.config??{}}};var QPt=class extends DE{constructor({ir:t,config:r,options:n={}}){super(new Wxn({ir:t,config:r,options:n}))}precalculate(t){this.context.precalculate(t)}async generate(t,r={}){return super.generate(t,r)}generateSync(t,r={}){return super.generateSync(t,r)}async generateSnippetAst(t){return super.generateSnippetAst(t)}createSnippetGenerator(t){return new $xn({context:t})}};qt();var Kit=require("fs/promises"),rgu=xe(require("path"),1);function Px(e){let t=e.endpoint.method;if(t!=="HEAD")return{...e,baseURL:e.baseUrl,endpoint:{...e.endpoint,method:t},auth:pCd(e.auth)}}function pCd(e){if(e!=null)return e}function tgu(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,fCd(r)]).filter(([t,r])=>r!=null))}function fCd(e){let t=e.location.method;if(t!=="HEAD")return{...e,location:{...e.location,method:t},examples:e.examples!=null?dCd(e.examples):void 0,auth:gCd(e.auth)}}function dCd(e){return e.map(t=>mCd(t)).filter(t=>t!=null)}function mCd(e){let t=e.endpoint.method;if(t!=="HEAD")return{...e,baseURL:e.baseUrl,endpoint:{...e.endpoint,method:t},auth:hCd(e.auth)}}function hCd(e){if(e!=null)return e}function gCd(e){if(e!=null)return e}function Tx(e){return{...e,endpoints:tgu(e.endpoints)}}var ACd=`
|
|
2460
2460
|
<Project Sdk="Microsoft.NET.Sdk">
|
|
2461
2461
|
<PropertyGroup>
|
|
2462
2462
|
<TargetFramework>net8.0</TargetFramework>
|
|
@@ -3603,7 +3603,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
3603
3603
|
Run ${be.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
3604
3604
|
Run ${be.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),tGe(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function C0o({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!qzu(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,u)=>a.generatorName.localeCompare(u.generatorName)||a.currentVersion.localeCompare(u.currentVersion));for(let a of s)i+=`
|
|
3605
3605
|
${await zPm(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+be.dim(a.currentVersion)+be.reset(" \u2192 ")+be.green(a.latestVersion);return i+=`
|
|
3606
|
-
`,n?tGe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function zPm(e){let r=await new Vzu.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new Error(`Generator ${e} not found`);return r.body.displayName}async function VPm({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=bBe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VS({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=bBe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await VS({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await xQ({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?fC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function $zu(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let u=rF(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function Q2n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await VPm({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...$zu(c,u,t.logger));else s.push(...$zu(a.versions,void 0,t.logger))}return s}async function dce({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:Ndt(e.packageName,{version:t?"prerelease":"latest"})}var Hzu=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],N2n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new k2n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new EOe(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"4.37.
|
|
3606
|
+
`,n?tGe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function zPm(e){let r=await new Vzu.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new Error(`Generator ${e} not found`);return r.body.displayName}async function VPm({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=bBe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VS({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=bBe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await VS({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function Wzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await xQ({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?fC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function $zu(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let u=rF(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function Q2n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await VPm({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...$zu(c,u,t.logger));else s.push(...$zu(a.versions,void 0,t.logger))}return s}async function dce({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:Ndt(e.packageName,{version:t?"prerelease":"latest"})}var Hzu=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],N2n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new k2n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new EOe(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"4.37.11"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${be.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new fm}failWithoutThrowing(t,r){this.didSucceed=!1,_Et({message:t,error:r,logger:this.logger})}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
|
|
3607
3607
|
`),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await eGe()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await Gzu({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
3608
3608
|
`)||(r+=`
|
|
3609
3609
|
`),this.stderr.info(r))}catch{}}async exitIfFailed(){this.didSucceed||await this.exit()}exitProgram({code:t}={}){process.exit(t??(this.didSucceed?0:1))}longestWorkspaceName;registerWorkspaces(t){let r=hUn(t.map(n=>n.type==="docs"?"docs":n.workspaceName??"api"),n=>n.length);r!=null&&(this.longestWorkspaceName=r)}project;registerProject(t){this.project=t}runTask(t){return this.runTaskWithInit(this.constructTaskInit(),t)}addTask(){return this.addTaskWithInit(this.constructTaskInit())}async runTaskForWorkspace(t,r){await this.runTaskWithInit(this.constructTaskInitForWorkspace(t),r)}addTaskWithInit(t){let r=new ckt(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw o.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,o),new fm}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await eGe()).sendEvent(t)}logger=fP((t,...r)=>this.log(t,...r));stderr=fP((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=Kzu(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?Kzu(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=Hzu[this.numTasks++%Hzu.length],s=be.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Tp.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:async t=>{await this.instrumentPostHogEvent(t)},shouldBufferLogs:!1}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>S_.indexOf(i.level)>=S_.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===qn.Debug,stderr:r||this.jsonMode})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await dce({cliEnvironment:this.environment,includePreReleases:t}),n=rF(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await Q2n({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await I0o({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:be.yellow("?"),style:{answer:i=>be.cyan(i),message:i=>be.bold(i),highlight:i=>be.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
|