fern-api 0.45.0-rc41 → 0.45.0-rc42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +4 -4
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1785,7 +1785,7 @@ ${l.indent}`:""}${oVc(o)}:${f.indent?" ":""}`;return u=!1,c=!0,f.objectItem=void
|
|
|
1785
1785
|
`}),r.replaceAll(/\n$/g,"")}function zfj(e){return e?qc.green(jNr.radioOn):jNr.radioOff}var lha=Jo(lwe(),1);function Rsf(e,t){return e=String(e),t=typeof t=="string"?t:"*",e.length===0?"":Array.from({length:e.length+1}).join(t)}var wpi=class extends p8{_run(t){this.done=t;let r=oW(this.rl),n=r.line.pipe((0,lha.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,lha.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(Rsf(t,this.opt.mask)):qc.italic.dim("[hidden]"):this.opt.mask?Rsf(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 flf=Jo(llf(),1),dlf=Jo(lwe(),1);var Bpi=class extends p8{_run(t){this.done=t,this.editorResult=new dlf.Subject;let r=oW(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,flf.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 mlf=Jo(hlf(),1);var blf=Jo(require("readline"),1),glf=Jo(vlf(),1),ckr=class{constructor(t){this.rl||=blf.default.createInterface(Sdj(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 Sdj(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 glf.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var Ipi=class extends ckr{constructor(t={}){super(t),this.log=(0,mlf.default)(this.writeLog.bind(this)),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return ypi(this.rl,this.bottomBar.split(`
|
|
1787
1787
|
`).length),this}updateBottomBar(t){return ypi(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&&oha(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Tlf=Jo(jlf(),1),xlf=Jo(cuu(),1),qlf=Jo(Alf(),1),Qx=Jo(lwe(),1),Clf=Jo(wdi(),1);var Tha=Jo(lwe(),1),Mlf=Jo(wdi(),1),xha=function(e,t,r){return typeof e[t]!="function"?(0,Tha.of)(e):(0,Tha.from)((0,Mlf.default)(e[t])(r).then(n=>(e[t]=n,e)))};var zpi={isPlainObject:Tlf.default,set:qlf.default,get:xlf.default},wBn=class extends ckr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=zpi.isPlainObject(r)?{...r}:{},zpi.isPlainObject(t)&&(t=Object.values(t).every(i=>zpi.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)=>(zpi.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)(()=>xha(t,"message",this.answers)),(0,Qx.concatMap)(()=>xha(t,"default",this.answers)),(0,Qx.concatMap)(()=>xha(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&&zpi.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,Clf.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Qx.filter)(n=>n!=null)))}};function Blf(e){let t=function(r,n){let i;try{i=new wBn(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",bpi),this.registerPrompt("input",tkr),this.registerPrompt("number",gpi),this.registerPrompt("confirm",mpi),this.registerPrompt("rawlist",Opi),this.registerPrompt("expand",Ppi),this.registerPrompt("checkbox",jpi),this.registerPrompt("password",wpi),this.registerPrompt("editor",Bpi)},t.restoreDefaultPrompts(),t}var ocu=Blf();function Hdj(e,t){ocu.registerPrompt(e,t)}function Jdj(){ocu.restoreDefaultPrompts()}var Qdj={prompt:ocu,ui:{BottomBar:Ipi,Prompt:wBn},createPromptModule:Blf,registerPrompt:Hdj,restoreDefaultPrompts:Jdj,Separator:pne},qha=Qdj;var Hff=Jo(Ilf()),yhj="4.2.1",kCt;(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"})(kCt||(kCt={}));function vhj(e,t){if(!e)throw new Error(t)}function bhj(e){return e?.replace(/\/+$/,"")}async function ghj(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 mhj(){return new Date().getTime()}function zff(){return new Date().toISOString()}function Jff(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Gpi=String.fromCharCode,Nff="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Jha={};function Ohj(e,t){if(!Jha[e]){Jha[e]={};for(let r=0;r<e.length;r++)Jha[e][e.charAt(r)]=r}return Jha[e][t]}var $pi={compressToBase64:function(e){if(e==null)return"";let t=$pi._compress(e,6,function(r){return Nff.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:$pi._decompress(e.length,32,function(t){return Ohj(Nff,e.charAt(t))})},compress:function(e){return $pi._compress(e,16,function(t){return Gpi(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:$pi._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=Gpi(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=Gpi(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++]=Gpi(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++]=Gpi(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++)}}},Gcu=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 Qha="0123456789abcdef",Gha=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+=Qha.charAt(this.bytes[r]>>>4),t+=Qha.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+=Qha.charAt(this.bytes[r]>>>4),t+=Qha.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}},$cu=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??Phj()}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 Gha.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,Gha.ofInner(t)}},Phj=()=>({nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}),Fff,Rff=()=>jhj().toString(),jhj=()=>(Fff||(Fff=new $cu)).generate(),$ha=class extends Error{constructor(t){super("HTTP error while fetching PostHog: "+t.status),this.response=t,this.name="PostHogFetchHttpError"}},Kpi=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};function Lff(e){return typeof e=="object"&&(e instanceof $ha||e instanceof Kpi)}var Kcu=class{constructor(t,r){this.flushPromise=null,this.disableGeoip=!0,this.historicalMigration=!1,this.disabled=!1,this.defaultOptIn=!0,this.pendingPromises={},this._events=new Gcu,this._isInitialized=!1,vhj(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=bhj(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:Lff},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(kCt.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(kCt.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(kCt.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=Rff();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:zff(),uuid:n?.uuid?n.uuid:Rff()};(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(kCt.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(kCt.Queue,u),this._events.emit(t,i),u.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=Jff(()=>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(kCt.Queue)||[];if(!t.length)return[];let r=t.slice(0,this.maxBatchSize),n=r.map(c=>c.message),i=()=>{let c=this.getPersistedProperty(kCt.Queue)||[];this.setPersistedProperty(kCt.Queue,c.slice(r.length))},a={api_key:this.apiKey,batch:n,sent_at:zff()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),f=this.captureMode==="form"?`${this.host}/e/?ip=1&_=${mhj()}&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($pi.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 Kpi||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 ghj(async()=>{let u=null;try{u=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(d){throw new Kpi(d)}if(!(r.mode==="no-cors")&&(u.status<200||u.status>=400))throw new $ha(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(kCt.Queue)||[]).length!==0;){await this.flush();let i=Date.now();if(r<i)break}}catch(r){if(!Lff(r))throw r;this.logMsgIfDebug(()=>console.error("Error while shutting down PostHog",r))}}},Ycu=class{constructor(){this._memoryStorage={}}getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}},Xcu=typeof fetch<"u"?fetch:typeof global.fetch<"u"?global.fetch:void 0;if(!Xcu){let e=Iff();Xcu=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 Qff=Xcu,whj=1152921504606847e3,Dhj=["is_not"],Kha=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)}},Zcu=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||Qff,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=$ff(f,i,this.cohorts,this.debugMode):c=Gff(f,i,u),!c)return!1}if(a==null)return!0}return!(a!=null&&Uff(t.key,r)>a/100)}getMatchingVariant(t,r){let n=Uff(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 Kha("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 Kha&&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=Jff(()=>{i.abort()},this.timeout),r.signal=i.signal}try{return await this.fetch(t,r)}finally{clearTimeout(n)}}stopPoller(){clearTimeout(this.poller)}};function Uff(e,t,r=""){let n=(0,Hff.createHash)();return n.update(`${e}.${t}${r}`),parseInt(n.digest("hex").slice(0,15),16)/whj}function Gff(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&&!Dhj.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 Vff(String(i))&&String(u).match(String(i))!==null;case"not_regex":return Vff(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=Shj(String(i));if(c==null&&(c=Wff(i)),c==null)throw new _8(`Invalid date: ${i}`);let o=Wff(u);return["is_date_before"].includes(a)?o<c:o>c}default:throw new _8(`Unknown operator: ${a}`)}}function $ff(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 Kff(a,t,r,n)}function Kff(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=Kff(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=$ff(f,t,r,n):d=Gff(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 Vff(e){try{return new RegExp(e),!0}catch{return!1}}function Wff(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 Shj(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 Ehj=30*1e3,Ahj=50*1e3,xBn=class extends Kcu{constructor(t,r={}){super(t,r),this._memoryStorage=new Ycu,this.options=r,r.personalApiKey&&(this.featureFlagsPoller=new Zcu({pollingInterval:typeof r.featureFlagsPollingInterval=="number"?r.featureFlagsPollingInterval:Ehj,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||Ahj}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):Qff(t,r)}getLibraryId(){return"posthog-node"}getLibraryVersion(){return yhj}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}}},kcu=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})}};kcu.POSTHOG_ID_TAG="posthog_distinct_id";var Yha=class{posthog;constructor({posthogApiKey:t}){this.posthog=new xBn(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-rc41",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var Ypi=class{async sendEvent(){}async identify(){}async flush(){}};var qBn=require("fs/promises"),kff=require("os"),edf=require("path");var Yff=Jo(require("crypto")),Zha=new Uint8Array(256),Xha=Zha.length;function elu(){return Xha>Zha.length-16&&(Yff.default.randomFillSync(Zha),Xha=0),Zha.slice(Xha,Xha+=16)}var cW=[];for(let e=0;e<256;++e)cW.push((e+256).toString(16).slice(1));function Xff(e,t=0){return cW[e[t+0]]+cW[e[t+1]]+cW[e[t+2]]+cW[e[t+3]]+"-"+cW[e[t+4]]+cW[e[t+5]]+"-"+cW[e[t+6]]+cW[e[t+7]]+"-"+cW[e[t+8]]+cW[e[t+9]]+"-"+cW[e[t+10]]+cW[e[t+11]]+cW[e[t+12]]+cW[e[t+13]]+cW[e[t+14]]+cW[e[t+15]]}var Zff=Jo(require("crypto")),tlu={randomUUID:Zff.default.randomUUID};function Mhj(e,t,r){if(tlu.randomUUID&&!t&&!e)return tlu.randomUUID();e=e||{};let n=e.random||(e.rng||elu)();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 Xff(n)}var c6r=Mhj;var Thj="id",xhj=".fern",Xpi=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new xBn(r),this.userId=t==null?void 0:vru(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-rc41",...t,...t.properties}})}async flush(){await this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Wl(Hp.of((0,kff.homedir)()),ls.of(xhj),ls.of(Thj));await _h(t)||(await(0,qBn.mkdir)((0,edf.dirname)(t),{recursive:!0}),await(0,qBn.writeFile)(t,c6r())),this.persistedDistinctId=(await(0,qBn.readFile)(t)).toString()}return this.persistedDistinctId}};var rlu;async function CBn(){return rlu==null&&(rlu=await qhj()),rlu}async function qhj(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new Ypi;let r=await oca();return r!=null?new Xpi({token:r,posthogApiKey:e}):await aca()!=null?new Yha({posthogApiKey:e}):new Xpi({token:void 0,posthogApiKey:e})}catch{return new Ypi}}function Zpi(e,t){return function(){return e.apply(t,arguments)}}var{toString:Chj}=Object.prototype,{getPrototypeOf:alu}=Object,eya=(e=>t=>{let r=Chj.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),e2t=e=>(e=e.toLowerCase(),t=>eya(t)===e),tya=e=>t=>typeof t===e,{isArray:BBn}=Array,kpi=tya("undefined");function Bhj(e){return e!==null&&!kpi(e)&&e.constructor!==null&&!kpi(e.constructor)&&dwe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var ndf=e2t("ArrayBuffer");function Ihj(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ndf(e.buffer),t}var zhj=tya("string"),dwe=tya("function"),idf=tya("number"),rya=e=>e!==null&&typeof e=="object",Nhj=e=>e===!0||e===!1,kha=e=>{if(eya(e)!=="object")return!1;let t=alu(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Fhj=e2t("Date"),Rhj=e2t("File"),Lhj=e2t("Blob"),Uhj=e2t("FileList"),Vhj=e=>rya(e)&&dwe(e.pipe),Whj=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||dwe(e.append)&&((t=eya(e))==="formdata"||t==="object"&&dwe(e.toString)&&e.toString()==="[object FormData]"))},Hhj=e2t("URLSearchParams"),[Jhj,Qhj,Ghj,$hj]=["ReadableStream","Request","Response","Headers"].map(e2t),Khj=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function e_i(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),BBn(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 adf(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 pkr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,odf=e=>!kpi(e)&&e!==pkr;function ilu(){let{caseless:e}=odf(this)&&this||{},t={},r=(n,i)=>{let a=e&&adf(t,i)||i;kha(t[a])&&kha(n)?t[a]=ilu(t[a],n):kha(n)?t[a]=ilu({},n):BBn(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n<i;n++)arguments[n]&&e_i(arguments[n],r);return t}var Yhj=(e,t,r,{allOwnKeys:n}={})=>(e_i(t,(i,a)=>{r&&dwe(i)?e[a]=Zpi(i,r):e[a]=i},{allOwnKeys:n}),e),Xhj=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Zhj=(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)},khj=(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&&alu(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},eyj=(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},tyj=e=>{if(!e)return null;if(BBn(e))return e;let t=e.length;if(!idf(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},ryj=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&alu(Uint8Array)),nyj=(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])}},iyj=(e,t)=>{let r,n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},ayj=e2t("HTMLFormElement"),oyj=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),tdf=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),uyj=e2t("RegExp"),udf=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};e_i(r,(i,a)=>{let u;(u=t(i,a,e))!==!1&&(n[a]=u||i)}),Object.defineProperties(e,n)},syj=e=>{udf(e,(t,r)=>{if(dwe(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let n=e[r];if(dwe(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+"'")})}})},cyj=(e,t)=>{let r={},n=i=>{i.forEach(a=>{r[a]=!0})};return BBn(e)?n(e):n(String(e).split(t)),r},lyj=()=>{},fyj=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,nlu="abcdefghijklmnopqrstuvwxyz",rdf="0123456789",sdf={DIGIT:rdf,ALPHA:nlu,ALPHA_DIGIT:nlu+nlu.toUpperCase()+rdf},dyj=(e=16,t=sdf.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function pyj(e){return!!(e&&dwe(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}var _yj=e=>{let t=new Array(10),r=(n,i)=>{if(rya(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;let a=BBn(n)?[]:{};return e_i(n,(u,f)=>{let d=r(u,i+1);!kpi(d)&&(a[f]=d)}),t[i]=void 0,a}}return n};return r(e,0)},hyj=e2t("AsyncFunction"),yyj=e=>e&&(rya(e)||dwe(e))&&dwe(e.then)&&dwe(e.catch),cdf=((e,t)=>e?setImmediate:t?((r,n)=>(pkr.addEventListener("message",({source:i,data:a})=>{i===pkr&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),pkr.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",dwe(pkr.postMessage)),vyj=typeof queueMicrotask<"u"?queueMicrotask.bind(pkr):typeof process<"u"&&process.nextTick||cdf,Ol={isArray:BBn,isArrayBuffer:ndf,isBuffer:Bhj,isFormData:Whj,isArrayBufferView:Ihj,isString:zhj,isNumber:idf,isBoolean:Nhj,isObject:rya,isPlainObject:kha,isReadableStream:Jhj,isRequest:Qhj,isResponse:Ghj,isHeaders:$hj,isUndefined:kpi,isDate:Fhj,isFile:Rhj,isBlob:Lhj,isRegExp:uyj,isFunction:dwe,isStream:Vhj,isURLSearchParams:Hhj,isTypedArray:ryj,isFileList:Uhj,forEach:e_i,merge:ilu,extend:Yhj,trim:Khj,stripBOM:Xhj,inherits:Zhj,toFlatObject:khj,kindOf:eya,kindOfTest:e2t,endsWith:eyj,toArray:tyj,forEachEntry:nyj,matchAll:iyj,isHTMLForm:ayj,hasOwnProperty:tdf,hasOwnProp:tdf,reduceDescriptors:udf,freezeMethods:syj,toObjectSet:cyj,toCamelCase:oyj,noop:lyj,toFiniteNumber:fyj,findKey:adf,global:pkr,isContextDefined:odf,ALPHABET:sdf,generateString:dyj,isSpecCompliantForm:pyj,toJSONObject:_yj,isAsyncFn:hyj,isThenable:yyj,setImmediate:cdf,asap:vyj};function IBn(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(IBn,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 ldf=IBn.prototype,fdf={};["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=>{fdf[e]={value:e}});Object.defineProperties(IBn,fdf);Object.defineProperty(ldf,"isAxiosError",{value:!0});IBn.from=(e,t,r,n,i,a)=>{let u=Object.create(ldf);return Ol.toFlatObject(e,u,function(d){return d!==Error.prototype},f=>f!=="isAxiosError"),IBn.call(u,e.message,t,r,n,i),u.cause=e,u.name=e.name,a&&Object.assign(u,a),u};var sy=IBn;var ddf=Jo(azr(),1),nya=ddf.default;function olu(e){return Ol.isPlainObject(e)||Ol.isArray(e)}function _df(e){return Ol.endsWith(e,"[]")?e.slice(0,-2):e}function pdf(e,t,r){return e?e.concat(t).map(function(i,a){return i=_df(i),!r&&a?"["+i+"]":i}).join(r?".":""):t}function byj(e){return Ol.isArray(e)&&!e.some(olu)}var gyj=Ol.toFlatObject(Ol,{},null,function(t){return/^is[A-Z]/.test(t)});function myj(e,t,r){if(!Ol.isObject(e))throw new TypeError("target must be an object");t=t||new(nya||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)&&byj(j)||(Ol.isFileList(j)||Ol.endsWith(A,"[]"))&&(B=Ol.toArray(j)))return A=_df(A),B.forEach(function(C,N){!(Ol.isUndefined(C)||C===null)&&t.append(u===!0?pdf([A],N,a):u===null?A:A+"[]",c(C))}),!1}return olu(j)?!0:(t.append(pdf(T,A,a),c(j)),!1)}let l=[],m=Object.assign(gyj,{defaultVisitor:o,convertValue:c,isVisitable:olu});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 l6r=myj;function hdf(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function ydf(e,t){this._pairs=[],e&&l6r(e,this,t)}var vdf=ydf.prototype;vdf.append=function(t,r){this._pairs.push([t,r])};vdf.toString=function(t){let r=t?function(n){return t.call(this,n,hdf)}:hdf;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};var bdf=ydf;function Oyj(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function _kr(e,t,r){if(!t)return e;let n=r&&r.encode||Oyj,i=r&&r.serialize,a;if(i?a=i(t,r):a=Ol.isURLSearchParams(t)?t.toString():new bdf(t,r).toString(n),a){let u=e.indexOf("#");u!==-1&&(e=e.slice(0,u)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var ulu=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)})}},slu=ulu;var zBn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var gdf=Jo(require("url"),1),mdf=gdf.default.URLSearchParams;var Odf={isNode:!0,classes:{URLSearchParams:mdf,FormData:nya,Blob:typeof Blob<"u"&&Blob||null},protocols:["http","https","file","data"]};var flu={};Dc(flu,{hasBrowserEnv:()=>llu,hasStandardBrowserEnv:()=>Pyj,hasStandardBrowserWebWorkerEnv:()=>jyj,navigator:()=>clu,origin:()=>wyj});var llu=typeof window<"u"&&typeof document<"u",clu=typeof navigator=="object"&&navigator||void 0,Pyj=llu&&(!clu||["ReactNative","NativeScript","NS"].indexOf(clu.product)<0),jyj=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",wyj=llu&&window.location.href||"http://localhost";var _2={...flu,...Odf};function dlu(e,t){return l6r(e,new _2.classes.URLSearchParams,Object.assign({visitor:function(r,n,i,a){return _2.isNode&&Ol.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function Dyj(e){return Ol.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Syj(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 Eyj(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]=Syj(i[u])),!f)}if(Ol.isFormData(e)&&Ol.isFunction(e.entries)){let r={};return Ol.forEachEntry(e,(n,i)=>{t(Dyj(n),i,r,0)}),r}return null}var iya=Eyj;function Ayj(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 plu={transitional:zBn,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(iya(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 dlu(t,this.formSerializer).toString();if((f=Ol.isFileList(t))||n.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return l6r(f?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||i?(r.setContentType("application/json",!1),Ayj(t)):t}],transformResponse:[function(t){let r=this.transitional||plu.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:_2.classes.FormData,Blob:_2.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=>{plu.headers[e]={}});var NBn=plu;var Myj=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"]),Pdf=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&&oha(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Tlf=Jo(jlf(),1),xlf=Jo(cuu(),1),qlf=Jo(Alf(),1),Qx=Jo(lwe(),1),Clf=Jo(wdi(),1);var Tha=Jo(lwe(),1),Mlf=Jo(wdi(),1),xha=function(e,t,r){return typeof e[t]!="function"?(0,Tha.of)(e):(0,Tha.from)((0,Mlf.default)(e[t])(r).then(n=>(e[t]=n,e)))};var zpi={isPlainObject:Tlf.default,set:qlf.default,get:xlf.default},wBn=class extends ckr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=zpi.isPlainObject(r)?{...r}:{},zpi.isPlainObject(t)&&(t=Object.values(t).every(i=>zpi.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)=>(zpi.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)(()=>xha(t,"message",this.answers)),(0,Qx.concatMap)(()=>xha(t,"default",this.answers)),(0,Qx.concatMap)(()=>xha(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&&zpi.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,Clf.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Qx.filter)(n=>n!=null)))}};function Blf(e){let t=function(r,n){let i;try{i=new wBn(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",bpi),this.registerPrompt("input",tkr),this.registerPrompt("number",gpi),this.registerPrompt("confirm",mpi),this.registerPrompt("rawlist",Opi),this.registerPrompt("expand",Ppi),this.registerPrompt("checkbox",jpi),this.registerPrompt("password",wpi),this.registerPrompt("editor",Bpi)},t.restoreDefaultPrompts(),t}var ocu=Blf();function Hdj(e,t){ocu.registerPrompt(e,t)}function Jdj(){ocu.restoreDefaultPrompts()}var Qdj={prompt:ocu,ui:{BottomBar:Ipi,Prompt:wBn},createPromptModule:Blf,registerPrompt:Hdj,restoreDefaultPrompts:Jdj,Separator:pne},qha=Qdj;var Hff=Jo(Ilf()),yhj="4.2.1",kCt;(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"})(kCt||(kCt={}));function vhj(e,t){if(!e)throw new Error(t)}function bhj(e){return e?.replace(/\/+$/,"")}async function ghj(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 mhj(){return new Date().getTime()}function zff(){return new Date().toISOString()}function Jff(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Gpi=String.fromCharCode,Nff="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Jha={};function Ohj(e,t){if(!Jha[e]){Jha[e]={};for(let r=0;r<e.length;r++)Jha[e][e.charAt(r)]=r}return Jha[e][t]}var $pi={compressToBase64:function(e){if(e==null)return"";let t=$pi._compress(e,6,function(r){return Nff.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:$pi._decompress(e.length,32,function(t){return Ohj(Nff,e.charAt(t))})},compress:function(e){return $pi._compress(e,16,function(t){return Gpi(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:$pi._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=Gpi(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=Gpi(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++]=Gpi(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++]=Gpi(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++)}}},Gcu=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 Qha="0123456789abcdef",Gha=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+=Qha.charAt(this.bytes[r]>>>4),t+=Qha.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+=Qha.charAt(this.bytes[r]>>>4),t+=Qha.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}},$cu=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??Phj()}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 Gha.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,Gha.ofInner(t)}},Phj=()=>({nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}),Fff,Rff=()=>jhj().toString(),jhj=()=>(Fff||(Fff=new $cu)).generate(),$ha=class extends Error{constructor(t){super("HTTP error while fetching PostHog: "+t.status),this.response=t,this.name="PostHogFetchHttpError"}},Kpi=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};function Lff(e){return typeof e=="object"&&(e instanceof $ha||e instanceof Kpi)}var Kcu=class{constructor(t,r){this.flushPromise=null,this.disableGeoip=!0,this.historicalMigration=!1,this.disabled=!1,this.defaultOptIn=!0,this.pendingPromises={},this._events=new Gcu,this._isInitialized=!1,vhj(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=bhj(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:Lff},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(kCt.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(kCt.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(kCt.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=Rff();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:zff(),uuid:n?.uuid?n.uuid:Rff()};(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(kCt.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(kCt.Queue,u),this._events.emit(t,i),u.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=Jff(()=>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(kCt.Queue)||[];if(!t.length)return[];let r=t.slice(0,this.maxBatchSize),n=r.map(c=>c.message),i=()=>{let c=this.getPersistedProperty(kCt.Queue)||[];this.setPersistedProperty(kCt.Queue,c.slice(r.length))},a={api_key:this.apiKey,batch:n,sent_at:zff()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),f=this.captureMode==="form"?`${this.host}/e/?ip=1&_=${mhj()}&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($pi.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 Kpi||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 ghj(async()=>{let u=null;try{u=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(d){throw new Kpi(d)}if(!(r.mode==="no-cors")&&(u.status<200||u.status>=400))throw new $ha(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(kCt.Queue)||[]).length!==0;){await this.flush();let i=Date.now();if(r<i)break}}catch(r){if(!Lff(r))throw r;this.logMsgIfDebug(()=>console.error("Error while shutting down PostHog",r))}}},Ycu=class{constructor(){this._memoryStorage={}}getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}},Xcu=typeof fetch<"u"?fetch:typeof global.fetch<"u"?global.fetch:void 0;if(!Xcu){let e=Iff();Xcu=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 Qff=Xcu,whj=1152921504606847e3,Dhj=["is_not"],Kha=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)}},Zcu=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||Qff,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=$ff(f,i,this.cohorts,this.debugMode):c=Gff(f,i,u),!c)return!1}if(a==null)return!0}return!(a!=null&&Uff(t.key,r)>a/100)}getMatchingVariant(t,r){let n=Uff(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 Kha("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 Kha&&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=Jff(()=>{i.abort()},this.timeout),r.signal=i.signal}try{return await this.fetch(t,r)}finally{clearTimeout(n)}}stopPoller(){clearTimeout(this.poller)}};function Uff(e,t,r=""){let n=(0,Hff.createHash)();return n.update(`${e}.${t}${r}`),parseInt(n.digest("hex").slice(0,15),16)/whj}function Gff(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&&!Dhj.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 Vff(String(i))&&String(u).match(String(i))!==null;case"not_regex":return Vff(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=Shj(String(i));if(c==null&&(c=Wff(i)),c==null)throw new _8(`Invalid date: ${i}`);let o=Wff(u);return["is_date_before"].includes(a)?o<c:o>c}default:throw new _8(`Unknown operator: ${a}`)}}function $ff(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 Kff(a,t,r,n)}function Kff(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=Kff(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=$ff(f,t,r,n):d=Gff(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 Vff(e){try{return new RegExp(e),!0}catch{return!1}}function Wff(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 Shj(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 Ehj=30*1e3,Ahj=50*1e3,xBn=class extends Kcu{constructor(t,r={}){super(t,r),this._memoryStorage=new Ycu,this.options=r,r.personalApiKey&&(this.featureFlagsPoller=new Zcu({pollingInterval:typeof r.featureFlagsPollingInterval=="number"?r.featureFlagsPollingInterval:Ehj,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||Ahj}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):Qff(t,r)}getLibraryId(){return"posthog-node"}getLibraryVersion(){return yhj}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}}},kcu=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})}};kcu.POSTHOG_ID_TAG="posthog_distinct_id";var Yha=class{posthog;constructor({posthogApiKey:t}){this.posthog=new xBn(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-rc42",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var Ypi=class{async sendEvent(){}async identify(){}async flush(){}};var qBn=require("fs/promises"),kff=require("os"),edf=require("path");var Yff=Jo(require("crypto")),Zha=new Uint8Array(256),Xha=Zha.length;function elu(){return Xha>Zha.length-16&&(Yff.default.randomFillSync(Zha),Xha=0),Zha.slice(Xha,Xha+=16)}var cW=[];for(let e=0;e<256;++e)cW.push((e+256).toString(16).slice(1));function Xff(e,t=0){return cW[e[t+0]]+cW[e[t+1]]+cW[e[t+2]]+cW[e[t+3]]+"-"+cW[e[t+4]]+cW[e[t+5]]+"-"+cW[e[t+6]]+cW[e[t+7]]+"-"+cW[e[t+8]]+cW[e[t+9]]+"-"+cW[e[t+10]]+cW[e[t+11]]+cW[e[t+12]]+cW[e[t+13]]+cW[e[t+14]]+cW[e[t+15]]}var Zff=Jo(require("crypto")),tlu={randomUUID:Zff.default.randomUUID};function Mhj(e,t,r){if(tlu.randomUUID&&!t&&!e)return tlu.randomUUID();e=e||{};let n=e.random||(e.rng||elu)();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 Xff(n)}var c6r=Mhj;var Thj="id",xhj=".fern",Xpi=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new xBn(r),this.userId=t==null?void 0:vru(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-rc42",...t,...t.properties}})}async flush(){await this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Wl(Hp.of((0,kff.homedir)()),ls.of(xhj),ls.of(Thj));await _h(t)||(await(0,qBn.mkdir)((0,edf.dirname)(t),{recursive:!0}),await(0,qBn.writeFile)(t,c6r())),this.persistedDistinctId=(await(0,qBn.readFile)(t)).toString()}return this.persistedDistinctId}};var rlu;async function CBn(){return rlu==null&&(rlu=await qhj()),rlu}async function qhj(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new Ypi;let r=await oca();return r!=null?new Xpi({token:r,posthogApiKey:e}):await aca()!=null?new Yha({posthogApiKey:e}):new Xpi({token:void 0,posthogApiKey:e})}catch{return new Ypi}}function Zpi(e,t){return function(){return e.apply(t,arguments)}}var{toString:Chj}=Object.prototype,{getPrototypeOf:alu}=Object,eya=(e=>t=>{let r=Chj.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),e2t=e=>(e=e.toLowerCase(),t=>eya(t)===e),tya=e=>t=>typeof t===e,{isArray:BBn}=Array,kpi=tya("undefined");function Bhj(e){return e!==null&&!kpi(e)&&e.constructor!==null&&!kpi(e.constructor)&&dwe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var ndf=e2t("ArrayBuffer");function Ihj(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ndf(e.buffer),t}var zhj=tya("string"),dwe=tya("function"),idf=tya("number"),rya=e=>e!==null&&typeof e=="object",Nhj=e=>e===!0||e===!1,kha=e=>{if(eya(e)!=="object")return!1;let t=alu(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Fhj=e2t("Date"),Rhj=e2t("File"),Lhj=e2t("Blob"),Uhj=e2t("FileList"),Vhj=e=>rya(e)&&dwe(e.pipe),Whj=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||dwe(e.append)&&((t=eya(e))==="formdata"||t==="object"&&dwe(e.toString)&&e.toString()==="[object FormData]"))},Hhj=e2t("URLSearchParams"),[Jhj,Qhj,Ghj,$hj]=["ReadableStream","Request","Response","Headers"].map(e2t),Khj=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function e_i(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),BBn(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 adf(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 pkr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,odf=e=>!kpi(e)&&e!==pkr;function ilu(){let{caseless:e}=odf(this)&&this||{},t={},r=(n,i)=>{let a=e&&adf(t,i)||i;kha(t[a])&&kha(n)?t[a]=ilu(t[a],n):kha(n)?t[a]=ilu({},n):BBn(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n<i;n++)arguments[n]&&e_i(arguments[n],r);return t}var Yhj=(e,t,r,{allOwnKeys:n}={})=>(e_i(t,(i,a)=>{r&&dwe(i)?e[a]=Zpi(i,r):e[a]=i},{allOwnKeys:n}),e),Xhj=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Zhj=(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)},khj=(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&&alu(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},eyj=(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},tyj=e=>{if(!e)return null;if(BBn(e))return e;let t=e.length;if(!idf(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},ryj=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&alu(Uint8Array)),nyj=(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])}},iyj=(e,t)=>{let r,n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},ayj=e2t("HTMLFormElement"),oyj=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),tdf=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),uyj=e2t("RegExp"),udf=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};e_i(r,(i,a)=>{let u;(u=t(i,a,e))!==!1&&(n[a]=u||i)}),Object.defineProperties(e,n)},syj=e=>{udf(e,(t,r)=>{if(dwe(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let n=e[r];if(dwe(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+"'")})}})},cyj=(e,t)=>{let r={},n=i=>{i.forEach(a=>{r[a]=!0})};return BBn(e)?n(e):n(String(e).split(t)),r},lyj=()=>{},fyj=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,nlu="abcdefghijklmnopqrstuvwxyz",rdf="0123456789",sdf={DIGIT:rdf,ALPHA:nlu,ALPHA_DIGIT:nlu+nlu.toUpperCase()+rdf},dyj=(e=16,t=sdf.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function pyj(e){return!!(e&&dwe(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}var _yj=e=>{let t=new Array(10),r=(n,i)=>{if(rya(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;let a=BBn(n)?[]:{};return e_i(n,(u,f)=>{let d=r(u,i+1);!kpi(d)&&(a[f]=d)}),t[i]=void 0,a}}return n};return r(e,0)},hyj=e2t("AsyncFunction"),yyj=e=>e&&(rya(e)||dwe(e))&&dwe(e.then)&&dwe(e.catch),cdf=((e,t)=>e?setImmediate:t?((r,n)=>(pkr.addEventListener("message",({source:i,data:a})=>{i===pkr&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),pkr.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",dwe(pkr.postMessage)),vyj=typeof queueMicrotask<"u"?queueMicrotask.bind(pkr):typeof process<"u"&&process.nextTick||cdf,Ol={isArray:BBn,isArrayBuffer:ndf,isBuffer:Bhj,isFormData:Whj,isArrayBufferView:Ihj,isString:zhj,isNumber:idf,isBoolean:Nhj,isObject:rya,isPlainObject:kha,isReadableStream:Jhj,isRequest:Qhj,isResponse:Ghj,isHeaders:$hj,isUndefined:kpi,isDate:Fhj,isFile:Rhj,isBlob:Lhj,isRegExp:uyj,isFunction:dwe,isStream:Vhj,isURLSearchParams:Hhj,isTypedArray:ryj,isFileList:Uhj,forEach:e_i,merge:ilu,extend:Yhj,trim:Khj,stripBOM:Xhj,inherits:Zhj,toFlatObject:khj,kindOf:eya,kindOfTest:e2t,endsWith:eyj,toArray:tyj,forEachEntry:nyj,matchAll:iyj,isHTMLForm:ayj,hasOwnProperty:tdf,hasOwnProp:tdf,reduceDescriptors:udf,freezeMethods:syj,toObjectSet:cyj,toCamelCase:oyj,noop:lyj,toFiniteNumber:fyj,findKey:adf,global:pkr,isContextDefined:odf,ALPHABET:sdf,generateString:dyj,isSpecCompliantForm:pyj,toJSONObject:_yj,isAsyncFn:hyj,isThenable:yyj,setImmediate:cdf,asap:vyj};function IBn(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(IBn,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 ldf=IBn.prototype,fdf={};["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=>{fdf[e]={value:e}});Object.defineProperties(IBn,fdf);Object.defineProperty(ldf,"isAxiosError",{value:!0});IBn.from=(e,t,r,n,i,a)=>{let u=Object.create(ldf);return Ol.toFlatObject(e,u,function(d){return d!==Error.prototype},f=>f!=="isAxiosError"),IBn.call(u,e.message,t,r,n,i),u.cause=e,u.name=e.name,a&&Object.assign(u,a),u};var sy=IBn;var ddf=Jo(azr(),1),nya=ddf.default;function olu(e){return Ol.isPlainObject(e)||Ol.isArray(e)}function _df(e){return Ol.endsWith(e,"[]")?e.slice(0,-2):e}function pdf(e,t,r){return e?e.concat(t).map(function(i,a){return i=_df(i),!r&&a?"["+i+"]":i}).join(r?".":""):t}function byj(e){return Ol.isArray(e)&&!e.some(olu)}var gyj=Ol.toFlatObject(Ol,{},null,function(t){return/^is[A-Z]/.test(t)});function myj(e,t,r){if(!Ol.isObject(e))throw new TypeError("target must be an object");t=t||new(nya||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)&&byj(j)||(Ol.isFileList(j)||Ol.endsWith(A,"[]"))&&(B=Ol.toArray(j)))return A=_df(A),B.forEach(function(C,N){!(Ol.isUndefined(C)||C===null)&&t.append(u===!0?pdf([A],N,a):u===null?A:A+"[]",c(C))}),!1}return olu(j)?!0:(t.append(pdf(T,A,a),c(j)),!1)}let l=[],m=Object.assign(gyj,{defaultVisitor:o,convertValue:c,isVisitable:olu});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 l6r=myj;function hdf(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function ydf(e,t){this._pairs=[],e&&l6r(e,this,t)}var vdf=ydf.prototype;vdf.append=function(t,r){this._pairs.push([t,r])};vdf.toString=function(t){let r=t?function(n){return t.call(this,n,hdf)}:hdf;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};var bdf=ydf;function Oyj(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function _kr(e,t,r){if(!t)return e;let n=r&&r.encode||Oyj,i=r&&r.serialize,a;if(i?a=i(t,r):a=Ol.isURLSearchParams(t)?t.toString():new bdf(t,r).toString(n),a){let u=e.indexOf("#");u!==-1&&(e=e.slice(0,u)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var ulu=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)})}},slu=ulu;var zBn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var gdf=Jo(require("url"),1),mdf=gdf.default.URLSearchParams;var Odf={isNode:!0,classes:{URLSearchParams:mdf,FormData:nya,Blob:typeof Blob<"u"&&Blob||null},protocols:["http","https","file","data"]};var flu={};Dc(flu,{hasBrowserEnv:()=>llu,hasStandardBrowserEnv:()=>Pyj,hasStandardBrowserWebWorkerEnv:()=>jyj,navigator:()=>clu,origin:()=>wyj});var llu=typeof window<"u"&&typeof document<"u",clu=typeof navigator=="object"&&navigator||void 0,Pyj=llu&&(!clu||["ReactNative","NativeScript","NS"].indexOf(clu.product)<0),jyj=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",wyj=llu&&window.location.href||"http://localhost";var _2={...flu,...Odf};function dlu(e,t){return l6r(e,new _2.classes.URLSearchParams,Object.assign({visitor:function(r,n,i,a){return _2.isNode&&Ol.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function Dyj(e){return Ol.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Syj(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 Eyj(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]=Syj(i[u])),!f)}if(Ol.isFormData(e)&&Ol.isFunction(e.entries)){let r={};return Ol.forEachEntry(e,(n,i)=>{t(Dyj(n),i,r,0)}),r}return null}var iya=Eyj;function Ayj(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 plu={transitional:zBn,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(iya(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 dlu(t,this.formSerializer).toString();if((f=Ol.isFileList(t))||n.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return l6r(f?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||i?(r.setContentType("application/json",!1),Ayj(t)):t}],transformResponse:[function(t){let r=this.transitional||plu.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:_2.classes.FormData,Blob:_2.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=>{plu.headers[e]={}});var NBn=plu;var Myj=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"]),Pdf=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]&&Myj[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t};var jdf=Symbol("internals");function t_i(e){return e&&String(e).trim().toLowerCase()}function aya(e){return e===!1||e==null?e:Ol.isArray(e)?e.map(aya):String(e)}function Tyj(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 xyj=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function _lu(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 qyj(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function Cyj(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 FBn=class{constructor(t){t&&this.set(t)}set(t,r,n){let i=this;function a(f,d,c){let o=t_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]=aya(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())&&!xyj(t))u(Pdf(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=t_i(t),t){let n=Ol.findKey(this,t);if(n){let i=this[n];if(!r)return i;if(r===!0)return Tyj(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=t_i(t),t){let n=Ol.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||_lu(this,this[n],n,r)))}return!1}delete(t,r){let n=this,i=!1;function a(u){if(u=t_i(u),u){let f=Ol.findKey(n,u);f&&(!r||_lu(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||_lu(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]=aya(i),delete r[a];return}let f=t?qyj(a):String(a).trim();f!==a&&delete r[a],r[f]=aya(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[jdf]=this[jdf]={accessors:{}}).accessors,i=this.prototype;function a(u){let f=t_i(u);n[f]||(Cyj(i,u),n[f]=!0)}return Ol.isArray(t)?t.forEach(a):a(t),this}};FBn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ol.reduceDescriptors(FBn.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});Ol.freezeMethods(FBn);var vz=FBn;function r_i(e,t){let r=this||NBn,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 n_i(e){return!!(e&&e.__CANCEL__)}function wdf(e,t,r){sy.call(this,e??"canceled",sy.ERR_CANCELED,t,r),this.name="CanceledError"}Ol.inherits(wdf,sy,{__CANCEL__:!0});var pwe=wdf;function ZRt(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 hlu(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function ylu(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function hkr(e,t){return e&&!hlu(t)?ylu(e,t):t}var Ldf=Jo(scu(),1),Udf=Jo(require("http"),1),Vdf=Jo(require("https"),1),Wdf=Jo(require("util"),1),Hdf=Jo(Ocu(),1),FDr=Jo(require("zlib"),1);var ykr="1.7.7";function i_i(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}var Byj=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function vlu(e,t,r){let n=r&&r.Blob||_2.classes.Blob,i=i_i(e);if(t===void 0&&n&&(t=!0),i==="data"){e=i.length?e.slice(i.length+1):e;let a=Byj.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 vkr=Jo(require("stream"),1);var Ddf=Jo(require("stream"),1);var blu=Symbol("internals"),glu=class extends Ddf.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[blu]={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[blu];return r.onReadCallback&&r.onReadCallback(),super._read(t)}_transform(t,r,n){let i=this[blu],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)})}},mlu=glu;var Jdf=require("events");var Edf=require("util"),Adf=require("stream");var{asyncIterator:Sdf}=Symbol,Iyj=async function*(e){e.stream?yield*e.stream():e.arrayBuffer?yield await e.arrayBuffer():e[Sdf]?yield*e[Sdf]():yield e},oya=Iyj;var zyj=Ol.ALPHABET.ALPHA_DIGIT+"-_",a_i=new Edf.TextEncoder,f6r=`\r
|
|
1791
1791
|
`,Nyj=a_i.encode(f6r),Fyj=2,Olu=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)}"`:""}${f6r}`;i?r=a_i.encode(String(r).replace(/\r?\n|\r\n?/g,f6r)):a+=`Content-Type: ${r.type||"application/octet-stream"}${f6r}`,this.headers=a_i.encode(a+f6r),this.contentLength=i?r.byteLength:r.size,this.size=this.headers.byteLength+this.contentLength+Fyj,this.name=t,this.value=r}async*encode(){yield this.headers;let{value:t}=this;Ol.isTypedArray(t)?yield t:yield*oya(t),yield Nyj}static escapeName(t){return String(t).replace(/[\r\n"]/g,r=>({"\r":"%0D","\n":"%0A",'"':"%22"})[r])}},Ryj=(e,t,r)=>{let{tag:n="form-data-boundary",size:i=25,boundary:a=n+"-"+Ol.generateString(i,zyj)}=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=a_i.encode("--"+a+f6r),f=a_i.encode("--"+a+"--"+f6r+f6r),d=f.byteLength,c=Array.from(e.entries()).map(([l,m])=>{let O=new Olu(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),Adf.Readable.from(async function*(){for(let l of c)yield u,yield*l.encode();yield f}())},Mdf=Ryj;var Tdf=Jo(require("stream"),1),Plu=class extends Tdf.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)}},xdf=Plu;var Lyj=(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,qdf=Lyj;function Uyj(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 Cdf=Uyj;function Vyj(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 Bdf=Vyj;var NDr=(e,t,r=3)=>{let n=0,i=Cdf(50,250);return Bdf(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)},RBn=(e,t)=>{let r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},LBn=e=>(...t)=>Ol.asap(()=>e(...t));var Idf={flush:FDr.default.constants.Z_SYNC_FLUSH,finishFlush:FDr.default.constants.Z_SYNC_FLUSH},Wyj={flush:FDr.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:FDr.default.constants.BROTLI_OPERATION_FLUSH},zdf=Ol.isFunction(FDr.default.createBrotliDecompress),{http:Hyj,https:Jyj}=Hdf.default,Qyj=/https:?/,Ndf=_2.protocols.map(e=>e+":"),Fdf=(e,[t,r])=>(e.on("end",r).on("error",r),t);function Gyj(e,t){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,t)}function Qdf(e,t,r){let n=t;if(!n&&n!==!1){let i=(0,Ldf.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){Qdf(a,t,a.href)}}var $yj=typeof process<"u"&&Ol.kindOf(process)==="process",Kyj=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)}),Yyj=({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)}},Rdf=(e,t)=>Yyj(Ol.isObject(e)?e:{address:e,family:t}),Gdf=$yj&&function(t){return Kyj(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=qdf(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=>Rdf(On)):[Rdf(Mn,ar)];gn.all?Kt(Mr,mn):Kt(Mr,mn[0].address,mn[0].family)})}}let A=new Jdf.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 pwe(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=hkr(t.baseURL,t.url),C=new URL(F,_2.hasBrowserEnv?_2.origin:void 0),N=C.protocol||Ndf[0];if(N==="data:"){let cr;if(l!=="GET")return ZRt(n,i,{status:405,statusText:"method not allowed",headers:{},config:t});try{cr=vlu(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=vkr.default.Readable.from(cr)),ZRt(n,i,{data:cr,status:200,statusText:"OK",headers:new vz,config:t})}if(Ndf.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/"+ykr,!1);let{onUploadProgress:ne,onDownloadProgress:ge}=t,X=t.maxRate,k,xe;if(Ol.isSpecCompliantForm(u)){let cr=U.getContentType(/boundary=([-_\w\d]{10,70})/i);u=Mdf(u,Wr=>{U.set(Wr)},{tag:`axios-${ykr}-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 Wdf.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=vkr.default.Readable.from(oya(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&&(ne||k)&&(Ol.isStream(u)||(u=vkr.default.Readable.from(u,{objectMode:!1})),u=vkr.default.pipeline([u,new mlu({maxRate:Ol.toFiniteNumber(k)})],Ol.noop),ne&&u.on("progress",Fdf(u,RBn(vt,NDr(LBn(ne),!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=_kr(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"+(zdf?", 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:Gyj,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,Qdf(Ft,t.proxy,N+"//"+C.hostname+(C.port?":"+C.port:"")+Ft.path));let Zt,Vt=Qyj.test(Ft.protocol);if(Ft.agent=Vt?t.httpsAgent:t.httpAgent,t.transport?Zt=t.transport:t.maxRedirects===0?Zt=Vt?Vdf.default:Udf.default:(t.maxRedirects&&(Ft.maxRedirects=t.maxRedirects),t.beforeRedirect&&(Ft.beforeRedirects.config=t.beforeRedirect),Zt=Vt?Jyj:Hyj),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 mlu({maxRate:Ol.toFiniteNumber(xe)});ge&&On.on("progress",Fdf(On,RBn(Kt,NDr(LBn(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(FDr.default.createUnzip(Idf)),delete Wr.headers["content-encoding"];break;case"deflate":gn.push(new xdf),gn.push(FDr.default.createUnzip(Idf)),delete Wr.headers["content-encoding"];break;case"br":zdf&&(gn.push(FDr.default.createBrotliDecompress(Wyj)),delete Wr.headers["content-encoding"])}Mr=gn.length>1?vkr.default.pipeline(gn,Ol.noop):gn[0];let ar=vkr.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,ZRt(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))}ZRt(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||zBn;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 pwe("Request stream has been aborted",t,j))}),u.pipe(j)}else j.end(u)})};var $df=_2.hasStandardBrowserEnv?function(){let t=_2.navigator&&/(msie|trident)/i.test(_2.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 Kdf=_2.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 Ydf=e=>e instanceof vz?{...e}:e;function t2t(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(Ydf(c),Ydf(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 uya=e=>{let t=t2t({},e),{data:r,withXSRFToken:n,xsrfHeaderName:i,xsrfCookieName:a,headers:u,auth:f}=t;t.headers=u=vz.from(u),t.url=_kr(hkr(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(_2.hasStandardBrowserEnv||_2.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(_2.hasStandardBrowserEnv&&(n&&Ol.isFunction(n)&&(n=n(t)),n||n!==!1&&$df(t.url))){let c=i&&a&&Kdf.read(a);c&&u.set(i,c)}return t};var Xyj=typeof XMLHttpRequest<"u",Xdf=Xyj&&function(e){return new Promise(function(r,n){let i=uya(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};ZRt(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||zBn;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]=NDr(c,!0),T.addEventListener("progress",m)),d&&T.upload&&([l,O]=NDr(d),T.upload.addEventListener("progress",l),T.upload.addEventListener("loadend",O)),(i.cancelToken||i.signal)&&(o=C=>{T&&(n(!C||C.type?new pwe(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=i_i(i.url);if(F&&_2.protocols.indexOf(F)===-1){n(new sy("Unsupported protocol "+F+":",sy.ERR_BAD_REQUEST,e));return}T.send(a||null)})};var Zyj=(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 pwe(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}},Zdf=Zyj;var kyj=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},evj=async function*(e,t){for await(let r of tvj(e))yield*kyj(r,t)},tvj=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()}},jlu=(e,t,r,n)=>{let i=evj(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 cya=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",epf=cya&&typeof ReadableStream=="function",rvj=cya&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),tpf=(e,...t)=>{try{return!!e(...t)}catch{return!1}},nvj=epf&&tpf(()=>{let e=!1,t=new Request(_2.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),kdf=64*1024,wlu=epf&&tpf(()=>Ol.isReadableStream(new Response("").body)),sya={stream:wlu&&(e=>e.body)};cya&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!sya[t]&&(sya[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 ivj=async e=>{if(e==null)return 0;if(Ol.isBlob(e))return e.size;if(Ol.isSpecCompliantForm(e))return(await new Request(_2.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 rvj(e)).byteLength},avj=async(e,t)=>{let r=Ol.toFiniteNumber(e.getContentLength());return r??ivj(t)},rpf=cya&&(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}=uya(e);c=c?(c+"").toLowerCase():"text";let O=Zdf([i,a&&a.toAbortSignal()],u),j,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),T;try{if(d&&nvj&&r!=="get"&&r!=="head"&&(T=await avj(o,n))!==0){let U=new Request(t,{method:"POST",body:n,duplex:"half"}),ne;if(Ol.isFormData(n)&&(ne=U.headers.get("content-type"))&&o.setContentType(ne),U.body){let[ge,X]=RBn(T,NDr(LBn(d)));n=jlu(U.body,kdf,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=wlu&&(c==="stream"||c==="response");if(wlu&&(f||C&&A)){let U={};["status","statusText","headers"].forEach(k=>{U[k]=F[k]});let ne=Ol.toFiniteNumber(F.headers.get("content-length")),[ge,X]=f&&RBn(ne,NDr(LBn(f),!0))||[];F=new Response(jlu(F.body,kdf,ge,()=>{X&&X(),A&&A()}),U)}c=c||"text";let N=await sya[Ol.findKey(sya,c)||"text"](F,e);return!C&&A&&A(),await new Promise((U,ne)=>{ZRt(U,ne,{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 Dlu={http:Gdf,xhr:Xdf,fetch:rpf};Ol.forEach(Dlu,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});var npf=e=>`- ${e}`,ovj=e=>Ol.isFunction(e)||e===null||e===!1,lya={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=Dlu[(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.`),VBn(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function wpu({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!V0f(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 DDj(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?VBn(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function DDj(e){let r=await new U0f.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 SDj({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await H0f({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 H0f({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 H0f({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 J0f(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=bne(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 mva({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await SDj({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(...J0f(c,d,t.logger));else u.push(...J0f(f.versions,void 0,t.logger))}return u}var H_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 yIn=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var vIn=e=>e!==null&&typeof e=="object";var J_i=(...e)=>{for(let t of e)if((!vIn(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return Epu({},...e)},Dpu=(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 Ova(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:Epu(e[r]??[],t[r]??[])}var Spu=(e={},t={})=>({beforeRequest:Ova(e,t,"beforeRequest"),beforeRetry:Ova(e,t,"beforeRetry"),afterResponse:Ova(e,t,"afterResponse"),beforeError:Ova(e,t,"beforeError")}),Epu=(...e)=>{let t={},r={},n={};for(let i of e)if(Array.isArray(i))Array.isArray(t)||(t=[]),t=[...t,...i];else if(vIn(i)){for(let[a,u]of Object.entries(i))vIn(u)&&a in t&&(u=Epu(t[a],u)),t={...t,[a]:u};vIn(i.hooks)&&(n=Spu(n,i.hooks),t.hooks=n),vIn(i.headers)&&(r=Dpu(r,i.headers),t.headers=r)}return t};var Q0f=(()=>{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})(),G0f=typeof globalThis.AbortController=="function",$0f=typeof globalThis.ReadableStream=="function",K0f=typeof globalThis.FormData=="function",Pva=["get","post","put","patch","head","delete"],EDj=()=>{};EDj();var Y0f={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},jva=2147483647,wva=Symbol("stop"),X0f={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},Z0f={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 ebf=e=>Pva.includes(e)?e.toUpperCase():e,ADj=["get","put","head","delete","options","trace"],MDj=[408,413,429,500,502,503,504],TDj=[413,429,503],k0f={limit:2,methods:ADj,statusCodes:MDj,afterStatusCodes:TDj,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},tbf=(e={})=>{if(typeof e=="number")return{...k0f,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{...k0f,...e}};async function Apu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new yIn(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function Mpu(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 rbf=(e,t)=>{let r={};for(let n in t)!(n in Z0f)&&!(n in X0f)&&!(n in e)&&(r[n]=t[n]);return r};var Q_i=class e{static create(t,r){let n=new e(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>jva)throw new RangeError(`The \`timeout\` option cannot be greater than ${jva}`);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 H_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(!$0f)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(Y0f))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:Dpu(this._input.headers,r.headers),hooks:Spu({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:ebf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:tbf(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(G0f){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(Q0f&&(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);(K0f&&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 yIn)throw t;if(t instanceof H_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),jva);if(this._retryCount<1)throw r;await Mpu(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})===wva)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=rbf(this.request,this._options),r=this.request;return this.request=r.clone(),this._options.timeout===!1?this._options.fetch(r,t):Apu(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 Tpu=e=>{let t=(r,n)=>Q_i.create(r,J_i(e,n));for(let r of Pva)t[r]=(n,i)=>Q_i.create(n,J_i(e,i,{method:r}));return t.create=r=>Tpu(J_i(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),Tpu(J_i(e,r))),t.stop=wva,t},xDj=Tpu(),nbf=xDj;var Sbf=Jo(Dbf(),1);function Ipu(e){let t=(0,Sbf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var fOf=Jo(ggf(),1),dOf=Jo(lOf(),1),p_u=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},__u=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function h_u(e,t={}){let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Ipu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,fOf.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 nbf(u,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new p_u(e):l}if(t.allVersions)return c;let o=new __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 ahi(e,t){let{version:r}=await h_u(e.toLowerCase(),t);return r}async function SIn({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:ahi(e.packageName,{version:t?"prerelease":"latest"})}var pOf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Qva=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=tA.Info;constructor(t){this.ttyAwareLogger=new gva(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-rc41"}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 XAe}failWithoutThrowing(t,r){this.didSucceed=!1,hva({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),await(await CBn()).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 W0f({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
1911
|
+
`,n?VBn(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function DDj(e){let r=await new U0f.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 SDj({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await H0f({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 H0f({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 H0f({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 J0f(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=bne(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 mva({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await SDj({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(...J0f(c,d,t.logger));else u.push(...J0f(f.versions,void 0,t.logger))}return u}var H_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 yIn=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var vIn=e=>e!==null&&typeof e=="object";var J_i=(...e)=>{for(let t of e)if((!vIn(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return Epu({},...e)},Dpu=(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 Ova(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:Epu(e[r]??[],t[r]??[])}var Spu=(e={},t={})=>({beforeRequest:Ova(e,t,"beforeRequest"),beforeRetry:Ova(e,t,"beforeRetry"),afterResponse:Ova(e,t,"afterResponse"),beforeError:Ova(e,t,"beforeError")}),Epu=(...e)=>{let t={},r={},n={};for(let i of e)if(Array.isArray(i))Array.isArray(t)||(t=[]),t=[...t,...i];else if(vIn(i)){for(let[a,u]of Object.entries(i))vIn(u)&&a in t&&(u=Epu(t[a],u)),t={...t,[a]:u};vIn(i.hooks)&&(n=Spu(n,i.hooks),t.hooks=n),vIn(i.headers)&&(r=Dpu(r,i.headers),t.headers=r)}return t};var Q0f=(()=>{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})(),G0f=typeof globalThis.AbortController=="function",$0f=typeof globalThis.ReadableStream=="function",K0f=typeof globalThis.FormData=="function",Pva=["get","post","put","patch","head","delete"],EDj=()=>{};EDj();var Y0f={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},jva=2147483647,wva=Symbol("stop"),X0f={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},Z0f={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 ebf=e=>Pva.includes(e)?e.toUpperCase():e,ADj=["get","put","head","delete","options","trace"],MDj=[408,413,429,500,502,503,504],TDj=[413,429,503],k0f={limit:2,methods:ADj,statusCodes:MDj,afterStatusCodes:TDj,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},tbf=(e={})=>{if(typeof e=="number")return{...k0f,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{...k0f,...e}};async function Apu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new yIn(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function Mpu(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 rbf=(e,t)=>{let r={};for(let n in t)!(n in Z0f)&&!(n in X0f)&&!(n in e)&&(r[n]=t[n]);return r};var Q_i=class e{static create(t,r){let n=new e(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>jva)throw new RangeError(`The \`timeout\` option cannot be greater than ${jva}`);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 H_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(!$0f)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(Y0f))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:Dpu(this._input.headers,r.headers),hooks:Spu({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:ebf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:tbf(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(G0f){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(Q0f&&(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);(K0f&&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 yIn)throw t;if(t instanceof H_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),jva);if(this._retryCount<1)throw r;await Mpu(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})===wva)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=rbf(this.request,this._options),r=this.request;return this.request=r.clone(),this._options.timeout===!1?this._options.fetch(r,t):Apu(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 Tpu=e=>{let t=(r,n)=>Q_i.create(r,J_i(e,n));for(let r of Pva)t[r]=(n,i)=>Q_i.create(n,J_i(e,i,{method:r}));return t.create=r=>Tpu(J_i(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),Tpu(J_i(e,r))),t.stop=wva,t},xDj=Tpu(),nbf=xDj;var Sbf=Jo(Dbf(),1);function Ipu(e){let t=(0,Sbf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var fOf=Jo(ggf(),1),dOf=Jo(lOf(),1),p_u=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},__u=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function h_u(e,t={}){let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Ipu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,fOf.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 nbf(u,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new p_u(e):l}if(t.allVersions)return c;let o=new __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 ahi(e,t){let{version:r}=await h_u(e.toLowerCase(),t);return r}async function SIn({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:ahi(e.packageName,{version:t?"prerelease":"latest"})}var pOf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Qva=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=tA.Info;constructor(t){this.ttyAwareLogger=new gva(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-rc42"}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 XAe}failWithoutThrowing(t,r){this.didSucceed=!1,hva({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),await(await CBn()).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 W0f({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=aUo(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 N_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 XAe}finally{n.finish()}return i}async instrumentPostHogEvent(t){(await CBn()).sendEvent(t)}logger=aci(this.log.bind(this));constructTaskInitForWorkspace(t){let r=_Of(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?_Of(this.longestWorkspaceName):r).length,i=r.padEnd(n),a=pOf[this.numTasks++%pOf.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===_7.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=>TIr.indexOf(n.level)>=TIr.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 SIn({cliEnvironment:this.environment,includePreReleases:t}),n=bne(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},a=await mva({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:a}}return this._isUpgradeAvailable}};function _Of(e){return`[${e}]:`}var VPf=Jo(UPf(),1);async function XQ(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,VPf.default)(t,r,u);return n||(c.stdout?.pipe(process.stdout),c.stderr?.pipe(process.stderr)),c}function e0a(e,{logger:t,...r}={}){return(n,i)=>XQ(t,e,n,{...r,...i})}var r0a=require("fs/promises"),WPf=Jo(Hte(),1),Pxj="buf.gen.yaml",HPf="output",jxj=`${HPf}/openapi.yaml`,wxj=`
|
|
1914
1914
|
version: v1
|
|
@@ -1955,8 +1955,8 @@ ${m}
|
|
|
1955
1955
|
`)}];if(t["base-properties"]!=null){let F=Object.fromEntries(Object.entries(o).filter(([N])=>t["base-properties"]?.[N]!=null)),C=arn({typeName:e,typeNameForBreadcrumb:e,rawObject:{properties:t["base-properties"]},file:a,example:F,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f});if(C.length>0)return C}let m=typeof l=="string"?l:l.type;if(typeof m!="string")return WVf(o);let O=n.resolveType({type:m,file:a});if(O==null)return[];if(O._type==="named"&&SE(O.declaration)){let F=Object.fromEntries(Object.entries(o).filter(([C])=>t["base-properties"]?.[C]==null));return arn({typeName:e,typeNameForBreadcrumb:e,rawObject:O.declaration,file:O.file,example:F,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f})}let j=typeof l!="string"&&typeof l.key=="string"?l.key:void 0;if(j==null)return[];let{[j]:A,...T}=o,B=[];return A==null?B.push({message:`Missing property "${j}"`}):B.push(...DW({rawTypeReference:m,example:A,typeResolver:n,exampleResolver:i,file:a,workspace:u,breadcrumbs:f})),B.push(...WVf(T)),B}function WVf(e){return Object.keys(e).map(t=>({severity:"error",message:`Unexpected property "${t}"`}))}function iSa({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f}){return v3(t,{alias:d=>zVf({rawAlias:d,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f}),enum:d=>NVf({rawEnum:d,example:a,breadcrumbs:f}),object:d=>arn({typeName:e,typeNameForBreadcrumb:e,rawObject:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f}),discriminatedUnion:d=>HVf({typeName:e,rawUnion:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f}),undiscriminatedUnion:d=>FVf({rawUnion:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f})})}var kVf=/^([+-]?\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)?)?)?)?$/,bhw=/^[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}$/,ghw=/^\d{4}-\d{2}-\d{2}$/;function DW({rawTypeReference:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u}){if(typeof t=="string"&&t.startsWith(zFt)){let f=r.resolveType({type:e,file:i});if(f==null)return[];let d=n.parseExampleReference(t);if(d==null)return[];let c=r.resolveNamedType({referenceToNamedType:d.rawTypeReference,file:i});return c==null?[]:nbi({expected:f,actual:c})?[]:[{message:`Expected example to be: ${e}. Example is ${t}.`}]}return iZr({type:e,_default:void 0,validation:void 0,visitor:{primitive:f=>mhw({primitiveType:f,example:t}),named:f=>{let d=r.getDeclarationOfNamedType({referenceToNamedType:f,file:i});return d==null?[]:iSa({typeName:d.typeName,typeDeclaration:d.declaration,file:d.file,example:t,typeResolver:r,exampleResolver:n,workspace:a,breadcrumbs:u})},map:({keyType:f,valueType:d})=>bD(t)?Object.entries(t).flatMap(([c,o])=>[...DW({rawTypeReference:f,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,c]}),...DW({rawTypeReference:d,example:o,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,c]})]):Uxe(t,"a map"),list:f=>Array.isArray(t)?t.flatMap((d,c)=>DW({rawTypeReference:f,example:d,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${c}`]})):Uxe(t,"a list"),set:f=>{if(!Array.isArray(t))return Uxe(t,"a list");let d=VLo(t);return d.length>0?[{severity:"error",message:`Set has duplicate elements:
|
|
1956
1956
|
`+d.map(c=>` - ${JSON.stringify(c)}`).join(`
|
|
1957
1957
|
`)}]:t.flatMap((c,o)=>DW({rawTypeReference:f,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${o}`]}))},optional:f=>t==null?[]:DW({rawTypeReference:f,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u}),unknown:()=>[],literal:f=>{switch(f.type){case"boolean":return Uwe(d=>d===f.boolean,f.boolean.toString())(t);case"string":return Uwe(d=>d===f.string,`"${f.string}"`)(t);default:hc(f)}}}})}function mhw({primitiveType:e,example:t}){return e.v2!=null?aA._visit(e.v2,{integer:r=>Ohw({example:t,rules:r.validation}),long:()=>$Vf(t),uint:()=>JVf(t),uint64:()=>QVf(t),double:r=>Phw({example:t,rules:r.validation}),float:()=>GVf(t),boolean:()=>KVf(t),string:r=>jhw({example:t,rules:r.validation}),uuid:()=>YVf(t),date:()=>ZVf(t),dateTime:()=>XVf(t),base64:()=>RNn(t),bigInteger:()=>RNn(t),_other:()=>{throw new Error("Unknown primitive type v2: "+e.v2)}}):TO._visit(e.v1,{integer:()=>eWf(t),long:()=>$Vf(t),uint:()=>JVf(t),uint64:()=>QVf(t),double:()=>tWf(t),float:()=>GVf(t),boolean:()=>KVf(t),string:()=>RNn(t),uuid:()=>YVf(t),dateTime:()=>XVf(t),date:()=>ZVf(t),base64:()=>RNn(t),bigInteger:()=>RNn(t),_other:()=>{throw new Error("Unknown primitive type: "+e.v1)}})}function Ohw({example:e,rules:t}){let r=eWf(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 Phw({example:e,rules:t}){let r=tWf(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 jhw({example:e,rules:t}){let r=RNn(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 RNn=Uwe(e=>typeof e=="string","a string"),eWf=Uwe(e=>Number.isInteger(e),"an integer"),JVf=Uwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint"),QVf=Uwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint64"),GVf=Uwe(e=>typeof e=="number","a float"),tWf=Uwe(e=>typeof e=="number","a double"),$Vf=Uwe(e=>Number.isInteger(e),"an integer"),KVf=Uwe(e=>typeof e=="boolean","a boolean"),YVf=Uwe(e=>typeof e=="string"&&bhw.test(e),"a UUID"),XVf=Uwe(e=>typeof e=="string"&&kVf.test(e),"an ISO 8601 timestamp"),ZVf=Uwe(e=>typeof e=="string"&&ghw.test(e)&&kVf.test(e),"a date");function Uwe(e,t){return r=>e(r)?[]:Uxe(r,t)}function nbi({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&&nbi({expected:e.container.itemType,actual:t.container.itemType});case"optional":return nbi({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&&nbi({expected:e.container.keyType,actual:t.container.keyType})&&nbi({expected:e.container.valueType,actual:t.container.valueType});case"literal":return t._type!=="container"||t.container._type!==e.container._type?!1:whw({expected:e.container.literal,actual:t.container.literal});default:hc(e.container)}if(e._type==="named")return t._type==="named"&&t.filepath===e.filepath&&t.rawName===e.rawName;hc(e)}function whw({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:hc(e)}}async function aSa({_enum:e,file:t}){let r=await Promise.all(e.enum.map(async i=>({...await PG(i),name:t.casingsGenerator.generateNameAndWireValue({wireValue:typeof i=="string"?i:i.value,name:LNn(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 rWf(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 LNn(e){return typeof e=="string"?{name:e,wasExplicitlySet:!1}:e.name==null?{name:e.value,wasExplicitlySet:!1}:{name:e.name,wasExplicitlySet:!0}}function iEu({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=>nWf({typeName:e,rawObject:d,example:r,fileContainingType:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f}),discriminatedUnion:d=>{let c=orn(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:_4r(d).name,wireValue:c}),singleUnionType:Shw({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:rWf(r,d).name,wireValue:r})})},undiscriminatedUnion:d=>{for(let[c,o]of d.union.entries())if(DW({rawTypeReference:typeof o=="string"?o:o.type,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:f,breadcrumbs:[]}).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:iZr({type:r,_default:void 0,validation:void 0,visitor:{primitive:l=>Dhw({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:hc(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:iEu({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 Dhw({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 nWf({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=iWf({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:wW({propertyKey:c,property:l.rawPropertyType}).name,wireValue:c}),value:m,originalTypeDeclaration:l.typeName}),d},[]):[]})}function iWf({typeName:e,wirePropertyKey:t,rawObject:r,typeResolver:n,file:i}){let a=r.properties?.[t];return a!=null?{typeName:e,rawPropertyType:a,file:i}:ibi({wirePropertyKey:t,extends_:r.extends,typeResolver:n,file:i})}function ibi({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=iWf({wirePropertyKey:e,rawObject:u.declaration,typeResolver:r,typeName:u.name,file:u.file});if(f!=null)return f}}}function Shw({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:FNn({unionKey:d,rawSingleUnionType:t}).name,wireValue:d});if(e==null)return{wireDiscriminantValue:o,shape:_3.noProperties()};let l=nEu({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});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:nWf({rawObject:j.declaration,example:O,fileContainingType:j.file,fileContainingExample:n,typeResolver:i,exampleResolver:a,typeName:A,workspace:c})})}}default:hc(l)}}async function oSa({file:e,queryParameterKey:t,queryParameter:r}){let{name:n}=RSr({queryParameterKey:t,queryParameter:r}),i=e.parseTypeReference(r);return{...await PG(r),name:e.casingsGenerator.generateNameAndWireValue({wireValue:t,name:n}),valueType:i,allowMultiple:typeof r!="string"&&r["allow-multiple"]!=null?r["allow-multiple"]:!1}}function RSr({queryParameterKey:e,queryParameter:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function Ehw(e){let t=JSON.stringify(e);return aWf.default.createHash("sha256").update(t).digest("hex")}function oWf({service:e,endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,variableResolver:u,file:f,workspace:d}){let c=Mhw({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:a,variableResolver:u,file:f,workspace:d});return{id:r.name??Ehw(r),name:r.name!=null?f.casingsGenerator.generateName(r.name):void 0,docs:r.docs,url:Bhw({file:f,service:e,endpoint:t,example:r,pathParams:c}),...c,...Thw({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:RSr({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:Ahw({queryParameter:m})}}):[],request:xhw({endpoint:t,example:r,typeResolver:n,exampleResolver:a,file:f,workspace:d}),response:qhw({endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,file:f,workspace:d})}}function Ahw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function Mhw({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=abi({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)for(let[m,O]of Object.entries(r["path-parameters"])){let j=u.rootApiFile["path-parameters"]?.[m],A=e["path-parameters"]?.[m],T=t["path-parameters"]?.[m];if(j!=null)d.push(l({name:u.casingsGenerator.generateName(m),pathParameterDeclaration:j,examplePathParameter:O}));else if(T!=null)o.push(l({name:u.casingsGenerator.generateName(m),pathParameterDeclaration:T,examplePathParameter:O}));else if(A!=null)c.push(l({name:u.casingsGenerator.generateName(m),pathParameterDeclaration:A,examplePathParameter:O}));else throw new Error(`Path parameter ${m} does not exist`)}return{rootPathParameters:d,endpointPathParameters:o,servicePathParameters:c}}function Thw({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:G8t({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:G8t({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 xhw({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"&&Dfi(u)!=null)return;if(!d2(u))return LQ.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&&jTe(l)!=null))if(o!=null)f.push({name:i.casingsGenerator.generateNameAndWireValue({name:wW({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=ibi({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:wW({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 LQ.inlinedRequestBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t.request,file:i}).resolvedExample,properties:f})}function qhw({endpoint:e,example:t,typeResolver:r,errorResolver:n,exampleResolver:i,file:a,workspace:u}){return t.response==null?b7.ok(JN.body(void 0)):oZr(e,t.response,{body:f=>{if(f.error!=null){let d=n.getDeclarationOrThrow(f.error,a);return b7.error({error:d4r({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 b7.ok(JN.body(Chw({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 b7.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 b7.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 Chw({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 Bhw({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 uWf({endpoint:e,file:t,typeResolver:r}){return{body:await Ihw({endpoint:e,file:t,typeResolver:r}),statusCode:typeof e.response!="string"?e.response?.["status-code"]:void 0}}async function Ihw({endpoint:e,file:t,typeResolver:r}){let n=await zhw({endpoint:e,file:t,typeResolver:r}),i=await Nhw({endpoint:e,file:t,typeResolver:r});if(n!=null&&i!=null){let a;switch(n.type){case"fileDownload":{a=Gre.fileDownload({...n});break}case"json":{a=Gre.json({...n.value});break}case"text":{a=Gre.text({...n});break}default:hc(n)}return pz.streamParameter({nonStreamResponse:a,streamResponse:i})}else{if(n!=null)return n;if(i!=null)return pz.streaming(i)}}async function zhw({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 jTe(a)!=null?pz.fileDownload({docs:i}):Sfi(a)!=null?pz.text({docs:i}):await Fhw(n,i,t,r)}}async function Nhw({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 kxn(a)?$re.text({docs:i}):typeof n!="string"&&u==="sse"?$re.sse({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0}):$re.json({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0})}}async function Fhw(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(PCt.nestedPropertyAsResponse({docs:t,responseBodyType:i,responseProperty:await ebi({typeResolver:n,file:r,resolvedType:a,property:u})})):pz.json(PCt.response({docs:t,responseBodyType:i}))}async function sWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return vTe.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 cWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return vTe.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 lWf(e){return Rhw(e)?{type:"offset",offset:C2t(e.offset),results:NSr(e.results),step:e.step!=null?C2t(e.step):void 0,hasNextPage:e["has-next-page"]!=null?NSr(e["has-next-page"]):void 0}:{type:"cursor",cursor:C2t(e.cursor),next_cursor:NSr(e.next_cursor),results:NSr(e.results)}}function Rhw(e){return e.offset!=null&&e.results!=null}async function fWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n}){let i=typeof n.pagination=="boolean"?t.rootApiFile.pagination:n.pagination;if(!i)return;let a=lWf(i);switch(a.type){case"cursor":return await sWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});case"offset":return cWf({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});default:hc(a)}}function dWf({errors:e,file:t}){return e==null?[]:Object.values(e).map(r=>{let n=typeof r=="string"?r:r.error,i=d4r({errorName:n,file:t});return{docs:typeof r!="string"?r.docs:void 0,error:i}})}function uSa({source:e}){return{filepath:e.relativeFilePath,packageName:e.packageName,options:e.csharpNamespace!=null?{csharp:{namespace:e.csharpNamespace}}:void 0}}function pWf({source:e,serviceNameOverride:t}){let r=t??e.serviceName;if(r!=null)return{file:uSa({source:e}),name:p4r.generateName(r)}}async function _Wf({file:e,serviceDeclaration:t,sourceResolver:r}){return tZr(t.source)?await yWf(e,t.source,r,t.transport?.grpc?.["service-name"]):_Te.http()}async function hWf({file:e,serviceTransport:t,endpointDeclaration:r,sourceResolver:n}){let i=t.type==="grpc",a=t.type==="http",u=tZr(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 _Te.http();if(i&&u){let d=r.source,c=r.transport?.grpc?.["service-name"];return c?await yWf(e,d,n,c):void 0}throw new Error(`Internal error; failed to determine endpoint transport for
|
|
1958
|
-
${JSON.stringify(r)}"`)}}async function yWf(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=pWf({source:i,serviceNameOverride:n});if(a==null)throw new Error(`Failed to resolve service name from ${i.relativeFilePath}.`);return _Te.grpc({service:a})}async function vWf({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 UNn({pathParameters:r["path-parameters"],location:hTe.Service,file:n,variableResolver:d}),O=await _Wf({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Fne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:Lxe(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([T,B])=>Vxe({headerKey:T,header:B,file:n}))):[],pathParameters:m,encoding:Whw(O,r),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([T,B])=>{let F=await UNn({pathParameters:B["path-parameters"],location:hTe.Endpoint,file:n,variableResolver:d}),C={...await PG(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?Vhw(B.method):Jre.Post,basePath:B["base-path"]!=null?Lxe(B["base-path"]):void 0,path:Lxe(B.path),fullPath:Lxe(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 oSa({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])=>Vxe({headerKey:N,header:U,file:n}))):[],requestBody:AVf({request:B.request,file:n}),sdkRequest:await CVf({service:r,request:B.request,endpoint:B,endpointKey:T,file:n,typeResolver:a,propertyResolver:u}),response:await uWf({endpoint:B,file:n,typeResolver:a}),errors:[...dWf({errors:B.errors,file:n}),...o],userSpecifiedExamples:B.examples!=null?B.examples.map(N=>({example:oWf({service:r,endpoint:B,example:N,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:N["code-samples"]?.map(U=>IVf({codeSample:U,file:n}))})):[],autogeneratedExamples:[],pagination:await fWf({propertyResolver:u,file:n,endpointName:T,endpointSchema:B}),transport:await hWf({file:n,serviceTransport:O,endpointDeclaration:B,sourceResolver:c})};return C.id=PP.generateEndpointId(j,C),C}))}}async function UNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>Lhw({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function Lhw({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await PG(t),name:n.casingsGenerator.generateName(e),valueType:Uhw({parameter:t,variableResolver:i,file:n}),location:r,variable:$qn(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function Uhw({parameter:e,variableResolver:t,file:r}){let n=abi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function abi({parameter:e,variableResolver:t,file:r}){let n=sSa({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function sSa({parameter:e,variableResolver:t,file:r}){if($qn(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 Vhw(e){switch(e){case"GET":return Jre.Get;case"POST":return Jre.Post;case"PUT":return Jre.Put;case"PATCH":return Jre.Patch;case"DELETE":return Jre.Delete;default:hc(e)}}async function Vxe({headerKey:e,header:t,file:r}){let{name:n}=G8t({headerKey:e,header:t});return{...await PG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function G8t({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function Whw(e,t){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:hc(e)}}var jG={};Dc(jG,{validateObjectExample:()=>arn,validateTypeExample:()=>iSa,validateTypeReferenceExample:()=>DW});function bWf(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function cSa({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function gWf({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:cSa({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 mWf({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:cSa({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 OWf({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await mWf({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 gWf({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"],scopes:n.scopes,tokenEndpoint:u,refreshEndpoint:f}}var obi={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}},aEu={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 PWf(e){return{endpoint:e["get-token"].endpoint,requestProperties:Hhw({requestProperties:e["get-token"]?.["request-properties"]}),responseProperties:Jhw({responseProperties:e["get-token"]?.["response-properties"]})}}function jWf(e){if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Qhw({requestProperties:e["refresh-token"]?.["request-properties"]}),responseProperties:Ghw({responseProperties:e["refresh-token"]?.["response-properties"]})}}function Hhw({requestProperties:e}){if(e==null)return obi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?C2t(t):obi.requestProperties.client_id,client_secret:r!=null?C2t(r):obi.requestProperties.client_secret,scopes:n!=null?C2t(n):obi.requestProperties.scopes}}function Jhw({responseProperties:e}){return wWf({responseProperties:e,defaultValue:obi.responseProperties})}function Qhw({requestProperties:e}){if(e==null)return aEu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?C2t(t):aEu.requestProperties.refresh_token}}function Ghw({responseProperties:e}){return wWf({responseProperties:e,defaultValue:aEu.responseProperties})}function wWf({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?NSr(r):t.access_token,expires_in:n!=null?NSr(n):t.expires_in,refresh_token:i!=null?NSr(i):t.refresh_token}}async function MWf({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:Szr.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return Efi(e.auth,{single:async a=>{let u=await DWf({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:Szr.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:Szr.Any,schemes:await Promise.all(a.map(async u=>await DWf({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function DWf({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 Xko(c,{header:async o=>GV.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=>EWf({file:r,docs:d,rawScheme:o}),bearer:async o=>SWf({file:r,docs:d,rawScheme:o}),oauth:async o=>await AWf({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return SWf({file:r,docs:void 0,rawScheme:void 0});case"basic":return EWf({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await AWf({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function SWf({file:e,docs:t,rawScheme:r}){return GV.bearer({docs:t,token:e.casingsGenerator.generateName(r?.token?.name??"token"),tokenEnvVar:r?.token?.env})}function EWf({file:e,docs:t,rawScheme:r}){return GV.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 AWf({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r?.type){case"client-credentials":return GV.oauth({docs:t,configuration:Ezr.clientCredentials(await OWf({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:PWf(r),refreshTokenEndpoint:jWf(r)}))});default:throw new Error(`Unknown OAuth type: '${r?.type}'`)}}async function TWf({file:e,rawApiFileSchema:t}){if(t.version!=null)return Mzr.header({header:await $hw({file:e,header:t.version.header}),value:await Khw({file:e,versionDeclaration:t.version})})}async function $hw({file:e,header:t}){return typeof t=="string"?await Vxe({file:e,headerKey:t,header:{type:"string"}}):await Vxe({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Khw({file:e,versionDeclaration:t}){return await aSa({_enum:{default:t.default,enum:t.values},file:e})}async function xWf({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:Fne(d.availability),docs:d.docs,origin:d.origin,body:Zhw({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Fne(e.availability),path:Lxe(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])=>Vxe({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await UNn({pathParameters:e["path-parameters"],location:hTe.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}=RSr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await PG(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=eyw({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:ryw({channel:e,example:f,pathParams:d}),...d,...tyw({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:RSr({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:Yhw({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:Xhw({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Yhw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function Xhw({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){if(!nyw(e.body))return DCt.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:wW({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=ibi({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:wW({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 DCt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function Zhw({body:e,file:t}){return typeof e=="string"?gTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):khw(e)?gTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):gTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:q2t(e.extends??[]).map(r=>iL({typeName:r,file:t})),properties:[]})}function khw(e){return e.type!=null}function eyw({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=abi({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)for(let[c,o]of Object.entries(t["path-parameters"])){let l=e["path-parameters"]?.[c];if(l!=null)f.push(d({name:a.casingsGenerator.generateName(c),pathParameterDeclaration:l,examplePathParameter:o}));else throw new Error(`Path parameter ${c} does not exist`)}return{pathParameters:f}}function tyw({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:G8t({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 ryw({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 oEu({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:nDr(n,{singleBaseUrl:()=>gCt.singleBaseUrl(iyw({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>gCt.multipleBaseUrls(ayw({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function iyw({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>nDr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:qWf(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function ayw({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>nDr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:Vh(a.urls,u=>qWf(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function qWf(e){return e.endsWith("/")?e.slice(0,-1):e}function CWf({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:d4r({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 BWf="content";function IWf(e,t){if(e==null||e.strategy==="status-code")return jCt.statusCode();switch(e.strategy){case"property":return jCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:BWf,wireValue:BWf})});default:hc(e)}}function zWf({readme:e,services:t}){let r=new uEu(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 uEu=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:oyw(t),stream:t.response?.body?.type==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function oyw(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 NWf({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:Fne(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])=>Vxe({headerKey:d,header:c,file:t}))):[],payload:syw({payload:f.payload,file:t}),examples:f.examples!=null?lyw({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function syw({payload:e,file:t}){return typeof e=="string"?Zre.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):lSa(e)?Zre.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):Zre.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:q2t(e.extends).map(r=>iL({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>cyw({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Fne(n.availability):void 0,file:t})):[]})}function cyw({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:wW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function lyw({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:lSa(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 lSa(e){return e.type!=null}function VNn(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 FWf({name:e,source:t}){return x1.userDefined({file:uSa({source:t}),name:p4r.generateName(e)})}function RWf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=fyw({type:e.proto.type});if(t!=null)return t}}function fyw({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 LWf({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 PC.object({extends:q2t(a.declaration.extends).map(d=>iL({typeName:d,file:t})),properties:await k0i({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 UWf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return pTe(n)?await LWf({generic:n,file:t,typeResolver:r}):PC.alias({aliasOf:t.parseTypeReference(e),resolvedType:dyw({aliasOf:n,file:t,typeResolver:r})})}function dyw({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return $V.primitive(n.originalTypeReference.primitive);case"container":return $V.container(n.originalTypeReference.container);case"unknown":return $V.unknown();case"named":{let i=SE(n.declaration)?wCt.Object:Uzr(n.declaration)?wCt.Union:ACt(n.declaration)?wCt.Enum:Yqn(n.declaration)?wCt.UndiscriminatedUnion:hc(n.declaration);return $V.named({name:n.name,shape:i})}}}function VWf({union:e,file:t}){return PC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function WWf(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 cEu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new sEu}){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=WWf(o.declaration);l&&m.filter(O=>!l.includes(O)).forEach(O=>c.add(O))}return Array.from(c)}return[f]},object:u=>WWf(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=HQ({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=iL({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(pTe(o.typeName))continue;a.push(...cEu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var sEu=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 HWf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await PG(t),d=iL({typeName:e,file:r}),c=cEu({typeDeclaration:t,file:r,typeResolver:n}),o={};SE(t)&&(o=VNn(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 pyw({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(m=>m.typeId)),encoding:hyw({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:iEu({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 pyw({typeDeclaration:e,file:t,typeResolver:r}){return await v3(e,{alias:n=>UWf({alias:n,file:t,typeResolver:r}),object:n=>SVf({object:n,file:t}),discriminatedUnion:n=>VVf({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>VWf({union:n,file:t}),enum:async n=>PC.enum(await aSa({_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=RWf({encoding:t.encoding});if(a!=null)return tDr.proto(a)}if(t.source==null)return;let i=await n.resolveSourceOrThrow({source:t.source,file:e});if(!(i==null||i.type!=="protobuf"))return tDr.proto(FWf({source:i,name:r}))}function hyw({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?yyw(e.encoding):vyw(t)}function yyw(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function vyw(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}function JWf(e,t){let r=t[e];if(r==null)throw new p1r(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function QWf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,gyw({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>byw({endpoint:n,ir:e}))}]))}}function byw({endpoint:e,ir:t}){return e.requestBody?.type!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(r=>GWf(r,t))}}}function gyw({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>GWf(r,t))}}}return e}function GWf(e,t){let r=lEu(e.typeId,t);return $Wf({objectTypeDeclaration:r,ir:t})}function lEu(e,t){let r=JWf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return lEu(r.shape.resolvedType.name.typeId,t)}throw new p1r(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function $Wf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=lEu(n.typeId,t);return $Wf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var fSa=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 dSa=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=myw(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(){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=VNn(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)fEu(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"&&d2(n.request.body)){let o=VNn(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)Qre._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)});for(let c of u)this.markTypeForService(c,i);this.endpoints[a]={endpointId:a,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&&Zre._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)fEu(d,a,u);for(let d of f.properties)DF(d.valueType,a,u);if(n?.payload!=null&&typeof n.payload=="object"&&!lSa(n.payload)){let d=VNn(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 fSa({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];n==null?this.typesReferencedByService[t]=new Set(r):n.add(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:hc(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 myw(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:hc(e)}}function DF(e,t,r){cT._visit(e,{container:n=>{Oyw(n,t,r)},named:n=>{fEu(n,t,r)},primitive:Bc,unknown:Bc,_other:Bc})}function fEu(e,t,r){t.add(PP.generateTypeId(e)),r.add(e.fernFilepath)}function Oyw(e,t,r){jC._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 YWf({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=YWf({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 dEu({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 Pyw({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 KWf({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 jyw({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?LQ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function wyw({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>b7.ok(JN.body(n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>b7.ok(JN.stream(n.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(YA))),sse:n=>b7.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})=>b7.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 pEu({filteredIr:e,example:t}){return{...t,rootPathParameters:dEu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:dEu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:dEu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:KWf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:KWf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:Pyw({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?jyw({filteredIr:e,requestBody:t.request}):void 0,response:wyw({filteredIr:e,response:t.response})}}function XWf({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=YWf({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 pSa=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(!ZWf(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(!ZWf(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 ZWf(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 kWf({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:f4r({referencedIn:t,importPath:f})}}var urn=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:p4r,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 ien(this.workspace,async(i,a)=>{let u=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:p4r,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 Afi().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=kWf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 srn=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=Lwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 Vwe=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(`\\${zFt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(zFt))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(zFt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(zFt.length),exampleName:i}}};var _Sa=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:Kre.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:Kre.query(await oSa({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:Kre.body(u)}}if(d2(n.body)){let u=await tEu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Kre.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:Kre.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await eEu({typeResolver:this.typeResolver,file:tbi(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 eHf=require("fs/promises"),hSa=class{async parse({absoluteFilePath:t}){let r=await(0,eHf.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 ySa=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(tZr(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 tZr(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 hSa().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=Lwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 HQ({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(jC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:cT.container(jC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:cT.container(jC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:cT.container(jC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:cT.container(jC.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(Kqn(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=nSa({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||jne(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 I2t=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:FSr({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 vSa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}function tHf({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:hc(t.v1)}}function rHf({fieldName:e,containerType:t,maxDepth:r,currentDepth:n,typeDeclarations:i,skipOptionalProperties:a}){if(n>=r)return h4r({containerType:t});switch(t.type){case"list":{let u=j8({fieldName:e,typeReference:t.list,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({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 h4r({containerType:t});let u=j8({fieldName:e,typeReference:t.optional,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({containerType:t}):{type:"success",example:DE.optional({optional:u.example,valueType:t.optional}),jsonExample:u.jsonExample}}case"set":{let u=j8({fieldName:e,typeReference:t.set,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({containerType:t}):{type:"success",example:DE.set({set:[u.example],itemType:t.set}),jsonExample:[u.jsonExample]}}case"map":{let u=j8({fieldName:e,typeReference:t.keyType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a}),f=j8({fieldName:e,typeReference:t.valueType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"||f.type==="failure"?h4r({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:hc(t)}}function h4r({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:hc(e)}}function WNn({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 iHf({fieldName:e,typeDeclarations:t,typeDeclaration:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){switch(r.shape.type){case"alias":{let u=j8({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=nHf({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=j8({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=nHf({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=j8({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 nHf({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=j8({fieldName:c.name.wireValue,typeReference:c.valueType,typeDeclarations:n,currentDepth:a+1,maxDepth:i,skipOptionalProperties:u});if(o.type==="failure"&&!WNn({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 j8({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=iHf({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=rHf({fieldName:e,containerType:t.container,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure"){let{example:c,jsonExample:o}=h4r({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}=tHf({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 aHf=Jo(Pyu(),1);function ubi({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:b7.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=j8({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&&WNn({typeDeclarations:n,typeReference:c.valueType}))continue;let o=j8({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&&WNn({typeDeclarations:n,typeReference:o.valueType}))continue;let l=j8({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=j8({fieldName:l.name.wireValue,typeReference:l.valueType,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});if(m.type==="failure"&&!WNn({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=LQ.inlinedRequestBody({jsonExample:c,properties:o});break}case"reference":{let c=j8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.requestBody.requestBodyType,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.request=LQ.reference(o);break}default:hc(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=j8({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=b7.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:hc(t.response.body)}else if(a.type==="error")if(a.declaration.type==null)u.response=b7.error({body:void 0,error:a.declaration.name});else{let c=j8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:a.declaration.type,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.response=b7.error({body:o,error:a.declaration.name})}return{type:"success",example:{id:(0,aHf.default)(u),url:Dyw(t,u),...u},jsonExample:void 0}}function Dyw(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 SW({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=J8t({generationLanguage:r,keywords:n,smartCasing:i}),O=new dSa(f),j=FSr({casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents}),A=(t.definition.rootApiFile.contents.errors??[]).map(ar=>({error:d4r({errorName:ar,file:j}),docs:void 0})),T=new oA(t),B=new urn(t),F=new _Sa(T,B),C=new srn(t),N=new Vwe(T),U=new I2t,ne=new ySa(l,t),ge={fdrApiDefinitionId:e,apiVersion:await TWf({file:j,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:m.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await kDa(t.definition.rootApiFile.contents.docs),auth:await MWf({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])=>Vxe({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])=>Vxe({headerKey:ar,header:mn,file:j}))):[],types:{},errors:{},services:{},constants:bWf(m),environments:oEu({casingsGenerator:m,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:IWf(t.definition.rootApiFile.contents["error-discrimination"],j),basePath:t.definition.rootApiFile.contents["base-path"]!=null?Lxe(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await UNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:j,location:hTe.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 pSa,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(pTe(On))continue;let kt=await HWf({typeName:On,typeDeclaration:Ut,file:ar,typeResolver:T,exampleResolver:N,sourceResolver:ne,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,DVf(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=CWf({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 vWf({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:ne,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 NWf({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 xWf({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 ien(t,async(ar,mn)=>{if(mn.navigation!=null)if(typeof mn.navigation=="string")X.addPackageRedirection({from:Nne({relativeFilepath:ar,casingsGenerator:m}),to:Nne({relativeFilepath:Wl(B0(ar),ls.of(mn.navigation)),casingsGenerator:m})});else{let On=mn.navigation.map(Ut=>PP.generateSubpackageId(Nne({relativeFilepath:Wl(B0(ar),ls.of(Ut)),casingsGenerator:m})));ar===mD?X.sortRootPackage(On):X.sortSubpackage(PP.generateSubpackageId(Nne({relativeFilepath:ar,casingsGenerator:m})),On)}}),ge.serviceTypeReferenceInfo=Eyw(O);let xe=a?ge:Syw(ge,l,!u),vt=t.definition.rootApiFile.contents,yt=oEu({casingsGenerator:m,rawApiFileSchema:vt}),St=yt?.environments._visit({singleBaseUrl:ar=>ar.environments.filter(mn=>vSa(mn.id,vt.environments)!=null).length===0,multipleBaseUrls:ar=>ar.environments.filter(mn=>vSa(mn.id,vt.environments)!=null).length===0,_other:()=>!1});yt?.environments.environments.forEach(ar=>{O.markEnvironmentForAudiences(ar,vSa(ar.id,vt.environments)??[],St)});let Ft=O.hasNoAudiences()?void 0:O.build(),Zt=Ayw(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?zWf({readme:d,services:ge.services}):void 0,{types:Mr,services:Mn}=QWf(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 Syw(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=ubi({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 Eyw(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 Ayw(e,t){if(t==null)return e;let r=kKr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>XWf({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:PC.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:kKr(e.errors,u=>t.hasError(u)),services:Vh(kKr(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:pEu({filteredIr:t,example:d.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(d=>({...d,example:d.example!=null?pEu({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:Myw(e.serviceTypeReferenceInfo,t)}}function Myw(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 yHf=Jo(GDa(),1),vHf=Jo($Da(),1),OSa=require("fs/promises"),bHf=Jo(N1a(),1);function $8t(e){return typeof e.subpackageId=="string"}function Wwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function crn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var _Eu="__package__",y4r=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 $8t(t)?t.subpackageId:_Eu}getSubpackageByIdOrLocator(t){if(t==null)return;let r=P8.SubpackageId(t);return r===_Eu?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=P8.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} ${Wwe(u.path.parts)}`),d.push(`${o} ${crn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Wwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,crn(u.path.parts))}`);let m=oHf(l);m!=null&&(d.push(`${o} ${oP(m,Wwe(u.path.parts))}`),d.push(`${o} ${oP(m,crn(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} ${Wwe(u.path.parts)}`),d.push(`${o} ${crn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Wwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,crn(u.path.parts))}`);let m=oHf(l);m!=null&&(d.push(`${o} ${oP(m,Wwe(u.path.parts))}`),d.push(`${o} ${oP(m,crn(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=$8t(t)?[...r,t.name]:r,i=n.length===0?[_Eu]: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 Pc.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return Pc.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return Pc.WebhookId(`${r}.${t.id}`)}};function oHf(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 HNn=Jo(GDa(),1),sHf=Jo($Da(),1);function uHf(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{}}HNn.default.extend(sHf.default);var Tyw="Changelog",xyw=["summary","index","overview"],lrn=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??Tyw,n=[],i;for(let l of this.changelogFiles??[]){let m=eUo(l.split("/"));if(m==null)continue;let O=uHf(m);if(O==null){let A=m.split(".")[0]?.toLowerCase();A!=null&&xyw.includes(A)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:Pc.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?this.markdownToFullSlug.get(i)?.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??v9(r)}),u=n.map(l=>{let m=HNn.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=hEu(u,l=>l.date,"desc"),d=i!=null?Pc.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=HNn.default.utc(a.date).year(),f=i.get(u)??[];f.push(a),i.set(u,f)}return hEu(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=HNn.default.utc(a.date).month()+1,f=i.get(u)??[];f.push(a),i.set(u,f)}return hEu(Array.from(i.entries()).map(([a,u])=>{let f=(0,HNn.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 mC(this.docsWorkspace.absoluteFilePath,t)}};function hEu(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 bSa=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=Pc.V1.ApiDefinitionId(r.id),this.#e=y4r.create(r,u),this.#s=d,this.#f=this.apiSection.overviewAbsolutePath!=null?Pc.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??v9(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=Pc.V1.followRedirects(this.#o),r=new lrn(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?y4r.getSubpackageId(r):void 0;return t.map(a=>cDa(a)._visit({link:u=>({id:this.#s.get(u.url),type:"link",title:u.text,icon:u.icon,url:Pc.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=Pc.V1.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/"),urlSlug:t.slug??v9(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?Pc.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=y4r.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??($8t(a)?a.urlSlug:this.apiSection.slug??v9(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??($8t(a)?a.displayName??Gtn(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??v9(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}:${v9(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?Pc.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?y4r.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??v9(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=y4r.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=$8t(i)?i.urlSlug:"",d=n.apply({urlSlug:f});return{id:u,type:"apiPackage",children:[],title:$8t(i)?i.displayName??Gtn(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(P8.SubpackageId(r))?.endpoints.get(P8.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:Pc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:t.title??i.name??Wwe(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(P8.SubpackageId(r))?.webSockets.get(P8.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??Wwe(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:Pc.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(P8.SubpackageId(r))?.webhooks.get(P8.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(Pc.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=Pc.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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:Pc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:i.name??Wwe(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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??Wwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:Pc.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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??Gtn(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=$8t(a)?r.apply(a):r,f=this.#m(i,u);f.length>0&&n.push({id:Pc.V1.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:$8t(a)?a.displayName??Gtn(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=>Pc.V1.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:Pc.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} ${Wwe(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:Pc.V1.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return mC(this.docsWorkspace.absoluteFilePath,t)}};var cHf=Jo(require("crypto"),1);function qyw(e){return cHf.default.createHash("sha256").update(e).digest("hex")}var gSa=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),qyw(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 Pc.V1.NodeId(this.#i(t))}};function lHf(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 mSa=Jo(oCt(),1);var C1=Jo(oCt(),1);var v4r=Jo(oCt(),1);function fHf(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=>v4r.FernRegistry.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:v4r.FernRegistry.PropertyKey(r.name.wireValue),valueType:TM(r.valueType),availability:SF(r.availability)})),extraProperties:zyw(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:v4r.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:[v4r.FernRegistry.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:v4r.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:v4r.FernRegistry.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:fd.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>Byw(t.v2),float:()=>({type:"double",minimum:22250738585072014e-324,maximum:17976931348623157e292,default:0}),double:()=>Iyw(t.v2),string:()=>Cyw(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 Cyw(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 Byw(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 Iyw(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 zyw(e){return typeof e=="boolean"?cT.unknown():typeof e=="string"?{type:"id",value:v4r.FernRegistry.TypeId(e),default:void 0}:TM(e)}function vEu(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?Fyw(r,t):[],webhooks:n!=null?Nyw(n):[],websockets:i!=null?[Ryw(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 Nyw(e){return e.map(t=>({description:t.docs??void 0,id:C1.FernRegistry.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??isi(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:Gyw(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function Fyw(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=>yEu({autogeneratedExample:i,userSpecifiedExample:f,irEndpoint:n,ir:t})));else if(i!=null)a.push(yEu({autogeneratedExample:i,irEndpoint:n,ir:t}));else if(n.response?.body?.type==="fileDownload"){let f=ubi({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(f.type==="success"){let d={...yEu({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:Wyw(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?Lyw({environmentsConfig:t.environments,endpoint:n}):void 0,id:C1.FernRegistry.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??isi(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:[...JNn(n.basePath),...JNn(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?JNn(t.basePath):[],...JNn(e.basePath),...JNn(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?Hyw(n.requestBody):void 0,response:n.response!=null?Jyw(n.response):void 0,errors:void 0,errorsV2:Qyw(n.errors,t),examples:a};r.push(u)}return r}function Ryw(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?Uyw({environmentsConfig:t.environments,channel:e}):[],id:C1.FernRegistry.WebSocketId(e.name.originalName),name:e.displayName??isi(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:JNn(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:$yw(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:hc(e.status)}}function Lyw({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:hc(r)}}function Uyw({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:Vyw(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:hc(r)}}function Vyw(e,t){return e.replace(/^[^:]+/,t)}function Wyw(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 JNn(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 Hyw(e){let t=fd.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??eI.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??eI.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 Jyw(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 Qyw(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 yEu({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:Cqt})}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=>iwe._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 Gyw(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:hc(e)}}function $yw(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:hc(e)}}var bEu=Jo(oCt(),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:bEu.FernRegistry.EndpointId(n.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:bEu.FernRegistry.JqString(i)}}}:{type:"bearerAuth",tokenName:"token"}}default:hc(n)}}function Hwe({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:vEu(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[mSa.FernRegistry.TypeId(i)]={description:a.docs??void 0,name:a.name.name.originalName,shape:fHf(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[mSa.FernRegistry.api.v1.SubpackageId(i)]={subpackageId:mSa.FernRegistry.api.v1.SubpackageId(i),displayName:u?.displayName,name:a.name.originalName,description:a.docs??void 0,...vEu(a,e)}}return n}var gEu=Jo(oCt(),1);async function mEu({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await SW({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=lZr({token:n.value}),c=Hwe({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:gEu.FernRegistry.OrgId(e),apiId:gEu.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 Kyw=new Xtn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function pHf(e,t,r){return z0i(C0i(Hwe({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0},playgroundConfig:r}),P8.ApiDefinitionId(t),Kyw))}function _Hf(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 LSr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}yHf.default.extend(vHf.default);var Yyw=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),hHf=0,Xyw=async({ir:e})=>(hHf++,`${e.apiName.snakeCase.unsafeName}-${hHf}`),USr=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u=Yyw,f=Xyw){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}#e=gSa.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 pMe.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=mC(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 Ywu({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 Xwu({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});let t=_Hf(this.parsedDocsConfig);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:o,markdown:l}=E0i(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)]=Kwu(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=Zyw(this.editThisPage,d);a[x2t.PageId(d)]={markdown:c,editThisPageUrl:o?x2t.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,OSa.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,OSa.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 mC(this.docsWorkspace.absoluteFilePath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,bHf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(LSr(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?x2t.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:x2t.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:x2t.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=Pc.V1.SlugGenerator.init(Pc.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}}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=Pc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??v9(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??v9(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:Pc.VersionId(t.version),title:t.version,slug:a.get(),child:u,default:n,availability:t.availability!=null?kyw(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:hc(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=lHf(t.snippetsConfiguration),a=await SW({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=pHf(a,u,{oauth:t.playground?.oauth});return new bSa(t,f,r,n,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.#e).get()}async toChangelogNode(t,r){return new lrn(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:Pc.V1.Url(t.url),icon:t.icon}}async toPageNode(t,r){let n=Pc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??v9(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?Pc.PageId(i):void 0,u=this.#e.get(a??`${t}/section`),f=n.apply({urlSlug:r.slug??v9(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 lrn(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:Pc.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??v9(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):x2t.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:x2t.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:x2t.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function Zyw(e,t){if(e?.github==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${LSr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function kyw(e){switch(e){case"beta":return Pc.V1.NavigationV1Availability.Beta;case"deprecated":return Pc.V1.NavigationV1Availability.Deprecated;case"ga":return Pc.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return Pc.V1.NavigationV1Availability.Stable;default:hc(e)}}var Did=Jo(wHf(),1),Wxu=Jo(bAu(),1),Sid=Jo(require("http"),1),DMa=Jo(require("path"),1);var K$f=require("events"),rEa=Jo(require("fs"),1),grn=Jo(require("path"),1);var x$f=Jo(require("os"),1),q$f=300,j4r=20,Mbi=1e7,C$f=x$f.default.platform();var zjw=C$f==="darwin",gAu=C$f==="win32",w4r=zjw||gAu,B$f=3e3,I$f=2e4,mAu=1250;var Z8t;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Z8t||(Z8t={}));var brn;(function(e){e.CHANGE="change",e.RENAME="rename"})(brn||(brn={}));var Tbi;(function(e){e.CHANGE="change",e.ERROR="error"})(Tbi||(Tbi={}));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 GX;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(GX||(GX={}));var Njw=(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,ne=N-c,ge=U>=t||ne>=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,ne=N-c,ge=t-U,X=a-ne,k=Math.min(ge,X);return F(k)},F=N=>{f&&clearTimeout(f),!(N<=0)&&(f=setTimeout(T,N))},C=(...N)=>{let[U,ne]=o(),ge=!!f;if(u=N,d=U,(ne||!f)&&F(t),ne)return ge?l(U):j(U)};return C.cancel=m,C.flush=O,C},ZSa=Njw;var DAu=Jo(require("fs"),1),eEa=Jo(require("path"),1);var xM=Jo(require("fs"),1),EW=require("util");var VSr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},k8t=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var OAu=Jo(require("process"),1),z$f=OAu.default.getuid?!OAu.default.getuid():!1,N$f=1e4,Une=()=>{};var xbi={isChangeErrorOk:e=>{if(!xbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!z$f&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!xbi.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(!xbi.isNodeError(e))throw e;if(!xbi.isChangeErrorOk(e))throw e}},T3=xbi;var PAu=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=N$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()}}}}},F$f=new PAu;var WSr=(e,t)=>function(n){return function i(...a){return F$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)})}},HSr=(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 Fjw={attempt:{chmod:VSr((0,EW.promisify)(xM.default.chmod),T3.onChangeError),chown:VSr((0,EW.promisify)(xM.default.chown),T3.onChangeError),close:VSr((0,EW.promisify)(xM.default.close),Une),fsync:VSr((0,EW.promisify)(xM.default.fsync),Une),mkdir:VSr((0,EW.promisify)(xM.default.mkdir),Une),realpath:VSr((0,EW.promisify)(xM.default.realpath),Une),stat:VSr((0,EW.promisify)(xM.default.stat),Une),unlink:VSr((0,EW.promisify)(xM.default.unlink),Une),chmodSync:k8t(xM.default.chmodSync,T3.onChangeError),chownSync:k8t(xM.default.chownSync,T3.onChangeError),closeSync:k8t(xM.default.closeSync,Une),existsSync:k8t(xM.default.existsSync,Une),fsyncSync:k8t(xM.default.fsync,Une),mkdirSync:k8t(xM.default.mkdirSync,Une),realpathSync:k8t(xM.default.realpathSync,Une),statSync:k8t(xM.default.statSync,Une),unlinkSync:k8t(xM.default.unlinkSync,Une)},retry:{close:WSr((0,EW.promisify)(xM.default.close),T3.isRetriableError),fsync:WSr((0,EW.promisify)(xM.default.fsync),T3.isRetriableError),open:WSr((0,EW.promisify)(xM.default.open),T3.isRetriableError),readFile:WSr((0,EW.promisify)(xM.default.readFile),T3.isRetriableError),rename:WSr((0,EW.promisify)(xM.default.rename),T3.isRetriableError),stat:WSr((0,EW.promisify)(xM.default.stat),T3.isRetriableError),write:WSr((0,EW.promisify)(xM.default.write),T3.isRetriableError),writeFile:WSr((0,EW.promisify)(xM.default.writeFile),T3.isRetriableError),closeSync:HSr(xM.default.closeSync,T3.isRetriableError),fsyncSync:HSr(xM.default.fsyncSync,T3.isRetriableError),openSync:HSr(xM.default.openSync,T3.isRetriableError),readFileSync:HSr(xM.default.readFileSync,T3.isRetriableError),renameSync:HSr(xM.default.renameSync,T3.isRetriableError),statSync:HSr(xM.default.statSync,T3.isRetriableError),writeSync:HSr(xM.default.writeSync,T3.isRetriableError),writeFileSync:HSr(xM.default.writeFileSync,T3.isRetriableError)}},R$f=Fjw;var kSa=Jo(require("fs"),1),qbi=Jo(require("path"),1);var L$f={then:e=>{e()}};var jAu=()=>{};var wAu=()=>{let e=jAu,t=jAu,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}};wAu.wrap=async e=>{let t=wAu();return await e(t),t.promise};var U$f=wAu;var V$f=e=>Array.isArray(e)?e:[e],W$f=e=>typeof e=="function",H$f=()=>{let{promise:e,resolve:t}=U$f(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var Rjw=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,a=t?.ignore??[],u=V$f(a).map(Kt=>W$f(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:{}},ne={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}=H$f(),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===qbi.default.sep?"":qbi.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(),kSa.default.readdir(Kt,{withFileTypes:!0},(Mn,ar)=>{if(Mn||d.aborted||!ar.length)return k();(c(ar)||L$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(),kSa.default.realpath(Kt,(Mn,ar)=>{if(Mn||d.aborted)return k();kSa.default.stat(ar,async(mn,On)=>{if(mn||d.aborted)return k();let Ut=qbi.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=qbi.default.normalize(Kt),N.add(Kt),cr(Kt,Mr),await ge,d.aborted?U:ne))(e)},J$f=Rjw;var e5t={lang:{debounce:ZSa,attempt:e=>{try{return e()}catch(t){return e5t.lang.castError(t)}},castArray:e=>e5t.lang.isArray(e)?e:[e],castError:e=>e5t.lang.isError(e)?e:e5t.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(e5t.lang.isNaN(e))return e5t.lang.isNaN(t);if(e5t.lang.isPrimitive(e)||e5t.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(eEa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?DAu.default.realpathSync.native(e):DAu.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===eEa.default.sep&&t.length-e.length>eEa.default.sep.length,poll:(e,t=I$f)=>R$f.retry.stat(t)(e,{bigint:!0}).catch(e5t.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 J$f(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},Ej=e5t;var tEa=Jo(require("path"),1);var SAu=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=q$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??j4r:Math.min(1,this.options.depth??j4r),u=this.options.limit??Mbi,[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&&!w4r&&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(tEa.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(tEa.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=brn.CHANGE,r){if(this.watcher.isClosed())return;let n=tEa.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){gAu&&t.code==="EPERM"?this.onWatcherChange(brn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Tbi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Tbi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(brn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&w4r&&this.options.native!==!1?this.options.depth??j4r:Math.min(1,this.options.depth??j4r),n=this.options.limit??Mbi,[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(brn.CHANGE,f,t)}))}}},Q$f=SAu;var $X={interval:100,intervalId:void 0,fns:new Map,init:()=>{$X.intervalId||($X.intervalId=setInterval($X.resolve,$X.interval))},reset:()=>{$X.intervalId&&(clearInterval($X.intervalId),delete $X.intervalId)},add:(e,t)=>{$X.fns.set(e,Date.now()+t),$X.init()},remove:e=>{$X.fns.delete(e)},resolve:()=>{if(!$X.fns.size)return $X.reset();let e=Date.now();for(let[t,r]of $X.fns)r>=e||($X.remove(t),t())}},Cbi=$X;var Bbi=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=mAu){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),Cbi.remove(c)},c=()=>{d(),f()};Cbi.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=mAu){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),Cbi.remove(c)},c=()=>{d(),f()};Cbi.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,Z8t.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,Z8t.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,Z8t.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,Z8t.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}}};Bbi.DIR_EVENTS={add:nm.ADD_DIR,rename:nm.RENAME_DIR,unlink:nm.UNLINK_DIR};Bbi.FILE_EVENTS={add:nm.ADD,change:nm.CHANGE,rename:nm.RENAME,unlink:nm.UNLINK};var G$f=Bbi;var EAu=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}},AAu=EAu;var MAu=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}},$$f=MAu;var TAu=class{constructor(){this.inos={},this.paths=new AAu,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 $$f(n)}reset(){this.inos={},this.paths=new AAu,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()?Z8t.FILE:Z8t.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)}}},xAu=TAu;var qAu=class e extends K$f.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(GX.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(GX.CLOSE,i)),this._readyWait=new Promise(i=>this.on(GX.READY,i)),this._locker=new G$f(this),this._roots=new Set,this._poller=new xAu,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(GX.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ej.lang.castError(t);return this.emit(GX.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(GX.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(GX.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 Q$f(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=grn.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??j4r))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&w4r&&o.options.native!==!1)))return!0;if(!w4r)break;let c=grn.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||w4r&&r.native!==!1?r:{...r,recursive:!1},o={watcher:rEa.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=grn.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||w4r&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??j4r,f=r.limit??Mbi,[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(GX.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(GX.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=grn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new xAu,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??B$f},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(GX.CLOSE,f),rEa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(GX.CLOSE,f),rEa.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=grn.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=grn.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(GX.ALL,n),r.readdirMap=void 0,this.ready())}},Y$f=qAu;var Kww=Jo(eKf(),1),Yww=Jo(WAu(),1),Xww=Jo(JAu(),1),Zww=Jo(ZAu(),1),eMu=Jo(XKf(),1);var mid=Jo(XEa(),1),v5t=require("fs/promises"),jMa=require("os"),Fxu=Jo(require("path"),1),Oid=Jo(Hte(),1),Pid=Jo(Ded(),1),Rxu=Jo(Nxu(),1),HCw="etag",Lxu="preview",JCw="bundle",Uxu=".fern";function QCw(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu))}function wMa(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu),ls.of(JCw))}function GCw(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu),ls.of(HCw))}async function jid({bucketUrl:e,logger:t,preferCached:r}){t.debug("Setting up docs preview bundle...");let n=await(0,Rxu.fetcher)({url:e,method:"GET",responseType:"text",duplex:"half"});if(!n.ok)return{type:"failure"};let i=n.body,u=await new Pid.default.Parser().parseStringPromise(i),f=u?.ListBucketResult?.Contents?.[0]?.ETag?.[0],d=u?.ListBucketResult?.Contents?.[0]?.Key?.[0],c=GCw();if(r){let F=await _h(c),C;if(F&&(t.debug("Reading existing ETag"),C=(await(0,v5t.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 Oid.default.dir({prefix:"fern"}),l=Hp.of(o.path);t.debug(`Downloading docs preview bundle from ${Fxu.default.join(e,d)}`);let m=await(0,Rxu.fetcher)({url:`${Fxu.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,v5t.writeFile)(O,A),t.debug(`Wrote output.zip to ${O}`);let T=QCw();await _h(T)&&await(0,v5t.rm)(T,{recursive:!0}),await(0,v5t.mkdir)(T,{recursive:!0}),t.debug(`rm -rf ${T}`);let B=wMa();return await(0,v5t.mkdir)(B,{recursive:!0}),await(0,mid.default)(O,B),await(0,v5t.writeFile)(c,f),t.debug(`Downloaded bundle to ${B}`),{type:"success"}}async function wid({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 Vxu(r),f={},c=await new USr(e,n,a,r,void 0,async m=>m.map(O=>{let j=c6r();return f[j]={type:"url",url:Pc.Url(`/_local${YVo(O.absoluteFilePath)}`)},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async m=>u.addReferencedAPI(m)).resolve(),o=hSu({writeShape:c,files:{}}),l=vSu({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 Vxu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=c6r(),a=C0i(Hwe({ir:t,snippetsConfig:r,playgroundConfig:n}),tL.ApiDefinitionId(i),new Xtn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),u=z0i(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 $Cw={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 Hxu({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 jid({bucketUrl:C,logger:n.logger,preferCached:!0})}catch(C){let N=wMa();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=B0(e.config._absolutePath),f=(0,Wxu.default)(),d=Sid.default.createServer(f),c=new eMu.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,Did.default)());let m=new URL(LSr(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 wid({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 instanceof Error&&N.stack&&n.logger.debug(`${N.message}
|
|
1959
|
-
${N.stack}`),j}};j=await A();let T=O.apiWorkspaces.flatMap(C=>C.getAbsoluteFilePaths()),B=a?Hp.of(DMa.default.resolve(a)):wMa();new Y$f([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 ne=await A();ne!=null&&(j=ne),l({version:1,type:"finishReload"})}),f.post("/v2/registry/docs/load-with-url",async(C,N)=>{try{let U=j??$Cw,ne={baseUrl:{domain:m.host,basePath:m.pathname},definition:U,lightModeEnabled:U.config.colorsV3?.type!=="dark"};N.send(ne)}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),ne=>{c.emit("connection",ne,C)}):U()),f.use("/_next",Wxu.default.static(DMa.default.join(B,"/_next"))),f.use("*",async(C,N)=>N.sendFile(DMa.default.join(B,"/[[...slug]].html"))),f.listen(i),n.logger.info(`Running server on http://localhost:${i}`),await new Promise(()=>{})}var qW={RequestReference:"requestReference",InlinedRequestProperty:"inlinedRequestProperty",Response:"response",StreamingResponse:"streamingResponse"};function Zq(e,t){return async r=>{r!=null&&await e.docs?.(r,[...t,"docs"])}}async function Gxe({example:e,visitor:t,nodePath:r}){if(typeof e=="string")e.startsWith(zFt)&&await t.exampleTypeReference?.(e,r);else if(bD(e))for(let n of Object.values(e))await Gxe({example:n,visitor:t,nodePath:r});else if(Array.isArray(e))for(let n of e)await Gxe({example:n,visitor:t,nodePath:r})}function J2t(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 Eid({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 Aid({headers:n,visitor:t,nodePath:[...r,"headers"]})},audiences:Bc,auth:Bc,"path-parameters":async n=>{await SMa({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 KCw({endpointId:i,endpoint:a,service:e,visitor:t,nodePathForEndpoint:u})}},idempotent:Bc,transport:Bc,source:Bc})}async function KCw({endpointId:e,endpoint:t,service:r,visitor:n,nodePathForEndpoint:i}){let a=J2t(n);await n.httpEndpoint?.({endpointId:e,endpoint:t,service:r},i),await nP(t,{docs:Zq(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 SMa({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:Zq(n,f),"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:Zq(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 Aid({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"}):d2(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:qW.InlinedRequestProperty}):await nP(m,{name:Bc,docs:Zq(n,O),availability:Bc,type:async j=>{await a(j,[...O,"type"],{location:qW.InlinedRequestProperty,_default:m.default,validation:m.validation})},"content-type":Bc,audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}},"extra-properties":Bc})):(await Zq(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:qW.StreamingResponse}):await a(u.type,[...i,"response-stream"],{location:qW.StreamingResponse}))},response:async u=>{if(u==null)return;let f=[...i,"response"];typeof u=="string"?await a(u,f,{location:qW.Response}):await nP(u,{docs:Zq(n,f),type:async d=>{await a(d,[...f,"type"],{location:qW.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:Zq(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 YCw({nodePathForExample:[...i,{key:"examples",arrayIndex:f}],visitor:n,service:r,endpoint:t,example:d})},pagination:Bc,source:Bc,transport:Bc})}async function YCw({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 Gxe({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 Gxe({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 Gxe({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 Gxe({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 oZr(n,i.response,{body:async o=>{o.body!=null&&await Gxe({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 Gxe({example:l,visitor:t,nodePath:c})},events:async o=>{for(let{data:l}of o.stream)await Gxe({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 SMa({pathParameters:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(t);for(let[i,a]of Object.entries(e)){let u=[...r,i];await t.pathParameter?.({pathParameterKey:i,pathParameter:a},u),$qn(a)?typeof a=="string"?await t.variableReference?.(a,u):await nP(a,{docs:Zq(t,u),variable:async f=>await t.variableReference?.(f,[...u,"variable"]),availability:Bc}):typeof a=="string"?await n(a,u):await nP(a,{docs:Zq(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 Aid({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(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:Zq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}async function Mid({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 Jxu({typeName:n,declaration:i,visitor:t,nodePathForType:a})}}async function Jxu({typeName:e,declaration:t,visitor:r,nodePathForType:n}){let i=J2t(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 Gxe({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:Zq(r,n),availability:Bc,audiences:Bc,examples:a,validation:Bc,encoding:Bc,source:Bc})},object:async u=>{await nP(u,{docs:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(r,c),name:Bc,value:Bc,casing:Bc})}},availability:Bc,audiences:Bc,default:Bc,encoding:Bc,source:Bc,examples:a})}})}async function Tid({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 XCw({errorName:n,declaration:i,visitor:t,nodePathForError:a})}}async function XCw({errorName:e,declaration:t,visitor:r,nodePathForError:n}){let i=J2t(r);typeof t=="string"?await i(t,n):await nP(t,{docs:Zq(r,n),"status-code":Bc,type:async a=>{if(a==null)return;let u=[...n,"type"];typeof a=="string"?await i(a,u):await Jxu({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 xid({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 qid({webhook:e,visitor:t,nodePathForWebhook:r}){let n=J2t(t);await nP(e,{"display-name":Bc,method:Bc,examples:Bc,headers:async i=>{await ZCw({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(kCw(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:qW.InlinedRequestProperty}):await nP(c,{name:Bc,docs:Zq(t,o),availability:Bc,type:async l=>{await n(l,[...o,"type"],{_default:c.default,validation:c.validation,location:qW.InlinedRequestProperty})},audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}}})},audiences:Bc,availability:Bc,docs:Zq(t,r)})}async function ZCw({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(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:Zq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}function kCw(e){return e.type!=null}async function CW(e,t){await nP(e,{docs:Zq(t,[]),imports:async r=>{await xid({imports:r,visitor:t,nodePath:["imports"]})},types:async r=>{await Mid({typeDeclarations:r,visitor:t,nodePath:["types"]})},service:async r=>{r!=null&&await Eid({service:r,visitor:t,nodePath:["service"]})},webhooks:async r=>{for(let[n,i]of Object.entries(r??{}))await qid({webhook:i,visitor:t,nodePathForWebhook:["webhooks",n]})},channel:Bc,errors:async r=>{await Tid({errorDeclarations:r,visitor:t,nodePath:["errors"]})}})}async function Qxu(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 Gxu(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])=>{oko(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 SMa({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 EMa=new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$");function Cid({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 Bid({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 Iid({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 e2w(e,t,r){if(!bne(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 t2w(e){return Number(e.replace("v",""))}async function r2w(e){let t=Zua({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 $xu={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{let r=Zua({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=t2w(e["ir-version"]);else{let f=await r2w(e);if(f==null)return[];a=f}if(a<=i)return[];let u=await r.generators.cli.getMinCliForIr(a);return u.ok?e2w(e.name,u.body.version,t)??[]:[]}}})};var Kxu={name:"import-file-exists",create:({workspace:e})=>{let t=Object.keys(iSr(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,B0(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 AMa(e){return e.definition.rootApiFile.contents.environments==null?[]:Object.values(e.definition.rootApiFile.contents.environments).reduce((t,r)=>{if(Gqn(r))for(let n of Object.keys(r.urls))t.includes(n)||t.push(n);return t},[])}var Yxu={name:"matching-environment-urls",create:({workspace:e})=>{let t=AMa(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 nDr(n,{singleBaseUrl:()=>{for(let u of t)a(u)},multipleBaseUrls:u=>{for(let f of t)u.urls[f]==null&&a(f)}}),i}}}}};var Xxu={name:"no-circular-imports",DISABLE_RULE:!0,create:({workspace:e})=>{let t=n2w(e.definition.namedDefinitionFiles);return{definitionFile:{import:async({importPath:r},{relativeFilepath:n})=>{let i=t[n];if(i==null)return[];let a=f4r({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 n2w(e){let t={};for(let r of _6t(e))t[r]=zid(r,[r],e);return t}function zid(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=f4r({referencedIn:e,importPath:ls.of(a)});t.includes(u)?t[0]===u&&t[0]===i2w(t)&&n.push({startingFilepath:u,chainWithoutStartingFilepath:t.slice(1)}):n.push(...zid(u,[...t,u],r))}return n}function i2w(e){return e.reduce((t,r)=>r<t?r:t)}var iM=J8t({generationLanguage:void 0,keywords:void 0,smartCasing:!1});var MMa=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:hc(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:hc(t)}}isNamedTypeComplex({type:t,file:r,visited:n}){if(n.has(t.rawName))return!1;if(n.add(t.rawName),Uzr(t.declaration))return!0;if(ACt(t.declaration))return!1;if(SE(t.declaration))return this.objectHasComplexProperties({typeName:t.rawName,objectDeclaration:t.declaration,file:r,visited:n});if(Yqn(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}hc(t.declaration)}objectHasComplexProperties({typeName:t,objectDeclaration:r,file:n,visited:i}){return B2t({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:hc(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:hc(t)}}};var Zxu={name:"no-complex-query-params",create:({workspace:e})=>{let t=new MMa(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 kxu={name:"no-conflicting-endpoint-parameters",create:()=>({definitionFile:{pathParameter:({pathParameterKey:e})=>e===tSa?[{severity:"error",message:`Path parameter ${qc.bold(e)} is not suitable for code generation, because it can conflict with the request body parameter.`}]:[]}})};function Fgi({service:e,endpoint:t}){return e["base-path"]+t.path}var TMa=class{root=new equ;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 Fgi({service:t.service,endpoint:t.endpoint}).split("/").filter(r=>r.length>0)}},equ=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 tqu={name:"no-conflicting-endpoint-paths",create:async({workspace:e})=>{let t=new TMa;return await D3(e,async(r,n)=>{await CW(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 ${Fgi({service:r,endpoint:n})} conflicts with other endpoints:`,...u.map(f=>` - ${f.relativeFilepath} -> ${f.endpointId} ${qc.dim(Fgi({service:f.service,endpoint:f.endpoint}))}`)].join(`
|
|
1958
|
+
${JSON.stringify(r)}"`)}}async function yWf(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=pWf({source:i,serviceNameOverride:n});if(a==null)throw new Error(`Failed to resolve service name from ${i.relativeFilePath}.`);return _Te.grpc({service:a})}async function vWf({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 UNn({pathParameters:r["path-parameters"],location:hTe.Service,file:n,variableResolver:d}),O=await _Wf({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Fne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:Lxe(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([T,B])=>Vxe({headerKey:T,header:B,file:n}))):[],pathParameters:m,encoding:Whw(O,r),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([T,B])=>{let F=await UNn({pathParameters:B["path-parameters"],location:hTe.Endpoint,file:n,variableResolver:d}),C={...await PG(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?Vhw(B.method):Jre.Post,basePath:B["base-path"]!=null?Lxe(B["base-path"]):void 0,path:Lxe(B.path),fullPath:Lxe(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 oSa({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])=>Vxe({headerKey:N,header:U,file:n}))):[],requestBody:AVf({request:B.request,file:n}),sdkRequest:await CVf({service:r,request:B.request,endpoint:B,endpointKey:T,file:n,typeResolver:a,propertyResolver:u}),response:await uWf({endpoint:B,file:n,typeResolver:a}),errors:[...dWf({errors:B.errors,file:n}),...o],userSpecifiedExamples:B.examples!=null?B.examples.map(N=>({example:oWf({service:r,endpoint:B,example:N,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:N["code-samples"]?.map(U=>IVf({codeSample:U,file:n}))})):[],autogeneratedExamples:[],pagination:await fWf({propertyResolver:u,file:n,endpointName:T,endpointSchema:B}),transport:await hWf({file:n,serviceTransport:O,endpointDeclaration:B,sourceResolver:c})};return C.id=PP.generateEndpointId(j,C),C}))}}async function UNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>Lhw({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function Lhw({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await PG(t),name:n.casingsGenerator.generateName(e),valueType:Uhw({parameter:t,variableResolver:i,file:n}),location:r,variable:$qn(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function Uhw({parameter:e,variableResolver:t,file:r}){let n=abi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function abi({parameter:e,variableResolver:t,file:r}){let n=sSa({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function sSa({parameter:e,variableResolver:t,file:r}){if($qn(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 Vhw(e){switch(e){case"GET":return Jre.Get;case"POST":return Jre.Post;case"PUT":return Jre.Put;case"PATCH":return Jre.Patch;case"DELETE":return Jre.Delete;default:hc(e)}}async function Vxe({headerKey:e,header:t,file:r}){let{name:n}=G8t({headerKey:e,header:t});return{...await PG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function G8t({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function Whw(e,t){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:hc(e)}}var jG={};Dc(jG,{validateObjectExample:()=>arn,validateTypeExample:()=>iSa,validateTypeReferenceExample:()=>DW});function bWf(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function cSa({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function gWf({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:cSa({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 mWf({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:cSa({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 OWf({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await mWf({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 gWf({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"],scopes:n.scopes,tokenEndpoint:u,refreshEndpoint:f}}var obi={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}},aEu={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 PWf(e){return{endpoint:e["get-token"].endpoint,requestProperties:Hhw({requestProperties:e["get-token"]?.["request-properties"]}),responseProperties:Jhw({responseProperties:e["get-token"]?.["response-properties"]})}}function jWf(e){if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Qhw({requestProperties:e["refresh-token"]?.["request-properties"]}),responseProperties:Ghw({responseProperties:e["refresh-token"]?.["response-properties"]})}}function Hhw({requestProperties:e}){if(e==null)return obi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?C2t(t):obi.requestProperties.client_id,client_secret:r!=null?C2t(r):obi.requestProperties.client_secret,scopes:n!=null?C2t(n):obi.requestProperties.scopes}}function Jhw({responseProperties:e}){return wWf({responseProperties:e,defaultValue:obi.responseProperties})}function Qhw({requestProperties:e}){if(e==null)return aEu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?C2t(t):aEu.requestProperties.refresh_token}}function Ghw({responseProperties:e}){return wWf({responseProperties:e,defaultValue:aEu.responseProperties})}function wWf({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?NSr(r):t.access_token,expires_in:n!=null?NSr(n):t.expires_in,refresh_token:i!=null?NSr(i):t.refresh_token}}async function MWf({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:Szr.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return Efi(e.auth,{single:async a=>{let u=await DWf({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:Szr.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:Szr.Any,schemes:await Promise.all(a.map(async u=>await DWf({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function DWf({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 Xko(c,{header:async o=>GV.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=>EWf({file:r,docs:d,rawScheme:o}),bearer:async o=>SWf({file:r,docs:d,rawScheme:o}),oauth:async o=>await AWf({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return SWf({file:r,docs:void 0,rawScheme:void 0});case"basic":return EWf({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await AWf({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function SWf({file:e,docs:t,rawScheme:r}){return GV.bearer({docs:t,token:e.casingsGenerator.generateName(r?.token?.name??"token"),tokenEnvVar:r?.token?.env})}function EWf({file:e,docs:t,rawScheme:r}){return GV.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 AWf({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r?.type){case"client-credentials":return GV.oauth({docs:t,configuration:Ezr.clientCredentials(await OWf({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:PWf(r),refreshTokenEndpoint:jWf(r)}))});default:throw new Error(`Unknown OAuth type: '${r?.type}'`)}}async function TWf({file:e,rawApiFileSchema:t}){if(t.version!=null)return Mzr.header({header:await $hw({file:e,header:t.version.header}),value:await Khw({file:e,versionDeclaration:t.version})})}async function $hw({file:e,header:t}){return typeof t=="string"?await Vxe({file:e,headerKey:t,header:{type:"string"}}):await Vxe({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Khw({file:e,versionDeclaration:t}){return await aSa({_enum:{default:t.default,enum:t.values},file:e})}async function xWf({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:Fne(d.availability),docs:d.docs,origin:d.origin,body:Zhw({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Fne(e.availability),path:Lxe(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])=>Vxe({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await UNn({pathParameters:e["path-parameters"],location:hTe.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}=RSr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await PG(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=eyw({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:ryw({channel:e,example:f,pathParams:d}),...d,...tyw({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:RSr({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:Yhw({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:Xhw({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Yhw({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?l8.exploded():l8.single()}function Xhw({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){if(!nyw(e.body))return DCt.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:wW({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=ibi({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:wW({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 DCt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function Zhw({body:e,file:t}){return typeof e=="string"?gTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):khw(e)?gTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):gTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:q2t(e.extends??[]).map(r=>iL({typeName:r,file:t})),properties:[]})}function khw(e){return e.type!=null}function eyw({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=abi({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)for(let[c,o]of Object.entries(t["path-parameters"])){let l=e["path-parameters"]?.[c];if(l!=null)f.push(d({name:a.casingsGenerator.generateName(c),pathParameterDeclaration:l,examplePathParameter:o}));else throw new Error(`Path parameter ${c} does not exist`)}return{pathParameters:f}}function tyw({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:G8t({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 ryw({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 oEu({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:nDr(n,{singleBaseUrl:()=>gCt.singleBaseUrl(iyw({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>gCt.multipleBaseUrls(ayw({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function iyw({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>nDr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:qWf(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function ayw({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>nDr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:Vh(a.urls,u=>qWf(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function qWf(e){return e.endsWith("/")?e.slice(0,-1):e}function CWf({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:d4r({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 BWf="content";function IWf(e,t){if(e==null||e.strategy==="status-code")return jCt.statusCode();switch(e.strategy){case"property":return jCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:BWf,wireValue:BWf})});default:hc(e)}}function zWf({readme:e,services:t}){let r=new uEu(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 uEu=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:oyw(t),stream:t.response?.body?.type==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function oyw(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 NWf({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:Fne(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])=>Vxe({headerKey:d,header:c,file:t}))):[],payload:syw({payload:f.payload,file:t}),examples:f.examples!=null?lyw({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function syw({payload:e,file:t}){return typeof e=="string"?Zre.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):lSa(e)?Zre.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):Zre.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:q2t(e.extends).map(r=>iL({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>cyw({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Fne(n.availability):void 0,file:t})):[]})}function cyw({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:wW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function lyw({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:lSa(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 lSa(e){return e.type!=null}function VNn(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 FWf({name:e,source:t}){return x1.userDefined({file:uSa({source:t}),name:p4r.generateName(e)})}function RWf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=fyw({type:e.proto.type});if(t!=null)return t}}function fyw({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 LWf({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 PC.object({extends:q2t(a.declaration.extends).map(d=>iL({typeName:d,file:t})),properties:await k0i({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 UWf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return pTe(n)?await LWf({generic:n,file:t,typeResolver:r}):PC.alias({aliasOf:t.parseTypeReference(e),resolvedType:dyw({aliasOf:n,file:t,typeResolver:r})})}function dyw({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return $V.primitive(n.originalTypeReference.primitive);case"container":return $V.container(n.originalTypeReference.container);case"unknown":return $V.unknown();case"named":{let i=SE(n.declaration)?wCt.Object:Uzr(n.declaration)?wCt.Union:ACt(n.declaration)?wCt.Enum:Yqn(n.declaration)?wCt.UndiscriminatedUnion:hc(n.declaration);return $V.named({name:n.name,shape:i})}}}function VWf({union:e,file:t}){return PC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function WWf(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 cEu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new sEu}){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=WWf(o.declaration);l&&m.filter(O=>!l.includes(O)).forEach(O=>c.add(O))}return Array.from(c)}return[f]},object:u=>WWf(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=HQ({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=iL({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(pTe(o.typeName))continue;a.push(...cEu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var sEu=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 HWf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await PG(t),d=iL({typeName:e,file:r}),c=cEu({typeDeclaration:t,file:r,typeResolver:n}),o={};SE(t)&&(o=VNn(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 pyw({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(m=>m.typeId)),encoding:hyw({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:iEu({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 pyw({typeDeclaration:e,file:t,typeResolver:r}){return await v3(e,{alias:n=>UWf({alias:n,file:t,typeResolver:r}),object:n=>SVf({object:n,file:t}),discriminatedUnion:n=>VVf({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>VWf({union:n,file:t}),enum:async n=>PC.enum(await aSa({_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=RWf({encoding:t.encoding});if(a!=null)return tDr.proto(a)}if(t.source==null)return;let i=await n.resolveSourceOrThrow({source:t.source,file:e});if(!(i==null||i.type!=="protobuf"))return tDr.proto(FWf({source:i,name:r}))}function hyw({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?yyw(e.encoding):vyw(t)}function yyw(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function vyw(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}function JWf(e,t){let r=t[e];if(r==null)throw new p1r(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function QWf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,gyw({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>byw({endpoint:n,ir:e}))}]))}}function byw({endpoint:e,ir:t}){return e.requestBody?.type!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(r=>GWf(r,t))}}}function gyw({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>GWf(r,t))}}}return e}function GWf(e,t){let r=lEu(e.typeId,t);return $Wf({objectTypeDeclaration:r,ir:t})}function lEu(e,t){let r=JWf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return lEu(r.shape.resolvedType.name.typeId,t)}throw new p1r(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function $Wf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=lEu(n.typeId,t);return $Wf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var fSa=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 dSa=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=myw(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(){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=VNn(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)fEu(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"&&d2(n.request.body)){let o=VNn(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)Qre._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)});for(let c of u)this.markTypeForService(c,i);this.endpoints[a]={endpointId:a,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&&Zre._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)fEu(d,a,u);for(let d of f.properties)DF(d.valueType,a,u);if(n?.payload!=null&&typeof n.payload=="object"&&!lSa(n.payload)){let d=VNn(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 fSa({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];n==null?this.typesReferencedByService[t]=new Set(r):n.add(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:hc(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 myw(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:hc(e)}}function DF(e,t,r){cT._visit(e,{container:n=>{Oyw(n,t,r)},named:n=>{fEu(n,t,r)},primitive:Bc,unknown:Bc,_other:Bc})}function fEu(e,t,r){t.add(PP.generateTypeId(e)),r.add(e.fernFilepath)}function Oyw(e,t,r){jC._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 YWf({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=YWf({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 dEu({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 Pyw({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 KWf({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 jyw({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?LQ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function wyw({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>b7.ok(JN.body(n!=null?t6({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>b7.ok(JN.stream(n.map(i=>t6({filteredIr:e,exampleTypeReference:i})).filter(YA))),sse:n=>b7.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})=>b7.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 pEu({filteredIr:e,example:t}){return{...t,rootPathParameters:dEu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:dEu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:dEu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:KWf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:KWf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:Pyw({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?jyw({filteredIr:e,requestBody:t.request}):void 0,response:wyw({filteredIr:e,response:t.response})}}function XWf({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=YWf({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 pSa=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(!ZWf(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(!ZWf(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 ZWf(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 kWf({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:f4r({referencedIn:t,importPath:f})}}var urn=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:p4r,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 ien(this.workspace,async(i,a)=>{let u=$m({relativeFilepath:i,definitionFile:a,casingsGenerator:p4r,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 Afi().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=kWf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 srn=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=Lwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 Vwe=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(`\\${zFt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(zFt))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(zFt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(zFt.length),exampleName:i}}};var _Sa=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:Kre.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:Kre.query(await oSa({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:Kre.body(u)}}if(d2(n.body)){let u=await tEu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:Kre.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:Kre.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await eEu({typeResolver:this.typeResolver,file:tbi(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 eHf=require("fs/promises"),hSa=class{async parse({absoluteFilePath:t}){let r=await(0,eHf.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 ySa=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(tZr(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 tZr(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 hSa().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=Lwe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=jne(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 HQ({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(jC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:cT.container(jC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:cT.container(jC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:cT.container(jC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:cT.container(jC.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(Kqn(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=nSa({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||jne(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 I2t=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:FSr({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 vSa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}function tHf({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:hc(t.v1)}}function rHf({fieldName:e,containerType:t,maxDepth:r,currentDepth:n,typeDeclarations:i,skipOptionalProperties:a}){if(n>=r)return h4r({containerType:t});switch(t.type){case"list":{let u=j8({fieldName:e,typeReference:t.list,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({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 h4r({containerType:t});let u=j8({fieldName:e,typeReference:t.optional,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({containerType:t}):{type:"success",example:DE.optional({optional:u.example,valueType:t.optional}),jsonExample:u.jsonExample}}case"set":{let u=j8({fieldName:e,typeReference:t.set,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"?h4r({containerType:t}):{type:"success",example:DE.set({set:[u.example],itemType:t.set}),jsonExample:[u.jsonExample]}}case"map":{let u=j8({fieldName:e,typeReference:t.keyType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a}),f=j8({fieldName:e,typeReference:t.valueType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:a});return u.type==="failure"||f.type==="failure"?h4r({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:hc(t)}}function h4r({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:hc(e)}}function WNn({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 iHf({fieldName:e,typeDeclarations:t,typeDeclaration:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a}){switch(r.shape.type){case"alias":{let u=j8({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=nHf({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=j8({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=nHf({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=j8({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 nHf({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=j8({fieldName:c.name.wireValue,typeReference:c.valueType,typeDeclarations:n,currentDepth:a+1,maxDepth:i,skipOptionalProperties:u});if(o.type==="failure"&&!WNn({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 j8({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=iHf({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=rHf({fieldName:e,containerType:t.container,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:a});if(u.type==="failure"){let{example:c,jsonExample:o}=h4r({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}=tHf({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 aHf=Jo(Pyu(),1);function ubi({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:b7.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=j8({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&&WNn({typeDeclarations:n,typeReference:c.valueType}))continue;let o=j8({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&&WNn({typeDeclarations:n,typeReference:o.valueType}))continue;let l=j8({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=j8({fieldName:l.name.wireValue,typeReference:l.valueType,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});if(m.type==="failure"&&!WNn({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=LQ.inlinedRequestBody({jsonExample:c,properties:o});break}case"reference":{let c=j8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.requestBody.requestBodyType,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.request=LQ.reference(o);break}default:hc(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=j8({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=b7.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:hc(t.response.body)}else if(a.type==="error")if(a.declaration.type==null)u.response=b7.error({body:void 0,error:a.declaration.name});else{let c=j8({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:a.declaration.type,skipOptionalProperties:i});if(c.type==="failure")return c;let{example:o}=c;u.response=b7.error({body:o,error:a.declaration.name})}return{type:"success",example:{id:(0,aHf.default)(u),url:Dyw(t,u),...u},jsonExample:void 0}}function Dyw(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 SW({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=J8t({generationLanguage:r,keywords:n,smartCasing:i}),O=new dSa(f),j=FSr({casingsGenerator:m,rootApiFile:t.definition.rootApiFile.contents}),A=(t.definition.rootApiFile.contents.errors??[]).map(ar=>({error:d4r({errorName:ar,file:j}),docs:void 0})),T=new oA(t),B=new urn(t),F=new _Sa(T,B),C=new srn(t),N=new Vwe(T),U=new I2t,ne=new ySa(l,t),ge={fdrApiDefinitionId:e,apiVersion:await TWf({file:j,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:m.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await kDa(t.definition.rootApiFile.contents.docs),auth:await MWf({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])=>Vxe({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])=>Vxe({headerKey:ar,header:mn,file:j}))):[],types:{},errors:{},services:{},constants:bWf(m),environments:oEu({casingsGenerator:m,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:IWf(t.definition.rootApiFile.contents["error-discrimination"],j),basePath:t.definition.rootApiFile.contents["base-path"]!=null?Lxe(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await UNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:j,location:hTe.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 pSa,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(pTe(On))continue;let kt=await HWf({typeName:On,typeDeclaration:Ut,file:ar,typeResolver:T,exampleResolver:N,sourceResolver:ne,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,DVf(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=CWf({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 vWf({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:ne,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 NWf({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 xWf({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 ien(t,async(ar,mn)=>{if(mn.navigation!=null)if(typeof mn.navigation=="string")X.addPackageRedirection({from:Nne({relativeFilepath:ar,casingsGenerator:m}),to:Nne({relativeFilepath:Wl(B0(ar),ls.of(mn.navigation)),casingsGenerator:m})});else{let On=mn.navigation.map(Ut=>PP.generateSubpackageId(Nne({relativeFilepath:Wl(B0(ar),ls.of(Ut)),casingsGenerator:m})));ar===mD?X.sortRootPackage(On):X.sortSubpackage(PP.generateSubpackageId(Nne({relativeFilepath:ar,casingsGenerator:m})),On)}}),ge.serviceTypeReferenceInfo=Eyw(O);let xe=a?ge:Syw(ge,l,!u),vt=t.definition.rootApiFile.contents,yt=oEu({casingsGenerator:m,rawApiFileSchema:vt}),St=yt?.environments._visit({singleBaseUrl:ar=>ar.environments.filter(mn=>vSa(mn.id,vt.environments)!=null).length===0,multipleBaseUrls:ar=>ar.environments.filter(mn=>vSa(mn.id,vt.environments)!=null).length===0,_other:()=>!1});yt?.environments.environments.forEach(ar=>{O.markEnvironmentForAudiences(ar,vSa(ar.id,vt.environments)??[],St)});let Ft=O.hasNoAudiences()?void 0:O.build(),Zt=Ayw(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?zWf({readme:d,services:ge.services}):void 0,{types:Mr,services:Mn}=QWf(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 Syw(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=ubi({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 Eyw(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 Ayw(e,t){if(t==null)return e;let r=kKr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>XWf({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:PC.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:kKr(e.errors,u=>t.hasError(u)),services:Vh(kKr(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:pEu({filteredIr:t,example:d.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(d=>({...d,example:d.example!=null?pEu({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:Myw(e.serviceTypeReferenceInfo,t)}}function Myw(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 yHf=Jo(GDa(),1),vHf=Jo($Da(),1),OSa=require("fs/promises"),bHf=Jo(N1a(),1);function $8t(e){return typeof e.subpackageId=="string"}function Wwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function crn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var _Eu="__package__",y4r=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 $8t(t)?t.subpackageId:_Eu}getSubpackageByIdOrLocator(t){if(t==null)return;let r=P8.SubpackageId(t);return r===_Eu?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=P8.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} ${Wwe(u.path.parts)}`),d.push(`${o} ${crn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Wwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,crn(u.path.parts))}`);let m=oHf(l);m!=null&&(d.push(`${o} ${oP(m,Wwe(u.path.parts))}`),d.push(`${o} ${oP(m,crn(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} ${Wwe(u.path.parts)}`),d.push(`${o} ${crn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${oP(l.baseUrl,Wwe(u.path.parts))}`),d.push(`${o} ${oP(l.baseUrl,crn(u.path.parts))}`);let m=oHf(l);m!=null&&(d.push(`${o} ${oP(m,Wwe(u.path.parts))}`),d.push(`${o} ${oP(m,crn(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=$8t(t)?[...r,t.name]:r,i=n.length===0?[_Eu]: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 Pc.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return Pc.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return Pc.WebhookId(`${r}.${t.id}`)}};function oHf(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 HNn=Jo(GDa(),1),sHf=Jo($Da(),1);function uHf(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{}}HNn.default.extend(sHf.default);var Tyw="Changelog",xyw=["summary","index","overview"],lrn=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??Tyw,n=[],i;for(let l of this.changelogFiles??[]){let m=eUo(l.split("/"));if(m==null)continue;let O=uHf(m);if(O==null){let A=m.split(".")[0]?.toLowerCase();A!=null&&xyw.includes(A)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:Pc.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?this.markdownToFullSlug.get(i)?.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??v9(r)}),u=n.map(l=>{let m=HNn.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=hEu(u,l=>l.date,"desc"),d=i!=null?Pc.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=HNn.default.utc(a.date).year(),f=i.get(u)??[];f.push(a),i.set(u,f)}return hEu(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=HNn.default.utc(a.date).month()+1,f=i.get(u)??[];f.push(a),i.set(u,f)}return hEu(Array.from(i.entries()).map(([a,u])=>{let f=(0,HNn.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 mC(this.docsWorkspace.absoluteFilePath,t)}};function hEu(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 bSa=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=Pc.V1.ApiDefinitionId(r.id),this.#e=y4r.create(r,u),this.#s=d,this.#f=this.apiSection.overviewAbsolutePath!=null?Pc.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??v9(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=Pc.V1.followRedirects(this.#o),r=new lrn(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?y4r.getSubpackageId(r):void 0;return t.map(a=>cDa(a)._visit({link:u=>({id:this.#s.get(u.url),type:"link",title:u.text,icon:u.icon,url:Pc.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=Pc.V1.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/"),urlSlug:t.slug??v9(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?Pc.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=y4r.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??($8t(a)?a.urlSlug:this.apiSection.slug??v9(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??($8t(a)?a.displayName??Gtn(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??v9(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}:${v9(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?Pc.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?y4r.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??v9(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=y4r.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=$8t(i)?i.urlSlug:"",d=n.apply({urlSlug:f});return{id:u,type:"apiPackage",children:[],title:$8t(i)?i.displayName??Gtn(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(P8.SubpackageId(r))?.endpoints.get(P8.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:Pc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:t.title??i.name??Wwe(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(P8.SubpackageId(r))?.webSockets.get(P8.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??Wwe(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:Pc.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(P8.SubpackageId(r))?.webhooks.get(P8.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(Pc.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=Pc.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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:Pc.V1.convertAvailability(i.availability),isResponseStream:i.response?.type.type==="stream",title:i.name??Wwe(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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??Wwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:Pc.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:Pc.V1.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??Gtn(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=$8t(a)?r.apply(a):r,f=this.#m(i,u);f.length>0&&n.push({id:Pc.V1.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:$8t(a)?a.displayName??Gtn(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=>Pc.V1.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:Pc.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} ${Wwe(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:Pc.V1.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return mC(this.docsWorkspace.absoluteFilePath,t)}};var cHf=Jo(require("crypto"),1);function qyw(e){return cHf.default.createHash("sha256").update(e).digest("hex")}var gSa=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),qyw(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 Pc.V1.NodeId(this.#i(t))}};function lHf(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 mSa=Jo(oCt(),1);var C1=Jo(oCt(),1);var v4r=Jo(oCt(),1);function fHf(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=>v4r.FernRegistry.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:v4r.FernRegistry.PropertyKey(r.name.wireValue),valueType:TM(r.valueType),availability:SF(r.availability)})),extraProperties:zyw(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:v4r.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:[v4r.FernRegistry.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:v4r.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:v4r.FernRegistry.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:fd.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>Byw(t.v2),float:()=>({type:"double",minimum:22250738585072014e-324,maximum:17976931348623157e292,default:0}),double:()=>Iyw(t.v2),string:()=>Cyw(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 Cyw(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 Byw(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 Iyw(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 zyw(e){return typeof e=="boolean"?cT.unknown():typeof e=="string"?{type:"id",value:v4r.FernRegistry.TypeId(e),default:void 0}:TM(e)}function vEu(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?Fyw(r,t):[],webhooks:n!=null?Nyw(n):[],websockets:i!=null?[Ryw(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 Nyw(e){return e.map(t=>({description:t.docs??void 0,id:C1.FernRegistry.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??isi(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:Gyw(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function Fyw(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=>yEu({autogeneratedExample:i,userSpecifiedExample:f,irEndpoint:n,ir:t})));else if(i!=null)a.push(yEu({autogeneratedExample:i,irEndpoint:n,ir:t}));else if(n.response?.body?.type==="fileDownload"){let f=ubi({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(f.type==="success"){let d={...yEu({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:Wyw(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?C1.FernRegistry.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?Lyw({environmentsConfig:t.environments,endpoint:n}):void 0,id:C1.FernRegistry.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??isi(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:[...JNn(n.basePath),...JNn(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?JNn(t.basePath):[],...JNn(e.basePath),...JNn(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?Hyw(n.requestBody):void 0,response:n.response!=null?Jyw(n.response):void 0,errors:void 0,errorsV2:Qyw(n.errors,t),examples:a};r.push(u)}return r}function Ryw(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?Uyw({environmentsConfig:t.environments,channel:e}):[],id:C1.FernRegistry.WebSocketId(e.name.originalName),name:e.displayName??isi(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:JNn(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:$yw(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:hc(e.status)}}function Lyw({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:hc(r)}}function Uyw({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:Vyw(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:hc(r)}}function Vyw(e,t){return e.replace(/^[^:]+/,t)}function Wyw(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 JNn(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 Hyw(e){let t=fd.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??eI.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??eI.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 Jyw(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 Qyw(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 yEu({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:Cqt})}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=>iwe._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 Gyw(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:hc(e)}}function $yw(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:hc(e)}}var bEu=Jo(oCt(),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:bEu.FernRegistry.EndpointId(n.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:bEu.FernRegistry.JqString(i)}}}:{type:"bearerAuth",tokenName:"token"}}default:hc(n)}}function Hwe({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:vEu(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[mSa.FernRegistry.TypeId(i)]={description:a.docs??void 0,name:a.name.name.originalName,shape:fHf(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[mSa.FernRegistry.api.v1.SubpackageId(i)]={subpackageId:mSa.FernRegistry.api.v1.SubpackageId(i),displayName:u?.displayName,name:a.name.originalName,description:a.docs??void 0,...vEu(a,e)}}return n}var gEu=Jo(oCt(),1);async function mEu({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await SW({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=lZr({token:n.value}),c=Hwe({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:gEu.FernRegistry.OrgId(e),apiId:gEu.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 Kyw=new Xtn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function pHf(e,t,r){return z0i(C0i(Hwe({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0},playgroundConfig:r}),P8.ApiDefinitionId(t),Kyw))}function _Hf(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 LSr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}yHf.default.extend(vHf.default);var Yyw=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),hHf=0,Xyw=async({ir:e})=>(hHf++,`${e.apiName.snakeCase.unsafeName}-${hHf}`),USr=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u=Yyw,f=Xyw){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}#e=gSa.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 pMe.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=mC(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 Ywu({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 Xwu({markdown:c,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMdx:this.resolveFilepath(d),context:this.taskContext});let t=_Hf(this.parsedDocsConfig);for(let[d,c]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:o,markdown:l}=E0i(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)]=Kwu(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=Zyw(this.editThisPage,d);a[x2t.PageId(d)]={markdown:c,editThisPageUrl:o?x2t.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,OSa.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,OSa.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 mC(this.docsWorkspace.absoluteFilePath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,bHf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(LSr(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?x2t.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:x2t.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:x2t.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=Pc.V1.SlugGenerator.init(Pc.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}}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=Pc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??v9(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??v9(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:Pc.VersionId(t.version),title:t.version,slug:a.get(),child:u,default:n,availability:t.availability!=null?kyw(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:hc(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=lHf(t.snippetsConfiguration),a=await SW({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=pHf(a,u,{oauth:t.playground?.oauth});return new bSa(t,f,r,n,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.#e).get()}async toChangelogNode(t,r){return new lrn(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:Pc.V1.Url(t.url),icon:t.icon}}async toPageNode(t,r){let n=Pc.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??v9(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?Pc.PageId(i):void 0,u=this.#e.get(a??`${t}/section`),f=n.apply({urlSlug:r.slug??v9(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 lrn(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:Pc.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??v9(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):x2t.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:x2t.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:x2t.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function Zyw(e,t){if(e?.github==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${LSr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function kyw(e){switch(e){case"beta":return Pc.V1.NavigationV1Availability.Beta;case"deprecated":return Pc.V1.NavigationV1Availability.Deprecated;case"ga":return Pc.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return Pc.V1.NavigationV1Availability.Stable;default:hc(e)}}var Did=Jo(wHf(),1),Wxu=Jo(bAu(),1),Sid=Jo(require("http"),1),DMa=Jo(require("path"),1);var K$f=require("events"),rEa=Jo(require("fs"),1),grn=Jo(require("path"),1);var x$f=Jo(require("os"),1),q$f=300,j4r=20,Mbi=1e7,C$f=x$f.default.platform();var zjw=C$f==="darwin",gAu=C$f==="win32",w4r=zjw||gAu,B$f=3e3,I$f=2e4,mAu=1250;var Z8t;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Z8t||(Z8t={}));var brn;(function(e){e.CHANGE="change",e.RENAME="rename"})(brn||(brn={}));var Tbi;(function(e){e.CHANGE="change",e.ERROR="error"})(Tbi||(Tbi={}));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 GX;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(GX||(GX={}));var Njw=(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,ne=N-c,ge=U>=t||ne>=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,ne=N-c,ge=t-U,X=a-ne,k=Math.min(ge,X);return F(k)},F=N=>{f&&clearTimeout(f),!(N<=0)&&(f=setTimeout(T,N))},C=(...N)=>{let[U,ne]=o(),ge=!!f;if(u=N,d=U,(ne||!f)&&F(t),ne)return ge?l(U):j(U)};return C.cancel=m,C.flush=O,C},ZSa=Njw;var DAu=Jo(require("fs"),1),eEa=Jo(require("path"),1);var xM=Jo(require("fs"),1),EW=require("util");var VSr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},k8t=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var OAu=Jo(require("process"),1),z$f=OAu.default.getuid?!OAu.default.getuid():!1,N$f=1e4,Une=()=>{};var xbi={isChangeErrorOk:e=>{if(!xbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!z$f&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!xbi.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(!xbi.isNodeError(e))throw e;if(!xbi.isChangeErrorOk(e))throw e}},T3=xbi;var PAu=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=N$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()}}}}},F$f=new PAu;var WSr=(e,t)=>function(n){return function i(...a){return F$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)})}},HSr=(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 Fjw={attempt:{chmod:VSr((0,EW.promisify)(xM.default.chmod),T3.onChangeError),chown:VSr((0,EW.promisify)(xM.default.chown),T3.onChangeError),close:VSr((0,EW.promisify)(xM.default.close),Une),fsync:VSr((0,EW.promisify)(xM.default.fsync),Une),mkdir:VSr((0,EW.promisify)(xM.default.mkdir),Une),realpath:VSr((0,EW.promisify)(xM.default.realpath),Une),stat:VSr((0,EW.promisify)(xM.default.stat),Une),unlink:VSr((0,EW.promisify)(xM.default.unlink),Une),chmodSync:k8t(xM.default.chmodSync,T3.onChangeError),chownSync:k8t(xM.default.chownSync,T3.onChangeError),closeSync:k8t(xM.default.closeSync,Une),existsSync:k8t(xM.default.existsSync,Une),fsyncSync:k8t(xM.default.fsync,Une),mkdirSync:k8t(xM.default.mkdirSync,Une),realpathSync:k8t(xM.default.realpathSync,Une),statSync:k8t(xM.default.statSync,Une),unlinkSync:k8t(xM.default.unlinkSync,Une)},retry:{close:WSr((0,EW.promisify)(xM.default.close),T3.isRetriableError),fsync:WSr((0,EW.promisify)(xM.default.fsync),T3.isRetriableError),open:WSr((0,EW.promisify)(xM.default.open),T3.isRetriableError),readFile:WSr((0,EW.promisify)(xM.default.readFile),T3.isRetriableError),rename:WSr((0,EW.promisify)(xM.default.rename),T3.isRetriableError),stat:WSr((0,EW.promisify)(xM.default.stat),T3.isRetriableError),write:WSr((0,EW.promisify)(xM.default.write),T3.isRetriableError),writeFile:WSr((0,EW.promisify)(xM.default.writeFile),T3.isRetriableError),closeSync:HSr(xM.default.closeSync,T3.isRetriableError),fsyncSync:HSr(xM.default.fsyncSync,T3.isRetriableError),openSync:HSr(xM.default.openSync,T3.isRetriableError),readFileSync:HSr(xM.default.readFileSync,T3.isRetriableError),renameSync:HSr(xM.default.renameSync,T3.isRetriableError),statSync:HSr(xM.default.statSync,T3.isRetriableError),writeSync:HSr(xM.default.writeSync,T3.isRetriableError),writeFileSync:HSr(xM.default.writeFileSync,T3.isRetriableError)}},R$f=Fjw;var kSa=Jo(require("fs"),1),qbi=Jo(require("path"),1);var L$f={then:e=>{e()}};var jAu=()=>{};var wAu=()=>{let e=jAu,t=jAu,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}};wAu.wrap=async e=>{let t=wAu();return await e(t),t.promise};var U$f=wAu;var V$f=e=>Array.isArray(e)?e:[e],W$f=e=>typeof e=="function",H$f=()=>{let{promise:e,resolve:t}=U$f(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var Rjw=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,a=t?.ignore??[],u=V$f(a).map(Kt=>W$f(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:{}},ne={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}=H$f(),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===qbi.default.sep?"":qbi.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(),kSa.default.readdir(Kt,{withFileTypes:!0},(Mn,ar)=>{if(Mn||d.aborted||!ar.length)return k();(c(ar)||L$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(),kSa.default.realpath(Kt,(Mn,ar)=>{if(Mn||d.aborted)return k();kSa.default.stat(ar,async(mn,On)=>{if(mn||d.aborted)return k();let Ut=qbi.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=qbi.default.normalize(Kt),N.add(Kt),cr(Kt,Mr),await ge,d.aborted?U:ne))(e)},J$f=Rjw;var e5t={lang:{debounce:ZSa,attempt:e=>{try{return e()}catch(t){return e5t.lang.castError(t)}},castArray:e=>e5t.lang.isArray(e)?e:[e],castError:e=>e5t.lang.isError(e)?e:e5t.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(e5t.lang.isNaN(e))return e5t.lang.isNaN(t);if(e5t.lang.isPrimitive(e)||e5t.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(eEa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?DAu.default.realpathSync.native(e):DAu.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===eEa.default.sep&&t.length-e.length>eEa.default.sep.length,poll:(e,t=I$f)=>R$f.retry.stat(t)(e,{bigint:!0}).catch(e5t.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 J$f(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},Ej=e5t;var tEa=Jo(require("path"),1);var SAu=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=q$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??j4r:Math.min(1,this.options.depth??j4r),u=this.options.limit??Mbi,[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&&!w4r&&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(tEa.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(tEa.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=brn.CHANGE,r){if(this.watcher.isClosed())return;let n=tEa.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){gAu&&t.code==="EPERM"?this.onWatcherChange(brn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Tbi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Tbi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(brn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&w4r&&this.options.native!==!1?this.options.depth??j4r:Math.min(1,this.options.depth??j4r),n=this.options.limit??Mbi,[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(brn.CHANGE,f,t)}))}}},Q$f=SAu;var $X={interval:100,intervalId:void 0,fns:new Map,init:()=>{$X.intervalId||($X.intervalId=setInterval($X.resolve,$X.interval))},reset:()=>{$X.intervalId&&(clearInterval($X.intervalId),delete $X.intervalId)},add:(e,t)=>{$X.fns.set(e,Date.now()+t),$X.init()},remove:e=>{$X.fns.delete(e)},resolve:()=>{if(!$X.fns.size)return $X.reset();let e=Date.now();for(let[t,r]of $X.fns)r>=e||($X.remove(t),t())}},Cbi=$X;var Bbi=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=mAu){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),Cbi.remove(c)},c=()=>{d(),f()};Cbi.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=mAu){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),Cbi.remove(c)},c=()=>{d(),f()};Cbi.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,Z8t.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,Z8t.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,Z8t.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,Z8t.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}}};Bbi.DIR_EVENTS={add:nm.ADD_DIR,rename:nm.RENAME_DIR,unlink:nm.UNLINK_DIR};Bbi.FILE_EVENTS={add:nm.ADD,change:nm.CHANGE,rename:nm.RENAME,unlink:nm.UNLINK};var G$f=Bbi;var EAu=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}},AAu=EAu;var MAu=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}},$$f=MAu;var TAu=class{constructor(){this.inos={},this.paths=new AAu,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 $$f(n)}reset(){this.inos={},this.paths=new AAu,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()?Z8t.FILE:Z8t.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)}}},xAu=TAu;var qAu=class e extends K$f.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(GX.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(GX.CLOSE,i)),this._readyWait=new Promise(i=>this.on(GX.READY,i)),this._locker=new G$f(this),this._roots=new Set,this._poller=new xAu,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(GX.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ej.lang.castError(t);return this.emit(GX.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(GX.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(GX.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 Q$f(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=grn.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??j4r))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&w4r&&o.options.native!==!1)))return!0;if(!w4r)break;let c=grn.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||w4r&&r.native!==!1?r:{...r,recursive:!1},o={watcher:rEa.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=grn.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||w4r&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??j4r,f=r.limit??Mbi,[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(GX.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(GX.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=grn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new xAu,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??B$f},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(GX.CLOSE,f),rEa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(GX.CLOSE,f),rEa.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=grn.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=grn.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(GX.ALL,n),r.readdirMap=void 0,this.ready())}},Y$f=qAu;var Kww=Jo(eKf(),1),Yww=Jo(WAu(),1),Xww=Jo(JAu(),1),Zww=Jo(ZAu(),1),eMu=Jo(XKf(),1);var mid=Jo(XEa(),1),v5t=require("fs/promises"),jMa=require("os"),Fxu=Jo(require("path"),1),Oid=Jo(Hte(),1),Pid=Jo(Ded(),1),Rxu=Jo(Nxu(),1),HCw="etag",Lxu="preview",JCw="bundle",Uxu=".fern";function QCw(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu))}function wMa(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu),ls.of(JCw))}function GCw(){return Wl(Hp.of((0,jMa.homedir)()),ls.of(Uxu),ls.of(Lxu),ls.of(HCw))}async function jid({bucketUrl:e,logger:t,preferCached:r}){t.debug("Setting up docs preview bundle...");let n=await(0,Rxu.fetcher)({url:e,method:"GET",responseType:"text",duplex:"half"});if(!n.ok)return{type:"failure"};let i=n.body,u=await new Pid.default.Parser().parseStringPromise(i),f=u?.ListBucketResult?.Contents?.[0]?.ETag?.[0],d=u?.ListBucketResult?.Contents?.[0]?.Key?.[0],c=GCw();if(r){let F=await _h(c),C;if(F&&(t.debug("Reading existing ETag"),C=(await(0,v5t.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 Oid.default.dir({prefix:"fern"}),l=Hp.of(o.path);t.debug(`Downloading docs preview bundle from ${Fxu.default.join(e,d)}`);let m=await(0,Rxu.fetcher)({url:`${Fxu.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,v5t.writeFile)(O,A),t.debug(`Wrote output.zip to ${O}`);let T=QCw();await _h(T)&&await(0,v5t.rm)(T,{recursive:!0}),await(0,v5t.mkdir)(T,{recursive:!0}),t.debug(`rm -rf ${T}`);let B=wMa();return await(0,v5t.mkdir)(B,{recursive:!0}),await(0,mid.default)(O,B),await(0,v5t.writeFile)(c,f),t.debug(`Downloaded bundle to ${B}`),{type:"success"}}async function wid({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 Vxu(r),f={},c=await new USr(e,n,a,r,void 0,async m=>m.map(O=>{let j=c6r();return f[j]={type:"url",url:Pc.Url(`/_local${YVo(O.absoluteFilePath)}`)},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async m=>u.addReferencedAPI(m)).resolve(),o=hSu({writeShape:c,files:{}}),l=vSu({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 Vxu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=c6r(),a=C0i(Hwe({ir:t,snippetsConfig:r,playgroundConfig:n}),tL.ApiDefinitionId(i),new Xtn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),u=z0i(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 $Cw={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 Hxu({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 jid({bucketUrl:C,logger:n.logger,preferCached:!0})}catch(C){let N=wMa();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=B0(e.config._absolutePath),f=(0,Wxu.default)(),d=Sid.default.createServer(f),c=new eMu.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,Did.default)());let m=new URL(LSr(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 wid({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:
|
|
1959
|
+
${N.stack}`)),j}};j=await A();let T=O.apiWorkspaces.flatMap(C=>C.getAbsoluteFilePaths()),B=a?Hp.of(DMa.default.resolve(a)):wMa();new Y$f([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 ne=await A();ne!=null&&(j=ne),l({version:1,type:"finishReload"})}),f.post("/v2/registry/docs/load-with-url",async(C,N)=>{try{let U=j??$Cw,ne={baseUrl:{domain:m.host,basePath:m.pathname},definition:U,lightModeEnabled:U.config.colorsV3?.type!=="dark"};N.send(ne)}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),ne=>{c.emit("connection",ne,C)}):U()),f.use("/_next",Wxu.default.static(DMa.default.join(B,"/_next"))),f.use("*",async(C,N)=>N.sendFile(DMa.default.join(B,"/[[...slug]].html"))),f.listen(i),n.logger.info(`Running server on http://localhost:${i}`),await new Promise(()=>{})}var qW={RequestReference:"requestReference",InlinedRequestProperty:"inlinedRequestProperty",Response:"response",StreamingResponse:"streamingResponse"};function Zq(e,t){return async r=>{r!=null&&await e.docs?.(r,[...t,"docs"])}}async function Gxe({example:e,visitor:t,nodePath:r}){if(typeof e=="string")e.startsWith(zFt)&&await t.exampleTypeReference?.(e,r);else if(bD(e))for(let n of Object.values(e))await Gxe({example:n,visitor:t,nodePath:r});else if(Array.isArray(e))for(let n of e)await Gxe({example:n,visitor:t,nodePath:r})}function J2t(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 Eid({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 Aid({headers:n,visitor:t,nodePath:[...r,"headers"]})},audiences:Bc,auth:Bc,"path-parameters":async n=>{await SMa({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 KCw({endpointId:i,endpoint:a,service:e,visitor:t,nodePathForEndpoint:u})}},idempotent:Bc,transport:Bc,source:Bc})}async function KCw({endpointId:e,endpoint:t,service:r,visitor:n,nodePathForEndpoint:i}){let a=J2t(n);await n.httpEndpoint?.({endpointId:e,endpoint:t,service:r},i),await nP(t,{docs:Zq(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 SMa({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:Zq(n,f),"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:Zq(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 Aid({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"}):d2(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:qW.InlinedRequestProperty}):await nP(m,{name:Bc,docs:Zq(n,O),availability:Bc,type:async j=>{await a(j,[...O,"type"],{location:qW.InlinedRequestProperty,_default:m.default,validation:m.validation})},"content-type":Bc,audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}},"extra-properties":Bc})):(await Zq(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:qW.StreamingResponse}):await a(u.type,[...i,"response-stream"],{location:qW.StreamingResponse}))},response:async u=>{if(u==null)return;let f=[...i,"response"];typeof u=="string"?await a(u,f,{location:qW.Response}):await nP(u,{docs:Zq(n,f),type:async d=>{await a(d,[...f,"type"],{location:qW.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:Zq(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 YCw({nodePathForExample:[...i,{key:"examples",arrayIndex:f}],visitor:n,service:r,endpoint:t,example:d})},pagination:Bc,source:Bc,transport:Bc})}async function YCw({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 Gxe({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 Gxe({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 Gxe({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 Gxe({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 oZr(n,i.response,{body:async o=>{o.body!=null&&await Gxe({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 Gxe({example:l,visitor:t,nodePath:c})},events:async o=>{for(let{data:l}of o.stream)await Gxe({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 SMa({pathParameters:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(t);for(let[i,a]of Object.entries(e)){let u=[...r,i];await t.pathParameter?.({pathParameterKey:i,pathParameter:a},u),$qn(a)?typeof a=="string"?await t.variableReference?.(a,u):await nP(a,{docs:Zq(t,u),variable:async f=>await t.variableReference?.(f,[...u,"variable"]),availability:Bc}):typeof a=="string"?await n(a,u):await nP(a,{docs:Zq(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 Aid({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(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:Zq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}async function Mid({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 Jxu({typeName:n,declaration:i,visitor:t,nodePathForType:a})}}async function Jxu({typeName:e,declaration:t,visitor:r,nodePathForType:n}){let i=J2t(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 Gxe({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:Zq(r,n),availability:Bc,audiences:Bc,examples:a,validation:Bc,encoding:Bc,source:Bc})},object:async u=>{await nP(u,{docs:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(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:Zq(r,c),name:Bc,value:Bc,casing:Bc})}},availability:Bc,audiences:Bc,default:Bc,encoding:Bc,source:Bc,examples:a})}})}async function Tid({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 XCw({errorName:n,declaration:i,visitor:t,nodePathForError:a})}}async function XCw({errorName:e,declaration:t,visitor:r,nodePathForError:n}){let i=J2t(r);typeof t=="string"?await i(t,n):await nP(t,{docs:Zq(r,n),"status-code":Bc,type:async a=>{if(a==null)return;let u=[...n,"type"];typeof a=="string"?await i(a,u):await Jxu({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 xid({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 qid({webhook:e,visitor:t,nodePathForWebhook:r}){let n=J2t(t);await nP(e,{"display-name":Bc,method:Bc,examples:Bc,headers:async i=>{await ZCw({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(kCw(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:qW.InlinedRequestProperty}):await nP(c,{name:Bc,docs:Zq(t,o),availability:Bc,type:async l=>{await n(l,[...o,"type"],{_default:c.default,validation:c.validation,location:qW.InlinedRequestProperty})},audiences:Bc,encoding:Bc,default:Bc,validation:Bc})}}})},audiences:Bc,availability:Bc,docs:Zq(t,r)})}async function ZCw({headers:e,visitor:t,nodePath:r}){if(e==null)return;let n=J2t(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:Zq(t,u),audiences:Bc,encoding:Bc,env:Bc,default:Bc,validation:Bc})}}function kCw(e){return e.type!=null}async function CW(e,t){await nP(e,{docs:Zq(t,[]),imports:async r=>{await xid({imports:r,visitor:t,nodePath:["imports"]})},types:async r=>{await Mid({typeDeclarations:r,visitor:t,nodePath:["types"]})},service:async r=>{r!=null&&await Eid({service:r,visitor:t,nodePath:["service"]})},webhooks:async r=>{for(let[n,i]of Object.entries(r??{}))await qid({webhook:i,visitor:t,nodePathForWebhook:["webhooks",n]})},channel:Bc,errors:async r=>{await Tid({errorDeclarations:r,visitor:t,nodePath:["errors"]})}})}async function Qxu(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 Gxu(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])=>{oko(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 SMa({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 EMa=new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$");function Cid({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 Bid({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 Iid({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 e2w(e,t,r){if(!bne(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 t2w(e){return Number(e.replace("v",""))}async function r2w(e){let t=Zua({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 $xu={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{let r=Zua({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=t2w(e["ir-version"]);else{let f=await r2w(e);if(f==null)return[];a=f}if(a<=i)return[];let u=await r.generators.cli.getMinCliForIr(a);return u.ok?e2w(e.name,u.body.version,t)??[]:[]}}})};var Kxu={name:"import-file-exists",create:({workspace:e})=>{let t=Object.keys(iSr(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,B0(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 AMa(e){return e.definition.rootApiFile.contents.environments==null?[]:Object.values(e.definition.rootApiFile.contents.environments).reduce((t,r)=>{if(Gqn(r))for(let n of Object.keys(r.urls))t.includes(n)||t.push(n);return t},[])}var Yxu={name:"matching-environment-urls",create:({workspace:e})=>{let t=AMa(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 nDr(n,{singleBaseUrl:()=>{for(let u of t)a(u)},multipleBaseUrls:u=>{for(let f of t)u.urls[f]==null&&a(f)}}),i}}}}};var Xxu={name:"no-circular-imports",DISABLE_RULE:!0,create:({workspace:e})=>{let t=n2w(e.definition.namedDefinitionFiles);return{definitionFile:{import:async({importPath:r},{relativeFilepath:n})=>{let i=t[n];if(i==null)return[];let a=f4r({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 n2w(e){let t={};for(let r of _6t(e))t[r]=zid(r,[r],e);return t}function zid(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=f4r({referencedIn:e,importPath:ls.of(a)});t.includes(u)?t[0]===u&&t[0]===i2w(t)&&n.push({startingFilepath:u,chainWithoutStartingFilepath:t.slice(1)}):n.push(...zid(u,[...t,u],r))}return n}function i2w(e){return e.reduce((t,r)=>r<t?r:t)}var iM=J8t({generationLanguage:void 0,keywords:void 0,smartCasing:!1});var MMa=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:hc(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:hc(t)}}isNamedTypeComplex({type:t,file:r,visited:n}){if(n.has(t.rawName))return!1;if(n.add(t.rawName),Uzr(t.declaration))return!0;if(ACt(t.declaration))return!1;if(SE(t.declaration))return this.objectHasComplexProperties({typeName:t.rawName,objectDeclaration:t.declaration,file:r,visited:n});if(Yqn(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}hc(t.declaration)}objectHasComplexProperties({typeName:t,objectDeclaration:r,file:n,visited:i}){return B2t({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:hc(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:hc(t)}}};var Zxu={name:"no-complex-query-params",create:({workspace:e})=>{let t=new MMa(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 kxu={name:"no-conflicting-endpoint-parameters",create:()=>({definitionFile:{pathParameter:({pathParameterKey:e})=>e===tSa?[{severity:"error",message:`Path parameter ${qc.bold(e)} is not suitable for code generation, because it can conflict with the request body parameter.`}]:[]}})};function Fgi({service:e,endpoint:t}){return e["base-path"]+t.path}var TMa=class{root=new equ;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 Fgi({service:t.service,endpoint:t.endpoint}).split("/").filter(r=>r.length>0)}},equ=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 tqu={name:"no-conflicting-endpoint-paths",create:async({workspace:e})=>{let t=new TMa;return await D3(e,async(r,n)=>{await CW(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 ${Fgi({service:r,endpoint:n})} conflicts with other endpoints:`,...u.map(f=>` - ${f.relativeFilepath} -> ${f.endpointId} ${qc.dim(Fgi({service:f.service,endpoint:f.endpoint}))}`)].join(`
|
|
1960
1960
|
`)}]}}}}};var rqu={name:"no-conflicting-request-wrapper-properties",create:({workspace:e})=>({definitionFile:{httpEndpoint:({endpoint:t,service:r},{contents:n,relativeFilepath:i})=>{let a=a2w({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.
|
|
1961
1961
|
`+d.map(c=>` - ${o2w(c)}`).join(`
|
|
1962
1962
|
`)});return u}}})};function a2w({endpoint:e,service:t,relativeFilepath:r,definitionFile:n,workspace:i}){let a={},u=(f,d)=>{(a[f]??=[]).push(d)};if(e.request!=null&&typeof e.request!="string"&&e.request.body!=null&&!d2(e.request.body)&&rSa({request:e.request,file:$m({relativeFilepath:r,definitionFile:n,casingsGenerator:iM,rootApiFile:i.definition.rootApiFile.contents}),typeResolver:new oA(i)})&&u(rbi,{type:"referenced-body",propertyName:rbi}),t.headers!=null)for(let[f,d]of Object.entries(t.headers))u(G8t({headerKey:f,header:d}).name,{type:"service-header",headerKey:f,header:d});if(e.request!=null&&typeof e.request!="string"){if(e.request.headers!=null)for(let[f,d]of Object.entries(e.request.headers))u(G8t({headerKey:f,header:d}).name,{type:"endpoint-header",headerKey:f,header:d});if(e.request["query-parameters"]!=null)for(let[f,d]of Object.entries(e.request["query-parameters"]))u(RSr({queryParameterKey:f,queryParameter:d}).name,{type:"endpoint-query-parameter",queryParameterKey:f,queryParameter:d});if(e.request.body!=null&&d2(e.request.body)){let f=B2t({typeName:void 0,objectDeclaration:{extends:e.request.body.extends,properties:e.request.body.properties??{}},filepathOfDeclaration:r,definitionFile:n,workspace:i,typeResolver:new oA(i),smartCasing:!1});for(let d of f)u(d.name,{type:"inlined-body",property:d})}}return a}function o2w(e){switch(e.type){case"service-header":return`Service header "${e.headerKey}"`;case"endpoint-header":return`Endpoint header "${e.headerKey}"`;case"endpoint-query-parameter":return`Query Parameter "${e.queryParameterKey}"`;case"inlined-body":return`Body property: ${NNn({property:e.property,prefixBreadcrumbs:["<Request Body>"]})}`;case"referenced-body":return`Body property "${e.propertyName}"`;default:hc(e)}}var nqu=Jo(require("path"),1),iqu={name:"no-duplicate-declarations",create:async({workspace:e,logger:t})=>{let r=await u2w(e),n={},i=({declaredName:a,relativeFilepath:u})=>{let f=nqu.default.dirname(u),d=r[f]?.[a];if(d==null)return t.error(`Could not find declarations for name: ${a}. This is an error in the Fern validator.`),[];let c=n[f]??=new Set;if(!c.has(a))return c.add(a),[];let o=d.indexOf(u);return d.filter((m,O)=>O!==o).map(m=>({severity:"error",message:`${a} is already declared in ${m===u?"this file":m}`}))};return{definitionFile:{typeName:(a,{relativeFilepath:u})=>i({declaredName:a,relativeFilepath:u}),errorDeclaration:({errorName:a},{relativeFilepath:u})=>i({declaredName:a,relativeFilepath:u}),httpEndpoint:({endpoint:a},{relativeFilepath:u})=>typeof a.request!="string"&&a.request?.name!=null?i({declaredName:a.request.name,relativeFilepath:u}):[]}}}};async function u2w(e){let t={};return await D3(e,async(r,n)=>{let i=nqu.default.dirname(r),a=t[i]??={},u=f=>{(a[f]??=[]).push(r)};await CW(n,{typeName:f=>{u(f)},errorDeclaration:({errorName:f})=>{u(f)},httpEndpoint:({endpoint:f})=>{typeof f.request!="string"&&f.request?.name!=null&&u(f.request.name)}})}),t}function Rgi(e){let t=new Set,r=new Set,n=[];for(let i of e)t.has(i)&&!r.has(i)&&(r.add(i),n.push(i)),t.add(i);return n}var aqu={name:"no-duplicate-enum-values",create:()=>({definitionFile:{typeDeclaration:({declaration:e})=>ACt(e)?Rgi(e.enum.map(r=>typeof r=="string"?r:r.value)).map(r=>({severity:"error",message:`Duplicated enum value: ${qc.bold(r)}.`})):[]}})};var oqu={name:"no-duplicate-example-names",create:async()=>({definitionFile:{typeDeclaration:({declaration:e})=>{if(typeof e=="string"||e.examples==null)return[];let t=e.examples.map(r=>r.name).filter(YA);return Rgi(t).map(r=>({severity:"error",message:`Duplicate example name: ${r}`}))},httpEndpoint:({endpoint:e})=>{if(e.examples==null)return[];let t=e.examples.map(r=>r.name).filter(YA);return Rgi(t).map(r=>({severity:"error",message:`Duplicate example name: ${r}`}))}}})};function Nid(e){if(!e.isInlined)return e.name;switch(e.location){case"inlinedRequest":return"<Inlined Request>";default:hc(e.location)}}var uqu={name:"no-duplicate-field-names",create:({workspace:e})=>{let t=new oA(e);return{definitionFile:{typeDeclaration:({typeName:r,declaration:n},{relativeFilepath:i,contents:a})=>{let u=[];return v3(n,{alias:Cqt,enum:f=>{let d=Fid(f.enum,c=>LNn(c).name);for(let c of d)u.push({severity:"error",message:`Name "${c}" is used by multiple values.`})},object:f=>{let d=Nid(r),c=B2t({typeName:d,objectDeclaration:f,filepathOfDeclaration:i,definitionFile:a,workspace:e,typeResolver:t,smartCasing:!1}),o=tUo(c,l=>l.name);for(let[l,m]of Object.entries(o))if(m.length>1){let O=[`Object has multiple properties named "${l}":`,...m.map(j=>` - ${NNn({property:j,prefixBreadcrumbs:[d]})}`)].join(`
|