fern-api 0.45.0-rc51 → 0.45.0-rc52

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.
Files changed (2) hide show
  1. package/cli.cjs +3 -3
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1785,7 +1785,7 @@ ${l.indent}`:""}${yVc(o)}:${f.indent?" ":""}`;return u=!1,c=!0,f.objectItem=void
1785
1785
  `}),r.replaceAll(/\n$/g,"")}function Xfj(e){return e?qc.green(MNr.radioOn):MNr.radioOff}var yha=Jo(pwe(),1);function Zsf(e,t){return e=String(e),t=typeof t=="string"?t:"*",e.length===0?"":Array.from({length:e.length+1}).join(t)}var Mpi=class extends p8{_run(t){this.done=t;let r=uW(this.rl),n=r.line.pipe((0,yha.map)(this.filterInput.bind(this))),i=this.handleSubmitEvents(n);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),r.keypress.pipe((0,yha.takeUntil)(i.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(t){let r=this.getQuestion(),n="";r+=this.status==="answered"?this.getMaskedValue(this.answer):this.getMaskedValue(this.rl.line||""),t&&(n=`
1786
1786
  `+qc.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?qc.cyan(Zsf(t,this.opt.mask)):qc.italic.dim("[hidden]"):this.opt.mask?Zsf(t,this.opt.mask):qc.italic.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 wlf=Jo(jlf(),1),Dlf=Jo(pwe(),1);var Rpi=class extends p8{_run(t){this.done=t,this.editorResult=new Dlf.Subject;let r=uW(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"?qc.dim("Received"):qc.dim("Press <enter> to launch your preferred editor."),t&&(r=qc.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),(0,wlf.editAsync)(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 Clf=Jo(Alf(),1);var xlf=Jo(require("readline"),1),qlf=Jo(Tlf(),1),vkr=class{constructor(t){this.rl||=xlf.default.createInterface(Udj(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 Udj(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 qlf.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var Lpi=class extends vkr{constructor(t={}){super(t),this.log=(0,Clf.default)(this.writeLog.bind(this)),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return Opi(this.rl,this.bottomBar.split(`
1787
1787
  `).length),this}updateBottomBar(t){return Opi(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+`
1788
- `}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&&dha(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Wlf=Jo(zlf(),1),Hlf=Jo(huu(),1),Jlf=Jo(Ulf(),1),Qx=Jo(pwe(),1),Qlf=Jo(Mdi(),1);var zha=Jo(pwe(),1),Vlf=Jo(Mdi(),1),Nha=function(e,t,r){return typeof e[t]!="function"?(0,zha.of)(e):(0,zha.from)((0,Vlf.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Upi={isPlainObject:Wlf.default,set:Jlf.default,get:Hlf.default},EBn=class extends vkr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=Upi.isPlainObject(r)?{...r}:{},Upi.isPlainObject(t)&&(t=Object.values(t).every(i=>Upi.isPlainObject(i)&&i.name===void 0)?Object.entries(t).map(([i,a])=>({name:i,...a})):[t]);let n=Array.isArray(t)?(0,Qx.from)(t):t;return this.process=n.pipe((0,Qx.concatMap)(this.processQuestion.bind(this)),(0,Qx.publish)()),this.process.connect(),this.process.pipe((0,Qx.reduce)((i,a)=>(Upi.set(i,a.name,a.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,Qx.defer)(()=>(0,Qx.of)(t).pipe((0,Qx.concatMap)(this.setDefaultType.bind(this)),(0,Qx.concatMap)(this.filterIfRunnable.bind(this)),(0,Qx.concatMap)(()=>Nha(t,"message",this.answers)),(0,Qx.concatMap)(()=>Nha(t,"default",this.answers)),(0,Qx.concatMap)(()=>Nha(t,"choices",this.answers)),(0,Qx.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Qx.defer)(()=>(0,Qx.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Qx.defer)(()=>(0,Qx.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Upi.get(this.answers,t.name)!==void 0)return(0,Qx.empty)();if(t.when===!1)return(0,Qx.empty)();if(typeof t.when!="function")return(0,Qx.of)(t);let{answers:r}=this;return(0,Qx.defer)(()=>(0,Qx.from)((0,Qlf.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Qx.filter)(n=>n!=null)))}};function Glf(e){let t=function(r,n){let i;try{i=new EBn(t.prompts,e)}catch(u){return Promise.reject(u)}let a=i.run(r,n);return a.ui=i,a};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",jpi),this.registerPrompt("input",ckr),this.registerPrompt("number",wpi),this.registerPrompt("confirm",Dpi),this.registerPrompt("rawlist",Spi),this.registerPrompt("expand",Epi),this.registerPrompt("checkbox",Api),this.registerPrompt("password",Mpi),this.registerPrompt("editor",Rpi)},t.restoreDefaultPrompts(),t}var dcu=Glf();function apj(e,t){dcu.registerPrompt(e,t)}function opj(){dcu.restoreDefaultPrompts()}var upj={prompt:dcu,ui:{BottomBar:Lpi,Prompt:EBn},createPromptModule:Glf,registerPrompt:apj,restoreDefaultPrompts:opj,Separator:_ne},Fha=upj;var ndf=Jo($lf()),xhj="4.2.1",r2t;(function(e){e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",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"})(r2t||(r2t={}));function qhj(e,t){if(!e)throw new Error(t)}function Chj(e){return e?.replace(/\/+$/,"")}async function Bhj(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 Ihj(){return new Date().getTime()}function Kff(){return new Date().toISOString()}function idf(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Zpi=String.fromCharCode,Yff="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Xha={};function zhj(e,t){if(!Xha[e]){Xha[e]={};for(let r=0;r<e.length;r++)Xha[e][e.charAt(r)]=r}return Xha[e][t]}var kpi={compressToBase64:function(e){if(e==null)return"";let t=kpi._compress(e,6,function(r){return Yff.charAt(r)});switch(t.length%4){default:case 0:return t;case 1:return t+"===";case 2:return t+"==";case 3:return t+"="}},decompressFromBase64:function(e){return e==null?"":e==""?null:kpi._decompress(e.length,32,function(t){return zhj(Yff,e.charAt(t))})},compress:function(e){return kpi._compress(e,16,function(t){return Zpi(t)})},_compress:function(e,t,r){if(e==null)return"";let n={},i={},a=[],u,f,d="",c="",o="",l=2,m=3,O=2,j=0,A=0,T;for(T=0;T<e.length;T+=1)if(d=e.charAt(T),Object.prototype.hasOwnProperty.call(n,d)||(n[d]=m++,i[d]=!0),c=o+d,Object.prototype.hasOwnProperty.call(n,c))o=c;else{if(Object.prototype.hasOwnProperty.call(i,o)){if(o.charCodeAt(0)<256){for(u=0;u<O;u++)j=j<<1,A==t-1?(A=0,a.push(r(j)),j=0):A++;for(f=o.charCodeAt(0),u=0;u<8;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}else{for(f=1,u=0;u<O;u++)j=j<<1|f,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=0;for(f=o.charCodeAt(0),u=0;u<16;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}l--,l==0&&(l=Math.pow(2,O),O++),delete i[o]}else for(f=n[o],u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;l--,l==0&&(l=Math.pow(2,O),O++),n[c]=m++,o=String(d)}if(o!==""){if(Object.prototype.hasOwnProperty.call(i,o)){if(o.charCodeAt(0)<256){for(u=0;u<O;u++)j=j<<1,A==t-1?(A=0,a.push(r(j)),j=0):A++;for(f=o.charCodeAt(0),u=0;u<8;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}else{for(f=1,u=0;u<O;u++)j=j<<1|f,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=0;for(f=o.charCodeAt(0),u=0;u<16;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}l--,l==0&&(l=Math.pow(2,O),O++),delete i[o]}else for(f=n[o],u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;l--,l==0&&(l=Math.pow(2,O),O++)}for(f=2,u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;for(;;)if(j=j<<1,A==t-1){a.push(r(j));break}else A++;return a.join("")},decompress:function(e){return e==null?"":e==""?null:kpi._decompress(e.length,32768,function(t){return e.charCodeAt(t)})},_decompress:function(e,t,r){let n=[],i=[],a={val:r(0),position:t,index:1},u=4,f=4,d=3,c="",o,l,m,O,j,A,T;for(o=0;o<3;o+=1)n[o]=o;for(m=0,j=Math.pow(2,2),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;switch(m){case 0:for(m=0,j=Math.pow(2,8),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;T=Zpi(m);break;case 1:for(m=0,j=Math.pow(2,16),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;T=Zpi(m);break;case 2:return""}for(n[3]=T,l=T,i.push(T);;){if(a.index>e)return"";for(m=0,j=Math.pow(2,d),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;switch(T=m){case 0:for(m=0,j=Math.pow(2,8),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;n[f++]=Zpi(m),T=f-1,u--;break;case 1:for(m=0,j=Math.pow(2,16),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;n[f++]=Zpi(m),T=f-1,u--;break;case 2:return i.join("")}if(u==0&&(u=Math.pow(2,d),d++),n[T])c=n[T];else if(T===f)c=l+l.charAt(0);else return null;i.push(c),n[f++]=l+c.charAt(0),u--,l=c,u==0&&(u=Math.pow(2,d),d++)}}},kcu=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)}};var Zha="0123456789abcdef",kha=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length!==16)throw new TypeError("not 128-bit length");return new e(t)}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 a=new Uint8Array(16);return a[0]=t/2**40,a[1]=t/2**32,a[2]=t/2**24,a[3]=t/2**16,a[4]=t/2**8,a[5]=t,a[6]=112|r>>>8,a[7]=r,a[8]=128|n>>>24,a[9]=n>>>16,a[10]=n>>>8,a[11]=n,a[12]=i>>>24,a[13]=i>>>16,a[14]=i>>>8,a[15]=i,new e(a)}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}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let a=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=a>>>24,n[i+1]=a>>>16,n[i+2]=a>>>8,n[i+3]=a}return new e(n)}else throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Zha.charAt(this.bytes[r]>>>4),t+=Zha.charAt(this.bytes[r]&15),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Zha.charAt(this.bytes[r]>>>4),t+=Zha.charAt(this.bytes[r]&15);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}},elu=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??Nhj()}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)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return kha.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}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,kha.ofInner(t)}},Nhj=()=>({nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}),Xff,Zff=()=>Fhj().toString(),Fhj=()=>(Xff||(Xff=new elu)).generate(),eya=class extends Error{constructor(t){super("HTTP error while fetching PostHog: "+t.status),this.response=t,this.name="PostHogFetchHttpError"}},e_i=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};function kff(e){return typeof e=="object"&&(e instanceof eya||e instanceof e_i)}var tlu=class{constructor(t,r){this.flushPromise=null,this.disableGeoip=!0,this.historicalMigration=!1,this.disabled=!1,this.defaultOptIn=!0,this.pendingPromises={},this._events=new kcu,this._isInitialized=!1,qhj(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Chj(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.captureMode=r?.captureMode||"json",this.defaultOptIn=r?.defaultOptIn??!0,this._retryOptions={retryCount:r?.fetchRetryCount??3,retryDelay:r?.fetchRetryDelay??3e3,retryCheck:kff},this.requestTimeout=r?.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r?.featureFlagsRequestTimeoutMs??3e3,this.disableGeoip=r?.disableGeoip??!0,this.disabled=r?.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled){this.logMsgIfDebug(()=>console.warn("[PostHog] The client is disabled"));return}if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(r2t.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(r2t.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(r2t.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>console.log("PostHog Debug",n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){let r=Zff();return this.pendingPromises[r]=t,t.catch(()=>{}).finally(()=>{delete this.pendingPromises[r]}),t}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}captureStateless(t,r,n,i){this.wrap(()=>{let a=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",a,i)})}aliasStateless(t,r,n,i){this.wrap(()=>{let a=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",a,i)})}groupIdentifyStateless(t,r,n,i,a,u){this.wrap(()=>{let f=this.buildPayload({distinct_id:a||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...u||{}}});this.enqueue("capture",f,i)})}async getDecide(t,r={},n={},i={},a={}){await this._initPromise;let u=`${this.host}/decide/?v=3`,f={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify({token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...a})};return this.fetchWithRetry(u,f,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(d=>d.json()).catch(d=>{this._events.emit("error",d)})}async getFeatureFlagStateless(t,r,n={},i={},a={},u){await this._initPromise;let f=await this.getFeatureFlagsStateless(r,n,i,a,u);if(!f)return;let d=f[t];return d===void 0&&(d=!1),d}async getFeatureFlagPayloadStateless(t,r,n={},i={},a={},u){await this._initPromise;let f=await this.getFeatureFlagPayloadsStateless(r,n,i,a,u);if(!f)return;let d=f[t];return d===void 0?null:d}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,a)).payloads}_parsePayload(t){try{return JSON.parse(t)}catch{return t}}async getFeatureFlagsStateless(t,r={},n={},i={},a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,a)).flags}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},a){await this._initPromise;let u={};(a??this.disableGeoip)&&(u.geoip_disable=!0);let f=await this.getDecide(t,r,n,i,u),d=f?.featureFlags,c=f?.featureFlagPayloads,o=c;return c&&(o=Object.fromEntries(Object.entries(c).map(([l,m])=>[l,this._parsePayload(m)]))),{flags:d,payloads:o}}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut){this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");return}let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:Kff(),uuid:n?.uuid?n.uuid:Zff()};(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId);let u=this.getPersistedProperty(r2t.Queue)||[];u.length>=this.maxQueueSize&&(u.shift(),this.logMsgIfDebug(()=>console.info("Queue is full, the oldest event is dropped."))),u.push({message:i}),this.setPersistedProperty(r2t.Queue,u),this._events.emit(t,i),u.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=idf(()=>this.flushBackground(),this.flushInterval))})}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(()=>{})}async flush(){return this.flushPromise||(this.flushPromise=this._flush().finally(()=>{this.flushPromise=null}),this.addPendingPromise(this.flushPromise)),this.flushPromise}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(r2t.Queue)||[];if(!t.length)return[];let r=t.slice(0,this.maxBatchSize),n=r.map(c=>c.message),i=()=>{let c=this.getPersistedProperty(r2t.Queue)||[];this.setPersistedProperty(r2t.Queue,c.slice(r.length))},a={api_key:this.apiKey,batch:n,sent_at:Kff()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),f=this.captureMode==="form"?`${this.host}/e/?ip=1&_=${Ihj()}&v=${this.getLibraryVersion()}`:`${this.host}/batch/`,d=this.captureMode==="form"?{method:"POST",mode:"no-cors",credentials:"omit",headers:{...this.getCustomHeaders(),"Content-Type":"application/x-www-form-urlencoded"},body:`data=${encodeURIComponent(kpi.compressToBase64(u))}&compression=lz64`}:{method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:u};try{await this.fetchWithRetry(f,d)}catch(c){throw c instanceof e_i||i(),this._events.emit("error",c),c}return i(),this._events.emit("flush",n),n}async fetchWithRetry(t,r,n,i){var a;return(a=AbortSignal).timeout??(a.timeout=function(f){let d=new AbortController;return setTimeout(()=>d.abort(),f),d.signal}),await Bhj(async()=>{let u=null;try{u=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(d){throw new e_i(d)}if(!(r.mode==="no-cors")&&(u.status<200||u.status>=400))throw new eya(u);return u},{...this._retryOptions,...n})}async shutdown(t=3e4){await this._initPromise,this.clearFlushTimer();try{await Promise.all(Object.values(this.pendingPromises));let r=Date.now()+t;for(;(this.getPersistedProperty(r2t.Queue)||[]).length!==0;){await this.flush();let i=Date.now();if(r<i)break}}catch(r){if(!kff(r))throw r;this.logMsgIfDebug(()=>console.error("Error while shutting down PostHog",r))}}},rlu=class{constructor(){this._memoryStorage={}}getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}},nlu=typeof fetch<"u"?fetch:typeof global.fetch<"u"?global.fetch:void 0;if(!nlu){let e=$ff();nlu=async(t,r)=>{let n=await e.request({url:t,headers:r.headers,method:r.method.toLowerCase(),data:r.body,signal:r.signal,validateStatus:()=>!0});return{status:n.status,text:async()=>n.data,json:async()=>n.data}}}var adf=nlu,Rhj=1152921504606847e3,Lhj=["is_not"],tya=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},_8=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},ilu=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:a,customHeaders:u,...f}){this.debugMode=!1,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=a,this.poller=void 0,this.fetch=f.fetch||adf,this.onError=f.onError,this.customHeaders=u,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},a={}){await this.loadFeatureFlags();let u,f;if(!this.loadedSuccessfullyOnce)return u;for(let d of this.featureFlags)if(t===d.key){f=d;break}if(f!==void 0)try{u=this.computeFlagLocally(f,r,n,i,a),this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${u}`))}catch(d){d instanceof _8?this.logMsgIfDebug(()=>console.debug(`InconclusiveMatchError when computing flag locally: ${t}: ${d}`)):d instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${d}`))}return u}async computeFeatureFlagPayloadLocally(t,r){await this.loadFeatureFlags();let n;if(this.loadedSuccessfullyOnce){if(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]),n==null)return null;try{return JSON.parse(n)}catch{return n}}}async getAllFlagsAndPayloads(t,r={},n={},i={}){await this.loadFeatureFlags();let a={},u={},f=this.featureFlags.length==0;return this.featureFlags.map(async d=>{try{let c=this.computeFlagLocally(d,t,r,n,i);a[d.key]=c;let o=await this.computeFeatureFlagPayloadLocally(d.key,c);o&&(u[d.key]=o)}catch(c){c instanceof _8||c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${d.key}: ${c}`)),f=!0}}),{response:a,payloads:u,fallbackToDecide:f}}computeFlagLocally(t,r,n={},i={},a={}){if(t.ensure_experience_continuity)throw new _8("Flag has experience continuity enabled");if(!t.active)return!1;let f=(t.filters||{}).aggregation_group_type_index;if(f!=null){let d=this.groupTypeMapping[String(f)];if(!d)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${f} for feature flag ${t.key}`)),new _8("Flag has unknown group type index");if(!(d in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let c=a[d];return this.matchFeatureFlagProperties(t,n[d],c)}else return this.matchFeatureFlagProperties(t,r,i)}matchFeatureFlagProperties(t,r,n){let i=t.filters||{},a=i.groups||[],u=!1,f,d=[...a].sort((c,o)=>{let l=!!c.variant,m=!!o.variant;return l&&m?0:l?-1:m?1:0});for(let c of d)try{if(this.isConditionMatch(t,r,c,n)){let o=c.variant,l=i.multivariate?.variants||[];o&&l.some(m=>m.key===o)?f=o:f=this.getMatchingVariant(t,r)||!0;break}}catch(o){if(o instanceof _8)u=!0;else throw o}if(f!==void 0)return f;if(u)throw new _8("Can't determine if feature flag is enabled or not with given properties");return!1}isConditionMatch(t,r,n,i){let a=n.rollout_percentage,u=f=>{this.logMsgIfDebug(()=>console.warn(f))};if((n.properties||[]).length>0){for(let f of n.properties){let d=f.type,c=!1;if(d==="cohort"?c=udf(f,i,this.cohorts,this.debugMode):c=odf(f,i,u),!c)return!1}if(a==null)return!0}return!(a!=null&&edf(t.key,r)>a/100)}getMatchingVariant(t,r){let n=edf(t.key,r,"variant"),i=this.variantLookupTable(t).find(a=>n>=a.valueMin&&n<a.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(f=>{i=n+f.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:f.key}),n=i}),r}async loadFeatureFlags(t=!1){(!this.loadedSuccessfullyOnce||t)&&await this._loadFeatureFlags()}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this._loadFeatureFlags(),this.pollingInterval);try{let t=await this._requestFeatureFlagDefinitions();if(t&&t.status===401)throw new tya("Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview");if(t&&t.status!==200)return;let r=await t.json();"flags"in r||this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(r)}`)),this.featureFlags=r.flags||[],this.featureFlagsByKey=this.featureFlags.reduce((n,i)=>(n[i.key]=i,n),{}),this.groupTypeMapping=r.group_type_mapping||{},this.cohorts=r.cohorts||[],this.loadedSuccessfullyOnce=!0}catch(t){t instanceof tya&&this.onError?.(t)}}async _requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r={method:"GET",headers:{...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`}},n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=idf(()=>{i.abort()},this.timeout),r.signal=i.signal}try{return await this.fetch(t,r)}finally{clearTimeout(n)}}stopPoller(){clearTimeout(this.poller)}};function edf(e,t,r=""){let n=(0,ndf.createHash)();return n.update(`${e}.${t}${r}`),parseInt(n.digest("hex").slice(0,15),16)/Rhj}function odf(e,t,r){let n=e.key,i=e.value,a=e.operator||"exact";if(n in t){if(a==="is_not_set")throw new _8("Operator is_not_set is not supported")}else throw new _8(`Property ${n} not found in propertyValues`);let u=t[n];if(u==null&&!Lhj.includes(a))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${a} operator`),!1;function f(c,o){return Array.isArray(c)?c.map(l=>String(l).toLowerCase()).includes(String(o).toLowerCase()):String(c).toLowerCase()===String(o).toLowerCase()}function d(c,o,l){if(l==="gt")return c>o;if(l==="gte")return c>=o;if(l==="lt")return c<o;if(l==="lte")return c<=o;throw new Error(`Invalid operator: ${l}`)}switch(a){case"exact":return f(i,u);case"is_not":return!f(i,u);case"is_set":return n in t;case"icontains":return String(u).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(u).toLowerCase().includes(String(i).toLowerCase());case"regex":return tdf(String(i))&&String(u).match(String(i))!==null;case"not_regex":return tdf(String(i))&&String(u).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&&u!=null?typeof u=="string"?d(u,String(i),a):d(u,c,a):d(String(u),String(i),a)}case"is_date_after":case"is_date_before":{let c=Uhj(String(i));if(c==null&&(c=rdf(i)),c==null)throw new _8(`Invalid date: ${i}`);let o=rdf(u);return["is_date_before"].includes(a)?o<c:o>c}default:throw new _8(`Unknown operator: ${a}`)}}function udf(e,t,r,n=!1){let i=String(e.value);if(!(i in r))throw new _8("can't match cohort without a given cohort property value");let a=r[i];return sdf(a,t,r,n)}function sdf(e,t,r,n=!1){if(!e)return!0;let i=e.type,a=e.values;if(!a||a.length===0)return!0;let u=!1;if("values"in a[0]){for(let f of a)try{let d=sdf(f,t,r,n);if(i==="AND"){if(!d)return!1}else if(d)return!0}catch(d){if(d instanceof _8)n&&console.debug(`Failed to compute property ${f} locally: ${d}`),u=!0;else throw d}if(u)throw new _8("Can't match cohort without a given cohort property value");return i==="AND"}else{for(let f of a)try{let d;f.type==="cohort"?d=udf(f,t,r,n):d=odf(f,t);let c=f.negation||!1;if(i==="AND"){if(!d&&!c||d&&c)return!1}else if(d&&!c||!d&&c)return!0}catch(d){if(d instanceof _8)n&&console.debug(`Failed to compute property ${f} locally: ${d}`),u=!0;else throw d}if(u)throw new _8("can't match cohort without a given cohort property value");return i==="AND"}}function tdf(e){try{return new RegExp(e),!0}catch{return!1}}function rdf(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 _8(`${e} is in an invalid date format`)}else throw new _8(`The date provided ${e} must be a string, number, or date object`)}function Uhj(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(r){if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let a=r.groups.interval;if(a=="h")n.setUTCHours(n.getUTCHours()-i);else if(a=="d")n.setUTCDate(n.getUTCDate()-i);else if(a=="w")n.setUTCDate(n.getUTCDate()-i*7);else if(a=="m")n.setUTCMonth(n.getUTCMonth()-i);else if(a=="y")n.setUTCFullYear(n.getUTCFullYear()-i);else return null;return n}else return null}var Vhj=30*1e3,Whj=50*1e3,BBn=class extends tlu{constructor(t,r={}){super(t,r),this._memoryStorage=new rlu,this.options=r,r.personalApiKey&&(this.featureFlagsPoller=new ilu({pollingInterval:typeof r.featureFlagsPollingInterval=="number"?r.featureFlagsPollingInterval:Vhj,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:n=>{this._events.emit("error",n)},customHeaders:this.getCustomHeaders()})),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Whj}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):adf(t,r)}getLibraryId(){return"posthog-node"}getLibraryVersion(){return xhj}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({distinctId:t,event:r,properties:n,groups:i,sendFeatureFlags:a,timestamp:u,disableGeoip:f,uuid:d}){let c=m=>{super.captureStateless(t,r,m,{timestamp:u,disableGeoip:f,uuid:d})},o=(m,O,j)=>super.getFeatureFlagsStateless(m,O,void 0,void 0,j),l=Promise.resolve().then(async()=>{if(a)return await o(t,i,f);if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let m={};for(let[O,j]of Object.entries(i||{}))m[O]=String(j);return await this.getAllFlags(t,{groups:m,disableGeoip:f,onlyEvaluateLocally:!0})}return{}}).then(m=>{let O={};if(m)for(let[A,T]of Object.entries(m))O[`$feature/${A}`]=T;let j=Object.keys(m||{}).filter(A=>m?.[A]!==!1);return j.length>0&&(O.$active_feature_flags=j),O}).catch(()=>({})).then(m=>{c({...m,...n,$groups:i})});this.addPendingPromise(l)}identify({distinctId:t,properties:r,disableGeoip:n}){let i=r?.$set||r;super.identifyStateless(t,{$set:i},{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async getFeatureFlag(t,r,n){let{groups:i,disableGeoip:a}=n||{},{onlyEvaluateLocally:u,sendFeatureFlagEvents:f,personProperties:d,groupProperties:c}=n||{},o=this.addLocalPersonAndGroupProperties(r,i,d,c);d=o.allPersonProperties,c=o.allGroupProperties,u==null&&(u=!1),f==null&&(f=!0);let l=await this.featureFlagsPoller?.getFeatureFlag(t,r,i,d,c),m=l!==void 0;!m&&!u&&(l=await super.getFeatureFlagStateless(t,r,i,d,c,a));let O=`${t}_${l}`;return f&&(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O))&&(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O],this.capture({distinctId:r,event:"$feature_flag_called",properties:{$feature_flag:t,$feature_flag_response:l,locally_evaluated:m,[`$feature/${t}`]:l},groups:i,disableGeoip:a})),l}async getFeatureFlagPayload(t,r,n,i){let{groups:a,disableGeoip:u}=i||{},{onlyEvaluateLocally:f,sendFeatureFlagEvents:d,personProperties:c,groupProperties:o}=i||{},l=this.addLocalPersonAndGroupProperties(r,a,c,o);c=l.allPersonProperties,o=l.allGroupProperties;let m;return n||(n=await this.getFeatureFlag(t,r,{...i,onlyEvaluateLocally:!0})),n&&(m=await this.featureFlagsPoller?.computeFeatureFlagPayloadLocally(t,n)),f==null&&(f=!1),d==null&&(d=!0),f==null&&(f=!1),!(m!==void 0)&&!f&&(m=await super.getFeatureFlagPayloadStateless(t,r,a,c,o,u)),m}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i}=r||{},{onlyEvaluateLocally:a,personProperties:u,groupProperties:f}=r||{},d=this.addLocalPersonAndGroupProperties(t,n,u,f);u=d.allPersonProperties,f=d.allGroupProperties,a==null&&(a=!1);let c=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,u,f),o={},l={},m=!0;if(c&&(o=c.response,l=c.payloads,m=c.fallbackToDecide),m&&!a){let O=await super.getFeatureFlagsAndPayloadsStateless(t,n,u,f,i);o={...o,...O.flags||{}},l={...l,...O.payloads||{}}}return{featureFlags:o,featureFlagPayloads:l}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:a}){super.groupIdentifyStateless(t,r,n,{disableGeoip:a},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}async shutdown(t){return this.featureFlagsPoller?.stopPoller(),super.shutdown(t)}addLocalPersonAndGroupProperties(t,r,n,i){let a={distinct_id:t,...n||{}},u={};if(r)for(let f of Object.keys(r))u[f]={$group_key:r[f],...i?.[f]||{}};return{allPersonProperties:a,allGroupProperties:u}}},alu=class e{constructor(t,r,n,i){this.posthog=t,this.posthogHost=r,this.organization=n,this.prefix=i,this.name="posthog-node",this.posthogHost=t.options.host??"https://us.i.posthog.com"}setupOnce(t,r){t(n=>{if(n.exception?.values===void 0||n.exception.values.length===0)return n;n.tags||(n.tags={});let i=r(),a=n.tags[e.POSTHOG_ID_TAG];if(a===void 0)return n;n.tags["PostHog Person URL"]=new URL(`/person/${a}`,this.posthogHost).toString();let u={$exception_message:n.exception.values[0]?.value,$exception_type:n.exception.values[0]?.type,$exception_personURL:n.tags["PostHog Person URL"],$sentry_event_id:n.event_id,$sentry_exception:n.exception,$sentry_exception_message:n.exception.values[0]?.value,$sentry_exception_type:n.exception.values[0]?.type,$sentry_tags:n.tags},f=i.getClient()?.getDsn()?.projectId;return this.organization!==void 0&&f!==void 0&&n.event_id!==void 0&&(u.$sentry_url=`${this.prefix??"https://sentry.io/organizations"}/${this.organization}/issues/?project=${f}&query=${n.event_id}`),this.posthog.capture({event:"$exception",distinctId:a,properties:u}),n})}};alu.POSTHOG_ID_TAG="posthog_distinct_id";var rya=class{posthog;constructor({posthogApiKey:t}){this.posthog=new BBn(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"0.45.0-rc51",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var t_i=class{async sendEvent(){}async identify(){}async flush(){}};var IBn=require("fs/promises"),ddf=require("os"),pdf=require("path");var cdf=Jo(require("crypto")),iya=new Uint8Array(256),nya=iya.length;function olu(){return nya>iya.length-16&&(cdf.default.randomFillSync(iya),nya=0),iya.slice(nya,nya+=16)}var lW=[];for(let e=0;e<256;++e)lW.push((e+256).toString(16).slice(1));function ldf(e,t=0){return lW[e[t+0]]+lW[e[t+1]]+lW[e[t+2]]+lW[e[t+3]]+"-"+lW[e[t+4]]+lW[e[t+5]]+"-"+lW[e[t+6]]+lW[e[t+7]]+"-"+lW[e[t+8]]+lW[e[t+9]]+"-"+lW[e[t+10]]+lW[e[t+11]]+lW[e[t+12]]+lW[e[t+13]]+lW[e[t+14]]+lW[e[t+15]]}var fdf=Jo(require("crypto")),ulu={randomUUID:fdf.default.randomUUID};function Hhj(e,t,r){if(ulu.randomUUID&&!t&&!e)return ulu.randomUUID();e=e||{};let n=e.random||(e.rng||olu)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return ldf(n)}var h6r=Hhj;var Jhj="id",Qhj=".fern",r_i=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new BBn(r),this.userId=t==null?void 0:jru(t)}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"0.45.0-rc51",...t,...t.properties}})}async flush(){await this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Wl(Hp.of((0,ddf.homedir)()),ls.of(Qhj),ls.of(Jhj));await _h(t)||(await(0,IBn.mkdir)((0,pdf.dirname)(t),{recursive:!0}),await(0,IBn.writeFile)(t,h6r())),this.persistedDistinctId=(await(0,IBn.readFile)(t)).toString()}return this.persistedDistinctId}};var slu;async function zBn(){return slu==null&&(slu=await Ghj()),slu}async function Ghj(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new t_i;let r=await dca();return r!=null?new r_i({token:r,posthogApiKey:e}):await fca()!=null?new rya({posthogApiKey:e}):new r_i({token:void 0,posthogApiKey:e})}catch{return new t_i}}function n_i(e,t){return function(){return e.apply(t,arguments)}}var{toString:$hj}=Object.prototype,{getPrototypeOf:flu}=Object,oya=(e=>t=>{let r=$hj.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),n2t=e=>(e=e.toLowerCase(),t=>oya(t)===e),uya=e=>t=>typeof t===e,{isArray:NBn}=Array,i_i=uya("undefined");function Khj(e){return e!==null&&!i_i(e)&&e.constructor!==null&&!i_i(e.constructor)&&hwe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var ydf=n2t("ArrayBuffer");function Yhj(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ydf(e.buffer),t}var Xhj=uya("string"),hwe=uya("function"),vdf=uya("number"),sya=e=>e!==null&&typeof e=="object",Zhj=e=>e===!0||e===!1,aya=e=>{if(oya(e)!=="object")return!1;let t=flu(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},khj=n2t("Date"),eyj=n2t("File"),tyj=n2t("Blob"),ryj=n2t("FileList"),nyj=e=>sya(e)&&hwe(e.pipe),iyj=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||hwe(e.append)&&((t=oya(e))==="formdata"||t==="object"&&hwe(e.toString)&&e.toString()==="[object FormData]"))},ayj=n2t("URLSearchParams"),[oyj,uyj,syj,cyj]=["ReadableStream","Request","Response","Headers"].map(n2t),lyj=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function a_i(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),NBn(e))for(n=0,i=e.length;n<i;n++)t.call(null,e[n],n,e);else{let a=r?Object.getOwnPropertyNames(e):Object.keys(e),u=a.length,f;for(n=0;n<u;n++)f=a[n],t.call(null,e[f],f,e)}}function bdf(e,t){t=t.toLowerCase();let r=Object.keys(e),n=r.length,i;for(;n-- >0;)if(i=r[n],t===i.toLowerCase())return i;return null}var Okr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,gdf=e=>!i_i(e)&&e!==Okr;function llu(){let{caseless:e}=gdf(this)&&this||{},t={},r=(n,i)=>{let a=e&&bdf(t,i)||i;aya(t[a])&&aya(n)?t[a]=llu(t[a],n):aya(n)?t[a]=llu({},n):NBn(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n<i;n++)arguments[n]&&a_i(arguments[n],r);return t}var fyj=(e,t,r,{allOwnKeys:n}={})=>(a_i(t,(i,a)=>{r&&hwe(i)?e[a]=n_i(i,r):e[a]=i},{allOwnKeys:n}),e),dyj=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),pyj=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},_yj=(e,t,r,n)=>{let i,a,u,f={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)u=i[a],(!n||n(u,e,t))&&!f[u]&&(t[u]=e[u],f[u]=!0);e=r!==!1&&flu(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},hyj=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;let n=e.indexOf(t,r);return n!==-1&&n===r},yyj=e=>{if(!e)return null;if(NBn(e))return e;let t=e.length;if(!vdf(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},vyj=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&flu(Uint8Array)),byj=(e,t)=>{let n=(e&&e[Symbol.iterator]).call(e),i;for(;(i=n.next())&&!i.done;){let a=i.value;t.call(e,a[0],a[1])}},gyj=(e,t)=>{let r,n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},myj=n2t("HTMLFormElement"),Oyj=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),_df=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Pyj=n2t("RegExp"),mdf=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};a_i(r,(i,a)=>{let u;(u=t(i,a,e))!==!1&&(n[a]=u||i)}),Object.defineProperties(e,n)},jyj=e=>{mdf(e,(t,r)=>{if(hwe(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let n=e[r];if(hwe(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},wyj=(e,t)=>{let r={},n=i=>{i.forEach(a=>{r[a]=!0})};return NBn(e)?n(e):n(String(e).split(t)),r},Dyj=()=>{},Syj=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,clu="abcdefghijklmnopqrstuvwxyz",hdf="0123456789",Odf={DIGIT:hdf,ALPHA:clu,ALPHA_DIGIT:clu+clu.toUpperCase()+hdf},Eyj=(e=16,t=Odf.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function Ayj(e){return!!(e&&hwe(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}var Myj=e=>{let t=new Array(10),r=(n,i)=>{if(sya(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;let a=NBn(n)?[]:{};return a_i(n,(u,f)=>{let d=r(u,i+1);!i_i(d)&&(a[f]=d)}),t[i]=void 0,a}}return n};return r(e,0)},Tyj=n2t("AsyncFunction"),xyj=e=>e&&(sya(e)||hwe(e))&&hwe(e.then)&&hwe(e.catch),Pdf=((e,t)=>e?setImmediate:t?((r,n)=>(Okr.addEventListener("message",({source:i,data:a})=>{i===Okr&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),Okr.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",hwe(Okr.postMessage)),qyj=typeof queueMicrotask<"u"?queueMicrotask.bind(Okr):typeof process<"u"&&process.nextTick||Pdf,Ol={isArray:NBn,isArrayBuffer:ydf,isBuffer:Khj,isFormData:iyj,isArrayBufferView:Yhj,isString:Xhj,isNumber:vdf,isBoolean:Zhj,isObject:sya,isPlainObject:aya,isReadableStream:oyj,isRequest:uyj,isResponse:syj,isHeaders:cyj,isUndefined:i_i,isDate:khj,isFile:eyj,isBlob:tyj,isRegExp:Pyj,isFunction:hwe,isStream:nyj,isURLSearchParams:ayj,isTypedArray:vyj,isFileList:ryj,forEach:a_i,merge:llu,extend:fyj,trim:lyj,stripBOM:dyj,inherits:pyj,toFlatObject:_yj,kindOf:oya,kindOfTest:n2t,endsWith:hyj,toArray:yyj,forEachEntry:byj,matchAll:gyj,isHTMLForm:myj,hasOwnProperty:_df,hasOwnProp:_df,reduceDescriptors:mdf,freezeMethods:jyj,toObjectSet:wyj,toCamelCase:Oyj,noop:Dyj,toFiniteNumber:Syj,findKey:bdf,global:Okr,isContextDefined:gdf,ALPHABET:Odf,generateString:Eyj,isSpecCompliantForm:Ayj,toJSONObject:Myj,isAsyncFn:Tyj,isThenable:xyj,setImmediate:Pdf,asap:qyj};function FBn(e,t,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i,this.status=i.status?i.status:null)}Ol.inherits(FBn,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ol.toJSONObject(this.config),code:this.code,status:this.status}}});var jdf=FBn.prototype,wdf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{wdf[e]={value:e}});Object.defineProperties(FBn,wdf);Object.defineProperty(jdf,"isAxiosError",{value:!0});FBn.from=(e,t,r,n,i,a)=>{let u=Object.create(jdf);return Ol.toFlatObject(e,u,function(d){return d!==Error.prototype},f=>f!=="isAxiosError"),FBn.call(u,e.message,t,r,n,i),u.cause=e,u.name=e.name,a&&Object.assign(u,a),u};var sy=FBn;var Ddf=Jo(fzr(),1),cya=Ddf.default;function dlu(e){return Ol.isPlainObject(e)||Ol.isArray(e)}function Edf(e){return Ol.endsWith(e,"[]")?e.slice(0,-2):e}function Sdf(e,t,r){return e?e.concat(t).map(function(i,a){return i=Edf(i),!r&&a?"["+i+"]":i}).join(r?".":""):t}function Cyj(e){return Ol.isArray(e)&&!e.some(dlu)}var Byj=Ol.toFlatObject(Ol,{},null,function(t){return/^is[A-Z]/.test(t)});function Iyj(e,t,r){if(!Ol.isObject(e))throw new TypeError("target must be an object");t=t||new(cya||FormData),r=Ol.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(A,T){return!Ol.isUndefined(T[A])});let n=r.metaTokens,i=r.visitor||o,a=r.dots,u=r.indexes,d=(r.Blob||typeof Blob<"u"&&Blob)&&Ol.isSpecCompliantForm(t);if(!Ol.isFunction(i))throw new TypeError("visitor must be a function");function c(j){if(j===null)return"";if(Ol.isDate(j))return j.toISOString();if(!d&&Ol.isBlob(j))throw new sy("Blob is not supported. Use a Buffer instead.");return Ol.isArrayBuffer(j)||Ol.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function o(j,A,T){let B=j;if(j&&!T&&typeof j=="object"){if(Ol.endsWith(A,"{}"))A=n?A:A.slice(0,-2),j=JSON.stringify(j);else if(Ol.isArray(j)&&Cyj(j)||(Ol.isFileList(j)||Ol.endsWith(A,"[]"))&&(B=Ol.toArray(j)))return A=Edf(A),B.forEach(function(C,N){!(Ol.isUndefined(C)||C===null)&&t.append(u===!0?Sdf([A],N,a):u===null?A:A+"[]",c(C))}),!1}return dlu(j)?!0:(t.append(Sdf(T,A,a),c(j)),!1)}let l=[],m=Object.assign(Byj,{defaultVisitor:o,convertValue:c,isVisitable:dlu});function O(j,A){if(!Ol.isUndefined(j)){if(l.indexOf(j)!==-1)throw Error("Circular reference detected in "+A.join("."));l.push(j),Ol.forEach(j,function(B,F){(!(Ol.isUndefined(B)||B===null)&&i.call(t,B,Ol.isString(F)?F.trim():F,A,m))===!0&&O(B,A?A.concat(F):[F])}),l.pop()}}if(!Ol.isObject(e))throw new TypeError("data must be an object");return O(e),t}var y6r=Iyj;function Adf(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function Mdf(e,t){this._pairs=[],e&&y6r(e,this,t)}var Tdf=Mdf.prototype;Tdf.append=function(t,r){this._pairs.push([t,r])};Tdf.toString=function(t){let r=t?function(n){return t.call(this,n,Adf)}:Adf;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};var xdf=Mdf;function zyj(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pkr(e,t,r){if(!t)return e;let n=r&&r.encode||zyj,i=r&&r.serialize,a;if(i?a=i(t,r):a=Ol.isURLSearchParams(t)?t.toString():new xdf(t,r).toString(n),a){let u=e.indexOf("#");u!==-1&&(e=e.slice(0,u)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var plu=class{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Ol.forEach(this.handlers,function(n){n!==null&&t(n)})}},_lu=plu;var RBn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var qdf=Jo(require("url"),1),Cdf=qdf.default.URLSearchParams;var Bdf={isNode:!0,classes:{URLSearchParams:Cdf,FormData:cya,Blob:typeof Blob<"u"&&Blob||null},protocols:["http","https","file","data"]};var vlu={};Dc(vlu,{hasBrowserEnv:()=>ylu,hasStandardBrowserEnv:()=>Nyj,hasStandardBrowserWebWorkerEnv:()=>Fyj,navigator:()=>hlu,origin:()=>Ryj});var ylu=typeof window<"u"&&typeof document<"u",hlu=typeof navigator=="object"&&navigator||void 0,Nyj=ylu&&(!hlu||["ReactNative","NativeScript","NS"].indexOf(hlu.product)<0),Fyj=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Ryj=ylu&&window.location.href||"http://localhost";var h2={...vlu,...Bdf};function blu(e,t){return y6r(e,new h2.classes.URLSearchParams,Object.assign({visitor:function(r,n,i,a){return h2.isNode&&Ol.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function Lyj(e){return Ol.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Uyj(e){let t={},r=Object.keys(e),n,i=r.length,a;for(n=0;n<i;n++)a=r[n],t[a]=e[a];return t}function Vyj(e){function t(r,n,i,a){let u=r[a++];if(u==="__proto__")return!0;let f=Number.isFinite(+u),d=a>=r.length;return u=!u&&Ol.isArray(i)?i.length:u,d?(Ol.hasOwnProp(i,u)?i[u]=[i[u],n]:i[u]=n,!f):((!i[u]||!Ol.isObject(i[u]))&&(i[u]=[]),t(r,n,i[u],a)&&Ol.isArray(i[u])&&(i[u]=Uyj(i[u])),!f)}if(Ol.isFormData(e)&&Ol.isFunction(e.entries)){let r={};return Ol.forEachEntry(e,(n,i)=>{t(Lyj(n),i,r,0)}),r}return null}var lya=Vyj;function Wyj(e,t,r){if(Ol.isString(e))try{return(t||JSON.parse)(e),Ol.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var glu={transitional:RBn,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){let n=r.getContentType()||"",i=n.indexOf("application/json")>-1,a=Ol.isObject(t);if(a&&Ol.isHTMLForm(t)&&(t=new FormData(t)),Ol.isFormData(t))return i?JSON.stringify(lya(t)):t;if(Ol.isArrayBuffer(t)||Ol.isBuffer(t)||Ol.isStream(t)||Ol.isFile(t)||Ol.isBlob(t)||Ol.isReadableStream(t))return t;if(Ol.isArrayBufferView(t))return t.buffer;if(Ol.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let f;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return blu(t,this.formSerializer).toString();if((f=Ol.isFileList(t))||n.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return y6r(f?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||i?(r.setContentType("application/json",!1),Wyj(t)):t}],transformResponse:[function(t){let r=this.transitional||glu.transitional,n=r&&r.forcedJSONParsing,i=this.responseType==="json";if(Ol.isResponse(t)||Ol.isReadableStream(t))return t;if(t&&Ol.isString(t)&&(n&&!this.responseType||i)){let u=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(f){if(u)throw f.name==="SyntaxError"?sy.from(f,sy.ERR_BAD_RESPONSE,this,null,this.response):f}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:h2.classes.FormData,Blob:h2.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ol.forEach(["delete","get","head","post","put","patch"],e=>{glu.headers[e]={}});var LBn=glu;var Hyj=Ol.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Idf=e=>{let t={},r,n,i;return e&&e.split(`
1788
+ `}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&&dha(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Wlf=Jo(zlf(),1),Hlf=Jo(huu(),1),Jlf=Jo(Ulf(),1),Qx=Jo(pwe(),1),Qlf=Jo(Mdi(),1);var zha=Jo(pwe(),1),Vlf=Jo(Mdi(),1),Nha=function(e,t,r){return typeof e[t]!="function"?(0,zha.of)(e):(0,zha.from)((0,Vlf.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Upi={isPlainObject:Wlf.default,set:Jlf.default,get:Hlf.default},EBn=class extends vkr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=Upi.isPlainObject(r)?{...r}:{},Upi.isPlainObject(t)&&(t=Object.values(t).every(i=>Upi.isPlainObject(i)&&i.name===void 0)?Object.entries(t).map(([i,a])=>({name:i,...a})):[t]);let n=Array.isArray(t)?(0,Qx.from)(t):t;return this.process=n.pipe((0,Qx.concatMap)(this.processQuestion.bind(this)),(0,Qx.publish)()),this.process.connect(),this.process.pipe((0,Qx.reduce)((i,a)=>(Upi.set(i,a.name,a.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,Qx.defer)(()=>(0,Qx.of)(t).pipe((0,Qx.concatMap)(this.setDefaultType.bind(this)),(0,Qx.concatMap)(this.filterIfRunnable.bind(this)),(0,Qx.concatMap)(()=>Nha(t,"message",this.answers)),(0,Qx.concatMap)(()=>Nha(t,"default",this.answers)),(0,Qx.concatMap)(()=>Nha(t,"choices",this.answers)),(0,Qx.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Qx.defer)(()=>(0,Qx.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Qx.defer)(()=>(0,Qx.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Upi.get(this.answers,t.name)!==void 0)return(0,Qx.empty)();if(t.when===!1)return(0,Qx.empty)();if(typeof t.when!="function")return(0,Qx.of)(t);let{answers:r}=this;return(0,Qx.defer)(()=>(0,Qx.from)((0,Qlf.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Qx.filter)(n=>n!=null)))}};function Glf(e){let t=function(r,n){let i;try{i=new EBn(t.prompts,e)}catch(u){return Promise.reject(u)}let a=i.run(r,n);return a.ui=i,a};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",jpi),this.registerPrompt("input",ckr),this.registerPrompt("number",wpi),this.registerPrompt("confirm",Dpi),this.registerPrompt("rawlist",Spi),this.registerPrompt("expand",Epi),this.registerPrompt("checkbox",Api),this.registerPrompt("password",Mpi),this.registerPrompt("editor",Rpi)},t.restoreDefaultPrompts(),t}var dcu=Glf();function apj(e,t){dcu.registerPrompt(e,t)}function opj(){dcu.restoreDefaultPrompts()}var upj={prompt:dcu,ui:{BottomBar:Lpi,Prompt:EBn},createPromptModule:Glf,registerPrompt:apj,restoreDefaultPrompts:opj,Separator:_ne},Fha=upj;var ndf=Jo($lf()),xhj="4.2.1",r2t;(function(e){e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",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"})(r2t||(r2t={}));function qhj(e,t){if(!e)throw new Error(t)}function Chj(e){return e?.replace(/\/+$/,"")}async function Bhj(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 Ihj(){return new Date().getTime()}function Kff(){return new Date().toISOString()}function idf(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Zpi=String.fromCharCode,Yff="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Xha={};function zhj(e,t){if(!Xha[e]){Xha[e]={};for(let r=0;r<e.length;r++)Xha[e][e.charAt(r)]=r}return Xha[e][t]}var kpi={compressToBase64:function(e){if(e==null)return"";let t=kpi._compress(e,6,function(r){return Yff.charAt(r)});switch(t.length%4){default:case 0:return t;case 1:return t+"===";case 2:return t+"==";case 3:return t+"="}},decompressFromBase64:function(e){return e==null?"":e==""?null:kpi._decompress(e.length,32,function(t){return zhj(Yff,e.charAt(t))})},compress:function(e){return kpi._compress(e,16,function(t){return Zpi(t)})},_compress:function(e,t,r){if(e==null)return"";let n={},i={},a=[],u,f,d="",c="",o="",l=2,m=3,O=2,j=0,A=0,T;for(T=0;T<e.length;T+=1)if(d=e.charAt(T),Object.prototype.hasOwnProperty.call(n,d)||(n[d]=m++,i[d]=!0),c=o+d,Object.prototype.hasOwnProperty.call(n,c))o=c;else{if(Object.prototype.hasOwnProperty.call(i,o)){if(o.charCodeAt(0)<256){for(u=0;u<O;u++)j=j<<1,A==t-1?(A=0,a.push(r(j)),j=0):A++;for(f=o.charCodeAt(0),u=0;u<8;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}else{for(f=1,u=0;u<O;u++)j=j<<1|f,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=0;for(f=o.charCodeAt(0),u=0;u<16;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}l--,l==0&&(l=Math.pow(2,O),O++),delete i[o]}else for(f=n[o],u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;l--,l==0&&(l=Math.pow(2,O),O++),n[c]=m++,o=String(d)}if(o!==""){if(Object.prototype.hasOwnProperty.call(i,o)){if(o.charCodeAt(0)<256){for(u=0;u<O;u++)j=j<<1,A==t-1?(A=0,a.push(r(j)),j=0):A++;for(f=o.charCodeAt(0),u=0;u<8;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}else{for(f=1,u=0;u<O;u++)j=j<<1|f,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=0;for(f=o.charCodeAt(0),u=0;u<16;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1}l--,l==0&&(l=Math.pow(2,O),O++),delete i[o]}else for(f=n[o],u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;l--,l==0&&(l=Math.pow(2,O),O++)}for(f=2,u=0;u<O;u++)j=j<<1|f&1,A==t-1?(A=0,a.push(r(j)),j=0):A++,f=f>>1;for(;;)if(j=j<<1,A==t-1){a.push(r(j));break}else A++;return a.join("")},decompress:function(e){return e==null?"":e==""?null:kpi._decompress(e.length,32768,function(t){return e.charCodeAt(t)})},_decompress:function(e,t,r){let n=[],i=[],a={val:r(0),position:t,index:1},u=4,f=4,d=3,c="",o,l,m,O,j,A,T;for(o=0;o<3;o+=1)n[o]=o;for(m=0,j=Math.pow(2,2),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;switch(m){case 0:for(m=0,j=Math.pow(2,8),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;T=Zpi(m);break;case 1:for(m=0,j=Math.pow(2,16),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;T=Zpi(m);break;case 2:return""}for(n[3]=T,l=T,i.push(T);;){if(a.index>e)return"";for(m=0,j=Math.pow(2,d),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;switch(T=m){case 0:for(m=0,j=Math.pow(2,8),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;n[f++]=Zpi(m),T=f-1,u--;break;case 1:for(m=0,j=Math.pow(2,16),A=1;A!=j;)O=a.val&a.position,a.position>>=1,a.position==0&&(a.position=t,a.val=r(a.index++)),m|=(O>0?1:0)*A,A<<=1;n[f++]=Zpi(m),T=f-1,u--;break;case 2:return i.join("")}if(u==0&&(u=Math.pow(2,d),d++),n[T])c=n[T];else if(T===f)c=l+l.charAt(0);else return null;i.push(c),n[f++]=l+c.charAt(0),u--,l=c,u==0&&(u=Math.pow(2,d),d++)}}},kcu=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)}};var Zha="0123456789abcdef",kha=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length!==16)throw new TypeError("not 128-bit length");return new e(t)}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 a=new Uint8Array(16);return a[0]=t/2**40,a[1]=t/2**32,a[2]=t/2**24,a[3]=t/2**16,a[4]=t/2**8,a[5]=t,a[6]=112|r>>>8,a[7]=r,a[8]=128|n>>>24,a[9]=n>>>16,a[10]=n>>>8,a[11]=n,a[12]=i>>>24,a[13]=i>>>16,a[14]=i>>>8,a[15]=i,new e(a)}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}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let a=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=a>>>24,n[i+1]=a>>>16,n[i+2]=a>>>8,n[i+3]=a}return new e(n)}else throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Zha.charAt(this.bytes[r]>>>4),t+=Zha.charAt(this.bytes[r]&15),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Zha.charAt(this.bytes[r]>>>4),t+=Zha.charAt(this.bytes[r]&15);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}},elu=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??Nhj()}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)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return kha.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}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,kha.ofInner(t)}},Nhj=()=>({nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}),Xff,Zff=()=>Fhj().toString(),Fhj=()=>(Xff||(Xff=new elu)).generate(),eya=class extends Error{constructor(t){super("HTTP error while fetching PostHog: "+t.status),this.response=t,this.name="PostHogFetchHttpError"}},e_i=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};function kff(e){return typeof e=="object"&&(e instanceof eya||e instanceof e_i)}var tlu=class{constructor(t,r){this.flushPromise=null,this.disableGeoip=!0,this.historicalMigration=!1,this.disabled=!1,this.defaultOptIn=!0,this.pendingPromises={},this._events=new kcu,this._isInitialized=!1,qhj(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Chj(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.captureMode=r?.captureMode||"json",this.defaultOptIn=r?.defaultOptIn??!0,this._retryOptions={retryCount:r?.fetchRetryCount??3,retryDelay:r?.fetchRetryDelay??3e3,retryCheck:kff},this.requestTimeout=r?.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r?.featureFlagsRequestTimeoutMs??3e3,this.disableGeoip=r?.disableGeoip??!0,this.disabled=r?.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled){this.logMsgIfDebug(()=>console.warn("[PostHog] The client is disabled"));return}if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(r2t.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(r2t.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(r2t.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>console.log("PostHog Debug",n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){let r=Zff();return this.pendingPromises[r]=t,t.catch(()=>{}).finally(()=>{delete this.pendingPromises[r]}),t}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}captureStateless(t,r,n,i){this.wrap(()=>{let a=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",a,i)})}aliasStateless(t,r,n,i){this.wrap(()=>{let a=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",a,i)})}groupIdentifyStateless(t,r,n,i,a,u){this.wrap(()=>{let f=this.buildPayload({distinct_id:a||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...u||{}}});this.enqueue("capture",f,i)})}async getDecide(t,r={},n={},i={},a={}){await this._initPromise;let u=`${this.host}/decide/?v=3`,f={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify({token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...a})};return this.fetchWithRetry(u,f,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(d=>d.json()).catch(d=>{this._events.emit("error",d)})}async getFeatureFlagStateless(t,r,n={},i={},a={},u){await this._initPromise;let f=await this.getFeatureFlagsStateless(r,n,i,a,u);if(!f)return;let d=f[t];return d===void 0&&(d=!1),d}async getFeatureFlagPayloadStateless(t,r,n={},i={},a={},u){await this._initPromise;let f=await this.getFeatureFlagPayloadsStateless(r,n,i,a,u);if(!f)return;let d=f[t];return d===void 0?null:d}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,a)).payloads}_parsePayload(t){try{return JSON.parse(t)}catch{return t}}async getFeatureFlagsStateless(t,r={},n={},i={},a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,a)).flags}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},a){await this._initPromise;let u={};(a??this.disableGeoip)&&(u.geoip_disable=!0);let f=await this.getDecide(t,r,n,i,u),d=f?.featureFlags,c=f?.featureFlagPayloads,o=c;return c&&(o=Object.fromEntries(Object.entries(c).map(([l,m])=>[l,this._parsePayload(m)]))),{flags:d,payloads:o}}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut){this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");return}let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:Kff(),uuid:n?.uuid?n.uuid:Zff()};(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId);let u=this.getPersistedProperty(r2t.Queue)||[];u.length>=this.maxQueueSize&&(u.shift(),this.logMsgIfDebug(()=>console.info("Queue is full, the oldest event is dropped."))),u.push({message:i}),this.setPersistedProperty(r2t.Queue,u),this._events.emit(t,i),u.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=idf(()=>this.flushBackground(),this.flushInterval))})}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(()=>{})}async flush(){return this.flushPromise||(this.flushPromise=this._flush().finally(()=>{this.flushPromise=null}),this.addPendingPromise(this.flushPromise)),this.flushPromise}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(r2t.Queue)||[];if(!t.length)return[];let r=t.slice(0,this.maxBatchSize),n=r.map(c=>c.message),i=()=>{let c=this.getPersistedProperty(r2t.Queue)||[];this.setPersistedProperty(r2t.Queue,c.slice(r.length))},a={api_key:this.apiKey,batch:n,sent_at:Kff()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),f=this.captureMode==="form"?`${this.host}/e/?ip=1&_=${Ihj()}&v=${this.getLibraryVersion()}`:`${this.host}/batch/`,d=this.captureMode==="form"?{method:"POST",mode:"no-cors",credentials:"omit",headers:{...this.getCustomHeaders(),"Content-Type":"application/x-www-form-urlencoded"},body:`data=${encodeURIComponent(kpi.compressToBase64(u))}&compression=lz64`}:{method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:u};try{await this.fetchWithRetry(f,d)}catch(c){throw c instanceof e_i||i(),this._events.emit("error",c),c}return i(),this._events.emit("flush",n),n}async fetchWithRetry(t,r,n,i){var a;return(a=AbortSignal).timeout??(a.timeout=function(f){let d=new AbortController;return setTimeout(()=>d.abort(),f),d.signal}),await Bhj(async()=>{let u=null;try{u=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(d){throw new e_i(d)}if(!(r.mode==="no-cors")&&(u.status<200||u.status>=400))throw new eya(u);return u},{...this._retryOptions,...n})}async shutdown(t=3e4){await this._initPromise,this.clearFlushTimer();try{await Promise.all(Object.values(this.pendingPromises));let r=Date.now()+t;for(;(this.getPersistedProperty(r2t.Queue)||[]).length!==0;){await this.flush();let i=Date.now();if(r<i)break}}catch(r){if(!kff(r))throw r;this.logMsgIfDebug(()=>console.error("Error while shutting down PostHog",r))}}},rlu=class{constructor(){this._memoryStorage={}}getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}},nlu=typeof fetch<"u"?fetch:typeof global.fetch<"u"?global.fetch:void 0;if(!nlu){let e=$ff();nlu=async(t,r)=>{let n=await e.request({url:t,headers:r.headers,method:r.method.toLowerCase(),data:r.body,signal:r.signal,validateStatus:()=>!0});return{status:n.status,text:async()=>n.data,json:async()=>n.data}}}var adf=nlu,Rhj=1152921504606847e3,Lhj=["is_not"],tya=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},_8=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},ilu=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:a,customHeaders:u,...f}){this.debugMode=!1,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=a,this.poller=void 0,this.fetch=f.fetch||adf,this.onError=f.onError,this.customHeaders=u,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},a={}){await this.loadFeatureFlags();let u,f;if(!this.loadedSuccessfullyOnce)return u;for(let d of this.featureFlags)if(t===d.key){f=d;break}if(f!==void 0)try{u=this.computeFlagLocally(f,r,n,i,a),this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${u}`))}catch(d){d instanceof _8?this.logMsgIfDebug(()=>console.debug(`InconclusiveMatchError when computing flag locally: ${t}: ${d}`)):d instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${d}`))}return u}async computeFeatureFlagPayloadLocally(t,r){await this.loadFeatureFlags();let n;if(this.loadedSuccessfullyOnce){if(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]),n==null)return null;try{return JSON.parse(n)}catch{return n}}}async getAllFlagsAndPayloads(t,r={},n={},i={}){await this.loadFeatureFlags();let a={},u={},f=this.featureFlags.length==0;return this.featureFlags.map(async d=>{try{let c=this.computeFlagLocally(d,t,r,n,i);a[d.key]=c;let o=await this.computeFeatureFlagPayloadLocally(d.key,c);o&&(u[d.key]=o)}catch(c){c instanceof _8||c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${d.key}: ${c}`)),f=!0}}),{response:a,payloads:u,fallbackToDecide:f}}computeFlagLocally(t,r,n={},i={},a={}){if(t.ensure_experience_continuity)throw new _8("Flag has experience continuity enabled");if(!t.active)return!1;let f=(t.filters||{}).aggregation_group_type_index;if(f!=null){let d=this.groupTypeMapping[String(f)];if(!d)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${f} for feature flag ${t.key}`)),new _8("Flag has unknown group type index");if(!(d in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let c=a[d];return this.matchFeatureFlagProperties(t,n[d],c)}else return this.matchFeatureFlagProperties(t,r,i)}matchFeatureFlagProperties(t,r,n){let i=t.filters||{},a=i.groups||[],u=!1,f,d=[...a].sort((c,o)=>{let l=!!c.variant,m=!!o.variant;return l&&m?0:l?-1:m?1:0});for(let c of d)try{if(this.isConditionMatch(t,r,c,n)){let o=c.variant,l=i.multivariate?.variants||[];o&&l.some(m=>m.key===o)?f=o:f=this.getMatchingVariant(t,r)||!0;break}}catch(o){if(o instanceof _8)u=!0;else throw o}if(f!==void 0)return f;if(u)throw new _8("Can't determine if feature flag is enabled or not with given properties");return!1}isConditionMatch(t,r,n,i){let a=n.rollout_percentage,u=f=>{this.logMsgIfDebug(()=>console.warn(f))};if((n.properties||[]).length>0){for(let f of n.properties){let d=f.type,c=!1;if(d==="cohort"?c=udf(f,i,this.cohorts,this.debugMode):c=odf(f,i,u),!c)return!1}if(a==null)return!0}return!(a!=null&&edf(t.key,r)>a/100)}getMatchingVariant(t,r){let n=edf(t.key,r,"variant"),i=this.variantLookupTable(t).find(a=>n>=a.valueMin&&n<a.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(f=>{i=n+f.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:f.key}),n=i}),r}async loadFeatureFlags(t=!1){(!this.loadedSuccessfullyOnce||t)&&await this._loadFeatureFlags()}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this._loadFeatureFlags(),this.pollingInterval);try{let t=await this._requestFeatureFlagDefinitions();if(t&&t.status===401)throw new tya("Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview");if(t&&t.status!==200)return;let r=await t.json();"flags"in r||this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(r)}`)),this.featureFlags=r.flags||[],this.featureFlagsByKey=this.featureFlags.reduce((n,i)=>(n[i.key]=i,n),{}),this.groupTypeMapping=r.group_type_mapping||{},this.cohorts=r.cohorts||[],this.loadedSuccessfullyOnce=!0}catch(t){t instanceof tya&&this.onError?.(t)}}async _requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r={method:"GET",headers:{...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`}},n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=idf(()=>{i.abort()},this.timeout),r.signal=i.signal}try{return await this.fetch(t,r)}finally{clearTimeout(n)}}stopPoller(){clearTimeout(this.poller)}};function edf(e,t,r=""){let n=(0,ndf.createHash)();return n.update(`${e}.${t}${r}`),parseInt(n.digest("hex").slice(0,15),16)/Rhj}function odf(e,t,r){let n=e.key,i=e.value,a=e.operator||"exact";if(n in t){if(a==="is_not_set")throw new _8("Operator is_not_set is not supported")}else throw new _8(`Property ${n} not found in propertyValues`);let u=t[n];if(u==null&&!Lhj.includes(a))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${a} operator`),!1;function f(c,o){return Array.isArray(c)?c.map(l=>String(l).toLowerCase()).includes(String(o).toLowerCase()):String(c).toLowerCase()===String(o).toLowerCase()}function d(c,o,l){if(l==="gt")return c>o;if(l==="gte")return c>=o;if(l==="lt")return c<o;if(l==="lte")return c<=o;throw new Error(`Invalid operator: ${l}`)}switch(a){case"exact":return f(i,u);case"is_not":return!f(i,u);case"is_set":return n in t;case"icontains":return String(u).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(u).toLowerCase().includes(String(i).toLowerCase());case"regex":return tdf(String(i))&&String(u).match(String(i))!==null;case"not_regex":return tdf(String(i))&&String(u).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&&u!=null?typeof u=="string"?d(u,String(i),a):d(u,c,a):d(String(u),String(i),a)}case"is_date_after":case"is_date_before":{let c=Uhj(String(i));if(c==null&&(c=rdf(i)),c==null)throw new _8(`Invalid date: ${i}`);let o=rdf(u);return["is_date_before"].includes(a)?o<c:o>c}default:throw new _8(`Unknown operator: ${a}`)}}function udf(e,t,r,n=!1){let i=String(e.value);if(!(i in r))throw new _8("can't match cohort without a given cohort property value");let a=r[i];return sdf(a,t,r,n)}function sdf(e,t,r,n=!1){if(!e)return!0;let i=e.type,a=e.values;if(!a||a.length===0)return!0;let u=!1;if("values"in a[0]){for(let f of a)try{let d=sdf(f,t,r,n);if(i==="AND"){if(!d)return!1}else if(d)return!0}catch(d){if(d instanceof _8)n&&console.debug(`Failed to compute property ${f} locally: ${d}`),u=!0;else throw d}if(u)throw new _8("Can't match cohort without a given cohort property value");return i==="AND"}else{for(let f of a)try{let d;f.type==="cohort"?d=udf(f,t,r,n):d=odf(f,t);let c=f.negation||!1;if(i==="AND"){if(!d&&!c||d&&c)return!1}else if(d&&!c||!d&&c)return!0}catch(d){if(d instanceof _8)n&&console.debug(`Failed to compute property ${f} locally: ${d}`),u=!0;else throw d}if(u)throw new _8("can't match cohort without a given cohort property value");return i==="AND"}}function tdf(e){try{return new RegExp(e),!0}catch{return!1}}function rdf(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 _8(`${e} is in an invalid date format`)}else throw new _8(`The date provided ${e} must be a string, number, or date object`)}function Uhj(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(r){if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let a=r.groups.interval;if(a=="h")n.setUTCHours(n.getUTCHours()-i);else if(a=="d")n.setUTCDate(n.getUTCDate()-i);else if(a=="w")n.setUTCDate(n.getUTCDate()-i*7);else if(a=="m")n.setUTCMonth(n.getUTCMonth()-i);else if(a=="y")n.setUTCFullYear(n.getUTCFullYear()-i);else return null;return n}else return null}var Vhj=30*1e3,Whj=50*1e3,BBn=class extends tlu{constructor(t,r={}){super(t,r),this._memoryStorage=new rlu,this.options=r,r.personalApiKey&&(this.featureFlagsPoller=new ilu({pollingInterval:typeof r.featureFlagsPollingInterval=="number"?r.featureFlagsPollingInterval:Vhj,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:n=>{this._events.emit("error",n)},customHeaders:this.getCustomHeaders()})),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Whj}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):adf(t,r)}getLibraryId(){return"posthog-node"}getLibraryVersion(){return xhj}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({distinctId:t,event:r,properties:n,groups:i,sendFeatureFlags:a,timestamp:u,disableGeoip:f,uuid:d}){let c=m=>{super.captureStateless(t,r,m,{timestamp:u,disableGeoip:f,uuid:d})},o=(m,O,j)=>super.getFeatureFlagsStateless(m,O,void 0,void 0,j),l=Promise.resolve().then(async()=>{if(a)return await o(t,i,f);if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let m={};for(let[O,j]of Object.entries(i||{}))m[O]=String(j);return await this.getAllFlags(t,{groups:m,disableGeoip:f,onlyEvaluateLocally:!0})}return{}}).then(m=>{let O={};if(m)for(let[A,T]of Object.entries(m))O[`$feature/${A}`]=T;let j=Object.keys(m||{}).filter(A=>m?.[A]!==!1);return j.length>0&&(O.$active_feature_flags=j),O}).catch(()=>({})).then(m=>{c({...m,...n,$groups:i})});this.addPendingPromise(l)}identify({distinctId:t,properties:r,disableGeoip:n}){let i=r?.$set||r;super.identifyStateless(t,{$set:i},{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async getFeatureFlag(t,r,n){let{groups:i,disableGeoip:a}=n||{},{onlyEvaluateLocally:u,sendFeatureFlagEvents:f,personProperties:d,groupProperties:c}=n||{},o=this.addLocalPersonAndGroupProperties(r,i,d,c);d=o.allPersonProperties,c=o.allGroupProperties,u==null&&(u=!1),f==null&&(f=!0);let l=await this.featureFlagsPoller?.getFeatureFlag(t,r,i,d,c),m=l!==void 0;!m&&!u&&(l=await super.getFeatureFlagStateless(t,r,i,d,c,a));let O=`${t}_${l}`;return f&&(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O))&&(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O],this.capture({distinctId:r,event:"$feature_flag_called",properties:{$feature_flag:t,$feature_flag_response:l,locally_evaluated:m,[`$feature/${t}`]:l},groups:i,disableGeoip:a})),l}async getFeatureFlagPayload(t,r,n,i){let{groups:a,disableGeoip:u}=i||{},{onlyEvaluateLocally:f,sendFeatureFlagEvents:d,personProperties:c,groupProperties:o}=i||{},l=this.addLocalPersonAndGroupProperties(r,a,c,o);c=l.allPersonProperties,o=l.allGroupProperties;let m;return n||(n=await this.getFeatureFlag(t,r,{...i,onlyEvaluateLocally:!0})),n&&(m=await this.featureFlagsPoller?.computeFeatureFlagPayloadLocally(t,n)),f==null&&(f=!1),d==null&&(d=!0),f==null&&(f=!1),!(m!==void 0)&&!f&&(m=await super.getFeatureFlagPayloadStateless(t,r,a,c,o,u)),m}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i}=r||{},{onlyEvaluateLocally:a,personProperties:u,groupProperties:f}=r||{},d=this.addLocalPersonAndGroupProperties(t,n,u,f);u=d.allPersonProperties,f=d.allGroupProperties,a==null&&(a=!1);let c=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,u,f),o={},l={},m=!0;if(c&&(o=c.response,l=c.payloads,m=c.fallbackToDecide),m&&!a){let O=await super.getFeatureFlagsAndPayloadsStateless(t,n,u,f,i);o={...o,...O.flags||{}},l={...l,...O.payloads||{}}}return{featureFlags:o,featureFlagPayloads:l}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:a}){super.groupIdentifyStateless(t,r,n,{disableGeoip:a},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}async shutdown(t){return this.featureFlagsPoller?.stopPoller(),super.shutdown(t)}addLocalPersonAndGroupProperties(t,r,n,i){let a={distinct_id:t,...n||{}},u={};if(r)for(let f of Object.keys(r))u[f]={$group_key:r[f],...i?.[f]||{}};return{allPersonProperties:a,allGroupProperties:u}}},alu=class e{constructor(t,r,n,i){this.posthog=t,this.posthogHost=r,this.organization=n,this.prefix=i,this.name="posthog-node",this.posthogHost=t.options.host??"https://us.i.posthog.com"}setupOnce(t,r){t(n=>{if(n.exception?.values===void 0||n.exception.values.length===0)return n;n.tags||(n.tags={});let i=r(),a=n.tags[e.POSTHOG_ID_TAG];if(a===void 0)return n;n.tags["PostHog Person URL"]=new URL(`/person/${a}`,this.posthogHost).toString();let u={$exception_message:n.exception.values[0]?.value,$exception_type:n.exception.values[0]?.type,$exception_personURL:n.tags["PostHog Person URL"],$sentry_event_id:n.event_id,$sentry_exception:n.exception,$sentry_exception_message:n.exception.values[0]?.value,$sentry_exception_type:n.exception.values[0]?.type,$sentry_tags:n.tags},f=i.getClient()?.getDsn()?.projectId;return this.organization!==void 0&&f!==void 0&&n.event_id!==void 0&&(u.$sentry_url=`${this.prefix??"https://sentry.io/organizations"}/${this.organization}/issues/?project=${f}&query=${n.event_id}`),this.posthog.capture({event:"$exception",distinctId:a,properties:u}),n})}};alu.POSTHOG_ID_TAG="posthog_distinct_id";var rya=class{posthog;constructor({posthogApiKey:t}){this.posthog=new BBn(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"0.45.0-rc52",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var t_i=class{async sendEvent(){}async identify(){}async flush(){}};var IBn=require("fs/promises"),ddf=require("os"),pdf=require("path");var cdf=Jo(require("crypto")),iya=new Uint8Array(256),nya=iya.length;function olu(){return nya>iya.length-16&&(cdf.default.randomFillSync(iya),nya=0),iya.slice(nya,nya+=16)}var lW=[];for(let e=0;e<256;++e)lW.push((e+256).toString(16).slice(1));function ldf(e,t=0){return lW[e[t+0]]+lW[e[t+1]]+lW[e[t+2]]+lW[e[t+3]]+"-"+lW[e[t+4]]+lW[e[t+5]]+"-"+lW[e[t+6]]+lW[e[t+7]]+"-"+lW[e[t+8]]+lW[e[t+9]]+"-"+lW[e[t+10]]+lW[e[t+11]]+lW[e[t+12]]+lW[e[t+13]]+lW[e[t+14]]+lW[e[t+15]]}var fdf=Jo(require("crypto")),ulu={randomUUID:fdf.default.randomUUID};function Hhj(e,t,r){if(ulu.randomUUID&&!t&&!e)return ulu.randomUUID();e=e||{};let n=e.random||(e.rng||olu)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return ldf(n)}var h6r=Hhj;var Jhj="id",Qhj=".fern",r_i=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new BBn(r),this.userId=t==null?void 0:jru(t)}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"0.45.0-rc52",...t,...t.properties}})}async flush(){await this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Wl(Hp.of((0,ddf.homedir)()),ls.of(Qhj),ls.of(Jhj));await _h(t)||(await(0,IBn.mkdir)((0,pdf.dirname)(t),{recursive:!0}),await(0,IBn.writeFile)(t,h6r())),this.persistedDistinctId=(await(0,IBn.readFile)(t)).toString()}return this.persistedDistinctId}};var slu;async function zBn(){return slu==null&&(slu=await Ghj()),slu}async function Ghj(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new t_i;let r=await dca();return r!=null?new r_i({token:r,posthogApiKey:e}):await fca()!=null?new rya({posthogApiKey:e}):new r_i({token:void 0,posthogApiKey:e})}catch{return new t_i}}function n_i(e,t){return function(){return e.apply(t,arguments)}}var{toString:$hj}=Object.prototype,{getPrototypeOf:flu}=Object,oya=(e=>t=>{let r=$hj.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),n2t=e=>(e=e.toLowerCase(),t=>oya(t)===e),uya=e=>t=>typeof t===e,{isArray:NBn}=Array,i_i=uya("undefined");function Khj(e){return e!==null&&!i_i(e)&&e.constructor!==null&&!i_i(e.constructor)&&hwe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var ydf=n2t("ArrayBuffer");function Yhj(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ydf(e.buffer),t}var Xhj=uya("string"),hwe=uya("function"),vdf=uya("number"),sya=e=>e!==null&&typeof e=="object",Zhj=e=>e===!0||e===!1,aya=e=>{if(oya(e)!=="object")return!1;let t=flu(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},khj=n2t("Date"),eyj=n2t("File"),tyj=n2t("Blob"),ryj=n2t("FileList"),nyj=e=>sya(e)&&hwe(e.pipe),iyj=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||hwe(e.append)&&((t=oya(e))==="formdata"||t==="object"&&hwe(e.toString)&&e.toString()==="[object FormData]"))},ayj=n2t("URLSearchParams"),[oyj,uyj,syj,cyj]=["ReadableStream","Request","Response","Headers"].map(n2t),lyj=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function a_i(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),NBn(e))for(n=0,i=e.length;n<i;n++)t.call(null,e[n],n,e);else{let a=r?Object.getOwnPropertyNames(e):Object.keys(e),u=a.length,f;for(n=0;n<u;n++)f=a[n],t.call(null,e[f],f,e)}}function bdf(e,t){t=t.toLowerCase();let r=Object.keys(e),n=r.length,i;for(;n-- >0;)if(i=r[n],t===i.toLowerCase())return i;return null}var Okr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,gdf=e=>!i_i(e)&&e!==Okr;function llu(){let{caseless:e}=gdf(this)&&this||{},t={},r=(n,i)=>{let a=e&&bdf(t,i)||i;aya(t[a])&&aya(n)?t[a]=llu(t[a],n):aya(n)?t[a]=llu({},n):NBn(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n<i;n++)arguments[n]&&a_i(arguments[n],r);return t}var fyj=(e,t,r,{allOwnKeys:n}={})=>(a_i(t,(i,a)=>{r&&hwe(i)?e[a]=n_i(i,r):e[a]=i},{allOwnKeys:n}),e),dyj=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),pyj=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},_yj=(e,t,r,n)=>{let i,a,u,f={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)u=i[a],(!n||n(u,e,t))&&!f[u]&&(t[u]=e[u],f[u]=!0);e=r!==!1&&flu(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},hyj=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;let n=e.indexOf(t,r);return n!==-1&&n===r},yyj=e=>{if(!e)return null;if(NBn(e))return e;let t=e.length;if(!vdf(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},vyj=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&flu(Uint8Array)),byj=(e,t)=>{let n=(e&&e[Symbol.iterator]).call(e),i;for(;(i=n.next())&&!i.done;){let a=i.value;t.call(e,a[0],a[1])}},gyj=(e,t)=>{let r,n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},myj=n2t("HTMLFormElement"),Oyj=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),_df=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Pyj=n2t("RegExp"),mdf=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};a_i(r,(i,a)=>{let u;(u=t(i,a,e))!==!1&&(n[a]=u||i)}),Object.defineProperties(e,n)},jyj=e=>{mdf(e,(t,r)=>{if(hwe(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let n=e[r];if(hwe(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},wyj=(e,t)=>{let r={},n=i=>{i.forEach(a=>{r[a]=!0})};return NBn(e)?n(e):n(String(e).split(t)),r},Dyj=()=>{},Syj=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,clu="abcdefghijklmnopqrstuvwxyz",hdf="0123456789",Odf={DIGIT:hdf,ALPHA:clu,ALPHA_DIGIT:clu+clu.toUpperCase()+hdf},Eyj=(e=16,t=Odf.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function Ayj(e){return!!(e&&hwe(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}var Myj=e=>{let t=new Array(10),r=(n,i)=>{if(sya(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;let a=NBn(n)?[]:{};return a_i(n,(u,f)=>{let d=r(u,i+1);!i_i(d)&&(a[f]=d)}),t[i]=void 0,a}}return n};return r(e,0)},Tyj=n2t("AsyncFunction"),xyj=e=>e&&(sya(e)||hwe(e))&&hwe(e.then)&&hwe(e.catch),Pdf=((e,t)=>e?setImmediate:t?((r,n)=>(Okr.addEventListener("message",({source:i,data:a})=>{i===Okr&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),Okr.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",hwe(Okr.postMessage)),qyj=typeof queueMicrotask<"u"?queueMicrotask.bind(Okr):typeof process<"u"&&process.nextTick||Pdf,Ol={isArray:NBn,isArrayBuffer:ydf,isBuffer:Khj,isFormData:iyj,isArrayBufferView:Yhj,isString:Xhj,isNumber:vdf,isBoolean:Zhj,isObject:sya,isPlainObject:aya,isReadableStream:oyj,isRequest:uyj,isResponse:syj,isHeaders:cyj,isUndefined:i_i,isDate:khj,isFile:eyj,isBlob:tyj,isRegExp:Pyj,isFunction:hwe,isStream:nyj,isURLSearchParams:ayj,isTypedArray:vyj,isFileList:ryj,forEach:a_i,merge:llu,extend:fyj,trim:lyj,stripBOM:dyj,inherits:pyj,toFlatObject:_yj,kindOf:oya,kindOfTest:n2t,endsWith:hyj,toArray:yyj,forEachEntry:byj,matchAll:gyj,isHTMLForm:myj,hasOwnProperty:_df,hasOwnProp:_df,reduceDescriptors:mdf,freezeMethods:jyj,toObjectSet:wyj,toCamelCase:Oyj,noop:Dyj,toFiniteNumber:Syj,findKey:bdf,global:Okr,isContextDefined:gdf,ALPHABET:Odf,generateString:Eyj,isSpecCompliantForm:Ayj,toJSONObject:Myj,isAsyncFn:Tyj,isThenable:xyj,setImmediate:Pdf,asap:qyj};function FBn(e,t,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i,this.status=i.status?i.status:null)}Ol.inherits(FBn,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ol.toJSONObject(this.config),code:this.code,status:this.status}}});var jdf=FBn.prototype,wdf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{wdf[e]={value:e}});Object.defineProperties(FBn,wdf);Object.defineProperty(jdf,"isAxiosError",{value:!0});FBn.from=(e,t,r,n,i,a)=>{let u=Object.create(jdf);return Ol.toFlatObject(e,u,function(d){return d!==Error.prototype},f=>f!=="isAxiosError"),FBn.call(u,e.message,t,r,n,i),u.cause=e,u.name=e.name,a&&Object.assign(u,a),u};var sy=FBn;var Ddf=Jo(fzr(),1),cya=Ddf.default;function dlu(e){return Ol.isPlainObject(e)||Ol.isArray(e)}function Edf(e){return Ol.endsWith(e,"[]")?e.slice(0,-2):e}function Sdf(e,t,r){return e?e.concat(t).map(function(i,a){return i=Edf(i),!r&&a?"["+i+"]":i}).join(r?".":""):t}function Cyj(e){return Ol.isArray(e)&&!e.some(dlu)}var Byj=Ol.toFlatObject(Ol,{},null,function(t){return/^is[A-Z]/.test(t)});function Iyj(e,t,r){if(!Ol.isObject(e))throw new TypeError("target must be an object");t=t||new(cya||FormData),r=Ol.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(A,T){return!Ol.isUndefined(T[A])});let n=r.metaTokens,i=r.visitor||o,a=r.dots,u=r.indexes,d=(r.Blob||typeof Blob<"u"&&Blob)&&Ol.isSpecCompliantForm(t);if(!Ol.isFunction(i))throw new TypeError("visitor must be a function");function c(j){if(j===null)return"";if(Ol.isDate(j))return j.toISOString();if(!d&&Ol.isBlob(j))throw new sy("Blob is not supported. Use a Buffer instead.");return Ol.isArrayBuffer(j)||Ol.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function o(j,A,T){let B=j;if(j&&!T&&typeof j=="object"){if(Ol.endsWith(A,"{}"))A=n?A:A.slice(0,-2),j=JSON.stringify(j);else if(Ol.isArray(j)&&Cyj(j)||(Ol.isFileList(j)||Ol.endsWith(A,"[]"))&&(B=Ol.toArray(j)))return A=Edf(A),B.forEach(function(C,N){!(Ol.isUndefined(C)||C===null)&&t.append(u===!0?Sdf([A],N,a):u===null?A:A+"[]",c(C))}),!1}return dlu(j)?!0:(t.append(Sdf(T,A,a),c(j)),!1)}let l=[],m=Object.assign(Byj,{defaultVisitor:o,convertValue:c,isVisitable:dlu});function O(j,A){if(!Ol.isUndefined(j)){if(l.indexOf(j)!==-1)throw Error("Circular reference detected in "+A.join("."));l.push(j),Ol.forEach(j,function(B,F){(!(Ol.isUndefined(B)||B===null)&&i.call(t,B,Ol.isString(F)?F.trim():F,A,m))===!0&&O(B,A?A.concat(F):[F])}),l.pop()}}if(!Ol.isObject(e))throw new TypeError("data must be an object");return O(e),t}var y6r=Iyj;function Adf(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function Mdf(e,t){this._pairs=[],e&&y6r(e,this,t)}var Tdf=Mdf.prototype;Tdf.append=function(t,r){this._pairs.push([t,r])};Tdf.toString=function(t){let r=t?function(n){return t.call(this,n,Adf)}:Adf;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};var xdf=Mdf;function zyj(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pkr(e,t,r){if(!t)return e;let n=r&&r.encode||zyj,i=r&&r.serialize,a;if(i?a=i(t,r):a=Ol.isURLSearchParams(t)?t.toString():new xdf(t,r).toString(n),a){let u=e.indexOf("#");u!==-1&&(e=e.slice(0,u)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var plu=class{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Ol.forEach(this.handlers,function(n){n!==null&&t(n)})}},_lu=plu;var RBn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var qdf=Jo(require("url"),1),Cdf=qdf.default.URLSearchParams;var Bdf={isNode:!0,classes:{URLSearchParams:Cdf,FormData:cya,Blob:typeof Blob<"u"&&Blob||null},protocols:["http","https","file","data"]};var vlu={};Dc(vlu,{hasBrowserEnv:()=>ylu,hasStandardBrowserEnv:()=>Nyj,hasStandardBrowserWebWorkerEnv:()=>Fyj,navigator:()=>hlu,origin:()=>Ryj});var ylu=typeof window<"u"&&typeof document<"u",hlu=typeof navigator=="object"&&navigator||void 0,Nyj=ylu&&(!hlu||["ReactNative","NativeScript","NS"].indexOf(hlu.product)<0),Fyj=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Ryj=ylu&&window.location.href||"http://localhost";var h2={...vlu,...Bdf};function blu(e,t){return y6r(e,new h2.classes.URLSearchParams,Object.assign({visitor:function(r,n,i,a){return h2.isNode&&Ol.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function Lyj(e){return Ol.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Uyj(e){let t={},r=Object.keys(e),n,i=r.length,a;for(n=0;n<i;n++)a=r[n],t[a]=e[a];return t}function Vyj(e){function t(r,n,i,a){let u=r[a++];if(u==="__proto__")return!0;let f=Number.isFinite(+u),d=a>=r.length;return u=!u&&Ol.isArray(i)?i.length:u,d?(Ol.hasOwnProp(i,u)?i[u]=[i[u],n]:i[u]=n,!f):((!i[u]||!Ol.isObject(i[u]))&&(i[u]=[]),t(r,n,i[u],a)&&Ol.isArray(i[u])&&(i[u]=Uyj(i[u])),!f)}if(Ol.isFormData(e)&&Ol.isFunction(e.entries)){let r={};return Ol.forEachEntry(e,(n,i)=>{t(Lyj(n),i,r,0)}),r}return null}var lya=Vyj;function Wyj(e,t,r){if(Ol.isString(e))try{return(t||JSON.parse)(e),Ol.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var glu={transitional:RBn,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){let n=r.getContentType()||"",i=n.indexOf("application/json")>-1,a=Ol.isObject(t);if(a&&Ol.isHTMLForm(t)&&(t=new FormData(t)),Ol.isFormData(t))return i?JSON.stringify(lya(t)):t;if(Ol.isArrayBuffer(t)||Ol.isBuffer(t)||Ol.isStream(t)||Ol.isFile(t)||Ol.isBlob(t)||Ol.isReadableStream(t))return t;if(Ol.isArrayBufferView(t))return t.buffer;if(Ol.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let f;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return blu(t,this.formSerializer).toString();if((f=Ol.isFileList(t))||n.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return y6r(f?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||i?(r.setContentType("application/json",!1),Wyj(t)):t}],transformResponse:[function(t){let r=this.transitional||glu.transitional,n=r&&r.forcedJSONParsing,i=this.responseType==="json";if(Ol.isResponse(t)||Ol.isReadableStream(t))return t;if(t&&Ol.isString(t)&&(n&&!this.responseType||i)){let u=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(f){if(u)throw f.name==="SyntaxError"?sy.from(f,sy.ERR_BAD_RESPONSE,this,null,this.response):f}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:h2.classes.FormData,Blob:h2.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ol.forEach(["delete","get","head","post","put","patch"],e=>{glu.headers[e]={}});var LBn=glu;var Hyj=Ol.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Idf=e=>{let t={},r,n,i;return e&&e.split(`
1789
1789
  `).forEach(function(u){i=u.indexOf(":"),r=u.substring(0,i).trim().toLowerCase(),n=u.substring(i+1).trim(),!(!r||t[r]&&Hyj[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t};var zdf=Symbol("internals");function o_i(e){return e&&String(e).trim().toLowerCase()}function fya(e){return e===!1||e==null?e:Ol.isArray(e)?e.map(fya):String(e)}function Jyj(e){let t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}var Qyj=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function mlu(e,t,r,n,i){if(Ol.isFunction(n))return n.call(this,t,r);if(i&&(t=r),!!Ol.isString(t)){if(Ol.isString(n))return t.indexOf(n)!==-1;if(Ol.isRegExp(n))return n.test(t)}}function Gyj(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function $yj(e,t){let r=Ol.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(i,a,u){return this[n].call(this,t,i,a,u)},configurable:!0})})}var UBn=class{constructor(t){t&&this.set(t)}set(t,r,n){let i=this;function a(f,d,c){let o=o_i(d);if(!o)throw new Error("header name must be a non-empty string");let l=Ol.findKey(i,o);(!l||i[l]===void 0||c===!0||c===void 0&&i[l]!==!1)&&(i[l||d]=fya(f))}let u=(f,d)=>Ol.forEach(f,(c,o)=>a(c,o,d));if(Ol.isPlainObject(t)||t instanceof this.constructor)u(t,r);else if(Ol.isString(t)&&(t=t.trim())&&!Qyj(t))u(Idf(t),r);else if(Ol.isHeaders(t))for(let[f,d]of t.entries())a(d,f,n);else t!=null&&a(r,t,n);return this}get(t,r){if(t=o_i(t),t){let n=Ol.findKey(this,t);if(n){let i=this[n];if(!r)return i;if(r===!0)return Jyj(i);if(Ol.isFunction(r))return r.call(this,i,n);if(Ol.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=o_i(t),t){let n=Ol.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||mlu(this,this[n],n,r)))}return!1}delete(t,r){let n=this,i=!1;function a(u){if(u=o_i(u),u){let f=Ol.findKey(n,u);f&&(!r||mlu(n,n[f],f,r))&&(delete n[f],i=!0)}}return Ol.isArray(t)?t.forEach(a):a(t),i}clear(t){let r=Object.keys(this),n=r.length,i=!1;for(;n--;){let a=r[n];(!t||mlu(this,this[a],a,t,!0))&&(delete this[a],i=!0)}return i}normalize(t){let r=this,n={};return Ol.forEach(this,(i,a)=>{let u=Ol.findKey(n,a);if(u){r[u]=fya(i),delete r[a];return}let f=t?Gyj(a):String(a).trim();f!==a&&delete r[a],r[f]=fya(i),n[f]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){let r=Object.create(null);return Ol.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=t&&Ol.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(`
1790
1790
  `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){let n=new this(t);return r.forEach(i=>n.set(i)),n}static accessor(t){let n=(this[zdf]=this[zdf]={accessors:{}}).accessors,i=this.prototype;function a(u){let f=o_i(u);n[f]||($yj(i,u),n[f]=!0)}return Ol.isArray(t)?t.forEach(a):a(t),this}};UBn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ol.reduceDescriptors(UBn.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});Ol.freezeMethods(UBn);var vz=UBn;function u_i(e,t){let r=this||LBn,n=t||r,i=vz.from(n.headers),a=n.data;return Ol.forEach(e,function(f){a=f.call(r,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function s_i(e){return!!(e&&e.__CANCEL__)}function Ndf(e,t,r){sy.call(this,e??"canceled",sy.ERR_CANCELED,t,r),this.name="CanceledError"}Ol.inherits(Ndf,sy,{__CANCEL__:!0});var ywe=Ndf;function t8t(e,t,r){let n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new sy("Request failed with status code "+r.status,[sy.ERR_BAD_REQUEST,sy.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function Olu(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Plu(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function jkr(e,t){return e&&!Olu(t)?Plu(e,t):t}var kdf=Jo(_cu(),1),epf=Jo(require("http"),1),tpf=Jo(require("https"),1),rpf=Jo(require("util"),1),npf=Jo(Ecu(),1),WDr=Jo(require("zlib"),1);var wkr="1.7.7";function c_i(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}var Kyj=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function jlu(e,t,r){let n=r&&r.Blob||h2.classes.Blob,i=c_i(e);if(t===void 0&&n&&(t=!0),i==="data"){e=i.length?e.slice(i.length+1):e;let a=Kyj.exec(e);if(!a)throw new sy("Invalid URL",sy.ERR_INVALID_URL);let u=a[1],f=a[2],d=a[3],c=Buffer.from(decodeURIComponent(d),f?"base64":"utf8");if(t){if(!n)throw new sy("Blob is not supported",sy.ERR_NOT_SUPPORT);return new n([c],{type:u})}return c}throw new sy("Unsupported protocol "+i,sy.ERR_NOT_SUPPORT)}var Dkr=Jo(require("stream"),1);var Fdf=Jo(require("stream"),1);var wlu=Symbol("internals"),Dlu=class extends Fdf.default.Transform{constructor(t){t=Ol.toFlatObject(t,{maxRate:0,chunkSize:64*1024,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,(n,i)=>!Ol.isUndefined(i[n])),super({readableHighWaterMark:t.chunkSize});let r=this[wlu]={timeWindow:t.timeWindow,chunkSize:t.chunkSize,maxRate:t.maxRate,minChunkSize:t.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",n=>{n==="progress"&&(r.isCaptured||(r.isCaptured=!0))})}_read(t){let r=this[wlu];return r.onReadCallback&&r.onReadCallback(),super._read(t)}_transform(t,r,n){let i=this[wlu],a=i.maxRate,u=this.readableHighWaterMark,f=i.timeWindow,d=1e3/f,c=a/d,o=i.minChunkSize!==!1?Math.max(i.minChunkSize,c*.01):0,l=(O,j)=>{let A=Buffer.byteLength(O);i.bytesSeen+=A,i.bytes+=A,i.isCaptured&&this.emit("progress",i.bytesSeen),this.push(O)?process.nextTick(j):i.onReadCallback=()=>{i.onReadCallback=null,process.nextTick(j)}},m=(O,j)=>{let A=Buffer.byteLength(O),T=null,B=u,F,C=0;if(a){let N=Date.now();(!i.ts||(C=N-i.ts)>=f)&&(i.ts=N,F=c-i.bytes,i.bytes=F<0?-F:0,C=0),F=c-i.bytes}if(a){if(F<=0)return setTimeout(()=>{j(null,O)},f-C);F<B&&(B=F)}B&&A>B&&A-B>o&&(T=O.subarray(B),O=O.subarray(0,B)),l(O,T?()=>{process.nextTick(j,null,T)}:j)};m(t,function O(j,A){if(j)return n(j);A?m(A,O):n(null)})}},Slu=Dlu;var ipf=require("events");var Ldf=require("util"),Udf=require("stream");var{asyncIterator:Rdf}=Symbol,Yyj=async function*(e){e.stream?yield*e.stream():e.arrayBuffer?yield await e.arrayBuffer():e[Rdf]?yield*e[Rdf]():yield e},dya=Yyj;var Xyj=Ol.ALPHABET.ALPHA_DIGIT+"-_",l_i=new Ldf.TextEncoder,v6r=`\r
1791
1791
  `,Zyj=l_i.encode(v6r),kyj=2,Elu=class{constructor(t,r){let{escapeName:n}=this.constructor,i=Ol.isString(r),a=`Content-Disposition: form-data; name="${n(t)}"${!i&&r.name?`; filename="${n(r.name)}"`:""}${v6r}`;i?r=l_i.encode(String(r).replace(/\r?\n|\r\n?/g,v6r)):a+=`Content-Type: ${r.type||"application/octet-stream"}${v6r}`,this.headers=l_i.encode(a+v6r),this.contentLength=i?r.byteLength:r.size,this.size=this.headers.byteLength+this.contentLength+kyj,this.name=t,this.value=r}async*encode(){yield this.headers;let{value:t}=this;Ol.isTypedArray(t)?yield t:yield*dya(t),yield Zyj}static escapeName(t){return String(t).replace(/[\r\n"]/g,r=>({"\r":"%0D","\n":"%0A",'"':"%22"})[r])}},evj=(e,t,r)=>{let{tag:n="form-data-boundary",size:i=25,boundary:a=n+"-"+Ol.generateString(i,Xyj)}=r||{};if(!Ol.isFormData(e))throw TypeError("FormData instance required");if(a.length<1||a.length>70)throw Error("boundary must be 10-70 characters long");let u=l_i.encode("--"+a+v6r),f=l_i.encode("--"+a+"--"+v6r+v6r),d=f.byteLength,c=Array.from(e.entries()).map(([l,m])=>{let O=new Elu(l,m);return d+=O.size,O});d+=u.byteLength*c.length,d=Ol.toFiniteNumber(d);let o={"Content-Type":`multipart/form-data; boundary=${a}`};return Number.isFinite(d)&&(o["Content-Length"]=d),t&&t(o),Udf.Readable.from(async function*(){for(let l of c)yield u,yield*l.encode();yield f}())},Vdf=evj;var Wdf=Jo(require("stream"),1),Alu=class extends Wdf.default.Transform{__transform(t,r,n){this.push(t),n()}_transform(t,r,n){if(t.length!==0&&(this._transform=this.__transform,t[0]!==120)){let i=Buffer.alloc(2);i[0]=120,i[1]=156,this.push(i,r)}this.__transform(t,r,n)}},Hdf=Alu;var tvj=(e,t)=>Ol.isAsyncFn(e)?function(...r){let n=r.pop();e.apply(this,r).then(i=>{try{t?n(null,...t(i)):n(null,i)}catch(a){n(a)}},n)}:e,Jdf=tvj;function rvj(e,t){e=e||10;let r=new Array(e),n=new Array(e),i=0,a=0,u;return t=t!==void 0?t:1e3,function(d){let c=Date.now(),o=n[a];u||(u=c),r[i]=d,n[i]=c;let l=a,m=0;for(;l!==i;)m+=r[l++],l=l%e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-u<t)return;let O=o&&c-o;return O?Math.round(m*1e3/O):void 0}}var Qdf=rvj;function nvj(e,t){let r=0,n=1e3/t,i,a,u=(c,o=Date.now())=>{r=o,i=null,a&&(clearTimeout(a),a=null),e.apply(null,c)};return[(...c)=>{let o=Date.now(),l=o-r;l>=n?u(c,o):(i=c,a||(a=setTimeout(()=>{a=null,u(i)},n-l)))},()=>i&&u(i)]}var Gdf=nvj;var VDr=(e,t,r=3)=>{let n=0,i=Qdf(50,250);return Gdf(a=>{let u=a.loaded,f=a.lengthComputable?a.total:void 0,d=u-n,c=i(d),o=u<=f;n=u;let l={loaded:u,total:f,progress:f?u/f:void 0,bytes:d,rate:c||void 0,estimated:c&&f&&o?(f-u)/c:void 0,event:a,lengthComputable:f!=null,[t?"download":"upload"]:!0};e(l)},r)},VBn=(e,t)=>{let r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},WBn=e=>(...t)=>Ol.asap(()=>e(...t));var $df={flush:WDr.default.constants.Z_SYNC_FLUSH,finishFlush:WDr.default.constants.Z_SYNC_FLUSH},ivj={flush:WDr.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:WDr.default.constants.BROTLI_OPERATION_FLUSH},Kdf=Ol.isFunction(WDr.default.createBrotliDecompress),{http:avj,https:ovj}=npf.default,uvj=/https:?/,Ydf=h2.protocols.map(e=>e+":"),Xdf=(e,[t,r])=>(e.on("end",r).on("error",r),t);function svj(e,t){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,t)}function apf(e,t,r){let n=t;if(!n&&n!==!1){let i=(0,kdf.getProxyForUrl)(r);i&&(n=new URL(i))}if(n){if(n.username&&(n.auth=(n.username||"")+":"+(n.password||"")),n.auth){(n.auth.username||n.auth.password)&&(n.auth=(n.auth.username||"")+":"+(n.auth.password||""));let a=Buffer.from(n.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.headers.host=e.hostname+(e.port?":"+e.port:"");let i=n.hostname||n.host;e.hostname=i,e.host=i,e.port=n.port,e.path=r,n.protocol&&(e.protocol=n.protocol.includes(":")?n.protocol:`${n.protocol}:`)}e.beforeRedirects.proxy=function(a){apf(a,t,a.href)}}var cvj=typeof process<"u"&&Ol.kindOf(process)==="process",lvj=e=>new Promise((t,r)=>{let n,i,a=(d,c)=>{i||(i=!0,n&&n(d,c))},u=d=>{a(d),t(d)},f=d=>{a(d,!0),r(d)};e(u,f,d=>n=d).catch(f)}),fvj=({address:e,family:t})=>{if(!Ol.isString(e))throw TypeError("address must be a string");return{address:e,family:t||(e.indexOf(".")<0?6:4)}},Zdf=(e,t)=>fvj(Ol.isObject(e)?e:{address:e,family:t}),opf=cvj&&function(t){return lvj(async function(n,i,a){let{data:u,lookup:f,family:d}=t,{responseType:c,responseEncoding:o}=t,l=t.method.toUpperCase(),m,O=!1,j;if(f){let cr=Jdf(f,Wr=>Ol.isArray(Wr)?Wr:[Wr]);f=(Wr,gn,Kt)=>{cr(Wr,gn,(Mr,Mn,ar)=>{if(Mr)return Kt(Mr);let mn=Ol.isArray(Mn)?Mn.map(On=>Zdf(On)):[Zdf(Mn,ar)];gn.all?Kt(Mr,mn):Kt(Mr,mn[0].address,mn[0].family)})}}let A=new ipf.EventEmitter,T=()=>{t.cancelToken&&t.cancelToken.unsubscribe(B),t.signal&&t.signal.removeEventListener("abort",B),A.removeAllListeners()};a((cr,Wr)=>{m=!0,Wr&&(O=!0,T())});function B(cr){A.emit("abort",!cr||cr.type?new ywe(null,t,j):cr)}A.once("abort",i),(t.cancelToken||t.signal)&&(t.cancelToken&&t.cancelToken.subscribe(B),t.signal&&(t.signal.aborted?B():t.signal.addEventListener("abort",B)));let F=jkr(t.baseURL,t.url),C=new URL(F,h2.hasBrowserEnv?h2.origin:void 0),N=C.protocol||Ydf[0];if(N==="data:"){let cr;if(l!=="GET")return t8t(n,i,{status:405,statusText:"method not allowed",headers:{},config:t});try{cr=jlu(t.url,c==="blob",{Blob:t.env&&t.env.Blob})}catch(Wr){throw sy.from(Wr,sy.ERR_BAD_REQUEST,t)}return c==="text"?(cr=cr.toString(o),(!o||o==="utf8")&&(cr=Ol.stripBOM(cr))):c==="stream"&&(cr=Dkr.default.Readable.from(cr)),t8t(n,i,{data:cr,status:200,statusText:"OK",headers:new vz,config:t})}if(Ydf.indexOf(N)===-1)return i(new sy("Unsupported protocol "+N,sy.ERR_BAD_REQUEST,t));let U=vz.from(t.headers).normalize();U.set("User-Agent","axios/"+wkr,!1);let{onUploadProgress:re,onDownloadProgress:ge}=t,X=t.maxRate,k,xe;if(Ol.isSpecCompliantForm(u)){let cr=U.getContentType(/boundary=([-_\w\d]{10,70})/i);u=Vdf(u,Wr=>{U.set(Wr)},{tag:`axios-${wkr}-boundary`,boundary:cr&&cr[1]||void 0})}else if(Ol.isFormData(u)&&Ol.isFunction(u.getHeaders)){if(U.set(u.getHeaders()),!U.hasContentLength())try{let cr=await rpf.default.promisify(u.getLength).call(u);Number.isFinite(cr)&&cr>=0&&U.setContentLength(cr)}catch{}}else if(Ol.isBlob(u))u.size&&U.setContentType(u.type||"application/octet-stream"),U.setContentLength(u.size||0),u=Dkr.default.Readable.from(dya(u));else if(u&&!Ol.isStream(u)){if(!Buffer.isBuffer(u))if(Ol.isArrayBuffer(u))u=Buffer.from(new Uint8Array(u));else if(Ol.isString(u))u=Buffer.from(u,"utf-8");else return i(new sy("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",sy.ERR_BAD_REQUEST,t));if(U.setContentLength(u.length,!1),t.maxBodyLength>-1&&u.length>t.maxBodyLength)return i(new sy("Request body larger than maxBodyLength limit",sy.ERR_BAD_REQUEST,t))}let vt=Ol.toFiniteNumber(U.getContentLength());Ol.isArray(X)?(k=X[0],xe=X[1]):k=xe=X,u&&(re||k)&&(Ol.isStream(u)||(u=Dkr.default.Readable.from(u,{objectMode:!1})),u=Dkr.default.pipeline([u,new Slu({maxRate:Ol.toFiniteNumber(k)})],Ol.noop),re&&u.on("progress",Xdf(u,VBn(vt,VDr(WBn(re),!1,3)))));let yt;if(t.auth){let cr=t.auth.username||"",Wr=t.auth.password||"";yt=cr+":"+Wr}if(!yt&&C.username){let cr=C.username,Wr=C.password;yt=cr+":"+Wr}yt&&U.delete("authorization");let St;try{St=Pkr(C.pathname+C.search,t.params,t.paramsSerializer).replace(/^\?/,"")}catch(cr){let Wr=new Error(cr.message);return Wr.config=t,Wr.url=t.url,Wr.exists=!0,i(Wr)}U.set("Accept-Encoding","gzip, compress, deflate"+(Kdf?", br":""),!1);let Ft={path:St,method:l,headers:U.toJSON(),agents:{http:t.httpAgent,https:t.httpsAgent},auth:yt,protocol:N,family:d,beforeRedirect:svj,beforeRedirects:{}};!Ol.isUndefined(f)&&(Ft.lookup=f),t.socketPath?Ft.socketPath=t.socketPath:(Ft.hostname=C.hostname.startsWith("[")?C.hostname.slice(1,-1):C.hostname,Ft.port=C.port,apf(Ft,t.proxy,N+"//"+C.hostname+(C.port?":"+C.port:"")+Ft.path));let Zt,Vt=uvj.test(Ft.protocol);if(Ft.agent=Vt?t.httpsAgent:t.httpAgent,t.transport?Zt=t.transport:t.maxRedirects===0?Zt=Vt?tpf.default:epf.default:(t.maxRedirects&&(Ft.maxRedirects=t.maxRedirects),t.beforeRedirect&&(Ft.beforeRedirects.config=t.beforeRedirect),Zt=Vt?ovj:avj),t.maxBodyLength>-1?Ft.maxBodyLength=t.maxBodyLength:Ft.maxBodyLength=1/0,t.insecureHTTPParser&&(Ft.insecureHTTPParser=t.insecureHTTPParser),j=Zt.request(Ft,function(Wr){if(j.destroyed)return;let gn=[Wr],Kt=+Wr.headers["content-length"];if(ge||xe){let On=new Slu({maxRate:Ol.toFiniteNumber(xe)});ge&&On.on("progress",Xdf(On,VBn(Kt,VDr(WBn(ge),!0,3)))),gn.push(On)}let Mr=Wr,Mn=Wr.req||j;if(t.decompress!==!1&&Wr.headers["content-encoding"])switch((l==="HEAD"||Wr.statusCode===204)&&delete Wr.headers["content-encoding"],(Wr.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":gn.push(WDr.default.createUnzip($df)),delete Wr.headers["content-encoding"];break;case"deflate":gn.push(new Hdf),gn.push(WDr.default.createUnzip($df)),delete Wr.headers["content-encoding"];break;case"br":Kdf&&(gn.push(WDr.default.createBrotliDecompress(ivj)),delete Wr.headers["content-encoding"])}Mr=gn.length>1?Dkr.default.pipeline(gn,Ol.noop):gn[0];let ar=Dkr.default.finished(Mr,()=>{ar(),T()}),mn={status:Wr.statusCode,statusText:Wr.statusMessage,headers:new vz(Wr.headers),config:t,request:Mn};if(c==="stream")mn.data=Mr,t8t(n,i,mn);else{let On=[],Ut=0;Mr.on("data",function(Yr){On.push(Yr),Ut+=Yr.length,t.maxContentLength>-1&&Ut>t.maxContentLength&&(O=!0,Mr.destroy(),i(new sy("maxContentLength size of "+t.maxContentLength+" exceeded",sy.ERR_BAD_RESPONSE,t,Mn)))}),Mr.on("aborted",function(){if(O)return;let Yr=new sy("maxContentLength size of "+t.maxContentLength+" exceeded",sy.ERR_BAD_RESPONSE,t,Mn);Mr.destroy(Yr),i(Yr)}),Mr.on("error",function(Yr){j.destroyed||i(sy.from(Yr,null,t,Mn))}),Mr.on("end",function(){try{let Yr=On.length===1?On[0]:Buffer.concat(On);c!=="arraybuffer"&&(Yr=Yr.toString(o),(!o||o==="utf8")&&(Yr=Ol.stripBOM(Yr))),mn.data=Yr}catch(Yr){return i(sy.from(Yr,null,t,mn.request,mn))}t8t(n,i,mn)})}A.once("abort",On=>{Mr.destroyed||(Mr.emit("error",On),Mr.destroy())})}),A.once("abort",cr=>{i(cr),j.destroy(cr)}),j.on("error",function(Wr){i(sy.from(Wr,null,t,j))}),j.on("socket",function(Wr){Wr.setKeepAlive(!0,1e3*60)}),t.timeout){let cr=parseInt(t.timeout,10);if(Number.isNaN(cr)){i(new sy("error trying to parse `config.timeout` to int",sy.ERR_BAD_OPTION_VALUE,t,j));return}j.setTimeout(cr,function(){if(m)return;let gn=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",Kt=t.transitional||RBn;t.timeoutErrorMessage&&(gn=t.timeoutErrorMessage),i(new sy(gn,Kt.clarifyTimeoutError?sy.ETIMEDOUT:sy.ECONNABORTED,t,j)),B()})}if(Ol.isStream(u)){let cr=!1,Wr=!1;u.on("end",()=>{cr=!0}),u.once("error",gn=>{Wr=!0,j.destroy(gn)}),u.on("close",()=>{!cr&&!Wr&&B(new ywe("Request stream has been aborted",t,j))}),u.pipe(j)}else j.end(u)})};var upf=h2.hasStandardBrowserEnv?function(){let t=h2.navigator&&/(msie|trident)/i.test(h2.navigator.userAgent),r=document.createElement("a"),n;function i(a){let u=a;return t&&(r.setAttribute("href",u),u=r.href),r.setAttribute("href",u),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=i(window.location.href),function(u){let f=Ol.isString(u)?i(u):u;return f.protocol===n.protocol&&f.host===n.host}}():function(){return function(){return!0}}();var spf=h2.hasStandardBrowserEnv?{write(e,t,r,n,i,a){let u=[e+"="+encodeURIComponent(t)];Ol.isNumber(r)&&u.push("expires="+new Date(r).toGMTString()),Ol.isString(n)&&u.push("path="+n),Ol.isString(i)&&u.push("domain="+i),a===!0&&u.push("secure"),document.cookie=u.join("; ")},read(e){let t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var cpf=e=>e instanceof vz?{...e}:e;function i2t(e,t){t=t||{};let r={};function n(c,o,l){return Ol.isPlainObject(c)&&Ol.isPlainObject(o)?Ol.merge.call({caseless:l},c,o):Ol.isPlainObject(o)?Ol.merge({},o):Ol.isArray(o)?o.slice():o}function i(c,o,l){if(Ol.isUndefined(o)){if(!Ol.isUndefined(c))return n(void 0,c,l)}else return n(c,o,l)}function a(c,o){if(!Ol.isUndefined(o))return n(void 0,o)}function u(c,o){if(Ol.isUndefined(o)){if(!Ol.isUndefined(c))return n(void 0,c)}else return n(void 0,o)}function f(c,o,l){if(l in t)return n(c,o);if(l in e)return n(void 0,c)}let d={url:a,method:a,data:a,baseURL:u,transformRequest:u,transformResponse:u,paramsSerializer:u,timeout:u,timeoutMessage:u,withCredentials:u,withXSRFToken:u,adapter:u,responseType:u,xsrfCookieName:u,xsrfHeaderName:u,onUploadProgress:u,onDownloadProgress:u,decompress:u,maxContentLength:u,maxBodyLength:u,beforeRedirect:u,transport:u,httpAgent:u,httpsAgent:u,cancelToken:u,socketPath:u,responseEncoding:u,validateStatus:f,headers:(c,o)=>i(cpf(c),cpf(o),!0)};return Ol.forEach(Object.keys(Object.assign({},e,t)),function(o){let l=d[o]||i,m=l(e[o],t[o],o);Ol.isUndefined(m)&&l!==f||(r[o]=m)}),r}var pya=e=>{let t=i2t({},e),{data:r,withXSRFToken:n,xsrfHeaderName:i,xsrfCookieName:a,headers:u,auth:f}=t;t.headers=u=vz.from(u),t.url=Pkr(jkr(t.baseURL,t.url),e.params,e.paramsSerializer),f&&u.set("Authorization","Basic "+btoa((f.username||"")+":"+(f.password?unescape(encodeURIComponent(f.password)):"")));let d;if(Ol.isFormData(r)){if(h2.hasStandardBrowserEnv||h2.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if((d=u.getContentType())!==!1){let[c,...o]=d?d.split(";").map(l=>l.trim()).filter(Boolean):[];u.setContentType([c||"multipart/form-data",...o].join("; "))}}if(h2.hasStandardBrowserEnv&&(n&&Ol.isFunction(n)&&(n=n(t)),n||n!==!1&&upf(t.url))){let c=i&&a&&spf.read(a);c&&u.set(i,c)}return t};var dvj=typeof XMLHttpRequest<"u",lpf=dvj&&function(e){return new Promise(function(r,n){let i=pya(e),a=i.data,u=vz.from(i.headers).normalize(),{responseType:f,onUploadProgress:d,onDownloadProgress:c}=i,o,l,m,O,j;function A(){O&&O(),j&&j(),i.cancelToken&&i.cancelToken.unsubscribe(o),i.signal&&i.signal.removeEventListener("abort",o)}let T=new XMLHttpRequest;T.open(i.method.toUpperCase(),i.url,!0),T.timeout=i.timeout;function B(){if(!T)return;let C=vz.from("getAllResponseHeaders"in T&&T.getAllResponseHeaders()),U={data:!f||f==="text"||f==="json"?T.responseText:T.response,status:T.status,statusText:T.statusText,headers:C,config:e,request:T};t8t(function(ge){r(ge),A()},function(ge){n(ge),A()},U),T=null}"onloadend"in T?T.onloadend=B:T.onreadystatechange=function(){!T||T.readyState!==4||T.status===0&&!(T.responseURL&&T.responseURL.indexOf("file:")===0)||setTimeout(B)},T.onabort=function(){T&&(n(new sy("Request aborted",sy.ECONNABORTED,e,T)),T=null)},T.onerror=function(){n(new sy("Network Error",sy.ERR_NETWORK,e,T)),T=null},T.ontimeout=function(){let N=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded",U=i.transitional||RBn;i.timeoutErrorMessage&&(N=i.timeoutErrorMessage),n(new sy(N,U.clarifyTimeoutError?sy.ETIMEDOUT:sy.ECONNABORTED,e,T)),T=null},a===void 0&&u.setContentType(null),"setRequestHeader"in T&&Ol.forEach(u.toJSON(),function(N,U){T.setRequestHeader(U,N)}),Ol.isUndefined(i.withCredentials)||(T.withCredentials=!!i.withCredentials),f&&f!=="json"&&(T.responseType=i.responseType),c&&([m,j]=VDr(c,!0),T.addEventListener("progress",m)),d&&T.upload&&([l,O]=VDr(d),T.upload.addEventListener("progress",l),T.upload.addEventListener("loadend",O)),(i.cancelToken||i.signal)&&(o=C=>{T&&(n(!C||C.type?new ywe(null,e,T):C),T.abort(),T=null)},i.cancelToken&&i.cancelToken.subscribe(o),i.signal&&(i.signal.aborted?o():i.signal.addEventListener("abort",o)));let F=c_i(i.url);if(F&&h2.protocols.indexOf(F)===-1){n(new sy("Unsupported protocol "+F+":",sy.ERR_BAD_REQUEST,e));return}T.send(a||null)})};var pvj=(e,t)=>{let{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,i,a=function(c){if(!i){i=!0,f();let o=c instanceof Error?c:this.reason;n.abort(o instanceof sy?o:new ywe(o instanceof Error?o.message:o))}},u=t&&setTimeout(()=>{u=null,a(new sy(`timeout ${t} of ms exceeded`,sy.ETIMEDOUT))},t),f=()=>{e&&(u&&clearTimeout(u),u=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(a):c.removeEventListener("abort",a)}),e=null)};e.forEach(c=>c.addEventListener("abort",a));let{signal:d}=n;return d.unsubscribe=()=>Ol.asap(f),d}},fpf=pvj;var _vj=function*(e,t){let r=e.byteLength;if(!t||r<t){yield e;return}let n=0,i;for(;n<r;)i=n+t,yield e.slice(n,i),n=i},hvj=async function*(e,t){for await(let r of yvj(e))yield*_vj(r,t)},yvj=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:r,value:n}=await t.read();if(r)break;yield n}}finally{await t.cancel()}},Mlu=(e,t,r,n)=>{let i=hvj(e,t),a=0,u,f=d=>{u||(u=!0,n&&n(d))};return new ReadableStream({async pull(d){try{let{done:c,value:o}=await i.next();if(c){f(),d.close();return}let l=o.byteLength;if(r){let m=a+=l;r(m)}d.enqueue(new Uint8Array(o))}catch(c){throw f(c),c}},cancel(d){return f(d),i.return()}},{highWaterMark:2})};var hya=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",ppf=hya&&typeof ReadableStream=="function",vvj=hya&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),_pf=(e,...t)=>{try{return!!e(...t)}catch{return!1}},bvj=ppf&&_pf(()=>{let e=!1,t=new Request(h2.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),dpf=64*1024,Tlu=ppf&&_pf(()=>Ol.isReadableStream(new Response("").body)),_ya={stream:Tlu&&(e=>e.body)};hya&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!_ya[t]&&(_ya[t]=Ol.isFunction(e[t])?r=>r[t]():(r,n)=>{throw new sy(`Response type '${t}' is not supported`,sy.ERR_NOT_SUPPORT,n)})})})(new Response);var gvj=async e=>{if(e==null)return 0;if(Ol.isBlob(e))return e.size;if(Ol.isSpecCompliantForm(e))return(await new Request(h2.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(Ol.isArrayBufferView(e)||Ol.isArrayBuffer(e))return e.byteLength;if(Ol.isURLSearchParams(e)&&(e=e+""),Ol.isString(e))return(await vvj(e)).byteLength},mvj=async(e,t)=>{let r=Ol.toFiniteNumber(e.getContentLength());return r??gvj(t)},hpf=hya&&(async e=>{let{url:t,method:r,data:n,signal:i,cancelToken:a,timeout:u,onDownloadProgress:f,onUploadProgress:d,responseType:c,headers:o,withCredentials:l="same-origin",fetchOptions:m}=pya(e);c=c?(c+"").toLowerCase():"text";let O=fpf([i,a&&a.toAbortSignal()],u),j,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),T;try{if(d&&bvj&&r!=="get"&&r!=="head"&&(T=await mvj(o,n))!==0){let U=new Request(t,{method:"POST",body:n,duplex:"half"}),re;if(Ol.isFormData(n)&&(re=U.headers.get("content-type"))&&o.setContentType(re),U.body){let[ge,X]=VBn(T,VDr(WBn(d)));n=Mlu(U.body,dpf,ge,X)}}Ol.isString(l)||(l=l?"include":"omit");let B="credentials"in Request.prototype;j=new Request(t,{...m,signal:O,method:r.toUpperCase(),headers:o.normalize().toJSON(),body:n,duplex:"half",credentials:B?l:void 0});let F=await fetch(j),C=Tlu&&(c==="stream"||c==="response");if(Tlu&&(f||C&&A)){let U={};["status","statusText","headers"].forEach(k=>{U[k]=F[k]});let re=Ol.toFiniteNumber(F.headers.get("content-length")),[ge,X]=f&&VBn(re,VDr(WBn(f),!0))||[];F=new Response(Mlu(F.body,dpf,ge,()=>{X&&X(),A&&A()}),U)}c=c||"text";let N=await _ya[Ol.findKey(_ya,c)||"text"](F,e);return!C&&A&&A(),await new Promise((U,re)=>{t8t(U,re,{data:N,headers:vz.from(F.headers),status:F.status,statusText:F.statusText,config:e,request:j})})}catch(B){throw A&&A(),B&&B.name==="TypeError"&&/fetch/i.test(B.message)?Object.assign(new sy("Network Error",sy.ERR_NETWORK,e,j),{cause:B.cause||B}):sy.from(B,B&&B.code,e,j)}});var xlu={http:opf,xhr:lpf,fetch:hpf};Ol.forEach(xlu,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});var ypf=e=>`- ${e}`,Ovj=e=>Ol.isFunction(e)||e===null||e===!1,yya={getAdapter:e=>{e=Ol.isArray(e)?e:[e];let{length:t}=e,r,n,i={};for(let a=0;a<t;a++){r=e[a];let u;if(n=r,!Ovj(r)&&(n=xlu[(u=String(r)).toLowerCase()],n===void 0))throw new sy(`Unknown adapter '${u}'`);if(n)break;i[u||"#"+a]=n}if(!n){let a=Object.entries(i).map(([f,d])=>`adapter ${f} `+(d===!1?"is not supported by the environment":"is not available in the build")),u=t?a.length>1?`since :
@@ -1908,7 +1908,7 @@ errors:
1908
1908
  Run ${qc.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
1909
1909
  Run ${qc.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),JBn(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function Tpu({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!tbf(e))return;let i=t??"",a=e.filter(f=>f.isUpgradeAvailable);r!=null&&(a=a.slice(0,r+1));let u=a.sort((f,d)=>f.generatorName.localeCompare(d.generatorName)||f.currentVersion.localeCompare(d.currentVersion));for(let f of u)i+=`
1910
1910
  ${await LDj(f.generatorName)} (${f.apiName!=null?"API: "+f.apiName+", ":""}Group: ${f.generatorGroup}) `+qc.dim(f.currentVersion)+qc.reset(" \u2192 ")+qc.green(f.latestVersion);return i+=`
1911
- `,n?JBn(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function LDj(e){let r=await new ebf.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 UDj({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,c,o,l)=>{f.versions[c]==null&&(f.versions[c]={});let m=yO.getGeneratorNameOrThrow(o.name,l),O=await yO.getLatestGeneratorVersion({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:o.version,channel:i,includeMajor:a,context:l});O!=null&&(f.versions[c][o.name]={previousVersion:o.version,latestVersion:O})},generatorFilter:r,groupFilter:n}),f}let u={type:"multiApi",versions:{}};return await nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(f,d,c,o)=>{if(f==null)return;u.versions[f]==null&&(u.versions[f]={}),u.versions[f][d]==null&&(u.versions[f][d]={});let l=yO.getGeneratorNameOrThrow(c.name,o),m=await yO.getLatestGeneratorVersion({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:a,context:o});m!=null&&(u.versions[f][d][c.name]={previousVersion:c.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),u}async function nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async a=>{await e.runTaskForWorkspace(a,async u=>{let f=await yO.loadGeneratorsConfiguration({absolutePathToWorkspace:a.absoluteFilePath,context:u});if(!(f==null||f.groups==null)){for(let d of f.groups)if(!(i!=null&&d.groupName!==i))for(let c of d.generators)n!=null&&c.name!==n||await r(a.workspaceName,d.groupName,c,u)}})}))}function ibf(e,t,r){let n=[];for(let[i,a]of Object.entries(e))for(let[u,f]of Object.entries(a)){r.debug(`Checking if ${u} in group ${i} has an upgrade available...`);let d=gne(f.latestVersion,f.previousVersion);r.debug(`Latest version: ${f.latestVersion}. `+(d?"Upgrade available.":"No upgrade available.")),n.push({generatorName:u,generatorGroup:i,apiName:t,isUpgradeAvailable:d,currentVersion:f.previousVersion,latestVersion:f.latestVersion})}return n}async function Sva({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await UDj({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a});if(f.type==="multiApi")for(let[d,c]of Object.entries(f.versions))u.push(...ibf(c,d,t.logger));else u.push(...ibf(f.versions,void 0,t.logger))}return u}var K_i=class extends Error{response;request;options;constructor(t,r,n){let i=t.status||t.status===0?t.status:"",a=t.statusText||"",u=`${i} ${a}`.trim(),f=u?`status code ${u}`:"an unknown error";super(`Request failed with ${f}: ${r.method} ${r.url}`),this.name="HTTPError",this.response=t,this.request=r,this.options=n}};var gIn=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var mIn=e=>e!==null&&typeof e=="object";var Y_i=(...e)=>{for(let t of e)if((!mIn(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return Cpu({},...e)},xpu=(e={},t={})=>{let r=new globalThis.Headers(e),n=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[a,u]of i.entries())n&&u==="undefined"||u===void 0?r.delete(a):r.set(a,u);return r};function Eva(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:Cpu(e[r]??[],t[r]??[])}var qpu=(e={},t={})=>({beforeRequest:Eva(e,t,"beforeRequest"),beforeRetry:Eva(e,t,"beforeRetry"),afterResponse:Eva(e,t,"afterResponse"),beforeError:Eva(e,t,"beforeError")}),Cpu=(...e)=>{let t={},r={},n={};for(let i of e)if(Array.isArray(i))Array.isArray(t)||(t=[]),t=[...t,...i];else if(mIn(i)){for(let[a,u]of Object.entries(i))mIn(u)&&a in t&&(u=Cpu(t[a],u)),t={...t,[a]:u};mIn(i.hooks)&&(n=qpu(n,i.hooks),t.hooks=n),mIn(i.headers)&&(r=xpu(r,i.headers),t.headers=r)}return t};var abf=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",n=typeof globalThis.Request=="function";if(r&&n)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(i){if(i instanceof Error&&i.message==="unsupported BodyInit type")return!1;throw i}return e&&!t})(),obf=typeof globalThis.AbortController=="function",ubf=typeof globalThis.ReadableStream=="function",sbf=typeof globalThis.FormData=="function",Ava=["get","post","put","patch","head","delete"],VDj=()=>{};VDj();var cbf={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Mva=2147483647,Tva=Symbol("stop"),lbf={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},fbf={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0};var pbf=e=>Ava.includes(e)?e.toUpperCase():e,WDj=["get","put","head","delete","options","trace"],HDj=[408,413,429,500,502,503,504],JDj=[413,429,503],dbf={limit:2,methods:WDj,statusCodes:HDj,afterStatusCodes:JDj,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},_bf=(e={})=>{if(typeof e=="number")return{...dbf,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...dbf,...e}};async function Bpu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new gIn(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function Ipu(e,{signal:t}){return new Promise((r,n)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",i,{once:!0}));function i(){clearTimeout(a),n(t.reason)}let a=setTimeout(()=>{t?.removeEventListener("abort",i),r()},e)})}var hbf=(e,t)=>{let r={};for(let n in t)!(n in fbf)&&!(n in lbf)&&!(n in e)&&(r[n]=t[n]);return r};var X_i=class e{static create(t,r){let n=new e(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>Mva)throw new RangeError(`The \`timeout\` option cannot be greater than ${Mva}`);await Promise.resolve();let f=await n._fetch();for(let d of n._options.hooks.afterResponse){let c=await d(n.request,n._options,n._decorateResponse(f.clone()));c instanceof globalThis.Response&&(f=c)}if(n._decorateResponse(f),!f.ok&&n._options.throwHttpErrors){let d=new K_i(f,n.request,n._options);for(let c of n._options.hooks.beforeError)d=await c(d);throw d}if(n._options.onDownloadProgress){if(typeof n._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!ubf)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return n._stream(f.clone(),n._options.onDownloadProgress)}return f},u=n._options.retry.methods.includes(n.request.method.toLowerCase())?n._retry(i):i();for(let[f,d]of Object.entries(cbf))u[f]=async()=>{n.request.headers.set("accept",n.request.headers.get("accept")||d);let o=(await u).clone();if(f==="json"){if(o.status===204||(await o.clone().arrayBuffer()).byteLength===0)return"";if(r.parseJson)return r.parseJson(await o.text())}return o[f]()};return u}request;abortController;_retryCount=0;_input;_options;constructor(t,r={}){if(this._input=t,this._options={...r,headers:xpu(this._input.headers,r.headers),hooks:qpu({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:pbf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:_bf(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(obf){this.abortController=new globalThis.AbortController;let n=this._options.signal??this._input.signal;n?.addEventListener("abort",()=>{this.abortController.abort(n.reason)}),this._options.signal=this.abortController.signal}if(abf&&(this._options.duplex="half"),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){let i="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),a=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,i);(sbf&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(a,{...this.request}),this._options)}}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount>this._options.retry.limit||t instanceof gIn)throw t;if(t instanceof K_i){if(!this._options.retry.statusCodes.includes(t.response.status))throw t;let n=t.response.headers.get("Retry-After")??t.response.headers.get("RateLimit-Reset")??t.response.headers.get("X-RateLimit-Reset")??t.response.headers.get("X-Rate-Limit-Reset");if(n&&this._options.retry.afterStatusCodes.includes(t.response.status)){let i=Number(n)*1e3;Number.isNaN(i)?i=Date.parse(n)-Date.now():i>=Date.parse("2024-01-01")&&(i-=Date.now());let a=this._options.retry.maxRetryAfter??i;return i<a?i:a}if(t.response.status===413)throw t}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(r){let n=Math.min(this._calculateRetryDelay(r),Mva);if(this._retryCount<1)throw r;await Ipu(n,{signal:this._options.signal});for(let i of this._options.hooks.beforeRetry)if(await i({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===Tva)return;return this._retry(t)}}async _fetch(){for(let n of this._options.hooks.beforeRequest){let i=await n(this.request,this._options);if(i instanceof Request){this.request=i;break}if(i instanceof Response)return i}let t=hbf(this.request,this._options),r=this.request;return this.request=r.clone(),this._options.timeout===!1?this._options.fetch(r,t):Bpu(r,t,this.abortController,this._options)}_stream(t,r){let n=Number(t.headers.get("content-length"))||0,i=0;return t.status===204?(r&&r({percent:1,totalBytes:n,transferredBytes:i},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(a){let u=t.body.getReader();r&&r({percent:0,transferredBytes:0,totalBytes:n},new Uint8Array);async function f(){let{done:d,value:c}=await u.read();if(d){a.close();return}if(r){i+=c.byteLength;let o=n===0?0:i/n;r({percent:o,transferredBytes:i,totalBytes:n},c)}a.enqueue(c),await f()}await f()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}};var zpu=e=>{let t=(r,n)=>X_i.create(r,Y_i(e,n));for(let r of Ava)t[r]=(n,i)=>X_i.create(n,Y_i(e,i,{method:r}));return t.create=r=>zpu(Y_i(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),zpu(Y_i(e,r))),t.stop=Tva,t},QDj=zpu(),ybf=QDj;var Rbf=Jo(Fbf(),1);function Upu(e){let t=(0,Rbf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var wOf=Jo(qgf(),1),DOf=Jo(jOf(),1),g_u=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},m_u=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function O_u(e,t={}){let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Upu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,wOf.default)(a.toString(),{recursive:!0}),d={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"};t.fullMetadata&&delete d.accept,f&&(d.authorization=`${f.type} ${f.token}`);let c;try{c=await ybf(u,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new g_u(e):l}if(t.allVersions)return c;let o=new m_u(e,r);if(c["dist-tags"][r]){let{time:l}=c;c=c.versions[c["dist-tags"][r]],c.time=l}else if(r){let l=!!c.versions[r];if(n&&!l)for(let[O,j]of Object.entries(c.versions))j.deprecated&&delete c.versions[O];if(!l){let O=Object.keys(c.versions);if(r=DOf.default.maxSatisfying(O,r),!r)throw o}let{time:m}=c;if(c=c.versions[r],c.time=m,!c)throw o}return c}async function lhi(e,t){let{version:r}=await O_u(e.toLowerCase(),t);return r}async function MIn({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:lhi(e.packageName,{version:t?"prerelease":"latest"})}var SOf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Zva=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=tA.Info;constructor(t){this.ttyAwareLogger=new Dva(t);let r=this.getPackageName(),n=this.getPackageVersion(),i=this.getCliName();(r==null||n==null||i==null)&&this.exitProgram(),this.environment={packageName:r,packageVersion:n,cliName:i}}getPackageName(){return"fern-api"}getPackageVersion(){return"0.45.0-rc51"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logDebugInfo(){this.logger.debug(`Running ${qc.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new tMe}failWithoutThrowing(t,r){this.didSucceed=!1,Ova({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),await(await zBn()).flush(),this.exitProgram()}async nudgeUpgradeIfAvaialable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await rbf({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
1911
+ `,n?JBn(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function LDj(e){let r=await new ebf.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 UDj({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,c,o,l)=>{f.versions[c]==null&&(f.versions[c]={});let m=yO.getGeneratorNameOrThrow(o.name,l),O=await yO.getLatestGeneratorVersion({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:o.version,channel:i,includeMajor:a,context:l});O!=null&&(f.versions[c][o.name]={previousVersion:o.version,latestVersion:O})},generatorFilter:r,groupFilter:n}),f}let u={type:"multiApi",versions:{}};return await nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(f,d,c,o)=>{if(f==null)return;u.versions[f]==null&&(u.versions[f]={}),u.versions[f][d]==null&&(u.versions[f][d]={});let l=yO.getGeneratorNameOrThrow(c.name,o),m=await yO.getLatestGeneratorVersion({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:a,context:o});m!=null&&(u.versions[f][d][c.name]={previousVersion:c.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),u}async function nbf({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async a=>{await e.runTaskForWorkspace(a,async u=>{let f=await yO.loadGeneratorsConfiguration({absolutePathToWorkspace:a.absoluteFilePath,context:u});if(!(f==null||f.groups==null)){for(let d of f.groups)if(!(i!=null&&d.groupName!==i))for(let c of d.generators)n!=null&&c.name!==n||await r(a.workspaceName,d.groupName,c,u)}})}))}function ibf(e,t,r){let n=[];for(let[i,a]of Object.entries(e))for(let[u,f]of Object.entries(a)){r.debug(`Checking if ${u} in group ${i} has an upgrade available...`);let d=gne(f.latestVersion,f.previousVersion);r.debug(`Latest version: ${f.latestVersion}. `+(d?"Upgrade available.":"No upgrade available.")),n.push({generatorName:u,generatorGroup:i,apiName:t,isUpgradeAvailable:d,currentVersion:f.previousVersion,latestVersion:f.latestVersion})}return n}async function Sva({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await UDj({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a});if(f.type==="multiApi")for(let[d,c]of Object.entries(f.versions))u.push(...ibf(c,d,t.logger));else u.push(...ibf(f.versions,void 0,t.logger))}return u}var K_i=class extends Error{response;request;options;constructor(t,r,n){let i=t.status||t.status===0?t.status:"",a=t.statusText||"",u=`${i} ${a}`.trim(),f=u?`status code ${u}`:"an unknown error";super(`Request failed with ${f}: ${r.method} ${r.url}`),this.name="HTTPError",this.response=t,this.request=r,this.options=n}};var gIn=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var mIn=e=>e!==null&&typeof e=="object";var Y_i=(...e)=>{for(let t of e)if((!mIn(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return Cpu({},...e)},xpu=(e={},t={})=>{let r=new globalThis.Headers(e),n=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[a,u]of i.entries())n&&u==="undefined"||u===void 0?r.delete(a):r.set(a,u);return r};function Eva(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:Cpu(e[r]??[],t[r]??[])}var qpu=(e={},t={})=>({beforeRequest:Eva(e,t,"beforeRequest"),beforeRetry:Eva(e,t,"beforeRetry"),afterResponse:Eva(e,t,"afterResponse"),beforeError:Eva(e,t,"beforeError")}),Cpu=(...e)=>{let t={},r={},n={};for(let i of e)if(Array.isArray(i))Array.isArray(t)||(t=[]),t=[...t,...i];else if(mIn(i)){for(let[a,u]of Object.entries(i))mIn(u)&&a in t&&(u=Cpu(t[a],u)),t={...t,[a]:u};mIn(i.hooks)&&(n=qpu(n,i.hooks),t.hooks=n),mIn(i.headers)&&(r=xpu(r,i.headers),t.headers=r)}return t};var abf=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",n=typeof globalThis.Request=="function";if(r&&n)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(i){if(i instanceof Error&&i.message==="unsupported BodyInit type")return!1;throw i}return e&&!t})(),obf=typeof globalThis.AbortController=="function",ubf=typeof globalThis.ReadableStream=="function",sbf=typeof globalThis.FormData=="function",Ava=["get","post","put","patch","head","delete"],VDj=()=>{};VDj();var cbf={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Mva=2147483647,Tva=Symbol("stop"),lbf={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},fbf={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0};var pbf=e=>Ava.includes(e)?e.toUpperCase():e,WDj=["get","put","head","delete","options","trace"],HDj=[408,413,429,500,502,503,504],JDj=[413,429,503],dbf={limit:2,methods:WDj,statusCodes:HDj,afterStatusCodes:JDj,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},_bf=(e={})=>{if(typeof e=="number")return{...dbf,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...dbf,...e}};async function Bpu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new gIn(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function Ipu(e,{signal:t}){return new Promise((r,n)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",i,{once:!0}));function i(){clearTimeout(a),n(t.reason)}let a=setTimeout(()=>{t?.removeEventListener("abort",i),r()},e)})}var hbf=(e,t)=>{let r={};for(let n in t)!(n in fbf)&&!(n in lbf)&&!(n in e)&&(r[n]=t[n]);return r};var X_i=class e{static create(t,r){let n=new e(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>Mva)throw new RangeError(`The \`timeout\` option cannot be greater than ${Mva}`);await Promise.resolve();let f=await n._fetch();for(let d of n._options.hooks.afterResponse){let c=await d(n.request,n._options,n._decorateResponse(f.clone()));c instanceof globalThis.Response&&(f=c)}if(n._decorateResponse(f),!f.ok&&n._options.throwHttpErrors){let d=new K_i(f,n.request,n._options);for(let c of n._options.hooks.beforeError)d=await c(d);throw d}if(n._options.onDownloadProgress){if(typeof n._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!ubf)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return n._stream(f.clone(),n._options.onDownloadProgress)}return f},u=n._options.retry.methods.includes(n.request.method.toLowerCase())?n._retry(i):i();for(let[f,d]of Object.entries(cbf))u[f]=async()=>{n.request.headers.set("accept",n.request.headers.get("accept")||d);let o=(await u).clone();if(f==="json"){if(o.status===204||(await o.clone().arrayBuffer()).byteLength===0)return"";if(r.parseJson)return r.parseJson(await o.text())}return o[f]()};return u}request;abortController;_retryCount=0;_input;_options;constructor(t,r={}){if(this._input=t,this._options={...r,headers:xpu(this._input.headers,r.headers),hooks:qpu({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:pbf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:_bf(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(obf){this.abortController=new globalThis.AbortController;let n=this._options.signal??this._input.signal;n?.addEventListener("abort",()=>{this.abortController.abort(n.reason)}),this._options.signal=this.abortController.signal}if(abf&&(this._options.duplex="half"),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){let i="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),a=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,i);(sbf&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(a,{...this.request}),this._options)}}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount>this._options.retry.limit||t instanceof gIn)throw t;if(t instanceof K_i){if(!this._options.retry.statusCodes.includes(t.response.status))throw t;let n=t.response.headers.get("Retry-After")??t.response.headers.get("RateLimit-Reset")??t.response.headers.get("X-RateLimit-Reset")??t.response.headers.get("X-Rate-Limit-Reset");if(n&&this._options.retry.afterStatusCodes.includes(t.response.status)){let i=Number(n)*1e3;Number.isNaN(i)?i=Date.parse(n)-Date.now():i>=Date.parse("2024-01-01")&&(i-=Date.now());let a=this._options.retry.maxRetryAfter??i;return i<a?i:a}if(t.response.status===413)throw t}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(r){let n=Math.min(this._calculateRetryDelay(r),Mva);if(this._retryCount<1)throw r;await Ipu(n,{signal:this._options.signal});for(let i of this._options.hooks.beforeRetry)if(await i({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===Tva)return;return this._retry(t)}}async _fetch(){for(let n of this._options.hooks.beforeRequest){let i=await n(this.request,this._options);if(i instanceof Request){this.request=i;break}if(i instanceof Response)return i}let t=hbf(this.request,this._options),r=this.request;return this.request=r.clone(),this._options.timeout===!1?this._options.fetch(r,t):Bpu(r,t,this.abortController,this._options)}_stream(t,r){let n=Number(t.headers.get("content-length"))||0,i=0;return t.status===204?(r&&r({percent:1,totalBytes:n,transferredBytes:i},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(a){let u=t.body.getReader();r&&r({percent:0,transferredBytes:0,totalBytes:n},new Uint8Array);async function f(){let{done:d,value:c}=await u.read();if(d){a.close();return}if(r){i+=c.byteLength;let o=n===0?0:i/n;r({percent:o,transferredBytes:i,totalBytes:n},c)}a.enqueue(c),await f()}await f()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}};var zpu=e=>{let t=(r,n)=>X_i.create(r,Y_i(e,n));for(let r of Ava)t[r]=(n,i)=>X_i.create(n,Y_i(e,i,{method:r}));return t.create=r=>zpu(Y_i(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),zpu(Y_i(e,r))),t.stop=Tva,t},QDj=zpu(),ybf=QDj;var Rbf=Jo(Fbf(),1);function Upu(e){let t=(0,Rbf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var wOf=Jo(qgf(),1),DOf=Jo(jOf(),1),g_u=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},m_u=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function O_u(e,t={}){let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Upu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,wOf.default)(a.toString(),{recursive:!0}),d={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"};t.fullMetadata&&delete d.accept,f&&(d.authorization=`${f.type} ${f.token}`);let c;try{c=await ybf(u,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new g_u(e):l}if(t.allVersions)return c;let o=new m_u(e,r);if(c["dist-tags"][r]){let{time:l}=c;c=c.versions[c["dist-tags"][r]],c.time=l}else if(r){let l=!!c.versions[r];if(n&&!l)for(let[O,j]of Object.entries(c.versions))j.deprecated&&delete c.versions[O];if(!l){let O=Object.keys(c.versions);if(r=DOf.default.maxSatisfying(O,r),!r)throw o}let{time:m}=c;if(c=c.versions[r],c.time=m,!c)throw o}return c}async function lhi(e,t){let{version:r}=await O_u(e.toLowerCase(),t);return r}async function MIn({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:lhi(e.packageName,{version:t?"prerelease":"latest"})}var SOf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Zva=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=tA.Info;constructor(t){this.ttyAwareLogger=new Dva(t);let r=this.getPackageName(),n=this.getPackageVersion(),i=this.getCliName();(r==null||n==null||i==null)&&this.exitProgram(),this.environment={packageName:r,packageVersion:n,cliName:i}}getPackageName(){return"fern-api"}getPackageVersion(){return"0.45.0-rc52"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logDebugInfo(){this.logger.debug(`Running ${qc.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new tMe}failWithoutThrowing(t,r){this.didSucceed=!1,Ova({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),await(await zBn()).flush(),this.exitProgram()}async nudgeUpgradeIfAvaialable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await rbf({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
1912
1912
  `)||(r+=`
1913
1913
  `),this.logger.info(r))}catch{}}async exitIfFailed(){this.didSucceed||await this.exit()}exitProgram(){process.exit(this.didSucceed?0:1)}longestWorkspaceName;registerWorkspaces(t){let r=fUo(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 V_i(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(a){throw a.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,a),new tMe}finally{n.finish()}return i}async instrumentPostHogEvent(t){(await zBn()).sendEvent(t)}logger=lci(this.log.bind(this));constructTaskInitForWorkspace(t){let r=EOf(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?EOf(this.longestWorkspaceName):r).length,i=r.padEnd(n),a=SOf[this.numTasks++%SOf.length],u=qc.hex(a)(i);return{...this.constructTaskInit(),logPrefix:u}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===h7.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}])}logImmediately(t){let r=t.filter(n=>IIr.indexOf(n.level)>=IIr.indexOf(this.logLevel));this.ttyAwareLogger.log(r,{includeDebugInfo:this.logLevel===tA.Debug})}_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 MIn({cliEnvironment:this.environment,includePreReleases:t}),n=gne(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},a=await Sva({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:a}}return this._isUpgradeAvailable}};function EOf(e){return`[${e}]:`}var tjf=Jo(ejf(),1);async function kQ(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:a={},...u}={}){let f=i.reduce((o,l)=>({...o,[l]:"<redacted>"}),a),d=[t,...r].join(" ");for(let[o,l]of Object.entries(f))d=d.replaceAll(o,l);e?.debug(`+ ${d}`);let c=(0,tjf.default)(t,r,u);return n||(c.stdout?.pipe(process.stdout),c.stderr?.pipe(process.stderr)),c}function o0a(e,{logger:t,...r}={}){return(n,i)=>kQ(t,e,n,{...r,...i})}var s0a=require("fs/promises"),rjf=Jo(Qte(),1),Nxj="buf.gen.yaml",njf="output",Fxj=`${njf}/openapi.yaml`,Rxj=`
1914
1914
  version: v1
@@ -1947,7 +1947,7 @@ ${m}
1947
1947
  `)}];if(t["base-properties"]!=null){let C=Object.fromEntries(Object.entries(l).filter(([U])=>t["base-properties"]?.[U]!=null)),N=_rn({typeName:e,typeNameForBreadcrumb:e,rawObject:{properties:t["base-properties"]},file:a,example:C,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f,depth:d+1});if(N.length>0)return N}let O=typeof m=="string"?m:m.type;if(typeof O!="string")return rWf(l);let j=n.resolveType({type:O,file:a});if(j==null)return[];if(j._type==="named"&&SE(j.declaration)){let C=Object.fromEntries(Object.entries(l).filter(([N])=>t["base-properties"]?.[N]==null));return _rn({typeName:e,typeNameForBreadcrumb:e,rawObject:j.declaration,file:j.file,example:C,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f,depth:d+1})}let A=typeof m!="string"&&typeof m.key=="string"?m.key:void 0;if(A==null)return[];let{[A]:T,...B}=l,F=[];return T==null?F.push({message:`Missing property "${A}"`}):F.push(...SW({rawTypeReference:O,example:T,typeResolver:n,exampleResolver:i,file:a,workspace:u,breadcrumbs:f,depth:d+1})),F.push(...rWf(B)),F}function rWf(e){return Object.keys(e).map(t=>({severity:"error",message:`Unexpected property "${t}"`}))}function cSa({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f,depth:d}){return v3(t,{alias:c=>KVf({rawAlias:c,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f,depth:d}),enum:c=>YVf({rawEnum:c,example:a,breadcrumbs:f}),object:c=>_rn({typeName:e,typeNameForBreadcrumb:e,rawObject:c,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f,depth:d}),discriminatedUnion:c=>nWf({typeName:e,rawUnion:c,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f,depth:d}),undiscriminatedUnion:c=>XVf({rawUnion:c,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f,depth:d})})}var dWf=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,Xhw=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,Zhw=/^\d{4}-\d{2}-\d{2}$/,khw=128;function SW({rawTypeReference:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u,depth:f}){if(f>khw)return[{message:"Example is too deeply nested. This may indicate a circular reference."}];if(typeof t=="string"&&t.startsWith(FFt)){let d=r.resolveType({type:e,file:i});if(d==null)return[];let c=n.parseExampleReference(t);if(c==null)return[];let o=r.resolveNamedType({referenceToNamedType:c.rawTypeReference,file:i});return o==null?[]:sbi({expected:d,actual:o})?[]:[{message:`Expected example to be: ${e}. Example is ${t}.`}]}return dZr({type:e,_default:void 0,validation:void 0,visitor:{primitive:d=>eyw({primitiveType:d,example:t}),named:d=>{let c=r.getDeclarationOfNamedType({referenceToNamedType:d,file:i});return c==null?[]:cSa({typeName:c.typeName,typeDeclaration:c.declaration,file:c.file,example:t,typeResolver:r,exampleResolver:n,workspace:a,breadcrumbs:u,depth:f+1})},map:({keyType:d,valueType:c})=>bD(t)?Object.entries(t).flatMap(([o,l])=>[...SW({rawTypeReference:d,example:o,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,o],depth:f+1}),...SW({rawTypeReference:c,example:l,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,o],depth:f+1})]):Wxe(t,"a map"),list:d=>Array.isArray(t)?t.flatMap((c,o)=>SW({rawTypeReference:d,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${o}`],depth:f+1})):Wxe(t,"a list"),set:d=>{if(!Array.isArray(t))return Wxe(t,"a list");let c=$Lo(t);return c.length>0?[{severity:"error",message:`Set has duplicate elements:
1948
1948
  `+c.map(o=>` - ${JSON.stringify(o)}`).join(`
1949
1949
  `)}]:t.flatMap((o,l)=>SW({rawTypeReference:d,example:o,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${l}`],depth:f+1}))},optional:d=>t==null?[]:SW({rawTypeReference:d,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u,depth:f+1}),unknown:()=>[],literal:d=>{switch(d.type){case"boolean":return Jwe(c=>c===d.boolean,d.boolean.toString())(t);case"string":return Jwe(c=>c===d.string,`"${d.string}"`)(t);default:uc(d)}}}})}function eyw({primitiveType:e,example:t}){return e.v2!=null?aA._visit(e.v2,{integer:r=>tyw({example:t,rules:r.validation}),long:()=>uWf(t),uint:()=>iWf(t),uint64:()=>aWf(t),double:r=>ryw({example:t,rules:r.validation}),float:()=>oWf(t),boolean:()=>sWf(t),string:r=>nyw({example:t,rules:r.validation}),uuid:()=>cWf(t),date:()=>fWf(t),dateTime:()=>lWf(t),base64:()=>WNn(t),bigInteger:()=>WNn(t),_other:()=>{throw new Error("Unknown primitive type v2: "+e.v2)}}):TO._visit(e.v1,{integer:()=>pWf(t),long:()=>uWf(t),uint:()=>iWf(t),uint64:()=>aWf(t),double:()=>_Wf(t),float:()=>oWf(t),boolean:()=>sWf(t),string:()=>WNn(t),uuid:()=>cWf(t),dateTime:()=>lWf(t),date:()=>fWf(t),base64:()=>WNn(t),bigInteger:()=>WNn(t),_other:()=>{throw new Error("Unknown primitive type: "+e.v1)}})}function tyw({example:e,rules:t}){let r=pWf(e);if(r.length>0||t==null)return r;let n=e;return t.min!=null&&(t.exclusiveMin&&n<=t.min||!t.exclusiveMin&&n<t.min)?[{message:`Expected integer to be greater than or equal to ${t.min}. Example is ${e}.`}]:t.max!=null&&(t.exclusiveMax&&n>=t.max||!t.exclusiveMax&&n>t.max)?[{message:`Expected integer to be less than or equal to ${t.max}. Example is ${e}.`}]:t.multipleOf!=null&&n%t.multipleOf!==0?[{message:`Expected integer to be a multiple of ${t.multipleOf}. Example is ${e}.`}]:[]}function ryw({example:e,rules:t}){let r=_Wf(e);if(r.length>0||t==null)return r;let n=e;return t.min!=null&&(t.exclusiveMin&&n<=t.min||!t.exclusiveMin&&n<t.min)?[{message:`Expected double to be greater than or equal to ${t.min}. Example is ${e}.`}]:t.max!=null&&(t.exclusiveMax&&n>=t.max||!t.exclusiveMax&&n>t.max)?[{message:`Expected double to be less than or equal to ${t.max}. Example is ${e}.`}]:t.multipleOf!=null&&n%t.multipleOf!==0?[{message:`Expected double to be a multiple of ${t.multipleOf}. Example is ${e}.`}]:[]}function nyw({example:e,rules:t}){let r=WNn(e);if(r.length>0||t==null)return r;let n=e;return t.minLength!=null&&n.length<t.minLength?[{message:`Expected string length to be greater than or equal to ${t.minLength}. Example is ${e}, which is of length ${n.length}.`}]:t.maxLength!=null&&n.length>t.maxLength?[{message:`Expected string length to be less than or equal to ${t.maxLength}. Example is ${e}, which is of length ${n.length}.`}]:t.pattern!=null&&!new RegExp(t.pattern).test(n)?[{message:`Expected string to match pattern ${t.pattern}. Example is ${e}.`}]:[]}var WNn=Jwe(e=>typeof e=="string","a string"),pWf=Jwe(e=>Number.isInteger(e),"an integer"),iWf=Jwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint"),aWf=Jwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint64"),oWf=Jwe(e=>typeof e=="number","a float"),_Wf=Jwe(e=>typeof e=="number","a double"),uWf=Jwe(e=>Number.isInteger(e),"an integer"),sWf=Jwe(e=>typeof e=="boolean","a boolean"),cWf=Jwe(e=>typeof e=="string"&&Xhw.test(e),"a UUID"),lWf=Jwe(e=>typeof e=="string"&&dWf.test(e),"an ISO 8601 timestamp"),fWf=Jwe(e=>typeof e=="string"&&Zhw.test(e)&&dWf.test(e),"a date");function Jwe(e,t){return r=>e(r)?[]:Wxe(r,t)}function sbi({expected:e,actual:t}){if(e._type==="unknown")return!0;if(e._type==="primitive")return t._type==="primitive"&&e.primitive.v1===t.primitive.v1;if(e._type==="container")switch(e.container._type){case"list":case"set":return t._type==="container"&&t.container._type===e.container._type&&sbi({expected:e.container.itemType,actual:t.container.itemType});case"optional":return sbi({expected:e.container.itemType,actual:t._type==="container"&&t.container._type==="optional"?t.container.itemType:t});case"map":return t._type==="container"&&t.container._type===e.container._type&&sbi({expected:e.container.keyType,actual:t.container.keyType})&&sbi({expected:e.container.valueType,actual:t.container.valueType});case"literal":return t._type!=="container"||t.container._type!==e.container._type?!1:iyw({expected:e.container.literal,actual:t.container.literal});default:uc(e.container)}if(e._type==="named")return t._type==="named"&&t.filepath===e.filepath&&t.rawName===e.rawName;uc(e)}function iyw({expected:e,actual:t}){switch(e.type){case"boolean":return t.type==="boolean"?e.boolean===t.boolean:!1;case"string":return t.type==="string"?e.string===t.string:!1;default:uc(e)}}async function lSa({_enum:e,file:t}){let r=await Promise.all(e.enum.map(async i=>({...await wG(i),name:t.casingsGenerator.generateNameAndWireValue({wireValue:typeof i=="string"?i:i.value,name:HNn(i).name,opts:{casingOverrides:typeof i!="string"?i.casing:void 0}})}))),n;if(e.default!=null&&(n=r.find(i=>i.name.wireValue===e.default),n==null))throw new Error(`Default value ${e.default} not found in enum values`);return{default:n,values:r}}function hWf(e,t){let r=t.enum.find(n=>typeof n=="string"?!1:n.value===e);return{name:typeof r=="string"?e:r?.name??e,wasExplicitlySet:!1}}function HNn(e){return typeof e=="string"?{name:e,wasExplicitlySet:!1}:e.name==null?{name:e.value,wasExplicitlySet:!1}:{name:e.name,wasExplicitlySet:!0}}function dEu({typeName:e,typeDeclaration:t,example:r,typeResolver:n,exampleResolver:i,fileContainingType:a,fileContainingExample:u,workspace:f}){return v3(t,{alias:d=>OD.alias({value:dT({example:r,rawTypeBeingExemplified:typeof d=="string"?d:d.type,fileContainingRawTypeReference:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f})}),object:d=>yWf({typeName:e,rawObject:d,example:r,fileContainingType:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f}),discriminatedUnion:d=>{let c=hrn(d);if(!bD(r))throw new Error("Example is not an object");let o=r[c];if(o==null)throw new Error("Example is missing discriminant: "+c);if(typeof o!="string")throw new Error("Discriminant value is not a string");let l=d.union[o];if(l==null)throw new Error(`${o} is not one of the specified discriminant values.`);let m=typeof l=="string"?l:typeof l.type=="string"?l.type:void 0;return OD.union({discriminant:u.casingsGenerator.generateNameAndWireValue({name:b4r(d).name,wireValue:c}),singleUnionType:oyw({rawValueType:m,rawSingleUnionType:l,fileContainingType:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,example:r,discriminant:c,discriminantValueForExample:o,workspace:f})})},enum:d=>{if(typeof r!="string")throw new Error("Enum example is not a string");return OD.enum({value:u.casingsGenerator.generateNameAndWireValue({name:hWf(r,d).name,wireValue:r})})},undiscriminatedUnion:d=>{for(let[c,o]of d.union.entries())if(SW({rawTypeReference:typeof o=="string"?o:o.type,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:f,breadcrumbs:[],depth:0}).length===0)return OD.undiscriminatedUnion({index:c,singleUnionType:dT({example:r,rawTypeBeingExemplified:typeof o=="string"?o:o.type,fileContainingRawTypeReference:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f})});throw new Error("Example doesn't match any of the undiscriminated unions")}})}function dT({example:e,fileContainingExample:t,rawTypeBeingExemplified:r,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u}){let{resolvedExample:f,file:d}=a.resolveExampleOrThrow({example:e,file:t}),c=a.resolveAllReferencesInExampleOrThrow({example:e,file:t}).resolvedExample;return{shape:dZr({type:r,_default:void 0,validation:void 0,visitor:{primitive:l=>ayw({example:f,typeBeingExemplified:l.v1}),map:({keyType:l,valueType:m})=>{if(!bD(f))throw new Error("Example is not an object");return Em.container(DE.map({map:Object.entries(f).map(([O,j])=>({key:dT({example:O,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u}),value:dT({example:j,fileContainingExample:d,rawTypeBeingExemplified:m,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})})),keyType:n.parseTypeReference(l),valueType:n.parseTypeReference(m)}))},list:l=>{if(!Array.isArray(f))throw new Error("Example is not a list");return Em.container(DE.list({list:f.map(m=>dT({example:m,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})),itemType:n.parseTypeReference(l)}))},set:l=>{if(!Array.isArray(f))throw new Error("Example is not a list");return Em.container(DE.set({set:f.map(m=>dT({example:m,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})),itemType:n.parseTypeReference(l)}))},optional:l=>Em.container(DE.optional({optional:f!=null?dT({example:f,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u}):void 0,valueType:n.parseTypeReference(l)})),literal:l=>{switch(l.type){case"boolean":return Em.container(DE.literal({literal:$v.boolean(l.boolean)}));case"string":return Em.container(DE.literal({literal:$v.string({original:l.string})}));default:uc(l)}},named:l=>{let m=i.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:r,file:n}),O=n.parseTypeReference(l);if(O.type!=="named")throw new Error("Type reference is not to a named type.");let j={typeId:O.typeId,fernFilepath:O.fernFilepath,name:O.name};return Em.named({typeName:j,shape:dEu({typeName:j,typeDeclaration:m.declaration,fileContainingType:m.file,fileContainingExample:d,example:f,typeResolver:i,exampleResolver:a,workspace:u})})},unknown:()=>Em.unknown(c)}}),jsonExample:c}}function ayw({example:e,typeBeingExemplified:t}){return TO._visit(t,{string:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.string({original:e}))},dateTime:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.datetime({datetime:new Date(e),raw:e}))},date:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.date(e))},base64:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.string({original:e}))},uint:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.uint(e))},uint64:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.uint64(e))},integer:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.integer(e))},float:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.float(e))},double:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.double(e))},long:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Em.primitive($v.long(e))},boolean:()=>{if(typeof e!="boolean")throw new Error("Example is not a boolean");return Em.primitive($v.boolean(e))},uuid:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.uuid(e))},bigInteger:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Em.primitive($v.string({original:e}))},_other:()=>{throw new Error("Unknown primitive type: "+t)}})}function yWf({typeName:e,rawObject:t,example:r,fileContainingType:n,fileContainingExample:i,typeResolver:a,exampleResolver:u,workspace:f}){if(!bD(r))throw new Error(`Example is not an object. Got: ${JSON.stringify(r)}`);return OD.object({properties:t.properties!=null||t.extends!=null?Object.entries(r).reduce((d,[c,o])=>{let l=vWf({typeName:e,wirePropertyKey:c,rawObject:t,typeResolver:a,file:n});if(l==null)return d;let m=dT({example:o,fileContainingExample:i,rawTypeBeingExemplified:typeof l.rawPropertyType=="string"?l.rawPropertyType:l.rawPropertyType.type,fileContainingRawTypeReference:l.file,typeResolver:a,exampleResolver:u,workspace:f});return d.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:c,property:l.rawPropertyType}).name,wireValue:c}),value:m,originalTypeDeclaration:l.typeName}),d},[]):[]})}function vWf({typeName:e,wirePropertyKey:t,rawObject:r,typeResolver:n,file:i}){let a=r.properties?.[t];return a!=null?{typeName:e,rawPropertyType:a,file:i}:cbi({wirePropertyKey:t,extends_:r.extends,typeResolver:n,file:i})}function cbi({wirePropertyKey:e,extends_:t,typeResolver:r,file:n}){if(t!=null){let i=typeof t=="string"?[t]:t;for(let a of i){let u=r.resolveNamedTypeOrThrow({referenceToNamedType:a,file:n});if(u._type!=="named"||!SE(u.declaration))throw new Error("Extension is not of a named object");let f=vWf({wirePropertyKey:e,rawObject:u.declaration,typeResolver:r,typeName:u.name,file:u.file});if(f!=null)return f}}}function oyw({rawValueType:e,rawSingleUnionType:t,fileContainingType:r,fileContainingExample:n,typeResolver:i,exampleResolver:a,example:u,discriminant:f,discriminantValueForExample:d,workspace:c}){let o=n.casingsGenerator.generateNameAndWireValue({name:VNn({unionKey:d,rawSingleUnionType:t}).name,wireValue:d});if(e==null)return{wireDiscriminantValue:o,shape:_3.noProperties()};let l=fEu({rawSingleUnionType:t,rawValueType:e,parsedValueType:r.parseTypeReference(e),file:r,typeResolver:i});switch(l.propertiesType){case"singleProperty":{if(!bD(u))throw new Error("Example is not an object");return{wireDiscriminantValue:o,shape:_3.singleProperty(dT({example:u[l.name.wireValue],rawTypeBeingExemplified:e,typeResolver:i,exampleResolver:a,fileContainingRawTypeReference:r,fileContainingExample:n,workspace:c}))}}case"samePropertiesAsObject":{if(!bD(u))throw new Error("Example is not an object");let{[f]:m,...O}=u,j=i.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:e,file:r});for(;Qzr(j.declaration);)j=i.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:typeof j.declaration=="string"?j.declaration:j.declaration.type,file:r});if(!SE(j.declaration))throw new Error(`${e} is not an object`);let A={typeId:l.typeId,fernFilepath:l.fernFilepath,name:l.name};return{wireDiscriminantValue:o,shape:_3.samePropertiesAsObject({typeId:PP.generateTypeId(A),object:yWf({rawObject:j.declaration,example:O,fileContainingType:j.file,fileContainingExample:n,typeResolver:i,exampleResolver:a,typeName:A,workspace:c})})}}default:uc(l)}}async function fSa({file:e,queryParameterKey:t,queryParameter:r}){let{name:n}=HSr({queryParameterKey:t,queryParameter:r}),i=e.parseTypeReference(r);return{...await wG(r),name:e.casingsGenerator.generateNameAndWireValue({wireValue:t,name:n}),valueType:i,allowMultiple:typeof r!="string"&&r["allow-multiple"]!=null?r["allow-multiple"]:!1}}function HSr({queryParameterKey:e,queryParameter:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function F2t(e){return typeof e.request!="string"&&e.request?.["path-parameters"]?e.request?.["path-parameters"]:e["path-parameters"]!=null?e["path-parameters"]:{}}function uyw(e){let t=JSON.stringify(e);return bWf.default.createHash("sha256").update(t).digest("hex")}function gWf({service:e,endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,variableResolver:u,file:f,workspace:d}){let c=cyw({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:a,variableResolver:u,file:f,workspace:d});return{id:r.name??uyw(r),name:r.name!=null?f.casingsGenerator.generateName(r.name):void 0,docs:r.docs,url:_yw({file:f,service:e,endpoint:t,example:r,pathParams:c}),...c,...lyw({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:a,file:f,workspace:d}),queryParameters:r["query-parameters"]!=null?Object.entries(r["query-parameters"]).map(([o,l])=>{let m=typeof t.request!="string"?t.request?.["query-parameters"]?.[o]:void 0;if(m==null)throw new Error(`Query parameter ${o} does not exist`);return{name:f.casingsGenerator.generateNameAndWireValue({name:HSr({queryParameterKey:o,queryParameter:m}).name,wireValue:o}),value:dT({example:l,rawTypeBeingExemplified:typeof m=="string"?m:m.type,typeResolver:n,exampleResolver:a,fileContainingRawTypeReference:f,fileContainingExample:f,workspace:d}),shape:syw({queryParameter:m})}}):[],request:fyw({endpoint:t,example:r,typeResolver:n,exampleResolver:a,file:f,workspace:d}),response:dyw({endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,file:f,workspace:d})}}function syw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function cyw({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,variableResolver:a,file:u,workspace:f}){let d=[],c=[],o=[],l=({name:m,pathParameterDeclaration:O,examplePathParameter:j})=>{let A=lbi({parameter:O,variableResolver:a,file:u});return{name:m,value:dT({example:j,rawTypeBeingExemplified:A.rawType,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:A.file,fileContainingExample:u,workspace:f})}};if(r["path-parameters"]!=null){let m=F2t(t);for(let[O,j]of Object.entries(r["path-parameters"])){let A=u.rootApiFile["path-parameters"]?.[O],T=e["path-parameters"]?.[O],B=m[O];if(A!=null)d.push(l({name:u.casingsGenerator.generateName(O),pathParameterDeclaration:A,examplePathParameter:j}));else if(B!=null)o.push(l({name:u.casingsGenerator.generateName(O),pathParameterDeclaration:B,examplePathParameter:j}));else if(T!=null)c.push(l({name:u.casingsGenerator.generateName(O),pathParameterDeclaration:T,examplePathParameter:j}));else throw new Error(`Path parameter ${O} does not exist`)}}return{rootPathParameters:d,endpointPathParameters:o,servicePathParameters:c}}function lyw({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:u}){let f=[],d=[];if(r.headers!=null)for(let[c,o]of Object.entries(r.headers)){let l=typeof t.request!="string"?t.request?.headers?.[c]:void 0,m=e.headers?.[c];if(l!=null)d.push({name:a.casingsGenerator.generateNameAndWireValue({name:Z8t({headerKey:c,header:l}).name,wireValue:c}),value:dT({example:o,rawTypeBeingExemplified:typeof l=="string"?l:l.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else if(m!=null)f.push({name:a.casingsGenerator.generateNameAndWireValue({name:Z8t({headerKey:c,header:m}).name,wireValue:c}),value:dT({example:o,rawTypeBeingExemplified:typeof m=="string"?m:m.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else throw new Error(`Header ${c} does not exist`)}return{endpointHeaders:d,serviceHeaders:f}}function fyw({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){let u=typeof e.request!="string"?e.request?.body:e.request;if(u==null||typeof u=="string"&&Tfi(u)!=null)return;if(!p2(u))return VQ.reference(dT({example:t.request,rawTypeBeingExemplified:typeof u!="string"?u.type:u,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}));if(!t.request)return;if(!bD(t.request))throw new Error(`Example is not an object. Got: ${JSON.stringify(t.request)}`);let f=[];for(let[d,c]of Object.entries(t.request)){let o=u.properties?.[d],l=typeof o=="string"?o:o?.type;if(!(l!=null&&STe(l)!=null))if(o!=null)f.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:d,property:o}).name,wireValue:d}),value:dT({example:c,rawTypeBeingExemplified:typeof o!="string"?o.type:o,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let m=cbi({extends_:u.extends,wirePropertyKey:d,typeResolver:r,file:i});if(m==null)throw new Error("Could not find original type declaration for property: "+d);f.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:d,property:m.rawPropertyType}).name,wireValue:d}),value:dT({example:c,rawTypeBeingExemplified:typeof m.rawPropertyType=="string"?m.rawPropertyType:m.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:m.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:m.typeName})}}return VQ.inlinedRequestBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t.request,file:i}).resolvedExample,properties:f})}function dyw({endpoint:e,example:t,typeResolver:r,errorResolver:n,exampleResolver:i,file:a,workspace:u}){return t.response==null?g7.ok(JN.body(void 0)):_Zr(e,t.response,{body:f=>{if(f.error!=null){let d=n.getDeclarationOrThrow(f.error,a);return g7.error({error:y4r({errorName:f.error,file:a}),body:d.declaration.type!=null?dT({example:f.body,rawTypeBeingExemplified:d.declaration.type,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:d.file,fileContainingExample:a,workspace:u}):void 0})}return g7.ok(JN.body(pyw({endpoint:e,example:f,typeResolver:r,exampleResolver:i,file:a,workspace:u})))},stream:f=>{let d=typeof e["response-stream"]=="string"?e["response-stream"]:e["response-stream"]?.type;return g7.ok(JN.stream(f.stream.map(c=>{if(d!=null)return dT({example:c,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})}).filter(YA)))},events:f=>{let d=typeof e["response-stream"]=="string"?e["response-stream"]:e["response-stream"]?.type;return g7.ok(JN.sse(f.stream.map(({event:c,data:o})=>{if(d==null)return;let l=dT({example:o,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u});return{event:c,data:l}}).filter(YA)))}})}function pyw({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){let u=typeof e.response!="string"?e.response?.type:e.response;if(u!=null&&t.body!=null)return dT({example:t.body,rawTypeBeingExemplified:u,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})}function _yw({file:e,service:t,endpoint:r,example:n,pathParams:i}){let a=oP(e.rootApiFile["base-path"]??"",t["base-path"],r.path);if(n["path-parameters"]!=null)for(let u of[...i.endpointPathParameters,...i.servicePathParameters,...i.rootPathParameters])a=a.replaceAll(`{${u.name.originalName}}`,`${u.value.jsonExample}`);return a=a.replaceAll("//","/"),a.startsWith("/")||(a=`/${a}`),a}async function mWf({endpoint:e,file:t,typeResolver:r}){return{body:await hyw({endpoint:e,file:t,typeResolver:r}),statusCode:typeof e.response!="string"?e.response?.["status-code"]:void 0}}async function hyw({endpoint:e,file:t,typeResolver:r}){let n=await yyw({endpoint:e,file:t,typeResolver:r}),i=await vyw({endpoint:e,file:t,typeResolver:r});if(n!=null&&i!=null){let a;switch(n.type){case"fileDownload":{a=$re.fileDownload({...n});break}case"json":{a=$re.json({...n.value});break}case"text":{a=$re.text({...n});break}default:uc(n)}return pz.streamParameter({nonStreamResponse:a,streamResponse:i})}else{if(n!=null)return n;if(i!=null)return pz.streaming(i)}}async function yyw({endpoint:e,file:t,typeResolver:r}){let{response:n}=e;if(n!=null){let i=typeof n!="string"?n.docs:void 0,a=typeof n=="string"?n:n.type;return STe(a)!=null?pz.fileDownload({docs:i}):xfi(a)!=null?pz.text({docs:i}):await byw(n,i,t,r)}}async function vyw({endpoint:e,file:t,typeResolver:r}){let{["response-stream"]:n}=e;if(n!=null){let i=typeof n!="string"?n.docs:void 0,a=typeof n=="string"?n:n.type,u=typeof n=="string"?"json":n.format??"json";return nqn(a)?Kre.text({docs:i}):typeof n!="string"&&u==="sse"?Kre.sse({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0}):Kre.json({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0})}}async function byw(e,t,r,n){let i=r.parseTypeReference(e),a=n.resolveTypeOrThrow({type:typeof e!="string"?e.type:e,file:r}),u=typeof e!="string"?e.property:void 0;return u!=null?pz.json(DCt.nestedPropertyAsResponse({docs:t,responseBodyType:i,responseProperty:await abi({typeResolver:n,file:r,resolvedType:a,property:u})})):pz.json(DCt.response({docs:t,responseBodyType:i}))}async function OWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.cursor({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.cursor}),next:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.next_cursor}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results})})}async function PWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.offset({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.offset}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results}),step:i.step!=null?await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.step}):void 0,hasNextPage:i.hasNextPage!=null?await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.hasNextPage}):void 0})}function jWf(e){return gyw(e)?{type:"offset",offset:z2t(e.offset),results:VSr(e.results),step:e.step!=null?z2t(e.step):void 0,hasNextPage:e["has-next-page"]!=null?VSr(e["has-next-page"]):void 0}:{type:"cursor",cursor:z2t(e.cursor),next_cursor:VSr(e.next_cursor),results:VSr(e.results)}}function gyw(e){return e.offset!=null&&e.results!=null}async function wWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n}){let i=typeof n.pagination=="boolean"?t.rootApiFile.pagination:n.pagination;if(!i)return;let a=jWf(i);switch(a.type){case"cursor":return await OWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});case"offset":return PWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});default:uc(a)}}function DWf({errors:e,file:t}){return e==null?[]:Object.values(e).map(r=>{let n=typeof r=="string"?r:r.error,i=y4r({errorName:n,file:t});return{docs:typeof r!="string"?r.docs:void 0,error:i}})}function dSa({source:e}){return{filepath:e.relativeFilePath,packageName:e.packageName,options:e.csharpNamespace!=null?{csharp:{namespace:e.csharpNamespace}}:void 0}}function SWf({source:e,serviceNameOverride:t}){let r=t??e.serviceName;if(r!=null)return{file:dSa({source:e}),name:v4r.generateName(r)}}async function EWf({file:e,serviceDeclaration:t,sourceResolver:r}){return cZr(t.source)?await MWf(e,t.source,r,t.transport?.grpc?.["service-name"]):vTe.http()}async function AWf({file:e,serviceTransport:t,endpointDeclaration:r,sourceResolver:n}){let i=t.type==="grpc",a=t.type==="http",u=cZr(r.source),f=!u;if(i){if(a&&u)throw new Error("Cannot have a grpc endpoint on an http service");if(i&&f)return vTe.http();if(i&&u){let d=r.source,c=r.transport?.grpc?.["service-name"];return c?await MWf(e,d,n,c):void 0}throw new Error(`Internal error; failed to determine endpoint transport for
1950
- ${JSON.stringify(r)}"`)}}async function MWf(e,t,r,n){let i=await r.resolveSourceOrThrow({source:t,file:e});if(i==null||i.type!=="protobuf")throw new Error(`Expected a protobuf source for ${t.proto}.`);let a=SWf({source:i,serviceNameOverride:n});if(a==null)throw new Error(`Failed to resolve service name from ${i.relativeFilePath}.`);return vTe.grpc({service:a})}async function TWf({rootDefaultUrl:e,rootPathParameters:t,serviceDefinition:r,file:n,errorResolver:i,typeResolver:a,propertyResolver:u,exampleResolver:f,variableResolver:d,sourceResolver:c,globalErrors:o,workspace:l}){let m=await JNn({pathParameters:r["path-parameters"],location:bTe.Service,file:n,variableResolver:d}),O=await EWf({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Rne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:Vxe(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([T,B])=>Hxe({headerKey:T,header:B,file:n}))):[],pathParameters:m,encoding:jyw(O,r),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([T,B])=>{let F=await JNn({pathParameters:F2t(B),location:bTe.Endpoint,file:n,variableResolver:d}),C={...await wG(B),id:"",name:n.casingsGenerator.generateName(T),displayName:B["display-name"],auth:B.auth??r.auth,idempotent:B.idempotent??r.idempotent??!1,baseUrl:B.url??r.url??e,method:B.method!=null?Pyw(B.method):Qre.Post,basePath:B["base-path"]!=null?Vxe(B["base-path"]):void 0,path:Vxe(B.path),fullPath:Vxe(B["base-path"]!=null?oP(B["base-path"],B.path):n.rootApiFile["base-path"]!=null?oP(n.rootApiFile["base-path"],r["base-path"],B.path):oP(r["base-path"],B.path)),pathParameters:F,allPathParameters:B["base-path"]!=null?F:[...t,...m,...F],queryParameters:typeof B.request!="string"&&B.request?.["query-parameters"]!=null?await Promise.all(Object.entries(B.request["query-parameters"]).map(async([N,U])=>await fSa({file:n,queryParameterKey:N,queryParameter:U}))):[],headers:typeof B.request!="string"&&B.request?.headers!=null?await Promise.all(Object.entries(B.request.headers).map(([N,U])=>Hxe({headerKey:N,header:U,file:n}))):[],requestBody:VVf({request:B.request,file:n}),sdkRequest:await GVf({service:r,request:B.request,endpoint:B,endpointKey:T,file:n,typeResolver:a,propertyResolver:u}),response:await mWf({endpoint:B,file:n,typeResolver:a}),errors:[...DWf({errors:B.errors,file:n}),...o],userSpecifiedExamples:B.examples!=null?B.examples.map(N=>({example:gWf({service:r,endpoint:B,example:N,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:N["code-samples"]?.map(U=>$Vf({codeSample:U,file:n}))})):[],autogeneratedExamples:[],pagination:await wWf({propertyResolver:u,file:n,endpointName:T,endpointSchema:B}),transport:await AWf({file:n,serviceTransport:O,endpointDeclaration:B,sourceResolver:c})};return C.id=PP.generateEndpointId(j,C),C}))}}async function JNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>myw({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function myw({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await wG(t),name:n.casingsGenerator.generateName(e),valueType:Oyw({parameter:t,variableResolver:i,file:n}),location:r,variable:Zqn(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function Oyw({parameter:e,variableResolver:t,file:r}){let n=lbi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function lbi({parameter:e,variableResolver:t,file:r}){let n=pSa({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function pSa({parameter:e,variableResolver:t,file:r}){if(Zqn(e)){let n=typeof e=="string"?e:e.variable,i=t.getDeclaration(n,r);return i==null?void 0:{rawType:typeof i.declaration=="string"?i.declaration:i.declaration.type,file:i.file}}else return{file:r,rawType:typeof e=="string"?e:e.type}}function Pyw(e){switch(e){case"GET":return Qre.Get;case"POST":return Qre.Post;case"PUT":return Qre.Put;case"PATCH":return Qre.Patch;case"DELETE":return Qre.Delete;default:uc(e)}}async function Hxe({headerKey:e,header:t,file:r}){let{name:n}=Z8t({headerKey:e,header:t});return{...await wG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function Z8t({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function jyw(e,t){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:uc(e)}}var DG={};Dc(DG,{validateObjectExample:()=>_rn,validateTypeExample:()=>cSa,validateTypeReferenceExample:()=>SW});function xWf(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function _Sa({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function qWf({endpointResolver:e,propertyResolver:t,file:r,refreshTokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:PP.generateEndpointIdFromResolvedEndpoint(i),serviceId:PP.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:_Sa({fernFilePath:i.file.fernFilepath})?void 0:PP.generateSubpackageId(i.file.fernFilepath)},requestProperties:{refreshToken:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.refresh_token})},responseProperties:{accessToken:await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.access_token}),expiresIn:n.responseProperties.expires_in!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.expires_in}):void 0,refreshToken:n.responseProperties.refresh_token!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.refresh_token}):void 0}}}async function CWf({endpointResolver:e,propertyResolver:t,file:r,tokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:PP.generateEndpointIdFromResolvedEndpoint(i),serviceId:PP.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:_Sa({fernFilePath:i.file.fernFilepath})?void 0:PP.generateSubpackageId(i.file.fernFilepath)},requestProperties:{clientId:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.client_id}),clientSecret:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.client_secret}),scopes:n.requestProperties.scopes!=null?await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.scopes}):void 0},responseProperties:{accessToken:await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.access_token}),expiresIn:n.responseProperties.expires_in!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.expires_in}):void 0,refreshToken:n.responseProperties.refresh_token!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.refresh_token}):void 0}}}async function BWf({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await CWf({propertyResolver:e,endpointResolver:t,file:r,tokenEndpoint:i});if(u==null)throw new Error("Failed to convert OAuth token endpoint.");let f=a!=null?await qWf({propertyResolver:e,endpointResolver:t,file:r,refreshTokenEndpoint:a}):void 0;return{clientIdEnvVar:n["client-id-env"],clientSecretEnvVar:n["client-secret-env"],tokenPrefix:n["token-prefix"],tokenHeader:n["token-header"],scopes:n.scopes,tokenEndpoint:u,refreshEndpoint:f}}var fbi={requestProperties:{type:"access_token",client_id:["client_id"],client_secret:["client_secret"],scopes:void 0},responseProperties:{type:"access_token",access_token:["access_token"],expires_in:void 0,refresh_token:void 0}},pEu={requestProperties:{type:"refresh_token",refresh_token:["refresh_token"]},responseProperties:{type:"access_token",access_token:["access_token"],refresh_token:void 0,expires_in:void 0}};function IWf(e){return{endpoint:e["get-token"].endpoint,requestProperties:wyw({requestProperties:e["get-token"]?.["request-properties"]}),responseProperties:Dyw({responseProperties:e["get-token"]?.["response-properties"]})}}function zWf(e){if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Syw({requestProperties:e["refresh-token"]?.["request-properties"]}),responseProperties:Eyw({responseProperties:e["refresh-token"]?.["response-properties"]})}}function wyw({requestProperties:e}){if(e==null)return fbi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?z2t(t):fbi.requestProperties.client_id,client_secret:r!=null?z2t(r):fbi.requestProperties.client_secret,scopes:n!=null?z2t(n):fbi.requestProperties.scopes}}function Dyw({responseProperties:e}){return NWf({responseProperties:e,defaultValue:fbi.responseProperties})}function Syw({requestProperties:e}){if(e==null)return pEu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?z2t(t):pEu.requestProperties.refresh_token}}function Eyw({responseProperties:e}){return NWf({responseProperties:e,defaultValue:pEu.responseProperties})}function NWf({responseProperties:e,defaultValue:t}){if(e==null)return t;let r=e["access-token"],n=e["expires-in"],i=e["refresh-token"];return{type:"access_token",access_token:r!=null?VSr(r):t.access_token,expires_in:n!=null?VSr(n):t.expires_in,refresh_token:i!=null?VSr(i):t.refresh_token}}async function VWf({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:xzr.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return qfi(e.auth,{single:async a=>{let u=await FWf({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:xzr.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:xzr.Any,schemes:await Promise.all(a.map(async u=>await FWf({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function FWf({reference:e,authSchemeDeclarations:t,file:r,propertyResolver:n,endpointResolver:i}){let a=(f,d)=>{let c=t?.[f];if(c==null)throw new Error("Unknown auth scheme: "+f);return neu(c,{header:async o=>$V.header({docs:d,name:r.casingsGenerator.generateNameAndWireValue({name:o.name??f,wireValue:o.header}),valueType:r.parseTypeReference(o.type??"string"),prefix:o.prefix,headerEnvVar:o.env}),basic:async o=>LWf({file:r,docs:d,rawScheme:o}),bearer:async o=>RWf({file:r,docs:d,rawScheme:o}),oauth:async o=>await UWf({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return RWf({file:r,docs:void 0,rawScheme:void 0});case"basic":return LWf({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await UWf({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function RWf({file:e,docs:t,rawScheme:r}){return $V.bearer({docs:t,token:e.casingsGenerator.generateName(r?.token?.name??"token"),tokenEnvVar:r?.token?.env})}function LWf({file:e,docs:t,rawScheme:r}){return $V.basic({docs:t,username:e.casingsGenerator.generateName(r?.username?.name??"username"),usernameEnvVar:r?.username?.env,password:e.casingsGenerator.generateName(r?.password?.name??"password"),passwordEnvVar:r?.password?.env})}async function UWf({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r?.type){case"client-credentials":return $V.oauth({docs:t,configuration:qzr.clientCredentials(await BWf({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:IWf(r),refreshTokenEndpoint:zWf(r)}))});default:throw new Error(`Unknown OAuth type: '${r?.type}'`)}}async function WWf({file:e,rawApiFileSchema:t}){if(t.version!=null)return Bzr.header({header:await Ayw({file:e,header:t.version.header}),value:await Myw({file:e,versionDeclaration:t.version})})}async function Ayw({file:e,header:t}){return typeof t=="string"?await Hxe({file:e,headerKey:t,header:{type:"string"}}):await Hxe({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Myw({file:e,versionDeclaration:t}){return await lSa({_enum:{default:t.default,enum:t.values},file:e})}async function HWf({channel:e,typeResolver:t,exampleResolver:r,variableResolver:n,file:i,workspace:a}){let u=[];for(let[f,d]of Object.entries(e.messages??{}))u.push({type:f,availability:Rne(d.availability),docs:d.docs,origin:d.origin,body:qyw({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Rne(e.availability),path:Vxe(e.path),auth:e.auth,name:i.fernFilepath.file??i.casingsGenerator.generateName(e["display-name"]??e.path),displayName:e["display-name"],headers:e.headers!=null?await Promise.all(Object.entries(e.headers).map(([f,d])=>Hxe({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await JNn({pathParameters:e["path-parameters"],location:bTe.Endpoint,file:i,variableResolver:n}):[],queryParameters:e["query-parameters"]!=null?await Promise.all(Object.entries(e["query-parameters"]).map(async([f,d])=>{let{name:c}=HSr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await wG(d),name:i.casingsGenerator.generateNameAndWireValue({wireValue:f,name:c}),valueType:o,allowMultiple:typeof d!="string"&&d["allow-multiple"]!=null?d["allow-multiple"]:!1}})):[],messages:Object.values(u),examples:(e.examples??[]).map(f=>{let d=Byw({channel:e,example:f,typeResolver:t,exampleResolver:r,variableResolver:n,file:i,workspace:a});return{name:f.name!=null?i.casingsGenerator.generateName(f.name):void 0,docs:f.docs,url:zyw({channel:e,example:f,pathParams:d}),...d,...Iyw({channel:e,example:f,typeResolver:t,exampleResolver:r,file:i,workspace:a}),queryParameters:f["query-parameters"]!=null?Object.entries(f["query-parameters"]).map(([c,o])=>{let l=e["query-parameters"]?.[c];if(l==null)throw new Error(`Query parameter ${c} does not exist`);return{name:i.casingsGenerator.generateNameAndWireValue({name:HSr({queryParameterKey:c,queryParameter:l}).name,wireValue:c}),value:dT({example:o,rawTypeBeingExemplified:typeof l=="string"?l:l.type,typeResolver:t,exampleResolver:r,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),shape:Tyw({queryParameter:l})}}):[],messages:f.messages.map(c=>{let o=e.messages?.[c.type];if(o==null)throw new Error(`Message ${c.type} does not exist`);return{type:c.type,body:xyw({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Tyw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function xyw({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){if(!Nyw(e.body))return ACt.reference(dT({example:t,rawTypeBeingExemplified:typeof e.body!="string"?e.body.type:e.body,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}));if(!bD(t))throw new Error("Example must be an object");let u=[];for(let[f,d]of Object.entries(t)){let c=e.body.properties?.[f];if(c!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:f,property:c}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof c!="string"?c.type:c,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let o=cbi({extends_:e.body.extends,wirePropertyKey:f,typeResolver:r,file:i});if(o==null)throw new Error("Could not find original type declaration for property: "+f);u.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:f,property:o.rawPropertyType}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof o.rawPropertyType=="string"?o.rawPropertyType:o.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:o.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:o.typeName})}}return ACt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function qyw({body:e,file:t}){return typeof e=="string"?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):Cyw(e)?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):PTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:I2t(e.extends??[]).map(r=>aL({typeName:r,file:t})),properties:[]})}function Cyw(e){return e.type!=null}function Byw({channel:e,example:t,typeResolver:r,exampleResolver:n,variableResolver:i,file:a,workspace:u}){let f=[],d=({name:c,pathParameterDeclaration:o,examplePathParameter:l})=>{let m=lbi({parameter:o,variableResolver:i,file:a});return{name:c,value:dT({example:l,rawTypeBeingExemplified:m.rawType,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:m.file,fileContainingExample:a,workspace:u})}};if(t["path-parameters"]!=null){let c=F2t(e);for(let[o,l]of Object.entries(t["path-parameters"])){let m=c[o];if(m!=null)f.push(d({name:a.casingsGenerator.generateName(o),pathParameterDeclaration:m,examplePathParameter:l}));else throw new Error(`Path parameter ${o} does not exist`)}}return{pathParameters:f}}function Iyw({channel:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){let u=[];if(t.headers!=null)for(let[f,d]of Object.entries(t.headers)){let c=e.headers?.[f];if(c!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:Z8t({headerKey:f,header:c}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof c=="string"?c:c.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})});else throw new Error(`Heder ${f} does not exist`)}return{headers:u}}function zyw({channel:e,example:t,pathParams:r}){let n=e.path;if(t["path-parameters"]!=null)for(let i of[...r.pathParameters])n=n.replaceAll(`{${i.name.originalName}}`,`${i.value.jsonExample}`);return n}function Nyw(e){return typeof e=="string"?!1:e.extends!=null||e.properties!=null}function _Eu({rawApiFileSchema:{"default-environment":e,environments:t},casingsGenerator:r}){if(t==null)return;let n=Object.values(t)[0];if(n!=null)return{defaultEnvironment:e??void 0,environments:sDr(n,{singleBaseUrl:()=>PCt.singleBaseUrl(Fyw({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>PCt.multipleBaseUrls(Ryw({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function Fyw({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>sDr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:JWf(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function Ryw({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>sDr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:Vh(a.urls,u=>JWf(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function JWf(e){return e.endsWith("/")?e.slice(0,-1):e}function QWf({errorName:e,errorDeclaration:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=[];if(t.type!=null&&t.examples!=null)for(let f of t.examples)u.push({name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,docs:f.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:f.value,file:r}).resolvedExample,shape:dT({example:f.value,rawTypeBeingExemplified:t.type,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})});return{name:y4r({errorName:e,file:r}),discriminantValue:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:e}),docs:typeof t!="string"?t.docs:void 0,statusCode:t["status-code"],type:t.type!=null?r.parseTypeReference(t.type):void 0,examples:u}}var GWf="content";function $Wf(e,t){if(e==null||e.strategy==="status-code")return SCt.statusCode();switch(e.strategy){case"property":return SCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:GWf,wireValue:GWf})});default:uc(e)}}function KWf({readme:e,services:t}){let r=new hEu(t);return{apiReferenceLink:e.apiReferenceLink,bannerLink:e.bannerLink,introduction:e.introduction,defaultEndpoint:e.defaultEndpoint!=null?r.getEndpointForReadmeOrThrow(e.defaultEndpoint).id:void 0,features:e.features!=null?Object.fromEntries(Object.entries(e.features).map(([n,i])=>[n,i.map(a=>r.getEndpointForReadmeOrThrow(a).id)])):void 0}}var hEu=class{endpoints={};constructor(t){this.endpoints=this.buildEndpoints(t)}getEndpointForReadme(t){let r=Uyw({endpoint:t}),n=this.getEndpointKeyForReadmeEndpoint(r);return this.endpoints[n]}getEndpointForReadmeOrThrow(t){let r=this.getEndpointForReadme(t);if(r==null)throw new Error(`Endpoint not found for ${JSON.stringify(t)}`);return r}buildEndpoints(t){let r={};for(let n of Object.values(t))for(let i of n.endpoints)r[this.getEndpointKeyForHttpEndpoint(i)]=i;return r}getEndpointKeyForReadmeEndpoint(t){return this.getEndpointKey({method:t.method,path:t.path,stream:t.stream??!1})}getEndpointKeyForHttpEndpoint(t){return this.getEndpointKey({method:t.method,path:Lyw(t),stream:t.response?.body?.type==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function Lyw(e){let t="";e.fullPath.head.length>0&&(t=oP(t,e.fullPath.head));for(let r of e.fullPath.parts)t=oP(t,"{"+r.pathParameter+"}"),r.tail.length>0&&(t=oP(t,r.tail));return t.startsWith("/")?t:`/${t}`}function Uyw({endpoint:e}){if(typeof e=="string"){let t=e.split(" ");if(t.length!==2||t[0]==null||t[1]==null)throw new Error(`invalid endpoint string: ${e}`);return{method:t[0],path:t[1]}}return e}async function YWf({webhooks:e,file:t,typeResolver:r,exampleResolver:n,workspace:i}){let a=[];for(let[u,f]of Object.entries(e))a.push({id:PP.generateWebhookId(t.fernFilepath,u),availability:Rne(f.availability),displayName:f["display-name"],docs:f.docs,method:f.method,name:t.casingsGenerator.generateName(u),headers:f.headers!=null?await Promise.all(Object.entries(f.headers).map(([d,c])=>Hxe({headerKey:d,header:c,file:t}))):[],payload:Vyw({payload:f.payload,file:t}),examples:f.examples!=null?Hyw({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function Vyw({payload:e,file:t}){return typeof e=="string"?kre.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):hSa(e)?kre.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):kre.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:I2t(e.extends).map(r=>aL({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>Wyw({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Rne(n.availability):void 0,file:t})):[]})}function Wyw({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:DW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function Hyw({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:hSa(e.payload)?e.payload.type:void 0;if(u!=null)return t.map(f=>({docs:e.docs,name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,payload:dT({example:f.payload,rawTypeBeingExemplified:u,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}));if(!bD(e.payload))throw new Error(`Example webhook payload is not an object. Got: ${JSON.stringify(e.payload)}`);return t.map(f=>({docs:e.docs,name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,payload:dT({example:f.payload,rawTypeBeingExemplified:"map<string, unknown>",fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}))}function hSa(e){return e.type!=null}function QNn(e){let t={};for(let[r,n]of Object.entries(e))if(typeof n!="string")for(let i of n.audiences??[])t[i]==null&&(t[i]=new Set),t[i]?.add(r);return t}function XWf({name:e,source:t}){return x1.userDefined({file:dSa({source:t}),name:v4r.generateName(e)})}function ZWf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=Jyw({type:e.proto.type});if(t!=null)return t}}function Jyw({type:e}){switch(e){case"google.protobuf.Any":return x1.wellKnown(C_.any());case"google.protobuf.Api":return x1.wellKnown(C_.api());case"google.protobuf.BoolValue":return x1.wellKnown(C_.boolValue());case"google.protobuf.BytesValue":return x1.wellKnown(C_.bytesValue());case"google.protobuf.DoubleValue":return x1.wellKnown(C_.doubleValue());case"google.protobuf.Duration":return x1.wellKnown(C_.duration());case"google.protobuf.Empty":return x1.wellKnown(C_.empty());case"google.protobuf.Enum":return x1.wellKnown(C_.enum());case"google.protobuf.EnumValue":return x1.wellKnown(C_.enumValue());case"google.protobuf.Field":return x1.wellKnown(C_.field());case"google.protobuf.FieldCardinality":return x1.wellKnown(C_.fieldCardinality());case"google.protobuf.FieldKind":return x1.wellKnown(C_.fieldKind());case"google.protobuf.FieldMask":return x1.wellKnown(C_.fieldMask());case"google.protobuf.FloatVlaue":return x1.wellKnown(C_.floatValue());case"google.protobuf.Int32Value":return x1.wellKnown(C_.int32Value());case"google.protobuf.Int64Value":return x1.wellKnown(C_.int64Value());case"google.protobuf.ListValue":return x1.wellKnown(C_.listValue());case"google.protobuf.Method":return x1.wellKnown(C_.method());case"google.protobuf.Mixin":return x1.wellKnown(C_.mixin());case"google.protobuf.NullValue":return x1.wellKnown(C_.nullValue());case"google.protobuf.Option":return x1.wellKnown(C_.option());case"google.protobuf.SourceContext":return x1.wellKnown(C_.sourceContext());case"google.protobuf.StringValue":return x1.wellKnown(C_.stringValue());case"google.protobuf.Struct":return x1.wellKnown(C_.struct());case"google.protobuf.Syntax":return x1.wellKnown(C_.syntax());case"google.protobuf.Timestamp":return x1.wellKnown(C_.timestamp());case"google.protobuf.Type":return x1.wellKnown(C_.type());case"google.protobuf.Uint32Value":return x1.wellKnown(C_.uint32Value());case"google.protobuf.Uint64Value":return x1.wellKnown(C_.uint64Value());case"google.protobuf.Value":return x1.wellKnown(C_.value())}}async function kWf({generic:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type,i=dz(n);if(i==null)throw new Error(`Invalid generic type definition: ${n}`);let a=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:n,file:t});if(i.arguments&&SE(a.declaration)){let u=dz(a.typeName)?.arguments??[],f=Object.entries(a.declaration.properties??{}).map(([d,c])=>{let o=c;return typeof c=="string"&&u?.includes(c)&&(o=i.arguments?.[u.indexOf(c)]??c),[d,o]});return jC.object({extends:I2t(a.declaration.extends).map(d=>aL({typeName:d,file:t})),properties:await ibi({properties:Object.fromEntries(f)},t),extraProperties:a.declaration["extra-properties"]??!1,extendedProperties:void 0})}throw new Error(`Generic type definition not supported: ${n}`)}async function eHf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return yTe(n)?await kWf({generic:n,file:t,typeResolver:r}):jC.alias({aliasOf:t.parseTypeReference(e),resolvedType:Qyw({aliasOf:n,file:t,typeResolver:r})})}function Qyw({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return KV.primitive(n.originalTypeReference.primitive);case"container":return KV.container(n.originalTypeReference.container);case"unknown":return KV.unknown();case"named":{let i=SE(n.declaration)?ECt.Object:Gzr(n.declaration)?ECt.Union:xCt(n.declaration)?ECt.Enum:kqn(n.declaration)?ECt.UndiscriminatedUnion:uc(n.declaration);return KV.named({name:n.name,shape:i})}}}function tHf({union:e,file:t}){return jC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function rHf(e){let t=[];if(e.extends!=null){let r=typeof e.extends=="string"?[e.extends]:e.extends;t.push(...r)}return e.properties!=null&&t.push(...Object.values(e.properties).map(r=>typeof r=="string"?r:r.type)),t}function vEu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new yEu}){let i=v3(e,{alias:u=>{let f=typeof u=="string"?u:u.type,d=dz(f);if(d!=null){let c=new Set(d.arguments??[]),o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:f,file:t}),l=dz(o.typeName)?.arguments;if(SE(o.declaration)){let m=rHf(o.declaration);l&&m.filter(O=>!l.includes(O)).forEach(O=>c.add(O))}return Array.from(c)}return[f]},object:u=>rHf(u),discriminatedUnion:u=>{let f=[];return u["base-properties"]!=null&&f.push(...Object.values(u["base-properties"]).map(d=>typeof d=="string"?d:d.type)),f.push(...Object.values(u.union).reduce((d,c)=>{let o=typeof c=="string"?c:c.type;return typeof o=="string"&&d.push(o),d},[])),f},undiscriminatedUnion:u=>Object.values(u.union).reduce((f,d)=>{let c=typeof d=="string"?d:d.type;return typeof c=="string"&&f.push(c),f},[]),enum:()=>[]}),a=[];for(let u of i){let f=QQ({type:u,_default:void 0,validation:void 0,visitor:{primitive:()=>[],map:({keyType:d,valueType:c})=>[...d,...c],list:d=>d,optional:d=>d,set:d=>d,named:d=>[d],literal:()=>[],unknown:()=>[]}});for(let d of f){let c=aL({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(yTe(o.typeName))continue;a.push(...vEu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var yEu=class{cache=new Set;addTypeName(t){this.cache.add(this.computeCacheKey(t))}hasTypeNameBeenSeen(t){return this.cache.has(this.computeCacheKey(t))}computeCacheKey(t){return t.fernFilepath.allParts.map(r=>r.originalName).join("/")+":"+t.name.originalName}};async function nHf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await wG(t),d=aL({typeName:e,file:r}),c=vEu({typeDeclaration:t,file:r,typeResolver:n}),o={};SE(t)&&(o=QNn(t.properties??{}));let l=await $yw({file:r,typeDeclaration:t,typeName:e,sourceResolver:a});return{propertiesByAudience:o,typeDeclaration:{...f,inline:!1,name:d,shape:await Gyw({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(m=>m.typeId)),encoding:Kyw({typeDeclaration:t,source:l}),source:l,userProvidedExamples:typeof t!="string"&&t.examples!=null?t.examples.map(m=>({name:m.name!=null?r.casingsGenerator.generateName(m.name):void 0,docs:m.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:m.value,file:r}).resolvedExample,shape:dEu({typeName:d,example:m.value,typeResolver:n,exampleResolver:i,typeDeclaration:t,fileContainingType:r,fileContainingExample:r,workspace:u})})):[],autogeneratedExamples:[]},descendantFilepaths:new Set(c.map(m=>m.fernFilepath))}}async function Gyw({typeDeclaration:e,file:t,typeResolver:r}){return await v3(e,{alias:n=>eHf({alias:n,file:t,typeResolver:r}),object:n=>LVf({object:n,file:t}),discriminatedUnion:n=>tWf({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>tHf({union:n,file:t}),enum:async n=>jC.enum(await lSa({_enum:n,file:t}))})}async function $yw({file:e,typeDeclaration:t,typeName:r,sourceResolver:n}){if(typeof t=="string"||t.source==null&&t.encoding==null)return;if(t.encoding!=null){let a=ZWf({encoding:t.encoding});if(a!=null)return oDr.proto(a)}if(t.source==null)return;let i=await n.resolveSourceOrThrow({source:t.source,file:e});if(!(i==null||i.type!=="protobuf"))return oDr.proto(XWf({source:i,name:r}))}function Kyw({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?Yyw(e.encoding):Xyw(t)}function Yyw(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function Xyw(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}function iHf(e,t){let r=t[e];if(r==null)throw new b1r(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function aHf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,kyw({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>Zyw({endpoint:n,ir:e}))}]))}}function Zyw({endpoint:e,ir:t}){return e.requestBody?.type!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(r=>oHf(r,t))}}}function kyw({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>oHf(r,t))}}}return e}function oHf(e,t){let r=bEu(e.typeId,t);return uHf({objectTypeDeclaration:r,ir:t})}function bEu(e,t){let r=iHf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return bEu(r.shape.resolvedType.name.typeId,t)}throw new b1r(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function uHf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=bEu(n.typeId,t);return uHf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var ySa=class{environments=new Set;types=new Set;properties;errors=new Set;services=new Set;endpoints=new Set;requestProperties;queryParameters;webhooks=new Set;webhookPayloadProperties;subpackages=new Set;constructor({types:t,properties:r,errors:n,environments:i,services:a,endpoints:u,webhooks:f,subpackages:d,queryParameters:c,requestProperties:o,webhookPayloadProperties:l}){this.environments=i,this.types=t,this.properties=r,this.errors=n,this.services=a,this.endpoints=u,this.webhooks=f,this.webhookPayloadProperties=l,this.subpackages=d,this.requestProperties=o,this.queryParameters=c}hasTypeId(t){return this.types.has(t)}hasErrorId(t){return this.errors.has(t)}hasServiceId(t){return this.services.has(t)}hasSubpackageId(t){return this.subpackages.has(t)}hasType(t){let r=PP.generateTypeId(t.name);return this.types.has(r)}hasProperty(t,r){let n=this.properties[t];return n==null?!0:n.has(r)}hasError(t){let r=PP.generateErrorId(t.name);return this.errors.has(r)}hasService(t){let r=PP.generateServiceId(t.name);return this.services.has(r)}hasEnvironmentId(t){return this.environments.has(t)}hasEndpoint(t){return this.endpoints.has(t.id)}hasRequestProperty(t,r){let n=this.requestProperties[t];return n==null?!0:n.has(r)}hasQueryParameter(t,r){let n=this.queryParameters[t];return n==null?!0:n.has(r)}hasSubpackage(t){return this.subpackages.has(t)}hasWebhook(t){return t.id?this.webhooks.has(t.id):!0}hasWebhookPayloadProperty(t,r){let n=this.webhookPayloadProperties[t];return n==null?!0:n.has(r)}};var vSa=class{types={};properties={};queryParameters={};requestProperties={};webhookProperties={};errors={};endpoints={};webhooks={};audiences;typesReferencedByService={};environmentsNeededForAudience=new Set;typesNeededForAudience=new Set;servicesNeededForAudience=new Set;endpointsNeededForAudience=new Set;webhooksNeededForAudience=new Set;subpackagesNeededForAudience=new Set;constructor(t){this.audiences=evw(t)}addType({declaredTypeName:t,descendantTypeIds:r,descendantFilepaths:n,descendantTypeIdsByAudience:i,propertiesByAudience:a}){let u=PP.generateTypeId(t),f={typeId:u,allDescendants:r,descendantsByAudience:i,referencedSubpackages:n};this.types[u]=f,this.typesReferencedByService[u]==null&&(this.typesReferencedByService[u]=new Set),this.properties[u]={typeId:u,propertiesByAudience:a}}markTypeForAudiences(t,r){let n=PP.generateTypeId(t);this.hasAudience(r)&&(this.typesNeededForAudience.add(n),this.addSubpackages(t.fernFilepath),this.types[n]?.referencedSubpackages.forEach(i=>{this.addSubpackages(i)}))}markEnvironmentForAudiences(t,r,n){t&&(this.hasAudience(r)||n)&&this.environmentsNeededForAudience.add(t.id)}getTypesReferencedByService(){for(let t of Object.values(this.endpoints))for(let r of t.referencedTypes)this.markTypeForService(r,t.serviceId);return this.typesReferencedByService}addError(t){let r=PP.generateErrorId(t.name),n=new Set,i=new Set;t.type!=null&&DF(t.type,n,i);let a={errorId:r,referencedTypes:n,referencedSubpackages:i};this.errors[r]=a}addEndpoint(t,r,n){let i=PP.generateServiceId(t.name),a=r.id,u=new Set,f=new Set,d=new Set;for(let c of[...t.headers,...r.headers])DF(c.valueType,u,d);for(let c of[...t.pathParameters,...r.pathParameters])DF(c.valueType,u,d);for(let c of r.queryParameters)DF(c.valueType,u,d);if(n!=null&&n.request!=null&&typeof n.request!="string"){let c=QNn(n.request["query-parameters"]??{});this.queryParameters[a]={endpointId:a,parametersByAudience:c}}r.requestBody!=null&&sF._visit(r.requestBody,{inlinedRequestBody:c=>{for(let o of c.extends)gEu(o,u,d);for(let o of c.properties)DF(o.valueType,u,d);if(n!=null&&typeof n.request=="object"&&typeof n.request.body=="object"&&p2(n.request.body)){let o=QNn(n.request.body.properties??{});this.requestProperties[a]={endpointId:a,propertiesByAudience:o}}},reference:({requestBodyType:c})=>{DF(c,u,d)},fileUpload:({properties:c})=>{for(let o of c)Gre._visit(o,{file:Bc,bodyProperty:({valueType:l})=>{DF(l,u,d)},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+o.type)}})},bytes:()=>{},_other:()=>{throw new Error("Unknown HttpRequestBody: "+r.requestBody?.type)}}),r.response?.body!=null&&pz._visit(r.response.body,{fileDownload:Bc,json:c=>{DF(c.responseBodyType,u,d)},streaming:c=>{c._visit({sse:o=>DF(o.payload,u,d),json:o=>DF(o.payload,u,d),text:Bc,_other:()=>{throw new Error("Unknown streamingResponse type: "+c.type)}})},streamParameter:c=>{c.streamResponse._visit({sse:o=>DF(o.payload,u,d),json:o=>DF(o.payload,u,d),text:Bc,_other:()=>{throw new Error("Unknown streamingResponse type: "+c.streamResponse.type)}}),c.nonStreamResponse.type==="json"&&DF(c.nonStreamResponse.value.responseBodyType,u,d)},text:Bc,_other:()=>{throw new Error("Unknown HttpResponse: "+r.response?.body?.type)}}),r.errors.forEach(c=>{f.add(PP.generateErrorId(c.error)),d.add(c.error.fernFilepath)}),this.endpoints[a]={endpointId:a,serviceId:i,referencedTypes:u,referencedErrors:f,referencedSubpackages:d}}markEndpointForAudience(t,r,n){if(this.hasAudience(n)){let i=PP.generateServiceId(t);this.servicesNeededForAudience.add(i),r.forEach(a=>{let u=a.id;this.endpointsNeededForAudience.add(u),this.endpoints[u]?.referencedSubpackages.forEach(f=>{this.addSubpackages(f)})}),this.servicesNeededForAudience.add(i),this.addSubpackages(t.fernFilepath)}}addWebhook(t,r,n){let i=r.id;if(i==null)return;let a=new Set,u=new Set;r.payload!=null&&kre._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)gEu(d,a,u);for(let d of f.properties)DF(d.valueType,a,u);if(n?.payload!=null&&typeof n.payload=="object"&&!hSa(n.payload)){let d=QNn(n.payload.properties??{});this.webhookProperties[i]={webhookId:i,propertiesByAudience:d}}},reference:({payloadType:f})=>{DF(f,a,u)},_other:()=>{throw new Error("Unknown WebhookPayload: "+r.payload?.type)}}),u.add(t.fernFilepath),this.webhooks[i]={webhookId:i,referencedTypes:a,referencedSubpackages:u}}markWebhookForAudiences(t,r,n){let i=r.id;i!=null&&this.hasAudience(n)&&(this.webhooksNeededForAudience.add(i),this.addSubpackages(t.fernFilepath))}build(){let t=new Set,r=new Set;for(let f of this.endpointsNeededForAudience.keys()){let d=this.getEndpointNode(f);for(let c of d.referencedErrors){if(r.has(c))continue;r.add(c);let o=this.getErrorNode(c);this.addReferencedTypes(t,o.referencedTypes)}this.addReferencedTypes(t,d.referencedTypes)}this.addReferencedTypes(t,this.typesNeededForAudience);for(let f of this.webhooksNeededForAudience.keys()){let d=this.getWebhookNode(f);this.addReferencedTypes(t,d.referencedTypes)}let n={},i={},a={},u={};if(this.audiences.type==="filtered"){for(let[f,d]of Object.entries(this.properties)){if(!t.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}c.size>0&&(n[f]=c),n[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.requestProperties)){if(!this.endpointsNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}i[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.queryParameters)){if(!this.endpointsNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.parametersByAudience[o];l?.forEach(m=>{c.add(m)})}a[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.webhookProperties)){if(!this.webhooksNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}u[f]=c.size>0?c:void 0}}return new ySa({types:t,properties:n,errors:r,requestProperties:i,queryParameters:a,environments:this.environmentsNeededForAudience,services:this.servicesNeededForAudience,endpoints:this.endpointsNeededForAudience,webhooks:this.webhooksNeededForAudience,webhookPayloadProperties:u,subpackages:this.subpackagesNeededForAudience})}markTypeForService(t,r){let n=this.typesReferencedByService[t]??=new Set;if(n.has(r))return;n.add(r);let i=this.getTypeNode(t);for(let a of i.allDescendants)this.markTypeForService(a,r)}addReferencedTypes(t,r){for(let n of r){if(t.has(n))continue;t.add(n);let i=this.getTypeNode(n);if(this.audiences.type==="filtered")for(let a of this.audiences.audiences){let u=i.descendantsByAudience[a];if(u!=null)u.forEach(f=>{t.add(f)});else{i.allDescendants.forEach(f=>{t.add(f)});break}}else i.allDescendants.forEach(a=>{t.add(a)})}}getTypeNode(t){let r=this.types[t];if(r==null)throw new Error(`Failed to find type node with id ${t}`);return r}getErrorNode(t){let r=this.errors[t];if(r==null)throw new Error(`Failed to find error node with id ${t}`);return r}getEndpointNode(t){let r=this.endpoints[t];if(r==null)throw new Error(`Failed to find endpoint node with id ${t}`);return r}getWebhookNode(t){let r=this.webhooks[t];if(r==null)throw new Error(`Failed to find webhook node with id ${t}`);return r}hasNoAudiences(){return this.audiences.type==="none"}hasAudience(t){let r=this.audiences;switch(r.type){case"none":return!0;case"filtered":return t.some(n=>r.audiences.has(n));default:uc(r)}}addSubpackages(t){for(let r=1;r<=t.allParts.length;++r){let n={...t,allParts:t.allParts.slice(0,r)};this.subpackagesNeededForAudience.add(PP.generateSubpackageId(n))}}};function evw(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:uc(e)}}function DF(e,t,r){cT._visit(e,{container:n=>{tvw(n,t,r)},named:n=>{gEu(n,t,r)},primitive:Bc,unknown:Bc,_other:Bc})}function gEu(e,t,r){t.add(PP.generateTypeId(e)),r.add(e.fernFilepath)}function tvw(e,t,r){wC._visit(e,{list:n=>{DF(n,t,r)},map:n=>{DF(n.keyType,t,r),DF(n.valueType,t,r)},optional:n=>{DF(n,t,r)},set:n=>{DF(n,t,r)},literal:Bc,_other:Bc})}function cHf({filteredIr:e,singleUnionTypeProperties:t}){return t._visit({samePropertiesAsObject:r=>{let n=e.hasTypeId(r.typeId)?{...r,object:{properties:r.object.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:t6({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)}}:void 0;return n!==void 0?_3.samePropertiesAsObject(n):void 0},singleProperty:r=>{let n=t6({filteredIr:e,exampleTypeReference:r});return n!==void 0?_3.singleProperty(n):void 0},noProperties:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}})}function t6({filteredIr:e,exampleTypeReference:t}){return t.shape._visit({primitive:()=>t,container:r=>r._visit({list:n=>({...t,shape:Em.container(DE.list({...n,list:n.list.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),set:n=>({...t,shape:Em.container(DE.set({...n,set:n.set.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),optional:n=>{let i=n.optional!=null?t6({filteredIr:e,exampleTypeReference:n.optional}):void 0;return i!=null?{...t,shape:Em.container(DE.optional({optional:i,valueType:n.valueType}))}:void 0},map:n=>({...t,shape:Em.container(DE.map({...n,map:n.map.map(i=>{let a=t6({filteredIr:e,exampleTypeReference:i.key}),u=t6({filteredIr:e,exampleTypeReference:i.value});return a!==void 0&&u!==void 0?{key:a,value:u}:void 0}).filter(i=>i!==void 0)}))}),literal:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}}),named:r=>e.hasTypeId(r.typeName.typeId)?r.shape._visit({alias:n=>{let i=t6({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.alias({...n,value:i})})}:void 0},enum:n=>({...t,shape:Em.named({...r,shape:OD.enum(n)})}),object:n=>({...t,shape:Em.named({...r,shape:OD.object({...n,properties:n.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:t6({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)})})}),union:n=>{let i=cHf({filteredIr:e,singleUnionTypeProperties:n.singleUnionType.shape});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.union({...n,singleUnionType:{...n.singleUnionType,shape:i}})})}:void 0},undiscriminatedUnion:n=>{let i=t6({filteredIr:e,exampleTypeReference:n.singleUnionType});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.undiscriminatedUnion({...n,singleUnionType:i})})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}}):void 0,unknown:()=>t,_other:()=>t})}function mEu({filteredIr:e,pathParameters:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function rvw({filteredIr:e,queryParameters:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function sHf({filteredIr:e,headers:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function nvw({filteredIr:e,requestBody:t}){return t._visit({inlinedRequestBody:r=>({...t,properties:r.properties.filter(n=>n.originalTypeDeclaration?e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue):!0).map(n=>{let i=t6({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...n,value:i}:void 0}).filter(n=>n!==void 0)}),reference:r=>{let n=t6({filteredIr:e,exampleTypeReference:r});return n!==void 0?VQ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function ivw({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>g7.ok(JN.body(n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>g7.ok(JN.stream(n.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(YA))),sse:n=>g7.ok(JN.sse(n.map(({event:i,data:a})=>{let u=t6({filteredIr:e,exampleTypeReference:a});return u!==void 0?{event:i,data:u}:void 0}).filter(YA))),_other:({type:n})=>{throw new Error(`Received unknown type for OK example: ${n}`)}}),error:({error:r,body:n})=>g7.error({error:r,body:n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0}),_other:({type:r})=>{throw new Error(`Received unknown type for example: ${r}`)}})}function OEu({filteredIr:e,example:t}){return{...t,rootPathParameters:mEu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:mEu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:mEu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:sHf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:sHf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:rvw({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?nvw({filteredIr:e,requestBody:t.request}):void 0,response:ivw({filteredIr:e,response:t.response})}}function lHf({filteredIr:e,exampleType:t}){return t.shape._visit({alias:r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...t,shape:OD.alias({...r,value:n})}:void 0},enum:()=>t,object:r=>({...t,shape:OD.object({...r,properties:r.properties.filter(n=>e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue)).map(n=>({...n,value:t6({filteredIr:e,exampleTypeReference:n.value})})).filter(n=>n.value!==void 0)})}),union:r=>{let n=cHf({filteredIr:e,singleUnionTypeProperties:r.singleUnionType.shape});return n!==void 0?{...t,shape:OD.union({...r,singleUnionType:{...r.singleUnionType,shape:n}})}:void 0},undiscriminatedUnion:r=>{let n=t6({filteredIr:e,exampleTypeReference:r.singleUnionType});return n!==void 0?{...t,shape:OD.undiscriminatedUnion({...r,singleUnionType:n})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}var bSa=class{subpackages={};rootPackage={docs:void 0,fernFilepath:{allParts:[],packagePath:[],file:void 0},websocket:void 0,service:void 0,types:[],errors:[],subpackages:[],webhooks:void 0,navigationConfig:void 0};addPackageRedirection({from:t,to:r}){let n=this.getPackageForFernFilepath(t);if(n.navigationConfig!=null)throw new Error("Found duplicate navigationConfig for package");n.navigationConfig={pointsTo:PP.generateSubpackageId(r)}}addDocs(t,r){let n=this.getPackageForFernFilepath(t);if(n.docs!=null)throw new Error("Found duplicate docs for package");n.docs=r}addSubpackage(t){this.getPackageForFernFilepath(t)}addType(t,r){this.getPackageForFernFilepath(r.name.fernFilepath).types.push(t)}addError(t,r){this.getPackageForFernFilepath(r.name.fernFilepath).errors.push(t)}addService(t,r){let n=this.getPackageForFernFilepath(r.name.fernFilepath);if(n.service!=null)throw new Error("Found duplicate service for "+t);n.service=t}addWebhookGroup(t,r){let n=this.getPackageForFernFilepath(r);if(n.webhooks!=null)throw new Error("Found duplicate webhook group for "+t);n.webhooks=t}addWebSocketChannel(t,r){let n=this.getPackageForFernFilepath(r);if(n.webhooks!=null)throw new Error("Found duplicate webhook group for "+t);n.websocket=t}build(t){t!=null&&(Object.entries(this.subpackages).forEach(([n,i])=>{t.hasSubpackageId(n)?this.subpackages[n]={...i,types:i.types.filter(a=>t.hasTypeId(a)),errors:i.errors.filter(a=>t.hasErrorId(a)),service:i.service!=null&&t.hasServiceId(i.service)?i.service:void 0,subpackages:i.subpackages.filter(a=>t.hasSubpackageId(a))}:delete this.subpackages[n]}),this.rootPackage={...this.rootPackage,types:this.rootPackage.types.filter(n=>t.hasTypeId(n)),errors:this.rootPackage.errors.filter(n=>t.hasErrorId(n)),service:this.rootPackage.service!=null&&t.hasServiceId(this.rootPackage.service)?this.rootPackage.service:void 0,subpackages:this.rootPackage.subpackages.filter(n=>t.hasSubpackageId(n)),webhooks:this.rootPackage.webhooks!=null?this.rootPackage.webhooks:void 0});let r=new Set(this.getAllChildrenWithEndpoints(this.rootPackage));return{subpackages:Vh(this.subpackages,(n,i)=>({...n,hasEndpointsInTree:r.has(i)})),rootPackage:{...this.rootPackage,hasEndpointsInTree:r.size>0||this.rootPackage.service!=null}}}sortRootPackage(t){if(!fHf(this.rootPackage.subpackages,t))throw new Error("Sorted subpackages differ from unsorted packages in root");this.rootPackage.subpackages=t}sortSubpackage(t,r){let n=this.subpackages[t];if(n==null)throw new Error("Subpackage does not exist: "+t);if(!fHf(n.subpackages,r))throw new Error("Sorted subpackages differ from unsorted packages");n.subpackages=r}getAllSubpackagesWithEndpoints(t){let r=this.subpackages[t];if(r==null)throw new Error("Subpackage does not exist: "+t);let n=this.getAllChildrenWithEndpoints(r);return(n.length>0||r.service!=null)&&n.push(t),n}getAllChildrenWithEndpoints(t){return t.subpackages.flatMap(r=>[...this.getAllSubpackagesWithEndpoints(r)])}getPackageForFernFilepath(t,r=0,n=this.rootPackage){let i=t.allParts[r];if(i==null)return n;let a=n.subpackages.map(c=>{let o=this.subpackages[c];if(o==null)throw new Error("Subpackage ID is invalid: "+c);return o}),u=r+1,f={allParts:t.allParts.slice(0,u),packagePath:t.packagePath.slice(0,u),file:u===t.allParts.length?t.file:void 0},d=a.find(c=>c.name.originalName===i.originalName);if(d==null){let c=PP.generateSubpackageId(f),o={docs:void 0,fernFilepath:f,name:i,service:void 0,types:[],errors:[],subpackages:[],navigationConfig:void 0,webhooks:void 0,websocket:void 0};this.subpackages[c]=o,n.subpackages.push(c),d=o}return this.getPackageForFernFilepath(t,u,d)}};function fHf(e,t){if(e.length!==t.length)return!1;let r=new Set(e);for(let n of t)if(!r.has(n))return!1;return!0}function dHf({reference:e,referencedIn:t,imports:r}){let[n,i,...a]=e.split(".");if(n==null||a.length>0)return;if(i==null)return{endpointName:n,relativeFilepath:t};let f=r[n];if(f!=null)return{endpointName:i,relativeFilepath:h4r({referencedIn:t,importPath:f})}}var yrn=class{workspace;constructor(t){this.workspace=t}async resolveEndpointOrThrow({endpoint:t,file:r}){let n=await this.resolveEndpoint({endpoint:t,file:r});if(n==null)throw new Error("Cannot resolve endpoint: "+t+" in file "+r.relativeFilepath);return n}async resolveEndpointByMethodAndPath({method:t,path:r}){let n;return await D3(this.workspace,async(i,a,u)=>{let f=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:v4r,rootApiFile:this.workspace.definition.rootApiFile.contents,defaultUrl:u.defaultUrl});for(let[d,c]of Object.entries(a.service?.endpoints??{}))c.method===t&&c.path===r&&(n={endpointId:d,endpoint:c,file:f})}),await den(this.workspace,async(i,a)=>{let u=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:v4r,rootApiFile:this.workspace.definition.rootApiFile.contents});for(let[f,d]of Object.entries(a.service?.endpoints??{}))d.method===t&&d.path===r&&(n={endpointId:f,endpoint:d,file:u})}),n}async resolveEndpoint({endpoint:t,file:r}){let i=new Cfi().tryParse(t);if(i!=null)return await this.resolveEndpointByMethodAndPath(i);let a=this.getDeclarationOfEndpoint({referenceToEndpoint:t,file:r});if(a==null)return;let u=a.file.definitionFile.service?.endpoints?.[a.endpointName];if(u!=null)return{endpointId:a.endpointName,endpoint:u,file:a.file}}getDeclarationOfEndpoint({referenceToEndpoint:t,file:r}){let n=dHf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(!(i==null||i.service?.endpoints?.[n.endpointName]==null))return{endpointName:n.endpointName,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var vrn=class{workspace;constructor(t){this.workspace=t}getDeclarationOrThrow(t,r){let n=this.getDeclaration(t,r);if(n==null)throw new Error("Error does not exist: "+t);return n}getDeclaration(t,r){let n=Hwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(i==null)return;let a=i.errors?.[n.typeName];if(a!=null)return{declaration:a,file:$m({definitionFile:i,relativeFilepath:n.relativeFilepath,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var Qwe=class{typeResolver;constructor(t){this.typeResolver=t}resolveAllReferencesInExample({example:t,file:r}){if(typeof t=="string"){let n=this.resolveExample({example:t,file:r});return n==null||typeof n.resolvedExample=="string"?n:this.resolveAllReferencesInExample({example:n.resolvedExample,file:n.file})}else if(bD(t)){let n={};for(let[i,a]of Object.entries(t)){let u=this.resolveAllReferencesInExample({example:a,file:r});if(u==null)return;n[i]=u.resolvedExample}return{resolvedExample:n}}else if(Array.isArray(t)){let n=[];for(let i of t){let a=this.resolveAllReferencesInExample({example:i,file:r});if(a==null)return;n.push(a.resolvedExample)}return{resolvedExample:n}}return{resolvedExample:t}}resolveAllReferencesInExampleOrThrow({example:t,file:r}){let n=this.resolveAllReferencesInExample({example:t,file:r});if(n==null)throw new Error("Failed to resolve examples");return n}resolveExample({example:t,file:r}){if(typeof t!="string")return{resolvedExample:t,file:r};if(t.startsWith(`\\${FFt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(FFt))return{resolvedExample:t,file:r};let n=this.parseExampleReference(t);if(n==null)return;let i=this.typeResolver.getDeclarationOfNamedType({referenceToNamedType:n.rawTypeReference,file:r});if(i==null||typeof i.declaration=="string"||i.declaration.examples==null)return;let a=i.declaration.examples.find(u=>u.name===n.exampleName);if(a!=null)return this.resolveExample({example:a.value,file:i.file})}resolveExampleOrThrow({example:t,file:r}){let n=this.resolveExample({example:t,file:r});if(n==null)throw new Error("Cannot resolve example: "+t);return n}parseExampleReference(t){let[r,n,i,...a]=t.split(".");if(!(r==null||n==null||a.length>0))return i==null?{rawTypeReference:r.slice(FFt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(FFt.length),exampleName:i}}};var gSa=class{typeResolver;endpointResolver;constructor(t,r){this.typeResolver=t,this.endpointResolver=r,this.typeResolver=t,this.endpointResolver=r}async resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:n}){let i=await this.resolveRequestProperty({file:t,endpoint:r,propertyComponents:n});if(i==null)throw new Error("Cannot resolve request property from endpoint: "+r+" in file "+t.relativeFilepath);return i}async resolveRequestProperty({file:t,endpoint:r,propertyComponents:n}){let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t});if(i.endpoint.request==null)return;if(typeof i.endpoint.request!="string")return this.resolveRequestPropertyFromInlinedRequest({typeResolver:this.typeResolver,file:i.file,requestType:i.endpoint.request,propertyComponents:n});let a=await this.resolveObjectProperty({file:i.file,typeName:i.endpoint.request,propertyComponents:n});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:n,file:t}),property:Yre.body(a)}}async resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:n}){let i=await this.resolveResponseProperty({file:t,endpoint:r,propertyComponents:n});if(i==null)throw new Error("Cannot resolve response property from endpoint: "+r+" in file "+t.relativeFilepath);return i}async resolveResponseProperty({file:t,endpoint:r,propertyComponents:n}){let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t}),a=await this.resolveObjectProperty({file:i.file,typeName:(typeof i.endpoint.response!="string"?i.endpoint.response?.type:i.endpoint.response)??"",propertyComponents:n});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:n,file:t}),property:a}}async resolveRequestPropertyFromInlinedRequest({typeResolver:t,file:r,requestType:n,propertyComponents:i}){if(i.length===1){let a=i[0]??"",u=typeof n["query-parameters"]!=null?n["query-parameters"]?.[a]:void 0;if(u!=null)return{property:Yre.query(await fSa({file:r,queryParameterKey:a,queryParameter:u})),propertyPath:void 0}}return this.resolveRequestPropertyFromInlinedRequestBody({typeResolver:t,file:r,requestType:n,propertyComponents:i})}async resolveRequestPropertyFromInlinedRequestBody({typeResolver:t,file:r,requestType:n,propertyComponents:i}){if(n.body==null)return;if(typeof n.body=="string"){let u=await this.resolveObjectProperty({file:r,typeName:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(u)}}if(p2(n.body)){let u=await sEu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(u)}}let a=await this.resolveObjectProperty({file:r,typeName:n.body.type,propertyComponents:i});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await uEu({typeResolver:this.typeResolver,file:obi(i)??t,resolvedType:i,propertyComponents:n})}async propertyPathFromPropertyComponents({propertyComponents:t,file:r}){return t.length<=1?[]:t.slice(0,-1).map(n=>r.casingsGenerator.generateName(n))}};var pHf=require("fs/promises"),mSa=class{async parse({absoluteFilePath:t}){let r=await(0,pHf.readFile)(t,"utf-8"),n=r.match(/option\s+csharp_namespace\s*=\s*"([^"]+)";/),i=r.match(/package\s+([a-zA-Z_][\w.]*);/),a=r.match(/service\s+([a-zA-Z_]\w*)\s*{/);return{csharpNamespace:n?.[1],packageName:i?.[1],serviceName:a?.[1]}}};var OSa=class{context;workspace;sourceCache;constructor(t,r){this.context=t,this.workspace=r,this.sourceCache=new Map}async resolveSourceOrThrow({source:t,file:r}){let n=await this.resolveSource({source:t,file:r});if(n==null){if(cZr(t))throw new Error(`Cannot resolve source ${t.proto} from file ${r.relativeFilepath}`);this.context.logger.warn(`Cannot resolve source ${t.openapi} from file ${r.relativeFilepath}`)}return n}async resolveSource({source:t,file:r}){return cZr(t)?await this.resolveProtobufSource({source:t,file:r}):await this.resolveOpenAPISource({source:t,file:r})}async resolveProtobufSource({source:t,file:r}){let n=Wl(this.workspace.absoluteFilePath,ls.of(t.proto));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await _h(n))return;let a=await new mSa().parse({absoluteFilePath:n}),u={type:"protobuf",absoluteFilePath:n,relativeFilePath:ls.of(t.proto),csharpNamespace:a.csharpNamespace,packageName:a.packageName,serviceName:a.serviceName};return this.sourceCache.set(n,u),u}async resolveOpenAPISource({source:t,file:r}){let n=Wl(this.workspace.absoluteFilePath,ls.of(t.openapi));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await _h(n))return;let i={type:"openapi",absoluteFilePath:n,relativeFilePath:ls.of(t.openapi)};return this.sourceCache.set(n,i),i}};var oA=class{workspace;constructor(t){this.workspace=t}resolveTypeOrThrow({type:t,file:r}){let n=this.resolveType({type:t,file:r});if(n==null)throw new Error("Cannot resolve type: "+t+" in file "+r.relativeFilepath);return n}getDeclarationOfNamedTypeOrThrow({referenceToNamedType:t,file:r}){let n=this.getDeclarationOfNamedType({referenceToNamedType:t,file:r});if(n==null)throw new Error("Cannot find declaration of type: "+t+" in file "+r.relativeFilepath);return n}getDeclarationOfNamedType({referenceToNamedType:t,file:r}){let n=Hwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(i==null)return;let a=i.types?.[n.typeName];if(a==null){let u=dz(n.typeName);if(u!=null){for(let f of Object.keys(i.types??{})??[])if(u.name&&f.startsWith(u.name)&&f.endsWith(">")){let d=i.types?.[f];return d!=null?{typeName:f,declaration:d,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}:void 0}}return}return{typeName:n.typeName,declaration:a,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}resolveType({type:t,file:r,objectPath:n=[]}){return QQ({type:t,_default:void 0,validation:void 0,visitor:{primitive:i=>({_type:"primitive",primitive:i,originalTypeReference:cT.primitive(i)}),unknown:()=>({_type:"unknown",originalTypeReference:cT.unknown()}),map:({keyType:i,valueType:a})=>i!=null&&a!=null?{_type:"container",container:{_type:"map",keyType:i,valueType:a},originalTypeReference:cT.container(wC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:cT.container(wC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:cT.container(wC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:cT.container(wC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:cT.container(wC.literal(i))}),named:i=>{let a=this.getDeclarationOfNamedType({referenceToNamedType:i,file:r});if(a==null)return;let u={typeName:a.typeName,file:a.file.relativeFilepath,reference:i};if(!n.some(f=>f.file===u.file&&f.typeName===u.typeName))return this.resolveNamedTypeFromDeclaration({referenceToNamedType:i,referencedIn:r,rawDeclaration:a,objectPath:[...n,u]})}}})}resolveNamedTypeOrThrow({referenceToNamedType:t,file:r}){let n=this.resolveNamedType({referenceToNamedType:t,file:r});if(n==null)throw new Error("Cannot resolve type: "+t);return n}resolveNamedType({referenceToNamedType:t,file:r}){let n=this.getDeclarationOfNamedType({referenceToNamedType:t,file:r});if(n!=null)return this.resolveNamedTypeFromDeclaration({referenceToNamedType:t,referencedIn:r,rawDeclaration:n})}resolveNamedTypeFromDeclaration({referenceToNamedType:t,referencedIn:r,rawDeclaration:n,objectPath:i=[]}){let{declaration:a,file:u}=n;if(Qzr(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=sSa({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||wne(this.workspace,u.relativeFilepath)==null))return{_type:"named",rawName:n.typeName,name:f,declaration:a,filepath:u.relativeFilepath,objectPath:i,originalTypeReference:f,file:u}}};var R2t=class e{static VARIABLE_PREFIX="$";getDeclarationOrThrow(t,r){let n=this.getDeclaration(t,r);if(n==null)throw new Error("Variable does not exist: "+t);return n}getDeclaration(t,r){if(!t.startsWith(e.VARIABLE_PREFIX))return;let n=r.rootApiFile.variables?.[t.substring(1)];if(n!=null)return{declaration:n,file:WSr({casingsGenerator:r.casingsGenerator,rootApiFile:r.rootApiFile})}}getVariableIdOrThrow(t){let r=this.getVariableId(t);if(r==null)throw new Error("Variable reference does not start with "+e.VARIABLE_PREFIX);return r}getVariableId(t){if(t.startsWith(e.VARIABLE_PREFIX))return t.substring(e.VARIABLE_PREFIX.length)}};function PSa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}function _Hf({fieldName:e,primitiveType:t}){switch(t.v1){case"STRING":{let r=e??_1.STRING;return{type:"success",example:$v.string({original:r}),jsonExample:r}}case"BASE_64":return{type:"success",example:$v.base64(_1.BASE64),jsonExample:_1.BASE64};case"BOOLEAN":return{type:"success",example:$v.boolean(_1.BOOLEAN),jsonExample:_1.BOOLEAN};case"DATE":return{type:"success",example:$v.date(_1.DATE),jsonExample:_1.DATE};case"DATE_TIME":return{type:"success",example:$v.datetime({datetime:new Date(_1.DATE_TIME),raw:_1.DATE_TIME}),jsonExample:_1.DATE_TIME};case"DOUBLE":return{type:"success",example:$v.double(_1.DOUBLE),jsonExample:_1.DOUBLE};case"FLOAT":return{type:"success",example:$v.float(_1.FLOAT),jsonExample:_1.FLOAT};case"INTEGER":return{type:"success",example:$v.integer(_1.INT),jsonExample:_1.INT};case"UINT_64":return{type:"success",example:$v.uint64(_1.INT64),jsonExample:_1.INT64};case"UINT":return{type:"success",example:$v.uint(_1.UINT),jsonExample:_1.UINT};case"BIG_INTEGER":return{type:"success",example:$v.bigInteger(_1.INT64.toString()),jsonExample:`${_1.INT64}`};case"LONG":return{type:"success",example:$v.long(_1.INT64),jsonExample:_1.INT64};case"UUID":return{type:"success",example:$v.uuid(_1.UUID),jsonExample:_1.UUID};default:uc(t.v1)}}function hHf({fieldName:e,containerType:t,maxDepth:r,currentDepth:n,typeDeclarations:i,skipOptionalProperties:a}){if(n>=r)return g4r({containerType:t});switch(t.type){case"list":{let u=w8({fieldName:e,typeReference:t.list,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.list({list:[u.example,u.example],itemType:t.list}),jsonExample:[u.jsonExample,u.jsonExample]}}case"literal":return{type:"success",example:DE.literal({literal:t.literal._visit({boolean:u=>$v.boolean(u),string:u=>$v.string({original:u}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:t.literal._visit({boolean:u=>u,string:u=>u,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":{if(a)return g4r({containerType:t});let u=w8({fieldName:e,typeReference:t.optional,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.optional({optional:u.example,valueType:t.optional}),jsonExample:u.jsonExample}}case"set":{let u=w8({fieldName:e,typeReference:t.set,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.set({set:[u.example],itemType:t.set}),jsonExample:[u.jsonExample]}}case"map":{let u=w8({fieldName:e,typeReference:t.keyType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a}),f=w8({fieldName:e,typeReference:t.valueType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"||f.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.map({map:[{key:u.example,value:f.example}],keyType:t.keyType,valueType:t.valueType}),jsonExample:{[u.jsonExample]:f.jsonExample}}}default:uc(t)}}function g4r({containerType:e}){switch(e.type){case"list":return{type:"success",example:DE.list({list:[],itemType:e.list}),jsonExample:[]};case"literal":return{type:"success",example:DE.literal({literal:e.literal._visit({boolean:t=>$v.boolean(t),string:t=>$v.string({original:t}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:e.literal._visit({boolean:t=>t,string:t=>t,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":return{type:"success",example:DE.optional({optional:void 0,valueType:e.optional}),jsonExample:void 0};case"set":return{type:"success",example:DE.set({set:[],itemType:e.set}),jsonExample:[]};case"map":return{type:"success",example:DE.map({map:[],keyType:e.keyType,valueType:e.valueType}),jsonExample:{}};default:uc(e)}}function GNn({typeReference:e,typeDeclarations:t}){if(e.type==="container"&&e.container.type==="optional")return!0;if(e.type==="named"){let r=t[e.typeId];if(r?.shape.type==="alias"&&r?.shape.resolvedType.type==="container"&&r?.shape.resolvedType.container.type==="optional")return!0}return!1}function vHf({fieldName:e,typeDeclarations:t,typeDeclaration:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){switch(r.shape.type){case"alias":{let u=w8({fieldName:e,typeDeclarations:t,typeReference:r.shape.aliasOf,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure")return u;let{example:f,jsonExample:d}=u;return{type:"success",example:OD.alias({value:f}),jsonExample:d}}case"enum":{let u=r.shape.values[0];return u==null?{type:"failure",message:"No enum values present"}:{type:"success",example:OD.enum({value:u.name}),jsonExample:u.name.wireValue}}case"object":{let u=yHf({fieldName:e,typeDeclaration:r,objectTypeDeclaration:r.shape,typeDeclarations:t,currentDepth:i,maxDepth:n,skipOptionalProperties:a});if(u.type==="failure")return u;let{example:f,jsonExample:d}=u;return{type:"success",example:OD.object(f),jsonExample:d}}case"undiscriminatedUnion":{let u=0;for(let f of r.shape.members){let d=w8({fieldName:e,typeReference:f.type,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:a});if(d.type==="failure"){++u;continue}let{example:c,jsonExample:o}=d;return{type:"success",example:OD.undiscriminatedUnion({index:u,singleUnionType:c}),jsonExample:o}}break}case"union":{let u=r.shape.discriminant;for(let f of r.shape.types){let d=f.shape._visit({noProperties:()=>({type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.noProperties()}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue}}),samePropertiesAsObject:c=>{let o=t[c.typeId];if(o==null)throw new Error(`Failed to find type declaration with id ${c.typeId}`);if(o.shape.type!=="object")throw new Error(`Same properties as object union is not an object ${o.shape.type}`);let l=yHf({currentDepth:i,maxDepth:n,fieldName:e,objectTypeDeclaration:o.shape,typeDeclaration:o,typeDeclarations:t,skipOptionalProperties:a});if(l.type==="failure")return l;let{example:m,jsonExample:O}=l;return{type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.samePropertiesAsObject({typeId:o.name.typeId,object:m})}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue,...typeof O=="object"?O:{}}}},singleProperty:c=>{let o=w8({currentDepth:i+1,maxDepth:n,fieldName:e,typeReference:c.type,typeDeclarations:t,skipOptionalProperties:a});if(o.type==="failure")return o;let{example:l,jsonExample:m}=o;return{type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.singleProperty(l)}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue,[c.name.wireValue]:m}}},_other:()=>{throw new Error("Encountered unknown union type")}});if(d.type!=="failure")return d}}}return{type:"failure",message:"Failed to generate example for type reference"}}function yHf({fieldName:e,typeDeclaration:t,objectTypeDeclaration:r,typeDeclarations:n,maxDepth:i,currentDepth:a,skipOptionalProperties:u}){let f={},d=[];for(let c of[...r.properties??[],...r.extendedProperties??[]]){let o=w8({fieldName:c.name.wireValue,typeReference:c.valueType,typeDeclarations:n,currentDepth:a+1,maxDepth:i,skipOptionalProperties:u});if(o.type==="failure"&&!GNn({typeDeclarations:n,typeReference:c.valueType}))return{type:"failure",message:`Failed to generate required property ${c.name.wireValue} b/c ${o.message}`};if(o.type==="failure")continue;let{example:l,jsonExample:m}=o;d.push({name:c.name,originalTypeDeclaration:t.name,value:l}),f[c.name.wireValue]=m}return{type:"success",example:OD.object({properties:d}),jsonExample:f}}function w8({fieldName:e,typeReference:t,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){if(i>n)return{type:"failure",message:"Exceeded max depth"};switch(t.type){case"named":{let u=r[t.typeId];if(u==null)throw new Error(`Failed to find type declaration with id ${t.typeId}`);let f=vHf({fieldName:e,typeDeclaration:u,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(f.type==="failure")return f;let{example:d,jsonExample:c}=f;return{type:"success",example:{jsonExample:c,shape:Em.named({shape:d,typeName:u.name})},jsonExample:c}}case"container":{let u=hHf({fieldName:e,containerType:t.container,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure"){let{example:c,jsonExample:o}=g4r({containerType:t.container});return{type:"success",example:{jsonExample:o,shape:Em.container(c)},jsonExample:o}}let{example:f,jsonExample:d}=u;return{type:"success",example:{jsonExample:d,shape:Em.container(f)},jsonExample:d}}case"primitive":{let{jsonExample:u,example:f}=_Hf({fieldName:e,primitiveType:t.primitive});return{type:"success",example:{jsonExample:u,shape:Em.primitive(f)},jsonExample:u}}case"unknown":{let u={key:"value"};return{type:"success",example:{jsonExample:u,shape:Em.unknown(u)},jsonExample:u}}}}var bHf=Jo(Ayu(),1);function dbi({ir:e,endpoint:t,service:r,typeDeclarations:n,skipOptionalRequestProperties:i,generationResponse:a}){let u={name:void 0,endpointHeaders:[],endpointPathParameters:[],queryParameters:[],servicePathParameters:[],serviceHeaders:[],rootPathParameters:[],request:void 0,response:g7.ok(JN.body(void 0)),docs:void 0},f=[{params:t.pathParameters,add:c=>u.endpointPathParameters.push(c)},{params:r.pathParameters,add:c=>u.servicePathParameters.push(c)},{params:e.pathParameters,add:c=>u.rootPathParameters.push(c)}];for(let c of f)for(let o of c.params){let l=w8({fieldName:o.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:o.valueType,skipOptionalProperties:i});if(l.type==="failure")return l;let{example:m}=l;c.add({name:o.name,value:m})}for(let c of t.queryParameters){if(i&&GNn({typeDeclarations:n,typeReference:c.valueType}))continue;let o=w8({fieldName:c.name.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:c.valueType,skipOptionalProperties:i});if(o.type==="failure")return o;let{example:l}=o;u.queryParameters.push({name:c.name,shape:c.allowMultiple?l8.exploded():l8.single(),value:l})}let d=[{params:t.headers,add:c=>u.endpointHeaders.push(c)},{params:r.headers,add:c=>u.serviceHeaders.push(c)}];for(let c of d)for(let o of c.params){if(i&&GNn({typeDeclarations:n,typeReference:o.valueType}))continue;let l=w8({fieldName:o.name.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:o.valueType,skipOptionalProperties:i});if(l.type==="failure")return l;let{example:m}=l;c.add({name:o.name,value:m})}if(t.requestBody!=null)switch(t.requestBody.type){case"bytes":return{type:"failure",message:"Bytes request unsupported"};case"fileUpload":return{type:"failure",message:"File upload unsupported"};case"inlinedRequestBody":{let c={},o=[];for(let l of[...t.requestBody.properties??[],...t.requestBody.extendedProperties??[]]){let m=w8({fieldName:l.name.wireValue,typeReference:l.valueType,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});if(m.type==="failure"&&!GNn({typeDeclarations:n,typeReference:l.valueType}))return{type:"failure",message:`Failed to generate required property ${l.name.wireValue} b/c ${m.message}`};if(m.type==="failure")continue;let{example:O,jsonExample:j}=m;o.push({name:l.name,originalTypeDeclaration:void 0,value:O}),c[l.name.wireValue]=j}u.request=VQ.inlinedRequestBody({jsonExample:c,properties:o});break}case"reference":{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.requestBody.requestBodyType,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.request=VQ.reference(o);break}default:uc(t.requestBody)}if(a.type==="success"&&t.response?.body!=null)switch(t.response.body.type){case"fileDownload":return{type:"failure",message:"File download unsupported"};case"json":{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.value.responseBodyType,skipOptionalProperties:!1});if(c.type==="failure")return c;let{example:o,jsonExample:l}=c;u.response=g7.ok(JN.body({...o,jsonExample:l}));break}case"streamParameter":return{type:"failure",message:"Stream parameter unsupported"};case"streaming":return{type:"failure",message:"Streaming unsupported"};case"text":return{type:"failure",message:"Text unsupported"};default:uc(t.response.body)}else if(a.type==="error")if(a.declaration.type==null)u.response=g7.error({body:void 0,error:a.declaration.name});else{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:a.declaration.type,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.response=g7.error({body:o,error:a.declaration.name})}return{type:"success",example:{id:(0,bHf.default)(u),url:avw(t,u),...u},jsonExample:void 0}}function avw(e,t){let r={};[...t.rootPathParameters,...t.servicePathParameters,...t.endpointPathParameters].forEach(i=>{let a=i.value.jsonExample,u=typeof a=="string"?a:JSON.stringify(a);r[i.name.originalName]=u});let n=e.fullPath.head+e.fullPath.parts.map(i=>r[i.pathParameter]+i.tail).join("");return n.startsWith("/")||n===""?n:`/${n}`}async function EW({fdrApiDefinitionId:e,workspace:t,generationLanguage:r,keywords:n,smartCasing:i,disableExamples:a,includeOptionalRequestPropertyExamples:u,audiences:f,readme:d,packageName:c,version:o,context:l}){let m=Y8t({generationLanguage:r,keywords:n,smartCasing:i}),O=new vSa(f),j=WSr({casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents}),A=(t.definition.rootApiFile.contents.errors??[]).map(ar=>({error:y4r({errorName:ar,file:j}),docs:void 0})),T=new oA(t),B=new yrn(t),F=new gSa(T,B),C=new vrn(t),N=new Qwe(T),U=new R2t,re=new OSa(l,t),ge={fdrApiDefinitionId:e,apiVersion:await WWf({file:j,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:m.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await iSa(t.definition.rootApiFile.contents.docs),auth:await VWf({rawApiFileSchema:t.definition.rootApiFile.contents,file:j,propertyResolver:F,endpointResolver:B}),headers:t.definition.rootApiFile.contents.headers!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents.headers).map(([ar,mn])=>Hxe({headerKey:ar,header:mn,file:j}))):[],idempotencyHeaders:t.definition.rootApiFile.contents["idempotency-headers"]!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents["idempotency-headers"]).map(([ar,mn])=>Hxe({headerKey:ar,header:mn,file:j}))):[],types:{},errors:{},services:{},constants:xWf(m),environments:_Eu({casingsGenerator:m,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:$Wf(t.definition.rootApiFile.contents["error-discrimination"],j),basePath:t.definition.rootApiFile.contents["base-path"]!=null?Vxe(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await JNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:j,location:bTe.Root,variableResolver:U}),variables:t.definition.rootApiFile.contents.variables!=null?Object.entries(t.definition.rootApiFile.contents.variables).map(([ar,mn])=>({docs:typeof mn!="string"?mn.docs:void 0,id:ar,name:j.casingsGenerator.generateName(ar),type:j.parseTypeReference(mn)})):[],serviceTypeReferenceInfo:{typesReferencedOnlyByService:{},sharedTypes:[]},webhookGroups:{},websocketChannels:{},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0},X=new bSa,k=async ar=>{X.addSubpackage(ar.fernFilepath),await nP(ar.definitionFile,{imports:Bc,docs:mn=>{mn!=null&&X.addDocs(ar.fernFilepath,mn)},types:async mn=>{if(mn!=null)for(let[On,Ut]of Object.entries(mn)){if(yTe(On))continue;let kt=await nHf({typeName:On,typeDeclaration:Ut,file:ar,typeResolver:T,exampleResolver:N,sourceResolver:re,workspace:t}),Yr=kt.typeDeclaration;a&&(Yr.userProvidedExamples=[],Yr.autogeneratedExamples=[]);let an=kt.descendantFilepaths,Ai=PP.generateTypeId(Yr.name);ge.types[Ai]=Yr,X.addType(Ai,Yr),O.addType({declaredTypeName:Yr.name,descendantTypeIds:Yr.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:kt.propertiesByAudience,descendantFilepaths:an}),O.markTypeForAudiences(Yr.name,RVf(Ut))}},errors:mn=>{if(mn==null)return;if(t.definition.rootApiFile.contents["error-discrimination"]==null)throw new Error("error-discrimination is missing in api.yml but there are declared errors.");for(let[Ut,kt]of Object.entries(mn)){let Yr=QWf({errorName:Ut,errorDeclaration:kt,file:ar,typeResolver:T,exampleResolver:N,workspace:t}),an=PP.generateErrorId(Yr.name);ge.errors[an]=Yr,X.addError(an,Yr),O.addError(Yr)}},service:async mn=>{if(mn==null)return;let On=await TWf({rootDefaultUrl:ar.defaultUrl??t.definition.rootApiFile.contents["default-url"],rootPathParameters:ge.pathParameters,serviceDefinition:mn,file:ar,errorResolver:C,typeResolver:T,propertyResolver:F,exampleResolver:N,sourceResolver:re,globalErrors:A,variableResolver:U,workspace:t}),Ut=PP.generateServiceId(On.name);ge.services[Ut]=On,X.addService(Ut,On);let kt={};On.endpoints.forEach(Yr=>{a&&(Yr.autogeneratedExamples=[],Yr.userSpecifiedExamples=[]);let an=mn.endpoints[Yr.name.originalName];O.addEndpoint(On,Yr,an),kt[Yr.name.originalName]=Yr}),mn.audiences!=null&&O.markEndpointForAudience(On.name,On.endpoints,mn.audiences),Object.entries(mn.endpoints).map(([Yr,an])=>{let Ai=kt[Yr];Ai!=null&&an.audiences!=null&&O.markEndpointForAudience(On.name,[Ai],an.audiences)})},webhooks:async mn=>{if(mn==null)return;let On=PP.generateWebhookGroupId(ar.fernFilepath),Ut=await YWf({webhooks:mn,file:ar,typeResolver:T,exampleResolver:N,workspace:t}),kt={};for(let Yr of Ut)kt[Yr.name.originalName]=Yr;Object.entries(mn).forEach(([Yr,an])=>{let Ai=kt[Yr];Ai!=null&&(O.addWebhook(ar,Ai,an),an.audiences!=null&&O.markWebhookForAudiences(ar,Ai,an.audiences))}),ge.webhookGroups[On]=Ut,X.addWebhookGroup(On,ar.fernFilepath)},channel:async mn=>{if(mn==null)return;let On=PP.generateWebSocketChannelId(ar.fernFilepath),Ut=await HWf({channel:mn,file:ar,variableResolver:U,typeResolver:T,exampleResolver:N,workspace:t});ge.websocketChannels!=null&&(ge.websocketChannels[On]=Ut,X.addWebSocketChannel(On,ar.fernFilepath))}})};await D3(t,async(ar,mn,On)=>{await k($m({relativeFilepath:ar,definitionFile:mn,casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents,defaultUrl:On.defaultUrl}))}),await den(t,async(ar,mn)=>{if(mn.navigation!=null)if(typeof mn.navigation=="string")X.addPackageRedirection({from:Fne({relativeFilepath:ar,casingsGenerator:m}),to:Fne({relativeFilepath:Wl(C0(ar),ls.of(mn.navigation)),casingsGenerator:m})});else{let On=mn.navigation.map(Ut=>PP.generateSubpackageId(Fne({relativeFilepath:Wl(C0(ar),ls.of(Ut)),casingsGenerator:m})));ar===mD?X.sortRootPackage(On):X.sortSubpackage(PP.generateSubpackageId(Fne({relativeFilepath:ar,casingsGenerator:m})),On)}}),ge.serviceTypeReferenceInfo=uvw(O);let xe=a?ge:ovw(ge,l,!u),vt=t.definition.rootApiFile.contents,yt=_Eu({casingsGenerator:m,rawApiFileSchema:vt}),St=yt?.environments._visit({singleBaseUrl:ar=>ar.environments.filter(mn=>PSa(mn.id,vt.environments)!=null).length===0,multipleBaseUrls:ar=>ar.environments.filter(mn=>PSa(mn.id,vt.environments)!=null).length===0,_other:()=>!1});yt?.environments.environments.forEach(ar=>{O.markEnvironmentForAudiences(ar,PSa(ar.id,vt.environments)??[],St)});let Ft=O.hasNoAudiences()?void 0:O.build(),Zt=svw(xe,Ft),Vt=t.definition.rootApiFile.contents.auth!=null&&Object.values(Zt.services).every(ar=>ar.endpoints.every(mn=>mn.auth)),cr=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.response?.body?.type==="streaming")),Wr=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.pagination!=null)),gn=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.response?.body?.type==="fileDownload")),Kt=d!=null?KWf({readme:d,services:ge.services}):void 0,{types:Mr,services:Mn}=aHf(Zt);return{...Zt,...X.build(Ft),types:Mr,services:Mn,sdkConfig:{isAuthMandatory:Vt,hasStreamingEndpoints:cr,hasPaginatedEndpoints:Wr,hasFileDownloadEndpoints:gn,platformHeaders:{language:"X-Fern-Language",sdkName:"X-Fern-SDK-Name",sdkVersion:"X-Fern-SDK-Version",userAgent:o!=null&&c!=null?{header:"User-Agent",value:`${c}/${o}`}:void 0}},readmeConfig:Kt}}function ovw(e,t,r){for(let[n,i]of Object.entries(e.services))for(let a of i.endpoints){t.logger.debug(`Generating example for ${a.id}`);let u=dbi({ir:e,service:i,endpoint:a,typeDeclarations:e.types,skipOptionalRequestProperties:r??!0,generationResponse:{type:"success"}});if(u.type==="failure"){t.logger.debug(`Failed to generate example for ${a.id}. ${u.message}`);continue}let{example:f}=u;a.autogeneratedExamples=[{example:f}]}return e}function uvw(e){let t={},r=[],n=e.getTypesReferencedByService();for(let[i,a]of Object.entries(n)){if(a.size===1){let u=a.values().next().value;t[u]===void 0&&(t[u]=[]),t[u]?.push(i);continue}r.push(i)}return{typesReferencedOnlyByService:t,sharedTypes:r}}function svw(e,t){if(t==null)return e;let r=nYr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>lHf({filteredIr:t,exampleType:c})).filter(c=>c!==void 0),f.shape.type==="object"){for(let c of f.shape.properties)t.hasProperty(u,c.name.wireValue)&&d.push(c);return[u,{...f,shape:jC.object({...f.shape,properties:d})}]}return[u,f]})),i=Object.fromEntries(Object.entries(e.webhookGroups).map(([u,f])=>{let d=f.filter(c=>t.hasWebhook(c)).map(c=>{let o=c.id;return c.payload.type==="inlinedPayload"&&o!=null&&(c.payload={...c.payload,properties:c.payload.properties.filter(l=>t.hasWebhookPayloadProperty(o,l.name.wireValue))}),c});return[u,d]})),a=e.environments;if(a){switch(a.environments.type){case"singleBaseUrl":{a.environments.environments=a.environments.environments.filter(u=>t.hasEnvironmentId(u.id));break}case"multipleBaseUrls":{a.environments.environments=a.environments.environments.filter(u=>t.hasEnvironmentId(u.id));break}}a.defaultEnvironment&&(t.hasEnvironmentId(a.defaultEnvironment)||(a.defaultEnvironment=void 0))}return{...e,environments:a,types:n,errors:nYr(e.errors,u=>t.hasError(u)),services:Vh(nYr(e.services,u=>t.hasService(u)),u=>({...u,endpoints:u.endpoints.filter(f=>t.hasEndpoint(f)).map(f=>(f.autogeneratedExamples=f.autogeneratedExamples.map(d=>({...d,example:OEu({filteredIr:t,example:d.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(d=>({...d,example:d.example!=null?OEu({filteredIr:t,example:d.example}):void 0})),f.queryParameters.length>0&&(f.queryParameters=f.queryParameters.filter(d=>t.hasQueryParameter(f.id,d.name.wireValue))),f.requestBody?.type==="inlinedRequestBody"?{...f,requestBody:{...f.requestBody,properties:f.requestBody.properties.filter(d=>t.hasRequestProperty(f.id,d.name.wireValue))}}:f))})),webhookGroups:i,serviceTypeReferenceInfo:cvw(e.serviceTypeReferenceInfo,t)}}function cvw(e,t){if(t==null)return e;let r={};return Object.entries(e.typesReferencedOnlyByService).forEach(([n,i])=>{t.hasServiceId(n)&&(r[n]=i.filter(a=>t.hasTypeId(a)))}),{sharedTypes:e.sharedTypes.filter(n=>t.hasTypeId(n)),typesReferencedOnlyByService:r}}var MHf=Jo(ZDa(),1),THf=Jo(kDa(),1),SSa=require("fs/promises"),xHf=Jo(W1a(),1);function k8t(e){return typeof e.subpackageId=="string"}function Gwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function brn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var PEu="__package__",m4r=class e{api;context;static create(t,r){return new e(t,r)}#e=new Map;#t=new Map;#n=new Map;#i=new Map;#r=new Map;#a=new Map;#o=new Map;#f=new Map;#c=new Map;#s=new Map;#u=new Map;static getSubpackageId(t){return k8t(t)?t.subpackageId:PEu}getSubpackageByIdOrLocator(t){if(t==null)return;let r=j8.SubpackageId(t);return r===PEu?this.api.rootPackage:this.api.subpackages[r]??this.#u.get(r)}resolveSubpackage(t){if(t!=null){for(;t?.pointsTo!=null;)t=this.api.subpackages[t.pointsTo];return t}}constructor(t,r){this.api=t,this.context=r,[t.rootPackage,...Object.values(t.subpackages)].forEach(n=>{let i=j8.SubpackageId(e.getSubpackageId(n)),a={endpoints:new Map,webSockets:new Map,webhooks:new Map};this.#o.set(i,a),n.endpoints.forEach(u=>{a.endpoints.set(u.id,u);let f=e.createEndpointId(u,i);this.#e.set(f,u);let d=[],c=[u.method];u.response?.type.type==="stream"&&c.push("STREAM"),c.forEach(o=>{d.push(`${o} ${Gwe(u.path.parts)}`),d.push(`${o} ${brn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Gwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,brn(u.path.parts))}`);let m=gHf(l);m!=null&&(d.push(`${o} ${oP(m,Gwe(u.path.parts))}`),d.push(`${o} ${oP(m,brn(u.path.parts))}`))})}),d.forEach(o=>{this.context?.logger.debug(`Registering endpoint locator: ${o}`),this.#f.set(o,u)})}),n.websockets.forEach(u=>{a.webSockets.set(u.id,u);let f=e.createWebSocketId(u,i);this.#t.set(f,u);let d=[];["GET","WSS"].forEach(o=>{d.push(`${o} ${Gwe(u.path.parts)}`),d.push(`${o} ${brn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Gwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,brn(u.path.parts))}`);let m=gHf(l);m!=null&&(d.push(`${o} ${oP(m,Gwe(u.path.parts))}`),d.push(`${o} ${oP(m,brn(u.path.parts))}`))})}),d.forEach(o=>{this.context?.logger.debug(`Registering websocket locator: ${o}`),this.#c.set(o,u)})}),n.webhooks.forEach(u=>{a.webhooks.set(u.id,u),this.#n.set(e.createWebhookId(u,i),u)})}),this.#e.forEach((n,i)=>{this.#i.set(n,i)}),this.#t.forEach((n,i)=>{this.#r.set(n,i)}),this.#n.forEach((n,i)=>{this.#a.set(n,i)}),this.#d(t.rootPackage,[])}#d(t,r){if(t==null)return;let n=k8t(t)?[...r,t.name]:r,i=n.length===0?[PEu]:n;if([i.join("."),i.join("/"),`${i.join(".")}.yml`].forEach(u=>{this.context?.logger.debug(`Registering subpackage locator: ${u}`),this.#u.set(u,t)}),t.pointsTo!=null)return this.#d(this.api.subpackages[t.pointsTo],n);t.endpoints.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering endpoint locator: ${c}`),this.#f.set(c,u)})}),t.websockets.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering websocket locator: ${c}`),this.#c.set(c,u)})}),t.webhooks.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering webhook locator: ${c}`),this.#s.set(c,u)})}),t.subpackages.forEach(u=>{this.#d(this.api.subpackages[u],n)})}get endpoints(){return this.#e}get webSockets(){return this.#t}get webhooks(){return this.#n}get endpointsByLocator(){return this.#f}get webSocketsByLocator(){return this.#c}get webhooksByLocator(){return this.#s}get subpackages(){return this.#o}get subpackagesByLocator(){return this.#u}getEndpointId(t){return this.#i.get(t)}getWebSocketId(t){return this.#r.get(t)}getWebhookId(t){return this.#a.get(t)}static createEndpointId(t,r){return vc.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return vc.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return vc.WebhookId(`${r}.${t.id}`)}};function gHf(e){if(e!=null){if(e.baseUrl.startsWith("/"))return e.baseUrl;if(e.baseUrl.startsWith("http")||e.baseUrl.startsWith("ws"))try{return new URL(e.baseUrl).pathname}catch{return}}}var $Nn=Jo(ZDa(),1),OHf=Jo(kDa(),1);function mHf(e){let t=e.split(".")[0];if(t==null)return;let n=/(^\d{1,4})-(\d{1,2})-(\d{1,4})/.exec(t)?.[0];if(n!=null)try{return new Date(n)}catch{}}$Nn.default.extend(OHf.default);var lvw="Changelog",fvw=["summary","index","overview"],grn=class{markdownToFullSlug;changelogFiles;docsWorkspace;idgen;constructor(t,r,n,i){this.markdownToFullSlug=t,this.changelogFiles=r,this.docsWorkspace=n,this.idgen=i}toChangelogNode(t){let r=t.title??lvw,n=[],i;for(let l of this.changelogFiles??[]){let m=oUo(l.split("/"));if(m==null)continue;let O=mHf(m);if(O==null){let A=m.split(".")[0]?.toLowerCase();A!=null&&fvw.includes(A)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:vc.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?this.markdownToFullSlug.get(i)?.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??b9(r)}),u=n.map(l=>{let m=$Nn.default.utc(l.date);return{id:this.idgen.get(l.pageId),type:"changelogEntry",title:m.format("MMMM D, YYYY"),slug:a.apply({fullSlug:this.markdownToFullSlug.get(l.absoluteFilepath)?.split("/"),urlSlug:m.format("YYYY/M/D")}).get(),icon:void 0,hidden:void 0,date:l.date.toISOString(),pageId:l.pageId,noindex:void 0,authed:void 0,viewers:void 0,orphaned:void 0}}),f=jEu(u,l=>l.date,"desc"),d=i!=null?vc.PageId(this.toRelativeFilepath(i)):void 0,c=this.idgen.get(d??"changelog"),o=this.groupByYear(c,f,a);return{id:c,type:"changelog",title:r,slug:a.get(),icon:t.icon,hidden:t.hidden,children:o,overviewPageId:d,noindex:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}orUndefined(){return this.changelogFiles!=null&&this.changelogFiles.length>0?this:void 0}groupByYear(t,r,n){let i=new Map;for(let a of r){let u=$Nn.default.utc(a.date).year(),f=i.get(u)??[];f.push(a),i.set(u,f)}return jEu(Array.from(i.entries()).map(([a,u])=>{let f=n.append(a.toString()).get(),d=this.idgen.get(`${t}/year/${a}`);return{id:d,type:"changelogYear",title:a.toString(),year:a,slug:f,icon:void 0,hidden:void 0,children:this.groupByMonth(d,u,n),authed:void 0,viewers:void 0,orphaned:void 0}}),"year","desc")}groupByMonth(t,r,n){let i=new Map;for(let a of r){let u=$Nn.default.utc(a.date).month()+1,f=i.get(u)??[];f.push(a),i.set(u,f)}return jEu(Array.from(i.entries()).map(([a,u])=>{let f=(0,$Nn.default)(new Date(0,a-1));return{id:this.idgen.get(`${t}/month/${a}`),type:"changelogMonth",title:f.format("MMMM YYYY"),month:a,slug:n.append(a.toString()).get(),icon:void 0,hidden:void 0,children:u,authed:void 0,viewers:void 0,orphaned:void 0}}),"month","desc")}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}};function jEu(e,t,r="asc"){return e.concat().sort((n,i)=>{let a=typeof t=="function"?t(n):n[t],u=typeof t=="function"?t(i):i[t];return a<u?r==="asc"?-1:1:a>u?r==="asc"?1:-1:0})}var jSa=class{apiSection;workspace;docsWorkspace;taskContext;markdownFilesToFullSlugs;apiDefinitionId;#e;#t=new Set;#n=new Set;#i=new Set;#r=new Set;#a=new Map;#o=[];#f;#c;#s;disableEndpointPairs;constructor(t,r,n,i,a,u,f,d){this.apiSection=t,this.workspace=i,this.docsWorkspace=a,this.taskContext=u,this.markdownFilesToFullSlugs=f,this.disableEndpointPairs=a.config.experimental?.disableStreamToggle??!1,this.apiDefinitionId=vc.V1.ApiDefinitionId(r.id),this.#e=m4r.create(r,u),this.#s=d,this.#f=this.apiSection.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(this.apiSection.overviewAbsolutePath)):void 0;let c=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;this.#c=n.apply({fullSlug:c?.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??b9(this.apiSection.title)}),this.apiSection.navigation!=null&&(this.#o=this.#u(this.apiSection.navigation,this.#e.api.rootPackage,this.#c)),this.#o=this.#y(this.#o.map(o=>this.#g(o)),this.#w(this.#e.api.rootPackage,this.#c))}get(){let t=vc.V1.followRedirects(this.#o),r=new grn(this.markdownFilesToFullSlugs,this.workspace.changelog?.files.map(n=>n.absoluteFilepath),this.docsWorkspace,this.#s).orUndefined();return{id:this.#s.get(this.apiDefinitionId),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:this.#f,paginated:this.apiSection.paginated,slug:this.#c.get(),icon:this.apiSection.icon,hidden:this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:r?.toChangelogNode({parentSlug:this.#c,viewers:void 0}),children:this.#o,availability:void 0,pointsTo:t,noindex:void 0,playground:this.#b(this.apiSection.playground),authed:void 0,viewers:this.apiSection.viewers,orphaned:this.apiSection.orphaned}}#u(t,r,n){r=this.#e.resolveSubpackage(r);let i=r!=null?m4r.getSubpackageId(r):void 0;return t.map(a=>_Da(a)._visit({link:u=>({id:this.#s.get(u.url),type:"link",title:u.text,icon:u.icon,url:vc.Url(u.url)}),page:u=>this.#d(u,n),package:u=>this.#v(u,n),section:u=>this.#_(u,n),item:({value:u})=>this.#p(u,i,n),endpoint:u=>this.#P(u,i,n)})).filter(YA)}#d(t,r){let n=vc.V1.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/"),urlSlug:t.slug??b9(t.title)});return{id:this.#s.get(n),type:"page",pageId:n,title:t.title,slug:i.get(),icon:t.icon,hidden:t.hidden,noindex:t.noindex,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}#v(t,r){let n=t.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,i=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let u=m4r.getSubpackageId(a),f=this.#s.get(n??`${this.apiDefinitionId}:${u}`);this.#r.has(u)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${u}`),this.#r.add(u),this.#a.set(f,[u]);let d=t.slug??(k8t(a)?a.urlSlug:this.apiSection.slug??b9(this.apiSection.title)),c=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:d}),o=this.#u(t.contents,a,c);return{id:f,type:"apiPackage",children:o,title:t.title??(k8t(a)?a.displayName??trn(a.name):this.apiSection.title),slug:c.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}else{this.taskContext.logger.warn(`Subpackage ${t.package} not found in ${this.apiDefinitionId}, treating it as a section`);let u=t.slug??b9(t.package),f=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),d=this.#u(t.contents,void 0,f);return{id:this.#s.get(n??`${this.apiDefinitionId}:${b9(t.package)}`),type:"apiPackage",children:d,title:t.title??t.package,slug:f.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}}#_(t,r){let n=t.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,i=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,a=this.#s.get(n??i??r.get()),u=t.referencedSubpackages.map(o=>{let l=this.#e.getSubpackageByIdOrLocator(o);return l!=null?m4r.getSubpackageId(l):void 0}).filter(o=>(o==null&&this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`),o!=null)).filter(YA);this.#a.set(a,u),u.forEach(o=>{this.#r.has(o)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${o}`),this.#r.add(o)});let f=t.slug??b9(t.title),d=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:f}),c=this.#u(t.contents,void 0,d);return{id:a,type:"apiPackage",children:c,title:t.title,slug:d.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}#p(t,r,n){t=t.trim();let i=this.#e.getSubpackageByIdOrLocator(t);if(i!=null){let a=m4r.getSubpackageId(i),u=this.#s.get(`${this.apiDefinitionId}:${a}`);this.#r.has(a)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${a}`),this.#r.add(a),this.#a.set(u,[a]);let f=k8t(i)?i.urlSlug:"",d=n.apply({urlSlug:f});return{id:u,type:"apiPackage",children:[],title:k8t(i)?i.displayName??trn(i.name):this.apiSection.title,slug:d.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0}}return this.#P({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,playground:void 0,viewers:void 0,orphaned:void 0},r,n)}#P(t,r,n){let i=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.endpoints.get(j8.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(i!=null){let f=this.#e.getEndpointId(i);if(f==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);this.#t.has(f)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${f}`),this.#t.add(f);let d=t.slug!=null?n.append(t.slug):n.apply(i);return{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"endpoint",method:i.method,endpointId:f,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:t.title??i.name??Gwe(i.path.parts),slug:d.get(),icon:t.icon,hidden:t.hidden,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}let a=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.webSockets.get(j8.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(a!=null){let f=this.#e.getWebSocketId(a);if(f==null)throw new Error(`Expected WebSocket ID for ${a.id}. Got undefined.`);return this.#n.has(f)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${f}`),this.#n.add(f),{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"webSocket",webSocketId:f,title:t.title??a.name??Gwe(a.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(a.availability),playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}let u=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.webhooks.get(j8.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(vc.V1.WebhookId(t.endpoint));if(u!=null){let f=this.#e.getWebhookId(u);if(f==null)throw new Error(`Expected Webhook ID for ${u.id}. Got undefined.`);return this.#i.has(f)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${f}`),this.#i.add(f),{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"webhook",webhookId:f,method:u.method,title:t.title??u.name??oP("/",...u.path),slug:(t.slug!=null?n.append(t.slug):n.apply(u)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#y(t,r){return this.mergeEndpointPairs([...t,...r]).filter(n=>n.type==="apiPackage"?n.children.length>0:!0)}#g(t){if(t.type==="apiPackage"){let r=vc.V1.SlugGenerator.init(t.slug),i=(this.#a.get(t.id)??[]).flatMap(f=>this.#m(f,r)),a=t.children.map(f=>this.#g(f)),u=this.#y(a,i);return{...t,children:u,pointsTo:void 0}}return t}#w(t,r){let n=[];return t.endpoints.forEach(i=>{let a=this.#e.getEndpointId(i);if(a==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);if(this.#t.has(a))return;let u=r.apply(i);n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:i.name??Gwe(i.path.parts),slug:u.get(),icon:void 0,hidden:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.websockets.forEach(i=>{let a=this.#e.getWebSocketId(i);if(a==null)throw new Error(`Expected WebSocket ID for ${i.id}. Got undefined.`);this.#n.has(a)||n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??Gwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.webhooks.forEach(i=>{let a=this.#e.getWebhookId(i);if(a==null)throw new Error(`Expected Webhook ID for ${i.id}. Got undefined.`);this.#i.has(a)||n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??trn(i.id),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.subpackages.forEach(i=>{if(this.#r.has(i))return;let a=this.#e.getSubpackageByIdOrLocator(i);if(a==null){this.taskContext.logger.error(`Subpackage ${i} not found in ${this.apiDefinitionId}`);return}let u=k8t(a)?r.apply(a):r,f=this.#m(i,u);f.length>0&&n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:k8t(a)?a.displayName??trn(a.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),n=this.mergeEndpointPairs(n),this.apiSection.alphabetized&&(n=n.sort((i,a)=>{let u=i.type==="endpointPair"?i.nonStream.title:i.title,f=a.type==="endpointPair"?a.nonStream.title:a.title;return u.localeCompare(f)})),n}#m(t,r){let n=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return n==null?(this.taskContext.logger.error(`Subpackage ${t} not found in ${this.apiDefinitionId}`),[]):this.#w(n,r)}#b(t){if(t)return{environments:t.environments!=null&&t.environments.length>0?t.environments.map(r=>vc.V1.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:vc.V1.Url(t.button.href)}:void 0,"limit-websocket-messages-per-connection":t.limitWebsocketMessagesPerConnection!=null?t.limitWebsocketMessagesPerConnection:void 0}}mergeEndpointPairs(t){if(this.disableEndpointPairs)return t;let r=[],n=new Map;return t.forEach(i=>{if(i.type!=="endpoint"){r.push(i);return}let a=this.#e.endpoints.get(i.endpointId);if(a==null)throw new Error(`Endpoint ${i.endpointId} not found`);let u=`${a.method} ${Gwe(a.path.parts)}`,f=n.get(u);if(n.set(u,i),f==null||f.isResponseStream===i.isResponseStream){r.push(i);return}let d=r.indexOf(f),c=i.isResponseStream?i:f,o=i.isResponseStream?f:i,l={id:vc.V1.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}};var PHf=Jo(require("crypto"),1);function dvw(e){return PHf.default.createHash("sha256").update(e).digest("hex")}var wSa=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#n(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),dvw(r===0?t:`${t}-${r}`)}#i(t){let r=this.#n(t),n=0;for(;this.#t.has(r);)if(r=this.#n(t),n++,n>100)throw new Error(`Infinite loop detected for id: ${t}`);return r}get(t){return vc.V1.NodeId(this.#i(t))}};function jHf(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0}}var DSa=Jo(cCt(),1);var C1=Jo(cCt(),1);var O4r=Jo(cCt(),1);function wHf(e){return e._visit({alias:t=>({type:"alias",value:TM(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?t.default.name.wireValue:void 0,values:t.values.map(r=>({description:r.docs??void 0,value:r.name.wireValue,availability:SF(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>O4r.FernRegistry.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:O4r.FernRegistry.PropertyKey(r.name.wireValue),valueType:TM(r.valueType),availability:SF(r.availability)})),extraProperties:yvw(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:O4r.FernRegistry.PropertyKey(n.name.wireValue),valueType:TM(n.valueType),availability:SF(n.availability),description:n.docs}));return{type:"discriminatedUnion",discriminant:t.discriminant.wireValue,variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:n.discriminantValue.wireValue,displayName:n.displayName,availability:n.availability!=null?SF(n.availability):void 0,additionalProperties:fd.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[O4r.FernRegistry.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:O4r.FernRegistry.PropertyKey(i.name.wireValue),valueType:TM(i.type),description:void 0,availability:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+n.shape.propertiesType)}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?r.type.name.originalName:void 0,description:r.docs??void 0,type:TM(r.type),availability:void 0}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function TM(e){return e._visit({container:t=>fd.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:TM(r)}),map:({keyType:r,valueType:n})=>({type:"map",keyType:TM(r),valueType:TM(n)}),optional:r=>({type:"optional",itemType:TM(r),defaultValue:void 0}),set:r=>({type:"set",itemType:TM(r)}),literal:r=>fd.types.Literal._visit(r,{boolean:n=>({type:"literal",value:{type:"booleanLiteral",value:n}}),string:n=>({type:"literal",value:{type:"stringLiteral",value:n}}),_other:()=>{throw new Error("Unknown literal type: "+r.type)}}),_other:()=>{throw new Error("Unknown container reference: "+t.type)}}),named:t=>({type:"id",value:O4r.FernRegistry.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:fd.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>_vw(t.v2),float:()=>({type:"double",minimum:22250738585072014e-324,maximum:17976931348623157e292,default:0}),double:()=>hvw(t.v2),string:()=>pvw(t.v2),long:()=>({type:"long",default:0,minimum:void 0,maximum:void 0}),boolean:()=>({type:"boolean",default:!1}),dateTime:()=>({type:"datetime",default:new Date(0).toISOString()}),date:()=>({type:"date",default:new Date(0).toISOString()}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",default:"0"}),bigInteger:()=>({type:"bigInteger",default:BigInt(0).toString()}),uint:()=>({type:"uint"}),uint64:()=>({type:"uint64"}),_other:()=>{throw new Error("Unknown primitive: "+t.v1)}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new Error("Unknown Type reference: "+e.type)}})}function pvw(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",regex:t?.pattern,minLength:t?.minLength,maxLength:t?.minLength,default:e!=null&&e.type==="string"?e.default:void 0}}function _vw(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.min,maximum:t?.max,default:e!=null&&e.type==="integer"?e.default:void 0}}function hvw(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.min,maximum:t?.max,default:e!=null&&e.type==="double"?e.default:void 0}}function yvw(e){return typeof e=="boolean"?cT.unknown():typeof e=="string"?{type:"id",value:O4r.FernRegistry.TypeId(e),default:void 0}:TM(e)}function DEu(e,t){let r=e.service!=null?t.services[e.service]:void 0,n=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,i=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:r!=null?bvw(r,t):[],webhooks:n!=null?vvw(n):[],websockets:i!=null?[gvw(i,t)]:[],types:e.types.map(a=>C1.FernRegistry.TypeId(a)),subpackages:e.subpackages.map(a=>C1.FernRegistry.api.v1.SubpackageId(a)),pointsTo:e.navigationConfig!=null?C1.FernRegistry.api.v1.SubpackageId(e.navigationConfig.pointsTo):void 0}}function vvw(e){return e.map(t=>({description:t.docs??void 0,id:C1.FernRegistry.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??csi(t.name.originalName),headers:t.headers.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:TM(r.valueType),availability:SF(r.availability)})),payload:Evw(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function bvw(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],a=[];if(n.userSpecifiedExamples.length>0&&i!=null)a.push(...n.userSpecifiedExamples.map(f=>wEu({autogeneratedExample:i,userSpecifiedExample:f,irEndpoint:n,ir:t})));else if(i!=null)a.push(wEu({autogeneratedExample:i,irEndpoint:n,ir:t}));else if(n.response?.body?.type==="fileDownload"){let f=dbi({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(f.type==="success"){let d={...wEu({autogeneratedExample:f,irEndpoint:n,ir:t}),responseBodyV3:{type:"filename",value:"<bytes>"}};a.push(d)}}let u={availability:SF(n.availability??e.availability),auth:n.auth,description:n.docs??void 0,method:jvw(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?mvw({environmentsConfig:t.environments,endpoint:n}):void 0,id:C1.FernRegistry.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??csi(n.name.originalName),path:n.basePath!=null?{pathParameters:n.pathParameters.map(f=>({description:f.docs??void 0,key:C1.FernRegistry.PropertyKey(f.name.originalName),type:TM(f.valueType),availability:void 0})),parts:[...KNn(n.basePath),...KNn(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(f=>({description:f.docs??void 0,key:C1.FernRegistry.PropertyKey(f.name.originalName),type:TM(f.valueType),availability:void 0})),parts:[...t.basePath!=null?KNn(t.basePath):[],...KNn(e.basePath),...KNn(n.path)]},queryParameters:n.queryParameters.map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:TM(f.valueType),availability:SF(f.availability)})),headers:[...e.headers,...n.headers].map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:TM(f.valueType),availability:SF(f.availability)})),request:n.requestBody!=null?wvw(n.requestBody):void 0,response:n.response!=null?Dvw(n.response):void 0,errors:void 0,errorsV2:Svw(n.errors,t),examples:a};r.push(u)}return r}function gvw(e,t){return{auth:e.auth,availability:SF(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?Ovw({environmentsConfig:t.environments,channel:e}):[],id:C1.FernRegistry.WebSocketId(e.name.originalName),name:e.displayName??csi(e.name.originalName),path:{pathParameters:e.pathParameters.map(r=>({description:r.docs??void 0,key:C1.FernRegistry.PropertyKey(r.name.originalName),type:TM(r.valueType),availability:void 0})),parts:KNn(e.path)},headers:e.headers.map(r=>({key:r.name.wireValue,type:TM(r.valueType),description:r.docs,availability:SF(r.availability)})),queryParameters:e.queryParameters.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:TM(r.valueType),availability:SF(r.availability)})),messages:e.messages.map(r=>({type:C1.FernRegistry.api.v1.WebSocketMessageId(r.type),displayName:r.displayName,origin:r.origin,body:Avw(r.body),description:r.docs,availability:SF(r.availability)})),examples:e.examples.map(r=>({name:r.name?.originalName,description:r.docs,path:r.url,pathParameters:r.pathParameters.reduce((n,i)=>(n[C1.FernRegistry.PropertyKey(i.name.originalName)]=i.value.jsonExample,n),{}),queryParameters:r.queryParameters.reduce((n,i)=>(n[i.name.wireValue]=i.value.jsonExample,n),{}),headers:r.headers.reduce((n,i)=>(n[i.name.wireValue]=i.value.jsonExample,n),{}),messages:r.messages.map(n=>({type:C1.FernRegistry.api.v1.WebSocketMessageId(n.type),body:n.body.jsonExample}))}))}}function SF(e){if(e!=null)switch(e.status){case"DEPRECATED":return C1.FernRegistry.Availability.Deprecated;case"PRE_RELEASE":return C1.FernRegistry.Availability.Beta;case"GENERAL_AVAILABILITY":return C1.FernRegistry.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return C1.FernRegistry.Availability.Beta;default:uc(e.status)}}function mvw({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:C1.FernRegistry.EnvironmentId(i.id),baseUrl:i.url}));case"multipleBaseUrls":if(n==null)throw new Error(`Expected endpoint ${t.name.originalName} to have base url.`);return r.environments.map(i=>{let a=i.urls[n];if(a==null)throw new Error(`Expected environment ${i.id} to contain url for ${n}`);return{id:C1.FernRegistry.EnvironmentId(i.id),baseUrl:a}});default:uc(r)}}function Ovw({environmentsConfig:e,channel:t}){let r=e.environments;switch(r.type){case"singleBaseUrl":return r.environments.map(n=>({id:C1.FernRegistry.EnvironmentId(n.id),baseUrl:Pvw(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:uc(r)}}function Pvw(e,t){return e.replace(/^[^:]+/,t)}function jvw(e){return fd.http.HttpMethod._visit(e,{get:()=>C1.FernRegistry.HttpMethod.Get,post:()=>C1.FernRegistry.HttpMethod.Post,put:()=>C1.FernRegistry.HttpMethod.Put,patch:()=>C1.FernRegistry.HttpMethod.Patch,delete:()=>C1.FernRegistry.HttpMethod.Delete,_other:()=>{throw new Error("Unknown http method: "+e)}})}function KNn(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:C1.FernRegistry.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function wvw(e){let t=fd.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??tI.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>C1.FernRegistry.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:C1.FernRegistry.PropertyKey(n.name.wireValue),valueType:TM(n.valueType),availability:SF(n.availability)})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??tI.APPLICATION_JSON,shape:{type:"reference",value:TM(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:r.name.originalName,description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let a=i._visit({file:u=>({type:"file",key:C1.FernRegistry.PropertyKey(u.key.wireValue),isOptional:u.isOptional,contentType:u.contentType,description:void 0,availability:void 0}),fileArray:u=>({type:"fileArray",key:C1.FernRegistry.PropertyKey(u.key.wireValue),isOptional:u.isOptional,contentType:u.contentType,description:void 0,availability:void 0}),_other:()=>{}});if(a!=null)return{type:"file",value:a}},bodyProperty:i=>({type:"bodyProperty",key:C1.FernRegistry.PropertyKey(i.name.wireValue),valueType:TM(i.valueType),contentType:i.contentType,description:i.docs,availability:SF(i.availability)}),_other:()=>{}})).filter(YA)},description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t,description:e.docs}:void 0}function Dvw(e){if(e.body==null)return;let t,r=fd.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:TM(n.responseBodyType)}),text:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:TM(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:TM(n.payload)},terminator:n.terminator}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}});if(r!=null)return{type:r,statusCode:e.statusCode,description:t}}function Svw(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:TM(i.type)},statusCode:i.statusCode,description:i.docs??void 0,name:i.name.name.originalName,availability:void 0,examples:i.examples.map(a=>({name:a.name?.originalName,responseBody:{type:"json",value:a.jsonExample},description:a.docs}))})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let a=[{key:C1.FernRegistry.PropertyKey(t.errorDiscriminationStrategy.discriminant.wireValue),valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}},description:i.docs,availability:void 0}];i.type!=null&&a.push({key:C1.FernRegistry.PropertyKey(t.errorDiscriminationStrategy.contentProperty.wireValue),valueType:TM(i.type),description:i.docs,availability:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:a,extraProperties:void 0},statusCode:i.statusCode,description:i.docs??void 0,availability:void 0,name:i.name.name.originalName,examples:i.examples.map(u=>({name:u.name?.originalName,responseBody:{type:"json",value:u.jsonExample},description:u.docs}))})}}return r}function wEu({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(f=>{let d=f.valueType.type==="container"&&f.valueType.container.type==="literal"?f.valueType.container.literal._visit({boolean:c=>`${c}`,string:c=>c,_other:()=>{}}):void 0;if(d!=null)return{name:f.name,value:{jsonExample:d,shape:fd.ExampleTypeReferenceShape.primitive(fd.ExamplePrimitive.string({original:d}))}}}).filter(YA),a=e?.example??t.example,{codeSamples:u}=e??{codeSamples:[]};return{name:a.name?.originalName,description:a.docs,path:a.url,pathParameters:[...a.rootPathParameters,...a.servicePathParameters,...a.endpointPathParameters].reduce((f,d)=>(f[C1.FernRegistry.PropertyKey(d.name.originalName)]=d.value.jsonExample,f),{}),queryParameters:a.queryParameters.reduce((f,d)=>(f[d.name.wireValue]=d.value.jsonExample,f),{}),headers:[...i,...a.serviceHeaders,...a.endpointHeaders].reduce((f,d)=>(f[d.name.wireValue]=d.value.jsonExample,f),{}),requestBody:a.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>a.request!=null?{type:"json",value:a.request.jsonExample}:void 0,reference:()=>a.request!=null?{type:"json",value:a.request.jsonExample}:void 0,fileUpload:f=>{if(a.request==null)return;let d={};if(bD(a.request.jsonExample)){let c=a.request.jsonExample;for(let o of f.properties)o._visit({file:l=>{let m=c[l.key.wireValue];if(l.type==="file")d[l.key.wireValue]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(l.type==="fileArray"){let O=(Array.isArray(m)?m:[m]).filter(j=>typeof j=="string");d[l.key.wireValue]={type:"filenames",value:O}}},bodyProperty:l=>{d[l.name.wireValue]={type:"json",value:c[l.name.wireValue]}},_other:zqt})}return{type:"form",value:d}},bytes:()=>{},_other:()=>{}}),responseStatusCode:fd.http.ExampleResponse._visit(a.response,{ok:f=>f._visit({body:d=>d!=null?200:204,stream:d=>d.length>0?200:204,sse:d=>d.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+f.type)}}),error:({error:f})=>{let d=n.errors[f.errorId];if(d==null)throw new Error("Cannot find error "+f.errorId);return d.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),responseBody:a.response._visit({ok:f=>f._visit({body:d=>d?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:f=>f.body?.jsonExample,_other:()=>{}}),responseBodyV3:a.response._visit({ok:f=>f._visit({body:d=>d!=null?{type:"json",value:d.jsonExample}:void 0,stream:d=>({type:"stream",value:d.map(c=>c.jsonExample)}),sse:d=>({type:"sse",value:d.map(({event:c,data:o})=>({event:c,data:o.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+f.type)}}),error:f=>f.body!=null?{type:"json",value:f.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),codeSamples:u?.map(f=>uwe._visit(f,{language:d=>({language:d.language,code:d.code,name:d.name?.originalName,description:d.docs??void 0,install:d.install}),sdk:d=>({language:d.sdk,code:d.code,name:d.name?.originalName,description:d.docs??void 0,install:void 0}),_other:()=>{}})).filter(YA)}}function Evw(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>C1.FernRegistry.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:C1.FernRegistry.PropertyKey(t.name.wireValue),valueType:TM(t.valueType),availability:SF(t.availability)})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:TM(e.payloadType)},description:e.docs};default:uc(e)}}function Avw(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>C1.FernRegistry.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:C1.FernRegistry.PropertyKey(t.name.wireValue),valueType:TM(t.valueType),availability:SF(t.availability)})),extraProperties:void 0};case"reference":return{type:"reference",value:TM(e.bodyType)};default:uc(e)}}var SEu=Jo(cCt(),1);function DHf(e,t,r){let n=e.schemes[0];if(e.schemes.length===1&&n!=null)switch(n.type){case"basic":return{type:"basicAuth",passwordName:n.password.originalName,usernameName:n.username.originalName};case"bearer":return{type:"bearerAuth",tokenName:n.token.originalName};case"header":return{type:"header",headerWireValue:n.name.wireValue,nameOverride:n.name.name.originalName,prefix:n.prefix};case"oauth":{let i=n.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(a=>a.originalName).join(".")||"$.body.access_token";return r?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:SEu.FernRegistry.EndpointId(n.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:SEu.FernRegistry.JqString(i),headerName:n.configuration.tokenHeader,tokenPrefix:n.configuration.tokenPrefix}}}:{type:"bearerAuth",tokenName:"token"}}default:uc(n)}}function $we({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:DEu(e.rootPackage,e),auth:DHf(e.auth,e,r),snippetsConfiguration:t,globalHeaders:e.headers.map(i=>({availability:SF(i.availability),description:i.docs??void 0,key:i.name.wireValue,type:TM(i.valueType)})),navigation:void 0};for(let[i,a]of Object.entries(e.types))n.types[DSa.FernRegistry.TypeId(i)]={description:a.docs??void 0,name:a.name.name.originalName,shape:wHf(a.shape),availability:SF(a.availability)};for(let[i,a]of Object.entries(e.subpackages)){let u=a.service!=null?e.services[a.service]:void 0;n.subpackages[DSa.FernRegistry.api.v1.SubpackageId(i)]={subpackageId:DSa.FernRegistry.api.v1.SubpackageId(i),displayName:u?.displayName,name:a.name.originalName,description:a.docs??void 0,...DEu(a,e)}}return n}var EEu=Jo(cCt(),1);async function AEu({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await EW({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,disableExamples:!1,readme:void 0,version:void 0,packageName:void 0,context:r}),d=bZr({token:n.value}),c=$we({ir:f,snippetsConfig:a,playgroundConfig:u});r.logger.debug("Calling registerAPI... ",JSON.stringify(c,void 0,4));let o=await d.api.v1.register.registerApiDefinition({orgId:EEu.FernRegistry.OrgId(e),apiId:EEu.FernRegistry.ApiId(f.apiName.originalName),definition:c});if(o.ok)return r.logger.debug(`Registered API Definition ${o.body.apiDefinitionId}`),{id:o.body.apiDefinitionId,ir:f};switch(o.error.error){case"UnauthorizedError":case"UserNotInOrgError":return r.failAndThrow("You do not have permissions to register the docs. Reach out to support@buildwithfern.com");default:return r.failAndThrow("Failed to register API",o.error)}}var Mvw=new orn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function SHf(e,t,r){return U0i(F0i($we({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0},playgroundConfig:r}),j8.ApiDefinitionId(t),Mvw))}function EHf(e){let t=new Set;return e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.js!=null&&e.js.files.forEach(r=>{t.add(r.absolutePath)}),t}function JSr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}MHf.default.extend(THf.default);var Tvw=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),AHf=0,xvw=async({ir:e})=>(AHf++,`${e.apiName.snakeCase.unsafeName}-${AHf}`),QSr=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u=Tvw,f=xvw){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}#e=wSa.init();_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new Error("parsedDocsConfig is not set");return this._parsedDocsConfig}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;async resolve(){this._parsedDocsConfig=await yMe.parseDocsConfiguration({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig}),this.fernWorkspaces.forEach(d=>{d.changelog?.files.forEach(c=>{let o=OC(this.docsWorkspace.absoluteFilePath,c.absoluteFilepath);this.parsedDocsConfig.pages[o]=c.contents})}),this.markdownFilesToFullSlugs=this.getMarkdownFilesToFullSlugs(this.parsedDocsConfig.pages);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=await r1u({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=await n1u({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});let t=EHf(this.parsedDocsConfig);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:o,markdown:l}=q0i(c,{absolutePathToMdx:this.resolveFilepath(d),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath});this.parsedDocsConfig.pages[ls.of(d)]=l;for(let m of o)t.add(m)}let r=Array.from(t).map(d=>({absoluteFilePath:d,relativeFilePath:this.toRelativeFilepath(d)}));(await this.uploadFiles(r)).forEach(d=>{this.collectedFileIds.set(d.absoluteFilePath,d.fileId)});let i=this.getDocsBasePath();for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=t1u(c,this.collectedFileIds,new Map(Array.from(this.markdownFilesToFullSlugs.entries()).map(([o,l])=>[o,oP(i,l)])),{absolutePathToMdx:this.resolveFilepath(d),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);let a={};Object.entries(this.parsedDocsConfig.pages).forEach(([d,c])=>{let o=qvw(this.editThisPage,d);a[B2t.PageId(d)]={markdown:c,editThisPageUrl:o?B2t.Url(o):void 0}});let u=await this.convertDocsConfiguration(),f={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){let d=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async c=>{let o=iT(this.docsWorkspace.absoluteFilePath,c);(await(0,SSa.stat)(o)).isDirectory()?(await kAe(o,"{js,ts,jsx,tsx,md,mdx}")).forEach(O=>{d.add(O)}):o.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&d.add(o)})),f=Object.fromEntries(await Promise.all([...d].map(async c=>{let o=this.toRelativeFilepath(c),l=(await(0,SSa.readFile)(c)).toString();return[o,l]})))}return{config:u,pages:a,jsFiles:f}}resolveFilepath(t){if(t!=null)return iT(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,xHf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(JSr(this.domain)).pathname}async convertDocsConfiguration(){let t=await this.toRootNode();return{title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?B2t.Url(this.parsedDocsConfig.logo?.href):void 0,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(n=>({...n,url:B2t.Url(n.url)})),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:this.parsedDocsConfig.integrations,footerLinks:this.parsedDocsConfig.footerLinks?.map(n=>({...n,value:B2t.Url(n.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:void 0,ga4:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0}}getFernWorkspaceForApiSection(t){if(this.fernWorkspaces.length===1&&this.fernWorkspaces[0]!=null)return this.fernWorkspaces[0];if(t.apiName!=null){let r=this.fernWorkspaces.find(n=>n.workspaceName===t.apiName);if(r!=null)return r}throw new Error("Failed to load API Definition referenced in docs")}async toRootNode(){let t=vc.V1.SlugGenerator.init(vc.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>vc.RoleId(i))}}async toRootChild(t){return PAn(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t)})}toLandingPageNode(t,r){let n=vc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??b9(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:t.icon,hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:void 0}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),a=t!=null?this.toLandingPageNode(t,n):void 0,u=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:a,child:u}}async toVersionedNode(t,r){return{id:this.#e.get("versioned"),type:"versioned",children:await Promise.all(t.versions.map((i,a)=>this.toVersionNode(i,r,a===0)))}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),a=r.setVersionSlug(t.slug??b9(t.version)),u=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,a):await this.toSidebarRootNode(i,t.navigation.items,a);return{type:"version",id:i,versionId:vc.VersionId(t.version),title:t.version,slug:a.get(),child:u,default:n,availability:t.availability!=null?Cvw(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,r):void 0,hidden:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),a=await Promise.all(r.map(f=>this.toNavigationChild(i,f,n))),u=[];return a.forEach(f=>{switch(f.type){case"apiReference":case"section":u.push(f);return;case"changelog":case"link":case"page":{let d=u[u.length-1];d?.type!=="sidebarGroup"&&(d={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},u.push(d)),d.children.push(f);return}default:uc(f)}}),{type:"sidebarRoot",id:i,children:u}}async toNavigationChild(t,r,n){return PAn(r)._visit({page:async i=>this.toPageNode(i,n),apiSection:async i=>this.toApiSectionNode(i,n),section:async i=>this.toSectionNode(t,i,n),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n)})}async toApiSectionNode(t,r){let n=this.getFernWorkspaceForApiSection(t),i=jHf(t.snippetsConfiguration),a=await EW({workspace:n,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,disableExamples:!1,readme:void 0,version:void 0,packageName:void 0,context:this.taskContext}),u=await this.registerApi({ir:a,snippetsConfig:i,playgroundConfig:{oauth:t.playground?.oauth},apiName:t.apiName}),f=SHf(a,u,{oauth:t.playground?.oauth});return new jSa(t,f,r,n,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.#e).get()}async toChangelogNode(t,r){return new grn(this.markdownFilesToFullSlugs,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:t.icon,viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:vc.V1.Url(t.url),icon:t.icon}}async toPageNode(t,r){let n=vc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??b9(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{id:this.#e.get(n),type:"page",slug:i.get(),title:t.title,icon:t.icon,hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:void 0}}async toSectionNode(t,r,n){let i=this.toRelativeFilepath(r.overviewAbsolutePath),a=i?vc.PageId(i):void 0,u=this.#e.get(a??`${t}/section`),f=n.apply({urlSlug:r.slug??b9(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug});return{id:u,type:"section",overviewPageId:a,slug:f.get(),title:r.title,icon:r.icon,collapsed:r.collapsed,hidden:r.hidden,viewers:r.viewers,orphaned:r.orphaned,children:await Promise.all(r.contents.map(d=>this.toNavigationChild(u,d,f))),authed:void 0,pointsTo:void 0,noindex:void 0}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(a=>this.toTabChild(i,a,n)))}}async toTabChild(t,r,n){return PAn(r.child)._visit({link:({href:i})=>this.toTabLinkNode(r,i),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n)})}async toTabChangelogNode(t,r,n){return new grn(this.markdownFilesToFullSlugs,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:t.icon,viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r){return{type:"link",id:this.#e.get(r),title:t.title,url:vc.V1.Url(r),icon:t.icon}}async toTabNode(t,r,n,i){let a=this.#e.get(`${t}/tab`),u=i.apply({urlSlug:r.slug??b9(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:u.get(),icon:r.icon,hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(a,n,u)}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):B2t.FileId(r)}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],a=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(a)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(YA),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:B2t.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return PAn(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:B2t.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function qvw(e,t){if(e?.github==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${JSr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function Cvw(e){switch(e){case"beta":return vc.V1.NavigationV1Availability.Beta;case"deprecated":return vc.V1.NavigationV1Availability.Deprecated;case"ga":return vc.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return vc.V1.NavigationV1Availability.Stable;default:uc(e)}}var Lid=Jo(NHf(),1),Zxu=Jo(SAu(),1),Uid=Jo(require("http"),1),qMa=Jo(require("path"),1);var sKf=require("events"),uEa=Jo(require("fs"),1),Arn=Jo(require("path"),1);var H$f=Jo(require("os"),1),J$f=300,E4r=20,Bbi=1e7,Q$f=H$f.default.platform();var yww=Q$f==="darwin",EAu=Q$f==="win32",A4r=yww||EAu,G$f=3e3,$$f=2e4,AAu=1250;var n5t;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(n5t||(n5t={}));var Ern;(function(e){e.CHANGE="change",e.RENAME="rename"})(Ern||(Ern={}));var Ibi;(function(e){e.CHANGE="change",e.ERROR="error"})(Ibi||(Ibi={}));var nm;(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"})(nm||(nm={}));var KX;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(KX||(KX={}));var vww=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,a=Math.max(r?.maxWait??1/0,t),u,f,d=0,c=0,o=()=>{let N=Date.now(),U=N-d,re=N-c,ge=U>=t||re>=a;return[N,ge]},l=N=>{if(c=N,!u)return;let U=u;u=void 0,e.apply(void 0,U)},m=()=>{F(0)},O=()=>{f&&(m(),l(Date.now()))},j=N=>{if(c=N,n)return l(N)},A=N=>{if(i&&u)return l(N);u=void 0},T=()=>{f=void 0;let[N,U]=o();return U?A(N):B(N)},B=N=>{let U=N-d,re=N-c,ge=t-U,X=a-re,k=Math.min(ge,X);return F(k)},F=N=>{f&&clearTimeout(f),!(N<=0)&&(f=setTimeout(T,N))},C=(...N)=>{let[U,re]=o(),ge=!!f;if(u=N,d=U,(re||!f)&&F(t),re)return ge?l(U):j(U)};return C.cancel=m,C.flush=O,C},nEa=vww;var CAu=Jo(require("fs"),1),aEa=Jo(require("path"),1);var xM=Jo(require("fs"),1),AW=require("util");var GSr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},i5t=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var MAu=Jo(require("process"),1),K$f=MAu.default.getuid?!MAu.default.getuid():!1,Y$f=1e4,Vne=()=>{};var zbi={isChangeErrorOk:e=>{if(!zbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!K$f&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!zbi.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(!zbi.isNodeError(e))throw e;if(!zbi.isChangeErrorOk(e))throw e}},T3=zbi;var TAu=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Y$f,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()}}}}},X$f=new TAu;var $Sr=(e,t)=>function(n){return function i(...a){return X$f.schedule().then(u=>{let f=c=>(u(),c),d=c=>{if(u(),Date.now()>=n)throw c;if(t(c)){let o=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,o)).then(()=>i.apply(void 0,a))}throw c};return e.apply(void 0,a).then(f,d)})}},KSr=(e,t)=>function(n){return function i(...a){try{return e.apply(void 0,a)}catch(u){if(Date.now()>n)throw u;if(t(u))return i.apply(void 0,a);throw u}}};var bww={attempt:{chmod:GSr((0,AW.promisify)(xM.default.chmod),T3.onChangeError),chown:GSr((0,AW.promisify)(xM.default.chown),T3.onChangeError),close:GSr((0,AW.promisify)(xM.default.close),Vne),fsync:GSr((0,AW.promisify)(xM.default.fsync),Vne),mkdir:GSr((0,AW.promisify)(xM.default.mkdir),Vne),realpath:GSr((0,AW.promisify)(xM.default.realpath),Vne),stat:GSr((0,AW.promisify)(xM.default.stat),Vne),unlink:GSr((0,AW.promisify)(xM.default.unlink),Vne),chmodSync:i5t(xM.default.chmodSync,T3.onChangeError),chownSync:i5t(xM.default.chownSync,T3.onChangeError),closeSync:i5t(xM.default.closeSync,Vne),existsSync:i5t(xM.default.existsSync,Vne),fsyncSync:i5t(xM.default.fsync,Vne),mkdirSync:i5t(xM.default.mkdirSync,Vne),realpathSync:i5t(xM.default.realpathSync,Vne),statSync:i5t(xM.default.statSync,Vne),unlinkSync:i5t(xM.default.unlinkSync,Vne)},retry:{close:$Sr((0,AW.promisify)(xM.default.close),T3.isRetriableError),fsync:$Sr((0,AW.promisify)(xM.default.fsync),T3.isRetriableError),open:$Sr((0,AW.promisify)(xM.default.open),T3.isRetriableError),readFile:$Sr((0,AW.promisify)(xM.default.readFile),T3.isRetriableError),rename:$Sr((0,AW.promisify)(xM.default.rename),T3.isRetriableError),stat:$Sr((0,AW.promisify)(xM.default.stat),T3.isRetriableError),write:$Sr((0,AW.promisify)(xM.default.write),T3.isRetriableError),writeFile:$Sr((0,AW.promisify)(xM.default.writeFile),T3.isRetriableError),closeSync:KSr(xM.default.closeSync,T3.isRetriableError),fsyncSync:KSr(xM.default.fsyncSync,T3.isRetriableError),openSync:KSr(xM.default.openSync,T3.isRetriableError),readFileSync:KSr(xM.default.readFileSync,T3.isRetriableError),renameSync:KSr(xM.default.renameSync,T3.isRetriableError),statSync:KSr(xM.default.statSync,T3.isRetriableError),writeSync:KSr(xM.default.writeSync,T3.isRetriableError),writeFileSync:KSr(xM.default.writeFileSync,T3.isRetriableError)}},Z$f=bww;var iEa=Jo(require("fs"),1),Nbi=Jo(require("path"),1);var k$f={then:e=>{e()}};var xAu=()=>{};var qAu=()=>{let e=xAu,t=xAu,r=!1,n=!1;return{promise:new Promise((d,c)=>{e=o=>(r=!0,d(o)),t=o=>(n=!0,c(o))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}};qAu.wrap=async e=>{let t=qAu();return await e(t),t.promise};var eKf=qAu;var tKf=e=>Array.isArray(e)?e:[e],rKf=e=>typeof e=="function",nKf=()=>{let{promise:e,resolve:t}=eKf(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var gww=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,a=t?.ignore??[],u=tKf(a).map(Kt=>rKf(Kt)?Kt:Mr=>Kt.test(Mr)),f=Kt=>u.some(Mr=>Mr(Kt)),d=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),o=[],l=new Set,m={},O=[],j=new Set,A={},T=[],B=new Set,F={},C={},N=new Set,U={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},re={directories:o,directoriesNames:l,directoriesNamesToPaths:m,files:O,filesNames:j,filesNamesToPaths:A,symlinks:T,symlinksNames:B,symlinksNamesToPaths:F,map:C},{promise:ge,increment:X,decrement:k}=nKf(),xe=0,vt=(Kt,Mr,Mn,ar)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.directories.push(Mr),Kt.directoriesNames.add(Mn),o.push(Mr),l.add(Mn),m.propertyIsEnumerable(Mn)||(m[Mn]=[]),m[Mn].push(Mr),N.add(Mr),!(ar>=n)&&(xe>=i||cr(Mr,ar+1)))},yt=(Kt,Mr,Mn)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.files.push(Mr),Kt.filesNames.add(Mn),O.push(Mr),j.add(Mn),A.propertyIsEnumerable(Mn)||(A[Mn]=[]),A[Mn].push(Mr),N.add(Mr))},St=(Kt,Mr,Mn,ar)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.symlinks.push(Mr),Kt.symlinksNames.add(Mn),T.push(Mr),B.add(Mn),F.propertyIsEnumerable(Mn)||(F[Mn]=[]),F[Mn].push(Mr),N.add(Mr),r&&(ar>=n||xe>=i||Wr(Mr,ar+1)))},Ft=(Kt,Mr,Mn,ar,mn)=>{d.aborted||f(Mr)||(ar.isDirectory()?vt(Kt,Mr,Mn,mn):ar.isFile()?yt(Kt,Mr,Mn):ar.isSymbolicLink()&&St(Kt,Mr,Mn,mn))},Zt=(Kt,Mr,Mn,ar)=>{if(d.aborted)return;let mn=Mr===Nbi.default.sep?"":Nbi.default.sep,On=Mn.name,Ut=`${Mr}${mn}${On}`;f(Ut)||(Mn.isDirectory()?vt(Kt,Ut,On,ar):Mn.isFile()?yt(Kt,Ut,On):Mn.isSymbolicLink()&&St(Kt,Ut,On,ar))},Vt=(Kt,Mr,Mn,ar)=>{for(let mn=0,On=Mn.length;mn<On;mn++)Zt(Kt,Mr,Mn[mn],ar)},cr=(Kt,Mr)=>{d.aborted||Mr>n||xe>=i||(X(),iEa.default.readdir(Kt,{withFileTypes:!0},(Mn,ar)=>{if(Mn||d.aborted||!ar.length)return k();(c(ar)||k$f).then(()=>{let On=C[Kt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Vt(On,Kt,ar,Mr),k()})}))},Wr=async(Kt,Mr)=>{X(),iEa.default.realpath(Kt,(Mn,ar)=>{if(Mn||d.aborted)return k();iEa.default.stat(ar,async(mn,On)=>{if(mn||d.aborted)return k();let Ut=Nbi.default.basename(ar),kt=C[Kt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Ft(kt,ar,Ut,On,Mr),k()})})};return(async(Kt,Mr=1)=>(Kt=Nbi.default.normalize(Kt),N.add(Kt),cr(Kt,Mr),await ge,d.aborted?U:re))(e)},iKf=gww;var a5t={lang:{debounce:nEa,attempt:e=>{try{return e()}catch(t){return a5t.lang.castError(t)}},castArray:e=>a5t.lang.isArray(e)?e:[e],castError:e=>a5t.lang.isError(e)?e:a5t.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(a5t.lang.isNaN(e))return a5t.lang.isNaN(t);if(a5t.lang.isPrimitive(e)||a5t.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(aEa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?CAu.default.realpathSync.native(e):CAu.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===aEa.default.sep&&t.length-e.length>aEa.default.sep.length,poll:(e,t=$$f)=>Z$f.retry.stat(t)(e,{bigint:!0}).catch(a5t.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,a)=>{if(a&&r===1&&e in a){let u=a[e];return[u.directories,u.files]}else{let u=await iKf(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},Ej=a5t;var oEa=Jo(require("path"),1);var BAu=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||Ej.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=J$f){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,a=async(f,d)=>{let c=this.options.ignoreInitial?[]:f,o=await this.eventsPopulate([...d]),l=this.eventsDeduplicate([...c,...o]);this.onTargetEvents(l)},u=Ej.lang.debounce(()=>{this.watcher.isClosed()||(r=a(n,i),n=[],i=new Set)},t);return async(f,d="",c=!1)=>{c?await this.eventsPopulate([d],n,!0):i.add(d),r.then(u)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[a,u]=i,f=r[u];return a===f||a===nm.CHANGE&&f===nm.ADD||(r[u]=a,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let a=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(a.map(async u=>{r.push([u,i]),u===nm.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):u===nm.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let a=this.options.recursive?this.options.depth??E4r:Math.min(1,this.options.depth??E4r),u=this.options.limit??Bbi,[f,d]=await Ej.fs.readdir(r,this.options.ignore,a,u,this.watcher._closeSignal),c=[...f,...d];return await Promise.all(c.map(o=>{if(!this.watcher.isIgnored(o,this.options.ignore)&&!t.includes(o))return this.eventsPopulate([o],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let a of this.watcher._poller.stats.keys())Ej.fs.isSubPath(r,a)&&(t.includes(a)||await this.eventsPopulate([a],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(nm.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!A4r&&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(nm.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(nm.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(oEa.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(nm.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(oEa.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(nm.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===nm.ADD?this.onTargetAdd(n):r===nm.ADD_DIR?this.onTargetAddDir(n):r===nm.CHANGE?this.onTargetChange(n):r===nm.UNLINK?this.onTargetUnlink(n):r===nm.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=Ern.CHANGE,r){if(this.watcher.isClosed())return;let n=oEa.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){EAu&&t.code==="EPERM"?this.onWatcherChange(Ern.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Ibi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Ibi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(Ern.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&A4r&&this.options.native!==!1?this.options.depth??E4r:Math.min(1,this.options.depth??E4r),n=this.options.limit??Bbi,[i,a]=await Ej.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),u=[this.folderPath,...i,...a];await Promise.all(u.map(f=>{if(!this.watcher._poller.stats.has(f)&&!this.watcher.isIgnored(f,this.options.ignore))return this.onWatcherEvent(Ern.CHANGE,f,t)}))}}},aKf=BAu;var YX={interval:100,intervalId:void 0,fns:new Map,init:()=>{YX.intervalId||(YX.intervalId=setInterval(YX.resolve,YX.interval))},reset:()=>{YX.intervalId&&(clearInterval(YX.intervalId),delete YX.intervalId)},add:(e,t)=>{YX.fns.set(e,Date.now()+t),YX.init()},remove:e=>{YX.fns.delete(e)},resolve:()=>{if(!YX.fns.size)return YX.reset();let e=Date.now();for(let[t,r]of YX.fns)r>=e||(YX.remove(t),t())}},Fbi=YX;var Rbi=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=AAu){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{let l=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(l&&l!==i){if(Ej.fs.getRealPath(i,!0)===l)return;this._watcher.event(a.rename,l,i)}else this._watcher.event(a.add,i)};if(!n)return f();let d=()=>{u.add.delete(n),Fbi.remove(c)},c=()=>{d(),f()};Fbi.add(c,r);let o=()=>{let l=u.unlink.get(n);if(!l)return;d();let m=l();i===m?a.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(a.change,i):this._watcher.event(a.rename,m,i)};u.add.set(n,o),o()}getLockUnlink(t,r=AAu){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{this._watcher.event(a.unlink,i)};if(!n)return f();let d=()=>{u.unlink.delete(n),Fbi.remove(c)},c=()=>{d(),f()};Fbi.add(c,r);let o=()=>(d(),i);u.unlink.set(n,o),u.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,nm.ADD,n5t.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,nm.ADD_DIR,n5t.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,nm.UNLINK,n5t.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,nm.UNLINK_DIR,n5t.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}}};Rbi.DIR_EVENTS={add:nm.ADD_DIR,rename:nm.RENAME_DIR,unlink:nm.UNLINK_DIR};Rbi.FILE_EVENTS={add:nm.ADD,change:nm.CHANGE,rename:nm.RENAME,unlink:nm.UNLINK};var oKf=Rbi;var IAu=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ej.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ej.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(Ej.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(Ej.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ej.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ej.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},zAu=IAu;var NAu=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}},uKf=NAu;var FAu=class{constructor(){this.inos={},this.paths=new zAu,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let a=i[t];if(a&&!(n&&a[1]!==n))return a[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ej.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new uKf(n)}reset(){this.inos={},this.paths=new zAu,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,nm.ADD,i),[nm.ADD];if(i.isDirectory())return this.updateIno(t,nm.ADD_DIR,i),[nm.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,nm.UNLINK,n),[nm.UNLINK];if(n.isDirectory())return this.updateIno(t,nm.UNLINK_DIR,n),[nm.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,nm.CHANGE,i),[nm.CHANGE]);if(i.isDirectory())return this.updateIno(t,nm.UNLINK,n),this.updateIno(t,nm.ADD_DIR,i),[nm.UNLINK,nm.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,nm.UNLINK_DIR,n),this.updateIno(t,nm.ADD,i),[nm.UNLINK_DIR,nm.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,nm.UNLINK_DIR,n),this.updateIno(t,nm.ADD_DIR,i),[nm.UNLINK_DIR,nm.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=n.isFile()?n5t.FILE:n5t.DIR;i[t]=[n.ino,a]}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)}}},RAu=FAu;var LAu=class e extends sKf.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(KX.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(KX.CLOSE,i)),this._readyWait=new Promise(i=>this.on(KX.READY,i)),this._locker=new oKf(this),this._roots=new Set,this._poller=new RAu,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&&(Ej.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(KX.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ej.lang.castError(t);return this.emit(KX.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(KX.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(KX.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ej.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ej.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 a of[...i])r&&a.filePath!==r||this.watcherClose(a);if(n)for(let a in this._watchers)Ej.fs.isSubPath(t,a)&&this.watchersClose(a,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 a=new aKf(this,t,r);return await a.init(),a}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let a=r.indexOf(t);r.splice(a,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=Ej.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(f=>f.handler===n&&(!f.filePath||f.filePath===i)&&f.options.ignore===r.ignore&&!!f.options.native==!!r.native&&(!r.recursive||f.options.recursive)))return!0;let u=Arn.default.dirname(t);for(let f=1;f<1/0;f++){if(this._watchers[u]?.find(o=>(f===1||o.options.recursive&&f<=(o.options.depth??E4r))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&A4r&&o.options.native!==!1)))return!0;if(!A4r)break;let c=Arn.default.dirname(t);if(u===c)break;u=c}return!1}async watchDirectories(t,r,n,i,a){if(this.isClosed())return;t=Ej.lang.uniq(t).sort();let u;for(let f of t)if(!this.isIgnored(f,r.ignore)&&!this.watcherExists(f,r,n,i))try{let d=!r.recursive||A4r&&r.native!==!1?r:{...r,recursive:!1},o={watcher:uEa.default.watch(f,d),handler:n,options:r,folderPath:f,filePath:i},l=u=await this.watcherAdd(o,a);if(this._roots.has(i||f)){let O={...r,ignoreInitial:!0,recursive:!1},j=Arn.default.dirname(f),A=f;await this.watchDirectories([j],O,n,A,l)}}catch(d){this.error(d)}return u}async watchDirectory(t,r,n,i,a){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||A4r&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??E4r,f=r.limit??Bbi,[d]=await Ej.fs.readdir(t,r.ignore,u,f,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,a);if(d.length){let o=Ej.fs.getDepth(t);for(let l of d){let m=Ej.fs.getDepth(l),O=Math.max(0,u-(m-o)),j={...r,depth:O};await this.watchDirectories([l],j,n,i,a||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},a=(c,o)=>{o===t&&(d(),n())},u=new e(a),f=()=>{this._subwatchers.add(i),this.on(KX.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(KX.CLOSE,d),u.close()};return f()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=Arn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new RAu,u=await this.watchPolling(t,r,async()=>{i||!(await a.update(t,r.pollingTimeout)).length||i||(i=!0,u(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ej.lang.noop;if(this.pollerExists(t,r))return Ej.lang.noop;let i={...r,interval:r.pollingInterval??G$f},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(KX.CLOSE,f),uEa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(KX.CLOSE,f),uEa.default.unwatchFile(t,n)};return Ej.lang.attempt(u),()=>Ej.lang.attempt(f)}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=Ej.lang.uniq(t).sort(),t.every((a,u)=>t.every((f,d)=>d===u||!Ej.fs.isSubPath(a,f))))await Promise.all(t.map(a=>this.watchPath(a,r,n)));else for(let a of t)await this.watchPath(a,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=Arn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ej.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 a=Arn.default.dirname(t);return(await Ej.fs.poll(a,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ej.lang.noop){if(Ej.lang.isFunction(t))return this.watch([],{},t);if(Ej.lang.isUndefined(t))return this.watch([],r,n);if(Ej.lang.isFunction(r))return this.watch(t,{},r);if(Ej.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ej.lang.castArray(t);i.forEach(a=>this._roots.add(a)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ej.lang.noop&&this.on(KX.ALL,n),r.readdirMap=void 0,this.ready())}},cKf=LAu;var M1w=Jo(pKf(),1),T1w=Jo(XAu(),1),x1w=Jo(kAu(),1),q1w=Jo(oMu(),1),sMu=Jo(lYf(),1);var Iid=Jo(rAa(),1),P5t=require("fs/promises"),TMa=require("os"),Gxu=Jo(require("path"),1),zid=Jo(Qte(),1),Nid=Jo(Fed(),1),$xu=Jo(Qxu(),1),D2w="etag",Kxu="preview",S2w="bundle",Yxu=".fern";function E2w(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu))}function xMa(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu),ls.of(S2w))}function A2w(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu),ls.of(D2w))}async function Fid({bucketUrl:e,logger:t,preferCached:r}){t.debug("Setting up docs preview bundle...");let n=await(0,$xu.fetcher)({url:e,method:"GET",responseType:"text",duplex:"half"});if(!n.ok)return{type:"failure"};let i=n.body,u=await new Nid.default.Parser().parseStringPromise(i),f=u?.ListBucketResult?.Contents?.[0]?.ETag?.[0],d=u?.ListBucketResult?.Contents?.[0]?.Key?.[0],c=A2w();if(r){let F=await _h(c),C;if(F&&(t.debug("Reading existing ETag"),C=(await(0,P5t.readFile)(c)).toString()),C!=null&&C===f)return t.debug("ETag matches. Using already downloaded bundle"),{type:"success"};t.debug("ETag is different. Downloading latest preview bundle")}t.debug("Creating tmp directory to download docs preview bundle");let o=await zid.default.dir({prefix:"fern"}),l=Hp.of(o.path);t.debug(`Downloading docs preview bundle from ${Gxu.default.join(e,d)}`);let m=await(0,$xu.fetcher)({url:`${Gxu.default.join(e,d)}`,method:"GET",responseType:"arrayBuffer",duplex:"half"});if(!m.ok)return t.error("Failed to download docs preview bundle."),{type:"failure"};let O=Wl(l,ls.of("output.zip")),j=m.body;if(j==null)return{type:"failure"};let A=Buffer.from(j);await(0,P5t.writeFile)(O,A),t.debug(`Wrote output.zip to ${O}`);let T=E2w();await _h(T)&&await(0,P5t.rm)(T,{recursive:!0}),await(0,P5t.mkdir)(T,{recursive:!0}),t.debug(`rm -rf ${T}`);let B=xMa();return await(0,P5t.mkdir)(B,{recursive:!0}),await(0,Iid.default)(O,B),await(0,P5t.writeFile)(c,f),t.debug(`Downloaded bundle to ${B}`),{type:"success"}}async function Rid({domain:e,project:t,context:r}){let n=t.docsWorkspaces,i=t.apiWorkspaces;if(n==null)throw new Error("No docs workspace found in project");let a=await Promise.all(i.map(async m=>await m.toFernWorkspace({context:r},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),u=new Xxu(r),f={},c=await new QSr(e,n,a,r,void 0,async m=>m.map(O=>{let j=h6r();return f[j]={type:"url",url:vc.Url(`/_local${rWo(O.absoluteFilePath)}`)},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async m=>u.addReferencedAPI(m)).resolve(),o=PSu({writeShape:c,files:{}}),l=wSu({dbShape:o.config});return{apis:u.getAPIsForDefinition(),config:l,files:{},filesV2:f,pages:o.pages,search:{type:"legacyMultiAlgoliaIndex",algoliaIndex:void 0},algoliaSearchIndex:void 0,jsFiles:void 0,id:void 0}}var Xxu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=h6r(),a=F0i($we({ir:t,snippetsConfig:r,playgroundConfig:n}),rL.ApiDefinitionId(i),new orn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),u=U0i(a);return this.apis[i]=u,i}catch(i){let a=i;throw this.context.logger.error(`Failed to read referenced API: ${a?.message} ${a?.stack}`),a.stack!=null&&this.context.logger.error(a?.stack),i}}getAPIsForDefinition(){return this.apis}};var M2w={pages:{},apis:{},files:{},filesV2:{},config:{navigation:void 0,root:void 0,title:void 0,defaultLanguage:void 0,announcement:void 0,navbarLinks:void 0,footerLinks:void 0,logoHeight:void 0,logoHref:void 0,favicon:void 0,metadata:void 0,redirects:void 0,colorsV3:void 0,layout:void 0,typographyV2:void 0,analyticsConfig:void 0,integrations:void 0,css:void 0,js:void 0},search:{type:"legacyMultiAlgoliaIndex",algoliaIndex:void 0},algoliaSearchIndex:void 0,jsFiles:void 0,id:void 0};async function kxu({initialProject:e,reloadProject:t,validateProject:r,context:n,port:i,bundlePath:a}){if(a!=null)n.logger.info(`Using bundle from path: ${a}`);else try{let C="https://prod-local-preview-bundle2.s3.amazonaws.com/";if(C==null)throw new Error("Failed to connect to the docs preview server. Please contact support@buildwithfern.com");await Fid({bucketUrl:C,logger:n.logger,preferCached:!0})}catch(C){let N=xMa();if(C instanceof Error&&n.logger.debug(`Failed to download latest docs bundle: ${C.message}`),await _h(N))n.logger.warn("Falling back to cached bundle...");else{n.logger.warn("Please reach out to support@buildwithfern.com.");return}}let u=C0(e.config._absolutePath),f=(0,Zxu.default)(),d=Uid.default.createServer(f),c=new sMu.default({server:d}),o=new Set;function l(C){for(let N of o)N.send(JSON.stringify(C))}c.on("connection",function(N){o.add(N),N.on("close",function(){o.delete(N)})}),f.use((0,Lid.default)());let m=new URL(JSr(e.docsWorkspaces?.config.instances[0]?.url??`http://localhost:${i}`)),O=e,j,A=async()=>{n.logger.info("Reloading docs...");let C=Date.now();try{O=await t(),n.logger.info("Validating docs..."),await r(O);let N=await Rid({domain:`${m.host}${m.pathname}`,project:O,context:n});return n.logger.info(`Reload completed in ${Date.now()-C}ms`),N}catch(N){return j==null?n.logger.error("Failed to read docs configuration. Rendering blank page."):n.logger.error("Failed to read docs configuration. Rendering last successful configuration."),N instanceof Error&&(n.logger.error(N.message),N instanceof Error&&N.stack&&n.logger.debug(`Stack Trace:
1950
+ ${JSON.stringify(r)}"`)}}async function MWf(e,t,r,n){let i=await r.resolveSourceOrThrow({source:t,file:e});if(i==null||i.type!=="protobuf")throw new Error(`Expected a protobuf source for ${t.proto}.`);let a=SWf({source:i,serviceNameOverride:n});if(a==null)throw new Error(`Failed to resolve service name from ${i.relativeFilePath}.`);return vTe.grpc({service:a})}async function TWf({rootDefaultUrl:e,rootPathParameters:t,serviceDefinition:r,file:n,errorResolver:i,typeResolver:a,propertyResolver:u,exampleResolver:f,variableResolver:d,sourceResolver:c,globalErrors:o,workspace:l}){let m=await JNn({pathParameters:r["path-parameters"],location:bTe.Service,file:n,variableResolver:d}),O=await EWf({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Rne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:Vxe(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([T,B])=>Hxe({headerKey:T,header:B,file:n}))):[],pathParameters:m,encoding:jyw(O,r),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([T,B])=>{let F=await JNn({pathParameters:F2t(B),location:bTe.Endpoint,file:n,variableResolver:d}),C={...await wG(B),id:"",name:n.casingsGenerator.generateName(T),displayName:B["display-name"],auth:B.auth??r.auth,idempotent:B.idempotent??r.idempotent??!1,baseUrl:B.url??r.url??e,method:B.method!=null?Pyw(B.method):Qre.Post,basePath:B["base-path"]!=null?Vxe(B["base-path"]):void 0,path:Vxe(B.path),fullPath:Vxe(B["base-path"]!=null?oP(B["base-path"],B.path):n.rootApiFile["base-path"]!=null?oP(n.rootApiFile["base-path"],r["base-path"],B.path):oP(r["base-path"],B.path)),pathParameters:F,allPathParameters:B["base-path"]!=null?F:[...t,...m,...F],queryParameters:typeof B.request!="string"&&B.request?.["query-parameters"]!=null?await Promise.all(Object.entries(B.request["query-parameters"]).map(async([N,U])=>await fSa({file:n,queryParameterKey:N,queryParameter:U}))):[],headers:typeof B.request!="string"&&B.request?.headers!=null?await Promise.all(Object.entries(B.request.headers).map(([N,U])=>Hxe({headerKey:N,header:U,file:n}))):[],requestBody:VVf({request:B.request,file:n}),sdkRequest:await GVf({service:r,request:B.request,endpoint:B,endpointKey:T,file:n,typeResolver:a,propertyResolver:u}),response:await mWf({endpoint:B,file:n,typeResolver:a}),errors:[...DWf({errors:B.errors,file:n}),...o],userSpecifiedExamples:B.examples!=null?B.examples.map(N=>({example:gWf({service:r,endpoint:B,example:N,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:N["code-samples"]?.map(U=>$Vf({codeSample:U,file:n}))})):[],autogeneratedExamples:[],pagination:await wWf({propertyResolver:u,file:n,endpointName:T,endpointSchema:B}),transport:await AWf({file:n,serviceTransport:O,endpointDeclaration:B,sourceResolver:c})};return C.id=PP.generateEndpointId(j,C),C}))}}async function JNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>myw({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function myw({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await wG(t),name:n.casingsGenerator.generateName(e),valueType:Oyw({parameter:t,variableResolver:i,file:n}),location:r,variable:Zqn(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function Oyw({parameter:e,variableResolver:t,file:r}){let n=lbi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function lbi({parameter:e,variableResolver:t,file:r}){let n=pSa({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function pSa({parameter:e,variableResolver:t,file:r}){if(Zqn(e)){let n=typeof e=="string"?e:e.variable,i=t.getDeclaration(n,r);return i==null?void 0:{rawType:typeof i.declaration=="string"?i.declaration:i.declaration.type,file:i.file}}else return{file:r,rawType:typeof e=="string"?e:e.type}}function Pyw(e){switch(e){case"GET":return Qre.Get;case"POST":return Qre.Post;case"PUT":return Qre.Put;case"PATCH":return Qre.Patch;case"DELETE":return Qre.Delete;default:uc(e)}}async function Hxe({headerKey:e,header:t,file:r}){let{name:n}=Z8t({headerKey:e,header:t});return{...await wG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function Z8t({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function jyw(e,t){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:uc(e)}}var DG={};Dc(DG,{validateObjectExample:()=>_rn,validateTypeExample:()=>cSa,validateTypeReferenceExample:()=>SW});function xWf(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function _Sa({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function qWf({endpointResolver:e,propertyResolver:t,file:r,refreshTokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:PP.generateEndpointIdFromResolvedEndpoint(i),serviceId:PP.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:_Sa({fernFilePath:i.file.fernFilepath})?void 0:PP.generateSubpackageId(i.file.fernFilepath)},requestProperties:{refreshToken:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.refresh_token})},responseProperties:{accessToken:await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.access_token}),expiresIn:n.responseProperties.expires_in!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.expires_in}):void 0,refreshToken:n.responseProperties.refresh_token!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.refresh_token}):void 0}}}async function CWf({endpointResolver:e,propertyResolver:t,file:r,tokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:PP.generateEndpointIdFromResolvedEndpoint(i),serviceId:PP.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:_Sa({fernFilePath:i.file.fernFilepath})?void 0:PP.generateSubpackageId(i.file.fernFilepath)},requestProperties:{clientId:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.client_id}),clientSecret:await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.client_secret}),scopes:n.requestProperties.scopes!=null?await t.resolveRequestPropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.requestProperties.scopes}):void 0},responseProperties:{accessToken:await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.access_token}),expiresIn:n.responseProperties.expires_in!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.expires_in}):void 0,refreshToken:n.responseProperties.refresh_token!=null?await t.resolveResponsePropertyOrThrow({file:r,endpoint:n.endpoint,propertyComponents:n.responseProperties.refresh_token}):void 0}}}async function BWf({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await CWf({propertyResolver:e,endpointResolver:t,file:r,tokenEndpoint:i});if(u==null)throw new Error("Failed to convert OAuth token endpoint.");let f=a!=null?await qWf({propertyResolver:e,endpointResolver:t,file:r,refreshTokenEndpoint:a}):void 0;return{clientIdEnvVar:n["client-id-env"],clientSecretEnvVar:n["client-secret-env"],tokenPrefix:n["token-prefix"],tokenHeader:n["token-header"],scopes:n.scopes,tokenEndpoint:u,refreshEndpoint:f}}var fbi={requestProperties:{type:"access_token",client_id:["client_id"],client_secret:["client_secret"],scopes:void 0},responseProperties:{type:"access_token",access_token:["access_token"],expires_in:void 0,refresh_token:void 0}},pEu={requestProperties:{type:"refresh_token",refresh_token:["refresh_token"]},responseProperties:{type:"access_token",access_token:["access_token"],refresh_token:void 0,expires_in:void 0}};function IWf(e){return{endpoint:e["get-token"].endpoint,requestProperties:wyw({requestProperties:e["get-token"]?.["request-properties"]}),responseProperties:Dyw({responseProperties:e["get-token"]?.["response-properties"]})}}function zWf(e){if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Syw({requestProperties:e["refresh-token"]?.["request-properties"]}),responseProperties:Eyw({responseProperties:e["refresh-token"]?.["response-properties"]})}}function wyw({requestProperties:e}){if(e==null)return fbi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?z2t(t):fbi.requestProperties.client_id,client_secret:r!=null?z2t(r):fbi.requestProperties.client_secret,scopes:n!=null?z2t(n):fbi.requestProperties.scopes}}function Dyw({responseProperties:e}){return NWf({responseProperties:e,defaultValue:fbi.responseProperties})}function Syw({requestProperties:e}){if(e==null)return pEu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?z2t(t):pEu.requestProperties.refresh_token}}function Eyw({responseProperties:e}){return NWf({responseProperties:e,defaultValue:pEu.responseProperties})}function NWf({responseProperties:e,defaultValue:t}){if(e==null)return t;let r=e["access-token"],n=e["expires-in"],i=e["refresh-token"];return{type:"access_token",access_token:r!=null?VSr(r):t.access_token,expires_in:n!=null?VSr(n):t.expires_in,refresh_token:i!=null?VSr(i):t.refresh_token}}async function VWf({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:xzr.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return qfi(e.auth,{single:async a=>{let u=await FWf({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:xzr.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:xzr.Any,schemes:await Promise.all(a.map(async u=>await FWf({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function FWf({reference:e,authSchemeDeclarations:t,file:r,propertyResolver:n,endpointResolver:i}){let a=(f,d)=>{let c=t?.[f];if(c==null)throw new Error("Unknown auth scheme: "+f);return neu(c,{header:async o=>$V.header({docs:d,name:r.casingsGenerator.generateNameAndWireValue({name:o.name??f,wireValue:o.header}),valueType:r.parseTypeReference(o.type??"string"),prefix:o.prefix,headerEnvVar:o.env}),basic:async o=>LWf({file:r,docs:d,rawScheme:o}),bearer:async o=>RWf({file:r,docs:d,rawScheme:o}),oauth:async o=>await UWf({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return RWf({file:r,docs:void 0,rawScheme:void 0});case"basic":return LWf({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await UWf({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function RWf({file:e,docs:t,rawScheme:r}){return $V.bearer({docs:t,token:e.casingsGenerator.generateName(r?.token?.name??"token"),tokenEnvVar:r?.token?.env})}function LWf({file:e,docs:t,rawScheme:r}){return $V.basic({docs:t,username:e.casingsGenerator.generateName(r?.username?.name??"username"),usernameEnvVar:r?.username?.env,password:e.casingsGenerator.generateName(r?.password?.name??"password"),passwordEnvVar:r?.password?.env})}async function UWf({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r?.type){case"client-credentials":return $V.oauth({docs:t,configuration:qzr.clientCredentials(await BWf({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:IWf(r),refreshTokenEndpoint:zWf(r)}))});default:throw new Error(`Unknown OAuth type: '${r?.type}'`)}}async function WWf({file:e,rawApiFileSchema:t}){if(t.version!=null)return Bzr.header({header:await Ayw({file:e,header:t.version.header}),value:await Myw({file:e,versionDeclaration:t.version})})}async function Ayw({file:e,header:t}){return typeof t=="string"?await Hxe({file:e,headerKey:t,header:{type:"string"}}):await Hxe({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Myw({file:e,versionDeclaration:t}){return await lSa({_enum:{default:t.default,enum:t.values},file:e})}async function HWf({channel:e,typeResolver:t,exampleResolver:r,variableResolver:n,file:i,workspace:a}){let u=[];for(let[f,d]of Object.entries(e.messages??{}))u.push({type:f,availability:Rne(d.availability),docs:d.docs,origin:d.origin,body:qyw({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Rne(e.availability),path:Vxe(e.path),auth:e.auth,name:i.fernFilepath.file??i.casingsGenerator.generateName(e["display-name"]??e.path),displayName:e["display-name"],headers:e.headers!=null?await Promise.all(Object.entries(e.headers).map(([f,d])=>Hxe({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await JNn({pathParameters:e["path-parameters"],location:bTe.Endpoint,file:i,variableResolver:n}):[],queryParameters:e["query-parameters"]!=null?await Promise.all(Object.entries(e["query-parameters"]).map(async([f,d])=>{let{name:c}=HSr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await wG(d),name:i.casingsGenerator.generateNameAndWireValue({wireValue:f,name:c}),valueType:o,allowMultiple:typeof d!="string"&&d["allow-multiple"]!=null?d["allow-multiple"]:!1}})):[],messages:Object.values(u),examples:(e.examples??[]).map(f=>{let d=Byw({channel:e,example:f,typeResolver:t,exampleResolver:r,variableResolver:n,file:i,workspace:a});return{name:f.name!=null?i.casingsGenerator.generateName(f.name):void 0,docs:f.docs,url:zyw({channel:e,example:f,pathParams:d}),...d,...Iyw({channel:e,example:f,typeResolver:t,exampleResolver:r,file:i,workspace:a}),queryParameters:f["query-parameters"]!=null?Object.entries(f["query-parameters"]).map(([c,o])=>{let l=e["query-parameters"]?.[c];if(l==null)throw new Error(`Query parameter ${c} does not exist`);return{name:i.casingsGenerator.generateNameAndWireValue({name:HSr({queryParameterKey:c,queryParameter:l}).name,wireValue:c}),value:dT({example:o,rawTypeBeingExemplified:typeof l=="string"?l:l.type,typeResolver:t,exampleResolver:r,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),shape:Tyw({queryParameter:l})}}):[],messages:f.messages.map(c=>{let o=e.messages?.[c.type];if(o==null)throw new Error(`Message ${c.type} does not exist`);return{type:c.type,body:xyw({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Tyw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function xyw({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){if(!Nyw(e.body))return ACt.reference(dT({example:t,rawTypeBeingExemplified:typeof e.body!="string"?e.body.type:e.body,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}));if(!bD(t))throw new Error("Example must be an object");let u=[];for(let[f,d]of Object.entries(t)){let c=e.body.properties?.[f];if(c!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:f,property:c}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof c!="string"?c.type:c,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let o=cbi({extends_:e.body.extends,wirePropertyKey:f,typeResolver:r,file:i});if(o==null)throw new Error("Could not find original type declaration for property: "+f);u.push({name:i.casingsGenerator.generateNameAndWireValue({name:DW({propertyKey:f,property:o.rawPropertyType}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof o.rawPropertyType=="string"?o.rawPropertyType:o.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:o.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:o.typeName})}}return ACt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function qyw({body:e,file:t}){return typeof e=="string"?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):Cyw(e)?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):PTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:I2t(e.extends??[]).map(r=>aL({typeName:r,file:t})),properties:[]})}function Cyw(e){return e.type!=null}function Byw({channel:e,example:t,typeResolver:r,exampleResolver:n,variableResolver:i,file:a,workspace:u}){let f=[],d=({name:c,pathParameterDeclaration:o,examplePathParameter:l})=>{let m=lbi({parameter:o,variableResolver:i,file:a});return{name:c,value:dT({example:l,rawTypeBeingExemplified:m.rawType,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:m.file,fileContainingExample:a,workspace:u})}};if(t["path-parameters"]!=null){let c=F2t(e);for(let[o,l]of Object.entries(t["path-parameters"])){let m=c[o];if(m!=null)f.push(d({name:a.casingsGenerator.generateName(o),pathParameterDeclaration:m,examplePathParameter:l}));else throw new Error(`Path parameter ${o} does not exist`)}}return{pathParameters:f}}function Iyw({channel:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){let u=[];if(t.headers!=null)for(let[f,d]of Object.entries(t.headers)){let c=e.headers?.[f];if(c!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:Z8t({headerKey:f,header:c}).name,wireValue:f}),value:dT({example:d,rawTypeBeingExemplified:typeof c=="string"?c:c.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})});else throw new Error(`Heder ${f} does not exist`)}return{headers:u}}function zyw({channel:e,example:t,pathParams:r}){let n=e.path;if(t["path-parameters"]!=null)for(let i of[...r.pathParameters])n=n.replaceAll(`{${i.name.originalName}}`,`${i.value.jsonExample}`);return n}function Nyw(e){return typeof e=="string"?!1:e.extends!=null||e.properties!=null}function _Eu({rawApiFileSchema:{"default-environment":e,environments:t},casingsGenerator:r}){if(t==null)return;let n=Object.values(t)[0];if(n!=null)return{defaultEnvironment:e??void 0,environments:sDr(n,{singleBaseUrl:()=>PCt.singleBaseUrl(Fyw({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>PCt.multipleBaseUrls(Ryw({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function Fyw({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>sDr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:JWf(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function Ryw({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>sDr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:Vh(a.urls,u=>JWf(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function JWf(e){return e.endsWith("/")?e.slice(0,-1):e}function QWf({errorName:e,errorDeclaration:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=[];if(t.type!=null&&t.examples!=null)for(let f of t.examples)u.push({name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,docs:f.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:f.value,file:r}).resolvedExample,shape:dT({example:f.value,rawTypeBeingExemplified:t.type,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})});return{name:y4r({errorName:e,file:r}),discriminantValue:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:e}),docs:typeof t!="string"?t.docs:void 0,statusCode:t["status-code"],type:t.type!=null?r.parseTypeReference(t.type):void 0,examples:u}}var GWf="content";function $Wf(e,t){if(e==null||e.strategy==="status-code")return SCt.statusCode();switch(e.strategy){case"property":return SCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:GWf,wireValue:GWf})});default:uc(e)}}function KWf({readme:e,services:t}){let r=new hEu(t);return{apiReferenceLink:e.apiReferenceLink,bannerLink:e.bannerLink,introduction:e.introduction,defaultEndpoint:e.defaultEndpoint!=null?r.getEndpointForReadmeOrThrow(e.defaultEndpoint).id:void 0,features:e.features!=null?Object.fromEntries(Object.entries(e.features).map(([n,i])=>[n,i.map(a=>r.getEndpointForReadmeOrThrow(a).id)])):void 0}}var hEu=class{endpoints={};constructor(t){this.endpoints=this.buildEndpoints(t)}getEndpointForReadme(t){let r=Uyw({endpoint:t}),n=this.getEndpointKeyForReadmeEndpoint(r);return this.endpoints[n]}getEndpointForReadmeOrThrow(t){let r=this.getEndpointForReadme(t);if(r==null)throw new Error(`Endpoint not found for ${JSON.stringify(t)}`);return r}buildEndpoints(t){let r={};for(let n of Object.values(t))for(let i of n.endpoints)r[this.getEndpointKeyForHttpEndpoint(i)]=i;return r}getEndpointKeyForReadmeEndpoint(t){return this.getEndpointKey({method:t.method,path:t.path,stream:t.stream??!1})}getEndpointKeyForHttpEndpoint(t){return this.getEndpointKey({method:t.method,path:Lyw(t),stream:t.response?.body?.type==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function Lyw(e){let t="";e.fullPath.head.length>0&&(t=oP(t,e.fullPath.head));for(let r of e.fullPath.parts)t=oP(t,"{"+r.pathParameter+"}"),r.tail.length>0&&(t=oP(t,r.tail));return t.startsWith("/")?t:`/${t}`}function Uyw({endpoint:e}){if(typeof e=="string"){let t=e.split(" ");if(t.length!==2||t[0]==null||t[1]==null)throw new Error(`invalid endpoint string: ${e}`);return{method:t[0],path:t[1]}}return e}async function YWf({webhooks:e,file:t,typeResolver:r,exampleResolver:n,workspace:i}){let a=[];for(let[u,f]of Object.entries(e))a.push({id:PP.generateWebhookId(t.fernFilepath,u),availability:Rne(f.availability),displayName:f["display-name"],docs:f.docs,method:f.method,name:t.casingsGenerator.generateName(u),headers:f.headers!=null?await Promise.all(Object.entries(f.headers).map(([d,c])=>Hxe({headerKey:d,header:c,file:t}))):[],payload:Vyw({payload:f.payload,file:t}),examples:f.examples!=null?Hyw({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function Vyw({payload:e,file:t}){return typeof e=="string"?kre.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):hSa(e)?kre.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):kre.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:I2t(e.extends).map(r=>aL({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>Wyw({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Rne(n.availability):void 0,file:t})):[]})}function Wyw({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:DW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function Hyw({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:hSa(e.payload)?e.payload.type:void 0;if(u!=null)return t.map(f=>({docs:e.docs,name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,payload:dT({example:f.payload,rawTypeBeingExemplified:u,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}));if(!bD(e.payload))throw new Error(`Example webhook payload is not an object. Got: ${JSON.stringify(e.payload)}`);return t.map(f=>({docs:e.docs,name:f.name!=null?r.casingsGenerator.generateName(f.name):void 0,payload:dT({example:f.payload,rawTypeBeingExemplified:"map<string, unknown>",fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}))}function hSa(e){return e.type!=null}function QNn(e){let t={};for(let[r,n]of Object.entries(e))if(typeof n!="string")for(let i of n.audiences??[])t[i]==null&&(t[i]=new Set),t[i]?.add(r);return t}function XWf({name:e,source:t}){return x1.userDefined({file:dSa({source:t}),name:v4r.generateName(e)})}function ZWf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=Jyw({type:e.proto.type});if(t!=null)return t}}function Jyw({type:e}){switch(e){case"google.protobuf.Any":return x1.wellKnown(C_.any());case"google.protobuf.Api":return x1.wellKnown(C_.api());case"google.protobuf.BoolValue":return x1.wellKnown(C_.boolValue());case"google.protobuf.BytesValue":return x1.wellKnown(C_.bytesValue());case"google.protobuf.DoubleValue":return x1.wellKnown(C_.doubleValue());case"google.protobuf.Duration":return x1.wellKnown(C_.duration());case"google.protobuf.Empty":return x1.wellKnown(C_.empty());case"google.protobuf.Enum":return x1.wellKnown(C_.enum());case"google.protobuf.EnumValue":return x1.wellKnown(C_.enumValue());case"google.protobuf.Field":return x1.wellKnown(C_.field());case"google.protobuf.FieldCardinality":return x1.wellKnown(C_.fieldCardinality());case"google.protobuf.FieldKind":return x1.wellKnown(C_.fieldKind());case"google.protobuf.FieldMask":return x1.wellKnown(C_.fieldMask());case"google.protobuf.FloatVlaue":return x1.wellKnown(C_.floatValue());case"google.protobuf.Int32Value":return x1.wellKnown(C_.int32Value());case"google.protobuf.Int64Value":return x1.wellKnown(C_.int64Value());case"google.protobuf.ListValue":return x1.wellKnown(C_.listValue());case"google.protobuf.Method":return x1.wellKnown(C_.method());case"google.protobuf.Mixin":return x1.wellKnown(C_.mixin());case"google.protobuf.NullValue":return x1.wellKnown(C_.nullValue());case"google.protobuf.Option":return x1.wellKnown(C_.option());case"google.protobuf.SourceContext":return x1.wellKnown(C_.sourceContext());case"google.protobuf.StringValue":return x1.wellKnown(C_.stringValue());case"google.protobuf.Struct":return x1.wellKnown(C_.struct());case"google.protobuf.Syntax":return x1.wellKnown(C_.syntax());case"google.protobuf.Timestamp":return x1.wellKnown(C_.timestamp());case"google.protobuf.Type":return x1.wellKnown(C_.type());case"google.protobuf.Uint32Value":return x1.wellKnown(C_.uint32Value());case"google.protobuf.Uint64Value":return x1.wellKnown(C_.uint64Value());case"google.protobuf.Value":return x1.wellKnown(C_.value())}}async function kWf({generic:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type,i=dz(n);if(i==null)throw new Error(`Invalid generic type definition: ${n}`);let a=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:n,file:t});if(i.arguments&&SE(a.declaration)){let u=dz(a.typeName)?.arguments??[],f=Object.entries(a.declaration.properties??{}).map(([d,c])=>{let o=c;return typeof c=="string"&&u?.includes(c)&&(o=i.arguments?.[u.indexOf(c)]??c),[d,o]});return jC.object({extends:I2t(a.declaration.extends).map(d=>aL({typeName:d,file:t})),properties:await ibi({properties:Object.fromEntries(f)},t),extraProperties:a.declaration["extra-properties"]??!1,extendedProperties:void 0})}throw new Error(`Generic type definition not supported: ${n}`)}async function eHf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return yTe(n)?await kWf({generic:n,file:t,typeResolver:r}):jC.alias({aliasOf:t.parseTypeReference(e),resolvedType:Qyw({aliasOf:n,file:t,typeResolver:r})})}function Qyw({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return KV.primitive(n.originalTypeReference.primitive);case"container":return KV.container(n.originalTypeReference.container);case"unknown":return KV.unknown();case"named":{let i=SE(n.declaration)?ECt.Object:Gzr(n.declaration)?ECt.Union:xCt(n.declaration)?ECt.Enum:kqn(n.declaration)?ECt.UndiscriminatedUnion:uc(n.declaration);return KV.named({name:n.name,shape:i})}}}function tHf({union:e,file:t}){return jC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function rHf(e){let t=[];if(e.extends!=null){let r=typeof e.extends=="string"?[e.extends]:e.extends;t.push(...r)}return e.properties!=null&&t.push(...Object.values(e.properties).map(r=>typeof r=="string"?r:r.type)),t}function vEu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new yEu}){let i=v3(e,{alias:u=>{let f=typeof u=="string"?u:u.type,d=dz(f);if(d!=null){let c=new Set(d.arguments??[]),o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:f,file:t}),l=dz(o.typeName)?.arguments;if(SE(o.declaration)){let m=rHf(o.declaration);l&&m.filter(O=>!l.includes(O)).forEach(O=>c.add(O))}return Array.from(c)}return[f]},object:u=>rHf(u),discriminatedUnion:u=>{let f=[];return u["base-properties"]!=null&&f.push(...Object.values(u["base-properties"]).map(d=>typeof d=="string"?d:d.type)),f.push(...Object.values(u.union).reduce((d,c)=>{let o=typeof c=="string"?c:c.type;return typeof o=="string"&&d.push(o),d},[])),f},undiscriminatedUnion:u=>Object.values(u.union).reduce((f,d)=>{let c=typeof d=="string"?d:d.type;return typeof c=="string"&&f.push(c),f},[]),enum:()=>[]}),a=[];for(let u of i){let f=QQ({type:u,_default:void 0,validation:void 0,visitor:{primitive:()=>[],map:({keyType:d,valueType:c})=>[...d,...c],list:d=>d,optional:d=>d,set:d=>d,named:d=>[d],literal:()=>[],unknown:()=>[]}});for(let d of f){let c=aL({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(yTe(o.typeName))continue;a.push(...vEu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var yEu=class{cache=new Set;addTypeName(t){this.cache.add(this.computeCacheKey(t))}hasTypeNameBeenSeen(t){return this.cache.has(this.computeCacheKey(t))}computeCacheKey(t){return t.fernFilepath.allParts.map(r=>r.originalName).join("/")+":"+t.name.originalName}};async function nHf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await wG(t),d=aL({typeName:e,file:r}),c=vEu({typeDeclaration:t,file:r,typeResolver:n}),o={};SE(t)&&(o=QNn(t.properties??{}));let l=await $yw({file:r,typeDeclaration:t,typeName:e,sourceResolver:a});return{propertiesByAudience:o,typeDeclaration:{...f,inline:!1,name:d,shape:await Gyw({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(m=>m.typeId)),encoding:Kyw({typeDeclaration:t,source:l}),source:l,userProvidedExamples:typeof t!="string"&&t.examples!=null?t.examples.map(m=>({name:m.name!=null?r.casingsGenerator.generateName(m.name):void 0,docs:m.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:m.value,file:r}).resolvedExample,shape:dEu({typeName:d,example:m.value,typeResolver:n,exampleResolver:i,typeDeclaration:t,fileContainingType:r,fileContainingExample:r,workspace:u})})):[],autogeneratedExamples:[]},descendantFilepaths:new Set(c.map(m=>m.fernFilepath))}}async function Gyw({typeDeclaration:e,file:t,typeResolver:r}){return await v3(e,{alias:n=>eHf({alias:n,file:t,typeResolver:r}),object:n=>LVf({object:n,file:t}),discriminatedUnion:n=>tWf({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>tHf({union:n,file:t}),enum:async n=>jC.enum(await lSa({_enum:n,file:t}))})}async function $yw({file:e,typeDeclaration:t,typeName:r,sourceResolver:n}){if(typeof t=="string"||t.source==null&&t.encoding==null)return;if(t.encoding!=null){let a=ZWf({encoding:t.encoding});if(a!=null)return oDr.proto(a)}if(t.source==null)return;let i=await n.resolveSourceOrThrow({source:t.source,file:e});if(!(i==null||i.type!=="protobuf"))return oDr.proto(XWf({source:i,name:r}))}function Kyw({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?Yyw(e.encoding):Xyw(t)}function Yyw(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function Xyw(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}function iHf(e,t){let r=t[e];if(r==null)throw new b1r(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function aHf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,kyw({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>Zyw({endpoint:n,ir:e}))}]))}}function Zyw({endpoint:e,ir:t}){return e.requestBody?.type!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(r=>oHf(r,t))}}}function kyw({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>oHf(r,t))}}}return e}function oHf(e,t){let r=bEu(e.typeId,t);return uHf({objectTypeDeclaration:r,ir:t})}function bEu(e,t){let r=iHf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return bEu(r.shape.resolvedType.name.typeId,t)}throw new b1r(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function uHf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=bEu(n.typeId,t);return uHf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var ySa=class{environments=new Set;types=new Set;properties;errors=new Set;services=new Set;endpoints=new Set;requestProperties;queryParameters;webhooks=new Set;webhookPayloadProperties;subpackages=new Set;constructor({types:t,properties:r,errors:n,environments:i,services:a,endpoints:u,webhooks:f,subpackages:d,queryParameters:c,requestProperties:o,webhookPayloadProperties:l}){this.environments=i,this.types=t,this.properties=r,this.errors=n,this.services=a,this.endpoints=u,this.webhooks=f,this.webhookPayloadProperties=l,this.subpackages=d,this.requestProperties=o,this.queryParameters=c}hasTypeId(t){return this.types.has(t)}hasErrorId(t){return this.errors.has(t)}hasServiceId(t){return this.services.has(t)}hasSubpackageId(t){return this.subpackages.has(t)}hasType(t){let r=PP.generateTypeId(t.name);return this.types.has(r)}hasProperty(t,r){let n=this.properties[t];return n==null?!0:n.has(r)}hasError(t){let r=PP.generateErrorId(t.name);return this.errors.has(r)}hasService(t){let r=PP.generateServiceId(t.name);return this.services.has(r)}hasEnvironmentId(t){return this.environments.has(t)}hasEndpoint(t){return this.endpoints.has(t.id)}hasRequestProperty(t,r){let n=this.requestProperties[t];return n==null?!0:n.has(r)}hasQueryParameter(t,r){let n=this.queryParameters[t];return n==null?!0:n.has(r)}hasSubpackage(t){return this.subpackages.has(t)}hasWebhook(t){return t.id?this.webhooks.has(t.id):!0}hasWebhookPayloadProperty(t,r){let n=this.webhookPayloadProperties[t];return n==null?!0:n.has(r)}};var vSa=class{types={};properties={};queryParameters={};requestProperties={};webhookProperties={};errors={};endpoints={};webhooks={};audiences;typesReferencedByService={};environmentsNeededForAudience=new Set;typesNeededForAudience=new Set;servicesNeededForAudience=new Set;endpointsNeededForAudience=new Set;webhooksNeededForAudience=new Set;subpackagesNeededForAudience=new Set;constructor(t){this.audiences=evw(t)}addType({declaredTypeName:t,descendantTypeIds:r,descendantFilepaths:n,descendantTypeIdsByAudience:i,propertiesByAudience:a}){let u=PP.generateTypeId(t),f={typeId:u,allDescendants:r,descendantsByAudience:i,referencedSubpackages:n};this.types[u]=f,this.typesReferencedByService[u]==null&&(this.typesReferencedByService[u]=new Set),this.properties[u]={typeId:u,propertiesByAudience:a}}markTypeForAudiences(t,r){let n=PP.generateTypeId(t);this.hasAudience(r)&&(this.typesNeededForAudience.add(n),this.addSubpackages(t.fernFilepath),this.types[n]?.referencedSubpackages.forEach(i=>{this.addSubpackages(i)}))}markEnvironmentForAudiences(t,r,n){t&&(this.hasAudience(r)||n)&&this.environmentsNeededForAudience.add(t.id)}getTypesReferencedByService(){for(let t of Object.values(this.endpoints))for(let r of t.referencedTypes)this.markTypeForService(r,t.serviceId);return this.typesReferencedByService}addError(t){let r=PP.generateErrorId(t.name),n=new Set,i=new Set;t.type!=null&&DF(t.type,n,i);let a={errorId:r,referencedTypes:n,referencedSubpackages:i};this.errors[r]=a}addEndpoint(t,r,n){let i=PP.generateServiceId(t.name),a=r.id,u=new Set,f=new Set,d=new Set;for(let c of[...t.headers,...r.headers])DF(c.valueType,u,d);for(let c of[...t.pathParameters,...r.pathParameters])DF(c.valueType,u,d);for(let c of r.queryParameters)DF(c.valueType,u,d);if(n!=null&&n.request!=null&&typeof n.request!="string"){let c=QNn(n.request["query-parameters"]??{});this.queryParameters[a]={endpointId:a,parametersByAudience:c}}r.requestBody!=null&&sF._visit(r.requestBody,{inlinedRequestBody:c=>{for(let o of c.extends)gEu(o,u,d);for(let o of c.properties)DF(o.valueType,u,d);if(n!=null&&typeof n.request=="object"&&typeof n.request.body=="object"&&p2(n.request.body)){let o=QNn(n.request.body.properties??{});this.requestProperties[a]={endpointId:a,propertiesByAudience:o}}},reference:({requestBodyType:c})=>{DF(c,u,d)},fileUpload:({properties:c})=>{for(let o of c)Gre._visit(o,{file:Bc,bodyProperty:({valueType:l})=>{DF(l,u,d)},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+o.type)}})},bytes:()=>{},_other:()=>{throw new Error("Unknown HttpRequestBody: "+r.requestBody?.type)}}),r.response?.body!=null&&pz._visit(r.response.body,{fileDownload:Bc,json:c=>{DF(c.responseBodyType,u,d)},streaming:c=>{c._visit({sse:o=>DF(o.payload,u,d),json:o=>DF(o.payload,u,d),text:Bc,_other:()=>{throw new Error("Unknown streamingResponse type: "+c.type)}})},streamParameter:c=>{c.streamResponse._visit({sse:o=>DF(o.payload,u,d),json:o=>DF(o.payload,u,d),text:Bc,_other:()=>{throw new Error("Unknown streamingResponse type: "+c.streamResponse.type)}}),c.nonStreamResponse.type==="json"&&DF(c.nonStreamResponse.value.responseBodyType,u,d)},text:Bc,_other:()=>{throw new Error("Unknown HttpResponse: "+r.response?.body?.type)}}),r.errors.forEach(c=>{f.add(PP.generateErrorId(c.error)),d.add(c.error.fernFilepath)}),this.endpoints[a]={endpointId:a,serviceId:i,referencedTypes:u,referencedErrors:f,referencedSubpackages:d}}markEndpointForAudience(t,r,n){if(this.hasAudience(n)){let i=PP.generateServiceId(t);this.servicesNeededForAudience.add(i),r.forEach(a=>{let u=a.id;this.endpointsNeededForAudience.add(u),this.endpoints[u]?.referencedSubpackages.forEach(f=>{this.addSubpackages(f)})}),this.servicesNeededForAudience.add(i),this.addSubpackages(t.fernFilepath)}}addWebhook(t,r,n){let i=r.id;if(i==null)return;let a=new Set,u=new Set;r.payload!=null&&kre._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)gEu(d,a,u);for(let d of f.properties)DF(d.valueType,a,u);if(n?.payload!=null&&typeof n.payload=="object"&&!hSa(n.payload)){let d=QNn(n.payload.properties??{});this.webhookProperties[i]={webhookId:i,propertiesByAudience:d}}},reference:({payloadType:f})=>{DF(f,a,u)},_other:()=>{throw new Error("Unknown WebhookPayload: "+r.payload?.type)}}),u.add(t.fernFilepath),this.webhooks[i]={webhookId:i,referencedTypes:a,referencedSubpackages:u}}markWebhookForAudiences(t,r,n){let i=r.id;i!=null&&this.hasAudience(n)&&(this.webhooksNeededForAudience.add(i),this.addSubpackages(t.fernFilepath))}build(){let t=new Set,r=new Set;for(let f of this.endpointsNeededForAudience.keys()){let d=this.getEndpointNode(f);for(let c of d.referencedErrors){if(r.has(c))continue;r.add(c);let o=this.getErrorNode(c);this.addReferencedTypes(t,o.referencedTypes)}this.addReferencedTypes(t,d.referencedTypes)}this.addReferencedTypes(t,this.typesNeededForAudience);for(let f of this.webhooksNeededForAudience.keys()){let d=this.getWebhookNode(f);this.addReferencedTypes(t,d.referencedTypes)}let n={},i={},a={},u={};if(this.audiences.type==="filtered"){for(let[f,d]of Object.entries(this.properties)){if(!t.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}c.size>0&&(n[f]=c),n[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.requestProperties)){if(!this.endpointsNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}i[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.queryParameters)){if(!this.endpointsNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.parametersByAudience[o];l?.forEach(m=>{c.add(m)})}a[f]=c.size>0?c:void 0}for(let[f,d]of Object.entries(this.webhookProperties)){if(!this.webhooksNeededForAudience.has(f))continue;let c=new Set;for(let o of this.audiences.audiences){let l=d.propertiesByAudience[o];l?.forEach(m=>{c.add(m)})}u[f]=c.size>0?c:void 0}}return new ySa({types:t,properties:n,errors:r,requestProperties:i,queryParameters:a,environments:this.environmentsNeededForAudience,services:this.servicesNeededForAudience,endpoints:this.endpointsNeededForAudience,webhooks:this.webhooksNeededForAudience,webhookPayloadProperties:u,subpackages:this.subpackagesNeededForAudience})}markTypeForService(t,r){let n=this.typesReferencedByService[t]??=new Set;if(n.has(r))return;n.add(r);let i=this.getTypeNode(t);for(let a of i.allDescendants)this.markTypeForService(a,r)}addReferencedTypes(t,r){for(let n of r){if(t.has(n))continue;t.add(n);let i=this.getTypeNode(n);if(this.audiences.type==="filtered")for(let a of this.audiences.audiences){let u=i.descendantsByAudience[a];if(u!=null)u.forEach(f=>{t.add(f)});else{i.allDescendants.forEach(f=>{t.add(f)});break}}else i.allDescendants.forEach(a=>{t.add(a)})}}getTypeNode(t){let r=this.types[t];if(r==null)throw new Error(`Failed to find type node with id ${t}`);return r}getErrorNode(t){let r=this.errors[t];if(r==null)throw new Error(`Failed to find error node with id ${t}`);return r}getEndpointNode(t){let r=this.endpoints[t];if(r==null)throw new Error(`Failed to find endpoint node with id ${t}`);return r}getWebhookNode(t){let r=this.webhooks[t];if(r==null)throw new Error(`Failed to find webhook node with id ${t}`);return r}hasNoAudiences(){return this.audiences.type==="none"}hasAudience(t){let r=this.audiences;switch(r.type){case"none":return!0;case"filtered":return t.some(n=>r.audiences.has(n));default:uc(r)}}addSubpackages(t){for(let r=1;r<=t.allParts.length;++r){let n={...t,allParts:t.allParts.slice(0,r)};this.subpackagesNeededForAudience.add(PP.generateSubpackageId(n))}}};function evw(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:uc(e)}}function DF(e,t,r){cT._visit(e,{container:n=>{tvw(n,t,r)},named:n=>{gEu(n,t,r)},primitive:Bc,unknown:Bc,_other:Bc})}function gEu(e,t,r){t.add(PP.generateTypeId(e)),r.add(e.fernFilepath)}function tvw(e,t,r){wC._visit(e,{list:n=>{DF(n,t,r)},map:n=>{DF(n.keyType,t,r),DF(n.valueType,t,r)},optional:n=>{DF(n,t,r)},set:n=>{DF(n,t,r)},literal:Bc,_other:Bc})}function cHf({filteredIr:e,singleUnionTypeProperties:t}){return t._visit({samePropertiesAsObject:r=>{let n=e.hasTypeId(r.typeId)?{...r,object:{properties:r.object.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:t6({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)}}:void 0;return n!==void 0?_3.samePropertiesAsObject(n):void 0},singleProperty:r=>{let n=t6({filteredIr:e,exampleTypeReference:r});return n!==void 0?_3.singleProperty(n):void 0},noProperties:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}})}function t6({filteredIr:e,exampleTypeReference:t}){return t.shape._visit({primitive:()=>t,container:r=>r._visit({list:n=>({...t,shape:Em.container(DE.list({...n,list:n.list.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),set:n=>({...t,shape:Em.container(DE.set({...n,set:n.set.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),optional:n=>{let i=n.optional!=null?t6({filteredIr:e,exampleTypeReference:n.optional}):void 0;return i!=null?{...t,shape:Em.container(DE.optional({optional:i,valueType:n.valueType}))}:void 0},map:n=>({...t,shape:Em.container(DE.map({...n,map:n.map.map(i=>{let a=t6({filteredIr:e,exampleTypeReference:i.key}),u=t6({filteredIr:e,exampleTypeReference:i.value});return a!==void 0&&u!==void 0?{key:a,value:u}:void 0}).filter(i=>i!==void 0)}))}),literal:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}}),named:r=>e.hasTypeId(r.typeName.typeId)?r.shape._visit({alias:n=>{let i=t6({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.alias({...n,value:i})})}:void 0},enum:n=>({...t,shape:Em.named({...r,shape:OD.enum(n)})}),object:n=>({...t,shape:Em.named({...r,shape:OD.object({...n,properties:n.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:t6({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)})})}),union:n=>{let i=cHf({filteredIr:e,singleUnionTypeProperties:n.singleUnionType.shape});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.union({...n,singleUnionType:{...n.singleUnionType,shape:i}})})}:void 0},undiscriminatedUnion:n=>{let i=t6({filteredIr:e,exampleTypeReference:n.singleUnionType});return i!==void 0?{...t,shape:Em.named({...r,shape:OD.undiscriminatedUnion({...n,singleUnionType:i})})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}}):void 0,unknown:()=>t,_other:()=>t})}function mEu({filteredIr:e,pathParameters:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function rvw({filteredIr:e,queryParameters:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function sHf({filteredIr:e,headers:t}){return t.map(r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function nvw({filteredIr:e,requestBody:t}){return t._visit({inlinedRequestBody:r=>({...t,properties:r.properties.filter(n=>n.originalTypeDeclaration?e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue):!0).map(n=>{let i=t6({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...n,value:i}:void 0}).filter(n=>n!==void 0)}),reference:r=>{let n=t6({filteredIr:e,exampleTypeReference:r});return n!==void 0?VQ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function ivw({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>g7.ok(JN.body(n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>g7.ok(JN.stream(n.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(YA))),sse:n=>g7.ok(JN.sse(n.map(({event:i,data:a})=>{let u=t6({filteredIr:e,exampleTypeReference:a});return u!==void 0?{event:i,data:u}:void 0}).filter(YA))),_other:({type:n})=>{throw new Error(`Received unknown type for OK example: ${n}`)}}),error:({error:r,body:n})=>g7.error({error:r,body:n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0}),_other:({type:r})=>{throw new Error(`Received unknown type for example: ${r}`)}})}function OEu({filteredIr:e,example:t}){return{...t,rootPathParameters:mEu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:mEu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:mEu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:sHf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:sHf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:rvw({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?nvw({filteredIr:e,requestBody:t.request}):void 0,response:ivw({filteredIr:e,response:t.response})}}function lHf({filteredIr:e,exampleType:t}){return t.shape._visit({alias:r=>{let n=t6({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...t,shape:OD.alias({...r,value:n})}:void 0},enum:()=>t,object:r=>({...t,shape:OD.object({...r,properties:r.properties.filter(n=>e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue)).map(n=>({...n,value:t6({filteredIr:e,exampleTypeReference:n.value})})).filter(n=>n.value!==void 0)})}),union:r=>{let n=cHf({filteredIr:e,singleUnionTypeProperties:r.singleUnionType.shape});return n!==void 0?{...t,shape:OD.union({...r,singleUnionType:{...r.singleUnionType,shape:n}})}:void 0},undiscriminatedUnion:r=>{let n=t6({filteredIr:e,exampleTypeReference:r.singleUnionType});return n!==void 0?{...t,shape:OD.undiscriminatedUnion({...r,singleUnionType:n})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}var bSa=class{subpackages={};rootPackage={docs:void 0,fernFilepath:{allParts:[],packagePath:[],file:void 0},websocket:void 0,service:void 0,types:[],errors:[],subpackages:[],webhooks:void 0,navigationConfig:void 0};addPackageRedirection({from:t,to:r}){let n=this.getPackageForFernFilepath(t);if(n.navigationConfig!=null)throw new Error("Found duplicate navigationConfig for package");n.navigationConfig={pointsTo:PP.generateSubpackageId(r)}}addDocs(t,r){let n=this.getPackageForFernFilepath(t);if(n.docs!=null)throw new Error("Found duplicate docs for package");n.docs=r}addSubpackage(t){this.getPackageForFernFilepath(t)}addType(t,r){this.getPackageForFernFilepath(r.name.fernFilepath).types.push(t)}addError(t,r){this.getPackageForFernFilepath(r.name.fernFilepath).errors.push(t)}addService(t,r){let n=this.getPackageForFernFilepath(r.name.fernFilepath);if(n.service!=null)throw new Error("Found duplicate service for "+t);n.service=t}addWebhookGroup(t,r){let n=this.getPackageForFernFilepath(r);if(n.webhooks!=null)throw new Error("Found duplicate webhook group for "+t);n.webhooks=t}addWebSocketChannel(t,r){let n=this.getPackageForFernFilepath(r);if(n.webhooks!=null)throw new Error("Found duplicate webhook group for "+t);n.websocket=t}build(t){t!=null&&(Object.entries(this.subpackages).forEach(([n,i])=>{t.hasSubpackageId(n)?this.subpackages[n]={...i,types:i.types.filter(a=>t.hasTypeId(a)),errors:i.errors.filter(a=>t.hasErrorId(a)),service:i.service!=null&&t.hasServiceId(i.service)?i.service:void 0,subpackages:i.subpackages.filter(a=>t.hasSubpackageId(a))}:delete this.subpackages[n]}),this.rootPackage={...this.rootPackage,types:this.rootPackage.types.filter(n=>t.hasTypeId(n)),errors:this.rootPackage.errors.filter(n=>t.hasErrorId(n)),service:this.rootPackage.service!=null&&t.hasServiceId(this.rootPackage.service)?this.rootPackage.service:void 0,subpackages:this.rootPackage.subpackages.filter(n=>t.hasSubpackageId(n)),webhooks:this.rootPackage.webhooks!=null?this.rootPackage.webhooks:void 0});let r=new Set(this.getAllChildrenWithEndpoints(this.rootPackage));return{subpackages:Vh(this.subpackages,(n,i)=>({...n,hasEndpointsInTree:r.has(i)})),rootPackage:{...this.rootPackage,hasEndpointsInTree:r.size>0||this.rootPackage.service!=null}}}sortRootPackage(t){if(!fHf(this.rootPackage.subpackages,t))throw new Error("Sorted subpackages differ from unsorted packages in root");this.rootPackage.subpackages=t}sortSubpackage(t,r){let n=this.subpackages[t];if(n==null)throw new Error("Subpackage does not exist: "+t);if(!fHf(n.subpackages,r))throw new Error("Sorted subpackages differ from unsorted packages");n.subpackages=r}getAllSubpackagesWithEndpoints(t){let r=this.subpackages[t];if(r==null)throw new Error("Subpackage does not exist: "+t);let n=this.getAllChildrenWithEndpoints(r);return(n.length>0||r.service!=null)&&n.push(t),n}getAllChildrenWithEndpoints(t){return t.subpackages.flatMap(r=>[...this.getAllSubpackagesWithEndpoints(r)])}getPackageForFernFilepath(t,r=0,n=this.rootPackage){let i=t.allParts[r];if(i==null)return n;let a=n.subpackages.map(c=>{let o=this.subpackages[c];if(o==null)throw new Error("Subpackage ID is invalid: "+c);return o}),u=r+1,f={allParts:t.allParts.slice(0,u),packagePath:t.packagePath.slice(0,u),file:u===t.allParts.length?t.file:void 0},d=a.find(c=>c.name.originalName===i.originalName);if(d==null){let c=PP.generateSubpackageId(f),o={docs:void 0,fernFilepath:f,name:i,service:void 0,types:[],errors:[],subpackages:[],navigationConfig:void 0,webhooks:void 0,websocket:void 0};this.subpackages[c]=o,n.subpackages.push(c),d=o}return this.getPackageForFernFilepath(t,u,d)}};function fHf(e,t){if(e.length!==t.length)return!1;let r=new Set(e);for(let n of t)if(!r.has(n))return!1;return!0}function dHf({reference:e,referencedIn:t,imports:r}){let[n,i,...a]=e.split(".");if(n==null||a.length>0)return;if(i==null)return{endpointName:n,relativeFilepath:t};let f=r[n];if(f!=null)return{endpointName:i,relativeFilepath:h4r({referencedIn:t,importPath:f})}}var yrn=class{workspace;constructor(t){this.workspace=t}async resolveEndpointOrThrow({endpoint:t,file:r}){let n=await this.resolveEndpoint({endpoint:t,file:r});if(n==null)throw new Error("Cannot resolve endpoint: "+t+" in file "+r.relativeFilepath);return n}async resolveEndpointByMethodAndPath({method:t,path:r}){let n;return await D3(this.workspace,async(i,a,u)=>{let f=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:v4r,rootApiFile:this.workspace.definition.rootApiFile.contents,defaultUrl:u.defaultUrl});for(let[d,c]of Object.entries(a.service?.endpoints??{}))c.method===t&&c.path===r&&(n={endpointId:d,endpoint:c,file:f})}),await den(this.workspace,async(i,a)=>{let u=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:v4r,rootApiFile:this.workspace.definition.rootApiFile.contents});for(let[f,d]of Object.entries(a.service?.endpoints??{}))d.method===t&&d.path===r&&(n={endpointId:f,endpoint:d,file:u})}),n}async resolveEndpoint({endpoint:t,file:r}){let i=new Cfi().tryParse(t);if(i!=null)return await this.resolveEndpointByMethodAndPath(i);let a=this.getDeclarationOfEndpoint({referenceToEndpoint:t,file:r});if(a==null)return;let u=a.file.definitionFile.service?.endpoints?.[a.endpointName];if(u!=null)return{endpointId:a.endpointName,endpoint:u,file:a.file}}getDeclarationOfEndpoint({referenceToEndpoint:t,file:r}){let n=dHf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(!(i==null||i.service?.endpoints?.[n.endpointName]==null))return{endpointName:n.endpointName,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var vrn=class{workspace;constructor(t){this.workspace=t}getDeclarationOrThrow(t,r){let n=this.getDeclaration(t,r);if(n==null)throw new Error("Error does not exist: "+t);return n}getDeclaration(t,r){let n=Hwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(i==null)return;let a=i.errors?.[n.typeName];if(a!=null)return{declaration:a,file:$m({definitionFile:i,relativeFilepath:n.relativeFilepath,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var Qwe=class{typeResolver;constructor(t){this.typeResolver=t}resolveAllReferencesInExample({example:t,file:r}){if(typeof t=="string"){let n=this.resolveExample({example:t,file:r});return n==null||typeof n.resolvedExample=="string"?n:this.resolveAllReferencesInExample({example:n.resolvedExample,file:n.file})}else if(bD(t)){let n={};for(let[i,a]of Object.entries(t)){let u=this.resolveAllReferencesInExample({example:a,file:r});if(u==null)return;n[i]=u.resolvedExample}return{resolvedExample:n}}else if(Array.isArray(t)){let n=[];for(let i of t){let a=this.resolveAllReferencesInExample({example:i,file:r});if(a==null)return;n.push(a.resolvedExample)}return{resolvedExample:n}}return{resolvedExample:t}}resolveAllReferencesInExampleOrThrow({example:t,file:r}){let n=this.resolveAllReferencesInExample({example:t,file:r});if(n==null)throw new Error("Failed to resolve examples");return n}resolveExample({example:t,file:r}){if(typeof t!="string")return{resolvedExample:t,file:r};if(t.startsWith(`\\${FFt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(FFt))return{resolvedExample:t,file:r};let n=this.parseExampleReference(t);if(n==null)return;let i=this.typeResolver.getDeclarationOfNamedType({referenceToNamedType:n.rawTypeReference,file:r});if(i==null||typeof i.declaration=="string"||i.declaration.examples==null)return;let a=i.declaration.examples.find(u=>u.name===n.exampleName);if(a!=null)return this.resolveExample({example:a.value,file:i.file})}resolveExampleOrThrow({example:t,file:r}){let n=this.resolveExample({example:t,file:r});if(n==null)throw new Error("Cannot resolve example: "+t);return n}parseExampleReference(t){let[r,n,i,...a]=t.split(".");if(!(r==null||n==null||a.length>0))return i==null?{rawTypeReference:r.slice(FFt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(FFt.length),exampleName:i}}};var gSa=class{typeResolver;endpointResolver;constructor(t,r){this.typeResolver=t,this.endpointResolver=r,this.typeResolver=t,this.endpointResolver=r}async resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:n}){let i=await this.resolveRequestProperty({file:t,endpoint:r,propertyComponents:n});if(i==null)throw new Error("Cannot resolve request property from endpoint: "+r+" in file "+t.relativeFilepath);return i}async resolveRequestProperty({file:t,endpoint:r,propertyComponents:n}){let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t});if(i.endpoint.request==null)return;if(typeof i.endpoint.request!="string")return this.resolveRequestPropertyFromInlinedRequest({typeResolver:this.typeResolver,file:i.file,requestType:i.endpoint.request,propertyComponents:n});let a=await this.resolveObjectProperty({file:i.file,typeName:i.endpoint.request,propertyComponents:n});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:n,file:t}),property:Yre.body(a)}}async resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:n}){let i=await this.resolveResponseProperty({file:t,endpoint:r,propertyComponents:n});if(i==null)throw new Error("Cannot resolve response property from endpoint: "+r+" in file "+t.relativeFilepath);return i}async resolveResponseProperty({file:t,endpoint:r,propertyComponents:n}){let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t}),a=await this.resolveObjectProperty({file:i.file,typeName:(typeof i.endpoint.response!="string"?i.endpoint.response?.type:i.endpoint.response)??"",propertyComponents:n});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:n,file:t}),property:a}}async resolveRequestPropertyFromInlinedRequest({typeResolver:t,file:r,requestType:n,propertyComponents:i}){if(i.length===1){let a=i[0]??"",u=typeof n["query-parameters"]!=null?n["query-parameters"]?.[a]:void 0;if(u!=null)return{property:Yre.query(await fSa({file:r,queryParameterKey:a,queryParameter:u})),propertyPath:void 0}}return this.resolveRequestPropertyFromInlinedRequestBody({typeResolver:t,file:r,requestType:n,propertyComponents:i})}async resolveRequestPropertyFromInlinedRequestBody({typeResolver:t,file:r,requestType:n,propertyComponents:i}){if(n.body==null)return;if(typeof n.body=="string"){let u=await this.resolveObjectProperty({file:r,typeName:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(u)}}if(p2(n.body)){let u=await sEu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(u)}}let a=await this.resolveObjectProperty({file:r,typeName:n.body.type,propertyComponents:i});if(a!=null)return{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Yre.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await uEu({typeResolver:this.typeResolver,file:obi(i)??t,resolvedType:i,propertyComponents:n})}async propertyPathFromPropertyComponents({propertyComponents:t,file:r}){return t.length<=1?[]:t.slice(0,-1).map(n=>r.casingsGenerator.generateName(n))}};var pHf=require("fs/promises"),mSa=class{async parse({absoluteFilePath:t}){let r=await(0,pHf.readFile)(t,"utf-8"),n=r.match(/option\s+csharp_namespace\s*=\s*"([^"]+)";/),i=r.match(/package\s+([a-zA-Z_][\w.]*);/),a=r.match(/service\s+([a-zA-Z_]\w*)\s*{/);return{csharpNamespace:n?.[1],packageName:i?.[1],serviceName:a?.[1]}}};var OSa=class{context;workspace;sourceCache;constructor(t,r){this.context=t,this.workspace=r,this.sourceCache=new Map}async resolveSourceOrThrow({source:t,file:r}){let n=await this.resolveSource({source:t,file:r});if(n==null){if(cZr(t))throw new Error(`Cannot resolve source ${t.proto} from file ${r.relativeFilepath}`);this.context.logger.warn(`Cannot resolve source ${t.openapi} from file ${r.relativeFilepath}`)}return n}async resolveSource({source:t,file:r}){return cZr(t)?await this.resolveProtobufSource({source:t,file:r}):await this.resolveOpenAPISource({source:t,file:r})}async resolveProtobufSource({source:t,file:r}){let n=Wl(this.workspace.absoluteFilePath,ls.of(t.proto));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await _h(n))return;let a=await new mSa().parse({absoluteFilePath:n}),u={type:"protobuf",absoluteFilePath:n,relativeFilePath:ls.of(t.proto),csharpNamespace:a.csharpNamespace,packageName:a.packageName,serviceName:a.serviceName};return this.sourceCache.set(n,u),u}async resolveOpenAPISource({source:t,file:r}){let n=Wl(this.workspace.absoluteFilePath,ls.of(t.openapi));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await _h(n))return;let i={type:"openapi",absoluteFilePath:n,relativeFilePath:ls.of(t.openapi)};return this.sourceCache.set(n,i),i}};var oA=class{workspace;constructor(t){this.workspace=t}resolveTypeOrThrow({type:t,file:r}){let n=this.resolveType({type:t,file:r});if(n==null)throw new Error("Cannot resolve type: "+t+" in file "+r.relativeFilepath);return n}getDeclarationOfNamedTypeOrThrow({referenceToNamedType:t,file:r}){let n=this.getDeclarationOfNamedType({referenceToNamedType:t,file:r});if(n==null)throw new Error("Cannot find declaration of type: "+t+" in file "+r.relativeFilepath);return n}getDeclarationOfNamedType({referenceToNamedType:t,file:r}){let n=Hwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=wne(this.workspace,n.relativeFilepath);if(i==null)return;let a=i.types?.[n.typeName];if(a==null){let u=dz(n.typeName);if(u!=null){for(let f of Object.keys(i.types??{})??[])if(u.name&&f.startsWith(u.name)&&f.endsWith(">")){let d=i.types?.[f];return d!=null?{typeName:f,declaration:d,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}:void 0}}return}return{typeName:n.typeName,declaration:a,file:$m({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}resolveType({type:t,file:r,objectPath:n=[]}){return QQ({type:t,_default:void 0,validation:void 0,visitor:{primitive:i=>({_type:"primitive",primitive:i,originalTypeReference:cT.primitive(i)}),unknown:()=>({_type:"unknown",originalTypeReference:cT.unknown()}),map:({keyType:i,valueType:a})=>i!=null&&a!=null?{_type:"container",container:{_type:"map",keyType:i,valueType:a},originalTypeReference:cT.container(wC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:cT.container(wC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:cT.container(wC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:cT.container(wC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:cT.container(wC.literal(i))}),named:i=>{let a=this.getDeclarationOfNamedType({referenceToNamedType:i,file:r});if(a==null)return;let u={typeName:a.typeName,file:a.file.relativeFilepath,reference:i};if(!n.some(f=>f.file===u.file&&f.typeName===u.typeName))return this.resolveNamedTypeFromDeclaration({referenceToNamedType:i,referencedIn:r,rawDeclaration:a,objectPath:[...n,u]})}}})}resolveNamedTypeOrThrow({referenceToNamedType:t,file:r}){let n=this.resolveNamedType({referenceToNamedType:t,file:r});if(n==null)throw new Error("Cannot resolve type: "+t);return n}resolveNamedType({referenceToNamedType:t,file:r}){let n=this.getDeclarationOfNamedType({referenceToNamedType:t,file:r});if(n!=null)return this.resolveNamedTypeFromDeclaration({referenceToNamedType:t,referencedIn:r,rawDeclaration:n})}resolveNamedTypeFromDeclaration({referenceToNamedType:t,referencedIn:r,rawDeclaration:n,objectPath:i=[]}){let{declaration:a,file:u}=n;if(Qzr(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=sSa({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||wne(this.workspace,u.relativeFilepath)==null))return{_type:"named",rawName:n.typeName,name:f,declaration:a,filepath:u.relativeFilepath,objectPath:i,originalTypeReference:f,file:u}}};var R2t=class e{static VARIABLE_PREFIX="$";getDeclarationOrThrow(t,r){let n=this.getDeclaration(t,r);if(n==null)throw new Error("Variable does not exist: "+t);return n}getDeclaration(t,r){if(!t.startsWith(e.VARIABLE_PREFIX))return;let n=r.rootApiFile.variables?.[t.substring(1)];if(n!=null)return{declaration:n,file:WSr({casingsGenerator:r.casingsGenerator,rootApiFile:r.rootApiFile})}}getVariableIdOrThrow(t){let r=this.getVariableId(t);if(r==null)throw new Error("Variable reference does not start with "+e.VARIABLE_PREFIX);return r}getVariableId(t){if(t.startsWith(e.VARIABLE_PREFIX))return t.substring(e.VARIABLE_PREFIX.length)}};function PSa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}function _Hf({fieldName:e,primitiveType:t}){switch(t.v1){case"STRING":{let r=e??_1.STRING;return{type:"success",example:$v.string({original:r}),jsonExample:r}}case"BASE_64":return{type:"success",example:$v.base64(_1.BASE64),jsonExample:_1.BASE64};case"BOOLEAN":return{type:"success",example:$v.boolean(_1.BOOLEAN),jsonExample:_1.BOOLEAN};case"DATE":return{type:"success",example:$v.date(_1.DATE),jsonExample:_1.DATE};case"DATE_TIME":return{type:"success",example:$v.datetime({datetime:new Date(_1.DATE_TIME),raw:_1.DATE_TIME}),jsonExample:_1.DATE_TIME};case"DOUBLE":return{type:"success",example:$v.double(_1.DOUBLE),jsonExample:_1.DOUBLE};case"FLOAT":return{type:"success",example:$v.float(_1.FLOAT),jsonExample:_1.FLOAT};case"INTEGER":return{type:"success",example:$v.integer(_1.INT),jsonExample:_1.INT};case"UINT_64":return{type:"success",example:$v.uint64(_1.INT64),jsonExample:_1.INT64};case"UINT":return{type:"success",example:$v.uint(_1.UINT),jsonExample:_1.UINT};case"BIG_INTEGER":return{type:"success",example:$v.bigInteger(_1.INT64.toString()),jsonExample:`${_1.INT64}`};case"LONG":return{type:"success",example:$v.long(_1.INT64),jsonExample:_1.INT64};case"UUID":return{type:"success",example:$v.uuid(_1.UUID),jsonExample:_1.UUID};default:uc(t.v1)}}function hHf({fieldName:e,containerType:t,maxDepth:r,currentDepth:n,typeDeclarations:i,skipOptionalProperties:a}){if(n>=r)return g4r({containerType:t});switch(t.type){case"list":{let u=w8({fieldName:e,typeReference:t.list,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.list({list:[u.example,u.example],itemType:t.list}),jsonExample:[u.jsonExample,u.jsonExample]}}case"literal":return{type:"success",example:DE.literal({literal:t.literal._visit({boolean:u=>$v.boolean(u),string:u=>$v.string({original:u}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:t.literal._visit({boolean:u=>u,string:u=>u,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":{if(a)return g4r({containerType:t});let u=w8({fieldName:e,typeReference:t.optional,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.optional({optional:u.example,valueType:t.optional}),jsonExample:u.jsonExample}}case"set":{let u=w8({fieldName:e,typeReference:t.set,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.set({set:[u.example],itemType:t.set}),jsonExample:[u.jsonExample]}}case"map":{let u=w8({fieldName:e,typeReference:t.keyType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a}),f=w8({fieldName:e,typeReference:t.valueType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"||f.type==="failure"?g4r({containerType:t}):{type:"success",example:DE.map({map:[{key:u.example,value:f.example}],keyType:t.keyType,valueType:t.valueType}),jsonExample:{[u.jsonExample]:f.jsonExample}}}default:uc(t)}}function g4r({containerType:e}){switch(e.type){case"list":return{type:"success",example:DE.list({list:[],itemType:e.list}),jsonExample:[]};case"literal":return{type:"success",example:DE.literal({literal:e.literal._visit({boolean:t=>$v.boolean(t),string:t=>$v.string({original:t}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:e.literal._visit({boolean:t=>t,string:t=>t,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":return{type:"success",example:DE.optional({optional:void 0,valueType:e.optional}),jsonExample:void 0};case"set":return{type:"success",example:DE.set({set:[],itemType:e.set}),jsonExample:[]};case"map":return{type:"success",example:DE.map({map:[],keyType:e.keyType,valueType:e.valueType}),jsonExample:{}};default:uc(e)}}function GNn({typeReference:e,typeDeclarations:t}){if(e.type==="container"&&e.container.type==="optional")return!0;if(e.type==="named"){let r=t[e.typeId];if(r?.shape.type==="alias"&&r?.shape.resolvedType.type==="container"&&r?.shape.resolvedType.container.type==="optional")return!0}return!1}function vHf({fieldName:e,typeDeclarations:t,typeDeclaration:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){switch(r.shape.type){case"alias":{let u=w8({fieldName:e,typeDeclarations:t,typeReference:r.shape.aliasOf,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure")return u;let{example:f,jsonExample:d}=u;return{type:"success",example:OD.alias({value:f}),jsonExample:d}}case"enum":{let u=r.shape.values[0];return u==null?{type:"failure",message:"No enum values present"}:{type:"success",example:OD.enum({value:u.name}),jsonExample:u.name.wireValue}}case"object":{let u=yHf({fieldName:e,typeDeclaration:r,objectTypeDeclaration:r.shape,typeDeclarations:t,currentDepth:i,maxDepth:n,skipOptionalProperties:a});if(u.type==="failure")return u;let{example:f,jsonExample:d}=u;return{type:"success",example:OD.object(f),jsonExample:d}}case"undiscriminatedUnion":{let u=0;for(let f of r.shape.members){let d=w8({fieldName:e,typeReference:f.type,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:a});if(d.type==="failure"){++u;continue}let{example:c,jsonExample:o}=d;return{type:"success",example:OD.undiscriminatedUnion({index:u,singleUnionType:c}),jsonExample:o}}break}case"union":{let u=r.shape.discriminant;for(let f of r.shape.types){let d=f.shape._visit({noProperties:()=>({type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.noProperties()}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue}}),samePropertiesAsObject:c=>{let o=t[c.typeId];if(o==null)throw new Error(`Failed to find type declaration with id ${c.typeId}`);if(o.shape.type!=="object")throw new Error(`Same properties as object union is not an object ${o.shape.type}`);let l=yHf({currentDepth:i,maxDepth:n,fieldName:e,objectTypeDeclaration:o.shape,typeDeclaration:o,typeDeclarations:t,skipOptionalProperties:a});if(l.type==="failure")return l;let{example:m,jsonExample:O}=l;return{type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.samePropertiesAsObject({typeId:o.name.typeId,object:m})}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue,...typeof O=="object"?O:{}}}},singleProperty:c=>{let o=w8({currentDepth:i+1,maxDepth:n,fieldName:e,typeReference:c.type,typeDeclarations:t,skipOptionalProperties:a});if(o.type==="failure")return o;let{example:l,jsonExample:m}=o;return{type:"success",example:OD.union({discriminant:u,singleUnionType:{wireDiscriminantValue:f.discriminantValue,shape:_3.singleProperty(l)}}),jsonExample:{[u.wireValue]:f.discriminantValue.wireValue,[c.name.wireValue]:m}}},_other:()=>{throw new Error("Encountered unknown union type")}});if(d.type!=="failure")return d}}}return{type:"failure",message:"Failed to generate example for type reference"}}function yHf({fieldName:e,typeDeclaration:t,objectTypeDeclaration:r,typeDeclarations:n,maxDepth:i,currentDepth:a,skipOptionalProperties:u}){let f={},d=[];for(let c of[...r.properties??[],...r.extendedProperties??[]]){let o=w8({fieldName:c.name.wireValue,typeReference:c.valueType,typeDeclarations:n,currentDepth:a+1,maxDepth:i,skipOptionalProperties:u});if(o.type==="failure"&&!GNn({typeDeclarations:n,typeReference:c.valueType}))return{type:"failure",message:`Failed to generate required property ${c.name.wireValue} b/c ${o.message}`};if(o.type==="failure")continue;let{example:l,jsonExample:m}=o;d.push({name:c.name,originalTypeDeclaration:t.name,value:l}),f[c.name.wireValue]=m}return{type:"success",example:OD.object({properties:d}),jsonExample:f}}function w8({fieldName:e,typeReference:t,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){if(i>n)return{type:"failure",message:"Exceeded max depth"};switch(t.type){case"named":{let u=r[t.typeId];if(u==null)throw new Error(`Failed to find type declaration with id ${t.typeId}`);let f=vHf({fieldName:e,typeDeclaration:u,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(f.type==="failure")return f;let{example:d,jsonExample:c}=f;return{type:"success",example:{jsonExample:c,shape:Em.named({shape:d,typeName:u.name})},jsonExample:c}}case"container":{let u=hHf({fieldName:e,containerType:t.container,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure"){let{example:c,jsonExample:o}=g4r({containerType:t.container});return{type:"success",example:{jsonExample:o,shape:Em.container(c)},jsonExample:o}}let{example:f,jsonExample:d}=u;return{type:"success",example:{jsonExample:d,shape:Em.container(f)},jsonExample:d}}case"primitive":{let{jsonExample:u,example:f}=_Hf({fieldName:e,primitiveType:t.primitive});return{type:"success",example:{jsonExample:u,shape:Em.primitive(f)},jsonExample:u}}case"unknown":{let u={key:"value"};return{type:"success",example:{jsonExample:u,shape:Em.unknown(u)},jsonExample:u}}}}var bHf=Jo(Ayu(),1);function dbi({ir:e,endpoint:t,service:r,typeDeclarations:n,skipOptionalRequestProperties:i,generationResponse:a}){let u={name:void 0,endpointHeaders:[],endpointPathParameters:[],queryParameters:[],servicePathParameters:[],serviceHeaders:[],rootPathParameters:[],request:void 0,response:g7.ok(JN.body(void 0)),docs:void 0},f=[{params:t.pathParameters,add:c=>u.endpointPathParameters.push(c)},{params:r.pathParameters,add:c=>u.servicePathParameters.push(c)},{params:e.pathParameters,add:c=>u.rootPathParameters.push(c)}];for(let c of f)for(let o of c.params){let l=w8({fieldName:o.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:o.valueType,skipOptionalProperties:i});if(l.type==="failure")return l;let{example:m}=l;c.add({name:o.name,value:m})}for(let c of t.queryParameters){if(i&&GNn({typeDeclarations:n,typeReference:c.valueType}))continue;let o=w8({fieldName:c.name.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:c.valueType,skipOptionalProperties:i});if(o.type==="failure")return o;let{example:l}=o;u.queryParameters.push({name:c.name,shape:c.allowMultiple?l8.exploded():l8.single(),value:l})}let d=[{params:t.headers,add:c=>u.endpointHeaders.push(c)},{params:r.headers,add:c=>u.serviceHeaders.push(c)}];for(let c of d)for(let o of c.params){if(i&&GNn({typeDeclarations:n,typeReference:o.valueType}))continue;let l=w8({fieldName:o.name.name.originalName,currentDepth:0,maxDepth:1,typeDeclarations:n,typeReference:o.valueType,skipOptionalProperties:i});if(l.type==="failure")return l;let{example:m}=l;c.add({name:o.name,value:m})}if(t.requestBody!=null)switch(t.requestBody.type){case"bytes":return{type:"failure",message:"Bytes request unsupported"};case"fileUpload":return{type:"failure",message:"File upload unsupported"};case"inlinedRequestBody":{let c={},o=[];for(let l of[...t.requestBody.properties??[],...t.requestBody.extendedProperties??[]]){let m=w8({fieldName:l.name.wireValue,typeReference:l.valueType,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});if(m.type==="failure"&&!GNn({typeDeclarations:n,typeReference:l.valueType}))return{type:"failure",message:`Failed to generate required property ${l.name.wireValue} b/c ${m.message}`};if(m.type==="failure")continue;let{example:O,jsonExample:j}=m;o.push({name:l.name,originalTypeDeclaration:void 0,value:O}),c[l.name.wireValue]=j}u.request=VQ.inlinedRequestBody({jsonExample:c,properties:o});break}case"reference":{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.requestBody.requestBodyType,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.request=VQ.reference(o);break}default:uc(t.requestBody)}if(a.type==="success"&&t.response?.body!=null)switch(t.response.body.type){case"fileDownload":return{type:"failure",message:"File download unsupported"};case"json":{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.value.responseBodyType,skipOptionalProperties:!1});if(c.type==="failure")return c;let{example:o,jsonExample:l}=c;u.response=g7.ok(JN.body({...o,jsonExample:l}));break}case"streamParameter":return{type:"failure",message:"Stream parameter unsupported"};case"streaming":return{type:"failure",message:"Streaming unsupported"};case"text":return{type:"failure",message:"Text unsupported"};default:uc(t.response.body)}else if(a.type==="error")if(a.declaration.type==null)u.response=g7.error({body:void 0,error:a.declaration.name});else{let c=w8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:a.declaration.type,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.response=g7.error({body:o,error:a.declaration.name})}return{type:"success",example:{id:(0,bHf.default)(u),url:avw(t,u),...u},jsonExample:void 0}}function avw(e,t){let r={};[...t.rootPathParameters,...t.servicePathParameters,...t.endpointPathParameters].forEach(i=>{let a=i.value.jsonExample,u=typeof a=="string"?a:JSON.stringify(a);r[i.name.originalName]=u});let n=e.fullPath.head+e.fullPath.parts.map(i=>r[i.pathParameter]+i.tail).join("");return n.startsWith("/")||n===""?n:`/${n}`}async function EW({fdrApiDefinitionId:e,workspace:t,generationLanguage:r,keywords:n,smartCasing:i,disableExamples:a,includeOptionalRequestPropertyExamples:u,audiences:f,readme:d,packageName:c,version:o,context:l}){let m=Y8t({generationLanguage:r,keywords:n,smartCasing:i}),O=new vSa(f),j=WSr({casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents}),A=(t.definition.rootApiFile.contents.errors??[]).map(ar=>({error:y4r({errorName:ar,file:j}),docs:void 0})),T=new oA(t),B=new yrn(t),F=new gSa(T,B),C=new vrn(t),N=new Qwe(T),U=new R2t,re=new OSa(l,t),ge={fdrApiDefinitionId:e,apiVersion:await WWf({file:j,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:m.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await iSa(t.definition.rootApiFile.contents.docs),auth:await VWf({rawApiFileSchema:t.definition.rootApiFile.contents,file:j,propertyResolver:F,endpointResolver:B}),headers:t.definition.rootApiFile.contents.headers!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents.headers).map(([ar,mn])=>Hxe({headerKey:ar,header:mn,file:j}))):[],idempotencyHeaders:t.definition.rootApiFile.contents["idempotency-headers"]!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents["idempotency-headers"]).map(([ar,mn])=>Hxe({headerKey:ar,header:mn,file:j}))):[],types:{},errors:{},services:{},constants:xWf(m),environments:_Eu({casingsGenerator:m,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:$Wf(t.definition.rootApiFile.contents["error-discrimination"],j),basePath:t.definition.rootApiFile.contents["base-path"]!=null?Vxe(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await JNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:j,location:bTe.Root,variableResolver:U}),variables:t.definition.rootApiFile.contents.variables!=null?Object.entries(t.definition.rootApiFile.contents.variables).map(([ar,mn])=>({docs:typeof mn!="string"?mn.docs:void 0,id:ar,name:j.casingsGenerator.generateName(ar),type:j.parseTypeReference(mn)})):[],serviceTypeReferenceInfo:{typesReferencedOnlyByService:{},sharedTypes:[]},webhookGroups:{},websocketChannels:{},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0},X=new bSa,k=async ar=>{X.addSubpackage(ar.fernFilepath),await nP(ar.definitionFile,{imports:Bc,docs:mn=>{mn!=null&&X.addDocs(ar.fernFilepath,mn)},types:async mn=>{if(mn!=null)for(let[On,Ut]of Object.entries(mn)){if(yTe(On))continue;let kt=await nHf({typeName:On,typeDeclaration:Ut,file:ar,typeResolver:T,exampleResolver:N,sourceResolver:re,workspace:t}),Yr=kt.typeDeclaration;a&&(Yr.userProvidedExamples=[],Yr.autogeneratedExamples=[]);let an=kt.descendantFilepaths,Ai=PP.generateTypeId(Yr.name);ge.types[Ai]=Yr,X.addType(Ai,Yr),O.addType({declaredTypeName:Yr.name,descendantTypeIds:Yr.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:kt.propertiesByAudience,descendantFilepaths:an}),O.markTypeForAudiences(Yr.name,RVf(Ut))}},errors:mn=>{if(mn==null)return;if(t.definition.rootApiFile.contents["error-discrimination"]==null)throw new Error("error-discrimination is missing in api.yml but there are declared errors.");for(let[Ut,kt]of Object.entries(mn)){let Yr=QWf({errorName:Ut,errorDeclaration:kt,file:ar,typeResolver:T,exampleResolver:N,workspace:t}),an=PP.generateErrorId(Yr.name);ge.errors[an]=Yr,X.addError(an,Yr),O.addError(Yr)}},service:async mn=>{if(mn==null)return;let On=await TWf({rootDefaultUrl:ar.defaultUrl??t.definition.rootApiFile.contents["default-url"],rootPathParameters:ge.pathParameters,serviceDefinition:mn,file:ar,errorResolver:C,typeResolver:T,propertyResolver:F,exampleResolver:N,sourceResolver:re,globalErrors:A,variableResolver:U,workspace:t}),Ut=PP.generateServiceId(On.name);ge.services[Ut]=On,X.addService(Ut,On);let kt={};On.endpoints.forEach(Yr=>{a&&(Yr.autogeneratedExamples=[],Yr.userSpecifiedExamples=[]);let an=mn.endpoints[Yr.name.originalName];O.addEndpoint(On,Yr,an),kt[Yr.name.originalName]=Yr}),mn.audiences!=null&&O.markEndpointForAudience(On.name,On.endpoints,mn.audiences),Object.entries(mn.endpoints).map(([Yr,an])=>{let Ai=kt[Yr];Ai!=null&&an.audiences!=null&&O.markEndpointForAudience(On.name,[Ai],an.audiences)})},webhooks:async mn=>{if(mn==null)return;let On=PP.generateWebhookGroupId(ar.fernFilepath),Ut=await YWf({webhooks:mn,file:ar,typeResolver:T,exampleResolver:N,workspace:t}),kt={};for(let Yr of Ut)kt[Yr.name.originalName]=Yr;Object.entries(mn).forEach(([Yr,an])=>{let Ai=kt[Yr];Ai!=null&&(O.addWebhook(ar,Ai,an),an.audiences!=null&&O.markWebhookForAudiences(ar,Ai,an.audiences))}),ge.webhookGroups[On]=Ut,X.addWebhookGroup(On,ar.fernFilepath)},channel:async mn=>{if(mn==null)return;let On=PP.generateWebSocketChannelId(ar.fernFilepath),Ut=await HWf({channel:mn,file:ar,variableResolver:U,typeResolver:T,exampleResolver:N,workspace:t});ge.websocketChannels!=null&&(ge.websocketChannels[On]=Ut,X.addWebSocketChannel(On,ar.fernFilepath))}})};await D3(t,async(ar,mn,On)=>{await k($m({relativeFilepath:ar,definitionFile:mn,casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents,defaultUrl:On.defaultUrl}))}),await den(t,async(ar,mn)=>{if(mn.navigation!=null)if(typeof mn.navigation=="string")X.addPackageRedirection({from:Fne({relativeFilepath:ar,casingsGenerator:m}),to:Fne({relativeFilepath:Wl(C0(ar),ls.of(mn.navigation)),casingsGenerator:m})});else{let On=mn.navigation.map(Ut=>PP.generateSubpackageId(Fne({relativeFilepath:Wl(C0(ar),ls.of(Ut)),casingsGenerator:m})));ar===mD?X.sortRootPackage(On):X.sortSubpackage(PP.generateSubpackageId(Fne({relativeFilepath:ar,casingsGenerator:m})),On)}}),ge.serviceTypeReferenceInfo=uvw(O);let xe=a?ge:ovw(ge,l,!u),vt=t.definition.rootApiFile.contents,yt=_Eu({casingsGenerator:m,rawApiFileSchema:vt}),St=yt?.environments._visit({singleBaseUrl:ar=>ar.environments.filter(mn=>PSa(mn.id,vt.environments)!=null).length===0,multipleBaseUrls:ar=>ar.environments.filter(mn=>PSa(mn.id,vt.environments)!=null).length===0,_other:()=>!1});yt?.environments.environments.forEach(ar=>{O.markEnvironmentForAudiences(ar,PSa(ar.id,vt.environments)??[],St)});let Ft=O.hasNoAudiences()?void 0:O.build(),Zt=svw(xe,Ft),Vt=t.definition.rootApiFile.contents.auth!=null&&Object.values(Zt.services).every(ar=>ar.endpoints.every(mn=>mn.auth)),cr=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.response?.body?.type==="streaming")),Wr=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.pagination!=null)),gn=Object.values(Zt.services).some(ar=>ar.endpoints.some(mn=>mn.response?.body?.type==="fileDownload")),Kt=d!=null?KWf({readme:d,services:ge.services}):void 0,{types:Mr,services:Mn}=aHf(Zt);return{...Zt,...X.build(Ft),types:Mr,services:Mn,sdkConfig:{isAuthMandatory:Vt,hasStreamingEndpoints:cr,hasPaginatedEndpoints:Wr,hasFileDownloadEndpoints:gn,platformHeaders:{language:"X-Fern-Language",sdkName:"X-Fern-SDK-Name",sdkVersion:"X-Fern-SDK-Version",userAgent:o!=null&&c!=null?{header:"User-Agent",value:`${c}/${o}`}:void 0}},readmeConfig:Kt}}function ovw(e,t,r){for(let[n,i]of Object.entries(e.services))for(let a of i.endpoints){t.logger.debug(`Generating example for ${a.id}`);let u=dbi({ir:e,service:i,endpoint:a,typeDeclarations:e.types,skipOptionalRequestProperties:r??!0,generationResponse:{type:"success"}});if(u.type==="failure"){t.logger.debug(`Failed to generate example for ${a.id}. ${u.message}`);continue}let{example:f}=u;a.autogeneratedExamples=[{example:f}]}return e}function uvw(e){let t={},r=[],n=e.getTypesReferencedByService();for(let[i,a]of Object.entries(n)){if(a.size===1){let u=a.values().next().value;t[u]===void 0&&(t[u]=[]),t[u]?.push(i);continue}r.push(i)}return{typesReferencedOnlyByService:t,sharedTypes:r}}function svw(e,t){if(t==null)return e;let r=nYr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>lHf({filteredIr:t,exampleType:c})).filter(c=>c!==void 0),f.shape.type==="object"){for(let c of f.shape.properties)t.hasProperty(u,c.name.wireValue)&&d.push(c);return[u,{...f,shape:jC.object({...f.shape,properties:d})}]}return[u,f]})),i=Object.fromEntries(Object.entries(e.webhookGroups).map(([u,f])=>{let d=f.filter(c=>t.hasWebhook(c)).map(c=>{let o=c.id;return c.payload.type==="inlinedPayload"&&o!=null&&(c.payload={...c.payload,properties:c.payload.properties.filter(l=>t.hasWebhookPayloadProperty(o,l.name.wireValue))}),c});return[u,d]})),a=e.environments;if(a){switch(a.environments.type){case"singleBaseUrl":{a.environments.environments=a.environments.environments.filter(u=>t.hasEnvironmentId(u.id));break}case"multipleBaseUrls":{a.environments.environments=a.environments.environments.filter(u=>t.hasEnvironmentId(u.id));break}}a.defaultEnvironment&&(t.hasEnvironmentId(a.defaultEnvironment)||(a.defaultEnvironment=void 0))}return{...e,environments:a,types:n,errors:nYr(e.errors,u=>t.hasError(u)),services:Vh(nYr(e.services,u=>t.hasService(u)),u=>({...u,endpoints:u.endpoints.filter(f=>t.hasEndpoint(f)).map(f=>(f.autogeneratedExamples=f.autogeneratedExamples.map(d=>({...d,example:OEu({filteredIr:t,example:d.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(d=>({...d,example:d.example!=null?OEu({filteredIr:t,example:d.example}):void 0})),f.queryParameters.length>0&&(f.queryParameters=f.queryParameters.filter(d=>t.hasQueryParameter(f.id,d.name.wireValue))),f.requestBody?.type==="inlinedRequestBody"?{...f,requestBody:{...f.requestBody,properties:f.requestBody.properties.filter(d=>t.hasRequestProperty(f.id,d.name.wireValue))}}:f))})),webhookGroups:i,serviceTypeReferenceInfo:cvw(e.serviceTypeReferenceInfo,t)}}function cvw(e,t){if(t==null)return e;let r={};return Object.entries(e.typesReferencedOnlyByService).forEach(([n,i])=>{t.hasServiceId(n)&&(r[n]=i.filter(a=>t.hasTypeId(a)))}),{sharedTypes:e.sharedTypes.filter(n=>t.hasTypeId(n)),typesReferencedOnlyByService:r}}var MHf=Jo(ZDa(),1),THf=Jo(kDa(),1),SSa=require("fs/promises"),xHf=Jo(W1a(),1);function k8t(e){return typeof e.subpackageId=="string"}function Gwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function brn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var PEu="__package__",m4r=class e{api;context;static create(t,r){return new e(t,r)}#e=new Map;#t=new Map;#n=new Map;#i=new Map;#r=new Map;#a=new Map;#o=new Map;#f=new Map;#c=new Map;#s=new Map;#u=new Map;static getSubpackageId(t){return k8t(t)?t.subpackageId:PEu}getSubpackageByIdOrLocator(t){if(t==null)return;let r=j8.SubpackageId(t);return r===PEu?this.api.rootPackage:this.api.subpackages[r]??this.#u.get(r)}resolveSubpackage(t){if(t!=null){for(;t?.pointsTo!=null;)t=this.api.subpackages[t.pointsTo];return t}}constructor(t,r){this.api=t,this.context=r,[t.rootPackage,...Object.values(t.subpackages)].forEach(n=>{let i=j8.SubpackageId(e.getSubpackageId(n)),a={endpoints:new Map,webSockets:new Map,webhooks:new Map};this.#o.set(i,a),n.endpoints.forEach(u=>{a.endpoints.set(u.id,u);let f=e.createEndpointId(u,i);this.#e.set(f,u);let d=[],c=[u.method];u.response?.type.type==="stream"&&c.push("STREAM"),c.forEach(o=>{d.push(`${o} ${Gwe(u.path.parts)}`),d.push(`${o} ${brn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Gwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,brn(u.path.parts))}`);let m=gHf(l);m!=null&&(d.push(`${o} ${oP(m,Gwe(u.path.parts))}`),d.push(`${o} ${oP(m,brn(u.path.parts))}`))})}),d.forEach(o=>{this.context?.logger.debug(`Registering endpoint locator: ${o}`),this.#f.set(o,u)})}),n.websockets.forEach(u=>{a.webSockets.set(u.id,u);let f=e.createWebSocketId(u,i);this.#t.set(f,u);let d=[];["GET","WSS"].forEach(o=>{d.push(`${o} ${Gwe(u.path.parts)}`),d.push(`${o} ${brn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Gwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,brn(u.path.parts))}`);let m=gHf(l);m!=null&&(d.push(`${o} ${oP(m,Gwe(u.path.parts))}`),d.push(`${o} ${oP(m,brn(u.path.parts))}`))})}),d.forEach(o=>{this.context?.logger.debug(`Registering websocket locator: ${o}`),this.#c.set(o,u)})}),n.webhooks.forEach(u=>{a.webhooks.set(u.id,u),this.#n.set(e.createWebhookId(u,i),u)})}),this.#e.forEach((n,i)=>{this.#i.set(n,i)}),this.#t.forEach((n,i)=>{this.#r.set(n,i)}),this.#n.forEach((n,i)=>{this.#a.set(n,i)}),this.#d(t.rootPackage,[])}#d(t,r){if(t==null)return;let n=k8t(t)?[...r,t.name]:r,i=n.length===0?[PEu]:n;if([i.join("."),i.join("/"),`${i.join(".")}.yml`].forEach(u=>{this.context?.logger.debug(`Registering subpackage locator: ${u}`),this.#u.set(u,t)}),t.pointsTo!=null)return this.#d(this.api.subpackages[t.pointsTo],n);t.endpoints.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering endpoint locator: ${c}`),this.#f.set(c,u)})}),t.websockets.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering websocket locator: ${c}`),this.#c.set(c,u)})}),t.webhooks.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{this.context?.logger.debug(`Registering webhook locator: ${c}`),this.#s.set(c,u)})}),t.subpackages.forEach(u=>{this.#d(this.api.subpackages[u],n)})}get endpoints(){return this.#e}get webSockets(){return this.#t}get webhooks(){return this.#n}get endpointsByLocator(){return this.#f}get webSocketsByLocator(){return this.#c}get webhooksByLocator(){return this.#s}get subpackages(){return this.#o}get subpackagesByLocator(){return this.#u}getEndpointId(t){return this.#i.get(t)}getWebSocketId(t){return this.#r.get(t)}getWebhookId(t){return this.#a.get(t)}static createEndpointId(t,r){return vc.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return vc.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return vc.WebhookId(`${r}.${t.id}`)}};function gHf(e){if(e!=null){if(e.baseUrl.startsWith("/"))return e.baseUrl;if(e.baseUrl.startsWith("http")||e.baseUrl.startsWith("ws"))try{return new URL(e.baseUrl).pathname}catch{return}}}var $Nn=Jo(ZDa(),1),OHf=Jo(kDa(),1);function mHf(e){let t=e.split(".")[0];if(t==null)return;let n=/(^\d{1,4})-(\d{1,2})-(\d{1,4})/.exec(t)?.[0];if(n!=null)try{return new Date(n)}catch{}}$Nn.default.extend(OHf.default);var lvw="Changelog",fvw=["summary","index","overview"],grn=class{markdownToFullSlug;changelogFiles;docsWorkspace;idgen;constructor(t,r,n,i){this.markdownToFullSlug=t,this.changelogFiles=r,this.docsWorkspace=n,this.idgen=i}toChangelogNode(t){let r=t.title??lvw,n=[],i;for(let l of this.changelogFiles??[]){let m=oUo(l.split("/"));if(m==null)continue;let O=mHf(m);if(O==null){let A=m.split(".")[0]?.toLowerCase();A!=null&&fvw.includes(A)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:vc.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?this.markdownToFullSlug.get(i)?.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??b9(r)}),u=n.map(l=>{let m=$Nn.default.utc(l.date);return{id:this.idgen.get(l.pageId),type:"changelogEntry",title:m.format("MMMM D, YYYY"),slug:a.apply({fullSlug:this.markdownToFullSlug.get(l.absoluteFilepath)?.split("/"),urlSlug:m.format("YYYY/M/D")}).get(),icon:void 0,hidden:void 0,date:l.date.toISOString(),pageId:l.pageId,noindex:void 0,authed:void 0,viewers:void 0,orphaned:void 0}}),f=jEu(u,l=>l.date,"desc"),d=i!=null?vc.PageId(this.toRelativeFilepath(i)):void 0,c=this.idgen.get(d??"changelog"),o=this.groupByYear(c,f,a);return{id:c,type:"changelog",title:r,slug:a.get(),icon:t.icon,hidden:t.hidden,children:o,overviewPageId:d,noindex:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}orUndefined(){return this.changelogFiles!=null&&this.changelogFiles.length>0?this:void 0}groupByYear(t,r,n){let i=new Map;for(let a of r){let u=$Nn.default.utc(a.date).year(),f=i.get(u)??[];f.push(a),i.set(u,f)}return jEu(Array.from(i.entries()).map(([a,u])=>{let f=n.append(a.toString()).get(),d=this.idgen.get(`${t}/year/${a}`);return{id:d,type:"changelogYear",title:a.toString(),year:a,slug:f,icon:void 0,hidden:void 0,children:this.groupByMonth(d,u,n),authed:void 0,viewers:void 0,orphaned:void 0}}),"year","desc")}groupByMonth(t,r,n){let i=new Map;for(let a of r){let u=$Nn.default.utc(a.date).month()+1,f=i.get(u)??[];f.push(a),i.set(u,f)}return jEu(Array.from(i.entries()).map(([a,u])=>{let f=(0,$Nn.default)(new Date(0,a-1));return{id:this.idgen.get(`${t}/month/${a}`),type:"changelogMonth",title:f.format("MMMM YYYY"),month:a,slug:n.append(a.toString()).get(),icon:void 0,hidden:void 0,children:u,authed:void 0,viewers:void 0,orphaned:void 0}}),"month","desc")}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}};function jEu(e,t,r="asc"){return e.concat().sort((n,i)=>{let a=typeof t=="function"?t(n):n[t],u=typeof t=="function"?t(i):i[t];return a<u?r==="asc"?-1:1:a>u?r==="asc"?1:-1:0})}var jSa=class{apiSection;workspace;docsWorkspace;taskContext;markdownFilesToFullSlugs;apiDefinitionId;#e;#t=new Set;#n=new Set;#i=new Set;#r=new Set;#a=new Map;#o=[];#f;#c;#s;disableEndpointPairs;constructor(t,r,n,i,a,u,f,d){this.apiSection=t,this.workspace=i,this.docsWorkspace=a,this.taskContext=u,this.markdownFilesToFullSlugs=f,this.disableEndpointPairs=a.config.experimental?.disableStreamToggle??!1,this.apiDefinitionId=vc.V1.ApiDefinitionId(r.id),this.#e=m4r.create(r,u),this.#s=d,this.#f=this.apiSection.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(this.apiSection.overviewAbsolutePath)):void 0;let c=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;this.#c=n.apply({fullSlug:c?.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??b9(this.apiSection.title)}),this.apiSection.navigation!=null&&(this.#o=this.#u(this.apiSection.navigation,this.#e.api.rootPackage,this.#c)),this.#o=this.#y(this.#o.map(o=>this.#g(o)),this.#w(this.#e.api.rootPackage,this.#c))}get(){let t=vc.V1.followRedirects(this.#o),r=new grn(this.markdownFilesToFullSlugs,this.workspace.changelog?.files.map(n=>n.absoluteFilepath),this.docsWorkspace,this.#s).orUndefined();return{id:this.#s.get(this.apiDefinitionId),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:this.#f,paginated:this.apiSection.paginated,slug:this.#c.get(),icon:this.apiSection.icon,hidden:this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:r?.toChangelogNode({parentSlug:this.#c,viewers:void 0}),children:this.#o,availability:void 0,pointsTo:t,noindex:void 0,playground:this.#b(this.apiSection.playground),authed:void 0,viewers:this.apiSection.viewers,orphaned:this.apiSection.orphaned}}#u(t,r,n){r=this.#e.resolveSubpackage(r);let i=r!=null?m4r.getSubpackageId(r):void 0;return t.map(a=>_Da(a)._visit({link:u=>({id:this.#s.get(u.url),type:"link",title:u.text,icon:u.icon,url:vc.Url(u.url)}),page:u=>this.#d(u,n),package:u=>this.#v(u,n),section:u=>this.#_(u,n),item:({value:u})=>this.#p(u,i,n),endpoint:u=>this.#P(u,i,n)})).filter(YA)}#d(t,r){let n=vc.V1.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/"),urlSlug:t.slug??b9(t.title)});return{id:this.#s.get(n),type:"page",pageId:n,title:t.title,slug:i.get(),icon:t.icon,hidden:t.hidden,noindex:t.noindex,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}#v(t,r){let n=t.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,i=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let u=m4r.getSubpackageId(a),f=this.#s.get(n??`${this.apiDefinitionId}:${u}`);this.#r.has(u)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${u}`),this.#r.add(u),this.#a.set(f,[u]);let d=t.slug??(k8t(a)?a.urlSlug:this.apiSection.slug??b9(this.apiSection.title)),c=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:d}),o=this.#u(t.contents,a,c);return{id:f,type:"apiPackage",children:o,title:t.title??(k8t(a)?a.displayName??trn(a.name):this.apiSection.title),slug:c.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}else{this.taskContext.logger.warn(`Subpackage ${t.package} not found in ${this.apiDefinitionId}, treating it as a section`);let u=t.slug??b9(t.package),f=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),d=this.#u(t.contents,void 0,f);return{id:this.#s.get(n??`${this.apiDefinitionId}:${b9(t.package)}`),type:"apiPackage",children:d,title:t.title??t.package,slug:f.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}}#_(t,r){let n=t.overviewAbsolutePath!=null?vc.V1.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,i=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,a=this.#s.get(n??i??r.get()),u=t.referencedSubpackages.map(o=>{let l=this.#e.getSubpackageByIdOrLocator(o);return l!=null?m4r.getSubpackageId(l):void 0}).filter(o=>(o==null&&this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`),o!=null)).filter(YA);this.#a.set(a,u),u.forEach(o=>{this.#r.has(o)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${o}`),this.#r.add(o)});let f=t.slug??b9(t.title),d=r.apply({fullSlug:i?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:f}),c=this.#u(t.contents,void 0,d);return{id:a,type:"apiPackage",children:c,title:t.title,slug:d.get(),icon:t.icon,hidden:t.hidden,overviewPageId:n,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}#p(t,r,n){t=t.trim();let i=this.#e.getSubpackageByIdOrLocator(t);if(i!=null){let a=m4r.getSubpackageId(i),u=this.#s.get(`${this.apiDefinitionId}:${a}`);this.#r.has(a)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${a}`),this.#r.add(a),this.#a.set(u,[a]);let f=k8t(i)?i.urlSlug:"",d=n.apply({urlSlug:f});return{id:u,type:"apiPackage",children:[],title:k8t(i)?i.displayName??trn(i.name):this.apiSection.title,slug:d.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0}}return this.#P({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,playground:void 0,viewers:void 0,orphaned:void 0},r,n)}#P(t,r,n){let i=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.endpoints.get(j8.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(i!=null){let f=this.#e.getEndpointId(i);if(f==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);this.#t.has(f)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${f}`),this.#t.add(f);let d=t.slug!=null?n.append(t.slug):n.apply(i);return{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"endpoint",method:i.method,endpointId:f,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:t.title??i.name??Gwe(i.path.parts),slug:d.get(),icon:t.icon,hidden:t.hidden,playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}let a=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.webSockets.get(j8.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(a!=null){let f=this.#e.getWebSocketId(a);if(f==null)throw new Error(`Expected WebSocket ID for ${a.id}. Got undefined.`);return this.#n.has(f)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${f}`),this.#n.add(f),{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"webSocket",webSocketId:f,title:t.title??a.name??Gwe(a.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(a.availability),playground:this.#b(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}let u=(r!=null?this.#e.subpackages.get(j8.SubpackageId(r))?.webhooks.get(j8.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(vc.V1.WebhookId(t.endpoint));if(u!=null){let f=this.#e.getWebhookId(u);if(f==null)throw new Error(`Expected Webhook ID for ${u.id}. Got undefined.`);return this.#i.has(f)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${f}`),this.#i.add(f),{id:this.#s.get(`${this.apiDefinitionId}:${f}`),type:"webhook",webhookId:f,method:u.method,title:t.title??u.name??oP("/",...u.path),slug:(t.slug!=null?n.append(t.slug):n.apply(u)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#y(t,r){return this.mergeEndpointPairs([...t,...r]).filter(n=>n.type==="apiPackage"?n.children.length>0:!0)}#g(t){if(t.type==="apiPackage"){let r=vc.V1.SlugGenerator.init(t.slug),i=(this.#a.get(t.id)??[]).flatMap(f=>this.#m(f,r)),a=t.children.map(f=>this.#g(f)),u=this.#y(a,i);return{...t,children:u,pointsTo:void 0}}return t}#w(t,r){let n=[];return t.endpoints.forEach(i=>{let a=this.#e.getEndpointId(i);if(a==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);if(this.#t.has(a))return;let u=r.apply(i);n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:i.name??Gwe(i.path.parts),slug:u.get(),icon:void 0,hidden:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.websockets.forEach(i=>{let a=this.#e.getWebSocketId(i);if(a==null)throw new Error(`Expected WebSocket ID for ${i.id}. Got undefined.`);this.#n.has(a)||n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??Gwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:vc.V1.convertAvailability(i.availability),playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.webhooks.forEach(i=>{let a=this.#e.getWebhookId(i);if(a==null)throw new Error(`Expected Webhook ID for ${i.id}. Got undefined.`);this.#i.has(a)||n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??trn(i.id),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),t.subpackages.forEach(i=>{if(this.#r.has(i))return;let a=this.#e.getSubpackageByIdOrLocator(i);if(a==null){this.taskContext.logger.error(`Subpackage ${i} not found in ${this.apiDefinitionId}`);return}let u=k8t(a)?r.apply(a):r,f=this.#m(i,u);f.length>0&&n.push({id:vc.V1.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:k8t(a)?a.displayName??trn(a.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0})}),n=this.mergeEndpointPairs(n),this.apiSection.alphabetized&&(n=n.sort((i,a)=>{let u=i.type==="endpointPair"?i.nonStream.title:i.title,f=a.type==="endpointPair"?a.nonStream.title:a.title;return u.localeCompare(f)})),n}#m(t,r){let n=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return n==null?(this.taskContext.logger.error(`Subpackage ${t} not found in ${this.apiDefinitionId}`),[]):this.#w(n,r)}#b(t){if(t)return{environments:t.environments!=null&&t.environments.length>0?t.environments.map(r=>vc.V1.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:vc.V1.Url(t.button.href)}:void 0,"limit-websocket-messages-per-connection":t.limitWebsocketMessagesPerConnection!=null?t.limitWebsocketMessagesPerConnection:void 0}}mergeEndpointPairs(t){if(this.disableEndpointPairs)return t;let r=[],n=new Map;return t.forEach(i=>{if(i.type!=="endpoint"){r.push(i);return}let a=this.#e.endpoints.get(i.endpointId);if(a==null)throw new Error(`Endpoint ${i.endpointId} not found`);let u=`${a.method} ${Gwe(a.path.parts)}`,f=n.get(u);if(n.set(u,i),f==null||f.isResponseStream===i.isResponseStream){r.push(i);return}let d=r.indexOf(f),c=i.isResponseStream?i:f,o=i.isResponseStream?f:i,l={id:vc.V1.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}};var PHf=Jo(require("crypto"),1);function dvw(e){return PHf.default.createHash("sha256").update(e).digest("hex")}var wSa=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#n(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),dvw(r===0?t:`${t}-${r}`)}#i(t){let r=this.#n(t),n=0;for(;this.#t.has(r);)if(r=this.#n(t),n++,n>100)throw new Error(`Infinite loop detected for id: ${t}`);return r}get(t){return vc.V1.NodeId(this.#i(t))}};function jHf(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0}}var DSa=Jo(cCt(),1);var C1=Jo(cCt(),1);var O4r=Jo(cCt(),1);function wHf(e){return e._visit({alias:t=>({type:"alias",value:TM(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?t.default.name.wireValue:void 0,values:t.values.map(r=>({description:r.docs??void 0,value:r.name.wireValue,availability:SF(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>O4r.FernRegistry.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:O4r.FernRegistry.PropertyKey(r.name.wireValue),valueType:TM(r.valueType),availability:SF(r.availability)})),extraProperties:yvw(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:O4r.FernRegistry.PropertyKey(n.name.wireValue),valueType:TM(n.valueType),availability:SF(n.availability),description:n.docs}));return{type:"discriminatedUnion",discriminant:t.discriminant.wireValue,variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:n.discriminantValue.wireValue,displayName:n.displayName,availability:n.availability!=null?SF(n.availability):void 0,additionalProperties:fd.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[O4r.FernRegistry.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:O4r.FernRegistry.PropertyKey(i.name.wireValue),valueType:TM(i.type),description:void 0,availability:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+n.shape.propertiesType)}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?r.type.name.originalName:void 0,description:r.docs??void 0,type:TM(r.type),availability:void 0}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function TM(e){return e._visit({container:t=>fd.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:TM(r)}),map:({keyType:r,valueType:n})=>({type:"map",keyType:TM(r),valueType:TM(n)}),optional:r=>({type:"optional",itemType:TM(r),defaultValue:void 0}),set:r=>({type:"set",itemType:TM(r)}),literal:r=>fd.types.Literal._visit(r,{boolean:n=>({type:"literal",value:{type:"booleanLiteral",value:n}}),string:n=>({type:"literal",value:{type:"stringLiteral",value:n}}),_other:()=>{throw new Error("Unknown literal type: "+r.type)}}),_other:()=>{throw new Error("Unknown container reference: "+t.type)}}),named:t=>({type:"id",value:O4r.FernRegistry.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:fd.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>_vw(t.v2),float:()=>({type:"double",minimum:22250738585072014e-324,maximum:17976931348623157e292,default:0}),double:()=>hvw(t.v2),string:()=>pvw(t.v2),long:()=>({type:"long",default:0,minimum:void 0,maximum:void 0}),boolean:()=>({type:"boolean",default:!1}),dateTime:()=>({type:"datetime",default:new Date(0).toISOString()}),date:()=>({type:"date",default:new Date(0).toISOString()}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",default:"0"}),bigInteger:()=>({type:"bigInteger",default:BigInt(0).toString()}),uint:()=>({type:"uint"}),uint64:()=>({type:"uint64"}),_other:()=>{throw new Error("Unknown primitive: "+t.v1)}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new Error("Unknown Type reference: "+e.type)}})}function pvw(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",regex:t?.pattern,minLength:t?.minLength,maxLength:t?.maxLength,default:e!=null&&e.type==="string"?e.default:void 0}}function _vw(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.min,maximum:t?.max,default:e!=null&&e.type==="integer"?e.default:void 0}}function hvw(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.min,maximum:t?.max,default:e!=null&&e.type==="double"?e.default:void 0}}function yvw(e){return typeof e=="boolean"?cT.unknown():typeof e=="string"?{type:"id",value:O4r.FernRegistry.TypeId(e),default:void 0}:TM(e)}function DEu(e,t){let r=e.service!=null?t.services[e.service]:void 0,n=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,i=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:r!=null?bvw(r,t):[],webhooks:n!=null?vvw(n):[],websockets:i!=null?[gvw(i,t)]:[],types:e.types.map(a=>C1.FernRegistry.TypeId(a)),subpackages:e.subpackages.map(a=>C1.FernRegistry.api.v1.SubpackageId(a)),pointsTo:e.navigationConfig!=null?C1.FernRegistry.api.v1.SubpackageId(e.navigationConfig.pointsTo):void 0}}function vvw(e){return e.map(t=>({description:t.docs??void 0,id:C1.FernRegistry.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??csi(t.name.originalName),headers:t.headers.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:TM(r.valueType),availability:SF(r.availability)})),payload:Evw(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function bvw(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],a=[];if(n.userSpecifiedExamples.length>0&&i!=null)a.push(...n.userSpecifiedExamples.map(f=>wEu({autogeneratedExample:i,userSpecifiedExample:f,irEndpoint:n,ir:t})));else if(i!=null)a.push(wEu({autogeneratedExample:i,irEndpoint:n,ir:t}));else if(n.response?.body?.type==="fileDownload"){let f=dbi({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(f.type==="success"){let d={...wEu({autogeneratedExample:f,irEndpoint:n,ir:t}),responseBodyV3:{type:"filename",value:"<bytes>"}};a.push(d)}}let u={availability:SF(n.availability??e.availability),auth:n.auth,description:n.docs??void 0,method:jvw(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?mvw({environmentsConfig:t.environments,endpoint:n}):void 0,id:C1.FernRegistry.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??csi(n.name.originalName),path:n.basePath!=null?{pathParameters:n.pathParameters.map(f=>({description:f.docs??void 0,key:C1.FernRegistry.PropertyKey(f.name.originalName),type:TM(f.valueType),availability:void 0})),parts:[...KNn(n.basePath),...KNn(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(f=>({description:f.docs??void 0,key:C1.FernRegistry.PropertyKey(f.name.originalName),type:TM(f.valueType),availability:void 0})),parts:[...t.basePath!=null?KNn(t.basePath):[],...KNn(e.basePath),...KNn(n.path)]},queryParameters:n.queryParameters.map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:TM(f.valueType),availability:SF(f.availability)})),headers:[...e.headers,...n.headers].map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:TM(f.valueType),availability:SF(f.availability)})),request:n.requestBody!=null?wvw(n.requestBody):void 0,response:n.response!=null?Dvw(n.response):void 0,errors:void 0,errorsV2:Svw(n.errors,t),examples:a};r.push(u)}return r}function gvw(e,t){return{auth:e.auth,availability:SF(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?Ovw({environmentsConfig:t.environments,channel:e}):[],id:C1.FernRegistry.WebSocketId(e.name.originalName),name:e.displayName??csi(e.name.originalName),path:{pathParameters:e.pathParameters.map(r=>({description:r.docs??void 0,key:C1.FernRegistry.PropertyKey(r.name.originalName),type:TM(r.valueType),availability:void 0})),parts:KNn(e.path)},headers:e.headers.map(r=>({key:r.name.wireValue,type:TM(r.valueType),description:r.docs,availability:SF(r.availability)})),queryParameters:e.queryParameters.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:TM(r.valueType),availability:SF(r.availability)})),messages:e.messages.map(r=>({type:C1.FernRegistry.api.v1.WebSocketMessageId(r.type),displayName:r.displayName,origin:r.origin,body:Avw(r.body),description:r.docs,availability:SF(r.availability)})),examples:e.examples.map(r=>({name:r.name?.originalName,description:r.docs,path:r.url,pathParameters:r.pathParameters.reduce((n,i)=>(n[C1.FernRegistry.PropertyKey(i.name.originalName)]=i.value.jsonExample,n),{}),queryParameters:r.queryParameters.reduce((n,i)=>(n[i.name.wireValue]=i.value.jsonExample,n),{}),headers:r.headers.reduce((n,i)=>(n[i.name.wireValue]=i.value.jsonExample,n),{}),messages:r.messages.map(n=>({type:C1.FernRegistry.api.v1.WebSocketMessageId(n.type),body:n.body.jsonExample}))}))}}function SF(e){if(e!=null)switch(e.status){case"DEPRECATED":return C1.FernRegistry.Availability.Deprecated;case"PRE_RELEASE":return C1.FernRegistry.Availability.Beta;case"GENERAL_AVAILABILITY":return C1.FernRegistry.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return C1.FernRegistry.Availability.Beta;default:uc(e.status)}}function mvw({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:C1.FernRegistry.EnvironmentId(i.id),baseUrl:i.url}));case"multipleBaseUrls":if(n==null)throw new Error(`Expected endpoint ${t.name.originalName} to have base url.`);return r.environments.map(i=>{let a=i.urls[n];if(a==null)throw new Error(`Expected environment ${i.id} to contain url for ${n}`);return{id:C1.FernRegistry.EnvironmentId(i.id),baseUrl:a}});default:uc(r)}}function Ovw({environmentsConfig:e,channel:t}){let r=e.environments;switch(r.type){case"singleBaseUrl":return r.environments.map(n=>({id:C1.FernRegistry.EnvironmentId(n.id),baseUrl:Pvw(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:uc(r)}}function Pvw(e,t){return e.replace(/^[^:]+/,t)}function jvw(e){return fd.http.HttpMethod._visit(e,{get:()=>C1.FernRegistry.HttpMethod.Get,post:()=>C1.FernRegistry.HttpMethod.Post,put:()=>C1.FernRegistry.HttpMethod.Put,patch:()=>C1.FernRegistry.HttpMethod.Patch,delete:()=>C1.FernRegistry.HttpMethod.Delete,_other:()=>{throw new Error("Unknown http method: "+e)}})}function KNn(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:C1.FernRegistry.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function wvw(e){let t=fd.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??tI.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>C1.FernRegistry.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:C1.FernRegistry.PropertyKey(n.name.wireValue),valueType:TM(n.valueType),availability:SF(n.availability)})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??tI.APPLICATION_JSON,shape:{type:"reference",value:TM(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:r.name.originalName,description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let a=i._visit({file:u=>({type:"file",key:C1.FernRegistry.PropertyKey(u.key.wireValue),isOptional:u.isOptional,contentType:u.contentType,description:void 0,availability:void 0}),fileArray:u=>({type:"fileArray",key:C1.FernRegistry.PropertyKey(u.key.wireValue),isOptional:u.isOptional,contentType:u.contentType,description:void 0,availability:void 0}),_other:()=>{}});if(a!=null)return{type:"file",value:a}},bodyProperty:i=>({type:"bodyProperty",key:C1.FernRegistry.PropertyKey(i.name.wireValue),valueType:TM(i.valueType),contentType:i.contentType,description:i.docs,availability:SF(i.availability)}),_other:()=>{}})).filter(YA)},description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t,description:e.docs}:void 0}function Dvw(e){if(e.body==null)return;let t,r=fd.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:TM(n.responseBodyType)}),text:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:TM(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:TM(n.payload)},terminator:n.terminator}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}});if(r!=null)return{type:r,statusCode:e.statusCode,description:t}}function Svw(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:TM(i.type)},statusCode:i.statusCode,description:i.docs??void 0,name:i.name.name.originalName,availability:void 0,examples:i.examples.map(a=>({name:a.name?.originalName,responseBody:{type:"json",value:a.jsonExample},description:a.docs}))})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let a=[{key:C1.FernRegistry.PropertyKey(t.errorDiscriminationStrategy.discriminant.wireValue),valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}},description:i.docs,availability:void 0}];i.type!=null&&a.push({key:C1.FernRegistry.PropertyKey(t.errorDiscriminationStrategy.contentProperty.wireValue),valueType:TM(i.type),description:i.docs,availability:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:a,extraProperties:void 0},statusCode:i.statusCode,description:i.docs??void 0,availability:void 0,name:i.name.name.originalName,examples:i.examples.map(u=>({name:u.name?.originalName,responseBody:{type:"json",value:u.jsonExample},description:u.docs}))})}}return r}function wEu({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(f=>{let d=f.valueType.type==="container"&&f.valueType.container.type==="literal"?f.valueType.container.literal._visit({boolean:c=>`${c}`,string:c=>c,_other:()=>{}}):void 0;if(d!=null)return{name:f.name,value:{jsonExample:d,shape:fd.ExampleTypeReferenceShape.primitive(fd.ExamplePrimitive.string({original:d}))}}}).filter(YA),a=e?.example??t.example,{codeSamples:u}=e??{codeSamples:[]};return{name:a.name?.originalName,description:a.docs,path:a.url,pathParameters:[...a.rootPathParameters,...a.servicePathParameters,...a.endpointPathParameters].reduce((f,d)=>(f[C1.FernRegistry.PropertyKey(d.name.originalName)]=d.value.jsonExample,f),{}),queryParameters:a.queryParameters.reduce((f,d)=>(f[d.name.wireValue]=d.value.jsonExample,f),{}),headers:[...i,...a.serviceHeaders,...a.endpointHeaders].reduce((f,d)=>(f[d.name.wireValue]=d.value.jsonExample,f),{}),requestBody:a.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>a.request!=null?{type:"json",value:a.request.jsonExample}:void 0,reference:()=>a.request!=null?{type:"json",value:a.request.jsonExample}:void 0,fileUpload:f=>{if(a.request==null)return;let d={};if(bD(a.request.jsonExample)){let c=a.request.jsonExample;for(let o of f.properties)o._visit({file:l=>{let m=c[l.key.wireValue];if(l.type==="file")d[l.key.wireValue]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(l.type==="fileArray"){let O=(Array.isArray(m)?m:[m]).filter(j=>typeof j=="string");d[l.key.wireValue]={type:"filenames",value:O}}},bodyProperty:l=>{d[l.name.wireValue]={type:"json",value:c[l.name.wireValue]}},_other:zqt})}return{type:"form",value:d}},bytes:()=>{},_other:()=>{}}),responseStatusCode:fd.http.ExampleResponse._visit(a.response,{ok:f=>f._visit({body:d=>d!=null?200:204,stream:d=>d.length>0?200:204,sse:d=>d.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+f.type)}}),error:({error:f})=>{let d=n.errors[f.errorId];if(d==null)throw new Error("Cannot find error "+f.errorId);return d.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),responseBody:a.response._visit({ok:f=>f._visit({body:d=>d?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:f=>f.body?.jsonExample,_other:()=>{}}),responseBodyV3:a.response._visit({ok:f=>f._visit({body:d=>d!=null?{type:"json",value:d.jsonExample}:void 0,stream:d=>({type:"stream",value:d.map(c=>c.jsonExample)}),sse:d=>({type:"sse",value:d.map(({event:c,data:o})=>({event:c,data:o.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+f.type)}}),error:f=>f.body!=null?{type:"json",value:f.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),codeSamples:u?.map(f=>uwe._visit(f,{language:d=>({language:d.language,code:d.code,name:d.name?.originalName,description:d.docs??void 0,install:d.install}),sdk:d=>({language:d.sdk,code:d.code,name:d.name?.originalName,description:d.docs??void 0,install:void 0}),_other:()=>{}})).filter(YA)}}function Evw(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>C1.FernRegistry.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:C1.FernRegistry.PropertyKey(t.name.wireValue),valueType:TM(t.valueType),availability:SF(t.availability)})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:TM(e.payloadType)},description:e.docs};default:uc(e)}}function Avw(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>C1.FernRegistry.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:C1.FernRegistry.PropertyKey(t.name.wireValue),valueType:TM(t.valueType),availability:SF(t.availability)})),extraProperties:void 0};case"reference":return{type:"reference",value:TM(e.bodyType)};default:uc(e)}}var SEu=Jo(cCt(),1);function DHf(e,t,r){let n=e.schemes[0];if(e.schemes.length===1&&n!=null)switch(n.type){case"basic":return{type:"basicAuth",passwordName:n.password.originalName,usernameName:n.username.originalName};case"bearer":return{type:"bearerAuth",tokenName:n.token.originalName};case"header":return{type:"header",headerWireValue:n.name.wireValue,nameOverride:n.name.name.originalName,prefix:n.prefix};case"oauth":{let i=n.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(a=>a.originalName).join(".")||"$.body.access_token";return r?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:SEu.FernRegistry.EndpointId(n.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:SEu.FernRegistry.JqString(i),headerName:n.configuration.tokenHeader,tokenPrefix:n.configuration.tokenPrefix}}}:{type:"bearerAuth",tokenName:"token"}}default:uc(n)}}function $we({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:DEu(e.rootPackage,e),auth:DHf(e.auth,e,r),snippetsConfiguration:t,globalHeaders:e.headers.map(i=>({availability:SF(i.availability),description:i.docs??void 0,key:i.name.wireValue,type:TM(i.valueType)})),navigation:void 0};for(let[i,a]of Object.entries(e.types))n.types[DSa.FernRegistry.TypeId(i)]={description:a.docs??void 0,name:a.name.name.originalName,shape:wHf(a.shape),availability:SF(a.availability)};for(let[i,a]of Object.entries(e.subpackages)){let u=a.service!=null?e.services[a.service]:void 0;n.subpackages[DSa.FernRegistry.api.v1.SubpackageId(i)]={subpackageId:DSa.FernRegistry.api.v1.SubpackageId(i),displayName:u?.displayName,name:a.name.originalName,description:a.docs??void 0,...DEu(a,e)}}return n}var EEu=Jo(cCt(),1);async function AEu({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await EW({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,disableExamples:!1,readme:void 0,version:void 0,packageName:void 0,context:r}),d=bZr({token:n.value}),c=$we({ir:f,snippetsConfig:a,playgroundConfig:u});r.logger.debug("Calling registerAPI... ",JSON.stringify(c,void 0,4));let o=await d.api.v1.register.registerApiDefinition({orgId:EEu.FernRegistry.OrgId(e),apiId:EEu.FernRegistry.ApiId(f.apiName.originalName),definition:c});if(o.ok)return r.logger.debug(`Registered API Definition ${o.body.apiDefinitionId}`),{id:o.body.apiDefinitionId,ir:f};switch(o.error.error){case"UnauthorizedError":case"UserNotInOrgError":return r.failAndThrow("You do not have permissions to register the docs. Reach out to support@buildwithfern.com");default:return r.failAndThrow("Failed to register API",o.error)}}var Mvw=new orn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function SHf(e,t,r){return U0i(F0i($we({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0},playgroundConfig:r}),j8.ApiDefinitionId(t),Mvw))}function EHf(e){let t=new Set;return e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(r=>{t.add(r.absolutePath)}),e.js!=null&&e.js.files.forEach(r=>{t.add(r.absolutePath)}),t}function JSr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}MHf.default.extend(THf.default);var Tvw=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),AHf=0,xvw=async({ir:e})=>(AHf++,`${e.apiName.snakeCase.unsafeName}-${AHf}`),QSr=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u=Tvw,f=xvw){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}#e=wSa.init();_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new Error("parsedDocsConfig is not set");return this._parsedDocsConfig}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;async resolve(){this._parsedDocsConfig=await yMe.parseDocsConfiguration({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig}),this.fernWorkspaces.forEach(d=>{d.changelog?.files.forEach(c=>{let o=OC(this.docsWorkspace.absoluteFilePath,c.absoluteFilepath);this.parsedDocsConfig.pages[o]=c.contents})}),this.markdownFilesToFullSlugs=this.getMarkdownFilesToFullSlugs(this.parsedDocsConfig.pages);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=await r1u({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=await n1u({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});let t=EHf(this.parsedDocsConfig);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:o,markdown:l}=q0i(c,{absolutePathToMdx:this.resolveFilepath(d),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath});this.parsedDocsConfig.pages[ls.of(d)]=l;for(let m of o)t.add(m)}let r=Array.from(t).map(d=>({absoluteFilePath:d,relativeFilePath:this.toRelativeFilepath(d)}));(await this.uploadFiles(r)).forEach(d=>{this.collectedFileIds.set(d.absoluteFilePath,d.fileId)});let i=this.getDocsBasePath();for(let[d,c]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[ls.of(d)]=t1u(c,this.collectedFileIds,new Map(Array.from(this.markdownFilesToFullSlugs.entries()).map(([o,l])=>[o,oP(i,l)])),{absolutePathToMdx:this.resolveFilepath(d),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);let a={};Object.entries(this.parsedDocsConfig.pages).forEach(([d,c])=>{let o=qvw(this.editThisPage,d);a[B2t.PageId(d)]={markdown:c,editThisPageUrl:o?B2t.Url(o):void 0}});let u=await this.convertDocsConfiguration(),f={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){let d=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async c=>{let o=iT(this.docsWorkspace.absoluteFilePath,c);(await(0,SSa.stat)(o)).isDirectory()?(await kAe(o,"{js,ts,jsx,tsx,md,mdx}")).forEach(O=>{d.add(O)}):o.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&d.add(o)})),f=Object.fromEntries(await Promise.all([...d].map(async c=>{let o=this.toRelativeFilepath(c),l=(await(0,SSa.readFile)(c)).toString();return[o,l]})))}return{config:u,pages:a,jsFiles:f}}resolveFilepath(t){if(t!=null)return iT(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return OC(this.docsWorkspace.absoluteFilePath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,xHf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(JSr(this.domain)).pathname}async convertDocsConfiguration(){let t=await this.toRootNode();return{title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?B2t.Url(this.parsedDocsConfig.logo?.href):void 0,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(n=>({...n,url:B2t.Url(n.url)})),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:this.parsedDocsConfig.integrations,footerLinks:this.parsedDocsConfig.footerLinks?.map(n=>({...n,value:B2t.Url(n.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:void 0,ga4:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0}}getFernWorkspaceForApiSection(t){if(this.fernWorkspaces.length===1&&this.fernWorkspaces[0]!=null)return this.fernWorkspaces[0];if(t.apiName!=null){let r=this.fernWorkspaces.find(n=>n.workspaceName===t.apiName);if(r!=null)return r}throw new Error("Failed to load API Definition referenced in docs")}async toRootNode(){let t=vc.V1.SlugGenerator.init(vc.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>vc.RoleId(i))}}async toRootChild(t){return PAn(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t)})}toLandingPageNode(t,r){let n=vc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??b9(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:t.icon,hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:void 0}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),a=t!=null?this.toLandingPageNode(t,n):void 0,u=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:a,child:u}}async toVersionedNode(t,r){return{id:this.#e.get("versioned"),type:"versioned",children:await Promise.all(t.versions.map((i,a)=>this.toVersionNode(i,r,a===0)))}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),a=r.setVersionSlug(t.slug??b9(t.version)),u=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,a):await this.toSidebarRootNode(i,t.navigation.items,a);return{type:"version",id:i,versionId:vc.VersionId(t.version),title:t.version,slug:a.get(),child:u,default:n,availability:t.availability!=null?Cvw(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,r):void 0,hidden:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),a=await Promise.all(r.map(f=>this.toNavigationChild(i,f,n))),u=[];return a.forEach(f=>{switch(f.type){case"apiReference":case"section":u.push(f);return;case"changelog":case"link":case"page":{let d=u[u.length-1];d?.type!=="sidebarGroup"&&(d={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},u.push(d)),d.children.push(f);return}default:uc(f)}}),{type:"sidebarRoot",id:i,children:u}}async toNavigationChild(t,r,n){return PAn(r)._visit({page:async i=>this.toPageNode(i,n),apiSection:async i=>this.toApiSectionNode(i,n),section:async i=>this.toSectionNode(t,i,n),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n)})}async toApiSectionNode(t,r){let n=this.getFernWorkspaceForApiSection(t),i=jHf(t.snippetsConfiguration),a=await EW({workspace:n,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,disableExamples:!1,readme:void 0,version:void 0,packageName:void 0,context:this.taskContext}),u=await this.registerApi({ir:a,snippetsConfig:i,playgroundConfig:{oauth:t.playground?.oauth},apiName:t.apiName}),f=SHf(a,u,{oauth:t.playground?.oauth});return new jSa(t,f,r,n,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.#e).get()}async toChangelogNode(t,r){return new grn(this.markdownFilesToFullSlugs,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:t.icon,viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:vc.V1.Url(t.url),icon:t.icon}}async toPageNode(t,r){let n=vc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??b9(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{id:this.#e.get(n),type:"page",slug:i.get(),title:t.title,icon:t.icon,hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:void 0}}async toSectionNode(t,r,n){let i=this.toRelativeFilepath(r.overviewAbsolutePath),a=i?vc.PageId(i):void 0,u=this.#e.get(a??`${t}/section`),f=n.apply({urlSlug:r.slug??b9(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug});return{id:u,type:"section",overviewPageId:a,slug:f.get(),title:r.title,icon:r.icon,collapsed:r.collapsed,hidden:r.hidden,viewers:r.viewers,orphaned:r.orphaned,children:await Promise.all(r.contents.map(d=>this.toNavigationChild(u,d,f))),authed:void 0,pointsTo:void 0,noindex:void 0}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(a=>this.toTabChild(i,a,n)))}}async toTabChild(t,r,n){return PAn(r.child)._visit({link:({href:i})=>this.toTabLinkNode(r,i),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n)})}async toTabChangelogNode(t,r,n){return new grn(this.markdownFilesToFullSlugs,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:t.icon,viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r){return{type:"link",id:this.#e.get(r),title:t.title,url:vc.V1.Url(r),icon:t.icon}}async toTabNode(t,r,n,i){let a=this.#e.get(`${t}/tab`),u=i.apply({urlSlug:r.slug??b9(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:u.get(),icon:r.icon,hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(a,n,u)}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):B2t.FileId(r)}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],a=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(a)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(YA),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:B2t.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return PAn(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:B2t.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function qvw(e,t){if(e?.github==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${JSr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function Cvw(e){switch(e){case"beta":return vc.V1.NavigationV1Availability.Beta;case"deprecated":return vc.V1.NavigationV1Availability.Deprecated;case"ga":return vc.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return vc.V1.NavigationV1Availability.Stable;default:uc(e)}}var Lid=Jo(NHf(),1),Zxu=Jo(SAu(),1),Uid=Jo(require("http"),1),qMa=Jo(require("path"),1);var sKf=require("events"),uEa=Jo(require("fs"),1),Arn=Jo(require("path"),1);var H$f=Jo(require("os"),1),J$f=300,E4r=20,Bbi=1e7,Q$f=H$f.default.platform();var yww=Q$f==="darwin",EAu=Q$f==="win32",A4r=yww||EAu,G$f=3e3,$$f=2e4,AAu=1250;var n5t;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(n5t||(n5t={}));var Ern;(function(e){e.CHANGE="change",e.RENAME="rename"})(Ern||(Ern={}));var Ibi;(function(e){e.CHANGE="change",e.ERROR="error"})(Ibi||(Ibi={}));var nm;(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"})(nm||(nm={}));var KX;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(KX||(KX={}));var vww=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,a=Math.max(r?.maxWait??1/0,t),u,f,d=0,c=0,o=()=>{let N=Date.now(),U=N-d,re=N-c,ge=U>=t||re>=a;return[N,ge]},l=N=>{if(c=N,!u)return;let U=u;u=void 0,e.apply(void 0,U)},m=()=>{F(0)},O=()=>{f&&(m(),l(Date.now()))},j=N=>{if(c=N,n)return l(N)},A=N=>{if(i&&u)return l(N);u=void 0},T=()=>{f=void 0;let[N,U]=o();return U?A(N):B(N)},B=N=>{let U=N-d,re=N-c,ge=t-U,X=a-re,k=Math.min(ge,X);return F(k)},F=N=>{f&&clearTimeout(f),!(N<=0)&&(f=setTimeout(T,N))},C=(...N)=>{let[U,re]=o(),ge=!!f;if(u=N,d=U,(re||!f)&&F(t),re)return ge?l(U):j(U)};return C.cancel=m,C.flush=O,C},nEa=vww;var CAu=Jo(require("fs"),1),aEa=Jo(require("path"),1);var xM=Jo(require("fs"),1),AW=require("util");var GSr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},i5t=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var MAu=Jo(require("process"),1),K$f=MAu.default.getuid?!MAu.default.getuid():!1,Y$f=1e4,Vne=()=>{};var zbi={isChangeErrorOk:e=>{if(!zbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!K$f&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!zbi.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(!zbi.isNodeError(e))throw e;if(!zbi.isChangeErrorOk(e))throw e}},T3=zbi;var TAu=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Y$f,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()}}}}},X$f=new TAu;var $Sr=(e,t)=>function(n){return function i(...a){return X$f.schedule().then(u=>{let f=c=>(u(),c),d=c=>{if(u(),Date.now()>=n)throw c;if(t(c)){let o=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,o)).then(()=>i.apply(void 0,a))}throw c};return e.apply(void 0,a).then(f,d)})}},KSr=(e,t)=>function(n){return function i(...a){try{return e.apply(void 0,a)}catch(u){if(Date.now()>n)throw u;if(t(u))return i.apply(void 0,a);throw u}}};var bww={attempt:{chmod:GSr((0,AW.promisify)(xM.default.chmod),T3.onChangeError),chown:GSr((0,AW.promisify)(xM.default.chown),T3.onChangeError),close:GSr((0,AW.promisify)(xM.default.close),Vne),fsync:GSr((0,AW.promisify)(xM.default.fsync),Vne),mkdir:GSr((0,AW.promisify)(xM.default.mkdir),Vne),realpath:GSr((0,AW.promisify)(xM.default.realpath),Vne),stat:GSr((0,AW.promisify)(xM.default.stat),Vne),unlink:GSr((0,AW.promisify)(xM.default.unlink),Vne),chmodSync:i5t(xM.default.chmodSync,T3.onChangeError),chownSync:i5t(xM.default.chownSync,T3.onChangeError),closeSync:i5t(xM.default.closeSync,Vne),existsSync:i5t(xM.default.existsSync,Vne),fsyncSync:i5t(xM.default.fsync,Vne),mkdirSync:i5t(xM.default.mkdirSync,Vne),realpathSync:i5t(xM.default.realpathSync,Vne),statSync:i5t(xM.default.statSync,Vne),unlinkSync:i5t(xM.default.unlinkSync,Vne)},retry:{close:$Sr((0,AW.promisify)(xM.default.close),T3.isRetriableError),fsync:$Sr((0,AW.promisify)(xM.default.fsync),T3.isRetriableError),open:$Sr((0,AW.promisify)(xM.default.open),T3.isRetriableError),readFile:$Sr((0,AW.promisify)(xM.default.readFile),T3.isRetriableError),rename:$Sr((0,AW.promisify)(xM.default.rename),T3.isRetriableError),stat:$Sr((0,AW.promisify)(xM.default.stat),T3.isRetriableError),write:$Sr((0,AW.promisify)(xM.default.write),T3.isRetriableError),writeFile:$Sr((0,AW.promisify)(xM.default.writeFile),T3.isRetriableError),closeSync:KSr(xM.default.closeSync,T3.isRetriableError),fsyncSync:KSr(xM.default.fsyncSync,T3.isRetriableError),openSync:KSr(xM.default.openSync,T3.isRetriableError),readFileSync:KSr(xM.default.readFileSync,T3.isRetriableError),renameSync:KSr(xM.default.renameSync,T3.isRetriableError),statSync:KSr(xM.default.statSync,T3.isRetriableError),writeSync:KSr(xM.default.writeSync,T3.isRetriableError),writeFileSync:KSr(xM.default.writeFileSync,T3.isRetriableError)}},Z$f=bww;var iEa=Jo(require("fs"),1),Nbi=Jo(require("path"),1);var k$f={then:e=>{e()}};var xAu=()=>{};var qAu=()=>{let e=xAu,t=xAu,r=!1,n=!1;return{promise:new Promise((d,c)=>{e=o=>(r=!0,d(o)),t=o=>(n=!0,c(o))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}};qAu.wrap=async e=>{let t=qAu();return await e(t),t.promise};var eKf=qAu;var tKf=e=>Array.isArray(e)?e:[e],rKf=e=>typeof e=="function",nKf=()=>{let{promise:e,resolve:t}=eKf(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var gww=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,a=t?.ignore??[],u=tKf(a).map(Kt=>rKf(Kt)?Kt:Mr=>Kt.test(Mr)),f=Kt=>u.some(Mr=>Mr(Kt)),d=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),o=[],l=new Set,m={},O=[],j=new Set,A={},T=[],B=new Set,F={},C={},N=new Set,U={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},re={directories:o,directoriesNames:l,directoriesNamesToPaths:m,files:O,filesNames:j,filesNamesToPaths:A,symlinks:T,symlinksNames:B,symlinksNamesToPaths:F,map:C},{promise:ge,increment:X,decrement:k}=nKf(),xe=0,vt=(Kt,Mr,Mn,ar)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.directories.push(Mr),Kt.directoriesNames.add(Mn),o.push(Mr),l.add(Mn),m.propertyIsEnumerable(Mn)||(m[Mn]=[]),m[Mn].push(Mr),N.add(Mr),!(ar>=n)&&(xe>=i||cr(Mr,ar+1)))},yt=(Kt,Mr,Mn)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.files.push(Mr),Kt.filesNames.add(Mn),O.push(Mr),j.add(Mn),A.propertyIsEnumerable(Mn)||(A[Mn]=[]),A[Mn].push(Mr),N.add(Mr))},St=(Kt,Mr,Mn,ar)=>{N.has(Mr)||xe>=i||(xe+=1,Kt.symlinks.push(Mr),Kt.symlinksNames.add(Mn),T.push(Mr),B.add(Mn),F.propertyIsEnumerable(Mn)||(F[Mn]=[]),F[Mn].push(Mr),N.add(Mr),r&&(ar>=n||xe>=i||Wr(Mr,ar+1)))},Ft=(Kt,Mr,Mn,ar,mn)=>{d.aborted||f(Mr)||(ar.isDirectory()?vt(Kt,Mr,Mn,mn):ar.isFile()?yt(Kt,Mr,Mn):ar.isSymbolicLink()&&St(Kt,Mr,Mn,mn))},Zt=(Kt,Mr,Mn,ar)=>{if(d.aborted)return;let mn=Mr===Nbi.default.sep?"":Nbi.default.sep,On=Mn.name,Ut=`${Mr}${mn}${On}`;f(Ut)||(Mn.isDirectory()?vt(Kt,Ut,On,ar):Mn.isFile()?yt(Kt,Ut,On):Mn.isSymbolicLink()&&St(Kt,Ut,On,ar))},Vt=(Kt,Mr,Mn,ar)=>{for(let mn=0,On=Mn.length;mn<On;mn++)Zt(Kt,Mr,Mn[mn],ar)},cr=(Kt,Mr)=>{d.aborted||Mr>n||xe>=i||(X(),iEa.default.readdir(Kt,{withFileTypes:!0},(Mn,ar)=>{if(Mn||d.aborted||!ar.length)return k();(c(ar)||k$f).then(()=>{let On=C[Kt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Vt(On,Kt,ar,Mr),k()})}))},Wr=async(Kt,Mr)=>{X(),iEa.default.realpath(Kt,(Mn,ar)=>{if(Mn||d.aborted)return k();iEa.default.stat(ar,async(mn,On)=>{if(mn||d.aborted)return k();let Ut=Nbi.default.basename(ar),kt=C[Kt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Ft(kt,ar,Ut,On,Mr),k()})})};return(async(Kt,Mr=1)=>(Kt=Nbi.default.normalize(Kt),N.add(Kt),cr(Kt,Mr),await ge,d.aborted?U:re))(e)},iKf=gww;var a5t={lang:{debounce:nEa,attempt:e=>{try{return e()}catch(t){return a5t.lang.castError(t)}},castArray:e=>a5t.lang.isArray(e)?e:[e],castError:e=>a5t.lang.isError(e)?e:a5t.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(a5t.lang.isNaN(e))return a5t.lang.isNaN(t);if(a5t.lang.isPrimitive(e)||a5t.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(aEa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?CAu.default.realpathSync.native(e):CAu.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===aEa.default.sep&&t.length-e.length>aEa.default.sep.length,poll:(e,t=$$f)=>Z$f.retry.stat(t)(e,{bigint:!0}).catch(a5t.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,a)=>{if(a&&r===1&&e in a){let u=a[e];return[u.directories,u.files]}else{let u=await iKf(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},Ej=a5t;var oEa=Jo(require("path"),1);var BAu=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||Ej.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=J$f){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,a=async(f,d)=>{let c=this.options.ignoreInitial?[]:f,o=await this.eventsPopulate([...d]),l=this.eventsDeduplicate([...c,...o]);this.onTargetEvents(l)},u=Ej.lang.debounce(()=>{this.watcher.isClosed()||(r=a(n,i),n=[],i=new Set)},t);return async(f,d="",c=!1)=>{c?await this.eventsPopulate([d],n,!0):i.add(d),r.then(u)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[a,u]=i,f=r[u];return a===f||a===nm.CHANGE&&f===nm.ADD||(r[u]=a,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let a=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(a.map(async u=>{r.push([u,i]),u===nm.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):u===nm.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let a=this.options.recursive?this.options.depth??E4r:Math.min(1,this.options.depth??E4r),u=this.options.limit??Bbi,[f,d]=await Ej.fs.readdir(r,this.options.ignore,a,u,this.watcher._closeSignal),c=[...f,...d];return await Promise.all(c.map(o=>{if(!this.watcher.isIgnored(o,this.options.ignore)&&!t.includes(o))return this.eventsPopulate([o],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let a of this.watcher._poller.stats.keys())Ej.fs.isSubPath(r,a)&&(t.includes(a)||await this.eventsPopulate([a],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(nm.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!A4r&&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(nm.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(nm.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(oEa.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(nm.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(oEa.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(nm.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===nm.ADD?this.onTargetAdd(n):r===nm.ADD_DIR?this.onTargetAddDir(n):r===nm.CHANGE?this.onTargetChange(n):r===nm.UNLINK?this.onTargetUnlink(n):r===nm.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=Ern.CHANGE,r){if(this.watcher.isClosed())return;let n=oEa.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){EAu&&t.code==="EPERM"?this.onWatcherChange(Ern.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Ibi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Ibi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(Ern.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&A4r&&this.options.native!==!1?this.options.depth??E4r:Math.min(1,this.options.depth??E4r),n=this.options.limit??Bbi,[i,a]=await Ej.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),u=[this.folderPath,...i,...a];await Promise.all(u.map(f=>{if(!this.watcher._poller.stats.has(f)&&!this.watcher.isIgnored(f,this.options.ignore))return this.onWatcherEvent(Ern.CHANGE,f,t)}))}}},aKf=BAu;var YX={interval:100,intervalId:void 0,fns:new Map,init:()=>{YX.intervalId||(YX.intervalId=setInterval(YX.resolve,YX.interval))},reset:()=>{YX.intervalId&&(clearInterval(YX.intervalId),delete YX.intervalId)},add:(e,t)=>{YX.fns.set(e,Date.now()+t),YX.init()},remove:e=>{YX.fns.delete(e)},resolve:()=>{if(!YX.fns.size)return YX.reset();let e=Date.now();for(let[t,r]of YX.fns)r>=e||(YX.remove(t),t())}},Fbi=YX;var Rbi=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=AAu){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{let l=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(l&&l!==i){if(Ej.fs.getRealPath(i,!0)===l)return;this._watcher.event(a.rename,l,i)}else this._watcher.event(a.add,i)};if(!n)return f();let d=()=>{u.add.delete(n),Fbi.remove(c)},c=()=>{d(),f()};Fbi.add(c,r);let o=()=>{let l=u.unlink.get(n);if(!l)return;d();let m=l();i===m?a.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(a.change,i):this._watcher.event(a.rename,m,i)};u.add.set(n,o),o()}getLockUnlink(t,r=AAu){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{this._watcher.event(a.unlink,i)};if(!n)return f();let d=()=>{u.unlink.delete(n),Fbi.remove(c)},c=()=>{d(),f()};Fbi.add(c,r);let o=()=>(d(),i);u.unlink.set(n,o),u.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,nm.ADD,n5t.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,nm.ADD_DIR,n5t.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,nm.UNLINK,n5t.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,nm.UNLINK_DIR,n5t.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}}};Rbi.DIR_EVENTS={add:nm.ADD_DIR,rename:nm.RENAME_DIR,unlink:nm.UNLINK_DIR};Rbi.FILE_EVENTS={add:nm.ADD,change:nm.CHANGE,rename:nm.RENAME,unlink:nm.UNLINK};var oKf=Rbi;var IAu=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ej.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ej.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(Ej.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(Ej.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ej.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ej.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},zAu=IAu;var NAu=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}},uKf=NAu;var FAu=class{constructor(){this.inos={},this.paths=new zAu,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let a=i[t];if(a&&!(n&&a[1]!==n))return a[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ej.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new uKf(n)}reset(){this.inos={},this.paths=new zAu,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,nm.ADD,i),[nm.ADD];if(i.isDirectory())return this.updateIno(t,nm.ADD_DIR,i),[nm.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,nm.UNLINK,n),[nm.UNLINK];if(n.isDirectory())return this.updateIno(t,nm.UNLINK_DIR,n),[nm.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,nm.CHANGE,i),[nm.CHANGE]);if(i.isDirectory())return this.updateIno(t,nm.UNLINK,n),this.updateIno(t,nm.ADD_DIR,i),[nm.UNLINK,nm.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,nm.UNLINK_DIR,n),this.updateIno(t,nm.ADD,i),[nm.UNLINK_DIR,nm.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,nm.UNLINK_DIR,n),this.updateIno(t,nm.ADD_DIR,i),[nm.UNLINK_DIR,nm.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=n.isFile()?n5t.FILE:n5t.DIR;i[t]=[n.ino,a]}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)}}},RAu=FAu;var LAu=class e extends sKf.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(KX.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(KX.CLOSE,i)),this._readyWait=new Promise(i=>this.on(KX.READY,i)),this._locker=new oKf(this),this._roots=new Set,this._poller=new RAu,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&&(Ej.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(KX.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ej.lang.castError(t);return this.emit(KX.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(KX.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(KX.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ej.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ej.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 a of[...i])r&&a.filePath!==r||this.watcherClose(a);if(n)for(let a in this._watchers)Ej.fs.isSubPath(t,a)&&this.watchersClose(a,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 a=new aKf(this,t,r);return await a.init(),a}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let a=r.indexOf(t);r.splice(a,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=Ej.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(f=>f.handler===n&&(!f.filePath||f.filePath===i)&&f.options.ignore===r.ignore&&!!f.options.native==!!r.native&&(!r.recursive||f.options.recursive)))return!0;let u=Arn.default.dirname(t);for(let f=1;f<1/0;f++){if(this._watchers[u]?.find(o=>(f===1||o.options.recursive&&f<=(o.options.depth??E4r))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&A4r&&o.options.native!==!1)))return!0;if(!A4r)break;let c=Arn.default.dirname(t);if(u===c)break;u=c}return!1}async watchDirectories(t,r,n,i,a){if(this.isClosed())return;t=Ej.lang.uniq(t).sort();let u;for(let f of t)if(!this.isIgnored(f,r.ignore)&&!this.watcherExists(f,r,n,i))try{let d=!r.recursive||A4r&&r.native!==!1?r:{...r,recursive:!1},o={watcher:uEa.default.watch(f,d),handler:n,options:r,folderPath:f,filePath:i},l=u=await this.watcherAdd(o,a);if(this._roots.has(i||f)){let O={...r,ignoreInitial:!0,recursive:!1},j=Arn.default.dirname(f),A=f;await this.watchDirectories([j],O,n,A,l)}}catch(d){this.error(d)}return u}async watchDirectory(t,r,n,i,a){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||A4r&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??E4r,f=r.limit??Bbi,[d]=await Ej.fs.readdir(t,r.ignore,u,f,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,a);if(d.length){let o=Ej.fs.getDepth(t);for(let l of d){let m=Ej.fs.getDepth(l),O=Math.max(0,u-(m-o)),j={...r,depth:O};await this.watchDirectories([l],j,n,i,a||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},a=(c,o)=>{o===t&&(d(),n())},u=new e(a),f=()=>{this._subwatchers.add(i),this.on(KX.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(KX.CLOSE,d),u.close()};return f()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=Arn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new RAu,u=await this.watchPolling(t,r,async()=>{i||!(await a.update(t,r.pollingTimeout)).length||i||(i=!0,u(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ej.lang.noop;if(this.pollerExists(t,r))return Ej.lang.noop;let i={...r,interval:r.pollingInterval??G$f},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(KX.CLOSE,f),uEa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(KX.CLOSE,f),uEa.default.unwatchFile(t,n)};return Ej.lang.attempt(u),()=>Ej.lang.attempt(f)}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=Ej.lang.uniq(t).sort(),t.every((a,u)=>t.every((f,d)=>d===u||!Ej.fs.isSubPath(a,f))))await Promise.all(t.map(a=>this.watchPath(a,r,n)));else for(let a of t)await this.watchPath(a,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=Arn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ej.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 a=Arn.default.dirname(t);return(await Ej.fs.poll(a,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ej.lang.noop){if(Ej.lang.isFunction(t))return this.watch([],{},t);if(Ej.lang.isUndefined(t))return this.watch([],r,n);if(Ej.lang.isFunction(r))return this.watch(t,{},r);if(Ej.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ej.lang.castArray(t);i.forEach(a=>this._roots.add(a)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ej.lang.noop&&this.on(KX.ALL,n),r.readdirMap=void 0,this.ready())}},cKf=LAu;var M1w=Jo(pKf(),1),T1w=Jo(XAu(),1),x1w=Jo(kAu(),1),q1w=Jo(oMu(),1),sMu=Jo(lYf(),1);var Iid=Jo(rAa(),1),P5t=require("fs/promises"),TMa=require("os"),Gxu=Jo(require("path"),1),zid=Jo(Qte(),1),Nid=Jo(Fed(),1),$xu=Jo(Qxu(),1),D2w="etag",Kxu="preview",S2w="bundle",Yxu=".fern";function E2w(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu))}function xMa(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu),ls.of(S2w))}function A2w(){return Wl(Hp.of((0,TMa.homedir)()),ls.of(Yxu),ls.of(Kxu),ls.of(D2w))}async function Fid({bucketUrl:e,logger:t,preferCached:r}){t.debug("Setting up docs preview bundle...");let n=await(0,$xu.fetcher)({url:e,method:"GET",responseType:"text",duplex:"half"});if(!n.ok)return{type:"failure"};let i=n.body,u=await new Nid.default.Parser().parseStringPromise(i),f=u?.ListBucketResult?.Contents?.[0]?.ETag?.[0],d=u?.ListBucketResult?.Contents?.[0]?.Key?.[0],c=A2w();if(r){let F=await _h(c),C;if(F&&(t.debug("Reading existing ETag"),C=(await(0,P5t.readFile)(c)).toString()),C!=null&&C===f)return t.debug("ETag matches. Using already downloaded bundle"),{type:"success"};t.debug("ETag is different. Downloading latest preview bundle")}t.debug("Creating tmp directory to download docs preview bundle");let o=await zid.default.dir({prefix:"fern"}),l=Hp.of(o.path);t.debug(`Downloading docs preview bundle from ${Gxu.default.join(e,d)}`);let m=await(0,$xu.fetcher)({url:`${Gxu.default.join(e,d)}`,method:"GET",responseType:"arrayBuffer",duplex:"half"});if(!m.ok)return t.error("Failed to download docs preview bundle."),{type:"failure"};let O=Wl(l,ls.of("output.zip")),j=m.body;if(j==null)return{type:"failure"};let A=Buffer.from(j);await(0,P5t.writeFile)(O,A),t.debug(`Wrote output.zip to ${O}`);let T=E2w();await _h(T)&&await(0,P5t.rm)(T,{recursive:!0}),await(0,P5t.mkdir)(T,{recursive:!0}),t.debug(`rm -rf ${T}`);let B=xMa();return await(0,P5t.mkdir)(B,{recursive:!0}),await(0,Iid.default)(O,B),await(0,P5t.writeFile)(c,f),t.debug(`Downloaded bundle to ${B}`),{type:"success"}}async function Rid({domain:e,project:t,context:r}){let n=t.docsWorkspaces,i=t.apiWorkspaces;if(n==null)throw new Error("No docs workspace found in project");let a=await Promise.all(i.map(async m=>await m.toFernWorkspace({context:r},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),u=new Xxu(r),f={},c=await new QSr(e,n,a,r,void 0,async m=>m.map(O=>{let j=h6r();return f[j]={type:"url",url:vc.Url(`/_local${rWo(O.absoluteFilePath)}`)},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async m=>u.addReferencedAPI(m)).resolve(),o=PSu({writeShape:c,files:{}}),l=wSu({dbShape:o.config});return{apis:u.getAPIsForDefinition(),config:l,files:{},filesV2:f,pages:o.pages,search:{type:"legacyMultiAlgoliaIndex",algoliaIndex:void 0},algoliaSearchIndex:void 0,jsFiles:void 0,id:void 0}}var Xxu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=h6r(),a=F0i($we({ir:t,snippetsConfig:r,playgroundConfig:n}),rL.ApiDefinitionId(i),new orn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),u=U0i(a);return this.apis[i]=u,i}catch(i){let a=i;throw this.context.logger.error(`Failed to read referenced API: ${a?.message} ${a?.stack}`),a.stack!=null&&this.context.logger.error(a?.stack),i}}getAPIsForDefinition(){return this.apis}};var M2w={pages:{},apis:{},files:{},filesV2:{},config:{navigation:void 0,root:void 0,title:void 0,defaultLanguage:void 0,announcement:void 0,navbarLinks:void 0,footerLinks:void 0,logoHeight:void 0,logoHref:void 0,favicon:void 0,metadata:void 0,redirects:void 0,colorsV3:void 0,layout:void 0,typographyV2:void 0,analyticsConfig:void 0,integrations:void 0,css:void 0,js:void 0},search:{type:"legacyMultiAlgoliaIndex",algoliaIndex:void 0},algoliaSearchIndex:void 0,jsFiles:void 0,id:void 0};async function kxu({initialProject:e,reloadProject:t,validateProject:r,context:n,port:i,bundlePath:a}){if(a!=null)n.logger.info(`Using bundle from path: ${a}`);else try{let C="https://prod-local-preview-bundle2.s3.amazonaws.com/";if(C==null)throw new Error("Failed to connect to the docs preview server. Please contact support@buildwithfern.com");await Fid({bucketUrl:C,logger:n.logger,preferCached:!0})}catch(C){let N=xMa();if(C instanceof Error&&n.logger.debug(`Failed to download latest docs bundle: ${C.message}`),await _h(N))n.logger.warn("Falling back to cached bundle...");else{n.logger.warn("Please reach out to support@buildwithfern.com.");return}}let u=C0(e.config._absolutePath),f=(0,Zxu.default)(),d=Uid.default.createServer(f),c=new sMu.default({server:d}),o=new Set;function l(C){for(let N of o)N.send(JSON.stringify(C))}c.on("connection",function(N){o.add(N),N.on("close",function(){o.delete(N)})}),f.use((0,Lid.default)());let m=new URL(JSr(e.docsWorkspaces?.config.instances[0]?.url??`http://localhost:${i}`)),O=e,j,A=async()=>{n.logger.info("Reloading docs...");let C=Date.now();try{O=await t(),n.logger.info("Validating docs..."),await r(O);let N=await Rid({domain:`${m.host}${m.pathname}`,project:O,context:n});return n.logger.info(`Reload completed in ${Date.now()-C}ms`),N}catch(N){return j==null?n.logger.error("Failed to read docs configuration. Rendering blank page."):n.logger.error("Failed to read docs configuration. Rendering last successful configuration."),N instanceof Error&&(n.logger.error(N.message),N instanceof Error&&N.stack&&n.logger.debug(`Stack Trace:
1951
1951
  ${N.stack}`)),j}};j=await A();let T=O.apiWorkspaces.flatMap(C=>C.getAbsoluteFilePaths()),B=a?Hp.of(qMa.default.resolve(a)):xMa();new cKf([u,...T],{recursive:!0,ignoreInitial:!0,debounce:1e3,renameDetection:!0}).on("all",async(C,N,U)=>{n.logger.info(qc.dim(`[${C}] ${N}`)),l({version:1,type:"startReload"});let re=await A();re!=null&&(j=re),l({version:1,type:"finishReload"})}),f.post("/v2/registry/docs/load-with-url",async(C,N)=>{try{let U=j??M2w,re={baseUrl:{domain:m.host,basePath:m.pathname},definition:U,lightModeEnabled:U.config.colorsV3?.type!=="dark",orgId:vc.OrgId(e.config.organization)};N.send(re)}catch(U){n.logger.error("Error loading docs",U.message),N.status(500).send()}}),f.get(/^\/_local\/(.*)/,(C,N)=>N.sendFile(`/${C.params[0]}`)),f.get("/",(C,N,U)=>C.headers.upgrade==="websocket"?c.handleUpgrade(C,C.socket,Buffer.alloc(0),re=>{c.emit("connection",re,C)}):U()),f.use("/_next",Zxu.default.static(qMa.default.join(B,"/_next"))),f.use("*",async(C,N)=>N.sendFile(qMa.default.join(B,"/[[...slug]].html"))),f.listen(i),n.logger.info(`Running server on http://localhost:${i}`),await new Promise(()=>{})}var CW={RequestReference:"requestReference",InlinedRequestProperty:"inlinedRequestProperty",Response:"response",StreamingResponse:"streamingResponse"};function kq(e,t){return async r=>{r!=null&&await e.docs?.(r,[...t,"docs"])}}async function Yxe({example:e,visitor:t,nodePath:r}){if(typeof e=="string")e.startsWith(FFt)&&await t.exampleTypeReference?.(e,r);else if(bD(e))for(let n of Object.values(e))await Yxe({example:n,visitor:t,nodePath:r});else if(Array.isArray(e))for(let n of e)await Yxe({example:n,visitor:t,nodePath:r})}function $2t(e){return async(t,r,{_default:n,validation:i,location:a}={})=>{await e.typeReference?.({typeReference:t,_default:n,validation:i,location:a,nodePath:r},r)}}async function Vid({service:e,visitor:t,nodePath:r}){await t.httpService?.(e,r),await nP(e,{url:async n=>{await t.serviceBaseUrl?.(n,[...r,"url"])},"base-path":Bc,"display-name":Bc,availability:Bc,headers:async n=>{await Wid({headers:n,visitor:t,nodePath:[...r,"headers"]})},audiences:Bc,auth:Bc,"path-parameters":async n=>{await Vgi({pathParameters:n,visitor:t,nodePath:[...r,"path-parameters"]})},endpoints:async n=>{for(let[i,a]of Object.entries(n)){let u=[...r,"endpoints",i];await T2w({endpointId:i,endpoint:a,service:e,visitor:t,nodePathForEndpoint:u})}},idempotent:Bc,transport:Bc,source:Bc})}async function T2w({endpointId:e,endpoint:t,service:r,visitor:n,nodePathForEndpoint:i}){let a=$2t(n);await n.httpEndpoint?.({endpointId:e,endpoint:t,service:r},i),await nP(t,{docs:kq(n,i),"display-name":Bc,availability:Bc,"base-path":Bc,path:Bc,idempotent:Bc,url:async u=>{await n.endpointBaseUrl?.({baseUrl:u,service:r},[...i,"url"])},"path-parameters":async u=>{await Vgi({pathParameters:u,visitor:n,nodePath:[...i,"path-parameters"]})},request:async u=>{if(u==null)return;let f=[...i,"request"];if(typeof u=="string"){await a(u,f,{location:"requestReference"});return}await nP(u,{name:Bc,docs:kq(n,f),"path-parameters":async d=>{await Vgi({pathParameters:d,visitor:n,nodePath:[...f,"path-parameters"]})},"query-parameters":async d=>{if(d!=null)for(let[c,o]of Object.entries(d)){let l=[...f,"query-parameters",c];await n.queryParameter?.({queryParameterKey:c,queryParameter:o},l),typeof o=="string"?await a(o,l):await nP(o,{name:Bc,docs:kq(n,l),availability:Bc,type:async m=>{await a(m,[...l,"type"],{_default:o.default,validation:o.validation})},"allow-multiple":Bc,audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}},"content-type":Bc,headers:async d=>{await Wid({headers:d,visitor:n,nodePath:[...f,"headers"]})},body:async d=>{if(d==null)return;let c=[...f,"body"];typeof d=="string"?await a(d,c,{location:"requestReference"}):p2(d)?(await n.typeDeclaration?.({typeName:{isInlined:!0,location:"inlinedRequest"},declaration:d},c),await nP(d,{extends:async o=>{if(o==null)return;let l=typeof o=="string"?[o]:o;for(let m of l){let O=[...c,"extends",m];await n.extension?.(m,O),await a(m,O)}},properties:async o=>{if(o!=null)for(let[l,m]of Object.entries(o)){let O=[...c,"properties",l];typeof m=="string"?await a(m,O,{location:CW.InlinedRequestProperty}):await nP(m,{name:Bc,docs:kq(n,O),availability:Bc,type:async j=>{await a(j,[...O,"type"],{location:CW.InlinedRequestProperty,_default:m.default,validation:m.validation})},"content-type":Bc,audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}},"extra-properties":Bc})):(await kq(n,c)(d.docs),await a(d.type,c))}})},audiences:Bc,method:Bc,auth:Bc,"stream-condition":async u=>{await n.streamCondition?.({streamCondition:u,endpoint:t},[...i,"stream-condition"])},"response-stream":async u=>{u!=null&&(typeof u=="string"?await a(u,[...i,"response-stream"],{location:CW.StreamingResponse}):await a(u.type,[...i,"response-stream"],{location:CW.StreamingResponse}))},response:async u=>{if(u==null)return;let f=[...i,"response"];typeof u=="string"?await a(u,f,{location:CW.Response}):await nP(u,{docs:kq(n,f),type:async d=>{await a(d,[...f,"type"],{location:CW.Response})},property:Bc,"status-code":Bc})},errors:async u=>{if(u!=null)for(let f of u){let d=[...i,"errors",typeof f=="string"?f:f.error];typeof f=="string"?await n.errorReference?.(f,d):await nP(f,{docs:kq(n,d),error:async c=>{await n.errorReference?.(c,[...d,"error"])}})}},examples:async u=>{if(u!=null)for(let[f,d]of u.entries())await x2w({nodePathForExample:[...i,{key:"examples",arrayIndex:f}],visitor:n,service:r,endpoint:t,example:d})},pagination:Bc,source:Bc,transport:Bc})}async function x2w({nodePathForExample:e,visitor:t,service:r,endpoint:n,example:i}){if(i.headers==null&&i["path-parameters"]==null&&i["query-parameters"]==null&&i.request==null&&i.response==null&&i["code-samples"]!=null)return;await t.exampleHttpEndpointCall?.({service:r,endpoint:n,example:i},e);let a=[...e,"headers"];if(await t.exampleHeaders?.({service:r,endpoint:n,examples:i.headers},a),i.headers!=null)for(let o of Object.values(i.headers))await Yxe({example:o,visitor:t,nodePath:a});let u=[...e,"path-parameters"];if(await t.examplePathParameters?.({service:r,endpoint:n,examples:i["path-parameters"]},u),i["path-parameters"]!=null)for(let o of Object.values(i["path-parameters"]))await Yxe({example:o,visitor:t,nodePath:u});let f=[...e,"query-parameters"];if(await t.exampleQueryParameters?.({service:r,endpoint:n,examples:i["query-parameters"]},f),i["query-parameters"]!=null)for(let o of Object.values(i["query-parameters"]))await Yxe({example:o,visitor:t,nodePath:f});let d=[...e,"request"];await t.exampleRequest?.({service:r,endpoint:n,example:i.request},d),i.request!=null&&await Yxe({example:i.request,visitor:t,nodePath:d});let c=[...e,"response"];if(await t.exampleResponse?.({service:r,endpoint:n,example:i.response},c),i.response!=null&&await _Zr(n,i.response,{body:async o=>{o.body!=null&&await Yxe({example:o.body,visitor:t,nodePath:c}),o.error!=null&&await t.errorReference?.(o.error,[...c,"error"])},stream:async o=>{for(let l of o.stream)await Yxe({example:l,visitor:t,nodePath:c})},events:async o=>{for(let{data:l}of o.stream)await Yxe({example:l,visitor:t,nodePath:c})}}),i["code-samples"]!=null)for(let[o,l]of i["code-samples"].entries())await t.exampleCodeSample?.({service:r,endpoint:n,example:i,sample:l},[...e,{key:"code-samples",arrayIndex:o}])}async function Vgi({pathParameters:e,visitor:t,nodePath:r}){if(e==null)return;let n=$2t(t);for(let[i,a]of Object.entries(e)){let u=[...r,i];await t.pathParameter?.({pathParameterKey:i,pathParameter:a},u),Zqn(a)?typeof a=="string"?await t.variableReference?.(a,u):await nP(a,{docs:kq(t,u),variable:async f=>await t.variableReference?.(f,[...u,"variable"]),availability:Bc}):typeof a=="string"?await n(a,u):await nP(a,{docs:kq(t,u),type:async f=>{await n(f,[...u,"type"],{_default:a.default,validation:a.validation})},availability:Bc,encoding:Bc,default:Bc,validation:Bc,name:Bc,audiences:Bc})}}async function Wid({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=$2t(t);for(let[i,a]of Object.entries(e)){let u=[...r,i];await t.header?.({headerKey:i,header:a},u),typeof a=="string"?await n(a,u):await nP(a,{name:Bc,availability:Bc,type:async f=>{await n(f,u,{_default:a.default,validation:a.validation})},docs:kq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}async function Hid({typeDeclarations:e,visitor:t,nodePath:r}){if(e!=null)for(let[n,i]of Object.entries(e)){let a=[...r,n];await t.typeName?.(n,a),await equ({typeName:n,declaration:i,visitor:t,nodePathForType:a})}}async function equ({typeName:e,declaration:t,visitor:r,nodePathForType:n}){let i=$2t(r);await r.typeDeclaration?.({typeName:{isInlined:!1,name:e},declaration:t,nodePath:n},n);let a=async u=>{if(u!=null)for(let[f,d]of u.entries()){let c=[...n,{key:"examples",arrayIndex:f}];await r.exampleType?.({typeName:e,typeDeclaration:t,example:d},c),await Yxe({example:d.value,nodePath:c,visitor:r})}};await v3(t,{alias:async u=>{typeof u=="string"?await i(u,n):await nP(u,{type:async f=>{await i(f,[...n,"type"])},docs:kq(r,n),availability:Bc,audiences:Bc,examples:a,validation:Bc,encoding:Bc,source:Bc})},object:async u=>{await nP(u,{docs:kq(r,n),extends:async f=>{if(f==null)return;let d=typeof f=="string"?[f]:f;for(let c of d){let o=[...n,"extends",c];await r.extension?.(c,o),await i(c,o)}},properties:async f=>{if(f!=null)for(let[d,c]of Object.entries(f)){let o=[...n,"properties",d];typeof c=="string"?await i(c,o):await nP(c,{name:Bc,docs:kq(r,o),availability:Bc,type:async l=>{await i(l,[...o,"type"],{_default:c.default,validation:c.validation})},audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}},"extra-properties":Bc,availability:Bc,audiences:Bc,encoding:Bc,source:Bc,examples:a})},discriminatedUnion:async u=>{await nP(u,{docs:kq(r,n),discriminant:Bc,extends:async f=>{if(f==null)return;let d=typeof f=="string"?[f]:f;for(let c of d){let o=[...n,"extends",c];await r.extension?.(c,o),await i(c,o)}},union:async f=>{for(let[d,c]of Object.entries(f)){let o=[...n,"union",d];typeof c=="string"?await i(c,o):await nP(c,{docs:kq(r,o),name:Bc,key:Bc,type:async l=>{typeof l=="string"&&await i(l,[...n,"type"])},"display-name":Bc,availability:Bc})}},"base-properties":Bc,availability:Bc,audiences:Bc,encoding:Bc,source:Bc,examples:a})},undiscriminatedUnion:async u=>{await nP(u,{docs:kq(r,n),discriminated:Bc,union:async f=>{for(let[d,c]of f.entries()){let o=[...n,`union[${d}]`];typeof c!="string"&&await nP(c,{docs:kq(r,o),type:async l=>{await i(l,[...n,"type"])},"display-name":Bc})}},availability:Bc,audiences:Bc,encoding:Bc,source:Bc,examples:a})},enum:async u=>{await nP(u,{docs:kq(r,n),enum:async f=>{for(let d of f){let c=[...n,typeof d=="string"?d:d.name??d.value];typeof d!="string"&&await nP(d,{docs:kq(r,c),name:Bc,value:Bc,casing:Bc})}},availability:Bc,audiences:Bc,default:Bc,encoding:Bc,source:Bc,examples:a})}})}async function Jid({errorDeclarations:e,visitor:t,nodePath:r}){if(e!=null)for(let[n,i]of Object.entries(e)){let a=[...r,n];await t.errorDeclaration?.({errorName:n,declaration:i},a),await q2w({errorName:n,declaration:i,visitor:t,nodePathForError:a})}}async function q2w({errorName:e,declaration:t,visitor:r,nodePathForError:n}){let i=$2t(r);typeof t=="string"?await i(t,n):await nP(t,{docs:kq(r,n),"status-code":Bc,type:async a=>{if(a==null)return;let u=[...n,"type"];typeof a=="string"?await i(a,u):await equ({typeName:e,declaration:a,visitor:r,nodePathForType:u})},examples:async a=>{if(a!=null)for(let u of a){let f=[...n,"type"];await r.exampleError?.({errorName:e,declaration:t,example:u},f)}}})}async function Qid({imports:e,visitor:t,nodePath:r}){if(e!=null)for(let[n,i]of Object.entries(e))await t.import?.({importPath:i,importedAs:n},[...r,n])}async function Gid({webhook:e,visitor:t,nodePathForWebhook:r}){let n=$2t(t);await nP(e,{"display-name":Bc,method:Bc,examples:Bc,headers:async i=>{await C2w({headers:i,visitor:t,nodePath:[...r,"headers"]})},payload:async i=>{let a=[...r,"payload"];if(typeof i=="string"){await n(i,a,{location:"requestReference"});return}if(B2w(i)){await n(i.type,[...a,"type"],{location:"requestReference"});return}let u=[...a];await t.typeDeclaration?.({typeName:{isInlined:!0,location:"inlinedRequest"},declaration:i},u),await nP(i,{name:Bc,extends:async f=>{if(f==null)return;let d=typeof f=="string"?[f]:f;for(let c of d){let o=[...u,"extends",c];await t.extension?.(c,o),await n(c,o)}},properties:async f=>{if(f!=null)for(let[d,c]of Object.entries(f)){let o=[...u,"properties",d];typeof c=="string"?await n(c,o,{location:CW.InlinedRequestProperty}):await nP(c,{name:Bc,docs:kq(t,o),availability:Bc,type:async l=>{await n(l,[...o,"type"],{_default:c.default,validation:c.validation,location:CW.InlinedRequestProperty})},audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}}})},audiences:Bc,availability:Bc,docs:kq(t,r)})}async function C2w({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=$2t(t);for(let[i,a]of Object.entries(e)){let u=[...r,i];await t.header?.({headerKey:i,header:a},u),typeof a=="string"?await n(a,u):await nP(a,{name:Bc,availability:Bc,type:async f=>{await n(f,u,{_default:a.default,validation:a.validation})},docs:kq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}function B2w(e){return e.type!=null}async function BW(e,t){await nP(e,{docs:kq(t,[]),imports:async r=>{await Qid({imports:r,visitor:t,nodePath:["imports"]})},types:async r=>{await Hid({typeDeclarations:r,visitor:t,nodePath:["types"]})},service:async r=>{r!=null&&await Vid({service:r,visitor:t,nodePath:["service"]})},webhooks:async r=>{for(let[n,i]of Object.entries(r??{}))await Gid({webhook:i,visitor:t,nodePathForWebhook:["webhooks",n]})},channel:Bc,errors:async r=>{await Jid({errorDeclarations:r,visitor:t,nodePath:["errors"]})}})}async function tqu(e,t){await nP(e,{docs:Bc,imports:Bc,types:Bc,service:Bc,webhooks:Bc,errors:Bc,channel:Bc,export:async r=>{await t.export?.(typeof r=="string"?r:r?.dependency,["export"])},navigation:async r=>{await t.navigation?.(r,["navigation"])}})}async function rqu(e,t){await t.file?.(e,[]),await nP(e,{version:Bc,name:Bc,"default-url":Bc,"display-name":Bc,imports:Bc,auth:Bc,"idempotency-headers":Bc,"auth-schemes":async r=>{await Promise.all(Object.entries(r??{}).map(async([n,i])=>{dko(i)&&await t.oauth?.({name:n,oauth:i},["auth-scheme",n])}))},pagination:Bc,"default-environment":async r=>{await t.defaultEnvironment?.(r,["default-environment"])},docs:Bc,headers:Bc,environments:async r=>{if(r!=null)for(let[n,i]of Object.entries(r))await t.environment?.({environmentId:n,environment:i},["environments",n])},"error-discrimination":async r=>{await t.errorDiscrimination?.(r,["error-discrimination"])},audiences:Bc,errors:async r=>{if(r!=null)for(let n of r)await t.errorReference?.(n,["errors",n])},"base-path":Bc,"path-parameters":async r=>{await Vgi({pathParameters:r,visitor:t,nodePath:["path-parameters"]})},variables:async r=>{if(r!=null)for(let[n,i]of Object.entries(r))await t.variableDeclaration?.({variableId:n,variable:i},["variables",n])}})}var CMa=new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$");function $id({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{for(let c of r){let o=c.definitionFile?.[a];if(o!=null){let l=await o(f,{relativeFilepath:e,contents:t});n(l.map(m=>({severity:m.severity,relativeFilepath:e,nodePath:d,message:m.message})))}}};return{[a]:u}}return{...i("docs"),...i("import"),...i("typeReference"),...i("typeDeclaration"),...i("typeName"),...i("httpService"),...i("httpEndpoint"),...i("pathParameter"),...i("queryParameter"),...i("streamCondition"),...i("header"),...i("errorDeclaration"),...i("errorReference"),...i("exampleType"),...i("exampleTypeReference"),...i("exampleHttpEndpointCall"),...i("exampleCodeSample"),...i("exampleHeaders"),...i("examplePathParameters"),...i("exampleQueryParameters"),...i("exampleRequest"),...i("exampleResponse"),...i("variableReference"),...i("extension"),...i("serviceBaseUrl"),...i("endpointBaseUrl"),...i("exampleError")}}function Kid({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{for(let c of r){let o=c.packageMarker?.[a];if(o!=null){let l=await o(f,{relativeFilepath:e,contents:t});n(l.map(m=>({severity:m.severity,relativeFilepath:e,nodePath:d,message:m.message})))}}};return{[a]:u}}return{...i("export"),...i("navigation")}}function Yid({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{for(let c of r){let o=c.rootApiFile?.[a];if(o!=null){let l=await o(f,{relativeFilepath:e,contents:t});n(l.map(m=>({severity:m.severity,relativeFilepath:e,nodePath:d,message:m.message})))}}};return{[a]:u}}return{...i("file"),...i("oauth"),...i("defaultEnvironment"),...i("environment"),...i("errorDiscrimination"),...i("errorReference"),...i("variableDeclaration"),...i("variableReference"),...i("pathParameter")}}function I2w(e,t,r){if(!gne(r,t))return[{severity:"error",message:`The generator ${e} requires CLI version ${t} or later (current version: ${r}). Please run \`fern upgrade\` to upgrade your CLI version and use this generator.`}]}function z2w(e){return Number(e.replace("v",""))}async function N2w(e){let t=isa({token:void 0}),r=await t.generators.getGeneratorByImage({dockerImage:e.name});if(!r.ok||r.body==null)return;let n=await t.generators.versions.getGeneratorRelease(r.body.id,e.version);if(n.ok)return n.body.irVersion}var nqu={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{let r=isa({token:void 0});if(t==null)return[];let n=await r.generators.cli.getCliRelease(t);if(!n.ok)return[];let i=n.body.irVersion,a;if(e["ir-version"]!=null)a=z2w(e["ir-version"]);else{let f=await N2w(e);if(f==null)return[];a=f}if(a<=i)return[];let u=await r.generators.cli.getMinCliForIr(a);return u.ok?I2w(e.name,u.body.version,t)??[]:[]}}})};var iqu={name:"import-file-exists",create:({workspace:e})=>{let t=Object.keys(cSr(e.definition)),r=new Set;return t.forEach(n=>{let i=Wl(e.definition.absoluteFilePath,ls.of(n));r.add(i)}),{definitionFile:{import:async({importedAs:n,importPath:i},{relativeFilepath:a})=>{let u=[],f=Wl(e.definition.absoluteFilePath,C0(a),ls.of(i));return r.has(f)||u.push({severity:"error",message:`Import ${qc.bold(n)} points to non-existent path ${qc.bold(i)}.`}),u}}}}};function BMa(e){return e.definition.rootApiFile.contents.environments==null?[]:Object.values(e.definition.rootApiFile.contents.environments).reduce((t,r)=>{if(Xqn(r))for(let n of Object.keys(r.urls))t.includes(n)||t.push(n);return t},[])}var aqu={name:"matching-environment-urls",create:({workspace:e})=>{let t=BMa(e);return t.length===0?{}:{rootApiFile:{environment:({environmentId:r,environment:n})=>{let i=[],a=u=>{i.push({severity:"error",message:`Environment ${r} is missing URL for ${qc.bold(u)}`})};return sDr(n,{singleBaseUrl:()=>{for(let u of t)a(u)},multipleBaseUrls:u=>{for(let f of t)u.urls[f]==null&&a(f)}}),i}}}}};var oqu={name:"no-circular-imports",DISABLE_RULE:!0,create:({workspace:e})=>{let t=F2w(e.definition.namedDefinitionFiles);return{definitionFile:{import:async({importPath:r},{relativeFilepath:n})=>{let i=t[n];if(i==null)return[];let a=h4r({referencedIn:n,importPath:ls.of(r)});return i.filter(({chainWithoutStartingFilepath:f})=>f.length===0||f[0]===a).map(f=>({severity:"error",message:f.chainWithoutStartingFilepath.length===0?"A file cannot import itself":`Circular import detected: ${[f.startingFilepath,...f.chainWithoutStartingFilepath,f.startingFilepath].join(" -> ")}`}))}}}}};function F2w(e){let t={};for(let r of v6t(e))t[r]=Xid(r,[r],e);return t}function Xid(e,t,r){let n=[],i=r[e];if(i==null)return[];if(i.contents.imports!=null)for(let a of Object.values(i.contents.imports)){let u=h4r({referencedIn:e,importPath:ls.of(a)});t.includes(u)?t[0]===u&&t[0]===R2w(t)&&n.push({startingFilepath:u,chainWithoutStartingFilepath:t.slice(1)}):n.push(...Xid(u,[...t,u],r))}return n}function R2w(e){return e.reduce((t,r)=>r<t?r:t)}var iM=Y8t({generationLanguage:void 0,keywords:void 0,smartCasing:!1});var IMa=class{workspace;typeResolver;constructor(t){this.workspace=t,this.typeResolver=new oA(t)}isTypeComplex(t,r){let n=$m({relativeFilepath:r.relativeFilepath,definitionFile:r.contents,casingsGenerator:iM,rootApiFile:this.workspace.definition.rootApiFile.contents}),i=this.typeResolver.resolveType({type:t,file:n});if(i==null)return;let a=new Set;return this.isResolvedReferenceComplex({type:i,file:n,visited:a})}isResolvedReferenceComplex({type:t,file:r,visited:n}){switch(t._type){case"container":return this.isResolvedContainerComplex({type:t.container,file:r,visited:n});case"named":return this.isNamedTypeComplex({type:t,file:r,visited:n});case"primitive":return!1;case"unknown":return!0;default:uc(t)}}isResolvedContainerComplex({type:t,file:r,visited:n}){switch(t._type){case"literal":return!1;case"map":return(this.isResolvedReferenceComplex({type:t.keyType,file:r,visited:n})||this.isResolvedReferenceComplex({type:t.valueType,file:r,visited:n}))&&!(t.keyType._type==="primitive"&&t.keyType.primitive.v1==="STRING"&&t.valueType._type==="unknown");case"optional":case"list":case"set":return this.isResolvedReferenceComplex({type:t.itemType,file:r,visited:n});default:uc(t)}}isNamedTypeComplex({type:t,file:r,visited:n}){if(n.has(t.rawName))return!1;if(n.add(t.rawName),Gzr(t.declaration))return!0;if(xCt(t.declaration))return!1;if(SE(t.declaration))return this.objectHasComplexProperties({typeName:t.rawName,objectDeclaration:t.declaration,file:r,visited:n});if(kqn(t.declaration)){for(let i of t.declaration.union){let a=typeof i=="string"?i:i.type,u=this.isTypeComplex(a,{contents:r.definitionFile,relativeFilepath:r.relativeFilepath});if(u!=null&&u)return!0}return!1}uc(t.declaration)}objectHasComplexProperties({typeName:t,objectDeclaration:r,file:n,visited:i}){return N2t({typeName:t,objectDeclaration:r,typeResolver:this.typeResolver,definitionFile:n.definitionFile,workspace:this.workspace,filepathOfDeclaration:n.relativeFilepath,smartCasing:!1}).some(u=>this.isComplex({type:u.resolvedPropertyType,file:n,visited:i}))}isComplex({type:t,file:r,visited:n}){switch(t._type){case"named":return this.isNamedTypeComplex({type:t,file:r,visited:n});case"primitive":case"unknown":return!1;case"container":return this.isComplexContainer({type:t.container,file:r,visited:n});default:uc(t)}}isComplexContainer({type:t,file:r,visited:n}){switch(t._type){case"literal":return!0;case"map":return this.isComplex({type:t.keyType,file:r,visited:n})||this.isComplex({type:t.valueType,file:r,visited:n});case"optional":case"list":case"set":return this.isComplex({type:t.itemType,file:r,visited:n});default:uc(t)}}};var uqu={name:"no-complex-query-params",create:({workspace:e})=>{let t=new IMa(e);return{definitionFile:{queryParameter:({queryParameter:r},n)=>{let i=typeof r=="string"?r:r.type,a=t.isTypeComplex(i,n);return a!=null&&a?[{severity:"error",message:`${i} is not a valid type for a query parameter`}]:[]}}}}};var squ={name:"no-conflicting-endpoint-parameters",create:()=>({definitionFile:{pathParameter:({pathParameterKey:e})=>e===oSa?[{severity:"error",message:`Path parameter ${qc.bold(e)} is not suitable for code generation, because it can conflict with the request body parameter.`}]:[]}})};function Wgi({service:e,endpoint:t}){return e["base-path"]+t.path}var zMa=class{root=new cqu;registerEndpoint(t){this.root.insert(this.getPathPartsForEndpoint(t),t)}getConflictingEndpoints(t){return this.root.getMatchingEndpoints(this.getPathPartsForEndpoint(t)).filter(r=>!(r.relativeFilepath===t.relativeFilepath&&r.endpointId===t.endpointId)&&r.endpoint.method===t.endpoint.method)}getPathPartsForEndpoint(t){return Wgi({service:t.service,endpoint:t.endpoint}).split("/").filter(r=>r.length>0)}},cqu=class e{childPaths={};childPathParam;endpointsThatEndWithThisNode=[];insert(t,r){let[n,...i]=t;if(n==null){this.endpointsThatEndWithThisNode.push(r);return}(this.isPathParam(n)?this.childPathParam??=new e:this.childPaths[n]??=new e).insert(i,r)}getMatchingEndpoints(t){let[r,...n]=t;if(r==null)return this.endpointsThatEndWithThisNode;let i=[];if(this.isPathParam(r))i.push(...Object.values(this.childPaths).flatMap(a=>a.getMatchingEndpoints(n)));else{let a=this.childPaths[r];a!=null&&i.push(...a.getMatchingEndpoints(n))}return this.childPathParam!=null&&i.push(...this.childPathParam.getMatchingEndpoints(n)),i}isPathParam(t){return t.startsWith("{")&&t.endsWith("}")}};var lqu={name:"no-conflicting-endpoint-paths",create:async({workspace:e})=>{let t=new zMa;return await D3(e,async(r,n)=>{await BW(n,{httpEndpoint:({service:i,endpointId:a,endpoint:u})=>{t.registerEndpoint({service:i,endpointId:a,endpoint:u,relativeFilepath:r})}})}),{definitionFile:{httpEndpoint:({service:r,endpoint:n,endpointId:i},{relativeFilepath:a})=>{let u=t.getConflictingEndpoints({service:r,endpointId:i,endpoint:n,relativeFilepath:a});return u.length===0?[]:[{severity:"warning",message:[`Endpoint path ${Wgi({service:r,endpoint:n})} conflicts with other endpoints:`,...u.map(f=>` - ${f.relativeFilepath} -> ${f.endpointId} ${qc.dim(Wgi({service:f.service,endpoint:f.endpoint}))}`)].join(`
1952
1952
  `)}]}}}}};var fqu={name:"no-conflicting-request-wrapper-properties",create:({workspace:e})=>({definitionFile:{httpEndpoint:({endpoint:t,service:r},{contents:n,relativeFilepath:i})=>{let a=L2w({endpoint:t,service:r,relativeFilepath:i,definitionFile:n,workspace:e}),u=[];for(let[f,d]of Object.entries(a))d.length<=1||u.push({severity:"error",message:`Multiple request properties have the name ${qc.bold(f)}. This is not suitable for code generation. Use the "name" property to deconflict.
1953
1953
  `+d.map(c=>` - ${U2w(c)}`).join(`