fern-api 0.41.14-rc1 → 0.41.14-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bundle.cjs +3 -3
  2. package/package.json +1 -1
package/bundle.cjs CHANGED
@@ -1781,7 +1781,7 @@ ${r?e:" ".repeat(n)}`)}`}function Ol(e){throw new Error("Unexpected value: "+JSO
1781
1781
  `}),r.replaceAll(/\n$/g,"")}function CZP(e){return e?cl.green(r8r.radioOn):r8r.radioOff}var vpa=yu(zje(),1);function YXl(e,t){return e=String(e),t=typeof t=="string"?t:"*",e.length===0?"":Array.from({length:e.length+1}).join(t)}var Ldi=class extends dR{_run(t){this.done=t;let r=uW(this.rl),n=r.line.pipe((0,vpa.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,vpa.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=`
1782
1782
  `+cl.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?cl.cyan(YXl(t,this.opt.mask)):cl.italic.dim("[hidden]"):this.opt.mask?YXl(t,this.opt.mask):cl.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(){var t;(t=this.opt).default&&(t.default=void 0),this.render()}};var OZl=yu(mZl(),1),PZl=yu(zje(),1);var Xdi=class extends dR{_run(t){this.done=t,this.editorResult=new PZl.Subject;let r=uW(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?cl.dim("Received"):cl.dim("Press <enter> to launch your preferred editor."),t&&(r=cl.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),(0,OZl.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 TZl=yu(DZl(),1);var MZl=yu(require("readline"),1),xZl=yu(EZl(),1),Ukr=class{constructor(t){this.rl||(this.rl=MZl.default.createInterface(PkP(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 PkP(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 xZl.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var Qdi=class extends Ukr{constructor(t={}){super(t),this.log=(0,TZl.default)(this.writeLog.bind(this)),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return Cdi(this.rl,this.bottomBar.split(`
1783
1783
  `).length),this}updateBottomBar(t){return Cdi(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+`
1784
- `}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&&ppa(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var LZl=yu(AZl(),1),UZl=yu(Xru(),1),VZl=yu(RZl(),1),oq=yu(zje(),1),WZl=yu(Lfi(),1);var Fpa=yu(zje(),1),FZl=yu(Lfi(),1),Lpa=function(e,t,r){return typeof e[t]!="function"?(0,Fpa.of)(e):(0,Fpa.from)((0,FZl.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Zdi={isPlainObject:LZl.default,set:VZl.default,get:UZl.default},$An=class extends Ukr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=Zdi.isPlainObject(r)?{...r}:{},Zdi.isPlainObject(t)&&(t=Object.values(t).every(i=>Zdi.isPlainObject(i)&&i.name===void 0)?Object.entries(t).map(([i,a])=>({name:i,...a})):[t]);let n=Array.isArray(t)?(0,oq.from)(t):t;return this.process=n.pipe((0,oq.concatMap)(this.processQuestion.bind(this)),(0,oq.publish)()),this.process.connect(),this.process.pipe((0,oq.reduce)((i,a)=>(Zdi.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,oq.defer)(()=>(0,oq.of)(t).pipe((0,oq.concatMap)(this.setDefaultType.bind(this)),(0,oq.concatMap)(this.filterIfRunnable.bind(this)),(0,oq.concatMap)(()=>Lpa(t,"message",this.answers)),(0,oq.concatMap)(()=>Lpa(t,"default",this.answers)),(0,oq.concatMap)(()=>Lpa(t,"choices",this.answers)),(0,oq.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,oq.defer)(()=>(0,oq.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,oq.defer)(()=>(0,oq.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Zdi.get(this.answers,t.name)!==void 0)return(0,oq.empty)();if(t.when===!1)return(0,oq.empty)();if(typeof t.when!="function")return(0,oq.of)(t);let{answers:r}=this;return(0,oq.defer)(()=>(0,oq.from)((0,WZl.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,oq.filter)(n=>n!=null)))}};function HZl(e){let t=function(r,n){let i;try{i=new $An(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",Ndi),this.registerPrompt("input",Nkr),this.registerPrompt("number",zdi),this.registerPrompt("confirm",Bdi),this.registerPrompt("rawlist",Idi),this.registerPrompt("expand",Rdi),this.registerPrompt("checkbox",Fdi),this.registerPrompt("password",Ldi),this.registerPrompt("editor",Xdi)},t.restoreDefaultPrompts(),t}var Wiu=HZl();function LkP(e,t){Wiu.registerPrompt(e,t)}function UkP(){Wiu.restoreDefaultPrompts()}var VkP={prompt:Wiu,ui:{BottomBar:Qdi,Prompt:$An},createPromptModule:HZl,registerPrompt:LkP,restoreDefaultPrompts:UkP,Separator:gne},Upa=VkP;var okl=yu(Yiu(),1),Wpa=class{posthog;constructor({posthogApiKey:t}){this.posthog=new okl.PostHog(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"0.41.14-rc1",usingAccessToken:!0}})}flush(){this.posthog.flush()}};var rpi=class{async sendEvent(){}async identify(){}async flush(){}};var GAn=require("fs/promises"),Skl=require("os"),Ekl=require("path"),Mkl=yu(Yiu(),1);var _Rt=yu(Dkl(),1),kL7=_Rt.default.v1,eU7=_Rt.default.v3,Wkr=_Rt.default.v4,tU7=_Rt.default.v5,rU7=_Rt.default.NIL,nU7=_Rt.default.version,iU7=_Rt.default.validate,aU7=_Rt.default.stringify,oU7=_Rt.default.parse;var vt1="id",bt1=".fern",opi=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new Mkl.PostHog(r),this.userId=t==null?void 0:uZo(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.41.14-rc1",...t,...t.properties}})}flush(){this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Tf(I_.of((0,Skl.homedir)()),Ws.of(bt1),Ws.of(vt1));await Vh(t)||(await(0,GAn.mkdir)((0,Ekl.dirname)(t),{recursive:!0}),await(0,GAn.writeFile)(t,Wkr())),this.persistedDistinctId=(await(0,GAn.readFile)(t)).toString()}return this.persistedDistinctId}};var nau;async function KAn(){return nau==null&&(nau=await gt1()),nau}async function gt1(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rpi;let r=await vua();return r!=null?new opi({token:r,posthogApiKey:e}):await yua()!=null?new Wpa({posthogApiKey:e}):new opi({token:void 0,posthogApiKey:e})}catch{return new rpi}}var Zau=yu(yRt(),1);var cpi=yu(require("process"),1);var Ptf=yu(Mau(),1),jtf=yu(Otf(),1);function N9(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=Kqt(e),e.length===0))return 0;e=e.replace((0,jtf.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let a=i.codePointAt(0);if(a<=31||a>=127&&a<=159||a>=768&&a<=879)continue;switch(Ptf.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function y_a(e){let t=0;for(let r of e.split(`
1784
+ `}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&&ppa(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var LZl=yu(AZl(),1),UZl=yu(Xru(),1),VZl=yu(RZl(),1),oq=yu(zje(),1),WZl=yu(Lfi(),1);var Fpa=yu(zje(),1),FZl=yu(Lfi(),1),Lpa=function(e,t,r){return typeof e[t]!="function"?(0,Fpa.of)(e):(0,Fpa.from)((0,FZl.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Zdi={isPlainObject:LZl.default,set:VZl.default,get:UZl.default},$An=class extends Ukr{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=Zdi.isPlainObject(r)?{...r}:{},Zdi.isPlainObject(t)&&(t=Object.values(t).every(i=>Zdi.isPlainObject(i)&&i.name===void 0)?Object.entries(t).map(([i,a])=>({name:i,...a})):[t]);let n=Array.isArray(t)?(0,oq.from)(t):t;return this.process=n.pipe((0,oq.concatMap)(this.processQuestion.bind(this)),(0,oq.publish)()),this.process.connect(),this.process.pipe((0,oq.reduce)((i,a)=>(Zdi.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,oq.defer)(()=>(0,oq.of)(t).pipe((0,oq.concatMap)(this.setDefaultType.bind(this)),(0,oq.concatMap)(this.filterIfRunnable.bind(this)),(0,oq.concatMap)(()=>Lpa(t,"message",this.answers)),(0,oq.concatMap)(()=>Lpa(t,"default",this.answers)),(0,oq.concatMap)(()=>Lpa(t,"choices",this.answers)),(0,oq.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,oq.defer)(()=>(0,oq.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,oq.defer)(()=>(0,oq.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Zdi.get(this.answers,t.name)!==void 0)return(0,oq.empty)();if(t.when===!1)return(0,oq.empty)();if(typeof t.when!="function")return(0,oq.of)(t);let{answers:r}=this;return(0,oq.defer)(()=>(0,oq.from)((0,WZl.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,oq.filter)(n=>n!=null)))}};function HZl(e){let t=function(r,n){let i;try{i=new $An(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",Ndi),this.registerPrompt("input",Nkr),this.registerPrompt("number",zdi),this.registerPrompt("confirm",Bdi),this.registerPrompt("rawlist",Idi),this.registerPrompt("expand",Rdi),this.registerPrompt("checkbox",Fdi),this.registerPrompt("password",Ldi),this.registerPrompt("editor",Xdi)},t.restoreDefaultPrompts(),t}var Wiu=HZl();function LkP(e,t){Wiu.registerPrompt(e,t)}function UkP(){Wiu.restoreDefaultPrompts()}var VkP={prompt:Wiu,ui:{BottomBar:Qdi,Prompt:$An},createPromptModule:HZl,registerPrompt:LkP,restoreDefaultPrompts:UkP,Separator:gne},Upa=VkP;var okl=yu(Yiu(),1),Wpa=class{posthog;constructor({posthogApiKey:t}){this.posthog=new okl.PostHog(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"0.41.14-rc2",usingAccessToken:!0}})}flush(){this.posthog.flush()}};var rpi=class{async sendEvent(){}async identify(){}async flush(){}};var GAn=require("fs/promises"),Skl=require("os"),Ekl=require("path"),Mkl=yu(Yiu(),1);var _Rt=yu(Dkl(),1),kL7=_Rt.default.v1,eU7=_Rt.default.v3,Wkr=_Rt.default.v4,tU7=_Rt.default.v5,rU7=_Rt.default.NIL,nU7=_Rt.default.version,iU7=_Rt.default.validate,aU7=_Rt.default.stringify,oU7=_Rt.default.parse;var vt1="id",bt1=".fern",opi=class{posthog;userId;constructor({token:t,posthogApiKey:r}){this.posthog=new Mkl.PostHog(r),this.userId=t==null?void 0:uZo(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.41.14-rc2",...t,...t.properties}})}flush(){this.posthog.flush()}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=Tf(I_.of((0,Skl.homedir)()),Ws.of(bt1),Ws.of(vt1));await Vh(t)||(await(0,GAn.mkdir)((0,Ekl.dirname)(t),{recursive:!0}),await(0,GAn.writeFile)(t,Wkr())),this.persistedDistinctId=(await(0,GAn.readFile)(t)).toString()}return this.persistedDistinctId}};var nau;async function KAn(){return nau==null&&(nau=await gt1()),nau}async function gt1(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rpi;let r=await vua();return r!=null?new opi({token:r,posthogApiKey:e}):await yua()!=null?new Wpa({posthogApiKey:e}):new opi({token:void 0,posthogApiKey:e})}catch{return new rpi}}var Zau=yu(yRt(),1);var cpi=yu(require("process"),1);var Ptf=yu(Mau(),1),jtf=yu(Otf(),1);function N9(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=Kqt(e),e.length===0))return 0;e=e.replace((0,jtf.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let a=i.codePointAt(0);if(a<=31||a>=127&&a<=159||a>=768&&a<=879)continue;switch(Ptf.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function y_a(e){let t=0;for(let r of e.split(`
1785
1785
  `))t=Math.max(t,N9(r));return t}var Wtf=yu(Tau(),1);var hn1=/[\p{Lu}]/u,yn1=/[\p{Ll}]/u,Stf=/^[\p{Lu}](?![\p{Lu}])/gu,xtf=/([\p{Alpha}\p{N}_]|$)/u,qau=/[_.\- ]+/,vn1=new RegExp("^"+qau.source),Etf=new RegExp(qau.source+xtf.source,"gu"),Mtf=new RegExp("\\d+"+xtf.source,"gu"),bn1=(e,t,r,n)=>{let i=!1,a=!1,u=!1,f=!1;for(let d=0;d<e.length;d++){let c=e[d];f=d>2?e[d-3]==="-":!0,i&&hn1.test(c)?(e=e.slice(0,d)+"-"+e.slice(d),i=!1,u=a,a=!0,d++):a&&u&&yn1.test(c)&&(!f||n)?(e=e.slice(0,d-1)+"-"+e.slice(d-1),u=a,a=!1,i=!0):(i=t(c)===c&&r(c)!==c,u=a,a=r(c)===c&&t(c)!==c)}return e},gn1=(e,t)=>(Stf.lastIndex=0,e.replace(Stf,r=>t(r))),mn1=(e,t)=>(Etf.lastIndex=0,Mtf.lastIndex=0,e.replace(Etf,(r,n)=>t(n)).replace(Mtf,r=>t(r)));function Cau(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?a=>a.toLowerCase():a=>a.toLocaleLowerCase(t.locale),n=t.locale===!1?a=>a.toUpperCase():a=>a.toLocaleUpperCase(t.locale);return e.length===1?qau.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=bn1(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(vn1,""),e=t.preserveConsecutiveUppercase?gn1(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),mn1(e,n))}var Bau=yu(qtf(),1);var Ctf=(e=0)=>t=>`\x1B[${t+e}m`,Atf=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Ntf=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`;function wn1(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[i,a]of Object.entries(n))t[i]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},n[i]=t[i],e.set(a[0],a[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi=Ctf(),t.color.ansi256=Atf(),t.color.ansi16m=Ntf(),t.bgColor.ansi=Ctf(10),t.bgColor.ansi256=Atf(10),t.bgColor.ansi16m=Ntf(10),Object.defineProperties(t,{rgbToAnsi256:{value:(r,n,i)=>r===n&&n===i?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5),enumerable:!1},hexToRgb:{value:r=>{let n=/(?<colorString>[a-f\d]{6}|[a-f\d]{3})/i.exec(r.toString(16));if(!n)return[0,0,0];let{colorString:i}=n.groups;i.length===3&&(i=i.split("").map(u=>u+u).join(""));let a=Number.parseInt(i,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:r=>t.rgbToAnsi256(...t.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value:r=>{if(r<8)return 30+r;if(r<16)return 90+(r-8);let n,i,a;if(r>=232)n=((r-232)*10+8)/255,i=n,a=n;else{r-=16;let d=r%36;n=Math.floor(r/36)/5,i=Math.floor(d/6)/5,a=d%6/5}let u=Math.max(n,i,a)*2;if(u===0)return 30;let f=30+(Math.round(a)<<2|Math.round(i)<<1|Math.round(n));return u===2&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(r,n,i)=>t.ansi256ToAnsi(t.rgbToAnsi256(r,n,i)),enumerable:!1},hexToAnsi:{value:r=>t.ansi256ToAnsi(t.hexToAnsi256(r)),enumerable:!1}}),t}var Dn1=wn1(),ztf=Dn1;var v_a=new Set(["\x1B","\x9B"]),Sn1=39,Nau="\x07",Rtf="[",En1="]",Ftf="m",zau=`${En1}8;;`,Btf=e=>`${v_a.values().next().value}${Rtf}${e}${Ftf}`,Itf=e=>`${v_a.values().next().value}${zau}${e}${Nau}`,Mn1=e=>e.split(" ").map(t=>N9(t)),Aau=(e,t,r)=>{let n=[...t],i=!1,a=!1,u=N9(Kqt(e[e.length-1]));for(let[f,d]of n.entries()){let c=N9(d);if(u+c<=r?e[e.length-1]+=d:(e.push(d),u=0),v_a.has(d)&&(i=!0,a=n.slice(f+1).join("").startsWith(zau)),i){a?d===Nau&&(i=!1,a=!1):d===Ftf&&(i=!1);continue}u+=c,u===r&&f<n.length-1&&(e.push(""),u=0)}!u&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},xn1=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(N9(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Tn1=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,a,u=Mn1(e),f=[""];for(let[c,o]of e.split(" ").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimStart());let l=N9(f[f.length-1]);if(c!==0&&(l>=t&&(r.wordWrap===!1||r.trim===!1)&&(f.push(""),l=0),(l>0||r.trim===!1)&&(f[f.length-1]+=" ",l++)),r.hard&&u[c]>t){let g=t-l,O=1+Math.floor((u[c]-g-1)/t);Math.floor((u[c]-1)/t)<O&&f.push(""),Aau(f,o,t);continue}if(l+u[c]>t&&l>0&&u[c]>0){if(r.wordWrap===!1&&l<t){Aau(f,o,t);continue}f.push("")}if(l+u[c]>t&&r.wordWrap===!1){Aau(f,o,t);continue}f[f.length-1]+=o}r.trim!==!1&&(f=f.map(c=>xn1(c)));let d=[...f.join(`
1786
1786
  `)];for(let[c,o]of d.entries()){if(n+=o,v_a.has(o)){let{groups:g}=new RegExp(`(?:\\${Rtf}(?<code>\\d+)m|\\${zau}(?<uri>.*)${Nau})`).exec(d.slice(c).join(""))||{groups:{}};if(g.code!==void 0){let O=Number.parseFloat(g.code);i=O===Sn1?void 0:O}else g.uri!==void 0&&(a=g.uri.length===0?void 0:g.uri)}let l=ztf.codes.get(Number(i));d[c+1]===`
1787
1787
  `?(a&&(n+=Itf("")),i&&l&&(n+=Btf(l))):o===`
@@ -1898,7 +1898,7 @@ errors:
1898
1898
  Run ${cl.cyan("fern generator upgrade")} to upgrade your generators.`),n.length>2&&(r+=`
1899
1899
  Run ${cl.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),i6n(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function Osu({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!nuf(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+=`
1900
1900
  ${await xp1(f.generatorName)} (${f.apiName!=null?"API: "+f.apiName+", ":""}Group: ${f.generatorGroup}) `+cl.dim(f.currentVersion)+cl.reset(" \u2192 ")+cl.green(f.latestVersion);return i+=`
1901
- `,n?i6n(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function xp1(e){let r=await new ruf.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 Tp1({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await auf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,c,o,l)=>{f.versions[c]==null&&(f.versions[c]={});let g=pg.getGeneratorNameOrThrow(o.name,l),O=await pg.getLatestGeneratorVersion({generatorName:g,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 auf({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=pg.getGeneratorNameOrThrow(c.name,o),g=await pg.getLatestGeneratorVersion({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:a,context:o});g!=null&&(u.versions[f][d][c.name]={previousVersion:c.version,latestVersion:g})},generatorFilter:r,groupFilter:n}),u}async function auf({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 pg.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 ouf(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=Pne(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 jha({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await Tp1({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(...ouf(c,d,t.logger));else u.push(...ouf(f.versions,void 0,t.logger))}return u}var Xpi=class extends Error{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}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=r,this.options=n}};var B6n=class extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}};var Qpi=e=>e!==null&&typeof e=="object";var Zpi=(...e)=>{for(let t of e)if((!Qpi(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return wha({},...e)},Psu=(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},wha=(...e)=>{let t={},r={};for(let n of e)if(Array.isArray(n))Array.isArray(t)||(t=[]),t=[...t,...n];else if(Qpi(n)){for(let[i,a]of Object.entries(n))Qpi(a)&&i in t&&(a=wha(t[i],a)),t={...t,[i]:a};Qpi(n.headers)&&(r=Psu(r,n.headers),t.headers=r)}return t};var uuf=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",n=typeof globalThis.Request=="function";return r&&n&&(t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")),e&&!t})(),suf=typeof globalThis.AbortController=="function",cuf=typeof globalThis.ReadableStream=="function",luf=typeof globalThis.FormData=="function",Dha=["get","post","put","patch","head","delete"],qp1=()=>{};qp1();var fuf={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Sha=2147483647,Eha=Symbol("stop"),duf={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},puf={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};var huf=e=>Dha.includes(e)?e.toUpperCase():e,Cp1=["get","put","head","delete","options","trace"],Ap1=[408,413,429,500,502,503,504],yuf=[413,429,503],_uf={limit:2,methods:Cp1,statusCodes:Ap1,afterStatusCodes:yuf,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},vuf=(e={})=>{if(typeof e=="number")return{..._uf,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{..._uf,...e,afterStatusCodes:yuf}};async function jsu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new B6n(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function wsu(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==null||t.removeEventListener("abort",i),r()},e)})}var buf=(e,t)=>{let r={};for(let n in t)!(n in puf)&&!(n in duf)&&!(n in e)&&(r[n]=t[n]);return r};var len=class{static create(t,r){let n=new len(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>Sha)throw new RangeError(`The \`timeout\` option cannot be greater than ${Sha}`);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 Xpi(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(!cuf)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(fuf))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}constructor(t,r={}){Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t;let n="credentials"in Request.prototype;if(this._options={credentials:n?this._input.credentials:void 0,...r,headers:Psu(this._input.headers,r.headers),hooks:wha({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:huf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:vuf(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(suf){if(this.abortController=new globalThis.AbortController,this._options.signal){let i=this._options.signal;this._options.signal.addEventListener("abort",()=>{this.abortController.abort(i.reason)})}this._options.signal=this.abortController.signal}if(uuf&&(this._options.duplex="half"),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="?"+i,u=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,a);(luf&&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(u,{...this.request}),this._options)}this._options.json!==void 0&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<=this._options.retry.limit&&!(t instanceof B6n)){if(t instanceof Xpi){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;let n=t.response.headers.get("Retry-After");if(n&&this._options.retry.afterStatusCodes.includes(t.response.status)){let i=Number(n);return Number.isNaN(i)?i=Date.parse(n)-Date.now():i*=1e3,this._options.retry.maxRetryAfter!==void 0&&i>this._options.retry.maxRetryAfter?0:i}if(t.response.status===413)return 0}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}return 0}_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),Sha);if(n!==0&&this._retryCount>0){await wsu(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})===Eha)return;return this._retry(t)}throw r}}async _fetch(){for(let r of this._options.hooks.beforeRequest){let n=await r(this.request,this._options);if(n instanceof Request){this.request=n;break}if(n instanceof Response)return n}let t=buf(this.request,this._options);return this._options.timeout===!1?this._options.fetch(this.request.clone(),t):jsu(this.request.clone(),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 Dsu=e=>{let t=(r,n)=>len.create(r,Zpi(e,n));for(let r of Dha)t[r]=(n,i)=>len.create(n,Zpi(e,i,{method:r}));return t.create=r=>Dsu(Zpi(r)),t.extend=r=>Dsu(Zpi(e,r)),t.stop=Eha,t},Np1=Dsu(),guf=Np1;var Vuf=yu(Uuf(),1);function Tsu(e){let t=(0,Vuf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var Rsf=yu(Isf(),1),Fsf=yu(QQr(),1),Vsu=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},Wsu=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function Hsu(e,t={}){var l;let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Tsu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,Rsf.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 guf(u,{headers:d,keepalive:!0}).json()}catch(g){throw((l=g==null?void 0:g.response)==null?void 0:l.status)===404?new Vsu(e):g}if(t.allVersions)return c;let o=new Wsu(e,r);if(c["dist-tags"][r]){let{time:g}=c;c=c.versions[c["dist-tags"][r]],c.time=g}else if(r){let g=Boolean(c.versions[r]);if(n&&!g)for(let[j,S]of Object.entries(c.versions))S.deprecated&&delete c.versions[j];if(!g){let j=Object.keys(c.versions);if(r=Fsf.default.maxSatisfying(j,r),!r)throw o}let{time:O}=c;if(c=c.versions[r],c.time=O,!c)throw o}return c}async function n_i(e,t){let{version:r}=await Hsu(e.toLowerCase(),t);return r}async function W6n({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:n_i(e.packageName,{version:t?"prerelease":"latest"})}var Lsf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Lha=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=_M.Info;constructor(t){this.ttyAwareLogger=new Pha(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"==null&&this.logger.error("CLI_PACKAGE_NAME is not defined"),"fern-api"}getPackageVersion(){return"0.41.14-rc1"==null&&this.logger.error("CLI_VERSION is not defined"),"0.41.14-rc1"}getCliName(){return"fern"==null&&this.logger.error("CLI_NAME is not defined"),"fern"}setLogLevel(t){this.logLevel=t}logDebugInfo(){this.logger.debug(`Running ${cl.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Gte}failWithoutThrowing(t,r){this.didSucceed=!1,bha({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),(await KAn()).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 iuf({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
1901
+ `,n?i6n(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function xp1(e){let r=await new ruf.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 Tp1({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){if(t.length===1){let f={type:"singleApi",versions:{}};return await auf({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,c,o,l)=>{f.versions[c]==null&&(f.versions[c]={});let g=pg.getGeneratorNameOrThrow(o.name,l),O=await pg.getLatestGeneratorVersion({generatorName:g,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 auf({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=pg.getGeneratorNameOrThrow(c.name,o),g=await pg.getLatestGeneratorVersion({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:a,context:o});g!=null&&(u.versions[f][d][c.name]={previousVersion:c.version,latestVersion:g})},generatorFilter:r,groupFilter:n}),u}async function auf({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 pg.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 ouf(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=Pne(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 jha({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:a}){let u=[];if(e!=null){let f=await Tp1({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(...ouf(c,d,t.logger));else u.push(...ouf(f.versions,void 0,t.logger))}return u}var Xpi=class extends Error{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}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=r,this.options=n}};var B6n=class extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}};var Qpi=e=>e!==null&&typeof e=="object";var Zpi=(...e)=>{for(let t of e)if((!Qpi(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return wha({},...e)},Psu=(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},wha=(...e)=>{let t={},r={};for(let n of e)if(Array.isArray(n))Array.isArray(t)||(t=[]),t=[...t,...n];else if(Qpi(n)){for(let[i,a]of Object.entries(n))Qpi(a)&&i in t&&(a=wha(t[i],a)),t={...t,[i]:a};Qpi(n.headers)&&(r=Psu(r,n.headers),t.headers=r)}return t};var uuf=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",n=typeof globalThis.Request=="function";return r&&n&&(t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")),e&&!t})(),suf=typeof globalThis.AbortController=="function",cuf=typeof globalThis.ReadableStream=="function",luf=typeof globalThis.FormData=="function",Dha=["get","post","put","patch","head","delete"],qp1=()=>{};qp1();var fuf={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Sha=2147483647,Eha=Symbol("stop"),duf={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},puf={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};var huf=e=>Dha.includes(e)?e.toUpperCase():e,Cp1=["get","put","head","delete","options","trace"],Ap1=[408,413,429,500,502,503,504],yuf=[413,429,503],_uf={limit:2,methods:Cp1,statusCodes:Ap1,afterStatusCodes:yuf,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},vuf=(e={})=>{if(typeof e=="number")return{..._uf,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{..._uf,...e,afterStatusCodes:yuf}};async function jsu(e,t,r,n){return new Promise((i,a)=>{let u=setTimeout(()=>{r&&r.abort(),a(new B6n(e))},n.timeout);n.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(u)})})}async function wsu(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==null||t.removeEventListener("abort",i),r()},e)})}var buf=(e,t)=>{let r={};for(let n in t)!(n in puf)&&!(n in duf)&&!(n in e)&&(r[n]=t[n]);return r};var len=class{static create(t,r){let n=new len(t,r),i=async()=>{if(typeof n._options.timeout=="number"&&n._options.timeout>Sha)throw new RangeError(`The \`timeout\` option cannot be greater than ${Sha}`);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 Xpi(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(!cuf)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(fuf))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}constructor(t,r={}){Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t;let n="credentials"in Request.prototype;if(this._options={credentials:n?this._input.credentials:void 0,...r,headers:Psu(this._input.headers,r.headers),hooks:wha({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:huf(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:vuf(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(suf){if(this.abortController=new globalThis.AbortController,this._options.signal){let i=this._options.signal;this._options.signal.addEventListener("abort",()=>{this.abortController.abort(i.reason)})}this._options.signal=this.abortController.signal}if(uuf&&(this._options.duplex="half"),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="?"+i,u=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,a);(luf&&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(u,{...this.request}),this._options)}this._options.json!==void 0&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<=this._options.retry.limit&&!(t instanceof B6n)){if(t instanceof Xpi){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;let n=t.response.headers.get("Retry-After");if(n&&this._options.retry.afterStatusCodes.includes(t.response.status)){let i=Number(n);return Number.isNaN(i)?i=Date.parse(n)-Date.now():i*=1e3,this._options.retry.maxRetryAfter!==void 0&&i>this._options.retry.maxRetryAfter?0:i}if(t.response.status===413)return 0}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}return 0}_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),Sha);if(n!==0&&this._retryCount>0){await wsu(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})===Eha)return;return this._retry(t)}throw r}}async _fetch(){for(let r of this._options.hooks.beforeRequest){let n=await r(this.request,this._options);if(n instanceof Request){this.request=n;break}if(n instanceof Response)return n}let t=buf(this.request,this._options);return this._options.timeout===!1?this._options.fetch(this.request.clone(),t):jsu(this.request.clone(),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 Dsu=e=>{let t=(r,n)=>len.create(r,Zpi(e,n));for(let r of Dha)t[r]=(n,i)=>len.create(n,Zpi(e,i,{method:r}));return t.create=r=>Dsu(Zpi(r)),t.extend=r=>Dsu(Zpi(e,r)),t.stop=Eha,t},Np1=Dsu(),guf=Np1;var Vuf=yu(Uuf(),1);function Tsu(e){let t=(0,Vuf.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var Rsf=yu(Isf(),1),Fsf=yu(QQr(),1),Vsu=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},Wsu=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function Hsu(e,t={}){var l;let{version:r="latest"}=t,{omitDeprecated:n=!0}=t,i=e.split("/")[0],a=t.registryUrl??Tsu(i),u=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),f=(0,Rsf.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 guf(u,{headers:d,keepalive:!0}).json()}catch(g){throw((l=g==null?void 0:g.response)==null?void 0:l.status)===404?new Vsu(e):g}if(t.allVersions)return c;let o=new Wsu(e,r);if(c["dist-tags"][r]){let{time:g}=c;c=c.versions[c["dist-tags"][r]],c.time=g}else if(r){let g=Boolean(c.versions[r]);if(n&&!g)for(let[j,S]of Object.entries(c.versions))S.deprecated&&delete c.versions[j];if(!g){let j=Object.keys(c.versions);if(r=Fsf.default.maxSatisfying(j,r),!r)throw o}let{time:O}=c;if(c=c.versions[r],c.time=O,!c)throw o}return c}async function n_i(e,t){let{version:r}=await Hsu(e.toLowerCase(),t);return r}async function W6n({cliEnvironment:e,includePreReleases:t=!1}){return e.packageVersion==="0.0.0"?e.packageVersion:n_i(e.packageName,{version:t?"prerelease":"latest"})}var Lsf=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Lha=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=_M.Info;constructor(t){this.ttyAwareLogger=new Pha(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"==null&&this.logger.error("CLI_PACKAGE_NAME is not defined"),"fern-api"}getPackageVersion(){return"0.41.14-rc2"==null&&this.logger.error("CLI_VERSION is not defined"),"0.41.14-rc2"}getCliName(){return"fern"==null&&this.logger.error("CLI_NAME is not defined"),"fern"}setLogLevel(t){this.logLevel=t}logDebugInfo(){this.logger.debug(`Running ${cl.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Gte}failWithoutThrowing(t,r){this.didSucceed=!1,bha({message:t,error:r,logger:this.logger})}async exit(){this._suppressUpgradeMessage||await this.nudgeUpgradeIfAvaialable(),this.ttyAwareLogger.finish(),(await KAn()).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 iuf({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
1902
1902
  `)||(r+=`
1903
1903
  `),this.logger.info(r))}catch{}}async exitIfFailed(){this.didSucceed||await this.exit()}exitProgram(){process.exit(this.didSucceed?0:1)}longestWorkspaceName;registerWorkspaces(t){let r=pWo(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 Fpi(t);return this.ttyAwareLogger.registerTask(r),r}async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(a){throw n.failWithoutThrowing(void 0,a),new Gte}finally{n.finish()}return i}async instrumentPostHogEvent(t){(await KAn()).sendEvent(t)}logger=Gui(this.log.bind(this));constructTaskInitForWorkspace(t){let r=Usf(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?Usf(this.longestWorkspaceName):r).length,i=r.padEnd(n),a=Lsf[this.numTasks++%Lsf.length],u=cl.hex(a)(i);return{...this.constructTaskInit(),logPrefix:u}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===D4.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=>p4r.indexOf(n.level)>=p4r.indexOf(this.logLevel));this.ttyAwareLogger.log(r,{includeDebugInfo:this.logLevel===_M.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 W6n({cliEnvironment:this.environment,includePreReleases:t}),n=Pne(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},a=await jha({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:a}}return this._isUpgradeAvailable}};function Usf(e){return`[${e}]:`}var rC;(function(e){e.FILE_READ="FILE_READ",e.FILE_PARSE="FILE_PARSE",e.FILE_MISSING="FILE_MISSING",e.STRUCTURE_VALIDATION="STRUCTURE_VALIDATION",e.DEPENDENCY_NOT_LISTED="DEPENDENCY_NOT_LISTED",e.FAILED_TO_LOAD_DEPENDENCY="FAILED_TO_LOAD_DEPENDENCY",e.EXPORTING_PACKAGE_MARKER_OTHER_KEYS="EXPORTING_PACKAGE_MARKER_OTHER_KEYS",e.EXPORT_PACKAGE_HAS_DEFINITIONS="EXPORT_PACKAGE_HAS_DEFINITIONS",e.MISCONFIGURED_DIRECTORY="MISCONFIGURED_DIRECTORY"})(rC||(rC={}));function $su(e,t){for(let[r,n]of v3(e.failures))Vsf({relativeFilepath:r,failure:n,logger:t})}function Uha(e,t){for(let[r,n]of v3(e))Vsf({relativeFilepath:r,failure:n,logger:t})}function Vsf({relativeFilepath:e,failure:t,logger:r}){switch(t.type){case rC.MISCONFIGURED_DIRECTORY:r.error("Misconfigured fern directory: please see the docs at https://buildwithfern.com/learn/api-definition/introduction/what-is-the-fern-folder");break;case rC.FILE_READ:r.error("Failed to open file: "+e);break;case rC.FILE_MISSING:r.error("Missing file: "+e);break;case rC.FILE_PARSE:t.error instanceof _Lo?r.error(OMn({title:`Failed to parse ${e}: ${t.error.reason}`,subtitle:t.error.mark.snippet})):r.error("Failed to parse file: "+e);break;case rC.STRUCTURE_VALIDATION:for(let n of t.error.issues)for(let{title:i,subtitle:a}of I_1(n))r.error(OMn({title:i,subtitle:a,breadcrumbs:[e,...n.path]}));break;case rC.FAILED_TO_LOAD_DEPENDENCY:r.error("Failed to load dependency: "+t.dependencyName);break;case rC.DEPENDENCY_NOT_LISTED:r.error(`Dependency is not listed in ${$6c}: `+t.dependencyName);break;case rC.EXPORT_PACKAGE_HAS_DEFINITIONS:r.error("Exported package contains API definitions: "+t.pathToPackage);break;case rC.EXPORTING_PACKAGE_MARKER_OTHER_KEYS:r.error(`${t.pathOfPackageMarker} has an export so it cannot define other keys.`);break;default:Ol(t)}}function I_1(e){switch(e.code){case L_.invalid_type:return[{title:"Incorrect type",subtitle:`Expected ${cl.underline(e.expected)} but received ${cl.underline(e.received)}`}];case L_.unrecognized_keys:return e.keys.map(t=>({title:"Unexpected key",subtitle:`Encountered unexpected key ${cl.underline(t)}`}));case L_.invalid_enum_value:return[{title:"Unrecognized value",subtitle:`Allowed values: ${e.options.map(t=>cl.underline(t)).join(", ")}`}];case L_.invalid_union:case L_.invalid_arguments:case L_.invalid_return_type:case L_.invalid_date:case L_.invalid_string:case L_.too_small:case L_.too_big:case L_.invalid_intersection_types:case L_.not_multiple_of:case L_.custom:default:return[{title:e.message}]}}var Wsf=require("fs/promises");async function Vha(e,t){let r=[];for(let n of await o4r(e,t))r.push(await R_1({relativeFilepath:YN(e,n),absoluteFilepath:n}));return r}async function R_1({relativeFilepath:e,absoluteFilepath:t}){return{relativeFilepath:e,absoluteFilepath:t,fileContents:(await(0,Wsf.readFile)(t)).toString()}}async function Hsf({absolutePathToWorkspace:e}){let t=Tf(e,Ws.of(W6c));if(!await Vh(t))return;let n=await Vha(t,"{md,mdx}");return{files:await Promise.all(n.map(i=>({absoluteFilepath:i.absoluteFilepath,contents:i.fileContents})))}}var odf=yu(Ksu(),1);async function Xsf(e){let t={},r={};function n(i){try{t[i.relativeFilepath]={defaultUrl:void 0,contents:av.load(i.fileContents,{schema:av.CORE_SCHEMA}),rawContents:i.fileContents}}catch(a){r[i.relativeFilepath]={type:rC.FILE_PARSE,error:a}}}return await Promise.all(e.map(n)),Object.keys(r).length>0?{didSucceed:!1,failures:r}:{didSucceed:!0,files:t}}var zlu=yu(bZr(),1),Kff=yu(yRt(),1),Yff=require("fs"),_7n=require("fs/promises");var Xff=require("os"),Qff=yu(require("path"),1),Zff=require("stream/promises"),kff=yu(Yya(),1),edf=yu(Jte(),1);var h01=QDr();async function tdf({dependencyName:e,dependenciesConfiguration:t,context:r,rootApiFile:n,cliVersion:i,settings:a}){let u,f={type:rC.FAILED_TO_LOAD_DEPENDENCY,dependencyName:e},d=t.dependencies[e];return d==null?f={type:rC.DEPENDENCY_NOT_LISTED,dependencyName:e}:await r.runInteractiveTask({name:`Download ${P01(d)}`},async c=>{switch(d.type){case"version":u=await m01({context:c,dependency:d,cliVersion:i,settings:a});return;case"local":u=await g01({context:c,dependency:d,cliVersion:i,settings:a});return;default:Ol(d)}}),u!=null?{didSucceed:!0,definition:u}:{didSucceed:!1,failure:f}}var rdf="dependencies";var y01="metadata.json",v01=".fern";function b01(e){return Tf(I_.of((0,Xff.homedir)()),Ws.of(v01),Ws.of(rdf),Ws.of(e.organization),Ws.of(e.apiName),Ws.of(e.version))}async function g01({dependency:e,context:t,cliVersion:r,settings:n}){t.logger.info("Parsing...");let i=await qen({absolutePathToWorkspace:e.absoluteFilepath,context:t,cliVersion:r,workspaceName:void 0});if(!i.didSucceed){t.failWithoutThrowing("Failed to load api definition",i.failures);return}t.logger.info("Modifying source filepath ...");let a=await i.workspace.getDefinition({context:t,relativePathToDependency:Ws.of(e.path)},n);return t.logger.info("Loaded..."),a}async function m01({dependency:e,context:t,cliVersion:r,settings:n}){let i=b01(e),a=Tf(i,Ws.of(rdf)),u=Tf(i,Ws.of(y01)),f;if(!await Vh(a)||!await Vh(u)){t.logger.info("Downloading manifest...");let o=await h01.definitionRegistry.get(zlu.FernFiddle.OrganizationId(e.organization),zlu.FernFiddle.ApiId(e.apiName),e.version);if(!o.ok){o.error._visit({orgDoesNotExistError:()=>{t.failWithoutThrowing("Organization does not exist")},apiDoesNotExistError:()=>{t.failWithoutThrowing("API does not exist")},versionDoesNotExistError:()=>{t.failWithoutThrowing("Version does not exist")},_other:j=>{t.failWithoutThrowing("Failed to download API manifest",j)}});return}let l=o.body.yamlSchemaVersion!=null?parseInt(o.body.yamlSchemaVersion):void 0,g=oen(r),O=oen(o.body.cliVersion);if(l!=null){if(l>1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a higher version of fern. Upgrade this workspace to ${o.body.cliVersion}`);return}else if(l<1){t.failWithoutThrowing(`${e.organization}/${e.apiName}@${e.version} on a lower version of fern. Upgrade it to ${r}`);return}}else if(g.major!==O.major||g.minor!==O.minor){t.failWithoutThrowing(`CLI version is ${o.body.cliVersion}. Expected ${g.major}.${g.minor}.x (to match current workspace).`);return}t.logger.info("Downloading..."),t.logger.debug("Remote URL: "+o.body.definitionS3DownloadUrl),await(0,_7n.mkdir)(a,{recursive:!0});try{await O01({s3PreSignedReadUrl:o.body.definitionS3DownloadUrl,absolutePathToLocalOutput:a})}catch(j){t.failWithoutThrowing("Failed to download API",j);return}f=o.body,await(0,_7n.writeFile)(u,JSON.stringify(f))}else f=JSON.parse((await(0,_7n.readFile)(u)).toString());t.logger.info("Parsing...");let d=await qen({absolutePathToWorkspace:a,context:t,cliVersion:f.cliVersion,workspaceName:void 0});if(!d.didSucceed){t.failWithoutThrowing("Failed to parse dependency after downloading",d.failures);return}if(d.workspace.type==="oss"){t.failWithoutThrowing("Dependency must be a fern workspace.");return}return await d.workspace.getDefinition({context:t},n)}async function O01({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await Kff.default.get(e,{responseType:"stream"}),n=await edf.default.dir(),i=Qff.default.join(n.path,"api.tgz");await(0,Zff.pipeline)(r.data,(0,Yff.createWriteStream)(i)),await kff.default.extract({file:i,cwd:t})}function P01(e){switch(e.type){case"version":return`@${e.organization}/${e.apiName}`;case"local":return`${e.path}`;default:Ol(e)}}async function ndf({dependenciesConfiguration:e,structuralValidationResult:t,context:r,cliVersion:n,settings:i}){let a={},u={},f={};return await Promise.all(v3(t.packageMarkers).map(async([d,c])=>{if(c.contents.export==null)a[d]=c;else{let{export:o,...l}=c.contents;if(X8t(l)>0)f[d]={type:rC.EXPORTING_PACKAGE_MARKER_OTHER_KEYS,pathOfPackageMarker:d};else{let g=Hg(d);if(S8t(t.namedDefinitionFiles).some(j=>j!==d&&j.startsWith(g)))f[d]={type:rC.EXPORT_PACKAGE_HAS_DEFINITIONS,pathToPackage:g};else{let j=await tdf({dependencyName:typeof c.contents.export=="string"?c.contents.export:c.contents.export.dependency,dependenciesConfiguration:e,context:r,rootApiFile:t.rootApiFile.contents,cliVersion:n,settings:i});j.didSucceed?u[Hg(d)]={definition:j.definition,url:typeof c.contents.export=="object"?c.contents.export.url:void 0}:f[d]=j.failure}}}})),X8t(f)>0?{didSucceed:!1,failures:f}:{didSucceed:!0,packageMarkers:a,importedDefinitions:u}}var idf=yu(require("path"),1);function adf({files:e,absolutePathToDefinition:t}){let r,n={},i={},a={};for(let[u,f]of v3(e)){let d=f.contents,c=o=>{a[u]={type:rC.STRUCTURE_VALIDATION,error:o}};if(u===nB){let o=Zea.safeParse(d);o.success?r={defaultUrl:o.data["default-url"],contents:o.data,rawContents:f.rawContents}:c(o.error)}else if(idf.default.basename(u)===$T){let o=Gea.safeParse(d);o.success?i[u]={defaultUrl:typeof o.data.export=="object"?o.data.export.url:void 0,contents:o.data,rawContents:f.rawContents}:c(o.error)}else{let o=a2n.safeParse(d);o.success?n[u]={defaultUrl:void 0,contents:o.data,rawContents:f.rawContents,absoluteFilepath:Tf(t,u)}:c(o.error)}}return r==null?{didSucceed:!1,failures:{[Ws.of(nB)]:{type:rC.FILE_MISSING},...a}}:Object.keys(a).length>0?{didSucceed:!1,failures:a}:{didSucceed:!0,namedDefinitionFiles:n,rootApiFile:r,packageMarkers:i}}var Cen=class{};var h5r=class extends Cen{type="fern";workspaceName;absoluteFilepath;generatorsConfiguration;dependenciesConfiguration;definition;changelog;sources;cliVersion;constructor({absoluteFilepath:t,workspaceName:r,generatorsConfiguration:n,dependenciesConfiguration:i,definition:a,changelog:u,sources:f,cliVersion:d}){super(),this.absoluteFilepath=t,this.workspaceName=r,this.changelog=u,this.generatorsConfiguration=n,this.dependenciesConfiguration=i,this.definition=a,this.sources=f??[],this.cliVersion=d}async getDefinition(){return this.definition}async toFernWorkspace(){return this}getAbsoluteFilepaths(){return[this.absoluteFilepath]}getSources(){return this.sources}},Aen=class extends Cen{type="fern";workspaceName;absoluteFilepath;generatorsConfiguration;changelog;context;cliVersion;fernWorkspaces={};constructor({absoluteFilepath:t,workspaceName:r,generatorsConfiguration:n,changelog:i,cliVersion:a,context:u}){super(),this.absoluteFilepath=t,this.workspaceName=r,this.changelog=i,this.generatorsConfiguration=n,this.cliVersion=a,this.context=u}async getDefinition({context:t},r){return(await this.toFernWorkspace({context:t},r)).definition}async toFernWorkspace({context:t},r){let n=(0,odf.default)(r??{}),i=this.fernWorkspaces[n];if(i==null){let a=t||this.context,u=Tf(this.absoluteFilepath,Ws.of(p9)),f=await BGi.loadDependenciesConfiguration({absolutePathToWorkspace:this.absoluteFilepath,context:a}),d=await Vha(u,"{yml,yaml}"),c=await Xsf(d);if(!c.didSucceed)return Uha(c.failures,a.logger),a.failAndThrow();let o=adf({files:c.files,absolutePathToDefinition:u});if(!o.didSucceed)return Uha(o.failures,a.logger),a.failAndThrow();let l=await ndf({dependenciesConfiguration:f,structuralValidationResult:o,context:a,cliVersion:this.cliVersion,settings:r});if(!l.didSucceed)return Uha(l.failures,a.logger),a.failAndThrow();i=new h5r({absoluteFilepath:this.absoluteFilepath,generatorsConfiguration:this.generatorsConfiguration,dependenciesConfiguration:f,workspaceName:this.workspaceName,definition:{absoluteFilepath:u,rootApiFile:o.rootApiFile,namedDefinitionFiles:o.namedDefinitionFiles,packageMarkers:l.packageMarkers,importedDefinitions:l.importedDefinitions},changelog:this.changelog,sources:void 0,cliVersion:this.cliVersion}),this.fernWorkspaces[n]=i}return i}getAbsoluteFilepaths(){return[this.absoluteFilepath]}};var HSr={openapi:e=>({...e,type:"openapi",_visit:function(t){return HSr._visit(this,t)}}),protobuf:e=>({...e,type:"protobuf",_visit:function(t){return HSr._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"openapi":return t.openapi(e);case"protobuf":return t.protobuf(e);default:return t._other(e)}}};var h7n={protobuf:e=>({...e,type:"protobuf",_visit:function(t){return h7n._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"protobuf":return t.protobuf(e);default:return t._other(e)}}};var F9={basic:e=>({...e,type:"basic",_visit:function(t){return F9._visit(this,t)}}),bearer:e=>({...e,type:"bearer",_visit:function(t){return F9._visit(this,t)}}),header:e=>({...e,type:"header",_visit:function(t){return F9._visit(this,t)}}),query:e=>({...e,type:"query",_visit:function(t){return F9._visit(this,t)}}),oauth:e=>({...e,type:"oauth",_visit:function(t){return F9._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"basic":return t.basic(e);case"bearer":return t.bearer(e);case"header":return t.header(e);case"query":return t.query(e);case"oauth":return t.oauth(e);default:return t._other(e)}}};var RP={primitive:e=>({value:e,type:"primitive",_visit:function(t){return RP._visit(this,t)}}),object:e=>({...e,type:"object",_visit:function(t){return RP._visit(this,t)}}),array:e=>({value:e,type:"array",_visit:function(t){return RP._visit(this,t)}}),map:e=>({value:e,type:"map",_visit:function(t){return RP._visit(this,t)}}),enum:e=>({value:e,type:"enum",_visit:function(t){return RP._visit(this,t)}}),literal:e=>({value:e,type:"literal",_visit:function(t){return RP._visit(this,t)}}),oneOf:e=>({value:e,type:"oneOf",_visit:function(t){return RP._visit(this,t)}}),unknown:e=>({value:e,type:"unknown",_visit:function(t){return RP._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"primitive":return t.primitive(e.value);case"object":return t.object(e);case"array":return t.array(e.value);case"map":return t.map(e.value);case"enum":return t.enum(e.value);case"literal":return t.literal(e.value);case"oneOf":return t.oneOf(e.value);case"unknown":return t.unknown(e.value);default:return t._other(e)}}};var t0={int:e=>({value:e,type:"int",_visit:function(t){return t0._visit(this,t)}}),int64:e=>({value:e,type:"int64",_visit:function(t){return t0._visit(this,t)}}),uint:e=>({value:e,type:"uint",_visit:function(t){return t0._visit(this,t)}}),uint64:e=>({value:e,type:"uint64",_visit:function(t){return t0._visit(this,t)}}),float:e=>({value:e,type:"float",_visit:function(t){return t0._visit(this,t)}}),double:e=>({value:e,type:"double",_visit:function(t){return t0._visit(this,t)}}),string:e=>({value:e,type:"string",_visit:function(t){return t0._visit(this,t)}}),datetime:e=>({value:e,type:"datetime",_visit:function(t){return t0._visit(this,t)}}),date:e=>({value:e,type:"date",_visit:function(t){return t0._visit(this,t)}}),base64:e=>({value:e,type:"base64",_visit:function(t){return t0._visit(this,t)}}),boolean:e=>({value:e,type:"boolean",_visit:function(t){return t0._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"int":return t.int(e.value);case"int64":return t.int64(e.value);case"uint":return t.uint(e.value);case"uint64":return t.uint64(e.value);case"float":return t.float(e.value);case"double":return t.double(e.value);case"string":return t.string(e.value);case"datetime":return t.datetime(e.value);case"date":return t.date(e.value);case"base64":return t.base64(e.value);case"boolean":return t.boolean(e.value);default:return t._other(e)}}};var y7n={boolean:e=>({value:e,type:"boolean",_visit:function(t){return y7n._visit(this,t)}}),string:e=>({value:e,type:"string",_visit:function(t){return y7n._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"boolean":return t.boolean(e.value);case"string":return t.string(e.value);default:return t._other(e)}}};var y5r={discriminated:e=>({value:e,type:"discriminated",_visit:function(t){return y5r._visit(this,t)}}),undisciminated:e=>({value:e,type:"undisciminated",_visit:function(t){return y5r._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"discriminated":return t.discriminated(e.value);case"undisciminated":return t.undisciminated(e.value);default:return t._other(e)}}};var hW={GenerallyAvailable:"GenerallyAvailable",Beta:"Beta",Deprecated:"Deprecated",_visit:(e,t)=>{switch(e){case hW.GenerallyAvailable:return t.generallyAvailable();case hW.Beta:return t.beta();case hW.Deprecated:return t.deprecated();default:return t._other()}}};var $Sr={cursor:e=>({...e,type:"cursor",_visit:function(t){return $Sr._visit(this,t)}}),offset:e=>({...e,type:"offset",_visit:function(t){return $Sr._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"cursor":return t.cursor(e);case"offset":return t.offset(e);default:return t._other(e)}}};var JSr={language:e=>({...e,type:"language",_visit:function(t){return JSr._visit(this,t)}}),sdk:e=>({...e,type:"sdk",_visit:function(t){return JSr._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"language":return t.language(e);case"sdk":return t.sdk(e);default:return t._other(e)}}};var yW={Curl:"curl",Python:"python",Javascript:"javascript",Typescript:"typescript",Go:"go",Ruby:"ruby",Csharp:"csharp",Java:"java",Js:"js",Node:"node",Ts:"ts",Nodets:"nodets",Golang:"golang",Dotnet:"dotnet",Jvm:"jvm",_visit:(e,t)=>{switch(e){case yW.Curl:return t.curl();case yW.Python:return t.python();case yW.Javascript:return t.javascript();case yW.Typescript:return t.typescript();case yW.Go:return t.go();case yW.Ruby:return t.ruby();case yW.Csharp:return t.csharp();case yW.Java:return t.java();case yW.Js:return t.js();case yW.Node:return t.node();case yW.Ts:return t.ts();case yW.Nodets:return t.nodets();case yW.Golang:return t.golang();case yW.Dotnet:return t.dotnet();case yW.Jvm:return t.jvm();default:return t._other()}}};var dAt={unknown:e=>({value:e,type:"unknown",_visit:function(t){return dAt._visit(this,t)}}),full:e=>({...e,type:"full",_visit:function(t){return dAt._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"unknown":return t.unknown(e.value);case"full":return t.full(e);default:return t._other(e)}}};var GJ={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE",Head:"HEAD",Options:"OPTIONS",Trace:"TRACE",_visit:(e,t)=>{switch(e){case GJ.Get:return t.get();case GJ.Post:return t.post();case GJ.Put:return t.put();case GJ.Patch:return t.patch();case GJ.Delete:return t.delete();case GJ.Head:return t.head();case GJ.Options:return t.options();case GJ.Trace:return t.trace();default:return t._other()}}};var v5r={octetStream:e=>({...e,type:"octetStream",_visit:function(t){return v5r._visit(this,t)}}),multipart:e=>({...e,type:"multipart",_visit:function(t){return v5r._visit(this,t)}}),json:e=>({...e,type:"json",_visit:function(t){return v5r._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"octetStream":return t.octetStream(e);case"multipart":return t.multipart(e);case"json":return t.json(e);default:return t._other(e)}}};var D2e={file:e=>({...e,type:"file",_visit:function(t){return D2e._visit(this,t)}}),json:e=>({value:e,type:"json",_visit:function(t){return D2e._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"file":return t.file(e);case"json":return t.json(e.value);default:return t._other(e)}}};var Sne={file:e=>({...e,type:"file",_visit:function(t){return Sne._visit(this,t)}}),json:e=>({...e,type:"json",_visit:function(t){return Sne._visit(this,t)}}),text:e=>({...e,type:"text",_visit:function(t){return Sne._visit(this,t)}}),streamingSse:e=>({...e,type:"streamingSse",_visit:function(t){return Sne._visit(this,t)}}),streamingText:e=>({...e,type:"streamingText",_visit:function(t){return Sne._visit(this,t)}}),streamingJson:e=>({...e,type:"streamingJson",_visit:function(t){return Sne._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"file":return t.file(e);case"json":return t.json(e);case"text":return t.text(e);case"streamingSse":return t.streamingSse(e);case"streamingText":return t.streamingText(e);case"streamingJson":return t.streamingJson(e);default:return t._other(e)}}};var ib={primitive:e=>({...e,type:"primitive",_visit:function(t){return ib._visit(this,t)}}),object:e=>({...e,type:"object",_visit:function(t){return ib._visit(this,t)}}),array:e=>({...e,type:"array",_visit:function(t){return ib._visit(this,t)}}),map:e=>({...e,type:"map",_visit:function(t){return ib._visit(this,t)}}),optional:e=>({...e,type:"optional",_visit:function(t){return ib._visit(this,t)}}),enum:e=>({...e,type:"enum",_visit:function(t){return ib._visit(this,t)}}),reference:e=>({...e,type:"reference",_visit:function(t){return ib._visit(this,t)}}),literal:e=>({...e,type:"literal",_visit:function(t){return ib._visit(this,t)}}),oneOf:e=>({value:e,type:"oneOf",_visit:function(t){return ib._visit(this,t)}}),nullable:e=>({...e,type:"nullable",_visit:function(t){return ib._visit(this,t)}}),unknown:e=>({...e,type:"unknown",_visit:function(t){return ib._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"primitive":return t.primitive(e);case"object":return t.object(e);case"array":return t.array(e);case"map":return t.map(e);case"optional":return t.optional(e);case"enum":return t.enum(e);case"reference":return t.reference(e);case"literal":return t.literal(e);case"oneOf":return t.oneOf(e.value);case"nullable":return t.nullable(e);case"unknown":return t.unknown(e);default:return t._other(e)}}};var Xw={int:e=>({...e,type:"int",_visit:function(t){return Xw._visit(this,t)}}),int64:e=>({...e,type:"int64",_visit:function(t){return Xw._visit(this,t)}}),uint:()=>({type:"uint",_visit:function(e){return Xw._visit(this,e)}}),uint64:()=>({type:"uint64",_visit:function(e){return Xw._visit(this,e)}}),float:()=>({type:"float",_visit:function(e){return Xw._visit(this,e)}}),double:e=>({...e,type:"double",_visit:function(t){return Xw._visit(this,t)}}),string:e=>({...e,type:"string",_visit:function(t){return Xw._visit(this,t)}}),datetime:()=>({type:"datetime",_visit:function(e){return Xw._visit(this,e)}}),date:()=>({type:"date",_visit:function(e){return Xw._visit(this,e)}}),base64:()=>({type:"base64",_visit:function(e){return Xw._visit(this,e)}}),boolean:e=>({...e,type:"boolean",_visit:function(t){return Xw._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"int":return t.int(e);case"int64":return t.int64(e);case"uint":return t.uint();case"uint64":return t.uint64();case"float":return t.float();case"double":return t.double(e);case"string":return t.string(e);case"datetime":return t.datetime();case"date":return t.date();case"base64":return t.base64();case"boolean":return t.boolean(e);default:return t._other(e)}}};var E7={boolean:e=>({value:e,type:"boolean",_visit:function(t){return E7._visit(this,t)}}),string:e=>({value:e,type:"string",_visit:function(t){return E7._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"boolean":return t.boolean(e.value);case"string":return t.string(e.value);default:return t._other(e)}}};var GSr={discriminated:e=>({...e,type:"discriminated",_visit:function(t){return GSr._visit(this,t)}}),undisciminated:e=>({...e,type:"undisciminated",_visit:function(t){return GSr._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"discriminated":return t.discriminated(e);case"undisciminated":return t.undisciminated(e);default:return t._other(e)}}};var S2e={octetStream:e=>({...e,type:"octetStream",_visit:function(t){return S2e._visit(this,t)}}),multipart:e=>({...e,type:"multipart",_visit:function(t){return S2e._visit(this,t)}}),json:e=>({...e,type:"json",_visit:function(t){return S2e._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"octetStream":return t.octetStream(e);case"multipart":return t.multipart(e);case"json":return t.json(e);default:return t._other(e)}}};var T3={file:e=>({...e,type:"file",_visit:function(t){return T3._visit(this,t)}}),json:e=>({...e,type:"json",_visit:function(t){return T3._visit(this,t)}}),text:e=>({...e,type:"text",_visit:function(t){return T3._visit(this,t)}}),streamingSse:e=>({...e,type:"streamingSse",_visit:function(t){return T3._visit(this,t)}}),streamingText:e=>({...e,type:"streamingText",_visit:function(t){return T3._visit(this,t)}}),streamingJson:e=>({...e,type:"streamingJson",_visit:function(t){return T3._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"file":return t.file(e);case"json":return t.json(e);case"text":return t.text(e);case"streamingSse":return t.streamingSse(e);case"streamingText":return t.streamingText(e);case"streamingJson":return t.streamingJson(e);default:return t._other(e)}}};var Lp={primitive:e=>({...e,type:"primitive",_visit:function(t){return Lp._visit(this,t)}}),object:e=>({...e,type:"object",_visit:function(t){return Lp._visit(this,t)}}),array:e=>({...e,type:"array",_visit:function(t){return Lp._visit(this,t)}}),map:e=>({...e,type:"map",_visit:function(t){return Lp._visit(this,t)}}),optional:e=>({...e,type:"optional",_visit:function(t){return Lp._visit(this,t)}}),enum:e=>({...e,type:"enum",_visit:function(t){return Lp._visit(this,t)}}),reference:e=>({...e,type:"reference",_visit:function(t){return Lp._visit(this,t)}}),literal:e=>({...e,type:"literal",_visit:function(t){return Lp._visit(this,t)}}),oneOf:e=>({value:e,type:"oneOf",_visit:function(t){return Lp._visit(this,t)}}),nullable:e=>({...e,type:"nullable",_visit:function(t){return Lp._visit(this,t)}}),unknown:e=>({...e,type:"unknown",_visit:function(t){return Lp._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"primitive":return t.primitive(e);case"object":return t.object(e);case"array":return t.array(e);case"map":return t.map(e);case"optional":return t.optional(e);case"enum":return t.enum(e);case"reference":return t.reference(e);case"literal":return t.literal(e);case"oneOf":return t.oneOf(e.value);case"nullable":return t.nullable(e);case"unknown":return t.unknown(e);default:return t._other(e)}}};var jQ={discriminated:e=>({...e,type:"discriminated",_visit:function(t){return jQ._visit(this,t)}}),undisciminated:e=>({...e,type:"undisciminated",_visit:function(t){return jQ._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"discriminated":return t.discriminated(e);case"undisciminated":return t.undisciminated(e);default:return t._other(e)}}};var by={int:e=>({...e,type:"int",_visit:function(t){return by._visit(this,t)}}),int64:e=>({...e,type:"int64",_visit:function(t){return by._visit(this,t)}}),uint:e=>({...e,type:"uint",_visit:function(t){return by._visit(this,t)}}),uint64:e=>({...e,type:"uint64",_visit:function(t){return by._visit(this,t)}}),float:e=>({...e,type:"float",_visit:function(t){return by._visit(this,t)}}),double:e=>({...e,type:"double",_visit:function(t){return by._visit(this,t)}}),string:e=>({...e,type:"string",_visit:function(t){return by._visit(this,t)}}),datetime:e=>({...e,type:"datetime",_visit:function(t){return by._visit(this,t)}}),date:e=>({...e,type:"date",_visit:function(t){return by._visit(this,t)}}),base64:e=>({...e,type:"base64",_visit:function(t){return by._visit(this,t)}}),boolean:e=>({...e,type:"boolean",_visit:function(t){return by._visit(this,t)}}),_visit:(e,t)=>{switch(e.type){case"int":return t.int(e);case"int64":return t.int64(e);case"uint":return t.uint(e);case"uint64":return t.uint64(e);case"float":return t.float(e);case"double":return t.double(e);case"string":return t.string(e);case"datetime":return t.datetime(e);case"date":return t.date(e);case"base64":return t.base64(e);case"boolean":return t.boolean(e);default:return t._other(e)}}};var Ag={};Wb(Ag,{AllOfPropertyConflict:()=>N7n,ArraySchema:()=>ava,ArraySchemaWithExample:()=>Nva,Availability:()=>a0a,Base64WithExample:()=>xva,BasicSecurityScheme:()=>s0a,BearerSecurityScheme:()=>c0a,BooleanSchema:()=>k0a,BooleanWithExample:()=>Tva,CasingOverrides:()=>d0a,CommonProperty:()=>pva,CommonPropertyWithExample:()=>Wva,CursorPagination:()=>F0a,CustomCodeSample:()=>I0a,CustomCodeSampleLanguage:()=>N0a,CustomCodeSampleSdk:()=>B0a,DateWithExample:()=>Mva,DatetimeWithExample:()=>Eva,DiscriminatedOneOfSchema:()=>fva,DiscriminatedOneOfSchemaWithExample:()=>Uva,DoubleSchema:()=>Q0a,DoubleWithExample:()=>Dva,Encoding:()=>i0a,Endpoint:()=>U0a,EndpointExample:()=>q7n,EndpointSdkName:()=>S5r,EndpointWithExample:()=>zdf,EnumSchema:()=>g7n,EnumSchemaWithExample:()=>Cva,EnumValue:()=>P5r,ErrorExample:()=>T0a,FernExample:()=>C0a,FileResponse:()=>E7n,FileSchema:()=>w0a,FloatWithExample:()=>wva,FullEndpointExample:()=>R0a,FullExample:()=>yA,FullObjectExample:()=>g0a,FullOneOfExample:()=>O0a,GlobalHeader:()=>tva,Header:()=>D5r,HeaderExample:()=>T7n,HeaderSecurityScheme:()=>l0a,HeaderWithExample:()=>I7n,HttpEndpointServer:()=>M7n,HttpError:()=>q0a,HttpErrorWithExample:()=>gva,HttpMethod:()=>P7n,IdempotencyHeader:()=>rva,Int64WithExample:()=>Ova,IntSchema:()=>Y0a,IntWithExample:()=>mva,JsonRequest:()=>E0a,JsonRequestWithExample:()=>hva,JsonResponse:()=>KSr,JsonResponseWithExample:()=>vva,KeyValuePair:()=>m0a,LiteralExample:()=>b0a,LiteralSchema:()=>A7n,LiteralSchemaValue:()=>nva,LongSchema:()=>X0a,MapSchema:()=>ova,MapSchemaWithExample:()=>zva,MultipartRequest:()=>S7n,MultipartRequestProperty:()=>S0a,MultipartSchema:()=>D0a,NamedFullExample:()=>zRt,Namespace:()=>p0a,NullableSchema:()=>sva,NullableSchemaWithExample:()=>Iva,OauthSecurityScheme:()=>h0a,ObjectProperty:()=>lva,ObjectPropertyConflictInfo:()=>z7n,ObjectPropertyWithExample:()=>Lva,ObjectSchema:()=>iva,ObjectSchemaWithExample:()=>Rva,OctetStreamRequest:()=>D7n,OffsetPagination:()=>L0a,OneOfSchema:()=>cva,OneOfSchemaWithExample:()=>Fva,OpenApiIntermediateRepresentation:()=>Adf,OpenApiSource:()=>e0a,OptionalSchema:()=>uva,OptionalSchemaWithExample:()=>Bva,Pagination:()=>C7n,PathParameter:()=>j7n,PathParameterExample:()=>A0a,PathParameterWithExample:()=>_va,PrimitiveExample:()=>O7n,PrimitiveSchema:()=>M5r,PrimitiveSchemaValue:()=>eva,PrimitiveSchemaValueWithExample:()=>qva,PrimitiveSchemaWithExample:()=>R7n,PropertyKey:()=>m7n,ProtobufEncoding:()=>n0a,ProtobufSource:()=>t0a,QueryParameter:()=>w7n,QueryParameterExample:()=>x7n,QueryParameterWithExample:()=>B7n,QuerySecurityScheme:()=>f0a,ReferencedSchema:()=>NRt,Request:()=>M0a,RequestWithExample:()=>yva,Response:()=>x0a,ResponseWithExample:()=>bva,Schema:()=>F1,SchemaId:()=>Gje,SchemaWithExample:()=>uq,SdkGroup:()=>_0a,SdkGroupInfo:()=>P0a,SdkGroupName:()=>j5r,SecurityScheme:()=>y0a,SecuritySchemeId:()=>u0a,Server:()=>v0a,Source:()=>r0a,StatusCode:()=>w5r,StringSchema:()=>Z0a,StringSchemaWithExample:()=>Sva,SupportedSdkLanguage:()=>z0a,Tag:()=>o0a,TagId:()=>Kje,Tags:()=>j0a,TextResponse:()=>E5r,Uint64WithExample:()=>jva,UintWithExample:()=>Pva,UnDiscriminatedOneOfSchema:()=>dva,UnDiscriminatedOneOfSchemaWithExample:()=>Vva,UnknownSchemaWithExample:()=>Ava,Webhook:()=>H0a,WebhookExampleCall:()=>W0a,WebhookHttpMethod:()=>V0a,WebsocketChannel:()=>K0a,WebsocketHandshake:()=>$0a,WebsocketHandshakeWithExample:()=>Ndf,WebsocketMessageExample:()=>J0a,WebsocketSessionExample:()=>G0a,WithAvailability:()=>Z0,WithDescription:()=>O_,WithEncoding:()=>Ene,WithName:()=>Ym,WithSdkGroupName:()=>w1,WithSource:()=>hb,WithTitle:()=>j1,commons:()=>Llu,example:()=>Ulu,finalIr:()=>Vlu,parseIr:()=>Wlu});var Llu={};Wb(Llu,{BasicSecurityScheme:()=>s0a,BearerSecurityScheme:()=>c0a,Encoding:()=>i0a,HeaderSecurityScheme:()=>l0a,Namespace:()=>p0a,OauthSecurityScheme:()=>h0a,OpenApiSource:()=>e0a,ProtobufEncoding:()=>n0a,ProtobufSource:()=>t0a,QuerySecurityScheme:()=>f0a,SchemaId:()=>Gje,SdkGroup:()=>_0a,SdkGroupName:()=>j5r,SecurityScheme:()=>y0a,SecuritySchemeId:()=>u0a,Server:()=>v0a,Source:()=>r0a,StatusCode:()=>w5r,Tag:()=>o0a,TagId:()=>Kje,WithAvailability:()=>Z0,WithDescription:()=>O_,WithEncoding:()=>Ene,WithName:()=>Ym,WithSdkGroupName:()=>w1,WithSource:()=>hb,WithTitle:()=>j1});var Hn={};Wb(Hn,{JsonError:()=>b5r,ParseError:()=>g5r,any:()=>mdf,boolean:()=>Odf,booleanLiteral:()=>gdf,date:()=>sdf,discriminant:()=>Tdf,enum_:()=>Qya,getObjectLikeUtils:()=>ARt,getObjectUtils:()=>b7n,getSchemaUtils:()=>hA,isProperty:()=>O5r,lazy:()=>cdf,lazyObject:()=>ydf,list:()=>kya,number:()=>Pdf,object:()=>Zya,objectWithoutOptionalProperties:()=>hdf,optional:()=>Blu,property:()=>fdf,record:()=>Sdf,set:()=>Edf,string:()=>jdf,stringLiteral:()=>bdf,transform:()=>Ilu,undiscriminatedUnion:()=>xdf,union:()=>Cdf,unknown:()=>wdf,withParsedProperties:()=>Flu});var VS={DATE:"date",ENUM:"enum",LIST:"list",STRING_LITERAL:"stringLiteral",BOOLEAN_LITERAL:"booleanLiteral",OBJECT:"object",ANY:"any",BOOLEAN:"boolean",NUMBER:"number",STRING:"string",UNKNOWN:"unknown",RECORD:"record",SET:"set",UNION:"union",UNDISCRIMINATED_UNION:"undiscriminatedUnion",OPTIONAL:"optional"};function nC(e,t){return`Expected ${t}. Received ${j01(e)}.`}function j01(e){if(Array.isArray(e))return"list";if(e===null)return"null";switch(typeof e){case"string":return`"${e}"`;case"number":case"boolean":case"undefined":return`${e}`}return typeof e}function KJ(e){return{...e,json:udf(e.json),parse:udf(e.parse)}}function udf(e){return(t,r)=>{let n=e(t,r),{skipValidation:i=!1}=r??{};return!n.ok&&i?(console.warn(["Failed to validate.",...n.errors.map(a=>" - "+(a.path.length>0?`${a.path.join(".")}: ${a.message}`:a.message))].join(`
1904
1904
  `)),{ok:!0,value:t}):n}}function Xya(e){return e.path.length===0?e.message:`${e.path.join(" -> ")}: ${e.message}`}var b5r=class extends Error{errors;constructor(t){super(t.map(Xya).join("; ")),this.errors=t,Object.setPrototypeOf(this,b5r.prototype)}};var g5r=class extends Error{errors;constructor(t){super(t.map(Xya).join("; ")),this.errors=t,Object.setPrototypeOf(this,g5r.prototype)}};function hA(e){return{optional:()=>Blu(e),transform:t=>Ilu(e,t),parseOrThrow:(t,r)=>{let n=e.parse(t,r);if(n.ok)return n.value;throw new g5r(n.errors)},jsonOrThrow:(t,r)=>{let n=e.json(t,r);if(n.ok)return n.value;throw new b5r(n.errors)}}}function Blu(e){let t={parse:(r,n)=>r==null?{ok:!0,value:void 0}:e.parse(r,n),json:(r,n)=>(n==null?void 0:n.omitUndefined)&&r===void 0?{ok:!0,value:void 0}:r==null?{ok:!0,value:null}:e.json(r,n),getType:()=>VS.OPTIONAL};return{...t,...hA(t)}}function Ilu(e,t){let r={parse:(n,i)=>{let a=e.parse(n,i);return a.ok?{ok:!0,value:t.transform(a.value)}:a},json:(n,i)=>{let a=t.untransform(n);return e.json(a,i)},getType:()=>e.getType()};return{...r,...hA(r)}}var w01=/^([+-]?\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)?)?)?)?$/;function sdf(){let e={parse:(t,{breadcrumbsPrefix:r=[]}={})=>typeof t!="string"?{ok:!1,errors:[{path:r,message:nC(t,"string")}]}:w01.test(t)?{ok:!0,value:new Date(t)}:{ok:!1,errors:[{path:r,message:nC(t,"ISO 8601 date string")}]},json:(t,{breadcrumbsPrefix:r=[]}={})=>t instanceof Date?{ok:!0,value:t.toISOString()}:{ok:!1,errors:[{path:r,message:nC(t,"Date object")}]},getType:()=>VS.DATE};return{...KJ(e),...hA(e)}}function YJ(e,t){return()=>{let r={parse:t,json:t,getType:()=>e};return{...KJ(r),...hA(r)}}}function Qya(e){let t=new Set(e);return YJ(VS.ENUM,(n,{allowUnrecognizedEnumValues:i,breadcrumbsPrefix:a=[]}={})=>typeof n!="string"?{ok:!1,errors:[{path:a,message:nC(n,"string")}]}:!t.has(n)&&!i?{ok:!1,errors:[{path:a,message:nC(n,"enum")}]}:{ok:!0,value:n})()}function cdf(e){let t=Rlu(e);return{...t,...hA(t)}}function Rlu(e){return{parse:(t,r)=>v7n(e).parse(t,r),json:(t,r)=>v7n(e).json(t,r),getType:()=>v7n(e).getType()}}function v7n(e){let t=e;return t.__zurg_memoized==null&&(t.__zurg_memoized=e()),t.__zurg_memoized}function S_i(e){return Object.entries(e)}function E_i(e,t){let r=new Set(t);return Object.entries(e).reduce((n,[i,a])=>(r.has(i)&&(n[i]=a),n),{})}function m5r(e){if(typeof e!="object"||e===null)return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function M_i(e){return Object.keys(e)}function ldf(e,t){let r=[],n=[];for(let i of e)t(i)?r.push(i):n.push(i);return[r,n]}function ARt(e){return{withParsedProperties:t=>Flu(e,t)}}function Flu(e,t){let r={parse:(n,i)=>{let a=e.parse(n,i);if(!a.ok)return a;let u=Object.entries(t).reduce((f,[d,c])=>({...f,[d]:typeof c=="function"?c(a.value):c}),{});return{ok:!0,value:{...a.value,...u}}},json:(n,i)=>{if(!m5r(n))return{ok:!1,errors:[{path:(i==null?void 0:i.breadcrumbsPrefix)??[],message:nC(n,"object")}]};let a=new Set(Object.keys(t)),u=E_i(n,Object.keys(n).filter(f=>!a.has(f)));return e.json(u,i)},getType:()=>e.getType()};return{...r,...hA(r),...ARt(r)}}function fdf(e,t){return{rawKey:e,valueSchema:t,isProperty:!0}}function O5r(e){return e.isProperty}function Zya(e){let t={_getRawProperties:()=>Object.entries(e).map(([r,n])=>O5r(n)?n.rawKey:r),_getParsedProperties:()=>M_i(e),parse:(r,n)=>{let i={},a=[];for(let[u,f]of S_i(e)){let d=O5r(f)?f.rawKey:u,c=O5r(f)?f.valueSchema:f,o={rawKey:d,parsedKey:u,valueSchema:c};i[d]=o,_df(c)&&a.push(d)}return ddf({value:r,requiredKeys:a,getProperty:u=>{let f=i[u];if(f!=null)return{transformedKey:f.parsedKey,transform:d=>f.valueSchema.parse(d,{...n,breadcrumbsPrefix:[...(n==null?void 0:n.breadcrumbsPrefix)??[],u]})}},unrecognizedObjectKeys:n==null?void 0:n.unrecognizedObjectKeys,skipValidation:n==null?void 0:n.skipValidation,breadcrumbsPrefix:n==null?void 0:n.breadcrumbsPrefix,omitUndefined:n==null?void 0:n.omitUndefined})},json:(r,n)=>{let i=[];for(let[a,u]of S_i(e)){let f=O5r(u)?u.valueSchema:u;_df(f)&&i.push(a)}return ddf({value:r,requiredKeys:i,getProperty:a=>{let u=e[a];if(u!=null)return O5r(u)?{transformedKey:u.rawKey,transform:f=>u.valueSchema.json(f,{...n,breadcrumbsPrefix:[...(n==null?void 0:n.breadcrumbsPrefix)??[],a]})}:{transformedKey:a,transform:f=>u.json(f,{...n,breadcrumbsPrefix:[...(n==null?void 0:n.breadcrumbsPrefix)??[],a]})}},unrecognizedObjectKeys:n==null?void 0:n.unrecognizedObjectKeys,skipValidation:n==null?void 0:n.skipValidation,breadcrumbsPrefix:n==null?void 0:n.breadcrumbsPrefix,omitUndefined:n==null?void 0:n.omitUndefined})},getType:()=>VS.OBJECT};return{...KJ(t),...hA(t),...ARt(t),...b7n(t)}}function ddf({value:e,requiredKeys:t,getProperty:r,unrecognizedObjectKeys:n="fail",skipValidation:i=!1,breadcrumbsPrefix:a=[]}){if(!m5r(e))return{ok:!1,errors:[{path:a,message:nC(e,"object")}]};let u=new Set(t),f=[],d={};for(let[c,o]of Object.entries(e)){let l=r(c);if(l!=null){u.delete(c);let g=l.transform(o);g.ok?d[l.transformedKey]=g.value:(d[c]=o,f.push(...g.errors))}else switch(n){case"fail":f.push({path:[...a,c],message:`Unexpected key "${c}"`});break;case"strip":break;case"passthrough":d[c]=o;break}}return f.push(...t.filter(c=>u.has(c)).map(c=>({path:a,message:`Missing required key "${c}"`}))),f.length===0||i?{ok:!0,value:d}:{ok:!1,errors:f}}function b7n(e){return{extend:t=>{let r={_getParsedProperties:()=>[...e._getParsedProperties(),...t._getParsedProperties()],_getRawProperties:()=>[...e._getRawProperties(),...t._getRawProperties()],parse:(n,i)=>pdf({extensionKeys:t._getRawProperties(),value:n,transformBase:a=>e.parse(a,i),transformExtension:a=>t.parse(a,i)}),json:(n,i)=>pdf({extensionKeys:t._getParsedProperties(),value:n,transformBase:a=>e.json(a,i),transformExtension:a=>t.json(a,i)}),getType:()=>VS.OBJECT};return{...r,...hA(r),...ARt(r),...b7n(r)}}}}function pdf({extensionKeys:e,value:t,transformBase:r,transformExtension:n}){let i=new Set(e),[a,u]=ldf(M_i(t),c=>i.has(c)),f=r(E_i(t,u)),d=n(E_i(t,a));return f.ok&&d.ok?{ok:!0,value:{...f.value,...d.value}}:{ok:!1,errors:[...f.ok?[]:f.errors,...d.ok?[]:d.errors]}}function _df(e){return!D01(e)}function D01(e){switch(e.getType()){case VS.ANY:case VS.UNKNOWN:case VS.OPTIONAL:return!0;default:return!1}}function hdf(e){return Zya(e)}function ydf(e){let t={...Rlu(e),_getRawProperties:()=>v7n(e)._getRawProperties(),_getParsedProperties:()=>v7n(e)._getParsedProperties()};return{...t,...hA(t),...ARt(t),...b7n(t)}}function kya(e){let t={parse:(r,n)=>vdf(r,(i,a)=>e.parse(i,{...n,breadcrumbsPrefix:[...(n==null?void 0:n.breadcrumbsPrefix)??[],`[${a}]`]})),json:(r,n)=>vdf(r,(i,a)=>e.json(i,{...n,breadcrumbsPrefix:[...(n==null?void 0:n.breadcrumbsPrefix)??[],`[${a}]`]})),getType:()=>VS.LIST};return{...KJ(t),...hA(t)}}function vdf(e,t){return Array.isArray(e)?e.map((n,i)=>t(n,i)).reduce((n,i)=>{if(n.ok&&i.ok)return{ok:!0,value:[...n.value,i.value]};let a=[];return n.ok||a.push(...n.errors),i.ok||a.push(...i.errors),{ok:!1,errors:a}},{ok:!0,value:[]}):{ok:!1,errors:[{message:nC(e,"list"),path:[]}]}}function bdf(e){return YJ(VS.STRING_LITERAL,(r,{breadcrumbsPrefix:n=[]}={})=>r===e?{ok:!0,value:e}:{ok:!1,errors:[{path:n,message:nC(r,`"${e}"`)}]})()}function gdf(e){return YJ(VS.BOOLEAN_LITERAL,(r,{breadcrumbsPrefix:n=[]}={})=>r===e?{ok:!0,value:e}:{ok:!1,errors:[{path:n,message:nC(r,`${e.toString()}`)}]})()}var mdf=YJ(VS.ANY,e=>({ok:!0,value:e}));var Odf=YJ(VS.BOOLEAN,(e,{breadcrumbsPrefix:t=[]}={})=>typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,errors:[{path:t,message:nC(e,"boolean")}]});var Pdf=YJ(VS.NUMBER,(e,{breadcrumbsPrefix:t=[]}={})=>typeof e=="number"?{ok:!0,value:e}:{ok:!1,errors:[{path:t,message:nC(e,"number")}]});var jdf=YJ(VS.STRING,(e,{breadcrumbsPrefix:t=[]}={})=>typeof e=="string"?{ok:!0,value:e}:{ok:!1,errors:[{path:t,message:nC(e,"string")}]});var wdf=YJ(VS.UNKNOWN,e=>({ok:!0,value:e}));function Sdf(e,t){let r={parse:(n,i)=>Ddf({value:n,isKeyNumeric:e.getType()===VS.NUMBER,transformKey:a=>e.parse(a,{...i,breadcrumbsPrefix:[...(i==null?void 0:i.breadcrumbsPrefix)??[],`${a} (key)`]}),transformValue:(a,u)=>t.parse(a,{...i,breadcrumbsPrefix:[...(i==null?void 0:i.breadcrumbsPrefix)??[],`${u}`]}),breadcrumbsPrefix:i==null?void 0:i.breadcrumbsPrefix}),json:(n,i)=>Ddf({value:n,isKeyNumeric:e.getType()===VS.NUMBER,transformKey:a=>e.json(a,{...i,breadcrumbsPrefix:[...(i==null?void 0:i.breadcrumbsPrefix)??[],`${a} (key)`]}),transformValue:(a,u)=>t.json(a,{...i,breadcrumbsPrefix:[...(i==null?void 0:i.breadcrumbsPrefix)??[],`${u}`]}),breadcrumbsPrefix:i==null?void 0:i.breadcrumbsPrefix}),getType:()=>VS.RECORD};return{...KJ(r),...hA(r)}}function Ddf({value:e,isKeyNumeric:t,transformKey:r,transformValue:n,breadcrumbsPrefix:i=[]}){return m5r(e)?S_i(e).reduce((a,[u,f])=>{if(f==null)return a;let d=a,c=u;if(t){let O=u.length>0?Number(u):NaN;isNaN(O)||(c=O)}let o=r(c),l=n(f,c);if(d.ok&&o.ok&&l.ok)return{ok:!0,value:{...d.value,[o.value]:l.value}};let g=[];return d.ok||g.push(...d.errors),o.ok||g.push(...o.errors),l.ok||g.push(...l.errors),{ok:!1,errors:g}},{ok:!0,value:{}}):{ok:!1,errors:[{path:i,message:nC(e,"object")}]}}function Edf(e){let t=kya(e),r={parse:(n,i)=>{let a=t.parse(n,i);return a.ok?{ok:!0,value:new Set(a.value)}:a},json:(n,i)=>n instanceof Set?t.json([...n],i):{ok:!1,errors:[{path:(i==null?void 0:i.breadcrumbsPrefix)??[],message:nC(n,"Set")}]},getType:()=>VS.SET};return{...KJ(r),...hA(r)}}function xdf(e){let t={parse:(r,n)=>Mdf((i,a)=>i.parse(r,a),e,n),json:(r,n)=>Mdf((i,a)=>i.json(r,a),e,n),getType:()=>VS.UNDISCRIMINATED_UNION};return{...KJ(t),...hA(t)}}function Mdf(e,t,r){let n=[];for(let[i,a]of t.entries()){let u=e(a,{...r,skipValidation:!1});if(u.ok)return u;for(let f of u.errors)n.push({path:f.path,message:`[Variant ${i}] ${f.message}`})}return{ok:!1,errors:n}}function Tdf(e,t){return{parsedDiscriminant:e,rawDiscriminant:t}}function Cdf(e,t){let r=typeof e=="string"?e:e.rawDiscriminant,n=typeof e=="string"?e:e.parsedDiscriminant,i=Qya(M_i(t)),a={parse:(u,f)=>qdf({value:u,discriminant:r,transformedDiscriminant:n,transformDiscriminantValue:d=>i.parse(d,{allowUnrecognizedEnumValues:f==null?void 0:f.allowUnrecognizedUnionMembers,breadcrumbsPrefix:[...(f==null?void 0:f.breadcrumbsPrefix)??[],r]}),getAdditionalPropertiesSchema:d=>t[d],allowUnrecognizedUnionMembers:f==null?void 0:f.allowUnrecognizedUnionMembers,transformAdditionalProperties:(d,c)=>c.parse(d,f),breadcrumbsPrefix:f==null?void 0:f.breadcrumbsPrefix}),json:(u,f)=>qdf({value:u,discriminant:n,transformedDiscriminant:r,transformDiscriminantValue:d=>i.json(d,{allowUnrecognizedEnumValues:f==null?void 0:f.allowUnrecognizedUnionMembers,breadcrumbsPrefix:[...(f==null?void 0:f.breadcrumbsPrefix)??[],n]}),getAdditionalPropertiesSchema:d=>t[d],allowUnrecognizedUnionMembers:f==null?void 0:f.allowUnrecognizedUnionMembers,transformAdditionalProperties:(d,c)=>c.json(d,f),breadcrumbsPrefix:f==null?void 0:f.breadcrumbsPrefix}),getType:()=>VS.UNION};return{...KJ(a),...hA(a),...ARt(a)}}function qdf({value:e,discriminant:t,transformedDiscriminant:r,transformDiscriminantValue:n,getAdditionalPropertiesSchema:i,allowUnrecognizedUnionMembers:a=!1,transformAdditionalProperties:u,breadcrumbsPrefix:f=[]}){if(!m5r(e))return{ok:!1,errors:[{path:f,message:nC(e,"object")}]};let{[t]:d,...c}=e;if(d==null)return{ok:!1,errors:[{path:f,message:`Missing discriminant ("${t}")`}]};let o=n(d);if(!o.ok)return{ok:!1,errors:o.errors};let l=i(o.value);if(l==null)return a?{ok:!0,value:{[r]:o.value,...c}}:{ok:!1,errors:[{path:[...f,t],message:"Unexpected discriminant value"}]};let g=u(c,l);return g.ok?{ok:!0,value:{[r]:d,...g.value}}:g}var j1=Hn.objectWithoutOptionalProperties({title:Hn.string().optional()});var e0a=Hn.objectWithoutOptionalProperties({file:Hn.string()});var t0a=Hn.objectWithoutOptionalProperties({file:Hn.string()});var r0a=Hn.union("type",{openapi:e0a,protobuf:t0a}).transform({transform:e=>{switch(e.type){case"openapi":return HSr.openapi(e);case"protobuf":return HSr.protobuf(e);default:return e}},untransform:({_visit:e,...t})=>t});var hb=Hn.objectWithoutOptionalProperties({source:r0a.optional()});var n0a=Hn.objectWithoutOptionalProperties({typeName:Hn.string()});var i0a=Hn.union("type",{protobuf:n0a}).transform({transform:e=>{switch(e.type){case"protobuf":return h7n.protobuf(e);default:return e}},untransform:({_visit:e,...t})=>t});var Ene=Hn.objectWithoutOptionalProperties({encoding:i0a.optional()});var O_=Hn.objectWithoutOptionalProperties({description:Hn.string().optional()});var a0a=Hn.enum_(["GenerallyAvailable","Beta","Deprecated"]);var Z0=Hn.objectWithoutOptionalProperties({availability:a0a.optional()});var Ym=Hn.objectWithoutOptionalProperties({nameOverride:Hn.string().optional(),generatedName:Hn.string()});var Gje=Hn.string();var Kje=Hn.string();var o0a=Hn.objectWithoutOptionalProperties({id:Kje}).extend(O_);var u0a=Hn.string();var s0a=Hn.objectWithoutOptionalProperties({usernameVariableName:Hn.string().optional(),usernameEnvVar:Hn.string().optional(),passwordVariableName:Hn.string().optional(),passwordEnvVar:Hn.string().optional()});var c0a=Hn.objectWithoutOptionalProperties({tokenVariableName:Hn.string().optional(),tokenEnvVar:Hn.string().optional()});var l0a=Hn.objectWithoutOptionalProperties({headerName:Hn.string(),prefix:Hn.string().optional(),headerVariableName:Hn.string().optional(),headerEnvVar:Hn.string().optional()});var f0a=Hn.objectWithoutOptionalProperties({queryParameterName:Hn.string()});var d0a=Hn.objectWithoutOptionalProperties({snake:Hn.string().optional(),camel:Hn.string().optional(),screamingSnake:Hn.string().optional(),pascal:Hn.string().optional()});var P5r=Hn.objectWithoutOptionalProperties({nameOverride:Hn.string().optional(),generatedName:Hn.string(),value:Hn.string(),casing:d0a.optional()}).extend(O_).extend(Z0);var p0a=Hn.objectWithoutOptionalProperties({type:Hn.stringLiteral("namespace"),name:Hn.string()});var _0a=Hn.undiscriminatedUnion([Hn.string(),p0a]);var j5r=Hn.list(_0a);var w1=Hn.objectWithoutOptionalProperties({groupName:j5r.optional()});var g7n=Hn.objectWithoutOptionalProperties({default:P5r.optional(),values:Hn.list(P5r)}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(hb).extend(j1);var h0a=Hn.objectWithoutOptionalProperties({scopesEnum:g7n.optional()});var y0a=Hn.union("type",{basic:s0a,bearer:c0a,header:l0a,query:f0a,oauth:h0a}).transform({transform:e=>{switch(e.type){case"basic":return F9.basic(e);case"bearer":return F9.bearer(e);case"header":return F9.header(e);case"query":return F9.query(e);case"oauth":return F9.oauth(e);default:return e}},untransform:({_visit:e,...t})=>t});var w5r=Hn.number();var v0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),url:Hn.string(),audiences:Hn.list(Hn.string()).optional()}).extend(O_);var Ulu={};Wb(Ulu,{FullExample:()=>yA,FullObjectExample:()=>g0a,FullOneOfExample:()=>O0a,KeyValuePair:()=>m0a,LiteralExample:()=>b0a,PrimitiveExample:()=>O7n,PropertyKey:()=>m7n});var m7n=Hn.string();var O7n=Hn.union("type",{int:Hn.object({value:Hn.number()}),int64:Hn.object({value:Hn.number()}),uint:Hn.object({value:Hn.number()}),uint64:Hn.object({value:Hn.number()}),float:Hn.object({value:Hn.number()}),double:Hn.object({value:Hn.number()}),string:Hn.object({value:Hn.string()}),datetime:Hn.object({value:Hn.string()}),date:Hn.object({value:Hn.string()}),base64:Hn.object({value:Hn.string()}),boolean:Hn.object({value:Hn.boolean()})}).transform({transform:e=>{switch(e.type){case"int":return t0.int(e.value);case"int64":return t0.int64(e.value);case"uint":return t0.uint(e.value);case"uint64":return t0.uint64(e.value);case"float":return t0.float(e.value);case"double":return t0.double(e.value);case"string":return t0.string(e.value);case"datetime":return t0.datetime(e.value);case"date":return t0.date(e.value);case"base64":return t0.base64(e.value);case"boolean":return t0.boolean(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var b0a=Hn.union("type",{boolean:Hn.object({value:Hn.boolean()}),string:Hn.object({value:Hn.string()})}).transform({transform:e=>{switch(e.type){case"boolean":return y7n.boolean(e.value);case"string":return y7n.string(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var yA=Hn.union("type",{primitive:Hn.object({value:O7n}),object:Hn.lazyObject(()=>g0a),array:Hn.object({value:Hn.list(Hn.lazy(()=>yA))}),map:Hn.object({value:Hn.list(Hn.lazyObject(()=>m0a))}),enum:Hn.object({value:Hn.string()}),literal:Hn.object({value:b0a}),oneOf:Hn.object({value:Hn.lazy(()=>O0a)}),unknown:Hn.object({value:Hn.lazy(()=>yA)})}).transform({transform:e=>{switch(e.type){case"primitive":return RP.primitive(e.value);case"object":return RP.object(e);case"array":return RP.array(e.value);case"map":return RP.map(e.value);case"enum":return RP.enum(e.value);case"literal":return RP.literal(e.value);case"oneOf":return RP.oneOf(e.value);case"unknown":return RP.unknown(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var g0a=Hn.objectWithoutOptionalProperties({properties:Hn.record(m7n,Hn.lazy(()=>yA))});var m0a=Hn.objectWithoutOptionalProperties({key:O7n,value:Hn.lazy(()=>yA)});var O0a=Hn.union("type",{discriminated:Hn.object({value:Hn.record(m7n,Hn.lazy(()=>yA))}),undisciminated:Hn.object({value:Hn.lazy(()=>yA)})}).transform({transform:e=>{switch(e.type){case"discriminated":return y5r.discriminated(e.value);case"undisciminated":return y5r.undisciminated(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var Vlu={};Wb(Vlu,{AllOfPropertyConflict:()=>N7n,ArraySchema:()=>ava,Availability:()=>a0a,BooleanSchema:()=>k0a,CasingOverrides:()=>d0a,CommonProperty:()=>pva,CursorPagination:()=>F0a,CustomCodeSample:()=>I0a,CustomCodeSampleLanguage:()=>N0a,CustomCodeSampleSdk:()=>B0a,DiscriminatedOneOfSchema:()=>fva,DoubleSchema:()=>Q0a,Endpoint:()=>U0a,EndpointExample:()=>q7n,EndpointSdkName:()=>S5r,EnumSchema:()=>g7n,EnumValue:()=>P5r,ErrorExample:()=>T0a,FernExample:()=>C0a,FileResponse:()=>E7n,FileSchema:()=>w0a,FullEndpointExample:()=>R0a,GlobalHeader:()=>tva,Header:()=>D5r,HeaderExample:()=>T7n,HttpEndpointServer:()=>M7n,HttpError:()=>q0a,HttpMethod:()=>P7n,IdempotencyHeader:()=>rva,IntSchema:()=>Y0a,JsonRequest:()=>E0a,JsonResponse:()=>KSr,LiteralSchema:()=>A7n,LiteralSchemaValue:()=>nva,LongSchema:()=>X0a,MapSchema:()=>ova,MultipartRequest:()=>S7n,MultipartRequestProperty:()=>S0a,MultipartSchema:()=>D0a,NullableSchema:()=>sva,ObjectProperty:()=>lva,ObjectPropertyConflictInfo:()=>z7n,ObjectSchema:()=>iva,OctetStreamRequest:()=>D7n,OffsetPagination:()=>L0a,OneOfSchema:()=>cva,OpenApiIntermediateRepresentation:()=>Adf,OptionalSchema:()=>uva,Pagination:()=>C7n,PathParameter:()=>j7n,PathParameterExample:()=>A0a,PrimitiveSchema:()=>M5r,PrimitiveSchemaValue:()=>eva,QueryParameter:()=>w7n,QueryParameterExample:()=>x7n,ReferencedSchema:()=>NRt,Request:()=>M0a,Response:()=>x0a,Schema:()=>F1,SdkGroupInfo:()=>P0a,StringSchema:()=>Z0a,SupportedSdkLanguage:()=>z0a,Tags:()=>j0a,TextResponse:()=>E5r,UnDiscriminatedOneOfSchema:()=>dva,Webhook:()=>H0a,WebhookExampleCall:()=>W0a,WebhookHttpMethod:()=>V0a,WebsocketChannel:()=>K0a,WebsocketHandshake:()=>$0a,WebsocketMessageExample:()=>J0a,WebsocketSessionExample:()=>G0a});var P0a=Hn.objectWithoutOptionalProperties({summary:Hn.string().optional(),description:Hn.string().optional()});var j0a=Hn.objectWithoutOptionalProperties({tagsById:Hn.record(Kje,o0a),orderedTagIds:Hn.list(Kje).optional()});var P7n=Hn.enum_(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","TRACE"]);var j7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>F1),variableReference:Hn.string().optional(),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var w7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>F1),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var D5r=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>F1),env:Hn.string().optional(),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var S5r=Hn.objectWithoutOptionalProperties({groupName:j5r,methodName:Hn.string()});var D7n=Hn.objectWithoutOptionalProperties({}).extend(O_).extend(hb);var w0a=Hn.objectWithoutOptionalProperties({isOptional:Hn.boolean(),isArray:Hn.boolean()});var D0a=Hn.union("type",{file:w0a,json:Hn.object({value:Hn.lazy(()=>F1)})}).transform({transform:e=>{switch(e.type){case"file":return D2e.file(e);case"json":return D2e.json(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var S0a=Hn.objectWithoutOptionalProperties({key:Hn.string(),schema:D0a}).extend(O_);var S7n=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),properties:Hn.list(S0a)}).extend(O_).extend(hb);var E0a=Hn.objectWithoutOptionalProperties({schema:Hn.lazy(()=>F1),contentType:Hn.string().optional(),additionalProperties:Hn.boolean()}).extend(O_).extend(hb);var M0a=Hn.union("type",{octetStream:D7n,multipart:S7n,json:E0a}).transform({transform:e=>{switch(e.type){case"octetStream":return v5r.octetStream(e);case"multipart":return v5r.multipart(e);case"json":return v5r.json(e);default:return e}},untransform:({_visit:e,...t})=>t});var E7n=Hn.objectWithoutOptionalProperties({}).extend(O_).extend(hb);var KSr=Hn.objectWithoutOptionalProperties({schema:Hn.lazy(()=>F1),responseProperty:Hn.string().optional()}).extend(O_).extend(hb);var E5r=Hn.objectWithoutOptionalProperties({}).extend(O_).extend(hb);var x0a=Hn.union("type",{file:E7n,json:KSr,text:E5r,streamingSse:KSr,streamingText:E5r,streamingJson:KSr}).transform({transform:e=>{switch(e.type){case"file":return Sne.file(e);case"json":return Sne.json(e);case"text":return Sne.text(e);case"streamingSse":return Sne.streamingSse(e);case"streamingText":return Sne.streamingText(e);case"streamingJson":return Sne.streamingJson(e);default:return e}},untransform:({_visit:e,...t})=>t});var T0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),description:Hn.string().optional(),example:Hn.lazy(()=>yA)});var q0a=Hn.objectWithoutOptionalProperties({schema:Hn.lazy(()=>F1).optional(),examples:Hn.list(T0a).optional()}).extend(O_).extend(Ym).extend(hb);var M7n=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),url:Hn.string().optional(),audiences:Hn.list(Hn.string()).optional()});var C0a=Hn.unknown();var A0a=Hn.objectWithoutOptionalProperties({name:Hn.string(),parameterNameOverride:Hn.string().optional(),value:Hn.lazy(()=>yA)});var x7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),value:Hn.lazy(()=>yA)});var T7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),value:Hn.lazy(()=>yA)});var N0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),language:Hn.string(),code:Hn.string(),install:Hn.string().optional()}).extend(O_);var z0a=Hn.enum_(["curl","python","javascript","typescript","go","ruby","csharp","java","js","node","ts","nodets","golang","dotnet","jvm"]);var B0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),sdk:z0a,code:Hn.string()}).extend(O_);var I0a=Hn.union("type",{language:N0a,sdk:B0a}).transform({transform:e=>{switch(e.type){case"language":return JSr.language(e);case"sdk":return JSr.sdk(e);default:return e}},untransform:({_visit:e,...t})=>t});var R0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),pathParameters:Hn.list(A0a).optional(),queryParameters:Hn.list(x7n).optional(),headers:Hn.list(T7n).optional(),request:Hn.lazy(()=>yA).optional(),response:Hn.lazy(()=>yA).optional(),codeSamples:Hn.list(I0a)}).extend(O_);var q7n=Hn.union("type",{unknown:Hn.object({value:C0a}),full:R0a}).transform({transform:e=>{switch(e.type){case"unknown":return dAt.unknown(e.value);case"full":return dAt.full(e);default:return e}},untransform:({_visit:e,...t})=>t});var F0a=Hn.objectWithoutOptionalProperties({cursor:Hn.string(),nextCursor:Hn.property("next_cursor",Hn.string()),results:Hn.string()});var L0a=Hn.objectWithoutOptionalProperties({offset:Hn.string(),results:Hn.string(),step:Hn.string().optional(),hasNextPage:Hn.string().optional()});var C7n=Hn.union("type",{cursor:F0a,offset:L0a}).transform({transform:e=>{switch(e.type){case"cursor":return $Sr.cursor(e);case"offset":return $Sr.offset(e);default:return e}},untransform:({_visit:e,...t})=>t});var U0a=Hn.objectWithoutOptionalProperties({authed:Hn.boolean(),internal:Hn.boolean().optional(),idempotent:Hn.boolean().optional(),method:P7n,audiences:Hn.list(Hn.string()),path:Hn.string(),summary:Hn.string().optional(),operationId:Hn.string().optional(),tags:Hn.list(Kje),pathParameters:Hn.list(j7n),queryParameters:Hn.list(w7n),headers:Hn.list(D5r),sdkName:S5r.optional(),generatedRequestName:Hn.string(),requestNameOverride:Hn.string().optional(),request:M0a.optional(),response:x0a.optional(),errors:Hn.record(w5r,q0a),server:Hn.list(M7n),examples:Hn.list(q7n),pagination:C7n.optional()}).extend(O_).extend(Z0).extend(hb);var V0a=Hn.enum_(["GET","POST"]);var W0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),payload:Hn.lazy(()=>yA)}).extend(O_);var H0a=Hn.objectWithoutOptionalProperties({sdkName:S5r.optional(),method:V0a,summary:Hn.string().optional(),operationId:Hn.string(),tags:Hn.list(Kje),headers:Hn.list(D5r),generatedPayloadName:Hn.string(),payload:Hn.lazy(()=>F1),examples:Hn.list(W0a)}).extend(O_).extend(hb);var $0a=Hn.objectWithoutOptionalProperties({queryParameters:Hn.list(w7n),headers:Hn.list(D5r),pathParameters:Hn.list(j7n)});var J0a=Hn.objectWithoutOptionalProperties({messageType:Hn.string(),payload:Hn.lazy(()=>yA)}).extend(O_);var G0a=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),queryParameters:Hn.list(x7n).optional(),headers:Hn.list(T7n).optional(),messages:Hn.list(J0a)}).extend(O_);var K0a=Hn.objectWithoutOptionalProperties({path:Hn.string(),groupName:j5r,summary:Hn.string().optional(),handshake:$0a,publish:Hn.lazy(()=>F1).optional(),subscribe:Hn.lazy(()=>F1).optional(),examples:Hn.list(G0a)}).extend(O_).extend(hb);var Y0a=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),minimum:Hn.number().optional(),maximum:Hn.number().optional(),exclusiveMinimum:Hn.boolean().optional(),exclusiveMaximum:Hn.boolean().optional(),multipleOf:Hn.number().optional()});var X0a=Hn.objectWithoutOptionalProperties({default:Hn.number().optional()});var Q0a=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),minimum:Hn.number().optional(),maximum:Hn.number().optional(),exclusiveMinimum:Hn.boolean().optional(),exclusiveMaximum:Hn.boolean().optional(),multipleOf:Hn.number().optional()});var Z0a=Hn.objectWithoutOptionalProperties({default:Hn.string().optional(),pattern:Hn.string().optional(),format:Hn.string().optional(),minLength:Hn.number().optional(),maxLength:Hn.number().optional()});var k0a=Hn.objectWithoutOptionalProperties({default:Hn.boolean().optional()});var eva=Hn.union("type",{int:Y0a,int64:X0a,uint:Hn.object({}),uint64:Hn.object({}),float:Hn.object({}),double:Q0a,string:Z0a,datetime:Hn.object({}),date:Hn.object({}),base64:Hn.object({}),boolean:k0a}).transform({transform:e=>{switch(e.type){case"int":return Xw.int(e);case"int64":return Xw.int64(e);case"uint":return Xw.uint();case"uint64":return Xw.uint64();case"float":return Xw.float();case"double":return Xw.double(e);case"string":return Xw.string(e);case"datetime":return Xw.datetime();case"date":return Xw.date();case"base64":return Xw.base64();case"boolean":return Xw.boolean(e);default:return e}},untransform:({_visit:e,...t})=>t});var M5r=Hn.objectWithoutOptionalProperties({schema:eva}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var tva=Hn.objectWithoutOptionalProperties({header:Hn.string(),name:Hn.string().optional(),optional:Hn.boolean().optional(),env:Hn.string().optional(),schema:Hn.lazy(()=>F1).optional()});var rva=Hn.objectWithoutOptionalProperties({header:Hn.string(),name:Hn.string().optional(),env:Hn.string().optional(),schema:Hn.lazy(()=>F1).optional()});var Adf=Hn.objectWithoutOptionalProperties({apiVersion:Hn.unknown().optional(),title:Hn.string().optional(),description:Hn.string().optional(),basePath:Hn.string().optional(),servers:Hn.list(v0a),groups:Hn.record(Hn.string(),P0a),tags:j0a,hasEndpointsMarkedInternal:Hn.boolean(),endpoints:Hn.list(U0a),webhooks:Hn.list(H0a),channel:Hn.list(K0a),schemas:Hn.record(Gje,Hn.lazy(()=>F1)),variables:Hn.record(Hn.string(),M5r),nonRequestReferencedSchemas:Hn.set(Gje),securitySchemes:Hn.record(u0a,y0a),globalHeaders:Hn.list(tva).optional(),idempotencyHeaders:Hn.list(rva).optional()});var NRt=Hn.objectWithoutOptionalProperties({schema:Gje}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(hb).extend(j1);var nva=Hn.union("type",{boolean:Hn.object({value:Hn.boolean()}),string:Hn.object({value:Hn.string()})}).transform({transform:e=>{switch(e.type){case"boolean":return E7.boolean(e.value);case"string":return E7.string(e.value);default:return e}},untransform:({_visit:e,...t})=>t});var A7n=Hn.objectWithoutOptionalProperties({value:nva}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var F1=Hn.union("type",{primitive:M5r,object:Hn.lazyObject(()=>iva),array:Hn.lazyObject(()=>ava),map:Hn.lazyObject(()=>ova),optional:Hn.lazyObject(()=>uva),enum:g7n,reference:NRt,literal:A7n,oneOf:Hn.object({value:Hn.lazy(()=>cva)}),nullable:Hn.lazyObject(()=>sva),unknown:Ym}).transform({transform:e=>{switch(e.type){case"primitive":return ib.primitive(e);case"object":return ib.object(e);case"array":return ib.array(e);case"map":return ib.map(e);case"optional":return ib.optional(e);case"enum":return ib.enum(e);case"reference":return ib.reference(e);case"literal":return ib.literal(e);case"oneOf":return ib.oneOf(e.value);case"nullable":return ib.nullable(e);case"unknown":return ib.unknown(e);default:return e}},untransform:({_visit:e,...t})=>t});var N7n=Hn.objectWithoutOptionalProperties({propertyKey:Hn.string(),allOfSchemaIds:Hn.list(Gje),conflictingTypeSignatures:Hn.boolean()});var iva=Hn.objectWithoutOptionalProperties({allOf:Hn.list(NRt),properties:Hn.list(Hn.lazyObject(()=>lva)),allOfPropertyConflicts:Hn.list(N7n),additionalProperties:Hn.boolean()}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(hb).extend(j1);var z7n=Hn.objectWithoutOptionalProperties({differentSchema:Hn.boolean()});var lva=Hn.objectWithoutOptionalProperties({key:Hn.string(),schema:Hn.lazy(()=>F1),conflict:Hn.record(Gje,z7n),generatedName:Hn.string(),nameOverride:Hn.string().optional(),audiences:Hn.list(Hn.string())}).extend(Z0);var ava=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>F1)}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var ova=Hn.objectWithoutOptionalProperties({key:M5r,value:Hn.lazy(()=>F1)}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(Ene).extend(j1);var uva=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>F1)}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var sva=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>F1)}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var cva=Hn.union("type",{discriminated:Hn.lazyObject(()=>fva),undisciminated:Hn.lazyObject(()=>dva)}).transform({transform:e=>{switch(e.type){case"discriminated":return GSr.discriminated(e);case"undisciminated":return GSr.undisciminated(e);default:return e}},untransform:({_visit:e,...t})=>t});var fva=Hn.objectWithoutOptionalProperties({discriminantProperty:Hn.string(),commonProperties:Hn.list(Hn.lazyObject(()=>pva)),schemas:Hn.record(Hn.string(),Hn.lazy(()=>F1))}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(Ene).extend(hb).extend(j1);var pva=Hn.objectWithoutOptionalProperties({key:Hn.string(),schema:Hn.lazy(()=>F1)});var dva=Hn.objectWithoutOptionalProperties({schemas:Hn.list(Hn.lazy(()=>F1))}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(Ene).extend(hb).extend(j1);var Wlu={};Wb(Wlu,{ArraySchemaWithExample:()=>Nva,Base64WithExample:()=>xva,BooleanWithExample:()=>Tva,CommonPropertyWithExample:()=>Wva,DateWithExample:()=>Mva,DatetimeWithExample:()=>Eva,DiscriminatedOneOfSchemaWithExample:()=>Uva,DoubleWithExample:()=>Dva,EndpointWithExample:()=>zdf,EnumSchemaWithExample:()=>Cva,FloatWithExample:()=>wva,HeaderWithExample:()=>I7n,HttpErrorWithExample:()=>gva,Int64WithExample:()=>Ova,IntWithExample:()=>mva,JsonRequestWithExample:()=>hva,JsonResponseWithExample:()=>vva,MapSchemaWithExample:()=>zva,NamedFullExample:()=>zRt,NullableSchemaWithExample:()=>Iva,ObjectPropertyWithExample:()=>Lva,ObjectSchemaWithExample:()=>Rva,OneOfSchemaWithExample:()=>Fva,OptionalSchemaWithExample:()=>Bva,PathParameterWithExample:()=>_va,PrimitiveSchemaValueWithExample:()=>qva,PrimitiveSchemaWithExample:()=>R7n,QueryParameterWithExample:()=>B7n,RequestWithExample:()=>yva,ResponseWithExample:()=>bva,SchemaWithExample:()=>uq,StringSchemaWithExample:()=>Sva,Uint64WithExample:()=>jva,UintWithExample:()=>Pva,UnDiscriminatedOneOfSchemaWithExample:()=>Vva,UnknownSchemaWithExample:()=>Ava,WebsocketHandshakeWithExample:()=>Ndf});var zRt=Hn.objectWithoutOptionalProperties({name:Hn.string().optional(),value:Hn.unknown()}).extend(O_);var B7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>uq),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var I7n=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>uq),env:Hn.string().optional(),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var Ndf=Hn.objectWithoutOptionalProperties({queryParameters:Hn.list(B7n),headers:Hn.list(I7n)});var _va=Hn.objectWithoutOptionalProperties({name:Hn.string(),schema:Hn.lazy(()=>uq),variableReference:Hn.string().optional(),parameterNameOverride:Hn.string().optional()}).extend(O_).extend(Z0).extend(hb);var hva=Hn.objectWithoutOptionalProperties({schema:Hn.lazy(()=>uq),contentType:Hn.string().optional(),fullExamples:Hn.list(zRt).optional(),additionalProperties:Hn.boolean()}).extend(O_).extend(hb);var yva=Hn.union("type",{octetStream:D7n,multipart:S7n,json:hva}).transform({transform:e=>{switch(e.type){case"octetStream":return S2e.octetStream(e);case"multipart":return S2e.multipart(e);case"json":return S2e.json(e);default:return e}},untransform:({_visit:e,...t})=>t});var vva=Hn.objectWithoutOptionalProperties({schema:Hn.lazy(()=>uq),responseProperty:Hn.string().optional(),fullExamples:Hn.list(zRt).optional()}).extend(O_).extend(hb);var bva=Hn.union("type",{file:E7n,json:vva,text:E5r,streamingSse:KSr,streamingText:E5r,streamingJson:KSr}).transform({transform:e=>{switch(e.type){case"file":return T3.file(e);case"json":return T3.json(e);case"text":return T3.text(e);case"streamingSse":return T3.streamingSse(e);case"streamingText":return T3.streamingText(e);case"streamingJson":return T3.streamingJson(e);default:return e}},untransform:({_visit:e,...t})=>t});var gva=Hn.objectWithoutOptionalProperties({statusCode:w5r,schema:Hn.lazy(()=>uq),fullExamples:Hn.list(zRt).optional()}).extend(O_).extend(Ym).extend(hb);var zdf=Hn.objectWithoutOptionalProperties({authed:Hn.boolean(),internal:Hn.boolean().optional(),idempotent:Hn.boolean().optional(),method:P7n,audiences:Hn.list(Hn.string()),path:Hn.string(),summary:Hn.string().optional(),operationId:Hn.string().optional(),tags:Hn.list(Kje),pathParameters:Hn.list(_va),queryParameters:Hn.list(B7n),headers:Hn.list(I7n),sdkName:S5r.optional(),generatedRequestName:Hn.string(),requestNameOverride:Hn.string().optional(),request:yva.optional(),response:bva.optional(),errors:Hn.record(w5r,gva),server:Hn.list(M7n),examples:Hn.list(q7n),pagination:C7n.optional()}).extend(O_).extend(Z0).extend(hb);var mva=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),minimum:Hn.number().optional(),maximum:Hn.number().optional(),exclusiveMinimum:Hn.boolean().optional(),exclusiveMaximum:Hn.boolean().optional(),multipleOf:Hn.number().optional(),example:Hn.number().optional()});var Ova=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),example:Hn.number().optional()});var Pva=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),example:Hn.number().optional()});var jva=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),example:Hn.number().optional()});var wva=Hn.objectWithoutOptionalProperties({example:Hn.number().optional()});var Dva=Hn.objectWithoutOptionalProperties({default:Hn.number().optional(),minimum:Hn.number().optional(),maximum:Hn.number().optional(),exclusiveMinimum:Hn.boolean().optional(),exclusiveMaximum:Hn.boolean().optional(),multipleOf:Hn.number().optional(),example:Hn.number().optional()});var Sva=Hn.objectWithoutOptionalProperties({default:Hn.string().optional(),pattern:Hn.string().optional(),format:Hn.string().optional(),minLength:Hn.number().optional(),maxLength:Hn.number().optional(),example:Hn.string().optional()});var Eva=Hn.objectWithoutOptionalProperties({example:Hn.string().optional()});var Mva=Hn.objectWithoutOptionalProperties({example:Hn.string().optional()});var xva=Hn.objectWithoutOptionalProperties({example:Hn.string().optional()});var Tva=Hn.objectWithoutOptionalProperties({default:Hn.boolean().optional(),example:Hn.boolean().optional()});var qva=Hn.union("type",{int:mva,int64:Ova,uint:Pva,uint64:jva,float:wva,double:Dva,string:Sva,datetime:Eva,date:Mva,base64:xva,boolean:Tva}).transform({transform:e=>{switch(e.type){case"int":return by.int(e);case"int64":return by.int64(e);case"uint":return by.uint(e);case"uint64":return by.uint64(e);case"float":return by.float(e);case"double":return by.double(e);case"string":return by.string(e);case"datetime":return by.datetime(e);case"date":return by.date(e);case"base64":return by.base64(e);case"boolean":return by.boolean(e);default:return e}},untransform:({_visit:e,...t})=>t});var R7n=Hn.objectWithoutOptionalProperties({schema:qva}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(j1);var Cva=Hn.objectWithoutOptionalProperties({default:P5r.optional(),values:Hn.list(P5r),example:Hn.string().optional()}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(hb).extend(j1);var Ava=Hn.objectWithoutOptionalProperties({example:Hn.unknown()}).extend(w1).extend(Ym).extend(O_).extend(Z0).extend(j1);var uq=Hn.union("type",{primitive:R7n,object:Hn.lazyObject(()=>Rva),array:Hn.lazyObject(()=>Nva),map:Hn.lazyObject(()=>zva),optional:Hn.lazyObject(()=>Bva),enum:Cva,reference:NRt,literal:A7n,oneOf:Hn.object({value:Hn.lazy(()=>Fva)}),nullable:Hn.lazyObject(()=>Iva),unknown:Ava}).transform({transform:e=>{switch(e.type){case"primitive":return Lp.primitive(e);case"object":return Lp.object(e);case"array":return Lp.array(e);case"map":return Lp.map(e);case"optional":return Lp.optional(e);case"enum":return Lp.enum(e);case"reference":return Lp.reference(e);case"literal":return Lp.literal(e);case"oneOf":return Lp.oneOf(e.value);case"nullable":return Lp.nullable(e);case"unknown":return Lp.unknown(e);default:return e}},untransform:({_visit:e,...t})=>t});var Nva=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>uq),example:Hn.list(Hn.unknown()).optional()}).extend(w1).extend(Ym).extend(O_).extend(Z0).extend(j1);var zva=Hn.objectWithoutOptionalProperties({key:R7n,value:Hn.lazy(()=>uq),example:Hn.unknown().optional()}).extend(w1).extend(Ym).extend(O_).extend(Z0).extend(Ene).extend(j1);var Bva=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>uq)}).extend(w1).extend(Ym).extend(O_).extend(Z0).extend(j1);var Iva=Hn.objectWithoutOptionalProperties({value:Hn.lazy(()=>uq)}).extend(w1).extend(Ym).extend(O_).extend(Z0).extend(j1);var Rva=Hn.objectWithoutOptionalProperties({allOf:Hn.list(NRt),properties:Hn.list(Hn.lazyObject(()=>Lva)),allOfPropertyConflicts:Hn.list(N7n),fullExamples:Hn.list(zRt).optional(),additionalProperties:Hn.boolean()}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(hb).extend(j1);var Lva=Hn.objectWithoutOptionalProperties({key:Hn.string(),schema:Hn.lazy(()=>uq),audiences:Hn.list(Hn.string()),conflict:Hn.record(Gje,z7n),nameOverride:Hn.string().optional(),generatedName:Hn.string()}).extend(Z0);var Fva=Hn.union("type",{discriminated:Hn.lazyObject(()=>Uva),undisciminated:Hn.lazyObject(()=>Vva)}).transform({transform:e=>{switch(e.type){case"discriminated":return jQ.discriminated(e);case"undisciminated":return jQ.undisciminated(e);default:return e}},untransform:({_visit:e,...t})=>t});var Uva=Hn.objectWithoutOptionalProperties({discriminantProperty:Hn.string(),commonProperties:Hn.list(Hn.lazyObject(()=>Wva)),schemas:Hn.record(Hn.string(),Hn.lazy(()=>uq))}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(Ene).extend(hb).extend(j1);var Wva=Hn.objectWithoutOptionalProperties({key:Hn.string(),schema:Hn.lazy(()=>uq)});var Vva=Hn.objectWithoutOptionalProperties({schemas:Hn.list(Hn.lazy(()=>uq))}).extend(O_).extend(Ym).extend(w1).extend(Z0).extend(Ene).extend(hb).extend(j1);function Hva(e){switch(e.type){case"protobuf":return{proto:{type:e.typeName}};default:Ol(e.type)}}function Bdf(e){switch(e.type){case"object":case"enum":case"array":case"map":case"reference":case"literal":case"optional":case"nullable":case"primitive":return e.groupName??void 0;case"oneOf":return e.value.groupName??void 0;case"unknown":return;default:Ol(e)}}function N2(e){return typeof e=="string"?e:e.type}function x_i(e){if(typeof e!="string")return e.docs}function Idf(e){if(typeof e!="string")return e.default}function Rdf(e){if(typeof e!="string")return e.validation}function Hlu(e){if(e==null||e.length===0)return rGi;let t=[];for(let[r,n]of e.entries())if(typeof n=="string")t.push(dx(n));else if(typeof n=="object")switch(n.type){case"namespace":{r<e.length-1?t.push(dx(n.name)):t.push(n.name,rGi);break}default:Ol(n.type)}else Ol(n);return t.join("/")}function x5r(e){return Ws.of(`${Hlu(e)}.yml`)}function q3(e){switch(e){case hW.Deprecated:return"deprecated";case hW.Beta:return"pre-release";case hW.GenerallyAvailable:return"generally-available";default:return}}var S01=-2147483648,E01=2147483647,M01=-17976931348623157e292,x01=17976931348623157e292;function D1({schema:e,fileContainingReference:t,declarationFile:r=t,context:n}){switch(e.type){case"primitive":return $va(e);case"array":return Glu({schema:e,fileContainingReference:t,context:n,declarationFile:r});case"map":return Klu({schema:e,fileContainingReference:t,context:n,declarationFile:r});case"reference":return Jlu({schema:e,fileContainingReference:t,context:n});case"unknown":return Xlu();case"optional":case"nullable":return Ylu({schema:e,fileContainingReference:t,context:n,declarationFile:r});case"enum":return R01({schema:e,fileContainingReference:t,context:n,declarationFile:r});case"literal":return e.value,Qlu(e);case"object":return F01({schema:e,fileContainingReference:t,context:n,declarationFile:r});case"oneOf":return L01({schema:e.value,fileContainingReference:t,context:n,declarationFile:r});default:Ol(e)}}function $va(e){switch(e.schema.type){case"string":return C01({description:e.description,schema:e.schema});case"int":return A01({description:e.description,schema:e.schema});case"float":return N01({description:e.description,schema:e.schema});case"double":return z01({description:e.description,schema:e.schema});case"boolean":return T01({description:e.description,schema:e.schema});case"int64":return q01({description:e.description,schema:e.schema})}let t=e.schema._visit({int:()=>"integer",int64:()=>"long",uint:()=>"uint",uint64:()=>"uint64",float:()=>"double",double:()=>"double",string:()=>"string",datetime:()=>"datetime",date:()=>"date",base64:()=>"base64",boolean:()=>"boolean",_other:()=>"unknown"});return e.description==null&&e.title==null?t:{...e.title!=null?{"display-name":e.title}:{},type:t,...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{}}}function T01({description:e,schema:t}){let r="boolean";if(e==null&&t.default==null)return r;let n={type:r};return e!=null&&(n.docs=e),t.default!=null&&(n.default=t.default),n}function q01({description:e,schema:t}){let r="long";if(e==null&&t.default==null)return r;let n={type:r};return e!=null&&(n.docs=e),t.default!=null&&(n.default=t.default),n}function C01({description:e,schema:t}){let r="string",n=B01(t);if(e==null&&t.default==null&&n==null)return r;let i={type:r};return e!=null&&(i.docs=e),t.default!=null&&(i.default=t.default),n!=null&&(i.validation=n),i}function A01({description:e,schema:t}){let r="integer",n=Fdf(t,r);if(e==null&&t.default==null&&n==null)return r;let i={type:r};return e!=null&&(i.docs=e),t.default!=null&&(i.default=t.default),n!=null&&(i.validation=n),i}function N01({description:e,schema:t}){let r="float";if(e==null)return r;let n={type:r};return e!=null&&(n.docs=e),n}function z01({description:e,schema:t}){let r="double",n=Fdf(t,r);if(e==null&&t.default==null&&n==null)return r;let i={type:r};return e!=null&&(i.docs=e),t.default!=null&&(i.default=t.default),n!=null&&(i.validation=n),i}function B01(e){if(e==null)return;let{format:t,pattern:r,minLength:n,maxLength:i}=e,a=I01(t);if(!(a==null&&r==null&&n==null&&i==null))return{format:a,pattern:r,minLength:n,maxLength:i}}function I01(e){switch(e){case"date":case"date-time":case"password":case"byte":case"bytes":case"binary":case"email":case"uuid":case"uri":case"hostname":case"ipv4":case"ipv6":return e;default:return}}function Fdf(e,t){if(e==null)return;let{minimum:r,maximum:n,multipleOf:i}=e,{exclusiveMinimum:a,exclusiveMaximum:u}=e;if(r=$lu(r,t),n=$lu(n,t),i=$lu(i,t),!(r==null&&n==null&&a==null&&u==null&&i==null))return{min:r,max:n,exclusiveMin:a,exclusiveMax:u,multipleOf:i}}function $lu(e,t){if(e===void 0)return;let[r,n]=t==="integer"?[S01,E01]:[M01,x01];return e<r||e>n?void 0:e}function Jlu({schema:e,fileContainingReference:t,context:r}){let n=r.getSchema(e.schema);if(n==null)return"unknown";let i=U01(n)??e.schema,a=Bdf(n),u=V01(n),f=Jva({context:r,fileContainingReference:t,declarationFile:x5r(a),type:i}),d=n.type==="nullable"?`optional<${f}>`:f;return e.description==null&&u==null?d:{...u!=null?{"display-name":u}:{},type:n.type==="nullable"?`optional<${f}>`:f,...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{}}}function Glu({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=D1({schema:e.value,fileContainingReference:t,declarationFile:r,context:n}),a=`list<${N2(i)}>`;return e.description==null&&e.title==null?a:{...e.title!=null?{"display-name":e.title}:{},...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{},type:a}}function Klu({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=$va(e.key),a=D1({schema:e.value,fileContainingReference:t,declarationFile:r,context:n}),u=e.encoding!=null?Hva(e.encoding):void 0,f=`map<${N2(i)}, ${N2(a)}>`;if(e.description==null&&u==null&&e.title==null)return f;let d={type:f};return e.description!=null&&(d.docs=e.description),e.encoding!=null&&(d.encoding=u),e.title!=null&&(d["display-name"]=e.title),e.availability!=null&&(d.availability=q3(e.availability)),d}function Ylu({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=D1({schema:e.value,fileContainingReference:t,declarationFile:r,context:n}),a=N2(i),u=x_i(i),f=Idf(i),d=Rdf(i),c=a.startsWith("optional<")?a:`optional<${a}>`;if(e.availability==null&&e.description==null&&u==null&&f==null&&d==null&&e.title==null)return c;let o={type:c};return(e.description!=null||u!=null)&&(o.docs=e.description??u),f!=null&&(o.default=f),d!=null&&(o.validation=d),e.title!=null&&(o["display-name"]=e.title),e.availability!=null&&(o.availability=q3(e.availability)),o}function Xlu(){return"unknown"}function Qlu(e){let t;switch(e.value.type){case"boolean":{t=`literal<${e.value.value}>`;break}case"string":{t=`literal<"${e.value.value}">`;break}default:Ol(e.value)}return e.description==null&&e.title==null?t:{...e.title!=null?{"display-name":e.title}:{},type:t,...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{}}}function R01({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=T_i(e),a=e.nameOverride??e.generatedName;n.builder.addType(r,{name:a,schema:i.schema});let u=Jva({type:a,fileContainingReference:t,declarationFile:r,context:n});if(e.description==null&&e.default==null&&e.title==null)return u;let f={type:u};return e.description!=null&&(f.docs=e.description),e.default!=null&&(f.default=e.default.value),e.title!=null&&(f["display-name"]=e.title),e.availability!=null&&(f.availability=q3(e.availability)),f}function F01({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=Zlu({schema:e,declarationFile:r,context:n}),a=e.nameOverride??e.generatedName;n.builder.addType(r,{name:a,schema:i.schema});let u=Jva({type:a,fileContainingReference:t,declarationFile:r,context:n});return e.description==null&&e.title==null?u:{...e.title!=null?{"display-name":e.title}:{},type:u,...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{}}}function L01({schema:e,fileContainingReference:t,declarationFile:r,context:n}){let i=klu({schema:e,declarationFile:r,context:n}),a=e.nameOverride??e.generatedName;n.builder.addType(r,{name:a,schema:i.schema});let u=Jva({type:a,fileContainingReference:t,declarationFile:r,context:n});return e.description==null&&e.title==null?u:{...e.title!=null?{"display-name":e.title}:{},type:u,...e.description!=null?{docs:e.description}:{},...e.availability!=null?{availability:q3(e.availability)}:{}}}function Jva({type:e,fileContainingReference:t,declarationFile:r,context:n}){if(r===t)return e;let i=n.builder.addImport({file:t,fileToImport:r});return i!=null?`${i}.${e}`:e}function U01(e){return ib._visit(e,{primitive:t=>t.nameOverride??t.generatedName,object:t=>t.nameOverride??t.generatedName,array:t=>t.nameOverride??t.generatedName,map:t=>t.nameOverride??t.generatedName,enum:t=>t.nameOverride??t.generatedName,reference:t=>t.nameOverride??t.generatedName,literal:t=>t.nameOverride??t.generatedName,oneOf:t=>t.nameOverride??t.generatedName,optional:t=>t.nameOverride??t.generatedName,nullable:t=>t.nameOverride??t.generatedName,unknown:t=>t.nameOverride??t.generatedName,_other:()=>{}})}function V01(e){return ib._visit(e,{primitive:t=>t.title,object:t=>t.title,array:t=>t.title,map:t=>t.title,enum:t=>t.title,reference:t=>t.title,literal:t=>t.title,oneOf:t=>t.title,optional:t=>t.title,nullable:t=>t.title,unknown:t=>{},_other:()=>{}})}function Nen(e){switch(e.type){case"openapi":return{openapi:e.file};case"protobuf":return{proto:e.file};default:Ol(e)}}function Udf({schema:e,context:t,declarationFile:r}){switch(e.type){case"primitive":return $01(e);case"array":return W01({schema:e,context:t,declarationFile:r});case"map":return H01({schema:e,context:t,declarationFile:r});case"reference":return J01({schema:e,context:t,declarationFile:r});case"unknown":return K01(e.nameOverride,e.generatedName);case"optional":case"nullable":return G01({schema:e,context:t,declarationFile:r});case"enum":return T_i(e);case"literal":return Y01(e,e.nameOverride,e.generatedName);case"object":return Zlu({schema:e,context:t,declarationFile:r});case"oneOf":return klu({schema:e.value,context:t,declarationFile:r});default:Ol(e)}}function Zlu({schema:e,context:t,declarationFile:r}){let n={},i=new Set;for(let d of e.properties){if(Object.keys(d.conflict).length>0){if(Object.entries(d.conflict).every(([j,S])=>!S.differentSchema))continue;Object.entries(d.conflict).forEach(([j])=>{efu({property:d.key,schemaId:j,context:t}).forEach(x=>{i.add(x)})})}let c=D1({schema:d.schema,context:t,fileContainingReference:r}),o=d.audiences,l=d.nameOverride,g=q3(d.availability);n[d.key]=Z01(c,o,l,g)}let a=new Set;for(let d of e.allOfPropertyConflicts)d.allOfSchemaIds.forEach(c=>i.add(c)),d.conflictingTypeSignatures&&a.add(d.propertyKey);let u=[];for(let d of e.allOf){let c=Vdf({schema:d.schema,context:t});if(c==null||i.has(d.schema)||i.has(c))continue;let o=D1({schema:ib.reference(d),context:t,fileContainingReference:r});u.push(N2(o))}for(let d of i){let c=tfu(t,d);for(let o of c.properties)n[o.key]==null&&(a.has(o.key)&&(n[o.key]="unknown"),n[o.key]=D1({schema:o.schema,context:t,fileContainingReference:r}));for(let o of c.allOf){if(i.has(o.schema))continue;let l=D1({schema:ib.reference(o),context:t,fileContainingReference:r});u.push(N2(l))}}let f={docs:e.description??void 0,properties:Object.fromEntries(Object.entries(n).map(([d,c])=>Q01(d)?[d,typeof c=="string"?{type:c,name:`_${d}`}:{...c,name:`_${d}`}]:[d,c]))};return u.length>0&&(f.extends=u),e.additionalProperties&&(f["extra-properties"]=!0),e.availability!=null&&(f.availability=q3(e.availability)),e.source!=null&&(f.source=Nen(e.source)),{name:e.nameOverride??e.generatedName,schema:f}}function efu({property:e,schemaId:t,context:r}){let n=r.getSchema(t);if(n==null)return[];if(n.type==="reference")return efu({property:e,schemaId:n.schema,context:r});if(n.type==="object"){let{properties:i,allOf:a}=tfu(r,t),u=i.some(d=>d.key===e),f=[...a.flatMap(d=>efu({property:e,context:r,schemaId:d.schema}))];if(u||f.length>0)return[t,...f]}return[]}function tfu(e,t){let r=e.getSchema(t);if(r==null)return{properties:[],allOf:[]};if(r.type==="object")return{properties:r.properties,allOf:r.allOf};if(r.type==="reference")return tfu(e,r.schema);throw new Error(`Cannot getAllProperties for a non-object schema. schemaId=${t}, type=${r.type}`)}function W01({schema:e,context:t,declarationFile:r}){return{name:e.nameOverride??e.generatedName,schema:Glu({schema:e,fileContainingReference:r,declarationFile:r,context:t})}}function H01({schema:e,context:t,declarationFile:r}){return{name:e.nameOverride??e.generatedName,schema:Klu({schema:e,fileContainingReference:r,declarationFile:r,context:t})}}function $01(e){let t=$va(e);if(typeof t=="string")return{name:e.nameOverride??e.generatedName,schema:t};let{default:r,...n}=t;return{name:e.nameOverride??e.generatedName,schema:{...n}}}function Ldf(e){return e.camel==null&&e.pascal==null&&e.screamingSnake==null&&e.snake==null}function T_i(e){let t={enum:e.values.map(i=>{let a=i.nameOverride??i.generatedName,u=i.value;if(a===u&&i.description==null&&(i.casing==null||Ldf(i.casing)))return a;let f={value:i.value};if(a!==u&&(f.name=a),i.description!=null&&(f.docs=i.description),i.casing!=null&&!Ldf(i.casing)){let d={},c=!1;i.casing.camel!=null&&(d.camel=i.casing.camel,c=!0),i.casing.screamingSnake!=null&&(d["screaming-snake"]=i.casing.screamingSnake,c=!0),i.casing.snake!=null&&(d.snake=i.casing.snake,c=!0),i.casing.pascal!=null&&(d.pascal=i.casing.pascal,c=!0),c&&(f.casing=d)}return f})};e.description!=null&&(t.docs=e.description),e.default!=null&&(t.default=e.default.value);let r=new Set,n={...t,enum:[],source:e.source!=null?Nen(e.source):void 0};for(let i of t.enum){let a=typeof i=="string"?i:i.name??i.value;r.has(a.toLowerCase())||(n.enum.push(i),r.add(a.toLowerCase()))}return{name:e.nameOverride??e.generatedName,schema:n}}function J01({schema:e,context:t,declarationFile:r}){return{name:e.nameOverride??e.generatedName,schema:Jlu({schema:e,context:t,fileContainingReference:r})}}function G01({schema:e,context:t,declarationFile:r}){return{name:e.nameOverride??e.generatedName,schema:Ylu({schema:e,context:t,fileContainingReference:r,declarationFile:r})}}function K01(e,t){return{name:e??t,schema:Xlu()}}function Y01(e,t,r){return{name:t??r,schema:Qlu(e)}}function klu({schema:e,context:t,declarationFile:r}){let n=e.encoding!=null?Hva(e.encoding):void 0;if(e.type==="discriminated"){let a={};for(let f of e.commonProperties)a[f.key]=D1({schema:f.schema,fileContainingReference:r,context:t});let u={};for(let[f,d]of Object.entries(e.schemas))u[f]=D1({schema:d,context:t,fileContainingReference:r});return{name:e.nameOverride??e.generatedName,schema:{discriminant:e.discriminantProperty,"base-properties":a,docs:e.description??void 0,availability:e.availability!=null?q3(e.availability):void 0,union:u,encoding:n,source:e.source!=null?Nen(e.source):void 0}}}let i=[];for(let a of e.schemas)i.push(D1({schema:a,fileContainingReference:r,context:t}));return{name:e.nameOverride??e.generatedName,schema:{discriminated:!1,docs:e.description??void 0,union:i,encoding:n,source:e.source!=null?Nen(e.source):void 0}}}var X01=/^[0-9]/;function Q01(e){return X01.test(e)}function Vdf({schema:e,context:t}){let r=t.getSchema(e);if(r!=null)return r.type==="reference"?Vdf({context:t,schema:r.schema}):e}function Z01(e,t,r,n){return t.length===0&&r==null&&n==null?e:{...typeof e=="string"?{type:e}:{...e},...t.length>0?{audiences:t}:{},...r!=null?{name:r}:{},...n!=null?{availability:n}:{}}}function Wdf(e){let t=e.replace(/^x-|^X-/,"");return dx(t)}var Hdf="BasicAuthScheme",Gva="BearerAuthScheme";function $df(e){if(e.authOverrides!=null){for(let[r,n]of Object.entries(e.authOverrides["auth-schemes"]??{}))e.builder.addAuthScheme({name:r,schema:n});e.authOverrides.auth!=null&&e.builder.setAuth(e.authOverrides.auth);return}let t=!1;for(let[r,n]of Object.entries(e.ir.securitySchemes))if(n.type==="basic"){let i={scheme:"basic"};n.usernameVariableName!=null&&(i.username===void 0?i.username={name:n.usernameVariableName}:i.username.name=n.usernameVariableName),n.usernameEnvVar!=null&&(i.username===void 0?i.username={env:n.usernameEnvVar}:i.username.env=n.usernameEnvVar),n.passwordVariableName!=null&&(i.password===void 0?i.password={name:n.passwordVariableName}:i.password.name=n.passwordVariableName),n.passwordEnvVar!=null&&(i.password===void 0?i.password={env:n.passwordEnvVar}:i.password.env=n.passwordEnvVar),e.builder.addAuthScheme({name:Hdf,schema:i}),t||(e.builder.setAuth(Hdf),t=!0)}else if(n.type==="bearer"){let i={scheme:"bearer"};n.tokenVariableName!=null&&(i.token===void 0?i.token={name:n.tokenVariableName}:i.token.name=n.tokenVariableName),n.tokenEnvVar!=null&&(i.token===void 0?i.token={env:n.tokenEnvVar}:i.token.env=n.tokenEnvVar),e.builder.addAuthScheme({name:Gva,schema:i}),t||(e.builder.setAuth(Gva),t=!0)}else if(n.type==="header")if(t)e.builder.addGlobalHeader({name:n.headerName,schema:{type:"string",name:n.headerVariableName??Wdf(n.headerName),env:n.headerEnvVar}});else{let i={header:n.headerName,name:n.headerVariableName??"apiKey",type:"string"};n.headerEnvVar!=null&&(i.env=n.headerEnvVar),n.prefix!=null&&(i.prefix=n.prefix),e.builder.addAuthScheme({name:r,schema:i}),e.builder.setAuth(r),t=!0}else if(n.type==="oauth"){let i={scheme:"bearer"};e.builder.addAuthScheme({name:Gva,schema:i}),t||(e.builder.setAuth(Gva),t=!0),n.scopesEnum!=null&&n.scopesEnum.values.length>0&&e.builder.addType(Ws.of("__package__.yml"),{name:"OauthScope",schema:T_i(n.scopesEnum).schema})}}function BRt({header:e,context:t,fileContainingReference:r}){let n=D1({schema:e.schema,context:t,fileContainingReference:r}),i=N2(n),a=e.name.replace(/^x-|^X-/,""),u=e.parameterNameOverride!=null?e.parameterNameOverride:dx(a);if(e.description==null&&e.name===u&&e.env==null&&e.availability==null)return i;let f={type:i};return u!==e.name&&(f.name=u),e.description!=null&&(f.docs=e.description),e.env!=null&&(f.env=e.env),e.availability!=null&&(f.availability=q3(e.availability)),f}function Kva({pathParameter:e,context:t,fileContainingReference:r}){let n=D1({schema:e.schema,context:t,fileContainingReference:r});if(e.variableReference==null&&e.description==null&&e.availability==null)return N2(n);let i=e.variableReference!=null?{variable:`$${e.variableReference}`}:{type:N2(n)};return e.description!=null&&(i.docs=e.description),e.availability!=null&&(i.availability=q3(e.availability)),i}var Wmu=require("fs/promises");var Jdf={naming:"v1"};function Lh(e,t){let r=Array.isArray(t)?t:[t];for(let n of r){let i=e[n];if(i!=null)return i}}function IRt(e,t,r,n,i=[]){try{let a=Lh(e,t);if(a!=null)return r.parse(a)}catch{let u=Y8t(i).join(" -> ");n.error(`${u.length>0?`${u}: `:""}Failed to parse ${t}`)}}var Yva={of(e){return e}};var kh={SDK_METHOD_NAME:Yva.of("x-fern-sdk-method-name"),SDK_GROUP_NAME:Yva.of("x-fern-sdk-group-name"),REQUEST_NAME_V1:"x-request-name",REQUEST_NAME_V2:"x-fern-request-name",TYPE_NAME:"x-fern-type-name",BOOLEAN_LITERAL:"x-fern-boolean-literal",SERVER_NAME_V1:"x-name",SERVER_NAME_V2:"x-fern-server-name",BASE_PATH:"x-fern-base-path",GROUPS:Yva.of("x-fern-groups"),OPENAPI_OVERIDES_FILEPATH:"x-fern-overrides-filepath",TYPE_DEFINITION:"x-fern-type",STREAMING:"x-fern-streaming",PAGINATION:"x-fern-pagination",WEBHOOK:"x-fern-webhook",ASYNC_CONFIG:"x-fern-async-config",SDK_VARIABLES:"x-fern-sdk-variables",SDK_VARIABLE:"x-fern-sdk-variable",PARAMETER_NAME:"x-fern-parameter-name",BASIC_AUTH_USERNAME_VARIABLE_NAME:"x-fern-username-variable-name",BASIC_AUTH_PASSWORD_VARIABLE_NAME:"x-fern-password-variable-name",BEARER_TOKEN_VARIABLE_NAME:"x-fern-token-variable-name",HEADER_VARIABLE_NAME:"x-fern-header-variable-name",FERN_ENUM:"x-fern-enum",AUDIENCES:"x-fern-audiences",IGNORE:"x-fern-ignore",AVAILABILITY:"x-fern-availability",RESPONSE_PROPERTY:"x-fern-sdk-return-value",RESOLUTIONS:"x-fern-resolutions",EXAMPLES:"x-fern-examples",FERN_BEARER_TOKEN:"x-fern-bearer",FERN_HEADER_AUTH:"x-fern-header",FERN_BASIC_AUTH:"x-fern-basic",FERN_GLOBAL_HEADERS:"x-fern-global-headers",FERN_IDEMPOTENCY_HEADERS:"x-fern-idempotency-headers",IDEMPOTENT:"x-fern-idempotent",FERN_PROPERTY_NAME:"x-fern-property-name",IS_UNDISCRIMINATED:"x-fern-undiscriminated",FERN_VERSION:"x-fern-version",ENCODING:"x-fern-encoding",TRANSPORT:"x-fern-transport"};function gy(e){return e.$ref!=null}function E2e(e){switch(Lh(e,kh.AVAILABILITY)){case"deprecated":return hW.Deprecated;case"beta":return hW.Beta;case"generally-available":return hW.GenerallyAvailable;default:break}if(!gy(e)&&e.deprecated)return hW.Deprecated}var Yje={BEARER_FORMAT:"x-bearer-format",ENUM_VAR_NAMES:"x-enum-varnames",INTERNAL:"x-internal",EXAMPLES:"x-examples",TAGS:"x-tags",REDOCLY_CODE_SAMPLES_KEBAB:"x-code-samples",REDOCLY_CODE_SAMPLES_CAMEL:"x-codeSamples"};function Gdf({schema:e,logger:t}){return IRt(e,kh.ENCODING,h5.EncodingSchema,t)??void 0}function Kdf(e){return Lh(e,kh.FERN_ENUM)}function Ydf({nameOverride:e,generatedName:t,title:r,schema:n,description:i,availability:a}){let u=Lh(n,kh.SDK_GROUP_NAME),f=Lh(n,kh.TYPE_DEFINITION);if(f!=null)return q_i({fernType:f,nameOverride:e,generatedName:t,title:r,description:i,availability:a,groupName:typeof u=="string"?[u]:u})}function q_i({fernType:e,nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u}){return BJ({type:e,_default:void 0,validation:void 0,visitor:{primitive:f=>{switch(f.v1){case"BASE_64":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.base64({example:void 0})});case"BOOLEAN":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.boolean({default:void 0,example:void 0})});case"DATE":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.date({example:void 0})});case"DATE_TIME":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.datetime({example:void 0})});case"FLOAT":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.float({example:void 0})});case"DOUBLE":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.double({default:void 0,minimum:void 0,maximum:void 0,exclusiveMinimum:void 0,exclusiveMaximum:void 0,multipleOf:void 0,example:void 0})});case"UINT":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.uint({default:void 0,example:void 0})});case"INTEGER":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.int({default:void 0,minimum:void 0,maximum:void 0,exclusiveMinimum:void 0,exclusiveMaximum:void 0,multipleOf:void 0,example:void 0})});case"UINT_64":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.uint64({default:void 0,example:void 0})});case"LONG":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.int64({default:void 0,example:void 0})});case"STRING":case"UUID":case"BIG_INTEGER":return Lp.primitive({nameOverride:t,generatedName:r,title:n,description:i,availability:a,groupName:u,schema:by.string({default:void 0,pattern:void 0,maxLength:void 0,minLength:void 0,example:void 0,format:void 0})});default:Ol(f.v1)}},unknown:()=>Lp.unknown({nameOverride:t,generatedName:r,title:n,example:void 0,description:i,availability:a,groupName:u}),map:({keyType:f,valueType:d})=>(f==null?void 0:f.type)==="primitive"&&d!=null?Lp.map({nameOverride:t,generatedName:r,title:n,key:f,value:d,description:i,availability:a,groupName:u,encoding:void 0,example:void 0}):void 0,list:f=>f!=null?Lp.array({nameOverride:t,generatedName:r,title:n,value:f,description:i,availability:a,groupName:u,example:void 0}):void 0,optional:f=>f!=null?Lp.optional({nameOverride:t,generatedName:r,title:n,value:f,description:i,availability:a,groupName:u}):void 0,set:f=>f!=null?Lp.array({nameOverride:t,generatedName:r,title:n,value:f,description:i,availability:a,groupName:u,example:void 0}):void 0,literal:f=>Lp.literal({nameOverride:t,generatedName:r,title:n,value:f._visit({string:d=>E7.string(d),boolean:d=>E7.boolean(d),_other:()=>{throw new Error("Unexpected literal type")}}),description:i,availability:a,groupName:u}),named:()=>{}}})}function zen(e){if(e!=null&&typeof e=="boolean")return e}function Xdf({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,additionalProperties:i,description:a,availability:u,wrapAsNullable:f,context:d,groupName:c,example:o,encoding:l,source:g,namespace:O}){return typeof i=="boolean"||F7n(i)?Xva({nameOverride:e,generatedName:t,title:r,wrapAsNullable:f,description:a,availability:u,keySchema:{nameOverride:void 0,generatedName:`${t}Key`,title:void 0,description:void 0,availability:void 0,schema:by.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:void 0}),groupName:void 0},valueSchema:Lp.unknown({nameOverride:void 0,generatedName:`${t}Value`,title:void 0,description:void 0,availability:void 0,example:void 0,groupName:void 0}),groupName:c,example:o,encoding:l}):Xva({nameOverride:e,generatedName:t,title:r,wrapAsNullable:f,description:a,availability:u,keySchema:{nameOverride:void 0,generatedName:`${t}Key`,title:void 0,description:void 0,availability:void 0,schema:by.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:void 0}),groupName:void 0},valueSchema:L1(i,f,d,[...n,"Value"],g,O),groupName:c,example:o,encoding:l})}function Xva({nameOverride:e,generatedName:t,title:r,keySchema:n,valueSchema:i,wrapAsNullable:a,description:u,availability:f,groupName:d,example:c,encoding:o}){return a?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.map({nameOverride:e,generatedName:t,title:r,description:u,availability:n.availability,key:n,value:i,groupName:d,encoding:o,example:c}),description:u,availability:f,groupName:d}):Lp.map({nameOverride:e,generatedName:t,title:r,description:u,availability:f,key:n,value:i,groupName:d,encoding:o,example:c})}function F7n(e){return e==null?!1:typeof e=="boolean"?e:!gy(e)&&Object.keys(e).length===0}function Qdf({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,item:i,description:a,availability:u,wrapAsNullable:f,context:d,groupName:c,example:o,source:l,namespace:g}){let O=i==null?Lp.unknown({nameOverride:e,generatedName:t,title:r,description:void 0,availability:void 0,example:void 0,groupName:c}):L1(i,!1,d,[...n,"Item"],l,g);return k01({nameOverride:e,generatedName:t,title:r,groupName:c,itemSchema:O,wrapAsNullable:f,description:a,availability:u,example:o})}function k01({nameOverride:e,generatedName:t,title:r,itemSchema:n,wrapAsNullable:i,description:a,availability:u,groupName:f,example:d}){return i?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.array({nameOverride:e,generatedName:t,title:r,value:n,description:a,availability:u,groupName:f,example:d}),description:a,availability:u,groupName:f}):Lp.array({nameOverride:e,generatedName:t,title:r,value:n,description:a,availability:u,groupName:f,example:d})}function rfu({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,properties:i,description:a,availability:u,required:f,wrapAsNullable:d,discriminator:c,context:o,groupName:l,encoding:g,source:O,namespace:j}){let S=c.propertyName,x=Object.fromEntries(Object.entries(c.mapping??{}).map(([N,z])=>{let C=L7n({$ref:z},!1,o,[z],g,O,j);return o.markReferencedByDiscriminatedUnion({$ref:z},S,1),[N,C]})),A=Object.entries(i).filter(([N])=>N!==S).map(([N,z])=>{let C=f!=null&&f.includes(N),U=L1(z,!C,o,[...n,N],O,j);return{key:N,schema:U}});return Zdf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:d,properties:A,description:a,availability:u,discriminant:S,subtypes:x,groupName:l,source:O})}function nfu({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,properties:i,description:a,availability:u,required:f,wrapAsNullable:d,discriminant:c,variants:o,context:l,groupName:g,encoding:O,source:j,namespace:S}){let x=Object.fromEntries(Object.entries(o).map(([N,z])=>{if(gy(z)){let C=L7n(z,!1,l,[z.$ref],O,j,S);return l.markReferencedByDiscriminatedUnion(z,c,1),[N,C]}else{let C=T5r(z,!1,l,[...n,N],O,j,S,new Set([c]));return[N,C]}})),A=Object.entries(i).filter(([N])=>N!==c).map(([N,z])=>{let C=f!=null&&f.includes(N),U=L1(z,!C,l,[...n,N],j,S);return{key:N,schema:U}});return Zdf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:d,properties:A,description:a,availability:u,discriminant:c,subtypes:x,groupName:g,source:j})}function Zdf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:n,properties:i,description:a,availability:u,discriminant:f,subtypes:d,groupName:c,source:o}){return n?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.oneOf(jQ.discriminated({description:a,availability:u,discriminantProperty:f,nameOverride:e,generatedName:t,title:r,schemas:d,commonProperties:i,groupName:c,encoding:void 0,source:o})),groupName:c,description:a,availability:u}):Lp.oneOf(jQ.discriminated({description:a,availability:u,discriminantProperty:f,nameOverride:e,generatedName:t,title:r,schemas:d,commonProperties:i,groupName:c,encoding:void 0,source:o}))}function kdf(e){if(e.proto!=null)return h7n.protobuf({typeName:e.proto.type})}var ev1=/^(\d+)/;function Qva(e){let t=e.match(ev1);if(t&&t[0]!=null){let r=t[0],n=e.substring(r.length),i=parseFloat(r);if(!isNaN(i)&&isFinite(i)){let a=U7n(i);return n.length>0?`${a}_${n}`:a}}}function U7n(e){let t=["zero","one","two","three","four","five","six","seven","eight","nine"],r=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],n=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"];if(e<0||e>9999)return;if(e<10)return t[e];if(e<20)return r[e-10];if(e<100){let u=Math.floor(e/10),f=e%10;return f===0?n[u]:`${n[u]}_${t[f]}`}if(e<1e3){let u=Math.floor(e/100),f=e%100;return f===0?`${t[u]}_hundred`:`${t[u]}_hundred_${U7n(f)}`}let i=Math.floor(e/1e3),a=e%1e3;return a===0?`${t[i]}_thousand`:`${t[i]}_thousand_${U7n(a)}`}var V7n=/^[a-zA-Z][a-zA-Z0-9_]*$/;function q5r({nameOverride:e,generatedName:t,title:r,fernEnum:n,enumVarNames:i,enumValues:a,_default:u,description:f,availability:d,wrapAsNullable:c,groupName:o,context:l,source:g}){let O=nv1(i??[]),j=new Set(a),S=Array.from(j).map((A,N)=>{var G,$,ee,Ve;let z=n==null?void 0:n[A],C=O[N],U=V7n.test(A),Y=(z==null?void 0:z.name)??C,te=U?A:C_i(A);return Y!=null&&!V7n.test(Y)&&(l==null||l.logger.warn(`Enum name override ${Y} is not a valid name. Falling back on ${te}.`),Y=void 0),{nameOverride:Y,generatedName:te,value:A,description:z==null?void 0:z.description,availability:d,casing:{snake:((G=z==null?void 0:z.casing)==null?void 0:G.snake)??void 0,pascal:(($=z==null?void 0:z.casing)==null?void 0:$.pascal)??void 0,screamingSnake:((ee=z==null?void 0:z.casing)==null?void 0:ee.screamingSnake)??void 0,camel:((Ve=z==null?void 0:z.casing)==null?void 0:Ve.camel)??void 0}}}),x=u!=null?S.find(A=>A.value===u):void 0;return tv1({wrapAsNullable:c,nameOverride:e,generatedName:t,title:r,values:S,_default:x,description:f,availability:d,groupName:o,source:g})}function tv1({wrapAsNullable:e,nameOverride:t,generatedName:r,title:n,values:i,_default:a,description:u,availability:f,groupName:d,source:c}){return e?Lp.nullable({nameOverride:t,generatedName:r,title:n,value:Lp.enum({nameOverride:t,generatedName:r,title:n,values:i,description:u,default:a,availability:f,example:void 0,groupName:d,source:c}),description:u,availability:f,groupName:d}):Lp.enum({nameOverride:t,generatedName:r,title:n,values:i,description:u,availability:f,default:a,example:void 0,groupName:d,source:c})}var rv1={"<":"LESS_THAN",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL_TO","<=":"LESS_THAN_OR_EQUAL_TO","!=":"NOT_EQUALS","=":"EQUAL_TO","==":"EQUAL_TO","*":"ALL","":"EMPTY",'""':"EMPTY_STRING","-":"HYPHEN","|":"PIPE",".":"DOT","/":"SLASH"};function C_i(e){let t=Qva(e),r=rv1[e];return t!=null?ZX(dx(t)):r??(e.toLowerCase()==="n/a"?"NOT_APPLICABLE":ZX(dx(e)))}function nv1(e){if(e.length<=1||e[0]==null)return e;let t=e[0],r=0;for(;t[r]!=null&&e.every(n=>n[r]===t[r]);)r++;return e.map(n=>n.substring(r))}function epf({nameOverride:e,generatedName:t,title:r,format:n,_default:i,minimum:a,maximum:u,exclusiveMinimum:f,exclusiveMaximum:d,multipleOf:c,description:o,availability:l,wrapAsNullable:g,example:O,groupName:j}){return n==="int64"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.int64({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="uint32"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.uint({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="uint64"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.uint64({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):L9({nameOverride:e,generatedName:t,title:r,primitive:by.int({default:i,minimum:a,maximum:u,exclusiveMinimum:f,exclusiveMaximum:d,multipleOf:c,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j})}function tpf(e){return typeof e=="string"?E7.string(e):typeof e=="boolean"?E7.boolean(e):E7.string(`${e}`)}function rpf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:n,value:i,description:a,availability:u,groupName:f}){return n?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.literal({nameOverride:e,generatedName:t,title:r,value:tpf(i),description:a,availability:u,groupName:f}),description:a,availability:u,groupName:f}):Lp.literal({nameOverride:e,generatedName:t,title:r,value:tpf(i),description:a,availability:u,groupName:f})}function ifu({nameOverride:e,generatedName:t,title:r,format:n,_default:i,minimum:a,maximum:u,exclusiveMinimum:f,exclusiveMaximum:d,multipleOf:c,description:o,availability:l,wrapAsNullable:g,example:O,groupName:j}){return n==null||n==="double"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.double({default:i,minimum:a,maximum:u,exclusiveMinimum:f,exclusiveMaximum:d,multipleOf:c,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="float"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.float({example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="int32"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.int({default:i,minimum:a,maximum:u,exclusiveMinimum:f,exclusiveMaximum:d,multipleOf:c,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="int64"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.int64({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="uint32"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.uint({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="uint64"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.uint64({default:i,example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):n==="time-delta"?L9({nameOverride:e,generatedName:t,title:r,primitive:by.float({example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j}):L9({nameOverride:e,generatedName:t,title:r,primitive:by.float({example:O}),wrapAsNullable:g,description:o,availability:l,groupName:j})}var iv1={isApplicable:e=>e[0]==="#"&&e[1]==="components"&&e[2]==="schemas",applyStrategy:e=>{let t=[e[3]??""];return{refUnderProcessing:e.slice(4),newBreadcrumbs:t}}},av1={isApplicable:e=>e[0]==="#"&&e[1]==="components"&&e[2]==="responses",applyStrategy:e=>{let t=[e[3]??""];return e=e.slice(4),{refUnderProcessing:e.slice(4),newBreadcrumbs:t}}},ov1={isApplicable:e=>e[0]==="#"&&e[1]==="components"&&e[2]==="parameters",applyStrategy:e=>{let t=[e[3]??""];return e=e.slice(4),e[0]==="schema"&&(e=e.slice(1)),{refUnderProcessing:e,newBreadcrumbs:t}}},uv1={isApplicable:e=>e[0]==="properties",applyStrategy:e=>{let t=[e[1]??""];return{refUnderProcessing:e.slice(2),newBreadcrumbs:t}}},sv1={isApplicable:e=>e[0]==="items",applyStrategy:e=>({refUnderProcessing:e.slice(1),newBreadcrumbs:[]})},cv1={isApplicable:e=>e[0]==="allOf",applyStrategy:e=>({refUnderProcessing:e.slice(1),newBreadcrumbs:[]})},lv1={isApplicable:e=>e[0]==="anyOf",applyStrategy:e=>({refUnderProcessing:e.slice(1),newBreadcrumbs:[]})},fv1={isApplicable:e=>e[0]==="oneOf",applyStrategy:e=>({refUnderProcessing:e.slice(1),newBreadcrumbs:[]})};function Zva(e){let t=e.split("/").map(a=>a.replace(/~1/g,"/")),r=[],n=[iv1,av1,ov1,uv1,sv1,cv1,lv1,fv1],i;do{i=t;for(let a of n)if(a.isApplicable(t)){let{refUnderProcessing:u,newBreadcrumbs:f}=a.applyStrategy(t);t=u,r=[...r,...f]}}while(t.join("")!==i.join(""));return r}function yR(e){let t=e.join("_"),r=ZX(dx(t));return/^\d/.test(r)?Qva(r)??r:r}function afu(e){let t=e.join("_");return dx(t)}function z2(e){switch(e.type){case"object":return ib.object({allOf:e.allOf,properties:e.properties.map(t=>pv1(t)),allOfPropertyConflicts:e.allOfPropertyConflicts,description:e.description,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName,additionalProperties:e.additionalProperties,availability:e.availability,source:e.source});case"array":return ib.array({description:e.description,availability:e.availability,value:z2(e.value),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName});case"enum":return ib.enum({description:e.description,availability:e.availability,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,values:e.values,default:e.default,groupName:e.groupName,source:e.source});case"literal":return ib.literal({description:e.description,availability:e.availability,value:e.value,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName});case"nullable":return ib.nullable({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:z2(e.value),groupName:e.groupName});case"optional":return ib.optional({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:z2(e.value),groupName:e.groupName});case"primitive":return ib.primitive({description:e.description,availability:e.availability,schema:npf(e.schema),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName});case"map":return ib.map({description:e.description,availability:e.availability,key:ib.primitive({description:e.key.description,availability:e.key.availability,schema:npf(e.key.schema),generatedName:e.key.generatedName,title:e.key.title,nameOverride:e.key.nameOverride,groupName:e.groupName}),value:z2(e.value),generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,groupName:e.groupName,encoding:e.encoding});case"reference":return ib.reference({description:e.description,availability:e.availability,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schema:e.schema,groupName:e.groupName,source:e.source});case"oneOf":return ib.oneOf(dv1(e.value));case"unknown":return ib.unknown({nameOverride:e.nameOverride,generatedName:e.generatedName});default:Ol(e)}}function dv1(e){switch(e.type){case"discriminated":return GSr.discriminated({commonProperties:e.commonProperties.map(t=>({key:t.key,schema:z2(t.schema)})),description:e.description,availability:e.availability,discriminantProperty:e.discriminantProperty,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,schemas:Object.fromEntries(Object.entries(e.schemas).map(([t,r])=>[t,z2(r)])),groupName:e.groupName,encoding:e.encoding,source:e.source});case"undisciminated":return GSr.undisciminated({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,schemas:e.schemas.map(t=>z2(t)),groupName:e.groupName,encoding:e.encoding,source:e.source});default:Ol(e)}}function npf(e){switch(e.type){case"string":return Xw.string(e);case"base64":return Xw.base64();case"boolean":return Xw.boolean(e);case"date":return Xw.date();case"datetime":return Xw.datetime();case"double":return Xw.double(e);case"float":return Xw.float();case"int":return Xw.int(e);case"int64":return Xw.int64(e);case"uint":return Xw.uint();case"uint64":return Xw.uint64();default:Ol(e)}}function pv1(e){return{conflict:e.conflict,generatedName:e.generatedName,key:e.key,schema:z2(e.schema),audiences:e.audiences,nameOverride:e.nameOverride,availability:e.availability}}function kva(e,t){return RRt(z2(e),z2(t))}function RRt(e,t){return e.type==="primitive"&&t.type==="primitive"?ipf(e.schema,t.schema):e.type==="enum"&&t.type==="enum"?_v1(e.values,t.values):e.type==="array"&&t.type==="array"?RRt(e.value,t.value):e.type==="unknown"&&t.type==="unknown"?!0:e.type==="reference"&&t.type==="reference"?e.schema===t.schema:e.type==="optional"&&t.type==="optional"?RRt(e.value,t.value):e.type==="oneOf"&&t.type==="oneOf"?hv1(e.value,t.value):e.type==="object"&&t.type==="object"?yv1(e,t):e.type==="map"&&t.type==="map"?ipf(e.key.schema,t.key.schema)&&RRt(e.value,t.value):e.type==="literal"&&t.type==="literal"?e.value===t.value:!1}function ipf(e,t){return e.type===t.type}function _v1(e,t){let r=new Set(...e.map(i=>i.value)),n=new Set(...t.map(i=>i.value));return nDr(r,n)}function hv1(e,t){return e.type==="discriminated"&&t.type==="discriminated"?e.discriminantProperty===t.discriminantProperty&&Object.keys(e.schemas).length===Object.keys(t.schemas).length&&Object.entries(e.schemas).every(([r,n])=>{let i=t.schemas[r];return i==null?!1:RRt(n,i)}):e.type==="undisciminated"&&t.type==="undisciminated"?e.schemas.length===t.schemas.length&&e.schemas.every((r,n)=>{let i=t.schemas[n];return i==null?!1:RRt(r,i)}):!1}function yv1(e,t){if(Object.keys(e.properties).length!==Object.keys(t.properties).length)return!1;let r=Object.fromEntries(e.properties.map(n=>[n.key,n.schema]));return Object.entries(t.properties).every(([n,i])=>{let a=r[n];return a==null?!1:RRt(a,i.schema)})}function apf({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,properties:i,description:a,required:u,wrapAsNullable:f,allOf:d,context:c,propertiesToExclude:o,groupName:l,fullExamples:g,additionalProperties:O,availability:j,encoding:S,source:x,namespace:A}){let N=[...u??[]],z={...i},C=[],U=[];for(let $ of d)if(gy($)){let ee=c.resolveSchemaReference($);if(ee.discriminator!=null&&ee.discriminator.mapping!=null)continue;if(ee.oneOf!=null){for(let $e of ee.oneOf){let Dt=gy($e)?c.resolveSchemaReference($e):$e,Tt=L1(Dt,!1,c.DUMMY,n,x,A);Tt.type==="object"&&C.push(...Tt.properties.map(Wt=>Wt.schema.type!=="optional"&&Wt.schema.type!=="nullable"?{...Wt,schema:Lp.optional({nameOverride:void 0,generatedName:"",title:void 0,value:Wt.schema,description:void 0,availability:Wt.availability,groupName:void 0})}:Wt))}continue}let Ve=C5r($);if(Ve==null)continue;U.push({schemaId:Ve,convertedSchema:ofu($,[Ve],x),properties:opf({schema:$,context:c,breadcrumbs:n,source:x,namespace:A})}),c.markSchemaAsReferencedByNonRequest(Ve)}else{let ee=L1($,!1,c,n,x,A);ee.type==="object"&&C.push(...ee.properties)}let Y={};for(let $ of U)for(let[ee,Ve]of Object.entries($.properties)){let $e=Y[ee];$e!=null?($e.schemaIds.push($.schemaId),$e.schemas.some(Tt=>kva(Tt,Ve))||$e.schemas.push(Ve)):Y[ee]={schemaIds:[$.schemaId],schemas:[Ve]}}let te=[];for(let[$,ee]of Object.entries(Y))ee.schemaIds.length>1&&te.push({propertyKey:$,allOfSchemaIds:ee.schemaIds,conflictingTypeSignatures:ee.schemas.length>1});let G=Object.entries(z).map(([$,ee])=>{let Ve=N.includes($),$e=Lh(ee,kh.AUDIENCES)??[],Dt=E2e(ee),Tt=Lh(ee,kh.FERN_PROPERTY_NAME),Wt=[...n,$],Nt=afu(Wt),ur=Ve?L1(ee,!1,c,Wt,x,A):Lp.optional({nameOverride:e,generatedName:Nt,title:r,description:void 0,availability:Dt,value:L1(ee,!1,c,Wt,x,A),groupName:l}),Ar={};for(let Jr of U){let zt=Jr.properties[$];zt!=null&&!kva(ur,zt)?Ar[Jr.schemaId]={differentSchema:!0}:zt!=null&&(Ar[Jr.schemaId]={differentSchema:!1})}return{key:$,schema:ur,nameOverride:Tt,audiences:$e,conflict:Ar,generatedName:afu([...n,$]),availability:Dt}});return G.push(...C.map($=>{let ee=$.conflict;for(let Ve of U){let $e=Ve.properties[$.key];$e!=null&&!kva($.schema,$e)?ee[Ve.schemaId]={differentSchema:!0}:$e!=null&&(ee[Ve.schemaId]={differentSchema:!1})}return{...$,conflict:ee}})),vv1({nameOverride:e,generatedName:t,title:r,wrapAsNullable:f,properties:G.filter($=>!o.has($.key)),description:a,allOf:U.map($=>$.convertedSchema),allOfPropertyConflicts:te,groupName:l,fullExamples:g,additionalProperties:O,availability:j,source:x})}function vv1({nameOverride:e,generatedName:t,title:r,wrapAsNullable:n,properties:i,description:a,allOf:u,allOfPropertyConflicts:f,groupName:d,fullExamples:c,additionalProperties:o,availability:l,source:g}){return n?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.object({description:a,properties:i,nameOverride:e,generatedName:t,title:r,allOf:u,allOfPropertyConflicts:f,groupName:d,fullExamples:c,additionalProperties:F7n(o),availability:void 0,source:g}),description:a,availability:l,groupName:d}):Lp.object({description:a,properties:i,nameOverride:e,generatedName:t,title:r,allOf:u,allOfPropertyConflicts:f,groupName:d,fullExamples:c,additionalProperties:F7n(o),availability:l,source:g})}function opf({schema:e,context:t,breadcrumbs:r,source:n,namespace:i}){let a={},[u,f]=gy(e)?[t.resolveSchemaReference(e),Zva(e.$ref)]:[e,r];for(let d of u.allOf??[])a={...a,...opf({schema:d,context:t,breadcrumbs:f,source:n,namespace:i})};for(let[d,c]of Object.entries(u.properties??{})){let o=L1(c,!1,t,[...f,d],n,i);a[d]=o}return a}function W7n({nameOverride:e,generatedName:t,title:r,breadcrumbs:n,description:i,availability:a,wrapAsNullable:u,context:f,subtypes:d,groupName:c,encoding:o,source:l,subtypePrefixOverrides:g,namespace:O}){let j=bv1({schemas:d}),S=d.flatMap((N,z)=>{if(!gy(N)&&N.enum!=null)return N.enum.map(U=>Lp.literal({nameOverride:void 0,generatedName:yR([t,U]),title:void 0,value:E7.string(U),groupName:void 0,description:void 0,availability:U.availability}));let C=j[z];if(g!=null){let U=g[z];U!=null&&"name"in U&&(C=U.name)}return[L1(N,!1,f,[...n,C??`${z}`],l,O)]}),x=[];for(let N=0;N<S.length;++N){let z=S[N],C=!1;for(let U=N+1;U<S.length;++U){let Y=S[U];if(z!=null&&Y!=null&&RRt(z,Y)){C=!0;break}}z!=null&&!C&&x.push(z)}if(Object.entries(x).every(([N,z])=>z.type==="literal")){let N={},z=[];return Object.entries(x).forEach(([C,U])=>{U.type==="literal"&&U.value.type==="string"&&(z.push(U.value.value),U.description!=null&&(N[U.value.value]={description:U.description}))}),q5r({nameOverride:e,generatedName:t,title:r,wrapAsNullable:u,description:i,availability:a,fernEnum:N,enumVarNames:void 0,enumValues:z,_default:void 0,groupName:c,context:f,source:l})}return x.length===1&&x[0]!=null?x[0]:upf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:u,description:i,availability:a,subtypes:x,groupName:c,encoding:o,source:l})}function ufu({nameOverride:e,generatedName:t,title:r,description:n,availability:i,wrapAsNullable:a,context:u,groupName:f,discriminator:d,encoding:c,source:o,namespace:l}){let g=Object.entries(d.mapping??{}).map(([S,x],A)=>{let N={$ref:x},z=L7n(N,!1,u,[x],c,o,l);return u.markSchemaWithDiscriminantValue(N,d.propertyName,S),z.type==="object"&&(z.properties={[d.propertyName]:Lp.literal({nameOverride:void 0,generatedName:yR([t,S]),title:void 0,value:E7.string(S),groupName:void 0,description:void 0,availability:void 0}),...z.properties.filter(C=>C.key!==d.propertyName)}),z}),O=[];for(let S=0;S<g.length;++S){let x=g[S],A=!1;for(let N=S+1;N<g.length;++N){let z=g[N];if(x!=null&&z!=null&&RRt(x,z)){A=!0;break}}x!=null&&!A&&O.push(x)}if(Object.entries(O).every(([S,x])=>x.type==="literal")){let S={},x=[];return Object.entries(O).forEach(([A,N])=>{N.type==="literal"&&N.value.type==="string"&&(x.push(N.value.value),N.description!=null&&(S[N.value.value]={description:N.description}))}),q5r({nameOverride:e,generatedName:t,title:r,wrapAsNullable:a,description:n,availability:i,fernEnum:S,enumVarNames:void 0,enumValues:x,_default:void 0,groupName:f,context:u,source:o})}return O.length===1&&O[0]!=null?O[0]:upf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:a,description:n,availability:i,subtypes:O,groupName:f,encoding:c,source:o})}function bv1({schemas:e}){let t={},r=0;for(let a of e){if(!gy(a)){if(a.properties!=null&&Object.entries(a.properties).length>0){let u=Object.keys(a.properties),f={},d=u;for(let[c,o]of Object.entries(t)){let l=xXi(o,u);d=xXi(d,o),f[c]=l}f[r]=d,t=f}}r++}let n=[],i=0;for(let a of e){let u=t[i];if(u!=null&&u.length>0){let f=u.sort();if(f[0]!=null){n.push(f[0]),++i;continue}}gy(a)?n.push(U7n(i)??`${i}`):a.type==="array"||a.type==="boolean"||a.type==="integer"||a.type==="number"||a.type==="string"?n.push(""):n.push(U7n(i)??`${i}`),++i}return n}function upf({nameOverride:e,generatedName:t,title:r,wrapAsNullable:n,description:i,availability:a,subtypes:u,groupName:f,encoding:d,source:c}){return n?Lp.nullable({nameOverride:e,generatedName:t,title:r,value:Lp.oneOf(jQ.undisciminated({description:i,availability:a,nameOverride:e,generatedName:t,title:r,schemas:u,groupName:f,encoding:d,source:c})),description:i,availability:a,groupName:f}):Lp.oneOf(jQ.undisciminated({description:i,availability:a,nameOverride:e,generatedName:t,title:r,schemas:u,groupName:f,encoding:d,source:c}))}function H7n(e){if(e.default!=null&&typeof e.default=="string")return e.default}function eba({schema:e,logger:t,fallback:r}){if(e.example!=null&&typeof e.example=="number")return e.example;if(r&&typeof r=="number")return r;r&&t.warn(`Expected fallback to be a number, but got ${typeof r}`)}function spf({schema:e,logger:t,fallback:r}){if(e.example!=null&&typeof e.example=="boolean")return e.example;if(r&&typeof r=="boolean")return r;r&&t.warn(`Expected fallback to be a boolean, but got ${typeof r}`)}function FRt({schema:e,logger:t,fallback:r}){if(e.example!=null&&typeof e.example=="string")return e.example;if(r&&typeof r=="string")return r;r&&t.warn(`Expected fallback to be a string, but got ${typeof r}`)}function cpf({schema:e,logger:t,fallback:r}){if(e.example!=null&&Array.isArray(e.example))return e.example;if(r&&Array.isArray(r))return r;r&&t.warn(`Expected fallback to be a array, but got ${typeof r}`)}var Ben="#/components/schemas/";function L1(e,t,r,n,i,a,u=!1,f=new Set,d){let c=Dv1({schema:e,logger:r.logger});if(gy(e)){let o=C5r(e);return o!=null?(u?r.markSchemaAsReferencedByRequest(o):r.markSchemaAsReferencedByNonRequest(o),L7n(e,t,r,n,c,i,a)):T5r(r.resolveSchemaReference(e),t,r,Zva(e.$ref),c,i,a,f,u,d)}return T5r(e,t,r,n,c,i,a,f,u,d)}function L7n(e,t,r,n,i,a,u){let f=e.$ref.includes("properties")?T5r(r.resolveSchemaReference(e),t,r,n,i,a,u,new Set):Lp.reference(ofu(e,n,a));return t?Lp.nullable({title:void 0,nameOverride:void 0,generatedName:yR(n),value:f,description:void 0,availability:void 0,groupName:void 0}):f}function gv1(e){if(e!=null&&!e.includes(" ")&&!!/^[a-zA-Z]+$/.test(e))return e}function T5r(e,t,r,n,i,a,u,f=new Set,d=!1,c){var C;let o=Lh(e,kh.TYPE_NAME)??(r.options.useTitlesAsName?gv1(e.title):void 0),l=Lh(e,kh.SDK_GROUP_NAME)??((C=Lh(e,Yje.TAGS))==null?void 0:C[0]),g=(typeof l=="string"?[l]:l)??[];g=r.resolveGroupName(g);let O=yR(n),j=e.title,S=e.description,x=E2e(e),A=Lh(e,Yje.EXAMPLES),N=[];e.example!=null&&N.push({name:void 0,value:e.example,description:void 0}),A!=null&&Object.keys(A).length>0&&N.push(...Object.entries(A).map(([U,Y])=>({name:Y.summary??U,value:Y.value,description:Y.description})));let z=Ydf({schema:e,description:S,title:j,nameOverride:o,generatedName:O,availability:x});if(z!=null)return z;if(!t&&e.nullable===!0)return T5r(e,!0,r,n,i,a,u,f,d,c);if(e.enum!=null&&(e.type==="string"||e.type==null)){if(!A_i(e.enum))return L9({nameOverride:o,generatedName:O,title:j,primitive:by.string({default:H7n(e),minLength:e.minLength,maxLength:e.maxLength,pattern:e.pattern,format:e.format,example:FRt({schema:e,logger:r.logger,fallback:c})}),groupName:g,wrapAsNullable:t,description:S,availability:x});let U=Kdf(e);return e.enum.length===1&&e.enum[0]!=null&&U==null?rpf({nameOverride:o,generatedName:O,title:j,wrapAsNullable:t,value:e.enum[0],description:S,availability:x,groupName:g}):q5r({nameOverride:o,generatedName:O,title:j,fernEnum:U,enumVarNames:Lh(e,[Yje.ENUM_VAR_NAMES]),enumValues:e.enum,_default:e.default,description:S,availability:x,wrapAsNullable:t,groupName:g,context:r,source:a})}if(A_i(e.type)&&e.type[1]!=null&&e.type[0]!=null){let U=e.type[0],Y=e.type[1];if(U==="null")return Lp.nullable({nameOverride:o,generatedName:O,title:j,value:T5r({...e,type:Y},t,r,n,i,a,u,f,d,c),groupName:g,description:e.description,availability:x});if(Y==="null")return Lp.nullable({nameOverride:o,generatedName:O,title:j,value:T5r({...e,type:U},t,r,n,i,a,u,f,d,c),groupName:g,description:e.description,availability:x})}if(A_i(e.type)&&e.type.length>1){let U=e.type.includes("null"),Y=e.type.filter(te=>te!=="null").map(te=>({type:te,nullable:U}));return W7n({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,description:S,availability:x,wrapAsNullable:t,context:r,subtypes:Y,groupName:g,encoding:i,source:a,namespace:u})}if(e==="boolean"||e.type==="boolean"){let U=Lh(e,kh.BOOLEAN_LITERAL);return U!=null?fpf({nameOverride:o,generatedName:O,title:j,literal:E7.boolean(U),wrapAsNullable:t,description:S,availability:x,groupName:g}):L9({nameOverride:o,generatedName:O,title:j,primitive:by.boolean({default:e.default,example:spf({schema:e,logger:r.logger,fallback:c})}),wrapAsNullable:t,description:S,availability:x,groupName:g})}if(e==="number"||e.type==="number")return ifu({nameOverride:o,generatedName:O,title:j,format:e.format,_default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:zen(e.exclusiveMinimum),exclusiveMaximum:zen(e.exclusiveMaximum),multipleOf:e.multipleOf,description:S,availability:x,wrapAsNullable:t,example:eba({schema:e,logger:r.logger,fallback:c}),groupName:g});if(e==="integer"||e.type==="integer")return epf({nameOverride:o,generatedName:O,title:j,format:e.format,_default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:zen(e.exclusiveMinimum),exclusiveMaximum:zen(e.exclusiveMaximum),multipleOf:e.multipleOf,description:S,availability:x,wrapAsNullable:t,example:eba({schema:e,logger:r.logger,fallback:c}),groupName:g});if(e==="float")return ifu({nameOverride:o,generatedName:O,title:j,format:"float",_default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:zen(e.exclusiveMinimum),exclusiveMaximum:zen(e.exclusiveMaximum),multipleOf:e.multipleOf,description:S,availability:x,wrapAsNullable:t,example:eba({schema:e,logger:r.logger,fallback:c}),groupName:g});if(e==="string"||e.type==="string"){if(e.format==="date-time")return L9({nameOverride:o,generatedName:O,title:j,primitive:by.datetime({example:FRt({schema:e,logger:r.logger,fallback:c})}),wrapAsNullable:t,description:S,availability:x,groupName:g});if(e.format==="json-string")return Lp.unknown({nameOverride:o,generatedName:O,title:j,description:S,availability:x,groupName:g,example:void 0});let U=_pf(e,"const");return U!=null?fpf({nameOverride:o,generatedName:O,title:j,literal:E7.string(U),wrapAsNullable:t,description:S,availability:x,groupName:g}):L9({nameOverride:o,generatedName:O,title:j,primitive:by.string({default:H7n(e),pattern:e.pattern,format:e.format,minLength:e.minLength,maxLength:e.maxLength,example:FRt({schema:e,logger:r.logger,fallback:c})}),groupName:g,wrapAsNullable:t,description:S,availability:x})}if(e.type==="array")return Qdf({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,item:e.items,description:S,availability:x,wrapAsNullable:t,context:r,groupName:g,example:cpf({schema:e,logger:r.logger,fallback:c}),source:a,namespace:u});if(e.additionalProperties!=null&&e.additionalProperties!==!1&&lpf(e))return Xdf({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,additionalProperties:e.additionalProperties,description:S,availability:x,wrapAsNullable:t,context:r,groupName:g,encoding:i,example:e.example,source:a,namespace:u});if(e.type==="object"&&e.discriminator!=null&&e.discriminator.mapping!=null)return r.options.discriminatedUnionV2?ufu({nameOverride:o,generatedName:O,title:j,description:S,availability:x,wrapAsNullable:t,context:r,groupName:g,discriminator:e.discriminator,encoding:i,source:a,namespace:u}):rfu({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,description:S,availability:x,discriminator:e.discriminator,properties:e.properties??{},required:e.required,wrapAsNullable:t,context:r,groupName:g,encoding:i,source:a,namespace:u});if(Array.isArray(e.type)&&(e.oneOf==null?e.oneOf=e.type:e.oneOf.push(...e.type)),e.oneOf!=null&&e.oneOf.length>0){let U=Lh(e,kh.IS_UNDISCRIMINATED);if(e.discriminator!=null&&e.discriminator.mapping!=null&&Object.keys(e.discriminator.mapping).length>0)return r.options.discriminatedUnionV2||U?ufu({nameOverride:o,generatedName:O,title:j,description:S,availability:x,wrapAsNullable:t,context:r,groupName:g,discriminator:e.discriminator,encoding:i,source:a,namespace:u}):rfu({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,description:S,availability:x,discriminator:e.discriminator,properties:e.properties??{},required:e.required,wrapAsNullable:t,context:r,groupName:g,encoding:i,source:a,namespace:u});if(e.oneOf.length===1&&e.oneOf[0]!=null){let Y=L1(e.oneOf[0],t,r,n,a,u,d);return $7n(Y,S,g)}else if(e.oneOf.length>1){if(e.oneOf.length===2&&e.oneOf[0]!=null&&e.oneOf[1]!=null){let $=e.oneOf[0],ee=e.oneOf[1];if(!gy($)&&$.type==="null")return L1(ee,!0,r,n,a,u);if(!gy(ee)&&ee.type==="null")return L1($,!0,r,n,a,u)}let Y=Pv1({schemas:e.oneOf});if(Y!=null)return q5r({nameOverride:o,generatedName:O,title:j,fernEnum:void 0,enumVarNames:void 0,enumValues:Y,_default:e.default,description:S,availability:x,wrapAsNullable:t,groupName:g,context:r,source:a});let te=dpf({schemas:e.oneOf,context:r});if(te!=null&&!r.options.discriminatedUnionV2&&!U)return nfu({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,properties:e.properties??{},required:e.required,description:S,availability:x,wrapAsNullable:t,discriminant:te.discriminant,variants:te.schemas,context:r,groupName:g,encoding:i,source:a,namespace:u});let G=e.oneOf.filter($=>!gy($)&&$.type==="null").length>0;return W7n({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,description:S,availability:x,wrapAsNullable:t||G,context:r,subtypes:e.oneOf.filter($=>gy($)||$.type!=="null"),encoding:i,groupName:g,source:a,namespace:u})}}if(e.anyOf!=null&&e.anyOf.length>0){if(e.anyOf.length===1&&e.anyOf[0]!=null){let te=L1(e.anyOf[0],t,r,n,a,u,d);return $7n(te,S,g)}if(e.anyOf.length===2){let[te,G]=e.anyOf;if(te!=null&&G!=null){if(!gy(te)&&te.type==="null"){let $=L1(G,!0,r,n,a,u);return $7n($,S,g)}else if(!gy(G)&&G.type==="null"){let $=L1(te,!0,r,n,a,u);return $7n($,S,g)}}}let U=dpf({schemas:e.anyOf,context:r});if(U!=null&&!r.options.discriminatedUnionV2)return nfu({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,properties:e.properties??{},required:e.required,description:S,availability:x,wrapAsNullable:t,discriminant:U.discriminant,variants:U.schemas,context:r,groupName:g,encoding:i,source:a,namespace:u});let Y=e.anyOf.filter(te=>!gy(te)&&te.type==="null").length>0;return W7n({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,description:S,availability:x,wrapAsNullable:t||Y,context:r,subtypes:e.anyOf.filter(te=>gy(te)||te.type!=="null"),encoding:i,groupName:g,source:a,namespace:u})}if(e.allOf!=null||e.properties!=null){let U=[];for(let te of e.allOf??[])(gy(te)||Object.keys(te).length>0)&&U.push(te);if((e.properties==null||e.properties.length===0)&&U.length===1&&U[0]!=null){let te=L1(U[0],t,r,n,a,u,d);return $7n(te,S,g)}let Y=U.filter(te=>{let G=tba(te);return G||r.logger.warn(`Skipping non-object allOf element: ${JSON.stringify(te)}`),G});if((e.properties==null||e.properties.length===0)&&Y.length===1&&Y[0]!=null){let te=L1(Y[0],t,r,n,a,u,d);return $7n(te,S,g)}return apf({nameOverride:o,generatedName:O,title:j,breadcrumbs:n,properties:e.properties??{},description:S,required:e.required,wrapAsNullable:t,allOf:Y,context:r,propertiesToExclude:f,groupName:g,fullExamples:N,additionalProperties:e.additionalProperties,availability:x,encoding:i,source:a,namespace:u})}if(e.type==="object"&&mv1(e)&&Ov1(e)&&lpf(e))return Xva({nameOverride:o,generatedName:O,title:j,description:S,availability:x,wrapAsNullable:t,keySchema:{nameOverride:void 0,generatedName:`${O}Key`,title:void 0,description:void 0,availability:void 0,schema:by.string({default:H7n(e),pattern:e.pattern,format:e.format,minLength:e.minLength,maxLength:e.maxLength,example:FRt({schema:e,logger:r.logger,fallback:c})}),groupName:g},valueSchema:Lp.unknown({nameOverride:void 0,generatedName:`${O}Value`,title:void 0,description:void 0,availability:void 0,example:void 0,groupName:g}),groupName:g,encoding:i,example:e.example});if(e.type==null){let U=e.example??e.default;return Lp.unknown({nameOverride:o,generatedName:O,title:j,description:S,availability:x,groupName:g,example:U})}throw new Error(`Failed to convert schema breadcrumbs=${JSON.stringify(n)} value=${JSON.stringify(e)}`)}function C5r(e){if(!!e.$ref.startsWith(Ben))return e.$ref.replace(Ben,"")}function ofu(e,t,r){let n=Lh(e,kh.TYPE_NAME),i=yR(t),a=e.description,u=E2e(e),f=C5r(e);if(f==null)throw new Error(`Invalid schema reference ${JSON.stringify(e)}`);return ib.reference({generatedName:i,nameOverride:n,title:void 0,schema:f,description:a??void 0,availability:u,groupName:void 0,source:r})}function mv1(e){return e.oneOf==null||e.oneOf.length===0}function Ov1(e){return e.allOf==null||e.allOf.length===0}function lpf(e){return e.properties==null||Object.keys(e.properties).length===0}function A_i(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function $7n(e,t,r){return e.type==="reference"?Lp.reference({...e,description:t,availability:e.availability,groupName:r}):e.type==="optional"?Lp.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:e.value,description:t,availability:e.availability,groupName:r}):e.type==="nullable"?Lp.nullable({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:e.value,description:t,availability:e.availability,groupName:r}):e}function tba(e){return gy(e)||e.type==="object"||e.properties!=null?!0:e.allOf!=null?e.allOf.every(t=>tba(t)):e.oneOf!=null?e.oneOf.every(t=>tba(t)):e.anyOf!=null?e.anyOf.every(t=>tba(t)):!1}function fpf({literal:e,wrapAsNullable:t,groupName:r,description:n,availability:i,nameOverride:a,generatedName:u,title:f}){return t?Lp.nullable({nameOverride:a,generatedName:u,title:f,value:Lp.literal({nameOverride:a,generatedName:u,title:f,value:e,description:n,availability:i,groupName:r}),groupName:r,description:n,availability:i}):Lp.literal({nameOverride:a,generatedName:u,title:f,value:e,groupName:r,description:n,availability:i})}function L9({primitive:e,wrapAsNullable:t,groupName:r,description:n,availability:i,generatedName:a,nameOverride:u,title:f}){return r=typeof r=="string"?[r]:r,t?Lp.nullable({nameOverride:u,generatedName:a,title:f,value:Lp.primitive({nameOverride:u,generatedName:a,title:f,schema:e,description:n,availability:i,groupName:r}),groupName:r,description:n,availability:i}):Lp.primitive({nameOverride:u,generatedName:a,title:f,schema:e,description:n,availability:i,groupName:r})}function Pv1({schemas:e}){let t=new Set;for(let r of e){if(gy(r))return;if(r.enum!=null&&A_i(r.enum))r.enum.forEach(n=>t.add(n));else return}return Array.from(t)}function dpf({schemas:e,context:t}){let r={};for(let n of e){let i=ppf({schema:n,context:t});for(let[a,u]of Object.entries(i)){let f=r[a];f!=null?f[u]=n:r[a]={[u]:n}}}for(let[n,i]of Object.entries(r))if(Object.keys(i).length===e.length)return{discriminant:n,schemas:i}}function ppf({schema:e,context:t}){let r=gy(e)?t.resolveSchemaReference(e):e;return jv1({schema:r,context:t})}function jv1({schema:e,context:t}){let r={};if(e.anyOf!=null){for(let n of e.anyOf){let i=ppf({schema:n,context:t});for(let[a,u]of Object.entries(i??{}))r[a]=u}return r}for(let[n,i]of Object.entries(e.properties??{})){let a=gy(i)?t.resolveSchemaReference(i):i;a.type==="string"&&a.enum!=null&&A_i(a.enum)&&wv1(a.enum).length===1&&a.enum[0]!=null&&(r[n]=a.enum[0]);let u=_pf(a,"const");a.type==="string"&&u!=null&&(r[n]=u),n==="type"&&a.example!=null&&(r[n]=a.example)}return r}function wv1(e){if(!e)return[];let t=new Set;return e.forEach(r=>{typeof r=="string"?t.add(r.toLowerCase()):t.add(r)}),Array.from(t)}function _pf(e,t){let r=e[t];if(r!=null)return r}function Dv1({schema:e,logger:t}){let r=Gdf({schema:e,logger:t});if(r!=null)return kdf(r)}var hpf="#/components/messages/",sfu=class{logger;document;taskContext;DUMMY;options;namespace;constructor({document:t,taskContext:r,options:n,namespace:i}){this.document=t,this.taskContext=r,this.logger=r.logger,this.DUMMY=this,this.options=n,this.namespace=i}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveTags(t,r){if(this.namespace==null&&t==null&&r!=null)return[r];let n=[];if(this.namespace!=null){let i={type:"namespace",name:this.namespace};n.push(i)}return n.concat(t??[])}resolveSchemaReference(t){var a;if(this.document.components==null||this.document.components.schemas==null||!t.$ref.startsWith(Ben))throw new Error(`Failed to resolve ${t.$ref}`);let n=t.$ref.substring(Ben.length).split("/");if(n[0]==null)throw new Error(`${t.$ref} is undefined`);let i=this.document.components.schemas[n[0]];if(i==null)throw new Error(`${n[0]} is undefined`);if(gy(i)&&(i=this.resolveSchemaReference(i)),n[1]==="properties"&&n[2]!=null){let u=(a=i.properties)==null?void 0:a[n[2]];if(u==null)throw new Error(`${t.$ref} is undefiened. Property does not exist on object.`);gy(u)?i=this.resolveSchemaReference(u):i=u}return i}resolveMessageReference(t){if(this.document.components==null||this.document.components.messages==null||!t.$ref.startsWith(hpf))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(hpf.length),n=this.document.components.messages[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}},rba=class extends sfu{constructor({document:t,taskContext:r,options:n,namespace:i}){super({document:t,taskContext:r,options:n,namespace:i})}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}markReferencedByDiscriminatedUnion(t,r,n){}markSchemaWithDiscriminantValue(t,r,n){}};function A5r(e){if(typeof e=="string")return RP.primitive(t0.string(e));if(typeof e=="number")return Number.isInteger(e)?RP.primitive(t0.int(e)):RP.primitive(t0.double(e));if(typeof e=="boolean")return RP.primitive(t0.boolean(e));if(Array.isArray(e)){let t=e.map(r=>A5r(r));return t.length===0?void 0:RP.array(t.filter(r=>r!=null))}else if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string")){let t=[];for(let[r,n]of Object.entries(e)){let i=A5r(n);i!=null&&t.push({key:t0.string(r),value:i})}return RP.map(t)}}function N_i(e){if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string"))return e}function ypf(e){if(e!=null&&Array.isArray(e))return e}var J7n=class{schemas;constructor(t){this.schemas=t}buildExample({schema:t,exampleId:r,example:n,options:i}){return this.buildExampleHelper({schema:t,visitedSchemaIds:new Set,exampleId:r,example:n,options:{...i,maxCheckerDepth:i.maxCheckerDepth??5},depth:0})}buildExampleHelper({exampleId:t,example:r,schema:n,depth:i,visitedSchemaIds:a,options:u}){var f,d,c,o;switch(n.type){case"enum":return typeof r=="string"&&vpf({schema:n,value:r})?RP.enum(r):n.values[0]!=null?RP.enum((f=n.values[0])==null?void 0:f.value):void 0;case"literal":return RP.literal(n.value);case"nullable":{if(r==null&&!this.hasExample(n.value,0,a,u)&&(u.ignoreOptionals||this.exceedsMaxDepth(i,u)))return;let l=this.buildExampleHelper({schema:n.value,visitedSchemaIds:a,exampleId:t,example:r,depth:i,options:u});return l!=null&&l.type==="array"&&l.value.length===0||l!=null&&l.type==="map"&&l.value.length===0||l!=null&&l.type==="object"&&Object.keys(l.properties).length===0?void 0:l}case"optional":{if(r==null&&!this.hasExample(n.value,0,a,u)&&(u.ignoreOptionals||this.exceedsMaxDepth(i,u)))return;let l=this.buildExampleHelper({schema:n.value,visitedSchemaIds:a,exampleId:t,example:r,depth:i,options:u});return l!=null&&l.type==="array"&&l.value.length===0||l!=null&&l.type==="map"&&l.value.length===0||l!=null&&l.type==="object"&&Object.keys(l.properties).length===0?void 0:l}case"primitive":{let l=this.buildExampleFromPrimitive({schema:n.schema,example:r,options:u});return RP.primitive(l)}case"reference":{let l=this.schemas[n.schema];if(l!=null&&!a.has(n.schema)){a.add(n.schema);let g=this.buildExampleHelper({example:r,schema:l,exampleId:t,visitedSchemaIds:a,depth:i,options:u});return a.delete(n.schema),g}return}case"oneOf":switch(n.value.type){case"discriminated":{let l={},g={},O={},j=N_i(r),S=j==null?void 0:j[n.value.discriminantProperty],x=n.value.schemas[S],A=[],N=this.getDiscriminatedUnionVariantSchema(n.value,j);N!=null&&A.push(N),A.push(...Object.entries(n.value.schemas));for(let z of A)if(S!=null&&x!=null&&x.type==="object"){g=this.getAllProperties(x),O=this.getAllRequiredProperties(x),l[n.value.discriminantProperty]=RP.primitive(t0.string(S));break}else{let C=this.getObjectSchema(z[1]);if(C==null)continue;g=this.getAllProperties(C),O=this.getAllRequiredProperties(C),l[n.value.discriminantProperty]=RP.primitive(t0.string(z[0]))}for(let z of n.value.commonProperties){g[z.key]=z.schema;let C=this.getResolvedSchema(z.schema);C.type!=="optional"&&C.type!=="nullable"&&(O[z.key]=z.schema)}for(let[z,C]of Object.entries(g)){let U=z in O;if(U&&(j==null?void 0:j[z])!=null){let Y=this.buildExampleHelper({schema:C,exampleId:t,example:j[z],visitedSchemaIds:a,depth:i+1,options:u});if(Y!=null)l[z]=Y;else return}else{let Y=this.buildExampleHelper({exampleId:t,schema:C,example:j==null?void 0:j[z],visitedSchemaIds:a,depth:i+1,options:u});if(Y!=null)l[z]=Y;else if(U)return}}return RP.oneOf(y5r.discriminated(l))}case"undisciminated":{let l=this.getUnDiscriminatedUnionVariantSchema(n.value,r);if(l!=null)return this.buildExampleHelper({exampleId:t,example:r,schema:l,visitedSchemaIds:a,depth:i,options:u});break}}return;case"unknown":if(r!=null){let l=A5r(r);if(l!=null)return RP.unknown(l)}return u.ignoreOptionals||this.exceedsMaxDepth(i,u)?void 0:u.isParameter?RP.primitive(t0.string(u.name??"string")):RP.map([{key:t0.string("key"),value:RP.primitive(t0.string("value"))}]);case"array":{let l=ypf(r),g=[];if(l!=null&&l.length>0)for(let O of l){let j=this.buildExampleHelper({exampleId:t,example:O,schema:n.value,depth:i+1,visitedSchemaIds:a,options:u});j!=null&&g.push(j)}else if(n.example!=null&&n.example.length>0)for(let O of n.example){let j=this.buildExampleHelper({exampleId:t,example:O,schema:n.value,depth:i+1,visitedSchemaIds:a,options:u});j!=null&&g.push(j)}else{let O=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,depth:i+1,visitedSchemaIds:a,options:u});O!=null&&g.push(O)}return RP.array(g)}case"map":{let l=N_i(r??n.example);if(l!=null&&Object.entries(l).length>0){let j=[];for(let[S,x]of Object.entries(l)){let A=this.buildExampleFromPrimitive({schema:n.key.schema,example:S,options:u}),N=this.buildExampleHelper({exampleId:t,example:x,schema:n.value,visitedSchemaIds:a,depth:i+1,options:u});N!=null&&j.push({key:A,value:N})}return RP.map(j)}if(n.key.schema.type==="string"&&n.value.type==="unknown")return RP.map([{key:t0.string("key"),value:RP.unknown(RP.primitive(t0.string("value")))}]);let g=this.buildExampleFromPrimitive({schema:n.key.schema,example:void 0,options:{...u,name:"key"}}),O=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,visitedSchemaIds:a,depth:i+1,options:{...u,name:"value"}});return O!=null?RP.map([{key:g,value:O}]):RP.map([])}case"object":{let l={},g=((d=n.fullExamples)==null?void 0:d.find(x=>x.name===t))??((c=n.fullExamples)==null?void 0:c.find(x=>x.name==null))??((o=n.fullExamples)==null?void 0:o[0]),O=N_i(r)??(g!=null?N_i(g.value):{})??{},j=this.getAllProperties(n),S=this.getAllRequiredProperties(n);for(let[x,A]of Object.entries(j)){let N=x in S,z=Object.keys(O).includes(x),C=this.buildExampleHelper({schema:A,exampleId:t,example:O[x],visitedSchemaIds:a,depth:i+1,options:{...u,name:x}});if(N&&C!=null)l[x]=C;else{if(N)return;(z&&C!=null||!u.ignoreOptionals&&C!=null)&&(l[x]=C)}}return RP.object({properties:l})}default:Ol(n)}}getObjectSchema(t){if(t.type==="object")return t;if(t.type==="reference"){let r=this.schemas[t.schema];if(r!=null)return this.getObjectSchema(r)}}getDiscriminatedUnionVariantSchema(t,r){let n=r==null?void 0:r[t.discriminantProperty];if(n==null||typeof n!="string")return Object.entries(t.schemas)[0];let i=t.schemas[n];return i==null?Object.entries(t.schemas)[0]:[n,i]}getUnDiscriminatedUnionVariantSchema(t,r){var a;return r==null?t.schemas[0]:(a=t.schemas.map(u=>({schema:u,heuristic:this.calcExampleHeuristic(u,r)})).sort((u,f)=>f.heuristic-u.heuristic)[0])==null?void 0:a.schema}calcExampleHeuristic(t,r){switch(t.type){case"literal":return t.value.value===r?5:0;case"enum":return vpf({schema:t,value:r})?5:0;case"object":{if(!RO(r))return 0;let n=this.getAllProperties(t),i=0;for(let[a,u]of Object.entries(n))r[a]!=null?(i++,i+=this.calcExampleHeuristic(u,r[a])):i--;return i}case"array":{if(!Array.isArray(r))return 0;let n=0;for(let i of r)n+=this.calcExampleHeuristic(t.value,i);return n}case"map":{if(!RO(r))return 0;let n=0;for(let[,i]of Object.entries(r))n+=this.calcExampleHeuristic(t.value,i);return n}case"nullable":case"optional":return this.calcExampleHeuristic(t.value,r);case"reference":{let n=this.getResolvedSchema(t);return n==null?0:this.calcExampleHeuristic(n,r)}case"oneOf":return Object.values(t.value.schemas).map(i=>this.calcExampleHeuristic(i,r)).sort((i,a)=>a-i)[0]??0;case"primitive":return r==null?0:t.schema._visit({int:()=>typeof r=="number",int64:()=>typeof r=="number",uint:()=>typeof r=="number",uint64:()=>typeof r=="number",float:()=>typeof r=="number",double:()=>typeof r=="number",string:()=>typeof r=="string",datetime:()=>typeof r=="string",date:()=>typeof r=="string",base64:()=>typeof r=="string",boolean:()=>typeof r=="boolean",_other:()=>!0})?1:-1;default:return 0}}hasExample(t,r,n=new Set,i){if(this.exceedsMaxCheckerDepth(r,i))return!1;switch(t.type){case"array":return this.hasExample(t.value,r+1,n,i);case"enum":return t.example!=null;case"literal":return!1;case"map":return t.example!=null||t.key.schema.example!=null&&this.hasExample(t.value,r+1,n,i);case"object":{if(t.fullExamples!=null&&t.fullExamples.length>0)return!0;for(let u of t.properties)if(this.hasExample(u.schema,r+1,n,i))return!0;return!1}case"primitive":return t.schema.example!=null;case"reference":{let a=this.schemas[t.schema];if(a!=null&&!n.has(t.schema)){n.add(t.schema);let u=this.hasExample(a,r,n,i);return n.delete(t.schema),u}return!1}case"unknown":return t.example!=null;case"oneOf":return Object.values(t.value.schemas).some(a=>this.hasExample(a,r,n,i));default:return!1}}exceedsMaxCheckerDepth(t,r){return t>(r.maxCheckerDepth??0)}exceedsMaxDepth(t,r){return t>(r.maxDepth??0)}getAllProperties(t){let r={};for(let n of t.properties)r[n.key]=n.schema;for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let a=this.getResolvedSchema(i);a.type==="object"&&(r={...this.getAllProperties(a),...r})}return r}getAllRequiredProperties(t){let r={};for(let n of t.properties){let i=this.getResolvedSchema(n.schema);i.type!=="optional"&&i.type!=="nullable"&&(r[n.key]=n.schema)}for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let a=this.getResolvedSchema(i);a.type==="object"&&(r={...this.getAllRequiredProperties(a),...r})}return r}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new Error(`Unexpected error: Failed to resolve schema reference: ${t.schema}`);t=r}return t}buildExampleFromPrimitive({example:t,schema:r,options:n}){switch(r.type){case"string":return t!=null&&typeof t=="string"?t0.string(t):r.example!=null?t0.string(r.example):t0.string(n.name??SC.STRING);case"base64":return t!=null&&typeof t=="string"?t0.base64(t):r.example!=null?t0.base64(r.example):t0.base64(SC.BASE64);case"boolean":return t!=null&&typeof t=="boolean"?t0.boolean(t):r.example!=null?t0.boolean(r.example):t0.boolean(SC.BOOLEAN);case"date":return t!=null&&typeof t=="string"?t0.date(t):r.example!=null?t0.date(r.example):t0.date(SC.DATE);case"datetime":return t!=null&&typeof t=="string"?t0.datetime(t):r.example!=null?t0.datetime(r.example):t0.datetime(SC.DATE_TIME);case"double":return t!=null&&typeof t=="number"?t0.double(t):r.example!=null?t0.double(r.example):t0.double(SC.DOUBLE);case"float":return t!=null&&typeof t=="number"?t0.float(t):r.example!=null?t0.float(r.example):t0.float(SC.FLOAT);case"int":return t!=null&&typeof t=="number"?t0.int(t):r.example!=null?t0.int(r.example):t0.int(SC.INT);case"int64":return t!=null&&typeof t=="number"?t0.int64(t):r.example!=null?t0.int64(r.example):t0.int64(SC.INT64);case"uint":return t!=null&&typeof t=="number"?t0.uint(t):r.example!=null?t0.uint(r.example):t0.uint(SC.UINT);case"uint64":return t!=null&&typeof t=="number"?t0.uint64(t):r.example!=null?t0.uint64(r.example):t0.uint64(SC.UINT64);default:Ol(r)}}};function vpf({schema:e,value:t}){return e.values.map(r=>r.value).includes(t)}function LRt(e){switch(e.type){case"object":return Lp.object({allOf:e.allOf,properties:e.properties.map(t=>Ev1(t)),allOfPropertyConflicts:e.allOfPropertyConflicts,description:e.description,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,groupName:e.groupName,fullExamples:void 0,additionalProperties:e.additionalProperties,availability:e.availability,source:e.source});case"array":return Lp.array({description:e.description,availability:e.availability,value:LRt(e.value),generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,groupName:e.groupName,example:void 0});case"enum":return Lp.enum({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,values:e.values,default:e.default,groupName:e.groupName,example:void 0,source:e.source});case"literal":return Lp.literal({description:e.description,availability:e.availability,value:e.value,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,groupName:e.groupName});case"nullable":return Lp.nullable({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:LRt(e.value),groupName:e.groupName});case"optional":return Lp.optional({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:LRt(e.value),groupName:e.groupName});case"primitive":return Lp.primitive({description:e.description,availability:e.availability,schema:bpf(e.schema),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName});case"map":return Lp.map({description:e.description,availability:e.availability,key:Lp.primitive({description:e.key.description,availability:e.key.availability,schema:bpf(e.key.schema),generatedName:e.key.generatedName,nameOverride:e.key.nameOverride,title:e.key.title,groupName:e.groupName}),value:LRt(e.value),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,groupName:e.groupName,encoding:e.encoding,example:void 0});case"reference":return Lp.reference({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,schema:e.schema,groupName:e.groupName,source:e.source});case"oneOf":return Lp.oneOf(Sv1(e.value));case"unknown":return Lp.unknown({nameOverride:e.nameOverride,generatedName:e.generatedName,title:void 0,example:void 0,groupName:void 0,description:void 0,availability:void 0});default:Ol(e)}}function Sv1(e){switch(e.type){case"discriminated":return jQ.discriminated({commonProperties:e.commonProperties.map(t=>({key:t.key,schema:LRt(t.schema)})),description:e.description,availability:e.availability,discriminantProperty:e.discriminantProperty,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schemas:Object.fromEntries(Object.entries(e.schemas).map(([t,r])=>[t,LRt(r)])),groupName:e.groupName,encoding:e.encoding,source:e.source});case"undisciminated":return jQ.undisciminated({description:e.description,availability:e.availability,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schemas:e.schemas.map(t=>LRt(t)),groupName:e.groupName,encoding:e.encoding,source:e.source});default:Ol(e)}}function bpf(e){switch(e.type){case"string":return by.string({default:e.default,pattern:e.pattern,format:e.format,minLength:e.minLength,maxLength:e.maxLength,example:void 0});case"base64":return by.base64({example:void 0});case"boolean":return by.boolean({default:e.default,example:void 0});case"date":return by.date({example:void 0});case"datetime":return by.datetime({example:void 0});case"double":return by.double({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"float":return by.float({example:void 0});case"int":return by.int({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"int64":return by.int64({default:e.default,example:void 0});case"uint":return by.uint({default:void 0,example:void 0});case"uint64":return by.uint64({default:void 0,example:void 0});default:Ol(e)}}function Ev1(e){return{conflict:e.conflict,generatedName:e.generatedName,key:e.key,schema:LRt(e.schema),audiences:e.audiences,nameOverride:e.nameOverride,availability:e.availability}}function nba(e){return e.type!=="optional"&&e.type!=="nullable"}function z_i(e){if(e.type==="full")return e.request==null&&e.response==null&&e.queryParameters==null&&e.pathParameters==null&&e.headers==null;{let t=e.value;return t.request==null&&t.response==null&&t["query-parameters"]==null&&t["path-parameters"]==null&&t.headers==null}}var iba=class{exampleTypeFactory;logger;schemas;constructor(t,r){this.schemas=t,this.exampleTypeFactory=new J7n(t),this.logger=r}buildEndpointExample(t){this.logger.debug(`Building endpoint example for ${t.method.toUpperCase()} ${t.path}`);let r=xv1(t.request),n=Tv1(t.response);if((r==null?void 0:r.type)==="unsupported"||(n==null?void 0:n.type)==="unsupported")return[];let i=[];if(r!=null&&r.type==="present"){let l=this.isSchemaRequired(r.schema);if(r.examples.length===0){let g=this.exampleTypeFactory.buildExample({schema:r.schema,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});g!=null&&i.push([void 0,g])}else for(let{name:g,value:O}of r.examples){let j=this.exampleTypeFactory.buildExample({schema:r.schema,exampleId:g,example:O,options:{isParameter:!1,ignoreOptionals:!0}});j!=null&&i.push([g,j])}if(l&&i.length===0)return this.logger.warn(`Failed to generate required request example for ${t.method.toUpperCase()} ${t.path}`),[]}let a=[];if(n!=null&&n.type==="present"){let l=this.isSchemaRequired(n.schema);if(n.examples.length===0){let g=this.exampleTypeFactory.buildExample({schema:n.schema,exampleId:void 0,example:void 0,options:{maxDepth:3,isParameter:!1,ignoreOptionals:!1}});g!=null&&a.push([void 0,g])}else for(let{name:g,value:O}of n.examples){let j=this.exampleTypeFactory.buildExample({schema:n.schema,exampleId:g,example:O,options:{maxDepth:3,isParameter:!1,ignoreOptionals:!1}});j!=null&&a.push([g,j])}if(l&&a.length===0)return this.logger.warn(`Failed to generate required response example for ${t.method.toUpperCase()} ${t.path}`),[]}let u=[];for(let l of t.pathParameters){let g=this.isSchemaRequired(l.schema),O=this.exampleTypeFactory.buildExample({schema:l.schema,exampleId:void 0,example:void 0,options:{name:l.name,isParameter:!0,ignoreOptionals:!0}});if(O!=null&&!URt(O)&&(this.logger.warn(`Expected a primitive example but got ${O.type} for path parameter ${l.name} for ${t.method.toUpperCase()} ${t.path}`),O=void 0),g&&O==null)return[];O!=null&&u.push({name:l.name,parameterNameOverride:l.parameterNameOverride,value:O})}let f=[];for(let l of t.queryParameters){let g=this.isSchemaRequired(l.schema),O=this.exampleTypeFactory.buildExample({schema:l.schema,exampleId:void 0,example:void 0,options:{name:l.name,isParameter:!0,ignoreOptionals:!0}});if(O!=null&&!URt(O)&&(this.logger.warn(`Expected a primitive example but got ${O.type} for query parameter ${l.name} for ${t.method.toUpperCase()} ${t.path}`),O=void 0),g&&O==null)return[];O!=null&&f.push({name:l.name,value:O})}let d=[];for(let l of t.headers){let g=this.isSchemaRequired(l.schema),O=this.exampleTypeFactory.buildExample({schema:l.schema,exampleId:void 0,example:void 0,options:{name:l.name,isParameter:!0,ignoreOptionals:!0}});if(O!=null&&!URt(O)&&(this.logger.warn(`Expected a primitive example but got ${O.type} for header ${l.name} for ${t.method.toUpperCase()} ${t.path}`),O=void 0),g&&O==null)return[];O!=null&&d.push({name:l.name,value:O})}let c=[];t.request!=null&&t.response!=null?c=Mv1(i,a):t.request!=null?c=i.map(([l,g])=>({id:l,request:g,response:void 0})):t.response!=null&&(c=a.map(([l,g])=>({id:l,request:void 0,response:g})));let o=t.examples.filter(l=>z_i(l)).flatMap(l=>{if(l.type==="unknown"){if(l.value!=null){let g=l.value["code-samples"];if(g!=null)return this.convertCodeSamples(g)}return}else return l.codeSamples}).filter(l=>RS(l));return c.length===0?[dAt.full({name:void 0,description:void 0,pathParameters:u,queryParameters:f,headers:d,request:void 0,response:void 0,codeSamples:o})]:c.map(({id:l,request:g,response:O})=>dAt.full({name:l,description:void 0,pathParameters:u,queryParameters:f,headers:d,request:g,response:O,codeSamples:o}))}convertCodeSamples(t){return t.map(r=>"language"in r?JSr.language({name:r.name??void 0,description:r.docs??void 0,language:r.language,code:r.code,install:r.install??void 0}):JSr.sdk({name:r.name??void 0,description:r.docs??void 0,sdk:r.sdk==="c#"?yW.Csharp:r.sdk,code:r.code})).filter(RS)}isSchemaRequired(t){return nba(this.getResolvedSchema(t))}getResolvedSchema(t){return t}};function Mv1(e,t){var i,a,u,f;let r=[];if(e.length<=1){let[d,c]=e[0]??[];if(t.length===0)return r.push({id:d,request:c,response:void 0}),r;for(let[o,l]of t)r.push({id:o??d,request:c,response:l});return r}if(t.length<=1){let[d,c]=t[0]??[];if(t.length===0)return r.push({id:d,request:void 0,response:c}),r;for(let[o,l]of e)r.push({id:o??d,request:l,response:c});return r}let n=new Set;for(let[d,c]of e){let o=((i=t.find(([g])=>g==null))==null?void 0:i[1])??((a=t[0])==null?void 0:a[1]);if(d==null){if(o==null)continue;r.push({id:void 0,request:c,response:o});continue}let l=!1;for(let g=0;g<t.length;g++){let[O,j]=t[g];O!=null||n.has(g)||d===O&&(r.push({id:d,request:c,response:j}),O!=null&&n.add(g),l=!0)}!l&&o!=null&&r.push({id:d,request:c,response:o})}for(let d=0;d<t.length;d++){if(n.has(d))continue;let[c,o]=t[d],l=((u=e.find(([g])=>g==null))==null?void 0:u[1])??((f=e[0])==null?void 0:f[1]);l!=null&&r.push({id:c,request:l,response:o})}return r}function xv1(e){if(e!=null)return e.type==="multipart"?{type:"present",schema:qv1(e),examples:[]}:e.type==="json"?{type:"present",schema:e.schema,examples:e.fullExamples??[]}:{type:"unsupported"}}function Tv1(e){if(e!=null)return e.type!=="json"?{type:"unsupported"}:{type:"present",schema:e.schema,examples:e.fullExamples??[]}}function URt(e){switch(e.type){case"primitive":case"enum":case"literal":return!0;case"unknown":return URt(e);case"array":case"object":case"map":return!1;case"oneOf":switch(e.value.type){case"discriminated":return!1;case"undisciminated":return URt(e.value.value);default:return!1}default:Ol(e)}}function qv1(e){return Lp.object({properties:e.properties.map(t=>t.schema.type==="file"?null:{key:t.key,schema:LRt(t.schema.value),audiences:[],conflict:{},generatedName:t.key,nameOverride:void 0,availability:void 0}).filter(RS),allOf:[],allOfPropertyConflicts:[],fullExamples:void 0,description:e.description,nameOverride:void 0,generatedName:"",title:void 0,groupName:void 0,additionalProperties:!1,availability:void 0,source:e.source})}var aba=class{exampleTypeFactory;schemas;constructor(t,r){this.exampleTypeFactory=new J7n(t),this.schemas=t}buildWebsocketSessionExamplesForExtension({context:t,extensionExamples:r,publish:n,subscribe:i,handshake:a,source:u,namespace:f}){var c,o;let d=[];for(let l of r){let g=[];for(let S of a.queryParameters){let x=this.isSchemaRequired(S.schema),A=this.exampleTypeFactory.buildExample({schema:S.schema,exampleId:void 0,example:(c=l.queryParameters)==null?void 0:c[S.name],options:{name:S.name,isParameter:!0,ignoreOptionals:!0}});A!=null&&!URt(A)&&(A=void 0),!(x&&A==null)&&A!=null&&g.push({name:S.name,value:A})}let O=[];for(let S of a.headers){let x=this.isSchemaRequired(S.schema),A=this.exampleTypeFactory.buildExample({schema:S.schema,exampleId:void 0,example:(o=l.headers)==null?void 0:o[S.name],options:{name:S.name,isParameter:!0,ignoreOptionals:!0}});A!=null&&!URt(A)&&(A=void 0),!(x&&A==null)&&A!=null&&O.push({name:S.name,value:A})}let j=[];for(let S of l.messages){let x=t.resolveMessageReference({$ref:`#/components/messages/${S.messageId}`}),A=gy(x.payload)?t.resolveSchemaReference(x.payload):x.payload,N=this.exampleTypeFactory.buildExample({schema:L1(A,!1,t,[S.messageId],u,f),exampleId:void 0,example:S.value,options:{isParameter:!1,ignoreOptionals:!0}});N!=null&&j.push({messageType:S.type,payload:N,description:void 0})}d.push({name:l.summary,queryParameters:g,headers:O,description:l.description,messages:j})}return d}buildWebsocketSessionExample({publish:t,subscribe:r,handshake:n}){let i={name:void 0,queryParameters:[],headers:[],description:void 0,messages:[]},a=[];for(let f of n.queryParameters){let d=this.isSchemaRequired(f.schema),c=this.exampleTypeFactory.buildExample({schema:f.schema,exampleId:void 0,example:void 0,options:{name:f.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!URt(c)&&(c=void 0),d&&c==null)return;c!=null&&a.push({name:f.name,value:c})}let u=[];for(let f of n.headers){let d=this.isSchemaRequired(f.schema),c=this.exampleTypeFactory.buildExample({schema:f.schema,exampleId:void 0,example:void 0,options:{name:f.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!URt(c)&&(c=void 0),d&&c==null)return;c!=null&&u.push({name:f.name,value:c})}if(t!=null){let f=this.exampleTypeFactory.buildExample({schema:t,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});f!=null&&i.messages.push({messageType:"publish",payload:f,description:void 0})}if(r!=null){let f=this.exampleTypeFactory.buildExample({schema:r,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});f!=null&&i.messages.push({messageType:"subscribe",payload:f,description:void 0})}return i}isSchemaRequired(t){return nba(this.getResolvedSchema(t))}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new Error(`Unexpected error: Failed to resolve schema reference: ${t.schema}`);t=r}return t}};var B_i={FERN_DISPLAY_NAME:"x-fern-display-name",FERN_EXAMPLES:"x-fern-examples",BASE_PATH:"x-fern-base-path"};function gpf(e){return Lh(e,B_i.FERN_EXAMPLES)??[]}function Opf({document:e,taskContext:t,options:r,source:n,asyncApiOptions:i,namespace:a}){var l,g,O,j,S,x;let u=[];a!=null&&u.push(a),((l=e.tags)==null?void 0:l[0])!=null?u.push(e.tags[0].name):i.naming!=="v2"&&u.push("websocket");let f=new rba({document:e,taskContext:t,options:r,namespace:a}),d={},c;for(let[A,N]of Object.entries(((g=e.components)==null?void 0:g.schemas)??{})){let z=L1(N,!1,f,[A],n,a);d[A]=z}let o=new aba(d,t.logger);for(let[A,N]of Object.entries(e.channels??{})){if(((O=N.bindings)==null?void 0:O.ws)==null){f.logger.error(`Channel ${A} does not have websocket bindings. Skipping.`);continue}let z=[];if(N.parameters!=null)for(let[G,$]of Object.entries(N.parameters??{}))z.push({name:G,description:$.description,parameterNameOverride:void 0,schema:$.schema!=null?L1($.schema,!1,f,u,n,a):Lp.primitive({schema:by.string({default:void 0,pattern:void 0,format:void 0,maxLength:void 0,minLength:void 0,example:void 0}),description:void 0,availability:void 0,generatedName:"",title:void 0,groupName:void 0,nameOverride:void 0}),variableReference:void 0,availability:E2e($),source:n});let C=[];if(N.bindings.ws.headers!=null){let G=N.bindings.ws.headers.required??[];for(let[$,ee]of Object.entries(N.bindings.ws.headers.properties??{})){let Ve=gy(ee)?f.resolveSchemaReference(ee):ee;C.push({name:$,schema:L1(Ve,!G.includes($),f,u,n,a),description:Ve.description,parameterNameOverride:void 0,env:void 0,availability:E2e(Ve),source:n})}}let U=[];if(N.bindings.ws.query!=null){let G=N.bindings.ws.query.required??[];for(let[$,ee]of Object.entries(N.bindings.ws.query.properties??{})){let Ve=gy(ee)?f.resolveSchemaReference(ee):ee;U.push({name:$,schema:L1(Ve,!G.includes($),f,u,n,a),description:Ve.description,parameterNameOverride:void 0,availability:E2e(Ve),source:n})}}let Y;N.publish!=null&&(Y=mpf({generatedName:N.publish.operationId??"PublishEvent",event:N.publish,breadcrumbs:u,context:f,source:n,options:r,asyncApiOptions:i}));let te;if(N.subscribe!=null&&(te=mpf({generatedName:N.subscribe.operationId??"SubscribeEvent",event:N.subscribe,breadcrumbs:u,context:f,source:n,options:r,asyncApiOptions:i})),C.length>0||U.length>0||Y!=null||te!=null){let G=gpf(N),$=[];if(G.length>0)$=o.buildWebsocketSessionExamplesForExtension({context:f,extensionExamples:G,handshake:{headers:C,queryParameters:U},publish:Y,subscribe:te,source:n,namespace:a});else{let Ve=o.buildWebsocketSessionExample({handshake:{headers:C,queryParameters:U},publish:Y,subscribe:te});Ve!=null&&$.push(Ve)}let ee=((S=(j=e.tags)==null?void 0:j[0])==null?void 0:S.name)!=null?[(x=e.tags)==null?void 0:x[0].name]:void 0;c={handshake:{headers:C.map(Ve=>({...Ve,schema:z2(Ve.schema),env:Ve.env})),queryParameters:U.map(Ve=>({...Ve,schema:z2(Ve.schema)})),pathParameters:z.map(Ve=>({...Ve,parameterNameOverride:void 0,schema:z2(Ve.schema)}))},groupName:f.resolveTags(ee,"Websocket"),publish:Y!=null?z2(Y):Y,subscribe:te!=null?z2(te):te,summary:Lh(N,B_i.FERN_DISPLAY_NAME),path:A,description:void 0,examples:$,source:n};break}}return{schemas:Object.fromEntries(Object.entries(d).map(([A,N])=>[A,z2(N)])),channel:c,basePath:Lh(e,B_i.BASE_PATH)}}function mpf({generatedName:e,event:t,context:r,breadcrumbs:n,source:i,options:a,asyncApiOptions:u}){if(t.message.oneOf!=null){let f=[],d=[];for(let c of t.message.oneOf){let o,l={type:"notFound"};if(gy(c)){let g=r.resolveMessageReference(c);!gy(g.payload)&&u.naming==="v2"?(l=g.name?{type:"name",name:g.name}:l,o={...g.payload,title:g.name??g.payload.title,description:g.name??g.payload.description}):o=g.payload}else o=c;d.push(l),f.push(o)}return W7n({description:t.description??t.message.description,availability:E2e(t.message),subtypes:f,nameOverride:t.operationId,generatedName:e,title:t.message.title,groupName:void 0,wrapAsNullable:!1,breadcrumbs:n,context:r,encoding:void 0,source:i,namespace:r.namespace,subtypePrefixOverrides:u.naming==="v2"?d:[]})}}var MEf=yu(Abf(),1);var ztn=yu(DEf(),1);var SEf=require("fs/promises");async function yPa({absoluteFilepathToOverrides:e,data:t,context:r}){let n=null;try{let u=(await(0,SEf.readFile)(e,"utf8")).toString();try{n=JSON.parse(u)}catch{n=av.load(u,{json:!0})}}catch{return r.failAndThrow(`Failed to read overrides from file ${e}`)}let i=MXi(t,MXi,n,(u,f)=>Array.isArray(u)&&Array.isArray(f)?f.every(d=>typeof d=="object")&&u.every(d=>typeof d=="object")?void 0:[...f]:void 0);return Nbu(i,fWo)}var Nbu=(e,t)=>{function r(n){if(!Array.isArray(n)&&!zsi(n))return n;if(Array.isArray(n))return n.map(a=>Nbu(a,t));let i={};for(let[a,u]of Object.entries(n))i[a]=Nbu(u,t);return _Wo(i,t)}return r(e)};var _H1={properties:{"stream-condition":{type:"string"},response:"Schema","response-stream":"Schema"},required:["stream-condition","response","response-stream"],extensionsPrefix:"x-"},hH1={id:"",typeExtension:{oas3:e=>{var t;return{...e,XFernStreaming:_H1,Operation:{...e.Operation,properties:{...(t=e.Operation)==null?void 0:t.properties,"x-fern-streaming":"XFernStreaming"}}}}}};async function xEf({absolutePathToOpenAPI:e,absolutePathToOpenAPIOverrides:t,context:r}){let n=await EEf({absolutePathToOpenAPI:e}),i;if(t!=null?i=t:typeof n=="object"&&n[kh.OPENAPI_OVERIDES_FILEPATH]!=null&&(i=Tf(Hg(e),Ws.of(n[kh.OPENAPI_OVERIDES_FILEPATH]))),i!=null){let a=await yPa({absoluteFilepathToOverrides:i,context:r,data:n});return await EEf({absolutePathToOpenAPI:e,parsed:a})}return n}async function EEf({absolutePathToOpenAPI:e,parsed:t}){let r={config:new ztn.Config({apis:{},styleguide:{plugins:[hH1],rules:{spec:"warn"}}},void 0),dereference:!1,removeUnusedComponents:!1,keepUrlRefs:!0},n=t!=null?await(0,ztn.bundle)({...r,doc:{source:new ztn.Source(e,"<openapi>"),parsed:t}}):await(0,ztn.bundle)({...r,ref:e});return await MEf.default.parse(n.bundle.parsed)}var jqf=yu(q2f(),1);function C2f(e){return Lh(e,kh.ASYNC_CONFIG)}var A2f="$request.";function N2f(e){let t=Lh(e,kh.STREAMING);if(t!=null)return typeof t=="boolean"?t?{type:"stream",format:"json"}:void 0:t["stream-condition"]==null&&t.format!=null?{type:"stream",format:t.format}:{type:"streamCondition",format:t.format??"json",streamConditionProperty:EX1(t["stream-condition"]),responseStream:t["response-stream"],response:t.response}}function EX1(e){return e.startsWith(A2f)?e.slice(A2f.length):e}function z2f(e){let t=e;if(t.cursor!=null)return $Sr.cursor({cursor:t.cursor,nextCursor:t.next_cursor,results:t.results});let r=e;return $Sr.offset({offset:r.offset,results:r.results,step:r.step,hasNextPage:r["has-next-page"]})}function B2f(e,t){let r=Lh(t,kh.PAGINATION);if(r!=null){if(typeof r=="boolean"){let n=Lh(e,kh.PAGINATION);if(typeof n=="boolean")throw new Error("Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.");return n==null?void 0:z2f(n)}return z2f(r)}}function I2f(e){let t=MX1(e),r={};return zmu({obj:t,occurrences:r,breadcrumbs:[]}),r}function zmu({obj:e,occurrences:t,breadcrumbs:r}){if(e!=null){if(Array.isArray(e)){for(let n of e)zmu({obj:n,occurrences:t,breadcrumbs:r});return}if(typeof e=="object"){if(e.$ref!=null&&typeof e.$ref=="string"){let n=e.$ref;t[n]==null?t[n]=1:t[n]+=1;return}for(let n in e)zmu({obj:e[n],occurrences:t,breadcrumbs:[...r,n]})}}}function MX1(e){return{...e,paths:Object.fromEntries(Object.entries(e.paths??{}).map(([t,r])=>[t,{...r,get:(r==null?void 0:r.get)!=null?M0i(r.get):void 0,put:(r==null?void 0:r.put)!=null?M0i(r.put):void 0,post:(r==null?void 0:r.post)!=null?M0i(r.post):void 0,patch:(r==null?void 0:r.patch)!=null?M0i(r.patch):void 0,delete:(r==null?void 0:r.delete)!=null?M0i(r.delete):void 0}]))}}function M0i(e){return{...e,requestBody:e.requestBody!=null?gy(e.requestBody)?e.requestBody:xX1(e.requestBody):void 0}}function xX1(e){let t,r;for(let n in e.content){let i=cA.parse(n);i!=null&&(i.isJSON()?t=e.content[n]:i.isMultipart()&&(r=e.content[n]))}return r!=null&&t!=null?{...e,content:{[cA.MULTIPART_FORM_DATA]:r}}:e}var R2f="#/components/parameters/",F2f="#/components/responses/",L2f="#/components/examples/",U2f="#/components/requestBodies/",I3n=class{logger;document;taskContext;authHeaders;refOccurrences;DUMMY;options;source;namespace;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:a,namespace:u}){this.document=t,this.logger=r.logger,this.taskContext=r,this.authHeaders=n,this.refOccurrences=I2f(t),this.options=i,this.source=a,this.DUMMY=this.getDummy(),this.namespace=u}getNumberOfOccurrencesForRef(t){return this.refOccurrences[t.$ref]??0}resolveTagsToTagIds(t){let r=[];return this.namespace!=null&&r.push(this.namespace),r.concat(t??[])}resolveTags(t){let r=[];if(this.namespace!=null){let n={type:"namespace",name:this.namespace};r.push(n)}return r.concat(t??[])}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveSchemaReference(t){let r=t.$ref.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return{"x-fern-type":"unknown",additionalProperties:!0};n=n[i]}return n==null?{"x-fern-type":"unknown",additionalProperties:!0}:(gy(n)&&(n=this.resolveSchemaReference(n)),n)}resolveParameterReference(t){if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(R2f))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(R2f.length),n=this.document.components.parameters[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return gy(n)?this.resolveParameterReference(n):n}resolveRequestBodyReference(t){if(this.document.components==null||this.document.components.requestBodies==null||!t.$ref.startsWith(U2f))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(U2f.length),n=this.document.components.requestBodies[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return gy(n)?this.resolveRequestBodyReference(n):n}resolveResponseReference(t){if(this.document.components==null||this.document.components.responses==null||!t.$ref.startsWith(F2f))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(F2f.length),n=this.document.components.responses[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return gy(n)?this.resolveResponseReference(n):n}resolveExampleReference(t){if(this.document.components==null||this.document.components.examples==null||!t.$ref.startsWith(L2f))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(L2f.length),n=this.document.components.examples[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return gy(n)?this.resolveExampleReference(n):n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}};var R3n=class extends I3n{constructor({document:t,taskContext:r,options:n,source:i,namespace:a}){super({document:t,taskContext:r,authHeaders:new Set,options:n,source:i,namespace:a})}getDummy(){return this}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}getReferencedSchemas(){return new Set}markReferencedByDiscriminatedUnion(t,r,n){}getReferencesFromDiscriminatedUnion(t){}excludeSchema(t){}isSchemaExcluded(t){return!1}markSchemaWithDiscriminantValue(t,r,n){}getDiscriminatedUnionMetadata(t){}};var TX1=ir.object({lang:ir.string(),label:ir.optional(ir.string()),source:ir.string()}),Bmu=ir.array(TX1);var V2f={README_EXT:"x-readme"};function qX1(e){if(!Array.isArray(e))return!1;for(let t of e)if(!RO(t)||typeof t.language!="string"||typeof t.code!="string")return!1;return!0}function W2f(e){let t=Lh(e,V2f.README_EXT);if(!RO(t))return[];let r=t["code-samples"];if(!qX1(r))return[];let n=[];for(let i of r)n.push({name:i.name,language:i.language,code:i.code,install:i.install,docs:void 0});return n}function H2f(e,t,r){let n=IRt(t,kh.EXAMPLES,h5.ExampleEndpointCallArraySchema,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],i=IRt(t,Yje.REDOCLY_CODE_SAMPLES_KEBAB,Bmu,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],u=[...IRt(t,Yje.REDOCLY_CODE_SAMPLES_CAMEL,Bmu,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],...i];u.length>0&&n.push({"code-samples":u.map(d=>({name:d.label??d.lang,language:d.lang,code:d.source,install:void 0,docs:void 0}))});let f=W2f(t);return f.length>0&&n.push({"code-samples":f}),n.map(dAt.unknown)}function $2f(e){let t=Lh(e,kh.AVAILABILITY);if(t==="ga"||t==="generally-available")return hW.GenerallyAvailable;if(t==="beta"||t==="pre-release")return hW.Beta;if(t==="deprecated")return hW.Deprecated;if(e.deprecated)return hW.Deprecated}function P1a(e){return{url:CX1({url:e.url,variables:e.variables??{}}),description:e.description,name:AX1(e),audiences:Lh(e,kh.AUDIENCES)}}function CX1({url:e,variables:t}){let r=Object.fromEntries(Object.entries(t).map(([n,i])=>[n,i.default]));for(let[n,i]of Object.entries(r))e=e.replace(`{${n}}`,i);return e}function AX1(e){var r,n;let t=Lh(e,[kh.SERVER_NAME_V1,kh.SERVER_NAME_V2]);if(t!=null)return t;if(((r=e.description)==null?void 0:r.toLowerCase())==="production")return"Production";if(((n=e.description)==null?void 0:n.toLowerCase())==="sandbox")return"Sandbox"}function J2f(e){return Lh(e,kh.PARAMETER_NAME)}function G2f(e){return Lh(e,kh.SDK_VARIABLE)}function j1a({path:e,httpMethod:t,parameters:r,context:n,requestBreadcrumbs:i,source:a}){var f;let u={pathParameters:[],queryParameters:[],headers:[]};for(let d of r){let c=gy(d)?n.resolveParameterReference(d):d,o=c.required??!1,l=E2e(c),g=[...i,c.name],O=yR(g);(f=FRt({schema:c,logger:n.logger}))!=null&&f.includes(" ")&&n.logger.warn("Parameter example contains a space, which is ambiguous. Consider using enums for multiple examples, or use an encoding if a space is part of the parameter.");let j=c.schema!=null?L1(c.schema,!o,n,g,a,n.namespace,!1,new Set,FRt({schema:c,logger:n.logger})):o?Lp.primitive({nameOverride:void 0,generatedName:O,title:void 0,schema:by.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:FRt({schema:c,logger:n.logger})}),description:void 0,availability:l,groupName:void 0}):Lp.optional({nameOverride:void 0,generatedName:O,title:void 0,value:Lp.primitive({nameOverride:void 0,generatedName:O,title:void 0,schema:by.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:FRt({schema:c,logger:n.logger})}),description:void 0,availability:void 0,groupName:void 0}),description:void 0,availability:l,groupName:void 0});if(c.in==="header"&&c.schema!=null&&!gy(c.schema)&&c.schema.default!=null){let x=c.schema.default;typeof x=="string"&&x.length>0&&(j=Lp.literal({nameOverride:void 0,generatedName:O,title:void 0,value:E7.string(x),description:void 0,availability:l,groupName:void 0}))}let S={name:c.name,schema:j,description:c.description,parameterNameOverride:J2f(c),availability:l,source:a};c.in==="query"?u.queryParameters.push(S):c.in==="path"?u.pathParameters.push({...S,variableReference:G2f(c)}):c.in==="header"?!NX1.has(c.name)&&!n.authHeaders.has(c.name)?u.headers.push({...S,env:void 0}):n.logger.debug(`Ignoring ${c.name} header, in ${t.toUpperCase()} ${e}`):n.logger.warn(`Skipping ${c.in} parameter, ${c.name}, in ${t.toUpperCase()} ${e}`)}return u}var NX1=new Set(["User-Agent","Content-Length","Content-Type","X-Forwarded-For","Cookie","Origin","Content-Disposition","X-Ping-Custom-Domain"]);function F3n(e,t){for(let r of Object.keys(e))if(r.includes("json")){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:Y2f(n,t)}}}function K2f(e,t){for(let r of Object.keys(e)){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:Y2f(n,t)}}}function Y2f(e,t){let r=[];e.example!=null&&r.push({name:void 0,value:e.example,description:void 0});let n=Lh(e,Yje.EXAMPLES);return n!=null&&Object.keys(n).length>0&&r.push(...Object.entries(n).map(([i,a])=>({name:a.summary??i,value:a.value,description:a.description}))),e.examples!=null&&Object.keys(e.examples).length>0&&r.push(...Object.entries(e.examples).map(([i,a])=>{let u=gy(a)?t.resolveExampleReference(a):a;return{name:u.summary??i,value:u.value,description:u.description}})),r}function zX1(e){var t;for(let[r,n]of Object.entries(e.content))if((t=cA.parse(r))!=null&&t.isMultipart())return n.schema}function BX1(e){var t;for(let r in e.content)if((t=cA.parse(r))!=null&&t.isOctetStream())return!0;return!1}function IX1(e,t){let r=gy(e)?Imu(e,t):{id:void 0,schema:e};return Object.entries(r.schema.properties??{}).find(([n,i])=>!gy(i)&&i.type==="string"&&i.format==="binary")!=null}function L3n({requestBody:e,document:t,context:r,requestBreadcrumbs:n,source:i,namespace:a}){let u=gy(e)?r.resolveRequestBodyReference(e):e,f=zX1(u),d=F3n(u.content,r);if(BX1(u))return S2e.octetStream({description:void 0,source:i});if(f!=null&&d==null||f!=null&&IX1(f,t)){let o=gy(f)?Imu(f,t):{id:void 0,schema:f},l=L1(o.schema,!1,r,n,i,a),g=[];if(l.type==="object")for(let O of l.properties){if(O.schema.type==="primitive"&&O.schema.schema.type==="string"&&O.schema.schema.format==="binary"){g.push({key:O.key,schema:D2e.file({isOptional:!1,isArray:!1}),description:O.schema.description});continue}if(O.schema.type==="optional"&&O.schema.value.type==="primitive"&&O.schema.value.schema.type==="string"&&O.schema.value.schema.format==="binary"){g.push({key:O.key,schema:D2e.file({isOptional:!0,isArray:!1}),description:O.schema.description});continue}if(O.schema.type==="array"&&O.schema.value.type==="primitive"&&O.schema.value.schema.type==="string"&&O.schema.value.schema.format==="binary"){g.push({key:O.key,schema:D2e.file({isOptional:!1,isArray:!0}),description:O.schema.description});continue}if(O.schema.type==="optional"&&O.schema.value.type==="array"&&O.schema.value.value.type==="primitive"&&O.schema.value.value.schema.type==="string"&&O.schema.value.value.schema.format==="binary"){g.push({key:O.key,schema:D2e.file({isOptional:!0,isArray:!0}),description:O.schema.description});continue}g.push({key:O.key,schema:D2e.json(O.schema),description:void 0})}return S2e.multipart({name:gy(f)&&r.getNumberOfOccurrencesForRef(f)===1?o.id:void 0,description:void 0,properties:g,source:i})}if(d==null)return;let c=L1(d.schema,!1,r,n,i,a,!0);return S2e.json({description:void 0,schema:c,contentType:void 0,fullExamples:d.examples,additionalProperties:!gy(d.schema)&&F7n(d.schema.additionalProperties),source:i})}function Imu(e,t){var i,a;if(!e.$ref.startsWith(Ben))throw new Error(`Failed to resolve schema reference because of unsupported prefix: ${e.$ref}`);let r=C5r(e);if(r==null)throw new Error(`Failed to resolve schema reference because missing schema id: ${e.$ref}`);let n=(a=(i=t.components)==null?void 0:i.schemas)==null?void 0:a[r];if(n==null)throw new Error(`Failed to resolve schema reference because missing: ${e.$ref}`);return gy(n)?Imu(n,t):{id:r,schema:n}}var Rmu={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},X2f=new Set(Object.values(Rmu));var RX1=["200","201","202","204"];function Z2f({operationContext:e,responses:t,context:r,responseBreadcrumbs:n,responseStatusCode:i,streamFormat:a,source:u}){if(t==null)return{value:void 0,errors:{}};let f=FX1({responses:t,context:r,source:u,namespace:r.namespace}),d=!1,c;for(let o of i!=null?[i]:RX1){let l=t[o];l!=null&&(d=!0,c==null&&(c=Q2f({operationContext:e,response:l,context:r,responseBreadcrumbs:n,streamFormat:a,source:u,namespace:r.namespace})))}if(c==null&&!d&&t.default!=null&&(c=Q2f({operationContext:e,response:t.default,context:r,responseBreadcrumbs:n,streamFormat:a,source:u,namespace:r.namespace})),c!=null)switch(c.type){case"json":return{value:c,errors:f};case"streamingJson":case"streamingSse":return{value:c,errors:f};case"file":case"text":case"streamingText":return{value:c,errors:f};default:Ol(c)}return{value:void 0,errors:f}}function Q2f({operationContext:e,streamFormat:t,response:r,context:n,responseBreadcrumbs:i,source:a,namespace:u}){let f=gy(r)?n.resolveResponseReference(r):r;if(f.content!=null&&Object.entries(f.content).find(([o,l])=>{if(l.schema==null)return!1;let g=gy(l.schema)?n.resolveSchemaReference(l.schema):l.schema;return g.type==="string"&&g.format==="binary"}))return T3.file({description:f.description,source:a});let d=F3n(f.content??{},n);if(d!=null){if(t!=null)switch(t){case"json":return T3.streamingJson({description:f.description,responseProperty:void 0,schema:z2(L1(d.schema,!1,n,i,a,u)),source:a});case"sse":return T3.streamingSse({description:f.description,responseProperty:void 0,schema:z2(L1(d.schema,!1,n,i,a,u)),source:a})}return T3.json({description:f.description,schema:L1(d.schema,!1,n,i,a,u),responseProperty:Lh(e.operation,kh.RESPONSE_PROPERTY),fullExamples:d.examples,source:a})}for(let[c,o]of Object.entries(f.content??{})){let l=cA.parse(c);if(l!=null){if(l.isOctetStream()||l.isPDF()||l.isAudio()||l.isImage()||l.isVideo())return T3.file({description:f.description,source:a});if(l.isPlainText()){let g=o.schema;if(g==null)return T3.text({description:f.description,source:a});let O=gy(g)?n.resolveSchemaReference(g):g;return O.type==="string"&&O.format==="byte"?T3.file({description:f.description,source:a}):T3.text({description:f.description,source:a})}}}}function FX1({responses:e,context:t,source:r,namespace:n}){let i={};for(let[a,u]of Object.entries(e)){if(a==="default")continue;let f=parseInt(a);if(f<400||f>600)continue;let d=gy(u)?t.resolveResponseReference(u):u,c=K2f(d.content??{},t),o=Rmu[f];if(o==null){t.logger.warn(`No error name found for status code ${a}`);continue}i[f]={statusCode:f,nameOverride:void 0,generatedName:o,description:d.description,schema:L1((c==null?void 0:c.schema)??{},!1,t,[o,"Body"],r,n),fullExamples:c==null?void 0:c.examples,source:r}}return i}function vEr({operationContext:e,context:t,responseStatusCode:r,suffix:n,streamFormat:i,source:a}){let{document:u,operation:f,path:d,method:c,baseBreadcrumbs:o,sdkMethodName:l}=e,g=Lh(f,kh.IDEMPOTENT),O=Lh(f,[kh.REQUEST_NAME_V1,kh.REQUEST_NAME_V2]),j=[...o,"Request"],S=j1a({parameters:[...e.pathItemParameters,...e.operationParameters],context:t,requestBreadcrumbs:j,path:d,httpMethod:c,source:a}),x=f.requestBody!=null?L3n({requestBody:f.requestBody,document:u,context:new R3n({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:j,source:a,namespace:t.namespace}):void 0;(S.queryParameters.length>0||S.headers.length>0)&&x!=null&&x.type==="json"&&x.schema.type!=="object"&&f.requestBody!=null?x=L3n({requestBody:f.requestBody,document:u,context:t,requestBreadcrumbs:[...j,"Body"],source:a,namespace:t.namespace}):f.requestBody!=null&&(x=L3n({requestBody:f.requestBody,document:u,context:t,requestBreadcrumbs:[...j],source:a,namespace:t.namespace}));let A=[...o,"Response"],N=Z2f({operationContext:e,streamFormat:i,responses:f.responses,context:t,responseBreadcrumbs:A,responseStatusCode:r,source:a}),z=$2f(f),C=H2f(e,f,t),U=Lh(f,kh.SERVER_NAME_V2);return{summary:f.summary,internal:Lh(f,Yje.INTERNAL),idempotent:g,audiences:Lh(f,kh.AUDIENCES)??[],operationId:f.operationId!=null&&n!=null?f.operationId+"_"+n:f.operationId,tags:t.resolveTagsToTagIds(f.tags),sdkName:l,pathParameters:S.pathParameters,queryParameters:S.queryParameters,headers:S.headers,requestNameOverride:O??void 0,generatedRequestName:yR(j),request:x,response:N.value,errors:N.errors,server:U!=null?[{name:U,url:void 0,audiences:void 0}]:(f.servers??[]).map(Y=>P1a(Y)),description:f.description,authed:LX1(f,u),availability:z,method:c,path:d,examples:C,pagination:e.pagination,source:a}}function LX1(e,t){return e.security!=null?Object.keys(e.security).length>0:t.security!=null?Object.keys(t.security).length>0:!1}function eqf({operationContext:e,context:t,asyncExtension:r,source:n}){let{operation:i,pathItemParameters:a,operationParameters:u}=e,f=r.discriminant.name,d=r.discriminant.value,c=r["response-status-code"],o=k2f({context:t,headerToIgnore:f,parameters:a}),l=k2f({context:t,headerToIgnore:f,parameters:u}),g=vEr({operationContext:{...e,pathItemParameters:o,operationParameters:l,operation:{...i,responses:Object.fromEntries(Object.entries(i.responses).filter(([j])=>parseInt(j)!==c))}},context:t,streamFormat:void 0,source:n}),O=vEr({operationContext:{...e,pathItemParameters:o,operationParameters:l,baseBreadcrumbs:[...e.baseBreadcrumbs,"async"]},context:t,suffix:"async",responseStatusCode:c,streamFormat:void 0,source:n});return O.headers.push({name:f,schema:Lp.literal({nameOverride:void 0,generatedName:yR([f]),title:void 0,description:void 0,availability:void 0,value:E7.string(d),groupName:void 0}),description:void 0,parameterNameOverride:void 0,env:void 0,availability:void 0,source:n}),{sync:g,async:O}}function k2f({context:e,headerToIgnore:t,parameters:r}){return r.filter(n=>{let i=gy(n)?e.resolveParameterReference(n):n;return!(i.in==="header"&&i.name===t)})}var Fmu="stream";function iqf({operationContext:e,context:t,streamingExtension:r}){switch(r.type){case"stream":return{streaming:vEr({operationContext:e,context:t,streamFormat:r.format,source:t.source}),nonStreaming:void 0};case"streamCondition":{let n=tqf({context:t,operation:e.operation,streamingExtension:r,isStreaming:!0});if((n==null?void 0:n.schemaReference)!=null){let c=C5r(n.schemaReference);c!=null&&t.excludeSchema(c)}let i=rqf({operation:e.operation,response:r.responseStream}),a=vEr({operationContext:{...e,sdkMethodName:e.sdkMethodName!=null?{groupName:e.sdkMethodName.groupName,methodName:e.sdkMethodName.methodName+"_"+Fmu}:void 0,operation:{...e.operation,requestBody:n==null?void 0:n.requestBody,responses:i},baseBreadcrumbs:[...e.baseBreadcrumbs,Fmu]},context:t,streamFormat:r.format,suffix:Fmu,source:t.source});a.examples=a.examples.filter(c=>nqf(c,t)!==!1);let u=tqf({context:t,operation:e.operation,streamingExtension:r,isStreaming:!1}),f=rqf({operation:e.operation,response:r.response}),d=vEr({streamFormat:void 0,operationContext:{...e,operation:{...e.operation,requestBody:u==null?void 0:u.requestBody,responses:f}},context:t,source:t.source});return d.examples=d.examples.filter(c=>nqf(c,t)!==!0),{streaming:a,nonStreaming:d}}default:Ol(r)}}function tqf({context:e,operation:t,streamingExtension:r,isStreaming:n}){var c;if(t.requestBody==null)return;let i=gy(t.requestBody)?e.resolveRequestBodyReference(t.requestBody):t.requestBody,a=F3n(i.content,e);if(a==null)return;let u=gy(a.schema)?e.resolveSchemaReference(a.schema):a.schema;if(u.allOf==null&&u.properties==null)return;let f=(c=u.properties)==null?void 0:c[r.streamConditionProperty];f!=null&&gy(f)&&(f=void 0);let d={...u,properties:{...u.properties,[r.streamConditionProperty]:{type:"boolean","x-fern-boolean-literal":n,...f??{}}},title:void 0,required:[...u.required??[],r.streamConditionProperty]};return{requestBody:{content:{[cA.APPLICATION_JSON]:{schema:d}}},schemaReference:gy(a.schema)?a.schema:void 0}}function rqf({operation:e,response:t}){return{...e.responses,200:{description:"",content:{[cA.APPLICATION_JSON]:{schema:t}}}}}function nqf(e,t){return e._visit({unknown:r=>{let n=h5.ExampleEndpointCallSchema.safeParse(r);if(!n.success){t.logger.error("Failed to parse example",n.error.toString());return}if(n.data.response!=null)return n.data.response.stream!=null},full:()=>{},_other:()=>{}})}function aqf({context:e,operationContext:t,source:r}){let{document:n,operation:i,path:a,method:u,baseBreadcrumbs:f,sdkMethodName:d}=t,c=[...f,"Payload"],o=j1a({parameters:[...t.pathItemParameters,...t.operationParameters],context:e,requestBreadcrumbs:c,path:a,httpMethod:u,source:r});if(i.requestBody==null){e.logger.error(`Skipping webhook ${u.toUpperCase()} ${a}: Missing a request body`);return}if(u!=="POST"&&u!=="GET"){e.logger.error(`Skipping webhook ${u.toUpperCase()} ${a}: Not POST or GET`);return}let l=L3n({requestBody:i.requestBody,document:n,context:e,requestBreadcrumbs:[...f,"Payload"],source:r,namespace:e.namespace});if(l==null||l.type!=="json"){e.logger.error(`Skipping webhook ${a} because non-json request body`);return}if(i.operationId==null){e.logger.error(`Skipping webhook ${a} because no operation id present`);return}return{summary:i.summary,sdkName:d,method:u,operationId:i.operationId,tags:e.resolveTagsToTagIds(i.tags),headers:o.headers,generatedPayloadName:yR(c),payload:l.schema,description:i.description,examples:UX1(l.fullExamples),source:r}}function UX1(e){if(e==null)return[];let t=[];for(let r of e){let n=A5r(r.value);n!=null&&t.push({description:r.description,name:r.name,payload:n})}return t}function Lmu({context:e,pathItemContext:t,operation:r,convertToWebhook:n}){let i=Lh(r,kh.IGNORE);if(i!=null&&i){e.logger.info(`${t.method.toUpperCase()} ${t.path} is marked with x-fern-ignore. Skipping.`);return}let a=VX1(r,e),u=B2f(e.document,r),f={...t,sdkMethodName:a,baseBreadcrumbs:WX1({operation:r,sdkMethodName:a,httpMethod:t.method,path:t.path}),operation:r,operationParameters:r.parameters??[],pagination:u};if(n){let l=aqf({context:e,operationContext:f,source:e.source});return l!=null?{type:"webhook",value:l}:void 0}let d=N2f(r);if(d!=null){let l=iqf({context:e,operationContext:f,streamingExtension:d});return l!=null?{type:"streaming",streaming:l.streaming,nonStreaming:l.nonStreaming}:void 0}let c=C2f(r);if(c!=null){let l=eqf({context:e,operationContext:f,asyncExtension:c,source:e.source});return{type:"async",async:l.async,sync:l.sync}}let o=vEr({context:e,operationContext:f,streamFormat:void 0,source:e.source});return{type:"http",value:o}}function VX1(e,t){let r=Lh(e,kh.SDK_METHOD_NAME),n=Lh(e,kh.SDK_GROUP_NAME)??[];if(r!=null){let i=typeof n=="string"?[n]:n;return i=t.resolveGroupName(i),{groupName:i,methodName:r}}}function WX1({sdkMethodName:e,operation:t,httpMethod:r,path:n}){let i=[];if(e!=null){if(e.groupName.length>0){let a=e.groupName[e.groupName.length-1];a!=null&&i.push(typeof a=="string"?a:a.name)}i.push(e.methodName)}else t.operationId!=null?i.push(t.operationId):i.push(dx(`${r}_${n.split("/").join("_")}`));return i}function oqf(e,t,r,n){let i=[],a=sqf(t),u={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let f of a){let d=HX1({operation:f.operation}),c=Lmu({context:n,pathItemContext:{...u,method:f.method},operation:f.operation,convertToWebhook:d});c!=null&&i.push(c)}return i}function uqf(e,t,r,n){let i=[],a=sqf(t),u={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let f of a){let d=Lmu({context:n,pathItemContext:{...u,method:f.method},operation:f.operation,convertToWebhook:!0});d!=null&&i.push(d)}return i}function sqf(e){let t=[];return e.get!=null&&t.push({method:GJ.Get,operation:e.get}),e.post!=null&&t.push({method:GJ.Post,operation:e.post}),e.put!=null&&t.push({method:GJ.Put,operation:e.put}),e.delete!=null&&t.push({method:GJ.Delete,operation:e.delete}),e.patch!=null&&t.push({method:GJ.Patch,operation:e.patch}),t}function HX1({operation:e}){return Lh(e,[kh.WEBHOOK])??!1}function cqf(e){let t=Lh(e,kh.BASIC_AUTH_USERNAME_VARIABLE_NAME),r=Lh(e,kh.BASIC_AUTH_PASSWORD_VARIABLE_NAME);return{usernameVariable:t,passwordVariable:r}}function lqf(e){return Lh(e,kh.FERN_BASIC_AUTH)}function Umu(e,t){if(gy(e))throw new Error(`Converting referenced security schemes is unsupported: ${JSON.stringify(e)}`);return $X1(e,t)}function $X1(e,t){var r,n,i,a;if(e.type==="apiKey"&&e.in==="header"){let u=Lh(e,Yje.BEARER_FORMAT),f=Lh(e,kh.FERN_HEADER_AUTH);return F9.header({headerName:e.name,prefix:u!=null?"Bearer":f==null?void 0:f.prefix,headerVariableName:(f==null?void 0:f.name)??Lh(e,kh.HEADER_VARIABLE_NAME),headerEnvVar:f==null?void 0:f.env})}else if(e.type==="http"&&e.scheme==="bearer"){let u=Lh(e,kh.FERN_BEARER_TOKEN);return F9.bearer({tokenVariableName:(u==null?void 0:u.name)??Lh(e,kh.BEARER_TOKEN_VARIABLE_NAME),tokenEnvVar:u==null?void 0:u.env})}else if(e.type==="http"&&e.scheme==="basic"){let u=lqf(e),f=cqf(e);return F9.basic({usernameVariableName:((r=u==null?void 0:u.username)==null?void 0:r.name)??f.usernameVariable,usernameEnvVar:(n=u==null?void 0:u.username)==null?void 0:n.env,passwordVariableName:((i=u==null?void 0:u.password)==null?void 0:i.name)??f.passwordVariable,passwordEnvVar:(a=u==null?void 0:u.password)==null?void 0:a.env})}else{if(e.type==="openIdConnect")return F9.bearer({tokenVariableName:void 0,tokenEnvVar:void 0});if(e.type==="oauth2")return F9.oauth({scopesEnum:JX1(e,t)})}throw new Error(`Failed to convert security scheme ${JSON.stringify(e)}`)}function JX1(e,t){var n,i,a,u;let r=((n=e.flows.authorizationCode)==null?void 0:n.scopes)??((i=e.flows.clientCredentials)==null?void 0:i.scopes)??((a=e.flows.implicit)==null?void 0:a.scopes)??((u=e.flows.password)==null?void 0:u.scopes);if(r!=null){let f=q5r({nameOverride:void 0,generatedName:"OauthScope",title:void 0,enumValues:Object.keys(r),fernEnum:Object.fromEntries(Object.entries(r).map(([c,o])=>[c,{description:o}])),_default:void 0,description:void 0,availability:void 0,enumVarNames:void 0,wrapAsNullable:!1,groupName:void 0,context:void 0,source:t}),d=z2(f);if(d.type==="enum")return d}}function fqf(e){return Lh(e,kh.BASE_PATH)}var GX1=ir.record(ir.string(),ir.object({summary:ir.string().optional(),description:ir.string().optional()}));function dqf({document:e,context:t}){return IRt(e,kh.GROUPS,GX1,t.logger)}function pqf({context:e,document:t}){return IRt(t,kh.FERN_VERSION,h5.VersionDeclarationSchema,e.logger)??void 0}function _qf(e){let t=Lh(e,kh.FERN_GLOBAL_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?q_i({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function hqf(e){let t=Lh(e,kh.FERN_IDEMPOTENCY_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?q_i({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function yqf(e){let t=Lh(e,kh.SDK_VARIABLES);return t==null?{}:Object.fromEntries(Object.entries(t).map(([r,n])=>{if(n.type==="string")return[r,{nameOverride:void 0,generatedName:yR([r]),title:n.title,schema:Xw.string({default:H7n(n),pattern:n.pattern,format:n.format,minLength:n.minLength,maxLength:n.maxLength}),description:n.description,availability:void 0,groupName:void 0}];throw new Error(`Variable ${r} has unsupported schema ${JSON.stringify(n)}`)}))}var KX1="webhooks";function vqf(e){return Lh(e,KX1)??{}}var w1a=class extends I3n{nonRequestReferencedSchemas=new Set;twoOrMoreRequestsReferencedSchemas=new Set;singleRequestReferencedSchemas=new Set;discrminatedUnionReferences={};discrminatedUnionMetadata={};schemasToExclude=new Set;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:a,namespace:u}){super({document:t,taskContext:r,authHeaders:n,options:i,source:a,namespace:u})}getDummy(){return new R3n({document:this.document,taskContext:this.taskContext,options:this.options,source:this.source,namespace:this.namespace})}markSchemaAsReferencedByNonRequest(t){this.nonRequestReferencedSchemas.add(t)}markSchemaAsReferencedByRequest(t){this.singleRequestReferencedSchemas.has(t)?this.twoOrMoreRequestsReferencedSchemas.add(t):this.singleRequestReferencedSchemas.add(t)}getReferencedSchemas(){return new Set([...this.nonRequestReferencedSchemas,...this.twoOrMoreRequestsReferencedSchemas])}markReferencedByDiscriminatedUnion(t,r,n){let i=this.discrminatedUnionReferences[t.$ref];i!=null?(i.discriminants.add(r),i.numReferences+=n):this.discrminatedUnionReferences[t.$ref]={discriminants:new Set([r]),numReferences:n}}getReferencesFromDiscriminatedUnion(t){return this.discrminatedUnionReferences[t.$ref]}markSchemaWithDiscriminantValue(t,r,n){let i=this.discrminatedUnionMetadata[t.$ref];i!=null?i.discriminants.set(r,n):this.discrminatedUnionMetadata[t.$ref]={discriminants:new Map([[r,n]])}}getDiscriminatedUnionMetadata(t){return this.discrminatedUnionMetadata[t.$ref]}excludeSchema(t){this.schemasToExclude.add(t)}isSchemaExcluded(t){return this.schemasToExclude.has(t)}};function bqf(e){return Lh(e,kh.RESOLUTIONS)}function gqf({openapi:e}){let t=bqf(e);if(t==null)return e;let r={};for(let n of t){let i=`#/components/schemas/${n.name}`;for(let a of n.resolutions)e=YX1({openapi:e,schemaReference:a,schemaName:n.name}),e=mqf({openapi:e,replaceReference:a,schemaReference:i,replacedReferences:r}),r={...r,...Object.fromEntries(n.resolutions.map(u=>[i,u]))}}return e}function YX1({openapi:e,schemaReference:t,schemaName:r}){let n=t.replace("#/","").split("/").map(a=>a.replace("~1","/")),i=e;for(let a of n){let u=i[a];if(u==null)return e;i=u}return e.components==null&&(e.components={}),e.components.schemas==null&&(e.components.schemas={}),e.components.schemas[r]=i,e}function mqf({openapi:e,replaceReference:t,schemaReference:r,replacedReferences:n}){let i=Object.keys(n).filter(d=>t.startsWith(d)).sort((d,c)=>c.length-d.length)[0];if(i!=null){let d=n[i];if(d!=null){let c=r.replace(i,d);return mqf({openapi:e,replaceReference:t,schemaReference:c,replacedReferences:{}})}}let a=t.replace("#/","").split("/").map(d=>d.replace("~1","/")),u=e;for(let d of a.slice(0,-1)){let c=u[d];if(c==null)return e;u=c}let f=a[a.length-1];return f==null||(u[f]={$ref:r}),e}function D1a({openApi:e,taskContext:t,options:r,source:n,namespace:i}){var Y,te,G;e=gqf({openapi:e});let a=Object.fromEntries(Object.entries(((Y=e.components)==null?void 0:Y.securitySchemes)??{}).map(([$,ee])=>Umu(ee,n)==null?[]:[$,Umu(ee,n)])),u=new Set(...Object.entries(a).map(([$,ee])=>ee.type==="basic"||ee.type==="bearer"?"Authorization":ee.type==="header"?ee.headerName:null)),f=new w1a({document:e,taskContext:t,authHeaders:u,options:r,source:n,namespace:i}),d=yqf(e),c=_qf(e),o=hqf(e),l=r.audiences??[],g=[],O=[];Object.entries(e.paths??{}).forEach(([$,ee])=>{if(ee==null)return;t.logger.debug(`Converting path ${$}`);let Ve=oqf($,ee,e,f);for(let $e of Ve){let Dt=Oqf({operation:$e});if(!(l.length>0&&!l.some(Tt=>Dt.includes(Tt))))switch($e.type){case"async":g.push($e.sync),g.push($e.async);break;case"http":g.push($e.value);break;case"streaming":g.push($e.streaming),$e.nonStreaming&&g.push($e.nonStreaming);break;case"webhook":O.push($e.value);break;default:Ol($e)}}}),Object.entries(vqf(e)).forEach(([$,ee])=>{if(ee==null)return;t.logger.debug(`Converting path ${$}`);let Ve=uqf($,ee,e,f);for(let $e of Ve){let Dt=Oqf({operation:$e});l.length>0&&!l.some(Tt=>Dt.includes(Tt))||O.push($e.value)}});let j=Object.fromEntries(Object.entries(((te=e.components)==null?void 0:te.schemas)??{}).map(([$,ee])=>{if(!gy(ee)){let Ve=Lh(ee,kh.IGNORE);if(Ve!=null&&Ve)return[];if(X2f.has($))return[$,L1({...ee,"x-fern-type-name":`${$}Body`},!1,f,[$],n,i)]}return[$,L1(ee,!1,f,[$],n,i)]}).filter($=>$.length>0)),S=XX1(j,f,n),x=QX1(S,f),A={};for(let[$,ee]of Object.entries(x)){let Ve=z2(ee);f.isSchemaExcluded($)||(A[$]=Ve,t.logger.debug(`Converted schema ${$}`))}let N=new iba(x,f.logger),z=g.map($=>{let ee=$.examples,Ve=ee;if(!r.disableExamples&&(ee.length===0||ee.every(z_i))){let Tt=N.buildEndpointExample($);Tt.length>0&&(Ve=[...Tt,...ee.filter(Wt=>!z_i(Wt))])}let $e=$.request,Dt=$.response;return{...$,request:($e==null?void 0:$e.type)==="json"?{...$e,schema:z2($e.schema)}:$e,response:(Dt==null?void 0:Dt.type)==="json"?{...Dt,schema:z2(Dt.schema)}:Dt,queryParameters:$.queryParameters.map(Tt=>({description:Tt.description,name:Tt.name,schema:z2(Tt.schema),parameterNameOverride:Tt.parameterNameOverride,availability:Tt.availability,source:Tt.source})),pathParameters:$.pathParameters.map(Tt=>({description:Tt.description,name:Tt.name,schema:z2(Tt.schema),parameterNameOverride:Tt.parameterNameOverride,variableReference:Tt.variableReference,availability:Tt.availability,source:Tt.source})),headers:$.headers.map(Tt=>({description:Tt.description,name:Tt.name,schema:z2(Tt.schema),parameterNameOverride:Tt.parameterNameOverride,env:Tt.env,availability:Tt.availability,source:Tt.source})),examples:Ve,errors:sy($.errors,Tt=>{var Wt;return{generatedName:Tt.generatedName,nameOverride:Tt.nameOverride,schema:z2(Tt.schema),description:Tt.description,source:Tt.source,examples:(Wt=Tt.fullExamples)==null?void 0:Wt.map(Nt=>{let ur=A5r(Nt.value);if(ur!=null)return{name:Nt.name,description:Nt.description,example:ur}}).filter(RS)}})}}),C=dqf({document:e,context:f});return{apiVersion:pqf({context:f,document:e}),basePath:fqf(e),title:e.info.title,description:e.info.description,groups:Object.fromEntries(Object.entries(C??{}).map(([$,ee])=>[$,{summary:ee.summary??void 0,description:ee.description??void 0}])),servers:(e.servers??[]).map($=>P1a($)),tags:{tagsById:Object.fromEntries((e.tags??[]).map($=>[$.name,{id:$.name,description:$.description}])),orderedTagIds:(G=e.tags)==null?void 0:G.map($=>$.name)},endpoints:z,webhooks:O,channel:[],schemas:A,securitySchemes:a,hasEndpointsMarkedInternal:z.some($=>$.internal),nonRequestReferencedSchemas:f.getReferencedSchemas(),variables:d,globalHeaders:c,idempotencyHeaders:o}}function XX1(e,t,r){let n={};for(let[i,a]of Object.entries(e)){if(a.type!=="object"){n[i]=a;continue}let u={$ref:`#/components/schemas/${i}`},f=t.getReferencesFromDiscriminatedUnion(u);if(f==null){n[i]=a;continue}let d={...a,type:"object",properties:a.properties.filter(o=>!f.discriminants.has(o.key)),allOfPropertyConflicts:a.allOfPropertyConflicts.filter(o=>!f.discriminants.has(o.propertyKey)),source:r};n[i]=d;let c=Pqf({schema:a,schemas:e});for(let o of[...new Set(c)]){let l=n[o]??e[o];l==null||l.type!=="object"||(n[o]={...l,type:"object",properties:l.properties.filter(g=>!f.discriminants.has(g.key)),allOfPropertyConflicts:l.allOfPropertyConflicts.filter(g=>!f.discriminants.has(g.propertyKey))})}}return n}function QX1(e,t){let r={};for(let[n,i]of Object.entries(e)){if(i.type!=="object"){r[n]=i;continue}let a={$ref:`#/components/schemas/${n}`},u=t.getDiscriminatedUnionMetadata(a);if(u==null){r[n]=i;continue}let f=[];for(let c of i.properties)if(u.discriminants.has(c.key)){let o=u.discriminants.get(c.key);o!=null&&f.push({...c,schema:Lp.literal({nameOverride:void 0,generatedName:yR([i.generatedName,o]),title:void 0,value:E7.string(o),groupName:void 0,description:void 0,availability:i.availability})})}else f.push(c);let d={...i,type:"object",properties:f};r[n]=d}return r}function Pqf({schema:e,schemas:t}){let r=[];for(let n of e.allOf){r.push(n.schema);let i=t[n.schema];i!=null&&i.type==="object"&&r.push(...Pqf({schema:i,schemas:t}))}return r}function Oqf({operation:e}){let t=[];switch(e.type){case"async":t=e.async.audiences;break;case"http":t=e.value.audiences;break;case"streaming":t=e.streaming.audiences;break;case"webhook":break;default:Ol(e)}return t}async function wqf({openApi:e,taskContext:t,options:r,source:n,namespace:i}){let a=await(0,jqf.convertObj)(e,{});return D1a({openApi:a.openapi,taskContext:t,options:r,source:n,namespace:i})}var x0i={disableExamples:!1,discriminatedUnionV2:!1,useTitlesAsName:!0,audiences:void 0};async function $tn({absoluteFilePathToWorkspace:e,specs:t,taskContext:r,optionOverrides:n}){let i={apiVersion:void 0,title:void 0,description:void 0,basePath:void 0,servers:[],tags:{tagsById:{},orderedTagIds:void 0},hasEndpointsMarkedInternal:!1,endpoints:[],webhooks:[],channel:[],schemas:{},variables:{},nonRequestReferencedSchemas:new Set,securitySchemes:{},globalHeaders:[],idempotencyHeaders:[],groups:{}};for(let a of t){let u=(await(0,Wmu.readFile)(a.absoluteFilepath)).toString(),f=YN(e,a.source.file);a.source.relativePathToDependency!=null&&(f=Tf(a.source.relativePathToDependency,f));let d=a.source.type==="protobuf"?HSr.protobuf({file:f}):HSr.openapi({file:f});if(u.includes("openapi")||u.includes("swagger")){let c=await xEf({absolutePathToOpenAPI:a.absoluteFilepath,context:r,absolutePathToOpenAPIOverrides:a.absoluteFilepathToOverrides});if(eQ1(c)){let o=D1a({openApi:c,taskContext:r,options:Vmu({specSettings:a.settings,overrides:n}),source:d,namespace:a.namespace});i=Dqf(i,o)}else if(tQ1(c)){let o=await wqf({openApi:c,taskContext:r,options:Vmu({specSettings:a.settings}),source:d,namespace:a.namespace});i=Dqf(i,o)}}else if(u.includes("asyncapi")){let c=await kX1({absoluteFilePathToAsyncAPI:a.absoluteFilepath,context:r,absoluteFilePathToAsyncAPIOverrides:a.absoluteFilepathToOverrides}),o=Opf({document:c,taskContext:r,options:Vmu({specSettings:a.settings}),source:d,asyncApiOptions:ZX1({specSettings:a.settings}),namespace:a.namespace});o.channel!=null&&i.channel.push(o.channel),o.schemas!=null&&(i.schemas={...i.schemas,...o.schemas}),o.basePath!=null&&(i.basePath=o.basePath)}else r.failAndThrow(`${a.absoluteFilepath} is not a valid OpenAPI or AsyncAPI file`)}return i}function Vmu({specSettings:e,overrides:t}){return{disableExamples:(t==null?void 0:t.disableExamples)??x0i.disableExamples,discriminatedUnionV2:(t==null?void 0:t.discriminatedUnionV2)??(e==null?void 0:e.shouldUseUndiscriminatedUnionsWithLiterals)??x0i.discriminatedUnionV2,useTitlesAsName:(t==null?void 0:t.useTitlesAsName)??(e==null?void 0:e.shouldUseTitleAsName)??x0i.useTitlesAsName,audiences:(t==null?void 0:t.audiences)??(e==null?void 0:e.audiences)??x0i.audiences}}function ZX1({specSettings:e,overrides:t}){return{naming:(t==null?void 0:t.naming)??(e==null?void 0:e.asyncApiNaming)??Jdf.naming}}function Dqf(e,t){return{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:[...e.servers,...t.servers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:[...e.endpoints,...t.endpoints],webhooks:[...e.webhooks,...t.webhooks],channel:[...e.channel,...t.channel],schemas:{...e.schemas,...t.schemas},variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}}}async function kX1({absoluteFilePathToAsyncAPI:e,absoluteFilePathToAsyncAPIOverrides:t,context:r}){let n=(await(0,Wmu.readFile)(e)).toString(),i=await av.load(n);return t!=null?await yPa({absoluteFilepathToOverrides:t,context:r,data:i}):i}function eQ1(e){return e.openapi!=null}function tQ1(e){return e.swagger!=null}function E1a({queryParameter:e,context:t,fileContainingReference:r}){let n=Hmu({schema:e.schema,context:t,fileContainingReference:r});if(n==null)return;let i=N2(n.value);if(i==="unknown"?i="string":i==="optional<unknown>"&&(i="optional<string>"),e.description==null&&!n.allowMultiple&&e.parameterNameOverride==null&&e.availability==null)return i;let a={type:i};return n.allowMultiple&&(a["allow-multiple"]=!0),e.description!=null&&(a.docs=e.description),e.parameterNameOverride!=null&&(a.name=e.parameterNameOverride),e.availability!=null&&(a.availability=q3(e.availability)),a}function Hmu({schema:e,context:t,fileContainingReference:r}){if(e.type==="reference"){let n=t.getSchema(e.schema);if(n==null)return;if(n.type==="array")return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:n.value,description:e.description??n.description,availability:e.availability,groupName:void 0}),context:t,declarationFile:Ws.of($T),fileContainingReference:r}),allowMultiple:!0};if(n.type==="oneOf"&&n.value.type==="undisciminated"){let i=[];for(let[a,u]of Object.entries(n.value.schemas))u.type==="literal"&&u.value.type==="string"&&(V7n.test(u.value.value)?i.push(u.value.value):i.push({value:u.value.value,name:C_i(u.value.value)}));if(i.length>0)return t.builder.addType(r,{name:e.generatedName,schema:{enum:i}}),{value:e.generatedName,allowMultiple:!1};if(n.value.schemas.length===2){let[a,u]=n.value.schemas;if(a!=null&&u!=null&&S1a({array:a,primitive:u}))return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:u,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0};if(a!=null&&u!=null&&S1a({array:a,primitive:u}))return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:a,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0}}for(let[a,u]of Object.entries(n.value.schemas))return Hmu({schema:u,context:t,fileContainingReference:r})}else if(n.type==="object")return}if(e.type==="optional"||e.type==="nullable"){if(e.value.type==="reference"){let n=t.getSchema(e.value.schema);if(n==null)return;if(n.type==="array")return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:n.value,description:e.description??n.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r,declarationFile:Ws.of($T)}),allowMultiple:!0}}if(e.value.type==="array")return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:e.value.value,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0};if(e.value.type==="oneOf"&&e.value.value.type==="undisciminated"){let n=[];for(let[i,a]of Object.entries(e.value.value.schemas))a.type==="literal"&&a.value.type==="string"&&(V7n.test(a.value.value)?n.push(a.value.value):n.push({value:a.value.value,name:C_i(a.value.value)}));if(n.length>0)return t.builder.addType(r,{name:e.generatedName,schema:{enum:n}}),{value:`optional<${e.value.value.generatedName}>`,allowMultiple:!1};if(e.value.value.schemas.length===2){let[i,a]=e.value.value.schemas;if(i!=null&&a!=null&&S1a({array:i,primitive:a}))return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:a,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0};if(i!=null&&a!=null&&S1a({array:a,primitive:i}))return{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:i,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0}}for(let[i,a]of Object.entries(e.value.value.schemas))return Hmu({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:a,description:void 0,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r})}else if(e.value.type==="object")return;return{value:D1({schema:e,context:t,fileContainingReference:r}),allowMultiple:!1}}return e.type==="array"?{value:D1({schema:ib.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:e.value,description:e.description,availability:e.availability,groupName:void 0}),context:t,fileContainingReference:r}),allowMultiple:!0}:{value:D1({schema:e,context:t,fileContainingReference:r}),allowMultiple:!1}}function S1a({array:e,primitive:t}){return(e==null?void 0:e.type)==="array"&&e.value.type==="primitive"&&(t==null?void 0:t.type)==="primitive"&&e.value.schema.type===t.schema.type}function Sqf({websocketExample:e,context:t}){let r={messages:[]};e.name!=null&&(r.name=e.name),e.description!=null&&(r.docs=e.description),e.queryParameters!=null&&e.queryParameters.length>0&&(r["query-parameters"]=rQ1(e.queryParameters)),e.headers!=null&&e.headers.length>0&&(r.headers=nQ1({context:t,namedFullExamples:e.headers}));for(let n of e.messages){let i=Izr(n.payload);i!=null&&r.messages.push({type:n.messageType,body:i})}return r}function rQ1(e){let t={};return e.forEach(r=>{let n=Izr(r.value);Array.isArray(n)?t[r.name]=n[0]:n!=null&&(t[r.name]=n)}),t}function nQ1({context:e,namedFullExamples:t}){let r=e.builder.getGlobalHeaderNames(),n={};return t.forEach(i=>{let a=Izr(i.value);r.has(i.name)||a!=null&&(n[i.name]=a)}),n}function Izr(e){switch(e.type){case"primitive":return Eqf(e.value);case"object":return Mqf(e.properties);case"array":return iQ1(e.value);case"map":return aQ1(e.value);case"oneOf":return oQ1(e.value);case"enum":return e.value;case"literal":return uQ1(e.value);case"unknown":return Izr(e.value);default:Ol(e)}}function Eqf(e){switch(e.type){case"int":return e.value;case"int64":return e.value;case"uint":return e.value;case"uint64":return e.value;case"float":return e.value;case"double":return e.value;case"string":return e.value.startsWith("$")?`${e.value.slice(1)}`:e.value;case"datetime":try{return new Date(e.value).toISOString().replace(/\.\d{3}Z$/,"Z")}catch{return"2024-01-15T09:30:00Z"}case"date":return e.value;case"base64":case"boolean":return e.value;default:Ol(e)}}function Mqf(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,Izr(r)]))}function iQ1(e){return e.map(t=>Izr(t))}function aQ1(e){return Object.fromEntries(e.map(t=>[Eqf(t.key),Izr(t.value)]))}function oQ1(e){return e.type==="discriminated"?Mqf(e.value):Izr(e.value)}function uQ1(e){switch(e.type){case"string":return e.value;case"boolean":return e.value;default:Ol(e)}}function xqf({channel:e,context:t,declarationFile:r}){let n={path:e.path,auth:!1};e.summary!=null&&(n["display-name"]=e.summary);let i={};if(e.handshake.pathParameters.length>0)for(let f of e.handshake.pathParameters)i[f.name]=Kva({pathParameter:f,context:t,fileContainingReference:r});Object.keys(i).length>0&&(n["path-parameters"]=i);let a={};if(e.handshake.queryParameters.length>0)for(let f of e.handshake.queryParameters){let d=E1a({queryParameter:f,context:t,fileContainingReference:r});d!=null&&(a[f.name]=d)}Object.keys(a).length>0&&(n["query-parameters"]=a);let u={};if(e.handshake.headers.length>0)for(let f of e.handshake.headers){let d=BRt({header:f,context:t,fileContainingReference:r});u[f.name]=d}Object.keys(u).length>0&&(n.headers=u),t.builder.addChannel(r,{channel:n}),e.subscribe!=null&&t.builder.addChannelMessage(r,{messageId:"subscribe",message:{origin:"server",body:D1({schema:e.subscribe,context:t,fileContainingReference:r})}}),e.publish!=null&&t.builder.addChannelMessage(r,{messageId:"publish",message:{origin:"client",body:D1({schema:e.publish,context:t,fileContainingReference:r})}});for(let f of e.examples){let d=Sqf({context:t,websocketExample:f});t.builder.addChannelExample(r,{example:d})}}var Tqf="Production",qqf="Default";function Cqf(e){return Object.entries(e).reduce((t,[r,n])=>(R2n(n)?Object.entries(n.urls).forEach(([i,a])=>{t[i]=a}):t[r]=typeof n=="string"?n:n.url,t),{})}function Aqf(e){var f,d;if(e.environmentOverrides!=null){for(let[c,o]of Object.entries(e.environmentOverrides.environments??{}))e.builder.addEnvironment({name:c,schema:o});e.environmentOverrides["default-environment"]!=null&&e.builder.setDefaultEnvironment(e.environmentOverrides["default-environment"]),e.environmentOverrides["default-url"]!=null&&e.builder.setDefaultUrl(e.environmentOverrides["default-url"]);return}let t={},r=[];for(let c of e.ir.servers){let o=c.audiences?{url:c.url,audiences:c.audiences}:c.url;if(c.name==null){r.push(o);continue}t[c.name]=o}let n={},i=[];for(let c of e.ir.endpoints)for(let o of c.server){if(o.url==null)continue;let l=o.audiences?{url:o.url,audiences:o.audiences}:o.url;if(o.name==null){i.push(l);continue}n[o.name]=l}let a=Object.keys(t).length,u=Object.keys(n).length;if(a===0&&u===0){let c=(f=e.ir.servers[0])==null?void 0:f.url,o=(d=e.ir.servers[0])==null?void 0:d.audiences;c!=null&&(e.builder.addEnvironment({name:qqf,schema:o?{url:c,audiences:o}:c}),e.builder.setDefaultEnvironment(qqf))}else if(a>0&&u===0){let c=0;r.length>0&&e.logger.error(`Skipping servers ${r.map(o=>typeof o=="string"?o:o.url).join(", ")} because x-fern-server-name was not provided.`);for(let[o,l]of Object.entries(t))c===0&&e.builder.setDefaultEnvironment(o),e.builder.addEnvironment({name:o,schema:l}),c+=1}else if(u>0){(r.length>0||i.length>0)&&e.logger.error(`Skipping servers ${[...r,...i].map(o=>typeof o=="string"?o:o.url).join(", ")} because x-fern-server-name was not provided.`);let c=Object.entries(t)[0];if(c!=null){let[o,l]=c;e.setDefaultServerName(o)}e.builder.addEnvironment({name:Tqf,schema:{urls:{...Cqf(t),...Cqf(n)}}}),e.builder.setDefaultEnvironment(Tqf)}}function M1a(e){return N2(e).startsWith("optional")?e:typeof e=="string"?`optional<${e}>`:{...e,type:`optional<${e.type}>`}}var $mu=class{schema;count=0;constructor(t){this.schema=t}increment(){this.count+=1}},sQ1=.75,cQ1=new Set("authorization");function Nqf(e){let t=Object.fromEntries((e.ir.globalHeaders??[]).map(r=>[r.header,r]));for(let[r,n]of Object.entries(t)){let i="optional<string>";n.name==null&&n.env==null&&typeof n.schema=="string"?i=n.schema:n!=null&&(i={name:n.name,env:n.env,type:n.schema!=null?N2(D1({schema:n.schema,context:e,fileContainingReference:Ws.of("api.yml")}))??"optional<string>":"optional<string>"}),e.builder.addGlobalHeader({name:r,schema:i})}if(e.detectGlobalHeaders){let r={};for(let i of e.ir.endpoints)for(let a of i.headers){if(cQ1.has(a.name.toLowerCase()))continue;let u=r[a.name];if(u==null){let f=t[a.name],d=BRt({header:{...a,schema:(f==null?void 0:f.schema)??a.schema,name:(f==null?void 0:f.name)??a.name},fileContainingReference:Ws.of(nB),context:e});u=new $mu(d),r[a.name]=u}u.increment()}let n=e.ir.endpoints.length*sQ1;for(let[i,a]of Object.entries(r)){let u=t[i],f=a.count===e.ir.endpoints.length,d=a.count>=n;u==null&&(f?e.builder.addGlobalHeader({name:i,schema:a.schema}):d&&e.builder.addGlobalHeader({name:i,schema:M1a(a.schema)}))}}}function zqf(e){for(let t of e.ir.idempotencyHeaders??[]){let r=BRt({header:{...t,schema:t.schema??ib.primitive({description:void 0,availability:void 0,generatedName:"",title:void 0,groupName:void 0,nameOverride:void 0,schema:Xw.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0})}),name:t.name??t.header,parameterNameOverride:void 0,description:void 0,availability:void 0,source:void 0},fileContainingReference:Ws.of(nB),context:e});e.builder.addIdempotencyHeader({name:t.header,schema:M1a(r)})}}function cG(e){switch(e.type){case"primitive":return Bqf(e.value);case"object":return Iqf(e.properties);case"array":return lQ1(e.value);case"map":return fQ1(e.value);case"oneOf":return dQ1(e.value);case"enum":return e.value;case"literal":return pQ1(e.value);case"unknown":return cG(e.value);default:Ol(e)}}function Bqf(e){switch(e.type){case"int":return e.value;case"int64":return e.value;case"uint":return e.value;case"uint64":return e.value;case"float":return e.value;case"double":return e.value;case"string":return e.value.startsWith("$")?`${e.value.slice(1)}`:e.value;case"datetime":try{return!e.value.endsWith("Z")&&!e.value.includes("+")&&(e.value+="Z"),new Date(e.value).toISOString().replace(/\.\d{3}Z$/,"Z")}catch{return"2024-01-15T09:30:00Z"}case"date":return e.value;case"base64":case"boolean":return e.value;default:Ol(e)}}function Iqf(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,cG(r)]))}function lQ1(e){return e.map(t=>cG(t))}function fQ1(e){return Object.fromEntries(e.map(t=>[Bqf(t.key),cG(t.value)]))}function dQ1(e){return e.type==="discriminated"?Iqf(e.value):cG(e.value)}function pQ1(e){switch(e.type){case"string":return e.value;case"boolean":return e.value;default:Ol(e)}}function Rqf({endpointExample:e,context:t}){let r={};return e.type!=="full"?e.value:(e.name!=null&&(r.name=e.name),e.description!=null&&(r.docs=e.description),e.pathParameters!=null&&e.pathParameters.length>0&&(r["path-parameters"]=_Q1(e.pathParameters)),e.queryParameters!=null&&e.queryParameters.length>0&&(r["query-parameters"]=hQ1(e.queryParameters)),e.headers!=null&&e.headers.length>0&&(r.headers=yQ1({context:t,namedFullExamples:e.headers})),e.request!=null&&(r.request=cG(e.request)),e.response!=null&&(r.response={body:cG(e.response)}),e.response!=null&&(r.response={body:cG(e.response)}),e.codeSamples!=null&&e.codeSamples.length>0&&(r["code-samples"]=e.codeSamples.map(n=>n.type==="language"?{name:n.name??void 0,docs:n.description??void 0,language:n.language,code:n.code,install:n.install??void 0}:{name:n.name??void 0,docs:n.description??void 0,sdk:n.sdk,code:n.code}).filter(RS)),r)}function _Q1(e){let t={};return e.forEach(r=>{let n=cG(r.value);n!=null&&(t[r.parameterNameOverride??r.name]=n)}),t}function hQ1(e){let t={};return e.forEach(r=>{let n=cG(r.value);Array.isArray(n)?t[r.name]=n[0]:n!=null&&(t[r.name]=n)}),t}function yQ1({context:e,namedFullExamples:t}){let r=e.builder.getGlobalHeaderNames(),n={};return t.forEach(i=>{let a=cG(i.value);r.has(i.name)||a!=null&&(n[i.name]=a)}),n}function Fqf(e){return GJ._visit(e,{get:()=>h5.HttpMethodSchema.Enum.GET,post:()=>h5.HttpMethodSchema.Enum.POST,put:()=>h5.HttpMethodSchema.Enum.PUT,patch:()=>h5.HttpMethodSchema.Enum.PATCH,delete:()=>h5.HttpMethodSchema.Enum.DELETE,head:()=>{throw new Error("HEAD is unsupported")},options:()=>{throw new Error("HEAD is unsupported")},trace:()=>{throw new Error("HEAD is unsupported")},_other:()=>{throw new Error("Unkown http method is unsupported")}})}function Lqf({endpoint:e,declarationFile:t,context:r}){let{nonRequestReferencedSchemas:n}=r.ir,i=[],a=new Set,u=e.path,f={};for(let j of e.pathParameters)j.parameterNameOverride&&(u=u.replace(j.name,j.parameterNameOverride)),f[j.parameterNameOverride??j.name]=Kva({pathParameter:j,context:r,fileContainingReference:t}),a.add(j.name);let d={};for(let j of e.queryParameters){let S=E1a({queryParameter:j,context:r,fileContainingReference:t});S!=null&&(d[j.name]=S,a.add(j.name))}let c;e.pagination!=null&&(e.pagination.type==="cursor"?c={cursor:e.pagination.cursor,next_cursor:e.pagination.nextCursor,results:e.pagination.results}:c={offset:e.pagination.offset,step:e.pagination.step,results:e.pagination.results,"has-next-page":e.pagination.hasNextPage});let o={path:u,method:Fqf(e.method),auth:e.authed,docs:e.description??void 0,pagination:c};Object.keys(f).length>0&&(o["path-parameters"]=f),e.summary!=null&&(o["display-name"]=e.summary);let l={},g=r.builder.getGlobalHeaderNames(),O=e.headers.filter(j=>!g.has(j.name));for(let j of O){let S=BRt({header:j,context:r,fileContainingReference:t});l[j.name]=S,a.add(typeof S=="string"?j.name:S.name??j.name)}if(e.request!=null){let j=bQ1({context:r,declarationFile:t,request:e.request,generatedRequestName:e.generatedRequestName,requestNameOverride:e.requestNameOverride??void 0,queryParameters:Object.keys(d).length>0?d:void 0,nonRequestReferencedSchemas:Array.from(n),headers:Object.keys(l).length>0?l:void 0,usedNames:a});o.request=j.value,i=[...i,...j.schemaIdsToExclude??[]]}else{let j=Object.keys(d).length>0,S=Object.keys(l).length>0,x={};(j||S)&&(x.name=e.requestNameOverride??e.generatedRequestName),j&&(x["query-parameters"]=d),S&&(x.headers=l),Object.keys(x).length>0&&(o.request=x)}if(e.response!=null&&e.response._visit({json:j=>{let S=D1({schema:j.schema,context:r,fileContainingReference:t});o.response={docs:j.description??void 0,type:N2(S)},j.responseProperty!=null&&(o.response.property=j.responseProperty)},streamingJson:j=>{let S=D1({schema:j.schema,context:r,fileContainingReference:t});o["response-stream"]={docs:j.description??void 0,type:N2(S),format:"json"}},streamingSse:j=>{let S=D1({schema:j.schema,context:r,fileContainingReference:t});o["response-stream"]={docs:j.description??void 0,type:N2(S),format:"sse"}},file:j=>{o.response={docs:j.description??void 0,type:"file"}},streamingText:j=>{o["response-stream"]={docs:j.description??void 0,type:"text"}},text:j=>{o.response={docs:j.description??void 0,type:"text"}},_other:()=>{var j;throw new Error("Unrecognized Response type: "+((j=e.response)==null?void 0:j.type))}}),r.builder.getEnvironmentType()==="multi"){let j=r.getDefaultServerName(),S=e.server[0];S==null?j!=null&&(o.url=j):o.url=S.name??void 0}return e.idempotent&&(o.idempotent=!0),e.availability!=null&&(o.availability=q3(e.availability)),Object.entries(e.errors).forEach(([j,S])=>{var U;let x=S.generatedName,A=Ws.of($T);r.builder.enableUniqueErrorsPerEndpoint&&(x=`${e.generatedRequestName}${S.generatedName}`,S.schema!=null&&(S.schema.type!=="reference"&&S.schema.type!=="oneOf"?S.schema.generatedName=`${e.generatedRequestName}${S.schema.generatedName}`:S.schema.type==="oneOf"&&(S.schema.value.generatedName=`${e.generatedRequestName}${S.schema.value.generatedName}`)));let N={"status-code":parseInt(j)};if(S.schema!=null){let Y=D1({schema:S.schema,context:r,fileContainingReference:A});N.type=N2(Y),N.docs=S.description}r.builder.addError(x1a,{name:x,schema:N}),o.errors==null&&(o.errors=[]);let z=r.builder.addImport({file:t,fileToImport:x1a});o.errors.push(z!=null?`${z}.${x}`:x),N.type!=null&&((U=S.examples)==null||U.forEach(Y=>{let te={value:cG(Y.example),name:Y.name,docs:Y.description};r.builder.addErrorExample(x1a,{name:x,example:te})}))}),e.examples.length>0&&(o.examples=vQ1({endpointExamples:e.examples,context:r})),r.ir.hasEndpointsMarkedInternal&&(e.internal==null||!e.internal)?o.audiences=[Jmu,...e.audiences]:e.audiences.length>0&&(o.audiences=e.audiences),{value:o,schemaIdsToExclude:i}}function vQ1({endpointExamples:e,context:t}){return e.map(r=>{try{return Rqf({endpointExample:r,context:t})}catch(n){throw console.error(`Error building endpoint example: ${n}`),n}})}function bQ1({declarationFile:e,context:t,request:r,requestNameOverride:n,generatedRequestName:i,queryParameters:a,nonRequestReferencedSchemas:u,headers:f,usedNames:d}){if(r.type==="json"){let c=r.schema.type==="reference"?r.schema.schema:void 0,o=r.schema.type==="reference"?t.getSchema(r.schema.schema):r.schema;if((o==null?void 0:o.type)!=="object"||c!=null&&u.includes(c)){let S=D1({schema:r.schema,fileContainingReference:e,context:t}),x={schemaIdsToExclude:[],value:{body:S}},A=Object.keys(a??{}).length>0,N=Object.keys(f??{}).length>0;return A&&(x.value["query-parameters"]=a),N&&(x.value.headers=f),(A||N)&&(x.value.name=n??i),r.contentType!=null&&(x.value["content-type"]=r.contentType),x}let l=Object.fromEntries(o.properties.map(S=>{let x=D1({schema:S.schema,fileContainingReference:e,context:t}),A=S.nameOverride??S.key,N=q3(S.availability);if(!d.has(A)&&S.audiences.length<=0)return d.add(A),S.nameOverride!=null?[S.key,{type:N2(x),docs:x_i(x),name:S.nameOverride,availability:N}]:[S.key,N?{...typeof x=="string"?{type:x}:x,availability:N}:x];let z={type:N2(x),docs:x_i(x)};return d.has(A)&&(z.name=S.generatedName),S.audiences.length>0&&(z.audiences=S.audiences),N!=null&&(z.availability=N),d.add(A),[S.key,z]})),g=o.allOf.map(S=>{let x=D1({schema:ib.reference(S),fileContainingReference:e,context:t});return N2(x)}),O={properties:l};g.length>0&&(O.extends=g),r.additionalProperties&&(O["extra-properties"]=!0);let j={name:n??o.nameOverride??o.generatedName,"query-parameters":a,headers:f,body:O};return r.contentType!=null&&(j["content-type"]=r.contentType),{schemaIdsToExclude:c!=null?[c]:[],value:j}}else{if(r.type==="octetStream")return{schemaIdsToExclude:[],value:{body:"bytes","content-type":cA.APPLICATION_OCTET_STREAM}};if(r.type==="multipart"){let c=Object.fromEntries(r.properties.map(o=>{if(o.schema.type==="file"){let l=o.schema.isArray?"list<file>":"file";return[o.key,o.schema.isOptional?`optional<${l}>`:l]}else{let l=D1({schema:o.schema.value,fileContainingReference:e,context:t});return[o.key,l]}}));return{schemaIdsToExclude:r.name==null?[]:[r.name],value:{name:n??r.name??i,"query-parameters":a,headers:f,body:{properties:c},"content-type":cA.MULTIPART_FORM_DATA}}}else Ol(r)}}function q0i(e){let t=e.tags[0];if(e.sdkName!=null){let f=Hlu(e.sdkName.groupName),d=`${f}.yml`,c=f.toLowerCase()===(t==null?void 0:t.toLowerCase().replaceAll(" ",""));return{file:Ws.of(d),endpointId:e.sdkName.methodName,tag:c?t:void 0}}let r=e.operationId;if(r==null)return t!=null?{file:Ws.of(`${dx(t)}.yml`),endpointId:e.summary!=null?dx(e.summary):dx(`${e.method}_${e.path.split("/").join("_")}`)}:e.summary!=null?{file:Ws.of($T),endpointId:dx(e.summary)}:{file:Ws.of($T),endpointId:dx(`${e.method}_${e.path.split("/").join("_")}`)};if(t==null)return{file:Ws.of($T),endpointId:r};let n=T0i(t),i=T0i(r);if(nDr(n,i))return{file:Ws.of("__package__.yml"),endpointId:t};let a=OQ1({operationId:r,tag:t,path:e.path,method:e.method});if(a!=null)return a;let u=[];for(let f=0;f<n.length;++f){let d=n[f];if(d!=null&&d===i[f])u.push(d);else{let c=dx(t);return{file:Ws.of(`${c}.yml`),endpointId:r,tag:t}}}if(u.length>=i.length)throw new Error(`Cannot get file for endpoint ${JSON.stringify(e)}`);return{file:Ws.of(dx(u.join("_"))+".yml"),endpointId:dx(i.slice(u.length).join("_")),tag:t}}function T0i(e){let t;return/^[a-z]+(?:[A-Z][a-z]+)*$/.test(e)?t=e.split(/(?=[A-Z])/):t=e.split(/[^a-zA-Z0-9]+/),t=t.map(r=>r.toLowerCase()),t=Y8t(t),t}var gQ1=new RegExp("[^a-zA-Z0-9{}]+"),mQ1=new RegExp("[{}]","g");function OQ1({operationId:e,tag:t,path:r,method:n}){let a=`${r.split(gQ1).join("_").replaceAll(mQ1,"_")}_${n.toLowerCase()}`;if(e.endsWith(a))return{file:Ws.of(dx(t)+".yml"),endpointId:dx(e.slice(0,-1*a.length)),tag:t}}function Uqf(e){let t=new Set,{endpoints:r,tags:n}=e.ir,i=[];for(let a of r){let{endpointId:u,file:f,tag:d}=q0i(a),c=f.split(".")[0];c!=null&&t.add(c);let o;if(a.sdkName!=null){let O=e.ir.groups;for(let j of a.sdkName.groupName){let S=typeof j=="string"?j:j.name,x=O[S];if(x==null)break;if(x.summary!=null||x.description!=null){o=O[S];break}}}let l=d==null?void 0:n.tagsById[d],g=Lqf({context:e,endpoint:a,declarationFile:f});i=[...i,...g.schemaIdsToExclude],e.builder.addEndpoint(f,{name:u,schema:g.value,source:a.source}),((l==null?void 0:l.id)!=null||(l==null?void 0:l.description)!=null)&&e.builder.setServiceInfo(f,{displayName:(o==null?void 0:o.summary)??(l==null?void 0:l.id),docs:(o==null?void 0:o.description)??(l==null?void 0:l.description)??void 0})}return{schemaIdsToExclude:i,sdkGroups:t}}function Vqf(e){for(let[t,r]of Object.entries(e.ir.variables)){let n=D1({schema:ib.primitive(r),context:e,fileContainingReference:Ws.of($T)});e.builder.addVariable({name:t,schema:{type:N2(n),docs:r.description??void 0}})}}function Wqf(e){for(let t of e.ir.webhooks){let r=PQ1({webhook:t,context:e});if(r==null)continue;let n={};for(let a of t.headers)n[a.name]=BRt({header:a,context:e,fileContainingReference:r.file});let i={method:t.method,"display-name":t.summary??void 0,headers:n,payload:D1({schema:t.payload,context:e,fileContainingReference:r.file}),examples:t.examples!=null?t.examples.map(a=>({docs:a.description,name:a.name,payload:cG(a.payload)})):void 0};e.builder.addWebhook(r.file,{name:r.endpointId,schema:i}),t.description!=null&&(i.docs=t.description)}}function PQ1({webhook:e,context:t}){if(e.sdkName!=null)return{file:x5r(e.sdkName.groupName),endpointId:e.sdkName.methodName};let r=e.tags[0],n=e.operationId;if(r==null)return{file:Ws.of($T),endpointId:n};let i=T0i(r),a=T0i(n);if(nDr(i,a))return{file:Ws.of("__package__.yml"),endpointId:r};let u=[];for(let f=0;f<i.length;++f){let d=i[f];if(d!=null&&d===a[f])u.push(d);else{let c=dx(r);return{file:Ws.of(`${c}.yml`),endpointId:n,tag:r}}}if(u.length>=a.length){t.logger.warn(`Skipping webhook ${e.operationId} because couldn't compute file location`);return}return{file:Ws.of(dx(u.join("_"))+".yml"),endpointId:dx(a.slice(u.length).join("_")),tag:r}}var jQ1=Ws.of($T);function Hqf(e){switch(e.type){case"object":return vFt(e.groupName);case"enum":return vFt(e.groupName);case"oneOf":return vFt(e.value.groupName);case"array":return vFt(e.groupName);case"map":return vFt(e.groupName);case"reference":return vFt(e.groupName);case"literal":return vFt(e.groupName);case"optional":return vFt(e.groupName);case"nullable":return vFt(e.groupName);case"primitive":return vFt(e.groupName);case"unknown":return jQ1;default:Ol(e)}}function vFt(e){return x5r(e)}var Jmu="external",x1a=Ws.of($T);function $qf(e){e.ir.apiVersion!=null&&e.builder.setApiVersion(e.ir.apiVersion),Aqf(e),Nqf(e),zqf(e),$df(e),Vqf(e),e.ir.basePath!=null&&e.builder.setBasePath(e.ir.basePath),e.ir.hasEndpointsMarkedInternal&&e.builder.addAudience(Jmu);let{schemaIdsToExclude:t,sdkGroups:r}=Uqf(e);Wqf(e);for(let n of e.ir.channel){let i=x5r(n.groupName);xqf({channel:n,context:e,declarationFile:i})}for(let[n,i]of Object.entries(e.ir.schemas)){if(t.includes(n))continue;let a=Hqf(i),u=Udf({schema:i,context:e,declarationFile:a});if(L2n(u.schema)){let f=N2(u.schema);if(f===(u.name??n)||f===`optional<${u.name??n}>`)continue}e.builder.addType(a,{name:u.name??n,schema:u.schema})}return e.ir.tags.orderedTagIds!=null&&e.ir.tags.orderedTagIds.length>0&&e.ir.tags.orderedTagIds.every(i=>r.has(i))&&e.builder.addNavigation({navigation:e.ir.tags.orderedTagIds}),e.builder.build()}var Rzr=yu(require("path"),1);var T1a=yu(require("path"),1),U3n=class{files={};directories={};getAllFiles(){let t={},r=(n,i)=>{for(let[u,f]of Object.entries(n.files)){let d=i!=null?Ws.of(`${i}${T1a.default.sep}${u}`):Ws.of(u);t[d]=f}let a=Object.keys(n.directories).sort();for(let u of a){let f=i!=null?`${i}${T1a.default.sep}${u}`:u,d=n.directories[u];r(d,f)}};return r(this),t}getOrCreateFile(t){return this.getOrCreateFileRecursive(t.split(T1a.default.sep))}getOrCreateFileRecursive(t){var i,a;if(t.length===1)return(i=this.files)[a=Ws.of(t[0])]??(i[a]={});let[r,...n]=t;if(r==null)throw new Error(`Internal error; cannot add file with path: ${t}`);return this.directories[r]||(this.directories[r]=new U3n),this.directories[r].getOrCreateFileRecursive(n)}};var q1a=class{modifyBasePaths;enableUniqueErrorsPerEndpoint;root;rootApiFile;packageMarkerFile={};basePath=void 0;constructor(t,r,n){this.modifyBasePaths=r,this.enableUniqueErrorsPerEndpoint=n,this.root=new U3n,this.rootApiFile={name:"api","error-discrimination":{strategy:"status-code"}},t.title!=null&&(this.rootApiFile["display-name"]=t.title)}addNavigation({navigation:t}){this.packageMarkerFile.navigation=t}setServiceInfo(t,{displayName:r,docs:n}){let i=this.getOrCreateFile(t);i.service==null&&(i.service={auth:!1,"base-path":"",endpoints:{}}),r!=null&&(i.service["display-name"]=r),n!=null&&(i.docs=n)}addAudience(t){this.rootApiFile.audiences==null&&(this.rootApiFile.audiences=[]),this.rootApiFile.audiences.push(t)}setAuth(t){this.rootApiFile.auth=t}addAuthScheme({name:t,schema:r}){this.rootApiFile["auth-schemes"]==null&&(this.rootApiFile["auth-schemes"]={}),this.rootApiFile["auth-schemes"][t]==null&&(this.rootApiFile["auth-schemes"][t]=r)}setDefaultEnvironment(t){this.rootApiFile["default-environment"]=t}setDefaultUrl(t){this.rootApiFile["default-url"]=t}setBasePath(t){this.basePath=t}setApiVersion(t){this.rootApiFile.version=t}getEnvironmentType(){let t=Object.entries(this.rootApiFile.environments??{})[0];if(t!=null)return ADr(t[1],{singleBaseUrl:()=>"single",multipleBaseUrls:()=>"multi"})}addEnvironment({name:t,schema:r}){this.rootApiFile.environments==null&&(this.rootApiFile.environments={}),this.rootApiFile.environments[t]=r}getGlobalHeaderNames(){let t=Object.keys(this.rootApiFile.headers??{}),r=this.getVersionHeader();return r!=null&&t.push(r),new Set(t)}addGlobalHeader({name:t,schema:r}){let n=this.getVersionHeader();n!=null&&n===t||(this.rootApiFile.headers==null&&(this.rootApiFile.headers={}),this.rootApiFile.headers[t]=r)}addIdempotencyHeader({name:t,schema:r}){this.rootApiFile["idempotency-headers"]==null&&(this.rootApiFile["idempotency-headers"]={}),this.rootApiFile["idempotency-headers"][t]=r}addVariable({name:t,schema:r}){this.rootApiFile.variables==null&&(this.rootApiFile.variables={}),this.rootApiFile.variables[t]=r}addImport({file:t,fileToImport:r}){if(t===r)return;let n=dx((0,Rzr.basename)(r,(0,Rzr.extname)(r)).replaceAll("__package__","root"));if(t===Ws.of(nB))return this.rootApiFile.imports==null&&(this.rootApiFile.imports={}),this.rootApiFile.imports[n]=YN(Hg(I_.of(`/${t}`)),I_.of(`/${r}`)),n;let i=this.getOrCreateFile(t);return i.imports==null&&(i.imports={}),i.imports[n]=YN(Hg(I_.of(`/${t}`)),I_.of(`/${r}`)),n}addType(t,{name:r,schema:n}){let i=this.getOrCreateFile(t);i.types==null&&(i.types={}),i.types[r]=n}addTypeExample(t,r,n){let i=this.getOrCreateFile(t);i.types==null&&(i.types={});let a=i.types[r];a!=null&&(typeof a=="string"?i.types[r]={type:a,examples:[n]}:(a.examples==null&&(a.examples=[]),a.examples.push(n)))}addError(t,{name:r,schema:n}){var a;let i=this.getOrCreateFile(t);i.errors==null&&(i.errors={}),i.errors[r]==null?i.errors[r]=n:((a=i.errors[r])==null?void 0:a.type)!==n.type&&(i.errors[r]={"status-code":n["status-code"],type:"unknown"})}addErrorExample(t,{name:r,example:n}){var f;let i=this.getOrCreateFile(t);if(i.errors==null)return;let a=i.errors[r];if(a==null)return;a.examples==null&&(a.examples=[]),(a.examples.some(d=>nDr(d,n))??!1)||(f=a.examples)==null||f.push(n)}addEndpoint(t,{name:r,schema:n,source:i}){let a=this.getOrCreateFile(t);a.service==null&&(a.service={auth:!1,"base-path":"",endpoints:{}}),i!=null&&(a.service.source=Nen(i)),a.service.endpoints[r]=n}addWebhook(t,{name:r,schema:n}){let i=this.getOrCreateFile(t);i.webhooks==null&&(i.webhooks={}),i.webhooks[r]=n}addChannel(t,{channel:r}){let n=this.getOrCreateFile(t);n.channel=r;let i=this.basePath;i!=null&&(n.channel.path=Rzr.default.join(i,r.path))}addChannelExample(t,{example:r}){let n=this.getOrCreateFile(t);n.channel==null&&(n.channel={path:"",auth:!1}),n.channel.messages==null&&(n.channel.messages={}),n.channel.examples==null&&(n.channel.examples=[]),n.channel.examples.push(r)}addChannelMessage(t,{messageId:r,message:n}){let i=this.getOrCreateFile(t);i.channel==null&&(i.channel={path:"",auth:!1}),i.channel.messages==null&&(i.channel.messages={}),i.channel.messages[r]=n}build(){let t=this.root.getAllFiles();if(this.modifyBasePaths){let i=wQ1(this.rootApiFile);this.packageMarkerFile.service!=null&&(this.packageMarkerFile.service={...this.packageMarkerFile.service,endpoints:Object.fromEntries(Object.entries(this.packageMarkerFile.service.endpoints).map(([a,u])=>[a,{...u,path:`${i}${u.path}`}]))});for(let a of Object.values(t))a.service!=null&&(a.service={...a.service,endpoints:Object.fromEntries(Object.entries(a.service.endpoints).map(([u,f])=>[u,{...f,path:`${i}${f.path}`}]))});this.rootApiFile.environments!=null&&(this.rootApiFile.environments={...Object.fromEntries(Object.entries(this.rootApiFile.environments).map(([a,u])=>typeof u=="string"?[a,u.substring(0,u.length-i.length)]:Jqf(u)?[a,{url:u.url.substring(0,u.url.length-i.length)}]:[a,{urls:Object.fromEntries(Object.entries(u.urls).map(([f,d])=>[f,d.substring(0,d.length-i.length)]))}]))})}let r=this.basePath;if(r!=null){this.packageMarkerFile.service!=null&&(this.packageMarkerFile.service={...this.packageMarkerFile.service,endpoints:Object.fromEntries(Object.entries(this.packageMarkerFile.service.endpoints).map(([i,a])=>[i,{...a,path:Rzr.default.join(r,a.path)}]))});for(let i of Object.values(t))i.service!=null&&(i.service={...i.service,endpoints:Object.fromEntries(Object.entries(i.service.endpoints).map(([a,u])=>[a,{...u,path:Rzr.default.join(r,u.path)}]))})}return{rootApiFile:this.rootApiFile,packageMarkerFile:this.packageMarkerFile,definitionFiles:t}}getOrCreateFile(t){return t===$T?this.packageMarkerFile:this.root.getOrCreateFile(t)}getVersionHeader(){if(this.rootApiFile.version!=null)return typeof this.rootApiFile.version.header=="string"?this.rootApiFile.version.header:this.rootApiFile.version.header.value}};function wQ1(e){if(e.environments==null)return"";let t=Object.entries(e.environments).flatMap(([r,n])=>typeof n=="string"?[n]:Jqf(n)?[n.url]:Object.values(n.urls));return SQ1(t.map(DQ1))}function DQ1(e){try{let r=new URL(e).pathname;return r.endsWith("/")?r.slice(0,-1):r}catch{return""}}function SQ1(e){let t="";for(;;){let r=e.map(i=>i[i.length-t.length-1]),n=r[0];if(n==null||r.some(i=>i!==n))break;t=n+t}return t}function Jqf(e){return e.url!=null}var C1a=class{logger;taskContext;ir;builder;environmentOverrides;authOverrides;detectGlobalHeaders;defaultServerName=void 0;constructor({taskContext:t,ir:r,enableUniqueErrorsPerEndpoint:n,detectGlobalHeaders:i,environmentOverrides:a,authOverrides:u}){this.logger=t.logger,this.taskContext=t,this.ir=r,this.builder=new q1a(r,!1,n),this.detectGlobalHeaders=i,this.environmentOverrides=a,this.authOverrides=u}getSchema(t){return this.ir.schemas[t]}getDefaultServerName(){return this.defaultServerName}setDefaultServerName(t){this.defaultServerName=t}};function Gmu(e){let t=new C1a(e);return $qf(t)}var mAf=yu(gAf(),1);async function iwe(e,t,r=[],{doNotPipeOutput:n=!1,secrets:i=[],substitutions:a={},...u}={}){var o,l;let f=i.reduce((g,O)=>({...g,[O]:"<redacted>"}),a),d=[t,...r].join(" ");for(let[g,O]of Object.entries(f))d=d.replaceAll(g,O);e==null||e.debug(`+ ${d}`);let c=(0,mAf.default)(t,r,u);return n||((o=c.stdout)==null||o.pipe(process.stdout),(l=c.stderr)==null||l.pipe(process.stderr)),c}function L1a(e,{logger:t,...r}={}){return(n,i)=>iwe(t,e,n,{...r,...i})}var V1a=require("fs/promises"),OAf=yu(Jte(),1),gk1="buf.gen.yaml",PAf="output",mk1=`${PAf}/openapi.yaml`,Ok1=`
@@ -1943,7 +1943,7 @@ ${g}
1943
1943
  `+Object.keys(t.union).map(N=>` - ${N}`).join(`
1944
1944
  `)}];let g=typeof l=="string"?l:l.type;if(typeof g!="string")return d5f(o);let O=n.resolveType({type:g,file:a});if(O==null)return[];if(O._type==="named"&&FE(O.declaration))return gNn({typeName:e,typeNameForBreadcrumb:e,rawObject:O.declaration,file:O.file,example:o,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]:S,...x}=o,A=[];return S==null?A.push({message:`Missing property "${j}"`}):A.push(...xW({rawTypeReference:g,example:S,typeResolver:n,exampleResolver:i,file:a,workspace:u,breadcrumbs:f})),A.push(...d5f(x)),A}function d5f(e){return Object.keys(e).map(t=>({severity:"error",message:`Unexpected property "${t}"`}))}function Uja({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f}){return y5(t,{alias:d=>a5f({rawAlias:d,file:r,typeResolver:n,exampleResolver:i,example:a,workspace:u,breadcrumbs:f}),enum:d=>o5f({rawEnum:d,example:a,breadcrumbs:f}),object:d=>gNn({typeName:e,typeNameForBreadcrumb:e,rawObject:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f}),discriminatedUnion:d=>p5f({typeName:e,rawUnion:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f}),undiscriminatedUnion:d=>u5f({rawUnion:d,example:a,file:r,typeResolver:n,exampleResolver:i,workspace:u,breadcrumbs:f})})}var P5f=/^([+-]?\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)?)?)?)?$/,soj=/^[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}$/,coj=/^\d{4}-\d{2}-\d{2}$/;function xW({rawTypeReference:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u}){if(typeof t=="string"&&t.startsWith(_Bt)){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?[]:Evi({expected:f,actual:c})?[]:[{message:`Expected example to be: ${e}. Example is ${t}.`}]}return jZr({type:e,_default:void 0,validation:void 0,visitor:{primitive:f=>loj({primitiveType:f,example:t}),named:f=>{let d=r.getDeclarationOfNamedType({referenceToNamedType:f,file:i});return d==null?[]:Uja({typeName:d.typeName,typeDeclaration:d.declaration,file:d.file,example:t,typeResolver:r,exampleResolver:n,workspace:a,breadcrumbs:u})},map:({keyType:f,valueType:d})=>RO(t)?Object.entries(t).flatMap(([c,o])=>[...xW({rawTypeReference:f,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,c]}),...xW({rawTypeReference:d,example:o,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,c]})]):Z2e(t,"a map"),list:f=>Array.isArray(t)?t.flatMap((d,c)=>xW({rawTypeReference:f,example:d,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${c}`]})):Z2e(t,"a list"),set:f=>{if(!Array.isArray(t))return Z2e(t,"a list");let d=EFo(t);return d.length>0?[{severity:"error",message:`Set has duplicate elements:
1945
1945
  `+d.map(c=>` - ${JSON.stringify(c)}`).join(`
1946
- `)}]:t.flatMap((c,o)=>xW({rawTypeReference:f,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${o}`]}))},optional:f=>t==null?[]:xW({rawTypeReference:f,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u}),unknown:()=>[],literal:f=>{switch(f.type){case"boolean":return cwe(d=>d===f.boolean,f.boolean.toString())(t);case"string":return cwe(d=>d===f.string,`"${f.string}"`)(t);default:Ol(f)}}}})}function loj({primitiveType:e,example:t}){return e.v2!=null?bM._visit(e.v2,{integer:r=>foj({example:t,rules:r.validation}),long:()=>v5f(t),uint:()=>_5f(t),uint64:()=>h5f(t),double:r=>doj({example:t,rules:r.validation}),float:()=>y5f(t),boolean:()=>b5f(t),string:r=>poj({example:t,rules:r.validation}),uuid:()=>g5f(t),date:()=>O5f(t),dateTime:()=>m5f(t),base64:()=>ONn(t),bigInteger:()=>ONn(t),_other:()=>{throw new Error("Unknown primitive type v2: "+e.v2)}}):ID._visit(e.v1,{integer:()=>j5f(t),long:()=>v5f(t),uint:()=>_5f(t),uint64:()=>h5f(t),double:()=>w5f(t),float:()=>y5f(t),boolean:()=>b5f(t),string:()=>ONn(t),uuid:()=>g5f(t),dateTime:()=>m5f(t),date:()=>O5f(t),base64:()=>ONn(t),bigInteger:()=>ONn(t),_other:()=>{throw new Error("Unknown primitive type: "+e.v1)}})}function foj({example:e,rules:t}){let r=j5f(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 doj({example:e,rules:t}){let r=w5f(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 poj({example:e,rules:t}){let r=ONn(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 ONn=cwe(e=>typeof e=="string","a string"),j5f=cwe(e=>Number.isInteger(e),"an integer"),_5f=cwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint"),h5f=cwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint64"),y5f=cwe(e=>typeof e=="number","a float"),w5f=cwe(e=>typeof e=="number","a double"),v5f=cwe(e=>Number.isInteger(e),"an integer"),b5f=cwe(e=>typeof e=="boolean","a boolean"),g5f=cwe(e=>typeof e=="string"&&soj.test(e),"a UUID"),m5f=cwe(e=>typeof e=="string"&&P5f.test(e),"an ISO 8601 timestamp"),O5f=cwe(e=>typeof e=="string"&&coj.test(e)&&P5f.test(e),"a date");function cwe(e,t){return r=>e(r)?[]:Z2e(r,t)}function Evi({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&&Evi({expected:e.container.itemType,actual:t.container.itemType});case"optional":return Evi({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&&Evi({expected:e.container.keyType,actual:t.container.keyType})&&Evi({expected:e.container.valueType,actual:t.container.valueType});case"literal":return t._type!=="container"||t.container._type!==e.container._type?!1:_oj({expected:e.container.literal,actual:t.container.literal});default:Ol(e.container)}if(e._type==="named")return t._type==="named"&&t.filepath===e.filepath&&t.rawName===e.rawName;Ol(e)}function _oj({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:Ol(e)}}async function Vja({_enum:e,file:t}){let r=await Promise.all(e.enum.map(async i=>({...await gG(i),name:t.casingsGenerator.generateNameAndWireValue({wireValue:typeof i=="string"?i:i.value,name:PNn(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 D5f(e,t){let r=t.enum.find(n=>typeof n=="string"?!1:n.value===e);return{name:typeof r=="string"?e:(r==null?void 0:r.name)??e,wasExplicitlySet:!1}}function PNn(e){return typeof e=="string"?{name:e,wasExplicitlySet:!1}:e.name==null?{name:e.value,wasExplicitlySet:!1}:{name:e.name,wasExplicitlySet:!0}}function BPu({typeName:e,typeDeclaration:t,example:r,typeResolver:n,exampleResolver:i,fileContainingType:a,fileContainingExample:u,workspace:f}){return y5(t,{alias:d=>gM.alias({value:gT({example:r,rawTypeBeingExemplified:typeof d=="string"?d:d.type,fileContainingRawTypeReference:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f})}),object:d=>S5f({typeName:e,rawObject:d,example:r,fileContainingType:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f}),discriminatedUnion:d=>{let c=frn(d);if(!RO(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 g=typeof l=="string"?l:typeof l.type=="string"?l.type:void 0;return gM.union({discriminant:u.casingsGenerator.generateNameAndWireValue({name:Zzr(d).name,wireValue:c}),singleUnionType:yoj({rawValueType:g,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 gM.enum({value:u.casingsGenerator.generateNameAndWireValue({name:D5f(r,d).name,wireValue:r})})},undiscriminatedUnion:d=>{for(let[c,o]of d.union.entries())if(xW({rawTypeReference:typeof o=="string"?o:o.type,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:f,breadcrumbs:[]}).length===0)return gM.undiscriminatedUnion({index:c,singleUnionType:gT({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 gT({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:jZr({type:r,_default:void 0,validation:void 0,visitor:{primitive:l=>hoj({example:f,typeBeingExemplified:l.v1}),map:({keyType:l,valueType:g})=>{if(!RO(f))throw new Error("Example is not an object");return Q0.container(hT.map({map:Object.entries(f).map(([O,j])=>({key:gT({example:O,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u}),value:gT({example:j,fileContainingExample:d,rawTypeBeingExemplified:g,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})})),keyType:n.parseTypeReference(l),valueType:n.parseTypeReference(g)}))},list:l=>{if(!Array.isArray(f))throw new Error("Example is not a list");return Q0.container(hT.list({list:f.map(g=>gT({example:g,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 Q0.container(hT.set({set:f.map(g=>gT({example:g,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})),itemType:n.parseTypeReference(l)}))},optional:l=>Q0.container(hT.optional({optional:f!=null?gT({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 Q0.container(hT.literal({literal:Xv.boolean(l.boolean)}));case"string":return Q0.container(hT.literal({literal:Xv.string({original:l.string})}));default:Ol(l)}},named:l=>{let g=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 Q0.named({typeName:j,shape:BPu({typeName:j,typeDeclaration:g.declaration,fileContainingType:g.file,fileContainingExample:d,example:f,typeResolver:i,exampleResolver:a,workspace:u})})},unknown:()=>Q0.unknown(c)}}),jsonExample:c}}function hoj({example:e,typeBeingExemplified:t}){return ID._visit(t,{string:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},dateTime:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.datetime({datetime:new Date(e),raw:e}))},date:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.date(e))},base64:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},uint:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.uint(e))},uint64:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.uint64(e))},integer:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.integer(e))},float:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.float(e))},double:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.double(e))},long:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.long(e))},boolean:()=>{if(typeof e!="boolean")throw new Error("Example is not a boolean");return Q0.primitive(Xv.boolean(e))},uuid:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.uuid(e))},bigInteger:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},_other:()=>{throw new Error("Unknown primitive type: "+t)}})}function S5f({typeName:e,rawObject:t,example:r,fileContainingType:n,fileContainingExample:i,typeResolver:a,exampleResolver:u,workspace:f}){if(!RO(r))throw new Error(`Example is not an object. Got: ${JSON.stringify(r)}`);return gM.object({properties:t.properties!=null||t.extends!=null?Object.entries(r).reduce((d,[c,o])=>{let l=E5f({typeName:e,wirePropertyKey:c,rawObject:t,typeResolver:a,file:n});if(l==null)throw new Error("Could not find original type declaration for property: "+c);let g=gT({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:MW({propertyKey:c,property:l.rawPropertyType}).name,wireValue:c}),value:g,originalTypeDeclaration:l.typeName}),d},[]):[]})}function E5f({typeName:e,wirePropertyKey:t,rawObject:r,typeResolver:n,file:i}){var u;let a=(u=r.properties)==null?void 0:u[t];return a!=null?{typeName:e,rawPropertyType:a,file:i}:Mvi({wirePropertyKey:t,extends_:r.extends,typeResolver:n,file:i})}function Mvi({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"||!FE(u.declaration))throw new Error("Extension is not of a named object");let f=E5f({wirePropertyKey:e,rawObject:u.declaration,typeResolver:r,typeName:u.name,file:u.file});if(f!=null)return f}}}function yoj({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:mNn({unionKey:d,rawSingleUnionType:t}).name,wireValue:d});if(e==null)return{wireDiscriminantValue:o,shape:D3.noProperties()};let l=zPu({rawSingleUnionType:t,rawValueType:e,parsedValueType:r.parseTypeReference(e),file:r,typeResolver:i});switch(l.propertiesType){case"singleProperty":{if(!RO(u))throw new Error("Example is not an object");return{wireDiscriminantValue:o,shape:D3.singleProperty(gT({example:u[l.name.wireValue],rawTypeBeingExemplified:e,typeResolver:i,exampleResolver:a,fileContainingRawTypeReference:r,fileContainingExample:n,workspace:c}))}}case"samePropertiesAsObject":{if(!RO(u))throw new Error("Example is not an object");let{[f]:g,...O}=u,j=i.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:e,file:r});if(!FE(j.declaration))throw new Error(`${e} is not an object`);let S={typeId:l.typeId,fernFilepath:l.fernFilepath,name:l.name};return{wireDiscriminantValue:o,shape:D3.samePropertiesAsObject({typeId:nw.generateTypeId(S),object:S5f({rawObject:j.declaration,example:O,fileContainingType:j.file,fileContainingExample:n,typeResolver:i,exampleResolver:a,typeName:S,workspace:c})})}}default:Ol(l)}}async function Wja({file:e,queryParameterKey:t,queryParameter:r}){let{name:n}=DEr({queryParameterKey:t,queryParameter:r}),i=e.parseTypeReference(r);return{...await gG(r),name:e.casingsGenerator.generateNameAndWireValue({wireValue:t,name:n}),valueType:i,allowMultiple:typeof r!="string"&&r["allow-multiple"]!=null?r["allow-multiple"]:!1}}function DEr({queryParameterKey:e,queryParameter:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function voj(e){let t=JSON.stringify(e);return M5f.default.createHash("sha256").update(t).digest("hex")}function x5f({service:e,endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,variableResolver:u,file:f,workspace:d}){let c=goj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:a,variableResolver:u,file:f,workspace:d});return{id:r.name??voj(r),name:r.name!=null?f.casingsGenerator.generateName(r.name):void 0,docs:r.docs,url:woj({file:f,service:e,endpoint:t,example:r,pathParams:c}),...c,...moj({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])=>{var O,j;let g=typeof t.request!="string"?(j=(O=t.request)==null?void 0:O["query-parameters"])==null?void 0:j[o]:void 0;if(g==null)throw new Error(`Query parameter ${o} does not exist`);return{name:f.casingsGenerator.generateNameAndWireValue({name:DEr({queryParameterKey:o,queryParameter:g}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof g=="string"?g:g.type,typeResolver:n,exampleResolver:a,fileContainingRawTypeReference:f,fileContainingExample:f,workspace:d}),shape:boj({queryParameter:g})}}):[],request:Ooj({endpoint:t,example:r,typeResolver:n,exampleResolver:a,file:f,workspace:d}),response:Poj({endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,file:f,workspace:d})}}function boj({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?uR.exploded():uR.single()}function goj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,variableResolver:a,file:u,workspace:f}){var g,O,j;let d=[],c=[],o=[],l=({name:S,pathParameterDeclaration:x,examplePathParameter:A})=>{let N=xvi({parameter:x,variableResolver:a,file:u});return{name:S,value:gT({example:A,rawTypeBeingExemplified:N.rawType,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:N.file,fileContainingExample:u,workspace:f})}};if(r["path-parameters"]!=null)for(let[S,x]of Object.entries(r["path-parameters"])){let A=(g=u.rootApiFile["path-parameters"])==null?void 0:g[S],N=(O=e["path-parameters"])==null?void 0:O[S],z=(j=t["path-parameters"])==null?void 0:j[S];if(A!=null)d.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:A,examplePathParameter:x}));else if(z!=null)o.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:z,examplePathParameter:x}));else if(N!=null)c.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:N,examplePathParameter:x}));else throw new Error(`Path parameter ${S} does not exist`)}return{rootPathParameters:d,endpointPathParameters:o,servicePathParameters:c}}function moj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:u}){var c,o,l;let f=[],d=[];if(r.headers!=null)for(let[g,O]of Object.entries(r.headers)){let j=typeof t.request!="string"?(o=(c=t.request)==null?void 0:c.headers)==null?void 0:o[g]:void 0,S=(l=e.headers)==null?void 0:l[g];if(j!=null)d.push({name:a.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:g,header:j}).name,wireValue:g}),value:gT({example:O,rawTypeBeingExemplified:typeof j=="string"?j:j.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else if(S!=null)f.push({name:a.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:g,header:S}).name,wireValue:g}),value:gT({example:O,rawTypeBeingExemplified:typeof S=="string"?S:S.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else throw new Error(`Header ${g} does not exist`)}return{endpointHeaders:d,serviceHeaders:f}}function Ooj({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var d,c;let u=typeof e.request!="string"?(d=e.request)==null?void 0:d.body:e.request;if(u==null||typeof u=="string"&&oli(u)!=null)return;if(!m7(u))return AJ.reference(gT({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(!RO(t.request))throw new Error(`Example is not an object. Got: ${JSON.stringify(t.request)}`);let f=[];for(let[o,l]of Object.entries(t.request)){let g=(c=u.properties)==null?void 0:c[o],O=typeof g=="string"?g:g==null?void 0:g.type;if(!(O!=null&&STe(O)!=null))if(g!=null)f.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:o,property:g}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof g!="string"?g.type:g,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let j=Mvi({extends_:u.extends,wirePropertyKey:o,typeResolver:r,file:i});if(j==null)throw new Error("Could not find original type declaration for property: "+o);f.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:o,property:j.rawPropertyType}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof j.rawPropertyType=="string"?j.rawPropertyType:j.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:j.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:j.typeName})}}return AJ.inlinedRequestBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t.request,file:i}).resolvedExample,properties:f})}function Poj({endpoint:e,example:t,typeResolver:r,errorResolver:n,exampleResolver:i,file:a,workspace:u}){return t.response==null?w3.ok(Qq.body(void 0)):wZr(e,t.response,{body:f=>{if(f.error!=null){let d=n.getDeclarationOrThrow(f.error,a);return w3.error({error:Xzr({errorName:f.error,file:a}),body:d.declaration.type!=null?gT({example:f.body,rawTypeBeingExemplified:d.declaration.type,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:d.file,fileContainingExample:a,workspace:u}):void 0})}return w3.ok(Qq.body(joj({endpoint:e,example:f,typeResolver:r,exampleResolver:i,file:a,workspace:u})))},stream:f=>{var c;let d=typeof e["response-stream"]=="string"?e["response-stream"]:(c=e["response-stream"])==null?void 0:c.type;return w3.ok(Qq.stream(f.stream.map(o=>{if(d!=null)return gT({example:o,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})}).filter(RS)))},events:f=>{var c;let d=typeof e["response-stream"]=="string"?e["response-stream"]:(c=e["response-stream"])==null?void 0:c.type;return w3.ok(Qq.sse(f.stream.map(({event:o,data:l})=>{if(d==null)return;let g=gT({example:l,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u});return{event:o,data:g}}).filter(RS)))}})}function joj({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;let u=typeof e.response!="string"?(f=e.response)==null?void 0:f.type:e.response;if(u!=null&&t.body!=null)return gT({example:t.body,rawTypeBeingExemplified:u,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})}function woj({file:e,service:t,endpoint:r,example:n,pathParams:i}){let a=HS(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 T5f({endpoint:e,file:t,typeResolver:r}){var i;return{body:await Doj({endpoint:e,file:t,typeResolver:r}),statusCode:typeof e.response!="string"?(i=e.response)==null?void 0:i["status-code"]:void 0}}async function Doj({endpoint:e,file:t,typeResolver:r}){let n=await Soj({endpoint:e,file:t,typeResolver:r}),i=await Eoj({endpoint:e,file:t,typeResolver:r});if(n!=null&&i!=null){let a;switch(n.type){case"fileDownload":{a=kre.fileDownload({...n});break}case"json":{a=kre.json({...n.value});break}case"text":{a=kre.text({...n});break}default:Ol(n)}return pA.streamParameter({nonStreamResponse:a,streamResponse:i})}else{if(n!=null)return n;if(i!=null)return pA.streaming(i)}}async function Soj({endpoint:e,file:t,typeResolver:r}){let{response:n}=e;if(n!=null){let i=typeof n!="string"?n.docs:void 0,a=typeof n=="string"?n:n.type;return STe(a)!=null?pA.fileDownload({docs:i}):sli(a)!=null?pA.text({docs:i}):await Moj(n,i,t,r)}}async function Eoj({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 o2n(a)?ene.text({docs:i}):typeof n!="string"&&u==="sse"?ene.sse({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0}):ene.json({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0})}}async function Moj(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?pA.json(mCt.nestedPropertyAsResponse({docs:t,responseBodyType:i,responseProperty:await wvi({typeResolver:n,file:r,resolvedType:a,property:u})})):pA.json(mCt.response({docs:t,responseBodyType:i}))}async function q5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.cursor({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.cursor}),next:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.next_cursor}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results})})}async function C5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.offset({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.offset}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results}),step:i.step!=null?await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.step}):void 0,hasNextPage:i.hasNextPage!=null?await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.hasNextPage}):void 0})}function A5f(e){return xoj(e)?{type:"offset",offset:VAt(e.offset),results:jEr(e.results),step:e.step!=null?VAt(e.step):void 0,hasNextPage:e["has-next-page"]!=null?jEr(e["has-next-page"]):void 0}:{type:"cursor",cursor:VAt(e.cursor),next_cursor:jEr(e.next_cursor),results:jEr(e.results)}}function xoj(e){return e.offset!=null&&e.results!=null}async function N5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n}){let i=typeof n.pagination=="boolean"?t.rootApiFile.pagination:n.pagination;if(!i)return;let a=A5f(i);switch(a.type){case"cursor":return await q5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});case"offset":return C5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});default:Ol(a)}}function z5f({errors:e,file:t}){return e==null?[]:Object.values(e).map(r=>{let n=typeof r=="string"?r:r.error,i=Xzr({errorName:n,file:t});return{docs:typeof r!="string"?r.docs:void 0,error:i}})}function Hja({source:e}){return{filepath:e.relativeFilePath,packageName:e.packageName,options:e.csharpNamespace!=null?{csharp:{namespace:e.csharpNamespace}}:void 0}}function B5f({source:e,serviceNameOverride:t}){let r=t??e.serviceName;if(r!=null)return{file:Hja({source:e}),name:Qzr.generateName(r)}}async function I5f({file:e,serviceDeclaration:t,sourceResolver:r}){var a,u;if(t.source==null)return vTe.http();let n=await r.resolveSourceOrThrow({source:t.source,file:e});if(n==null||n.type!=="protobuf")return vTe.http();let i=B5f({source:n,serviceNameOverride:(u=(a=t.transport)==null?void 0:a.grpc)==null?void 0:u["service-name"]});if(i==null)throw new Error(`Failed to resolve service name from ${n.relativeFilePath}.`);return vTe.grpc({service:i})}async function R5f({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 g=await jNn({pathParameters:r["path-parameters"],location:bTe.Service,file:n,variableResolver:d}),O=await I5f({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Jne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:FAt(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([x,A])=>k2e({headerKey:x,header:A,file:n}))):[],pathParameters:g,encoding:Aoj(O),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([x,A])=>{var C,U;let N=await jNn({pathParameters:A["path-parameters"],location:bTe.Endpoint,file:n,variableResolver:d}),z={...await gG(A),id:"",name:n.casingsGenerator.generateName(x),displayName:A["display-name"],auth:A.auth??r.auth,idempotent:A.idempotent??r.idempotent??!1,baseUrl:A.url??r.url??e,method:A.method!=null?Coj(A.method):Qre.Post,path:FAt(A.path),fullPath:FAt(n.rootApiFile["base-path"]!=null?HS(n.rootApiFile["base-path"],r["base-path"],A.path):HS(r["base-path"],A.path)),pathParameters:N,allPathParameters:[...t,...g,...N],queryParameters:typeof A.request!="string"&&((C=A.request)==null?void 0:C["query-parameters"])!=null?await Promise.all(Object.entries(A.request["query-parameters"]).map(async([Y,te])=>await Wja({file:n,queryParameterKey:Y,queryParameter:te}))):[],headers:typeof A.request!="string"&&((U=A.request)==null?void 0:U.headers)!=null?await Promise.all(Object.entries(A.request.headers).map(([Y,te])=>k2e({headerKey:Y,header:te,file:n}))):[],requestBody:Q8f({request:A.request,file:n}),sdkRequest:await r5f({service:r,request:A.request,endpoint:A,endpointKey:x,file:n,typeResolver:a,propertyResolver:u}),response:await T5f({endpoint:A,file:n,typeResolver:a}),errors:[...z5f({errors:A.errors,file:n}),...o],userSpecifiedExamples:A.examples!=null?A.examples.map(Y=>{var te;return{example:x5f({service:r,endpoint:A,example:Y,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:(te=Y["code-samples"])==null?void 0:te.map(G=>i5f({codeSample:G,file:n}))}}):[],autogeneratedExamples:[],pagination:await N5f({propertyResolver:u,file:n,endpointName:x,endpointSchema:A})};return z.id=nw.generateEndpointId(j,z),z}))}}async function jNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>Toj({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function Toj({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await gG(t),name:n.casingsGenerator.generateName(e),valueType:qoj({parameter:t,variableResolver:i,file:n}),location:r,variable:F2n(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function qoj({parameter:e,variableResolver:t,file:r}){let n=xvi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function xvi({parameter:e,variableResolver:t,file:r}){let n=$ja({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function $ja({parameter:e,variableResolver:t,file:r}){if(F2n(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 Coj(e){switch(e){case"GET":return Qre.Get;case"POST":return Qre.Post;case"PUT":return Qre.Put;case"PATCH":return Qre.Patch;case"DELETE":return Qre.Delete;default:Ol(e)}}async function k2e({headerKey:e,header:t,file:r}){let{name:n}=OFt({headerKey:e,header:t});return{...await gG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function OFt({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function Aoj(e){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:Ol(e)}}var mG={};Wb(mG,{validateObjectExample:()=>gNn,validateTypeExample:()=>Uja,validateTypeReferenceExample:()=>xW});function F5f(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function Jja({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function L5f({endpointResolver:e,propertyResolver:t,file:r,refreshTokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:nw.generateEndpointIdFromResolvedEndpoint(i),serviceId:nw.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:Jja({fernFilePath:i.file.fernFilepath})?void 0:nw.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 U5f({endpointResolver:e,propertyResolver:t,file:r,tokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:nw.generateEndpointIdFromResolvedEndpoint(i),serviceId:nw.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:Jja({fernFilePath:i.file.fernFilepath})?void 0:nw.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 V5f({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await U5f({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 L5f({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 Tvi={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}},IPu={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 W5f(e){var t,r;return{endpoint:e["get-token"].endpoint,requestProperties:Noj({requestProperties:(t=e["get-token"])==null?void 0:t["request-properties"]}),responseProperties:zoj({responseProperties:(r=e["get-token"])==null?void 0:r["response-properties"]})}}function H5f(e){var t,r;if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Boj({requestProperties:(t=e["refresh-token"])==null?void 0:t["request-properties"]}),responseProperties:Ioj({responseProperties:(r=e["refresh-token"])==null?void 0:r["response-properties"]})}}function Noj({requestProperties:e}){if(e==null)return Tvi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?VAt(t):Tvi.requestProperties.client_id,client_secret:r!=null?VAt(r):Tvi.requestProperties.client_secret,scopes:n!=null?VAt(n):Tvi.requestProperties.scopes}}function zoj({responseProperties:e}){return $5f({responseProperties:e,defaultValue:Tvi.responseProperties})}function Boj({requestProperties:e}){if(e==null)return IPu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?VAt(t):IPu.requestProperties.refresh_token}}function Ioj({responseProperties:e}){return $5f({responseProperties:e,defaultValue:IPu.responseProperties})}function $5f({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?jEr(r):t.access_token,expires_in:n!=null?jEr(n):t.expires_in,refresh_token:i!=null?jEr(i):t.refresh_token}}async function X5f({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:J3r.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return cli(e.auth,{single:async a=>{let u=await J5f({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:J3r.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:J3r.Any,schemes:await Promise.all(a.map(async u=>await J5f({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function J5f({reference:e,authSchemeDeclarations:t,file:r,propertyResolver:n,endpointResolver:i}){let a=(f,d)=>{let c=t==null?void 0:t[f];if(c==null)throw new Error("Unknown auth scheme: "+f);return uKo(c,{header:async o=>VV.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=>K5f({file:r,docs:d,rawScheme:o}),bearer:async o=>G5f({file:r,docs:d,rawScheme:o}),oauth:async o=>await Y5f({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return G5f({file:r,docs:void 0,rawScheme:void 0});case"basic":return K5f({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await Y5f({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function G5f({file:e,docs:t,rawScheme:r}){var n,i;return VV.bearer({docs:t,token:e.casingsGenerator.generateName(((n=r==null?void 0:r.token)==null?void 0:n.name)??"token"),tokenEnvVar:(i=r==null?void 0:r.token)==null?void 0:i.env})}function K5f({file:e,docs:t,rawScheme:r}){var n,i,a,u;return VV.basic({docs:t,username:e.casingsGenerator.generateName(((n=r==null?void 0:r.username)==null?void 0:n.name)??"username"),usernameEnvVar:(i=r==null?void 0:r.username)==null?void 0:i.env,password:e.casingsGenerator.generateName(((a=r==null?void 0:r.password)==null?void 0:a.name)??"password"),passwordEnvVar:(u=r==null?void 0:r.password)==null?void 0:u.env})}async function Y5f({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r==null?void 0:r.type){case"client-credentials":return VV.oauth({docs:t,configuration:G3r.clientCredentials(await V5f({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:W5f(r),refreshTokenEndpoint:H5f(r)}))});default:throw new Error(`Unknown OAuth type: '${r==null?void 0:r.type}'`)}}async function Q5f({file:e,rawApiFileSchema:t}){if(t.version!=null)return Y3r.header({header:await Roj({file:e,header:t.version.header}),value:await Foj({file:e,versionDeclaration:t.version})})}async function Roj({file:e,header:t}){return typeof t=="string"?await k2e({file:e,headerKey:t,header:{type:"string"}}):await k2e({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Foj({file:e,versionDeclaration:t}){return await Vja({_enum:{default:t.default,enum:t.values},file:e})}async function Z5f({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:Jne(d.availability),docs:d.docs,origin:d.origin,body:Voj({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Jne(e.availability),path:FAt(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])=>k2e({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await jNn({pathParameters:e["path-parameters"],location:bTe.Endpoint,file:i,variableResolver:n}):[],queryParameters:e["query-parameters"]!=null?await Promise.all(Object.entries(e["query-parameters"]).map(async([f,d])=>{let{name:c}=DEr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await gG(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=Hoj({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:Joj({channel:e,example:f,pathParams:d}),...d,...$oj({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])=>{var g;let l=(g=e["query-parameters"])==null?void 0:g[c];if(l==null)throw new Error(`Query parameter ${c} does not exist`);return{name:i.casingsGenerator.generateNameAndWireValue({name:DEr({queryParameterKey:c,queryParameter:l}).name,wireValue:c}),value:gT({example:o,rawTypeBeingExemplified:typeof l=="string"?l:l.type,typeResolver:t,exampleResolver:r,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),shape:Loj({queryParameter:l})}}):[],messages:f.messages.map(c=>{var l;let o=(l=e.messages)==null?void 0:l[c.type];if(o==null)throw new Error(`Message ${c.type} does not exist`);return{type:c.type,body:Uoj({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Loj({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?uR.exploded():uR.single()}function Uoj({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;if(!Goj(e.body))return jCt.reference(gT({example:t,rawTypeBeingExemplified:typeof e.body!="string"?e.body.type:e.body,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}));if(!RO(t))throw new Error("Example must be an object");let u=[];for(let[d,c]of Object.entries(t)){let o=(f=e.body.properties)==null?void 0:f[d];if(o!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:d,property:o}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof o!="string"?o.type:o,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let l=Mvi({extends_:e.body.extends,wirePropertyKey:d,typeResolver:r,file:i});if(l==null)throw new Error("Could not find original type declaration for property: "+d);u.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:d,property:l.rawPropertyType}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof l.rawPropertyType=="string"?l.rawPropertyType:l.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:l.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:l.typeName})}}return jCt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function Voj({body:e,file:t}){return typeof e=="string"?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):Woj(e)?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):PTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:UAt(e.extends??[]).map(r=>k9({typeName:r,file:t})),properties:[]})}function Woj(e){return e.type!=null}function Hoj({channel:e,example:t,typeResolver:r,exampleResolver:n,variableResolver:i,file:a,workspace:u}){var c;let f=[],d=({name:o,pathParameterDeclaration:l,examplePathParameter:g})=>{let O=xvi({parameter:l,variableResolver:i,file:a});return{name:o,value:gT({example:g,rawTypeBeingExemplified:O.rawType,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:O.file,fileContainingExample:a,workspace:u})}};if(t["path-parameters"]!=null)for(let[o,l]of Object.entries(t["path-parameters"])){let g=(c=e["path-parameters"])==null?void 0:c[o];if(g!=null)f.push(d({name:a.casingsGenerator.generateName(o),pathParameterDeclaration:g,examplePathParameter:l}));else throw new Error(`Path parameter ${o} does not exist`)}return{pathParameters:f}}function $oj({channel:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;let u=[];if(t.headers!=null)for(let[d,c]of Object.entries(t.headers)){let o=(f=e.headers)==null?void 0:f[d];if(o!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:d,header:o}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof o=="string"?o:o.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})});else throw new Error(`Heder ${d} does not exist`)}return{headers:u}}function Joj({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 Goj(e){return typeof e=="string"?!1:e.extends!=null||e.properties!=null}function RPu({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:ADr(n,{singleBaseUrl:()=>vCt.singleBaseUrl(Koj({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>vCt.multipleBaseUrls(Yoj({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function Koj({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>ADr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:k5f(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function Yoj({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>ADr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:sy(a.urls,u=>k5f(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function k5f(e){return e.endsWith("/")?e.slice(0,-1):e}function ezf({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:gT({example:f.value,rawTypeBeingExemplified:t.type,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})});return{name:Xzr({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 tzf="content";function rzf(e,t){if(e==null||e.strategy==="status-code")return OCt.statusCode();switch(e.strategy){case"property":return OCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:tzf,wireValue:tzf})});default:Ol(e)}}function nzf({readme:e,services:t}){let r=new FPu(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 FPu=class{endpoints={};constructor(t){this.endpoints=this.buildEndpoints(t)}getEndpointForReadme(t){let r=Qoj({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){var r,n;return this.getEndpointKey({method:t.method,path:Xoj(t),stream:((n=(r=t.response)==null?void 0:r.body)==null?void 0:n.type)==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function Xoj(e){let t="";e.fullPath.head.length>0&&(t=HS(t,e.fullPath.head));for(let r of e.fullPath.parts)t=HS(t,"{"+r.pathParameter+"}"),r.tail.length>0&&(t=HS(t,r.tail));return t.startsWith("/")?t:`/${t}`}function Qoj({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 izf({webhooks:e,file:t,typeResolver:r,exampleResolver:n,workspace:i}){let a=[];for(let[u,f]of Object.entries(e))a.push({id:nw.generateWebhookId(t.fernFilepath,u),availability:Jne(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])=>k2e({headerKey:d,header:c,file:t}))):[],payload:Zoj({payload:f.payload,file:t}),examples:f.examples!=null?euj({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function Zoj({payload:e,file:t}){return typeof e=="string"?ine.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):Gja(e)?ine.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):ine.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:UAt(e.extends).map(r=>k9({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>koj({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Jne(n.availability):void 0,file:t})):[]})}function koj({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:MW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function euj({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:Gja(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:gT({example:f.payload,rawTypeBeingExemplified:u,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}));if(!RO(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:gT({example:f.payload,rawTypeBeingExemplified:"map<string, unknown>",fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}))}function Gja(e){return e.type!=null}function wNn(e){var r;let t={};for(let[n,i]of Object.entries(e))if(typeof i!="string")for(let a of i.audiences??[])t[a]==null&&(t[a]=new Set),(r=t[a])==null||r.add(n);return t}function azf({name:e,source:t}){return Yw.userDefined({file:Hja({source:t}),name:Qzr.generateName(e)})}function ozf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=tuj({type:e.proto.type});if(t!=null)return t}}function tuj({type:e}){switch(e){case"google.protobuf.Any":return Yw.wellKnown(th.any());case"google.protobuf.Api":return Yw.wellKnown(th.api());case"google.protobuf.BoolValue":return Yw.wellKnown(th.boolValue());case"google.protobuf.BytesValue":return Yw.wellKnown(th.bytesValue());case"google.protobuf.DoubleValue":return Yw.wellKnown(th.doubleValue());case"google.protobuf.Duration":return Yw.wellKnown(th.duration());case"google.protobuf.Empty":return Yw.wellKnown(th.empty());case"google.protobuf.Enum":return Yw.wellKnown(th.enum());case"google.protobuf.EnumValue":return Yw.wellKnown(th.enumValue());case"google.protobuf.Field":return Yw.wellKnown(th.field());case"google.protobuf.FieldCardinality":return Yw.wellKnown(th.fieldCardinality());case"google.protobuf.FieldKind":return Yw.wellKnown(th.fieldKind());case"google.protobuf.FieldMask":return Yw.wellKnown(th.fieldMask());case"google.protobuf.FloatVlaue":return Yw.wellKnown(th.floatValue());case"google.protobuf.Int32Value":return Yw.wellKnown(th.int32Value());case"google.protobuf.Int64Value":return Yw.wellKnown(th.int64Value());case"google.protobuf.ListValue":return Yw.wellKnown(th.listValue());case"google.protobuf.Method":return Yw.wellKnown(th.method());case"google.protobuf.Mixin":return Yw.wellKnown(th.mixin());case"google.protobuf.NullValue":return Yw.wellKnown(th.nullValue());case"google.protobuf.Option":return Yw.wellKnown(th.option());case"google.protobuf.SourceContext":return Yw.wellKnown(th.sourceContext());case"google.protobuf.StringValue":return Yw.wellKnown(th.stringValue());case"google.protobuf.Struct":return Yw.wellKnown(th.struct());case"google.protobuf.Syntax":return Yw.wellKnown(th.syntax());case"google.protobuf.Timestamp":return Yw.wellKnown(th.timestamp());case"google.protobuf.Type":return Yw.wellKnown(th.type());case"google.protobuf.Uint32Value":return Yw.wellKnown(th.uint32Value());case"google.protobuf.Uint64Value":return Yw.wellKnown(th.uint64Value());case"google.protobuf.Value":return Yw.wellKnown(th.value())}}async function uzf({generic:e,file:t,typeResolver:r}){var u;let n=typeof e=="string"?e:e.type,i=j3(n);if(i==null)throw new Error(`Invalid generic type definition: ${n}`);let a=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:n,file:t});if(i.arguments&&FE(a.declaration)){let f=((u=j3(a.typeName))==null?void 0:u.arguments)??[],d=Object.entries(a.declaration.properties??{}).map(([c,o])=>{var g;let l=o;return typeof o=="string"&&(f==null?void 0:f.includes(o))&&(l=((g=i.arguments)==null?void 0:g[f.indexOf(o)])??o),[c,l]});return MC.object({extends:UAt(a.declaration.extends).map(c=>k9({typeName:c,file:t})),properties:await jvi({properties:Object.fromEntries(d)},t),extraProperties:a.declaration["extra-properties"]??!1,extendedProperties:void 0})}throw new Error(`Generic type definition not supported: ${n}`)}async function szf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return yTe(n)?await uzf({generic:n,file:t,typeResolver:r}):MC.alias({aliasOf:t.parseTypeReference(e),resolvedType:ruj({aliasOf:n,file:t,typeResolver:r})})}function ruj({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return WV.primitive(n.originalTypeReference.primitive);case"container":return WV.container(n.originalTypeReference.container);case"unknown":return WV.unknown();case"named":{let i=FE(n.declaration)?PCt.Object:cNr(n.declaration)?PCt.Union:SCt(n.declaration)?PCt.Enum:U2n(n.declaration)?PCt.UndiscriminatedUnion:Ol(n.declaration);return WV.named({name:n.name,shape:i})}}}function czf({union:e,file:t}){return MC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function lzf(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 UPu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new LPu}){let i=y5(e,{alias:u=>{var c;let f=typeof u=="string"?u:u.type,d=j3(f);if(d!=null){let o=new Set(d.arguments??[]),l=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:f,file:t}),g=(c=j3(l.typeName))==null?void 0:c.arguments;if(FE(l.declaration)){let O=lzf(l.declaration);g&&O.filter(j=>!g.includes(j)).forEach(j=>o.add(j))}return Array.from(o)}return[f]},object:u=>lzf(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=BJ({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=k9({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(yTe(o.typeName))continue;a.push(...UPu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var LPu=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 fzf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await gG(t),d=k9({typeName:e,file:r}),c=UPu({typeDeclaration:t,file:r,typeResolver:n}),o={};FE(t)&&(o=wNn(t.properties??{}));let l=await iuj({file:r,typeDeclaration:t,typeName:e,sourceResolver:a});return{propertiesByAudience:o,typeDeclaration:{...f,name:d,shape:await nuj({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(g=>g.typeId)),encoding:auj({typeDeclaration:t,source:l}),source:l,userProvidedExamples:typeof t!="string"&&t.examples!=null?t.examples.map(g=>({name:g.name!=null?r.casingsGenerator.generateName(g.name):void 0,docs:g.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:g.value,file:r}).resolvedExample,shape:BPu({typeName:d,example:g.value,typeResolver:n,exampleResolver:i,typeDeclaration:t,fileContainingType:r,fileContainingExample:r,workspace:u})})):[],autogeneratedExamples:[]},descendantFilepaths:new Set(c.map(g=>g.fernFilepath))}}async function nuj({typeDeclaration:e,file:t,typeResolver:r}){return await y5(e,{alias:n=>szf({alias:n,file:t,typeResolver:r}),object:n=>Y8f({object:n,file:t}),discriminatedUnion:n=>f5f({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>czf({union:n,file:t}),enum:async n=>MC.enum(await Vja({_enum:n,file:t}))})}async function iuj({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=ozf({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(azf({source:i,name:r}))}function auj({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?ouj(e.encoding):uuj(t)}function ouj(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function uuj(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}var Kja=yu(Ksu(),1),Yja=class{ir;userProvidedTypeExamples;types;MAX_EXAMPLE_DEPTH=2;flattenedProperties;constructor(t){this.ir=t,this.types=new Map;for(let r of Object.values(t.types))this.types.set(r.name.typeId,r);this.userProvidedTypeExamples=new Map;for(let[r,n]of Object.entries(this.ir.types)){let i=n.userProvidedExamples;i&&i.length>0&&this.userProvidedTypeExamples.set(r,i[0])}this.flattenedProperties=new Map;for(let r of this.types.keys())this.flattenedProperties.set(r,this.getFlattenedProperties(r,0))}convertPropertyToExampleProperty(t,r,n){return{name:r.name,value:this.generateExampleTypeReference(r.valueType,n),originalTypeDeclaration:t}}getFlattenedProperties(t,r){let n=this.types.get(t);return n===void 0?[]:this.flattenedProperties.get(t)??n.shape._visit({alias:a=>a.aliasOf._visit({container:()=>[],named:u=>this.getFlattenedProperties(u.typeId,r),primitive:()=>[],unknown:()=>[],_other:()=>[]}),enum:()=>(this.flattenedProperties.set(t,[]),[]),object:a=>{let u=[...a.properties.map(f=>this.convertPropertyToExampleProperty(n.name,f,r)),...a.extends.flatMap(f=>this.getFlattenedProperties(f.typeId,r))];return this.flattenedProperties.set(t,u),u},union:a=>{let u=[...a.baseProperties.map(f=>this.convertPropertyToExampleProperty(n.name,f,r)),...a.extends.flatMap(f=>this.getFlattenedProperties(f.typeId,r))];return this.flattenedProperties.set(t,u),u},undiscriminatedUnion:a=>(this.flattenedProperties.set(t,[]),[]),_other:()=>{throw new Error("Attempting to type declaration for an unknown type.")}})}enrichWithAutogeneratedExamples(){for(let[t,r]of Object.entries(this.ir.services))for(let n of r.endpoints){let i=this.generateEndpointExamples(n,this.ir.pathParameters,r.pathParameters,r.headers);n.autogeneratedExamples=i.map(a=>({example:a}))}return this.ir}getExampleWithoutResponse(t,r,n,i){let a=[...t.userSpecifiedExamples.map(o=>o.example).filter(RS)],u={rootPathParameters:r.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.rootPathParameters).find(l=>l.name===o.name)})),servicePathParameters:n.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.servicePathParameters).find(l=>l.name===o.name)})),endpointPathParameters:t.pathParameters.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.endpointPathParameters).find(l=>l.name===o.name)})),serviceHeaders:i.map(o=>this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.serviceHeaders).find(l=>l.name===o.name)})),endpointHeaders:t.headers.map(o=>this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.endpointHeaders).find(l=>l.name===o.name)})),queryParameters:t.queryParameters.map(o=>({...this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.queryParameters).find(l=>l.name===o.name)}),shape:o.allowMultiple?uR.exploded():uR.single()})),request:t.requestBody!==void 0?this.generateRequestBodyExample({requestBody:t.requestBody,maybeExampleRequest:a.map(o=>o.request).filter(o=>o!=null)[0]}):void 0,name:void 0,docs:void 0},f=[...u.rootPathParameters,...u.servicePathParameters,...u.endpointPathParameters],d=this.examplePathParametersToRecord(f),c=t.fullPath.head+t.fullPath.parts.map(o=>d[o.pathParameter]+o.tail).join("");return{url:c.startsWith("/")||c===""?c:`/${c}`,...u}}examplePathParametersToRecord(t){let r={};return t.forEach(n=>{let i=n.value.jsonExample,a=typeof i=="string"?i:JSON.stringify(i);r[n.name.originalName]=a}),r}generateEndpointExamples(t,r,n,i){var c;let a=this.getExampleWithoutResponse(t,r,n,i),f=[...t.userSpecifiedExamples.map(o=>o.example).filter(RS)].map(({response:o})=>{var g;let l={...a,response:this.generateSuccessResponseExample({response:(g=t.response)==null?void 0:g.body,maybeResponse:o})};return{...l,id:(0,Kja.default)(l)}});if(f.length===0){let o={...a,response:this.generateSuccessResponseExample({response:(c=t.response)==null?void 0:c.body,maybeResponse:void 0})};f.push({...o,id:(0,Kja.default)(o)})}let d=t.errors.map(o=>{let l={...a,response:this.generateErrorResponseExample(o)};return{...l,id:(0,Kja.default)(l)}});return[...f,...d]}generatePathParameterExample({pathParameter:t,maybePathParameterExample:r}){return r??{name:t.name,value:this.generateExampleTypeReference(t.valueType,0)}}generateHttpParameterExample({parameter:t,maybeParameterExample:r}){return r??{name:t.name,value:this.generateExampleTypeReference(t.valueType,0)}}generateInlinedRequestBodyExample(t){let r=[...new Set([...t.properties.map(i=>({name:i.name,value:this.generateExampleTypeReference(i.valueType,0),originalTypeDeclaration:void 0})),...t.extends.flatMap(i=>this.flattenedProperties.get(i.typeId)??[])])],n={};return r.forEach(i=>n[i.name.wireValue]=i.value.jsonExample),AJ.inlinedRequestBody({jsonExample:n,properties:r})}generateRequestBodyExample({requestBody:t,maybeExampleRequest:r}){return r??t._visit({inlinedRequestBody:n=>this.generateInlinedRequestBodyExample(n),reference:n=>AJ.reference(this.generateExampleTypeReference(n.requestBodyType,0)),fileUpload:()=>{},bytes:()=>{},_other:()=>{}})}generateSuccessResponseExample({response:t,maybeResponse:r}){var n;return r!=null&&r.type==="ok"&&((n=r.value)==null?void 0:n.value)!=null?r:t==null?w3.ok(Qq.body()):w3.ok(t._visit({json:i=>Qq.body(i._visit({response:a=>this.generateExampleTypeReference(a.responseBodyType,0),nestedPropertyAsResponse:a=>a.responseProperty!==void 0?this.generateExampleTypeReference(a.responseProperty.valueType,0):this.generateExampleTypeReference(a.responseBodyType,0),_other:()=>this.generateExampleUnknown()})),fileDownload:()=>Qq.body(this.generateExamplePrimitive({primitiveType:ID.Base64})),text:()=>Qq.body(this.generateExamplePrimitive({primitiveType:ID.String})),streaming:i=>i._visit({sse:a=>Qq.sse([{event:"message",data:this.generateExampleTypeReference(a.payload,0)},{event:"message",data:this.generateExampleTypeReference(a.payload,0)}]),json:a=>Qq.stream([this.generateExampleTypeReference(a.payload,0),this.generateExampleTypeReference(a.payload,0)]),text:()=>Qq.stream([this.generateExamplePrimitive({primitiveType:ID.String}),this.generateExamplePrimitive({primitiveType:ID.String})]),_other:()=>Qq.stream([this.generateExampleUnknown()])}),streamParameter:i=>{let a=i.nonStreamResponse._visit({fileDownload:f=>pA.fileDownload({...f}),json:f=>pA.fileDownload({...f}),text:f=>pA.fileDownload({...f}),_other:f=>{throw new Error(`Received unrecognized response ${f}`)}}),u=this.generateSuccessResponseExample({response:a,maybeResponse:void 0});if(u.type==="error")throw new Error("Unexpected: received error example");return u.value},_other:()=>Qq.body(this.generateExampleUnknown())}))}generateErrorResponseExample(t){return w3.error({error:t.error,body:void 0})}generateExampleType(t,r){let n=this.userProvidedTypeExamples.get(t.name.typeId);if(n!=null)return n;switch(t.shape.type){case"alias":return this.generateExampleTypeForAlias(t.shape,r);case"enum":return this.generateExampleTypeForEnum(t.shape);case"object":return this.generateExampleTypeForObject(t.name,r);case"union":return this.generateExampleTypeForUnion(t.name.typeId,t.shape,r);case"undiscriminatedUnion":return this.generateExampleTypeForUndiscriminatedUnion(t.shape,r);default:Ol(t.shape)}}generateExampleTypeForAlias(t,r){let n=this.generateExampleTypeReference(t.aliasOf,r);return this.newNamelessExampleType({jsonExample:n.jsonExample,shape:gM.alias({value:n})})}generateExampleTypeForEnum(t){if(t.values.length===0||t.values[0]==null)return null;let r=t.values[0];return this.newNamelessExampleType({jsonExample:r.name.wireValue,shape:gM.enum({value:r.name})})}generateExampleTypeForObject(t,r){let n=this.userProvidedTypeExamples.get(t.typeId);this.flattenedProperties.has(t.typeId)||this.flattenedProperties.set(t.typeId,this.getFlattenedProperties(t.typeId,r));let i=this.flattenedProperties.get(t.typeId),a={};return i==null||i.forEach(u=>a[u.name.wireValue]=u.value.jsonExample),n??this.newNamelessExampleType({jsonExample:a,shape:gM.object({properties:i??[]})})}generateSingleUnionType(t,r,n){return{wireDiscriminantValue:r.discriminantValue,shape:r.shape._visit({samePropertiesAsObject:i=>{let a=this.types.get(i.typeId);return a===void 0||a.shape.type!=="object"?D3.noProperties():D3.samePropertiesAsObject({typeId:i.typeId,object:{properties:[...t,...this.flattenedProperties.get(i.typeId)??[]]}})},singleProperty:i=>D3.singleProperty(this.generateExampleTypeReference(i.type,n+1)),noProperties:()=>D3.noProperties(),_other:()=>D3.noProperties()})}}generateExampleTypeForUnion(t,r,n){return r.types.map(i=>{let a=this.flattenedProperties.get(t)??[],u=this.generateSingleUnionType(a,i,n),f={},d=u.shape._visit({samePropertiesAsObject:o=>([...a,...this.flattenedProperties.get(o.typeId)??o.object.properties].forEach(g=>f[g.name.wireValue]=g.value.jsonExample),f),singleProperty:o=>o.jsonExample,noProperties:()=>f,_other:()=>f}),c={[r.discriminant.wireValue]:i.discriminantValue.wireValue,...d};return this.newNamelessExampleType({jsonExample:c,shape:gM.union({discriminant:r.discriminant,singleUnionType:u})})})}generateExampleTypeForUndiscriminatedUnion(t,r){return t.members.map((n,i)=>{let a=this.generateExampleTypeReference(n.type,r);return this.newNamelessExampleType({jsonExample:a.jsonExample,shape:gM.undiscriminatedUnion({index:i,singleUnionType:a})})})}generateExampleTypeReference(t,r,n={}){if(this.exceedsMaxDepth(r))return this.generateExampleUnknown({},n);switch(t.type){case"container":return this.generateExampleContainer(t.container,r);case"named":return this.generateExampleNamed(t,r);case"primitive":return this.generateExamplePrimitive({primitiveType:t.primitive.v1});case"unknown":return this.generateExampleUnknown({},n);default:Ol(t)}}generateExampleNamed(t,r){let n=this.resolveType(t),i=this.generateExampleType(n,r),a=i instanceof Array?i[0]:i;if(a==null)throw new Error(`internal error: failed to generate example type with id: ${t.typeId}`);return{jsonExample:a.jsonExample,shape:Q0.named({typeName:t,shape:a.shape})}}generateExampleContainer(t,r){switch(t.type){case"list":return this.generateExampleTypeReferenceList(t.list,r+1);case"map":return this.generateExampleTypeReferenceMap(t,r+1);case"optional":return this.generateExampleTypeReferenceOptional(t.optional,r+1);case"set":return this.generateExampleTypeReferenceSet(t.set,r+1);case"literal":return this.generateExampleTypeReferenceLiteral(t.literal);default:Ol(t)}}generateExampleTypeReferenceOptional(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:n.jsonExample,shape:Q0.container(hT.optional({optional:n,valueType:t}))}}generateExampleTypeReferenceList(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:[n.jsonExample],shape:Q0.container(hT.list({list:[n],itemType:t}))}}generateExampleTypeReferenceMap(t,r){let n=this.generateExampleTypeReference(t.keyType,r,{unknownAsPrimitive:!0}),i=this.generateExampleTypeReference(t.valueType,r);return{jsonExample:{[this.jsonExampleToMapKey(n.jsonExample)]:i.jsonExample},shape:Q0.container(hT.map({map:[{key:n,value:i}],keyType:t.keyType,valueType:t.valueType}))}}jsonExampleToMapKey(t){return typeof t=="number"?1:"string"}generateExampleTypeReferenceSet(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:[n.jsonExample],shape:Q0.container(hT.set({set:[n],itemType:t}))}}generateExampleTypeReferenceLiteral(t){switch(t.type){case"boolean":return{jsonExample:t.boolean,shape:Q0.container(hT.literal({literal:Xv.boolean(t.boolean)}))};case"string":return{jsonExample:t.string,shape:Q0.container(hT.literal({literal:Xv.string({original:t.string})}))};default:Ol(t)}}generateExamplePrimitive({primitiveType:t,example:r}){switch(t){case"STRING":{let n=r!=null&&typeof r=="string"?r:SC.STRING;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}case"INTEGER":{let n=r!=null&&typeof r=="number"?r:SC.INT;return{jsonExample:n,shape:Q0.primitive(Xv.integer(n))}}case"UINT":{let n=r!=null&&typeof r=="number"?r:SC.UINT;return{jsonExample:n,shape:Q0.primitive(Xv.uint(n))}}case"UINT_64":{let n=r!=null&&typeof r=="number"?r:SC.UINT64;return{jsonExample:n,shape:Q0.primitive(Xv.uint64(n))}}case"FLOAT":{let n=r!=null&&typeof r=="number"?r:SC.FLOAT;return{jsonExample:n,shape:Q0.primitive(Xv.float(n))}}case"DOUBLE":{let n=r!=null&&typeof r=="number"?r:SC.DOUBLE;return{jsonExample:n,shape:Q0.primitive(Xv.double(n))}}case"BOOLEAN":{let n=r!=null&&typeof r=="boolean"?r:SC.BOOLEAN;return{jsonExample:n,shape:Q0.primitive(Xv.boolean(n))}}case"LONG":{let n=r!=null&&typeof r=="number"?r:SC.INT64;return{jsonExample:n,shape:Q0.primitive(Xv.long(n))}}case"DATE_TIME":{let n=r!=null&&typeof r=="string"?r:SC.DATE_TIME;return{jsonExample:n,shape:Q0.primitive(Xv.datetime({datetime:new Date(n),raw:n}))}}case"UUID":{let n=r!=null&&typeof r=="string"?r:SC.UUID;return{jsonExample:n,shape:Q0.primitive(Xv.uuid(n))}}case"DATE":{let n=r!=null&&typeof r=="string"?r:SC.DATE;return{jsonExample:n,shape:Q0.primitive(Xv.date(n))}}case"BASE_64":{let n=r!=null&&typeof r=="string"?r:SC.BASE64;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}case"BIG_INTEGER":{let n=r!=null&&typeof r=="string"?r:SC.BIG_INTEGER;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}}}generateExampleUnknown({name:t}={},r={}){if(r.unknownAsPrimitive){let i=t??"string";return this.generateExamplePrimitive({primitiveType:ID.String,example:i})}let n={key:"value"};return{jsonExample:n,shape:Q0.unknown(n)}}resolveType(t){let r=this.ir.types[t.typeId];if(r==null)throw new Error(`internal error: could not resolve type with id: ${t.typeId}`);return r}newNamelessExampleType({jsonExample:t,shape:r}){return{name:void 0,docs:void 0,jsonExample:t,shape:r}}exceedsMaxDepth(t){return t>this.MAX_EXAMPLE_DEPTH}};function dzf(e,t){let r=t[e];if(r==null)throw new Zqt(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function pzf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,cuj({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>suj({endpoint:n,ir:e}))}]))}}function suj({endpoint:e,ir:t}){var r;return((r=e.requestBody)==null?void 0:r.type)!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(n=>_zf(n,t))}}}function cuj({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>_zf(r,t))}}}return e}function _zf(e,t){let r=VPu(e.typeId,t);return hzf({objectTypeDeclaration:r,ir:t})}function VPu(e,t){let r=dzf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return VPu(r.shape.resolvedType.name.typeId,t)}throw new Zqt(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function hzf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=VPu(n.typeId,t);return hzf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var Xja=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=nw.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=nw.generateErrorId(t.name);return this.errors.has(r)}hasService(t){let r=nw.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 Qja=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=luj(t)}addType({declaredTypeName:t,descendantTypeIds:r,descendantFilepaths:n,descendantTypeIdsByAudience:i,propertiesByAudience:a}){let u=nw.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){var i;let n=nw.generateTypeId(t);this.hasAudience(r)&&(this.typesNeededForAudience.add(n),this.addSubpackages(t.fernFilepath),(i=this.types[n])==null||i.referencedSubpackages.forEach(a=>{this.addSubpackages(a)}))}markEnvironmentForAudiences(t,r,n){t&&(this.hasAudience(r)||n)&&this.environmentsNeededForAudience.add(t.id)}getTypesReferencedByService(){return this.typesReferencedByService}addError(t){let r=nw.generateErrorId(t.name),n=new Set,i=new Set;t.type!=null&&SB(t.type,n,i);let a={errorId:r,referencedTypes:n,referencedSubpackages:i};this.errors[r]=a}addEndpoint(t,r,n){var c;let i=nw.generateServiceId(t.name),a=r.id,u=new Set,f=new Set,d=new Set;for(let o of[...t.headers,...r.headers])SB(o.valueType,u,d);for(let o of[...t.pathParameters,...r.pathParameters])SB(o.valueType,u,d);for(let o of r.queryParameters)SB(o.valueType,u,d);if(n!=null&&n.request!=null&&typeof n.request!="string"){let o=wNn(n.request["query-parameters"]??{});this.queryParameters[a]={endpointId:a,parametersByAudience:o}}r.requestBody!=null&&cB._visit(r.requestBody,{inlinedRequestBody:o=>{for(let l of o.extends)WPu(l,u,d);for(let l of o.properties)SB(l.valueType,u,d);if(n!=null&&typeof n.request=="object"&&typeof n.request.body=="object"&&m7(n.request.body)){let l=wNn(n.request.body.properties??{});this.requestProperties[a]={endpointId:a,propertiesByAudience:l}}},reference:({requestBodyType:o})=>{SB(o,u,d)},fileUpload:({properties:o})=>{for(let l of o)Zre._visit(l,{file:gf,bodyProperty:({valueType:g})=>{SB(g,u,d)},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+l.type)}})},bytes:()=>{},_other:()=>{var o;throw new Error("Unknown HttpRequestBody: "+((o=r.requestBody)==null?void 0:o.type))}}),((c=r.response)==null?void 0:c.body)!=null&&pA._visit(r.response.body,{fileDownload:gf,json:o=>{SB(o.responseBodyType,u,d)},streaming:o=>{o._visit({sse:l=>SB(l.payload,u,d),json:l=>SB(l.payload,u,d),text:gf,_other:()=>{throw new Error("Unknown streamingResponse type: "+o.type)}})},streamParameter:o=>{o.streamResponse._visit({sse:l=>SB(l.payload,u,d),json:l=>SB(l.payload,u,d),text:gf,_other:()=>{throw new Error("Unknown streamingResponse type: "+o.streamResponse.type)}}),o.nonStreamResponse.type==="json"&&SB(o.nonStreamResponse.value.responseBodyType,u,d)},text:gf,_other:()=>{var o,l;throw new Error("Unknown HttpResponse: "+((l=(o=r.response)==null?void 0:o.body)==null?void 0:l.type))}}),r.errors.forEach(o=>{f.add(nw.generateErrorId(o.error)),d.add(o.error.fernFilepath)});for(let o of u)this.markTypeForService(o,i);this.endpoints[a]={endpointId:a,referencedTypes:u,referencedErrors:f,referencedSubpackages:d}}markEndpointForAudience(t,r,n){if(this.hasAudience(n)){let i=nw.generateServiceId(t);this.servicesNeededForAudience.add(i),r.forEach(a=>{var f;let u=a.id;this.endpointsNeededForAudience.add(u),(f=this.endpoints[u])==null||f.referencedSubpackages.forEach(d=>{this.addSubpackages(d)})}),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&&ine._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)WPu(d,a,u);for(let d of f.properties)SB(d.valueType,a,u);if((n==null?void 0:n.payload)!=null&&typeof n.payload=="object"&&!Gja(n.payload)){let d=wNn(n.payload.properties??{});this.webhookProperties[i]={webhookId:i,propertiesByAudience:d}}},reference:({payloadType:f})=>{SB(f,a,u)},_other:()=>{var f;throw new Error("Unknown WebhookPayload: "+((f=r.payload)==null?void 0:f.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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}u[f]=c.size>0?c:void 0}}return new Xja({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:Ol(r)}}addSubpackages(t){for(let r=1;r<=t.allParts.length;++r){let n={...t,allParts:t.allParts.slice(0,r)};this.subpackagesNeededForAudience.add(nw.generateSubpackageId(n))}}};function luj(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:Ol(e)}}function SB(e,t,r){E2._visit(e,{container:n=>{fuj(n,t,r)},named:n=>{WPu(n,t,r)},primitive:gf,unknown:gf,_other:gf})}function WPu(e,t,r){t.add(nw.generateTypeId(e)),r.add(e.fernFilepath)}function fuj(e,t,r){xC._visit(e,{list:n=>{SB(n,t,r)},map:n=>{SB(n.keyType,t,r),SB(n.valueType,t,r)},optional:n=>{SB(n,t,r)},set:n=>{SB(n,t,r)},literal:gf,_other:gf})}function vzf({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:f8({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)}}:void 0;return n!==void 0?D3.samePropertiesAsObject(n):void 0},singleProperty:r=>{let n=f8({filteredIr:e,exampleTypeReference:r});return n!==void 0?D3.singleProperty(n):void 0},noProperties:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}})}function f8({filteredIr:e,exampleTypeReference:t}){return t.shape._visit({primitive:()=>t,container:r=>r._visit({list:n=>({...t,shape:Q0.container(hT.list({...n,list:n.list.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),set:n=>({...t,shape:Q0.container(hT.set({...n,set:n.set.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),optional:n=>{let i=n.optional!=null?f8({filteredIr:e,exampleTypeReference:n.optional}):void 0;return i!=null?{...t,shape:Q0.container(hT.optional({optional:i,valueType:n.valueType}))}:void 0},map:n=>({...t,shape:Q0.container(hT.map({...n,map:n.map.map(i=>{let a=f8({filteredIr:e,exampleTypeReference:i.key}),u=f8({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=f8({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.alias({...n,value:i})})}:void 0},enum:n=>({...t,shape:Q0.named({...r,shape:gM.enum(n)})}),object:n=>({...t,shape:Q0.named({...r,shape:gM.object({...n,properties:n.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:f8({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)})})}),union:n=>{let i=vzf({filteredIr:e,singleUnionTypeProperties:n.singleUnionType.shape});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.union({...n,singleUnionType:{...n.singleUnionType,shape:i}})})}:void 0},undiscriminatedUnion:n=>{let i=f8({filteredIr:e,exampleTypeReference:n.singleUnionType});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.undiscriminatedUnion({...n,singleUnionType:i})})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}}):void 0,unknown:()=>t,_other:()=>t})}function HPu({filteredIr:e,pathParameters:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function duj({filteredIr:e,queryParameters:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function yzf({filteredIr:e,headers:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function puj({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=f8({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...n,value:i}:void 0}).filter(n=>n!==void 0)}),reference:r=>{let n=f8({filteredIr:e,exampleTypeReference:r});return n!==void 0?AJ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function _uj({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>w3.ok(Qq.body(n!=null?f8({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>w3.ok(Qq.stream(n.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(RS))),sse:n=>w3.ok(Qq.sse(n.map(({event:i,data:a})=>{let u=f8({filteredIr:e,exampleTypeReference:a});return u!==void 0?{event:i,data:u}:void 0}).filter(RS))),_other:({type:n})=>{throw new Error(`Received unknown type for OK example: ${n}`)}}),error:({error:r,body:n})=>w3.error({error:r,body:n!=null?f8({filteredIr:e,exampleTypeReference:n}):void 0}),_other:({type:r})=>{throw new Error(`Received unknown type for example: ${r}`)}})}function $Pu({filteredIr:e,example:t}){return{...t,rootPathParameters:HPu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:HPu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:HPu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:yzf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:yzf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:duj({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?puj({filteredIr:e,requestBody:t.request}):void 0,response:_uj({filteredIr:e,response:t.response})}}function bzf({filteredIr:e,exampleType:t}){return t.shape._visit({alias:r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...t,shape:gM.alias({...r,value:n})}:void 0},enum:()=>t,object:r=>({...t,shape:gM.object({...r,properties:r.properties.filter(n=>e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue)).map(n=>({...n,value:f8({filteredIr:e,exampleTypeReference:n.value})})).filter(n=>n.value!==void 0)})}),union:r=>{let n=vzf({filteredIr:e,singleUnionTypeProperties:r.singleUnionType.shape});return n!==void 0?{...t,shape:gM.union({...r,singleUnionType:{...r.singleUnionType,shape:n}})}:void 0},undiscriminatedUnion:r=>{let n=f8({filteredIr:e,exampleTypeReference:r.singleUnionType});return n!==void 0?{...t,shape:gM.undiscriminatedUnion({...r,singleUnionType:n})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}var Zja=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:nw.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:sy(this.subpackages,(n,i)=>({...n,hasEndpointsInTree:r.has(i)})),rootPackage:{...this.rootPackage,hasEndpointsInTree:r.size>0||this.rootPackage.service!=null}}}sortRootPackage(t){if(!gzf(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(!gzf(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=nw.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 gzf(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 mzf({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:Yzr({referencedIn:t,importPath:f})}}var drn=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 N5(this.workspace,async(i,a,u)=>{var d;let f=yO({relativeFilepath:i,definitionFile:a,casingsGenerator:Qzr,rootApiFile:this.workspace.definition.rootApiFile.contents,defaultUrl:u.defaultUrl});for(let[c,o]of Object.entries(((d=a.service)==null?void 0:d.endpoints)??{}))o.method===t&&o.path===r&&(n={endpointId:c,endpoint:o,file:f})}),await Gtn(this.workspace,async(i,a)=>{var f;let u=yO({relativeFilepath:i,definitionFile:a,casingsGenerator:Qzr,rootApiFile:this.workspace.definition.rootApiFile.contents});for(let[d,c]of Object.entries(((f=a.service)==null?void 0:f.endpoints)??{}))c.method===t&&c.path===r&&(n={endpointId:d,endpoint:c,file:u})}),n}async resolveEndpoint({endpoint:t,file:r}){var f,d;let i=new lli().tryParse(t);if(i!=null)return await this.resolveEndpointByMethodAndPath(i);let a=this.getDeclarationOfEndpoint({referenceToEndpoint:t,file:r});if(a==null)return;let u=(d=(f=a.file.definitionFile.service)==null?void 0:f.endpoints)==null?void 0:d[a.endpointName];if(u!=null)return{endpointId:a.endpointName,endpoint:u,file:a.file}}getDeclarationOfEndpoint({referenceToEndpoint:t,file:r}){var u,f;let n=mzf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(!(i==null||((f=(u=i.service)==null?void 0:u.endpoints)==null?void 0:f[n.endpointName])==null))return{endpointName:n.endpointName,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var prn=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){var u;let n=swe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(i==null)return;let a=(u=i.errors)==null?void 0:u[n.typeName];if(a!=null)return{declaration:a,file:yO({definitionFile:i,relativeFilepath:n.relativeFilepath,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var lwe=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(RO(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(`\\${_Bt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(_Bt))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(_Bt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(_Bt.length),exampleName:i}}};var kja=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:tne.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}){var u;let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t}),a=await this.resolveObjectProperty({file:i.file,typeName:(typeof i.endpoint.response!="string"?(u=i.endpoint.response)==null?void 0:u.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}){var a;if(i.length===1){let u=i[0]??"",f=typeof n["query-parameters"]!=null?(a=n["query-parameters"])==null?void 0:a[u]:void 0;if(f!=null)return{property:tne.query(await Wja({file:r,queryParameterKey:u,queryParameter:f})),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:tne.body(u)}}if(m7(n.body)){let u=await APu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:tne.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:tne.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await CPu({typeResolver:this.typeResolver,file:Dvi(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 Ozf=require("fs/promises"),ewa=class{async parse({absoluteFilePath:t}){let r=await(0,Ozf.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==null?void 0:n[1],packageName:i==null?void 0:i[1],serviceName:a==null?void 0:a[1]}}};var twa=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(kea(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 kea(t)?await this.resolveProtobufSource({source:t,file:r}):await this.resolveOpenAPISource({source:t,file:r})}async resolveProtobufSource({source:t,file:r}){let n=Tf(this.workspace.absoluteFilepath,Ws.of(t.proto));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await Vh(n))return;let a=await new ewa().parse({absoluteFilePath:n}),u={type:"protobuf",absoluteFilePath:n,relativeFilePath:Ws.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=Tf(this.workspace.absoluteFilepath,Ws.of(t.openapi));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await Vh(n))return;let i={type:"openapi",absoluteFilePath:n,relativeFilePath:Ws.of(t.openapi)};return this.sourceCache.set(n,i),i}};var mM=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}){var u,f;let n=swe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(i==null)return;let a=(u=i.types)==null?void 0:u[n.typeName];if(a==null){let d=j3(n.typeName);if(d!=null){for(let c of Object.keys(i.types??{})??[])if(d.name&&c.startsWith(d.name)&&c.endsWith(">")){let o=(f=i.types)==null?void 0:f[c];return o!=null?{typeName:c,declaration:o,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}:void 0}}return}return{typeName:n.typeName,declaration:a,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}resolveType({type:t,file:r,objectPath:n=[]}){return BJ({type:t,_default:void 0,validation:void 0,visitor:{primitive:i=>({_type:"primitive",primitive:i,originalTypeReference:E2.primitive(i)}),unknown:()=>({_type:"unknown",originalTypeReference:E2.unknown()}),map:({keyType:i,valueType:a})=>i!=null&&a!=null?{_type:"container",container:{_type:"map",keyType:i,valueType:a},originalTypeReference:E2.container(xC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:E2.container(xC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:E2.container(xC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:E2.container(xC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:E2.container(xC.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(L2n(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=Lja({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||Vne(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 DNn=class{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){var i;if(!t.startsWith(DNn.VARIABLE_PREFIX))return;let n=(i=r.rootApiFile.variables)==null?void 0:i[t.substring(1)];if(n!=null)return{declaration:n,file:wEr({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 "+DNn.VARIABLE_PREFIX);return r}getVariableId(t){if(!!t.startsWith(DNn.VARIABLE_PREFIX))return t.substring(DNn.VARIABLE_PREFIX.length)}},eqe=DNn;dv(eqe,"VARIABLE_PREFIX","$");function rwa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}async function JQ({fdrApiDefinitionId:e,workspace:t,generationLanguage:r,keywords:n,smartCasing:i,disableExamples:a,audiences:u,readme:f,packageName:d,version:c,context:o}){let l=Kzr({generationLanguage:r,keywords:n,smartCasing:i}),g=new Qja(u),O=wEr({casingsGenerator:l,rootApiFile:t.definition.rootApiFile.contents}),j=(t.definition.rootApiFile.contents.errors??[]).map(Yr=>({error:Xzr({errorName:Yr,file:O}),docs:void 0})),S=new mM(t),x=new drn(t),A=new kja(S,x),N=new prn(t),z=new lwe(S),C=new eqe,U=new twa(o,t),Y={fdrApiDefinitionId:e,apiVersion:await Q5f({file:O,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:l.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await Bja(t.definition.rootApiFile.contents.docs),auth:await X5f({rawApiFileSchema:t.definition.rootApiFile.contents,file:O,propertyResolver:A,endpointResolver:x}),headers:t.definition.rootApiFile.contents.headers!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents.headers).map(([Yr,Gt])=>k2e({headerKey:Yr,header:Gt,file:O}))):[],idempotencyHeaders:t.definition.rootApiFile.contents["idempotency-headers"]!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents["idempotency-headers"]).map(([Yr,Gt])=>k2e({headerKey:Yr,header:Gt,file:O}))):[],types:{},errors:{},services:{},constants:F5f(l),environments:RPu({casingsGenerator:l,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:rzf(t.definition.rootApiFile.contents["error-discrimination"],O),basePath:t.definition.rootApiFile.contents["base-path"]!=null?FAt(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await jNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:O,location:bTe.Root,variableResolver:C}),variables:t.definition.rootApiFile.contents.variables!=null?Object.entries(t.definition.rootApiFile.contents.variables).map(([Yr,Gt])=>({docs:typeof Gt!="string"?Gt.docs:void 0,id:Yr,name:O.casingsGenerator.generateName(Yr),type:O.parseTypeReference(Gt)})):[],serviceTypeReferenceInfo:{typesReferencedOnlyByService:{},sharedTypes:[]},webhookGroups:{},websocketChannels:{},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0},te=new Zja,G=async Yr=>{te.addSubpackage(Yr.fernFilepath),await Aw(Yr.definitionFile,{imports:gf,docs:Gt=>{Gt!=null&&te.addDocs(Yr.fernFilepath,Gt)},types:async Gt=>{if(Gt!=null)for(let[bn,An]of Object.entries(Gt)){if(yTe(bn))continue;let Ht=await fzf({typeName:bn,typeDeclaration:An,file:Yr,typeResolver:S,exampleResolver:z,sourceResolver:U,workspace:t}),er=Ht.typeDeclaration;a&&(er.userProvidedExamples=[],er.autogeneratedExamples=[]);let jn=Ht.descendantFilepaths,dn=nw.generateTypeId(er.name);Y.types[dn]=er,te.addType(dn,er),g.addType({declaredTypeName:er.name,descendantTypeIds:er.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:Ht.propertiesByAudience,descendantFilepaths:jn}),g.markTypeForAudiences(er.name,K8f(An))}},errors:Gt=>{if(Gt==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[An,Ht]of Object.entries(Gt)){let er=ezf({errorName:An,errorDeclaration:Ht,file:Yr,typeResolver:S,exampleResolver:z,workspace:t}),jn=nw.generateErrorId(er.name);Y.errors[jn]=er,te.addError(jn,er),g.addError(er)}},service:async Gt=>{if(Gt==null)return;let bn=await R5f({rootDefaultUrl:Yr.defaultUrl??t.definition.rootApiFile.contents["default-url"],rootPathParameters:Y.pathParameters,serviceDefinition:Gt,file:Yr,errorResolver:N,typeResolver:S,propertyResolver:A,exampleResolver:z,sourceResolver:U,globalErrors:j,variableResolver:C,workspace:t}),An=nw.generateServiceId(bn.name);Y.services[An]=bn,te.addService(An,bn);let Ht={};bn.endpoints.forEach(er=>{a&&(er.autogeneratedExamples=[],er.userSpecifiedExamples=[]);let jn=Gt.endpoints[er.name.originalName];g.addEndpoint(bn,er,jn),Ht[er.name.originalName]=er}),Gt.audiences!=null&&g.markEndpointForAudience(bn.name,bn.endpoints,Gt.audiences),Object.entries(Gt.endpoints).map(([er,jn])=>{let dn=Ht[er];dn!=null&&jn.audiences!=null&&g.markEndpointForAudience(bn.name,[dn],jn.audiences)})},webhooks:async Gt=>{if(Gt==null)return;let bn=nw.generateWebhookGroupId(Yr.fernFilepath),An=await izf({webhooks:Gt,file:Yr,typeResolver:S,exampleResolver:z,workspace:t}),Ht={};for(let er of An)Ht[er.name.originalName]=er;Object.entries(Gt).forEach(([er,jn])=>{let dn=Ht[er];dn!=null&&(g.addWebhook(Yr,dn,jn),jn.audiences!=null&&g.markWebhookForAudiences(Yr,dn,jn.audiences))}),Y.webhookGroups[bn]=An,te.addWebhookGroup(bn,Yr.fernFilepath)},channel:async Gt=>{if(Gt==null)return;let bn=nw.generateWebSocketChannelId(Yr.fernFilepath),An=await Z5f({channel:Gt,file:Yr,variableResolver:C,typeResolver:S,exampleResolver:z,workspace:t});Y.websocketChannels!=null&&(Y.websocketChannels[bn]=An,te.addWebSocketChannel(bn,Yr.fernFilepath))}})};await N5(t,async(Yr,Gt,bn)=>{await G(yO({relativeFilepath:Yr,definitionFile:Gt,casingsGenerator:l,rootApiFile:t.definition.rootApiFile.contents,defaultUrl:bn.defaultUrl}))}),await Gtn(t,async(Yr,Gt)=>{if(Gt.navigation!=null)if(typeof Gt.navigation=="string")te.addPackageRedirection({from:LAt({relativeFilepath:Yr,casingsGenerator:l}),to:LAt({relativeFilepath:Tf(Hg(Yr),Ws.of(Gt.navigation)),casingsGenerator:l})});else{let bn=Gt.navigation.map(An=>nw.generateSubpackageId(LAt({relativeFilepath:Tf(Hg(Yr),Ws.of(An)),casingsGenerator:l})));Yr===$T?te.sortRootPackage(bn):te.sortSubpackage(nw.generateSubpackageId(LAt({relativeFilepath:Yr,casingsGenerator:l})),bn)}}),Y.serviceTypeReferenceInfo=huj(g);let $=a?Y:new Yja(Y).enrichWithAutogeneratedExamples(),ee=t.definition.rootApiFile.contents,Ve=RPu({casingsGenerator:l,rawApiFileSchema:ee}),$e=Ve==null?void 0:Ve.environments._visit({singleBaseUrl:Yr=>Yr.environments.filter(Gt=>rwa(Gt.id,ee.environments)!=null).length===0,multipleBaseUrls:Yr=>Yr.environments.filter(Gt=>rwa(Gt.id,ee.environments)!=null).length===0,_other:()=>!1});Ve==null||Ve.environments.environments.forEach(Yr=>{g.markEnvironmentForAudiences(Yr,rwa(Yr.id,ee.environments)??[],$e)});let Dt=g.hasNoAudiences()?void 0:g.build(),Tt=yuj($,Dt),Wt=t.definition.rootApiFile.contents.auth!=null&&Object.values(Tt.services).every(Yr=>Yr.endpoints.every(Gt=>Gt.auth)),Nt=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>{var bn,An;return((An=(bn=Gt.response)==null?void 0:bn.body)==null?void 0:An.type)==="streaming"})),ur=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>Gt.pagination!=null)),Ar=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>{var bn,An;return((An=(bn=Gt.response)==null?void 0:bn.body)==null?void 0:An.type)==="fileDownload"})),Jr=f!=null?nzf({readme:f,services:Y.services}):void 0,{types:zt,services:_r}=pzf(Tt);return{...Tt,...te.build(Dt),types:zt,services:_r,sdkConfig:{isAuthMandatory:Wt,hasStreamingEndpoints:Nt,hasPaginatedEndpoints:ur,hasFileDownloadEndpoints:Ar,platformHeaders:{language:"X-Fern-Language",sdkName:"X-Fern-SDK-Name",sdkVersion:"X-Fern-SDK-Version",userAgent:c!=null&&d!=null?{header:"User-Agent",value:`${d}/${c}`}:void 0}},readmeConfig:Jr}}function huj(e){var i;let t={},r=[],n=e.getTypesReferencedByService();for(let[a,u]of Object.entries(n)){if(u.size===1){let f=u.values().next().value;t[f]===void 0&&(t[f]=[]),(i=t[f])==null||i.push(a);continue}r.push(a)}return{typesReferencedOnlyByService:t,sharedTypes:r}}function yuj(e,t){if(t==null)return e;let r=LQr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>bzf({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:MC.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:LQr(e.errors,u=>t.hasError(u)),services:sy(LQr(e.services,u=>t.hasService(u)),u=>({...u,endpoints:u.endpoints.filter(f=>t.hasEndpoint(f)).map(f=>{var d;return f.autogeneratedExamples=f.autogeneratedExamples.map(c=>({...c,example:$Pu({filteredIr:t,example:c.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(c=>({...c,example:c.example!=null?$Pu({filteredIr:t,example:c.example}):void 0})),f.queryParameters.length>0&&(f.queryParameters=f.queryParameters.filter(c=>t.hasQueryParameter(f.id,c.name.wireValue))),((d=f.requestBody)==null?void 0:d.type)==="inlinedRequestBody"?{...f,requestBody:{...f.requestBody,properties:f.requestBody.properties.filter(c=>t.hasRequestProperty(f.id,c.name.wireValue))}}:f})})),webhookGroups:i,serviceTypeReferenceInfo:vuj(e.serviceTypeReferenceInfo,t)}}function vuj(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 Azf=yu(Tja(),1),Nzf=yu(qja(),1),cwa=require("fs/promises"),zzf=yu($1a(),1);function PFt(e){return typeof e.subpackageId=="string"}function fwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function _rn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var JPu="__package__",SNn,ENn,MNn,qvi,Cvi,Avi,Nvi,xNn,TNn,zvi,qNn,CNn,nwa,hrn=class{constructor(t,r){lh(this,CNn);dv(this,"api");dv(this,"context");lh(this,SNn,new Map);lh(this,ENn,new Map);lh(this,MNn,new Map);lh(this,qvi,new Map);lh(this,Cvi,new Map);lh(this,Avi,new Map);lh(this,Nvi,new Map);lh(this,xNn,new Map);lh(this,TNn,new Map);lh(this,zvi,new Map);lh(this,qNn,new Map);this.api=t,this.context=r,[t.rootPackage,...Object.values(t.subpackages)].forEach(n=>{let i=hrn.getSubpackageId(n),a={endpoints:new Map,webSockets:new Map,webhooks:new Map};yc(this,Nvi).set(i,a),n.endpoints.forEach(u=>{var o;a.endpoints.set(u.id,u);let f=hrn.createEndpointId(u,i);yc(this,SNn).set(f,u);let d=[],c=[u.method];((o=u.response)==null?void 0:o.type.type)==="stream"&&c.push("STREAM"),c.forEach(l=>{d.push(`${l} ${fwe(u.path.parts)}`),d.push(`${l} ${_rn(u.path.parts)}`),u.environments.forEach(g=>{d.push(`${l} ${HS(g.baseUrl,fwe(u.path.parts))}`),d.push(`${l} ${HS(g.baseUrl,_rn(u.path.parts))}`);let O=Pzf(g);O!=null&&(d.push(`${l} ${HS(O,fwe(u.path.parts))}`),d.push(`${l} ${HS(O,_rn(u.path.parts))}`))})}),d.forEach(l=>{var g;(g=this.context)==null||g.logger.debug(`Registering endpoint locator: ${l}`),yc(this,xNn).set(l,u)})}),n.websockets.forEach(u=>{a.webSockets.set(u.id,u);let f=hrn.createWebSocketId(u,i);yc(this,ENn).set(f,u);let d=[];["GET","WSS"].forEach(o=>{d.push(`${o} ${fwe(u.path.parts)}`),d.push(`${o} ${_rn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${HS(l.baseUrl,fwe(u.path.parts))}`),d.push(`${o} ${HS(l.baseUrl,_rn(u.path.parts))}`);let g=Pzf(l);g!=null&&(d.push(`${o} ${HS(g,fwe(u.path.parts))}`),d.push(`${o} ${HS(g,_rn(u.path.parts))}`))})}),d.forEach(o=>{var l;(l=this.context)==null||l.logger.debug(`Registering websocket locator: ${o}`),yc(this,TNn).set(o,u)})}),n.webhooks.forEach(u=>{a.webhooks.set(u.id,u),yc(this,MNn).set(hrn.createWebhookId(u,i),u)})}),yc(this,SNn).forEach((n,i)=>{yc(this,qvi).set(n,i)}),yc(this,ENn).forEach((n,i)=>{yc(this,Cvi).set(n,i)}),yc(this,MNn).forEach((n,i)=>{yc(this,Avi).set(n,i)}),dO(this,CNn,nwa).call(this,t.rootPackage,[])}static create(t,r){return new hrn(t,r)}static getSubpackageId(t){return PFt(t)?t.subpackageId:JPu}getSubpackageByIdOrLocator(t){if(t!=null)return t===JPu?this.api.rootPackage:this.api.subpackages[t]??yc(this,qNn).get(t)}resolveSubpackage(t){if(t!=null){for(;(t==null?void 0:t.pointsTo)!=null;)t=this.api.subpackages[t.pointsTo];return t}}get endpoints(){return yc(this,SNn)}get webSockets(){return yc(this,ENn)}get webhooks(){return yc(this,MNn)}get endpointsByLocator(){return yc(this,xNn)}get webSocketsByLocator(){return yc(this,TNn)}get webhooksByLocator(){return yc(this,zvi)}get subpackages(){return yc(this,Nvi)}get subpackagesByLocator(){return yc(this,qNn)}getEndpointId(t){return yc(this,qvi).get(t)}getWebSocketId(t){return yc(this,Cvi).get(t)}getWebhookId(t){return yc(this,Avi).get(t)}static createEndpointId(t,r){return VE.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return VE.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return VE.WebhookId(`${r}.${t.id}`)}},kzr=hrn;SNn=new WeakMap,ENn=new WeakMap,MNn=new WeakMap,qvi=new WeakMap,Cvi=new WeakMap,Avi=new WeakMap,Nvi=new WeakMap,xNn=new WeakMap,TNn=new WeakMap,zvi=new WeakMap,qNn=new WeakMap,CNn=new WeakSet,nwa=function(t,r){if(t==null)return;let n=PFt(t)?[...r,t.name]:r,i=n.length===0?[JPu]:n;if([i.join("."),i.join("/"),`${i.join(".")}.yml`].forEach(u=>{var f;(f=this.context)==null||f.logger.debug(`Registering subpackage locator: ${u}`),yc(this,qNn).set(u,t)}),t.pointsTo!=null)return dO(this,CNn,nwa).call(this,this.api.subpackages[t.pointsTo],n);t.endpoints.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering endpoint locator: ${c}`),yc(this,xNn).set(c,u)})}),t.websockets.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering websocket locator: ${c}`),yc(this,TNn).set(c,u)})}),t.webhooks.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering webhook locator: ${c}`),yc(this,zvi).set(c,u)})}),t.subpackages.forEach(u=>{dO(this,CNn,nwa).call(this,this.api.subpackages[u],n)})};function Pzf(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 ANn=yu(Tja(),1),wzf=yu(qja(),1);function jzf(e){var i;let t=e.split(".")[0];if(t==null)return;let n=(i=/(^\d{1,4})-(\d{1,2})-(\d{1,4})/.exec(t))==null?void 0:i[0];if(n!=null)try{return new Date(n)}catch{}}ANn.default.extend(wzf.default);var buj="Changelog",guj=["summary","index","overview"],yrn=class{markdownToFullSlug;changelogFiles;docsWorkspace;idgen;constructor(t,r,n,i){this.markdownToFullSlug=t,this.changelogFiles=r,this.docsWorkspace=n,this.idgen=i}convert(t){var c,o;if(this.changelogFiles==null||this.changelogFiles.length===0)return;let r=t.title??buj;this.idgen=this.idgen.append("changelog");let n=[],i;for(let l of this.changelogFiles){let g=sWo(l.split("/"));if(g==null)continue;let O=jzf(g);if(O==null){let S=(c=g.split(".")[0])==null?void 0:c.toLowerCase();S!=null&&guj.includes(S)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:VE.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?(o=this.markdownToFullSlug.get(i))==null?void 0:o.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??nR(r)}),u=n.map(l=>{var O;let g=ANn.default.utc(l.date);return{id:this.idgen.append(g.format("YYYY-M-D")).get(),type:"changelogEntry",title:g.format("MMMM D, YYYY"),slug:a.apply({fullSlug:(O=this.markdownToFullSlug.get(l.absoluteFilepath))==null?void 0:O.split("/"),urlSlug:g.format("YYYY/M/D")}).get(),icon:void 0,hidden:void 0,date:l.date.toISOString(),pageId:l.pageId,noindex:void 0}}),f=GPu(u,l=>l.date,"desc"),d=this.groupByYear(f,a);return{id:this.idgen.get(),type:"changelog",title:r,slug:a.get(),icon:t.icon,hidden:t.hidden,children:d,overviewPageId:i!=null?VE.PageId(this.toRelativeFilepath(i)):void 0,noindex:void 0}}groupByYear(t,r){let n=new Map;for(let i of t){let a=ANn.default.utc(i.date).year(),u=n.get(a)??[];u.push(i),n.set(a,u)}return GPu(Array.from(n.entries()).map(([i,a])=>{let u=r.append(i.toString()).get();return{id:this.idgen.append(i.toString()).get(),type:"changelogYear",title:i.toString(),year:i,slug:u,icon:void 0,hidden:void 0,children:this.groupByMonth(a,r)}}),"year","desc")}groupByMonth(t,r){let n=new Map;for(let i of t){let a=ANn.default.utc(i.date).month()+1,u=n.get(a)??[];u.push(i),n.set(a,u)}return GPu(Array.from(n.entries()).map(([i,a])=>{let u=(0,ANn.default)(new Date(0,i-1));return{id:this.idgen.append(u.format("YYYY-M")).get(),type:"changelogMonth",title:u.format("MMMM YYYY"),month:i,slug:r.append(i.toString()).get(),icon:void 0,hidden:void 0,children:a}}),"month","desc")}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}};function GPu(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 HAt=class{id;ids;static init(t){return new HAt(t,new Set([t]))}constructor(t,r){this.id=t,this.ids=r}get(){return VE.NodeId(this.id)}append(t){let r=`${this.id}.${t}`;if(this.ids.has(r)){let n=1;for(;this.ids.has(`${r}-${n}`);)n++;r=`${r}-${n}`}return this.ids.add(r),new HAt(r,this.ids)}};var o6,NNn,zNn,BNn,jFt,brn,eBr,Ivi,tBr,grn,Bvi,awa,Dzf,owa,Szf,uwa,Ezf,Rvi,KPu,Fvi,YPu,Lvi,XPu,Uvi,QPu,Vvi,ZPu,SEr,vrn,iwa=class{constructor(t,r,n,i,a,u,f){lh(this,grn);lh(this,awa);lh(this,owa);lh(this,uwa);lh(this,Rvi);lh(this,Fvi);lh(this,Lvi);lh(this,Uvi);lh(this,Vvi);lh(this,SEr);dv(this,"apiSection");dv(this,"workspace");dv(this,"docsWorkspace");dv(this,"taskContext");dv(this,"markdownFilesToFullSlugs");dv(this,"apiDefinitionId");lh(this,o6,void 0);lh(this,NNn,new Set);lh(this,zNn,new Set);lh(this,BNn,new Set);lh(this,jFt,new Set);lh(this,brn,new Map);lh(this,eBr,[]);lh(this,Ivi,void 0);lh(this,tBr,void 0);dv(this,"disableEndpointPairs");var o;this.apiSection=t,this.workspace=i,this.docsWorkspace=a,this.taskContext=u,this.markdownFilesToFullSlugs=f,this.disableEndpointPairs=((o=a.config.experimental)==null?void 0:o.disableStreamToggle)??!1,this.apiDefinitionId=VE.ApiDefinitionId(r.id),pv(this,o6,kzr.create(r,u));let d=HAt.init(this.apiDefinitionId);pv(this,Ivi,this.apiSection.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(this.apiSection.overviewAbsolutePath)):void 0);let c=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;pv(this,tBr,n.apply({fullSlug:c==null?void 0:c.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??nR(this.apiSection.title)})),this.apiSection.navigation!=null&&pv(this,eBr,dO(this,grn,Bvi).call(this,this.apiSection.navigation,yc(this,o6).api.rootPackage,yc(this,tBr),d)),pv(this,eBr,dO(this,Fvi,YPu).call(this,yc(this,eBr).map(l=>dO(this,Lvi,XPu).call(this,l)),dO(this,Uvi,QPu).call(this,yc(this,o6).api.rootPackage,yc(this,tBr))))}get(){var n;let t=VE.utils.followRedirects(yc(this,eBr)),r=HAt.init(this.apiDefinitionId);return{id:r.get(),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:yc(this,Ivi),paginated:this.apiSection.paginated,slug:yc(this,tBr).get(),icon:this.apiSection.icon,hidden:this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:new yrn(this.markdownFilesToFullSlugs,(n=this.workspace.changelog)==null?void 0:n.files.map(i=>i.absoluteFilepath),this.docsWorkspace,r).convert({parentSlug:yc(this,tBr)}),children:yc(this,eBr),availability:void 0,pointsTo:t,noindex:void 0,playground:dO(this,SEr,vrn).call(this,this.apiSection.playground)}}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=yc(this,o6).endpoints.get(i.endpointId);if(a==null)throw new Error(`Endpoint ${i.endpointId} not found`);let u=`${a.method} ${fwe(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:VE.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}};o6=new WeakMap,NNn=new WeakMap,zNn=new WeakMap,BNn=new WeakMap,jFt=new WeakMap,brn=new WeakMap,eBr=new WeakMap,Ivi=new WeakMap,tBr=new WeakMap,grn=new WeakSet,Bvi=function(t,r,n,i){r=yc(this,o6).resolveSubpackage(r);let a=r!=null?kzr.getSubpackageId(r):void 0;return t.map(u=>A3(u)._visit({link:f=>({id:i.append(`link:${f.url}`).get(),type:"link",title:f.text,icon:f.icon,url:VE.Url(f.url)}),page:f=>{var o;let d=VE.PageId(this.toRelativeFilepath(f.absolutePath)),c=n.apply({fullSlug:(o=this.markdownFilesToFullSlugs.get(f.absolutePath))==null?void 0:o.split("/"),urlSlug:f.slug??nR(f.title)});return{id:i.append(`page:${d}`).get(),type:"page",pageId:d,title:f.title,slug:c.get(),icon:f.icon,hidden:f.hidden,noindex:f.noindex}},package:f=>dO(this,awa,Dzf).call(this,f,n,i),section:f=>dO(this,owa,Szf).call(this,f,n,i),item:({value:f})=>dO(this,uwa,Ezf).call(this,f,a,n,i),endpoint:f=>dO(this,Rvi,KPu).call(this,f,a,n,i)})).filter(RS)},awa=new WeakSet,Dzf=function(t,r,n){let i=t.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,a=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,u=yc(this,o6).getSubpackageByIdOrLocator(t.package);if(u!=null){let f=kzr.getSubpackageId(u),d=n.append(f);yc(this,jFt).has(f)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${f}`),yc(this,jFt).add(f),yc(this,brn).set(d.get(),[f]);let c=t.slug??(PFt(u)?u.urlSlug:this.apiSection.slug??nR(this.apiSection.title)),o=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=dO(this,grn,Bvi).call(this,t.contents,u,o,d);return{id:d.get(),type:"apiPackage",children:l,title:t.title??(PFt(u)?u.displayName??RAt(u.name):this.apiSection.title),slug:o.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}}else{this.taskContext.logger.warn(`Subpackage ${t.package} not found in ${this.apiDefinitionId}, treating it as a section`);let f=t.slug??nR(t.package),d=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:f}),c=dO(this,grn,Bvi).call(this,t.contents,void 0,d,n);return{id:n.append(nR(t.package)).get(),type:"apiPackage",children:c,title:t.title??t.package,slug:d.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}}},owa=new WeakSet,Szf=function(t,r,n){let i=t.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,a=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,u=n.append(`section:${nR(t.title)}`),f=t.referencedSubpackages.map(l=>{let g=yc(this,o6).getSubpackageByIdOrLocator(l);return g!=null?kzr.getSubpackageId(g):void 0}).filter(l=>(l==null&&this.taskContext.logger.error(`Subpackage ${l} not found in ${this.apiDefinitionId}`),l!=null)).filter(RS);yc(this,brn).set(u.get(),f),f.forEach(l=>{yc(this,jFt).has(l)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${l}`),yc(this,jFt).add(l)});let d=t.slug??nR(t.title),c=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:d}),o=dO(this,grn,Bvi).call(this,t.contents,void 0,c,n);return{id:u.get(),type:"apiPackage",children:o,title:t.title,slug:c.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}},uwa=new WeakSet,Ezf=function(t,r,n,i){t=t.trim();let a=yc(this,o6).getSubpackageByIdOrLocator(t);if(a!=null){let u=kzr.getSubpackageId(a),f=i.append(u);yc(this,jFt).has(u)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${u}`),yc(this,jFt).add(u),yc(this,brn).set(f.get(),[u]);let d=PFt(a)?a.urlSlug:"",c=n.apply({urlSlug:d});return{id:f.get(),type:"apiPackage",children:[],title:PFt(a)?a.displayName??RAt(a.name):this.apiSection.title,slug:c.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}}return dO(this,Rvi,KPu).call(this,{type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,playground:void 0},r,n,i)},Rvi=new WeakSet,KPu=function(t,r,n,i){var d,c,o,l;let a=(r!=null?(d=yc(this,o6).subpackages.get(r))==null?void 0:d.endpoints.get(t.endpoint):void 0)??yc(this,o6).endpointsByLocator.get(t.endpoint);if(a!=null){let g=yc(this,o6).getEndpointId(a);if(g==null)throw new Error(`Expected Endpoint ID for ${a.id}. Got undefined.`);yc(this,NNn).has(g)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${g}`),yc(this,NNn).add(g);let O=t.slug!=null?n.append(t.slug):n.apply(a);return{id:i.append(a.id).get(),type:"endpoint",method:a.method,endpointId:g,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(a.availability),isResponseStream:((c=a.response)==null?void 0:c.type.type)==="stream",title:t.title??a.name??fwe(a.path.parts),slug:O.get(),icon:t.icon,hidden:t.hidden,playground:dO(this,SEr,vrn).call(this,t.playground)}}let u=(r!=null?(o=yc(this,o6).subpackages.get(r))==null?void 0:o.webSockets.get(t.endpoint):void 0)??yc(this,o6).webSocketsByLocator.get(t.endpoint);if(u!=null){let g=yc(this,o6).getWebSocketId(u);if(g==null)throw new Error(`Expected WebSocket ID for ${u.id}. Got undefined.`);return yc(this,zNn).has(g)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${g}`),yc(this,zNn).add(g),{id:i.append(u.id).get(),type:"webSocket",webSocketId:g,title:t.title??u.name??fwe(u.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(u)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(u.availability),playground:dO(this,SEr,vrn).call(this,t.playground)}}let f=(r!=null?(l=yc(this,o6).subpackages.get(r))==null?void 0:l.webhooks.get(t.endpoint):void 0)??yc(this,o6).webhooks.get(VE.WebhookId(t.endpoint));if(f!=null){let g=yc(this,o6).getWebhookId(f);if(g==null)throw new Error(`Expected Webhook ID for ${f.id}. Got undefined.`);return yc(this,BNn).has(g)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${g}`),yc(this,BNn).add(g),{id:i.append(f.id).get(),type:"webhook",webhookId:g,method:f.method,title:t.title??f.name??HS("/",...f.path),slug:(t.slug!=null?n.append(t.slug):n.apply(f)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:void 0}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)},Fvi=new WeakSet,YPu=function(t,r){return this.mergeEndpointPairs([...t,...r]).filter(n=>n.type==="apiPackage"?n.children.length>0:!0)},Lvi=new WeakSet,XPu=function(t){if(t.type==="apiPackage"){let r=VE.SlugGenerator.init(t.slug),i=(yc(this,brn).get(t.id)??[]).flatMap(f=>dO(this,Vvi,ZPu).call(this,f,r)),a=t.children.map(f=>dO(this,Lvi,XPu).call(this,f)),u=dO(this,Fvi,YPu).call(this,a,i);return{...t,children:u,pointsTo:VE.utils.followRedirects(u)}}return t},Uvi=new WeakSet,QPu=function(t,r){let n=[];return t.endpoints.forEach(i=>{var f;let a=yc(this,o6).getEndpointId(i);if(a==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);if(yc(this,NNn).has(a))return;let u=r.apply(i);n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(i.availability),isResponseStream:((f=i.response)==null?void 0:f.type.type)==="stream",title:i.name??fwe(i.path.parts),slug:u.get(),icon:void 0,hidden:void 0,playground:void 0})}),t.websockets.forEach(i=>{let a=yc(this,o6).getWebSocketId(i);if(a==null)throw new Error(`Expected WebSocket ID for ${i.id}. Got undefined.`);yc(this,zNn).has(a)||n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??fwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(i.availability),playground:void 0})}),t.webhooks.forEach(i=>{let a=yc(this,o6).getWebhookId(i);if(a==null)throw new Error(`Expected Webhook ID for ${i.id}. Got undefined.`);yc(this,BNn).has(a)||n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??RAt(i.id),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:void 0})}),t.subpackages.forEach(i=>{if(yc(this,jFt).has(i))return;let a=yc(this,o6).getSubpackageByIdOrLocator(i);if(a==null){this.taskContext.logger.error(`Subpackage ${i} not found in ${this.apiDefinitionId}`);return}let u=PFt(a)?r.apply(a):r,f=dO(this,Vvi,ZPu).call(this,i,u);f.length>0&&n.push({id:VE.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:PFt(a)?a.displayName??RAt(a.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:VE.utils.followRedirects(f),noindex:void 0,playground: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},Vvi=new WeakSet,ZPu=function(t,r){let n=t!=null?yc(this,o6).resolveSubpackage(yc(this,o6).getSubpackageByIdOrLocator(t)):void 0;return n==null?(this.taskContext.logger.error(`Subpackage ${t} not found in ${this.apiDefinitionId}`),[]):dO(this,Uvi,QPu).call(this,n,r)},SEr=new WeakSet,vrn=function(t){if(t)return{environments:t.environments!=null&&t.environments.length>0?t.environments.map(r=>VE.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:VE.Url(t.button.href)}:void 0}};function Mzf(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 wFt=yu(tXi(),1);function xzf(e){return e._visit({alias:t=>({type:"alias",value:QT(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:GQ(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>r.typeId),properties:t.properties.map(r=>({description:r.docs??void 0,key:r.name.wireValue,valueType:QT(r.valueType),availability:GQ(r.availability)}))}),union:t=>{let r=t.baseProperties.map(n=>({key:n.name.wireValue,valueType:QT(n.valueType),availability:GQ(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?GQ(n.availability):void 0,additionalProperties:h_.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[i.typeId],properties:r}),singleProperty:i=>({extends:[],properties:[{key:i.name.wireValue,valueType:QT(i.type)},...r]}),noProperties:()=>({extends:[],properties:r}),_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:QT(r.type)}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function QT(e){return e._visit({container:t=>h_.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:QT(r)}),map:({keyType:r,valueType:n})=>({type:"map",keyType:QT(r),valueType:QT(n)}),optional:r=>({type:"optional",itemType:QT(r)}),set:r=>({type:"set",itemType:QT(r)}),literal:r=>h_.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:t.typeId}),primitive:t=>({type:"primitive",value:h_.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>Ouj(t.v2),float:()=>({type:"double"}),double:()=>Puj(t.v2),string:()=>muj(t.v2),long:()=>({type:"long"}),boolean:()=>({type:"boolean"}),dateTime:()=>({type:"datetime"}),date:()=>({type:"date"}),uuid:()=>({type:"uuid"}),base64:()=>({type:"base64"}),bigInteger:()=>({type:"bigInteger"}),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 muj(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",regex:t!=null?t.pattern:void 0,minLength:t!=null?t.minLength:void 0,maxLength:t!=null?t.minLength:void 0,default:e!=null&&e.type==="string"?e.default:void 0}}function Ouj(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t!=null?t.min:void 0,maximum:t!=null?t.max:void 0,default:e!=null&&e.type==="integer"?e.default:void 0}}function Puj(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t!=null?t.min:void 0,maximum:t!=null?t.max:void 0,default:e!=null&&e.type==="double"?e.default:void 0}}function kPu(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?wuj(r,t):[],webhooks:n!=null?juj(n):[],websockets:i!=null?[Duj(i,t)]:[],types:e.types.map(a=>a),subpackages:e.subpackages.map(a=>a),pointsTo:e.navigationConfig!=null?e.navigationConfig.pointsTo:void 0}}function juj(e){return e.map(t=>({description:t.docs??void 0,id:t.name.originalName,path:[],method:t.method,name:t.displayName??Hsi(t.name.originalName),headers:t.headers.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:QT(r.valueType)})),payload:Nuj(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function wuj(e,t){var n;let r=[];for(let i of e.endpoints){let a=i.autogeneratedExamples[0],u={availability:GQ(i.availability??e.availability),auth:i.auth,description:i.docs??void 0,method:xuj(i.method),defaultEnvironment:((n=t.environments)==null?void 0:n.defaultEnvironment)!=null?t.environments.defaultEnvironment:void 0,environments:t.environments!=null?Suj({environmentsConfig:t.environments,endpoint:i}):void 0,id:i.name.originalName,originalEndpointId:i.id,name:i.displayName??Hsi(i.name.originalName),path:{pathParameters:[...t.pathParameters,...e.pathParameters,...i.pathParameters].map(f=>({description:f.docs??void 0,key:f.name.originalName,type:QT(f.valueType)})),parts:[...t.basePath!=null?swa(t.basePath):[],...swa(e.basePath),...swa(i.path)]},queryParameters:i.queryParameters.map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:QT(f.valueType),availability:GQ(f.availability)})),headers:[...e.headers,...i.headers].map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:QT(f.valueType),availability:GQ(f.availability)})),request:i.requestBody!=null?Tuj(i.requestBody):void 0,response:i.response!=null?quj(i.response):void 0,errors:void 0,errorsV2:Cuj(i.errors,t),examples:a!=null?i.userSpecifiedExamples.map(f=>Auj({autogeneratedExample:a,userSpecifiedExample:f,irEndpoint:i,ir:t})):[]};r.push(u)}return r}function Duj(e,t){var r;return{auth:e.auth,description:e.docs??void 0,defaultEnvironment:((r=t.environments)==null?void 0:r.defaultEnvironment)!=null?t.environments.defaultEnvironment:void 0,environments:t.environments!=null?Euj({environmentsConfig:t.environments,channel:e}):[],id:e.name.originalName,name:e.displayName??Hsi(e.name.originalName),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:n.name.originalName,type:QT(n.valueType)})),parts:swa(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:QT(n.valueType)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:QT(n.valueType)})),messages:e.messages.map(n=>({type:n.type,displayName:n.displayName,origin:n.origin,body:zuj(n.body),description:n.docs,availability:GQ(n.availability)})),examples:e.examples.map(n=>{var i;return{name:(i=n.name)==null?void 0:i.originalName,description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((a,u)=>(a[u.name.originalName]=u.value.jsonExample,a),{}),queryParameters:n.queryParameters.reduce((a,u)=>(a[u.name.wireValue]=u.value.jsonExample,a),{}),headers:n.headers.reduce((a,u)=>(a[u.name.wireValue]=u.value.jsonExample,a),{}),messages:n.messages.map(a=>({type:a.type,body:a.body.jsonExample}))}})}}function GQ(e){if(e!=null)switch(e.status){case"DEPRECATED":return wFt.FernRegistry.api.v1.register.Availability.Deprecated;case"PRE_RELEASE":return wFt.FernRegistry.api.v1.register.Availability.Beta;case"GENERAL_AVAILABILITY":return wFt.FernRegistry.api.v1.register.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return wFt.FernRegistry.api.v1.register.Availability.Beta;default:Ol(e.status)}}function Suj({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id: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:i.id,baseUrl:a}});default:Ol(r)}}function Euj({environmentsConfig:e,channel:t}){let r=e.environments;switch(r.type){case"singleBaseUrl":return r.environments.map(n=>({id:n.id,baseUrl:Muj(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:Ol(r)}}function Muj(e,t){return e.replace(/^[^:]+/,t)}function xuj(e){return h_.http.HttpMethod._visit(e,{get:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Get,post:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Post,put:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Put,patch:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Patch,delete:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Delete,_other:()=>{throw new Error("Unknown http method: "+e)}})}function swa(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:r.pathParameter},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function Tuj(e){let t=h_.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??cA.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>n.typeId),properties:r.properties.map(n=>({description:n.docs??void 0,key:n.name.wireValue,valueType:QT(n.valueType),availability:GQ(n.availability)}))}}),reference:r=>({type:"json",contentType:r.contentType??cA.APPLICATION_JSON,shape:{type:"reference",value:QT(r.requestBodyType)}}),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:u.key.wireValue,isOptional:u.isOptional}),fileArray:u=>({type:"fileArray",key:u.key.wireValue,isOptional:u.isOptional}),_other:()=>{}});if(a!=null)return{type:"file",value:a}},bodyProperty:i=>({type:"bodyProperty",key:i.name.wireValue,valueType:QT(i.valueType),description:i.docs,availability:GQ(i.availability)}),_other:()=>{}})).filter(RS)}}),bytes:r=>({type:"bytes",description:void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t}:void 0}function quj(e){if(e.body==null)return;let t=h_.http.HttpResponseBody._visit(e.body,{fileDownload:()=>({type:"fileDownload"}),json:r=>({type:"reference",value:QT(r.responseBodyType)}),text:()=>{},streamParameter:()=>{},streaming:r=>{if(r.type==="text")return{type:"streamingText"};if(r.type==="json")return{type:"stream",shape:{type:"reference",value:QT(r.payload)}};if(r.type==="sse")return{type:"stream",shape:{type:"reference",value:QT(r.payload)}}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}});if(t!=null)return{type:t,statusCode:e.statusCode}}function Cuj(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:QT(i.type)},statusCode:i.statusCode,description:i.docs??void 0,examples:i.examples.map(a=>{var u;return{name:(u=a.name)==null?void 0:u.originalName,responseBody:{type:"json",value:a.jsonExample}}})})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let a=[{key:t.errorDiscriminationStrategy.discriminant.wireValue,valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}}}];i.type!=null&&a.push({key:t.errorDiscriminationStrategy.contentProperty.wireValue,valueType:QT(i.type)}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:a},statusCode:i.statusCode,description:i.docs??void 0,name:i.name.name.originalName})}}return r}function Auj({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){var f,d,c;let i=n.headers.map(o=>{let l=o.valueType.type==="container"&&o.valueType.container.type==="literal"?o.valueType.container.literal._visit({boolean:g=>`${g}`,string:g=>g,_other:()=>{}}):void 0;if(l!=null)return{name:o.name,value:{jsonExample:l,shape:h_.ExampleTypeReferenceShape.primitive(h_.ExamplePrimitive.string({original:l}))}}}).filter(RS),a=e.example??t.example,{codeSamples:u}=e;return{name:(f=a.name)==null?void 0:f.originalName,description:a.docs,path:a.url,pathParameters:[...a.rootPathParameters,...a.servicePathParameters,...a.endpointPathParameters].reduce((o,l)=>(o[l.name.originalName]=l.value.jsonExample,o),{}),queryParameters:a.queryParameters.reduce((o,l)=>(o[l.name.wireValue]=l.value.jsonExample,o),{}),headers:[...i,...a.serviceHeaders,...a.endpointHeaders].reduce((o,l)=>(o[l.name.wireValue]=l.value.jsonExample,o),{}),requestBody:(d=a.request)==null?void 0:d.jsonExample,requestBodyV3:(c=r.requestBody)==null?void 0:c._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:o=>{if(a.request==null)return;let l={};if(RO(a.request.jsonExample)){let g=a.request.jsonExample;for(let O of o.properties)O._visit({file:j=>{let S=g[j.key.wireValue];if(j.type==="file")l[j.key.wireValue]={type:"filename",value:typeof S=="string"?S:"<file1>"};else if(j.type==="fileArray"){let x=(Array.isArray(S)?S:[S]).filter(A=>typeof A=="string");l[j.key.wireValue]={type:"filenames",value:x}}},bodyProperty:j=>{l[j.name.wireValue]={type:"json",value:g[j.name.wireValue]}},_other:sCt})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:h_.http.ExampleResponse._visit(a.response,{ok:o=>o._visit({body:l=>l!=null?200:204,stream:l=>l.length>0?200:204,sse:l=>l.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+o.type)}}),error:({error:o})=>{let l=n.errors[o.errorId];if(l==null)throw new Error("Cannot find error "+o.errorId);return l.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),responseBody:a.response._visit({ok:o=>o._visit({body:l=>l==null?void 0:l.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:o=>{var l;return(l=o.body)==null?void 0:l.jsonExample},_other:()=>{}}),responseBodyV3:a.response._visit({ok:o=>o._visit({body:l=>l!=null?{type:"json",value:l.jsonExample}:void 0,stream:l=>({type:"stream",value:l.map(g=>g.jsonExample)}),sse:l=>({type:"sse",value:l.map(({event:g,data:O})=>({event:g,data:O.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+o.type)}}),error:o=>o.body!=null?{type:"json",value:o.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),codeSamples:u==null?void 0:u.map(o=>Dje._visit(o,{language:l=>{var g;return{language:l.language,code:l.code,name:(g=l.name)==null?void 0:g.originalName,description:l.docs??void 0,install:l.install}},sdk:l=>{var g;return{language:l.sdk,code:l.code,name:(g=l.name)==null?void 0:g.originalName,description:l.docs??void 0,install:void 0}},_other:()=>{}})).filter(RS)}}function Nuj(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>t.typeId),properties:e.properties.map(t=>({description:t.docs??void 0,key:t.name.wireValue,valueType:QT(t.valueType),availability:GQ(t.availability)}))}};case"reference":return{type:{type:"reference",value:QT(e.payloadType)}};default:Ol(e)}}function zuj(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>t.typeId),properties:e.properties.map(t=>({description:t.docs??void 0,key:t.name.wireValue,valueType:QT(t.valueType),availability:GQ(t.availability)}))};case"reference":return{type:"reference",value:QT(e.bodyType)};default:Ol(e)}}function Tzf(e,t,r){var i;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 a=((i=n.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath)==null?void 0:i.map(u=>u.originalName).join("."))||"$.body.access_token";return r!=null&&r.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:n.configuration.tokenEndpoint.endpointReference.endpointId,accessTokenLocator:a}}}:{type:"bearerAuth",tokenName:"token"}}default:Ol(n)}}function dwe({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:kPu(e.rootPackage,e),auth:Tzf(e.auth,e,r),snippetsConfiguration:t,globalHeaders:e.headers.map(i=>({description:i.docs??void 0,key:i.name.wireValue,type:QT(i.valueType)}))};for(let[i,a]of v3(e.types))n.types[i]={description:a.docs??void 0,name:a.name.name.originalName,shape:xzf(a.shape),availability:GQ(a.availability)};for(let[i,a]of v3(e.subpackages)){let u=a.service!=null?e.services[a.service]:void 0;n.subpackages[i]={subpackageId:i,displayName:u==null?void 0:u.displayName,name:a.name.originalName,description:a.docs??void 0,...kPu(a,e)}}return n}async function e1u({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await JQ({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=qZr({token:n.value}),c=dwe({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:e,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 Buj=new orn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function qzf(e,t,r){return ivi(tvi(dwe({ir:e,snippetsConfig:{},playgroundConfig:r}),t,Buj))}function Czf(e){var r,n,i,a,u,f,d,c,o,l;let t=new Set;return((r=e.logo)==null?void 0:r.dark)!=null&&t.add(e.logo.dark),((n=e.logo)==null?void 0:n.light)!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),((i=e.backgroundImage)==null?void 0:i.dark)!=null&&t.add(e.backgroundImage.dark),((a=e.backgroundImage)==null?void 0:a.light)!=null&&t.add(e.backgroundImage.light),((u=e.metadata)==null?void 0:u["og:image"])!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),((f=e.metadata)==null?void 0:f["og:logo"])!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),((d=e.metadata)==null?void 0:d["twitter:image"])!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),((c=e.typography)==null?void 0:c.bodyFont)!=null&&e.typography.bodyFont.variants.forEach(g=>{t.add(g.absolutePath)}),((o=e.typography)==null?void 0:o.headingsFont)!=null&&e.typography.headingsFont.variants.forEach(g=>{t.add(g.absolutePath)}),((l=e.typography)==null?void 0:l.codeFont)!=null&&e.typography.codeFont.variants.forEach(g=>{t.add(g.absolutePath)}),e.js!=null&&e.js.files.forEach(g=>{t.add(g.absolutePath)}),t}function EEr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}Azf.default.extend(Nzf.default);var mrn=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u,f){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}_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(){var d;this._parsedDocsConfig=await jre.parseDocsConfiguration({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig}),this.fernWorkspaces.forEach(c=>{var o;(o=c.changelog)==null||o.files.forEach(l=>{let g=YN(this.docsWorkspace.absoluteFilepath,l.absoluteFilepath);this.parsedDocsConfig.pages[g]=l.contents})}),this.markdownFilesToFullSlugs=this.getMarkdownFilesToFullSlugs(this.parsedDocsConfig.pages);for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=await Y0i({markdown:o,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absolutePathToMdx:this.resolveFilepath(c),context:this.taskContext});for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=await X0i({markdown:o,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absolutePathToMdx:this.resolveFilepath(c),context:this.taskContext});let t=Czf(this.parsedDocsConfig);for(let[c,o]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:l,markdown:g}=K0i(o,{absolutePathToMdx:this.resolveFilepath(c),absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath});this.parsedDocsConfig.pages[Ws.of(c)]=g;for(let O of l)t.add(O)}let r=Array.from(t).map(c=>({absoluteFilePath:c,relativeFilePath:this.toRelativeFilepath(c)}));(await this.uploadFiles(r)).forEach(c=>{this.collectedFileIds.set(c.absoluteFilePath,c.fileId)});let i=this.getDocsBasePath();for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=XOu(o,this.collectedFileIds,new Map(Array.from(this.markdownFilesToFullSlugs.entries()).map(([l,g])=>[l,HS(i,g)])),{absolutePathToMdx:this.resolveFilepath(c),absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath},this.taskContext);let a={};Object.entries(this.parsedDocsConfig.pages).forEach(([c,o])=>{a[c]={markdown:o,editThisPageUrl:Iuj(this.editThisPage,c)}});let u=await this.convertDocsConfiguration(),f={};if(((d=this._parsedDocsConfig.experimental)==null?void 0:d.mdxComponents)!=null){let c=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async o=>{let l=w2(this.docsWorkspace.absoluteFilepath,o);(await(0,cwa.stat)(l)).isDirectory()?(await o4r(l,"{js,ts,jsx,tsx}")).forEach(j=>{c.add(j)}):l.match(/\.(js|ts|jsx|tsx)$/)!=null&&c.add(l)})),f=Object.fromEntries(await Promise.all([...c].map(async o=>{let l=this.toRelativeFilepath(o),g=(await(0,cwa.readFile)(o)).toString();return[l,g]})))}return{config:u,pages:a,jsFiles:f}}resolveFilepath(t){if(t!=null)return w2(this.docsWorkspace.absoluteFilepath,t)}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,zzf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(EEr(this.domain)).pathname}async convertDocsConfiguration(){var n,i;let t=await this.convertNavigationConfig();return{title:this.parsedDocsConfig.title,logoHeight:(n=this.parsedDocsConfig.logo)==null?void 0:n.height,logoHref:(i=this.parsedDocsConfig.logo)==null?void 0:i.href,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks,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,defaultLanguage:this.parsedDocsConfig.defaultLanguage,analyticsConfig:this.parsedDocsConfig.analyticsConfig,announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,playground: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 convertNavigationConfig(){let t=VE.SlugGenerator.init(VE.utils.slugjoin(this.getDocsBasePath()));switch(this.parsedDocsConfig.navigation.type){case"versioned":return{versions:await Promise.all(this.parsedDocsConfig.navigation.versions.map(async n=>{let i=t.setVersionSlug(n.slug??nR(n.version)),a=await this.convertUnversionedNavigationConfig({landingPage:n.landingPage,navigationConfig:n.navigation,parentSlug:i});return{version:n.version,config:a,availability:n.availability!=null?Ruj(n.availability):void 0,urlSlugOverride:n.slug}}))};case"untabbed":case"tabbed":return this.convertUnversionedNavigationConfig({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:this.parsedDocsConfig.navigation,parentSlug:t});default:Ol(this.parsedDocsConfig.navigation)}}async convertNavigationItem(t,r){var n,i,a;switch(t.type){case"page":return{type:"page",title:t.title,icon:t.icon,id:this.toRelativeFilepath(t.absolutePath),urlSlugOverride:t.slug,fullSlug:(n=this.markdownFilesToFullSlugs.get(t.absolutePath))==null?void 0:n.split("/"),hidden:t.hidden};case"section":{let u=r.apply({fullSlug:void 0,skipUrlSlug:t.skipUrlSlug,urlSlug:t.slug??nR(t.title)}),f=await Promise.all(t.contents.map(d=>this.convertNavigationItem(d,u)));return{type:"section",title:t.title,items:f,urlSlugOverride:t.slug,collapsed:t.collapsed,icon:t.icon,hidden:t.hidden,skipUrlSlug:t.skipUrlSlug,overviewPageId:this.toRelativeFilepath(t.overviewAbsolutePath)}}case"apiSection":{let u=this.getFernWorkspaceForApiSection(t),f=Mzf(t.snippetsConfiguration),d=await JQ({workspace:u,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}),c=await this.registerApi({ir:d,snippetsConfig:f,playgroundConfig:{oauth:(i=t.playground)==null?void 0:i.oauth}}),o=qzf(d,c,{oauth:(a=t.playground)==null?void 0:a.oauth}),l=new iwa(t,o,r,u,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs);return{type:"apiV2",node:l.get()}}case"link":return{type:"link",title:t.text,url:t.url};case"changelog":{let u=HAt.init(r.get()),f=new yrn(this.markdownFilesToFullSlugs,t.changelog,this.docsWorkspace,u).convert({parentSlug:r,title:t.title,icon:t.icon,hidden:t.hidden,slug:t.slug});return{type:"changelogV3",node:f??{id:u.append("changelog").get(),type:"changelog",title:t.title,slug:r.append(t.slug??nR(t.title)).get(),children:[]}}}default:Ol(t)}}async convertUnversionedNavigationConfig({landingPage:t,navigationConfig:r,parentSlug:n}){var a;let i=t!=null?{id:this.toRelativeFilepath(t.absolutePath),urlSlugOverride:t.slug,fullSlug:(a=this.markdownFilesToFullSlugs.get(t.absolutePath))==null?void 0:a.split("/"),hidden:t.hidden,title:t.title,icon:t.icon}:void 0;switch(r.type){case"untabbed":{let u=await Promise.all(r.items.map(f=>this.convertNavigationItem(f,n)));return{landingPage:i,items:u}}case"tabbed":return{landingPage:i,tabsV2:await this.convertTabbedNavigation(r.items,n)};default:Ol(r)}}async convertTabbedNavigation(t,r){return Promise.all(t.map(async n=>{if(n.child.type==="link")return{type:"link",title:n.title,icon:n.icon,url:n.child.href};if(n.child.type==="changelog"){let i=HAt.init(r.get()),a=new yrn(this.markdownFilesToFullSlugs,n.child.changelog,this.docsWorkspace,i).convert({parentSlug:r,title:n.title,icon:n.icon,hidden:n.hidden,slug:n.slug});return{type:"changelogV3",node:a??{id:i.append("changelog").get(),type:"changelog",title:n.title,slug:r.append(n.slug??nR(n.title)).get(),children:[]}}}if(n.child.type==="layout"){let i=r.apply({skipUrlSlug:n.skipUrlSlug,urlSlug:n.slug??nR(n.title)}),a=await Promise.all(n.child.layout.map(u=>this.convertNavigationItem(u,i)));return{type:"group",title:n.title,icon:n.icon,items:a,urlSlugOverride:n.slug,skipUrlSlug:n.skipUrlSlug,hidden:n.hidden,fullSlug:void 0}}Ol(n.child)}))}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t)}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"})}:{...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==null?void 0:r[t],a=n==null?void 0: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(RS)}}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 qFo(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:r}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function Iuj(e,t){if((e==null?void 0:e.github)==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${EEr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function Ruj(e){switch(e){case"beta":return nrn.VersionAvailability.Beta;case"deprecated":return nrn.VersionAvailability.Deprecated;case"ga":return nrn.VersionAvailability.GenerallyAvailable;case"stable":return nrn.VersionAvailability.Stable;default:Ol(e)}}var $Hf=yu(Uzf(),1),Hwu=yu(eju(),1),JHf=yu(require("http"),1),nSa=yu(require("path"),1);var s9f=require("events"),Vwa=yu(require("fs"),1),xrn=yu(require("path"),1);var HFf=yu(require("os"),1),$Ff=300,uBr=20,fbi=1e7,JFf=HFf.default.platform();var hhj=JFf==="darwin",tju=JFf==="win32",sBr=hhj||tju,GFf=3e3,KFf=2e4,rju=1250;var EFt;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(EFt||(EFt={}));var Mrn;(function(e){e.CHANGE="change",e.RENAME="rename"})(Mrn||(Mrn={}));var dbi;(function(e){e.CHANGE="change",e.ERROR="error"})(dbi||(dbi={}));var Sm;(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"})(Sm||(Sm={}));var XQ;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(XQ||(XQ={}));var yhj=(e,t=1,r)=>{t=Math.max(1,t);let n=(r==null?void 0:r.leading)??!1,i=(r==null?void 0:r.trailing)??!0,a=Math.max((r==null?void 0:r.maxWait)??1/0,t),u,f,d=0,c=0,o=()=>{let C=Date.now(),U=C-d,Y=C-c,te=U>=t||Y>=a;return[C,te]},l=C=>{if(c=C,!u)return;let U=u;u=void 0,e.apply(void 0,U)},g=()=>{N(0)},O=()=>{!f||(g(),l(Date.now()))},j=C=>{if(c=C,n)return l(C)},S=C=>{if(i&&u)return l(C);u=void 0},x=()=>{f=void 0;let[C,U]=o();return U?S(C):A(C)},A=C=>{let U=C-d,Y=C-c,te=t-U,G=a-Y,$=Math.min(te,G);return N($)},N=C=>{f&&clearTimeout(f),!(C<=0)&&(f=setTimeout(x,C))},z=(...C)=>{let[U,Y]=o(),te=!!f;if(u=C,d=U,(Y||!f)&&N(t),Y)return te?l(U):j(U)};return z.cancel=g,z.flush=O,z},Rwa=yhj;var uju=yu(require("fs"),1),Lwa=yu(require("path"),1);var Ux=yu(require("fs"),1),qW=require("util");var xEr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},MFt=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var nju=yu(require("process"),1),YFf=nju.default.getuid?!nju.default.getuid():!1,XFf=1e4,Kne=()=>{};var pbi={isChangeErrorOk:e=>{if(!pbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!YFf&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!pbi.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(!pbi.isNodeError(e))throw e;if(!pbi.isChangeErrorOk(e))throw e}},B5=pbi;var iju=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=XFf,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()}}}}},QFf=new iju;var TEr=(e,t)=>function(n){return function i(...a){return QFf.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(g=>setTimeout(g,o)).then(()=>i.apply(void 0,a))}throw c};return e.apply(void 0,a).then(f,d)})}},qEr=(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 vhj={attempt:{chmod:xEr((0,qW.promisify)(Ux.default.chmod),B5.onChangeError),chown:xEr((0,qW.promisify)(Ux.default.chown),B5.onChangeError),close:xEr((0,qW.promisify)(Ux.default.close),Kne),fsync:xEr((0,qW.promisify)(Ux.default.fsync),Kne),mkdir:xEr((0,qW.promisify)(Ux.default.mkdir),Kne),realpath:xEr((0,qW.promisify)(Ux.default.realpath),Kne),stat:xEr((0,qW.promisify)(Ux.default.stat),Kne),unlink:xEr((0,qW.promisify)(Ux.default.unlink),Kne),chmodSync:MFt(Ux.default.chmodSync,B5.onChangeError),chownSync:MFt(Ux.default.chownSync,B5.onChangeError),closeSync:MFt(Ux.default.closeSync,Kne),existsSync:MFt(Ux.default.existsSync,Kne),fsyncSync:MFt(Ux.default.fsync,Kne),mkdirSync:MFt(Ux.default.mkdirSync,Kne),realpathSync:MFt(Ux.default.realpathSync,Kne),statSync:MFt(Ux.default.statSync,Kne),unlinkSync:MFt(Ux.default.unlinkSync,Kne)},retry:{close:TEr((0,qW.promisify)(Ux.default.close),B5.isRetriableError),fsync:TEr((0,qW.promisify)(Ux.default.fsync),B5.isRetriableError),open:TEr((0,qW.promisify)(Ux.default.open),B5.isRetriableError),readFile:TEr((0,qW.promisify)(Ux.default.readFile),B5.isRetriableError),rename:TEr((0,qW.promisify)(Ux.default.rename),B5.isRetriableError),stat:TEr((0,qW.promisify)(Ux.default.stat),B5.isRetriableError),write:TEr((0,qW.promisify)(Ux.default.write),B5.isRetriableError),writeFile:TEr((0,qW.promisify)(Ux.default.writeFile),B5.isRetriableError),closeSync:qEr(Ux.default.closeSync,B5.isRetriableError),fsyncSync:qEr(Ux.default.fsyncSync,B5.isRetriableError),openSync:qEr(Ux.default.openSync,B5.isRetriableError),readFileSync:qEr(Ux.default.readFileSync,B5.isRetriableError),renameSync:qEr(Ux.default.renameSync,B5.isRetriableError),statSync:qEr(Ux.default.statSync,B5.isRetriableError),writeSync:qEr(Ux.default.writeSync,B5.isRetriableError),writeFileSync:qEr(Ux.default.writeFileSync,B5.isRetriableError)}},ZFf=vhj;var Fwa=yu(require("fs"),1),_bi=yu(require("path"),1);var kFf={then:e=>{e()}};var aju=()=>{};var oju=()=>{let e=aju,t=aju,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}};oju.wrap=async e=>{let t=oju();return await e(t),t.promise};var e9f=oju;var t9f=e=>Array.isArray(e)?e:[e],r9f=e=>typeof e=="function",n9f=()=>{let{promise:e,resolve:t}=e9f(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var bhj=(e,t)=>{let r=(t==null?void 0:t.followSymlinks)??!1,n=(t==null?void 0:t.depth)??1/0,i=(t==null?void 0:t.limit)??1/0,a=(t==null?void 0:t.ignore)??[],u=t9f(a).map(zt=>r9f(zt)?zt:_r=>zt.test(_r)),f=zt=>u.some(_r=>_r(zt)),d=(t==null?void 0:t.signal)??{aborted:!1},c=(t==null?void 0:t.onDirents)||(()=>{}),o=[],l=new Set,g={},O=[],j=new Set,S={},x=[],A=new Set,N={},z={},C=new Set,U={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},Y={directories:o,directoriesNames:l,directoriesNamesToPaths:g,files:O,filesNames:j,filesNamesToPaths:S,symlinks:x,symlinksNames:A,symlinksNamesToPaths:N,map:z},{promise:te,increment:G,decrement:$}=n9f(),ee=0,Ve=(zt,_r,Yr,Gt)=>{C.has(_r)||ee>=i||(ee+=1,zt.directories.push(_r),zt.directoriesNames.add(Yr),o.push(_r),l.add(Yr),g.propertyIsEnumerable(Yr)||(g[Yr]=[]),g[Yr].push(_r),C.add(_r),!(Gt>=n)&&(ee>=i||ur(_r,Gt+1)))},$e=(zt,_r,Yr)=>{C.has(_r)||ee>=i||(ee+=1,zt.files.push(_r),zt.filesNames.add(Yr),O.push(_r),j.add(Yr),S.propertyIsEnumerable(Yr)||(S[Yr]=[]),S[Yr].push(_r),C.add(_r))},Dt=(zt,_r,Yr,Gt)=>{C.has(_r)||ee>=i||(ee+=1,zt.symlinks.push(_r),zt.symlinksNames.add(Yr),x.push(_r),A.add(Yr),N.propertyIsEnumerable(Yr)||(N[Yr]=[]),N[Yr].push(_r),C.add(_r),r&&(Gt>=n||ee>=i||Ar(_r,Gt+1)))},Tt=(zt,_r,Yr,Gt,bn)=>{d.aborted||f(_r)||(Gt.isDirectory()?Ve(zt,_r,Yr,bn):Gt.isFile()?$e(zt,_r,Yr):Gt.isSymbolicLink()&&Dt(zt,_r,Yr,bn))},Wt=(zt,_r,Yr,Gt)=>{if(d.aborted)return;let bn=_r===_bi.default.sep?"":_bi.default.sep,An=Yr.name,Ht=`${_r}${bn}${An}`;f(Ht)||(Yr.isDirectory()?Ve(zt,Ht,An,Gt):Yr.isFile()?$e(zt,Ht,An):Yr.isSymbolicLink()&&Dt(zt,Ht,An,Gt))},Nt=(zt,_r,Yr,Gt)=>{for(let bn=0,An=Yr.length;bn<An;bn++)Wt(zt,_r,Yr[bn],Gt)},ur=(zt,_r)=>{d.aborted||_r>n||ee>=i||(G(),Fwa.default.readdir(zt,{withFileTypes:!0},(Yr,Gt)=>{if(Yr||d.aborted||!Gt.length)return $();(c(Gt)||kFf).then(()=>{let An=z[zt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Nt(An,zt,Gt,_r),$()})}))},Ar=async(zt,_r)=>{G(),Fwa.default.realpath(zt,(Yr,Gt)=>{if(Yr||d.aborted)return $();Fwa.default.stat(Gt,async(bn,An)=>{if(bn||d.aborted)return $();let Ht=_bi.default.basename(Gt),er=z[zt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Tt(er,Gt,Ht,An,_r),$()})})};return(async(zt,_r=1)=>(zt=_bi.default.normalize(zt),C.add(zt),ur(zt,_r),await te,d.aborted?U:Y))(e)},i9f=bhj;var xFt={lang:{debounce:Rwa,attempt:e=>{try{return e()}catch(t){return xFt.lang.castError(t)}},castArray:e=>xFt.lang.isArray(e)?e:[e],castError:e=>xFt.lang.isError(e)?e:xFt.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(xFt.lang.isNaN(e))return xFt.lang.isNaN(t);if(xFt.lang.isPrimitive(e)||xFt.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(Lwa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?uju.default.realpathSync.native(e):uju.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Lwa.default.sep&&t.length-e.length>Lwa.default.sep.length,poll:(e,t=KFf)=>ZFf.retry.stat(t)(e,{bigint:!0}).catch(xFt.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 i9f(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},W1=xFt;var Uwa=yu(require("path"),1);var sju=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||W1.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=$Ff){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=W1.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===Sm.CHANGE&&f===Sm.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===Sm.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):u===Sm.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??uBr:Math.min(1,this.options.depth??uBr),u=this.options.limit??fbi,[f,d]=await W1.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())!W1.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(Sm.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!sBr&&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(Sm.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Sm.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Uwa.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Sm.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Uwa.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(Sm.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Sm.ADD?this.onTargetAdd(n):r===Sm.ADD_DIR?this.onTargetAddDir(n):r===Sm.CHANGE?this.onTargetChange(n):r===Sm.UNLINK?this.onTargetUnlink(n):r===Sm.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=Mrn.CHANGE,r){if(this.watcher.isClosed())return;let n=Uwa.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){tju&&t.code==="EPERM"?this.onWatcherChange(Mrn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(dbi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(dbi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(Mrn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&sBr&&this.options.native!==!1?this.options.depth??uBr:Math.min(1,this.options.depth??uBr),n=this.options.limit??fbi,[i,a]=await W1.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(Mrn.CHANGE,f,t)}))}}},a9f=sju;var QQ={interval:100,intervalId:void 0,fns:new Map,init:()=>{QQ.intervalId||(QQ.intervalId=setInterval(QQ.resolve,QQ.interval))},reset:()=>{!QQ.intervalId||(clearInterval(QQ.intervalId),delete QQ.intervalId)},add:(e,t)=>{QQ.fns.set(e,Date.now()+t),QQ.init()},remove:e=>{QQ.fns.delete(e)},resolve:()=>{if(!QQ.fns.size)return QQ.reset();let e=Date.now();for(let[t,r]of QQ.fns)r>=e||(QQ.remove(t),t())}},hbi=QQ;var TFt=class{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=rju){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{let l=this._watcher._poller.paths.find(n||-1,g=>g!==i);if(l&&l!==i){if(W1.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),hbi.remove(c)},c=()=>{d(),f()};hbi.add(c,r);let o=()=>{let l=u.unlink.get(n);if(!l)return;d();let g=l();i===g?a.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(a.change,i):this._watcher.event(a.rename,g,i)};u.add.set(n,o),o()}getLockUnlink(t,r=rju){var l;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),hbi.remove(c)},c=()=>{d(),f()};hbi.add(c,r);let o=()=>(d(),i);u.unlink.set(n,o),(l=u.add.get(n))==null||l()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Sm.ADD,EFt.FILE);return this.getLockAdd({ino:n,targetPath:t,events:TFt.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Sm.ADD_DIR,EFt.DIR);return this.getLockAdd({ino:n,targetPath:t,events:TFt.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Sm.UNLINK,EFt.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:TFt.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Sm.UNLINK_DIR,EFt.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:TFt.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}}};TFt.DIR_EVENTS={add:Sm.ADD_DIR,rename:Sm.RENAME_DIR,unlink:Sm.UNLINK_DIR};TFt.FILE_EVENTS={add:Sm.ADD,change:Sm.CHANGE,rename:Sm.RENAME,unlink:Sm.UNLINK};var o9f=TFt;var cju=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(W1.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(W1.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(W1.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(W1.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return W1.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);W1.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},lju=cju;var fju=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}},u9f=fju;var dju=class{constructor(){this.inos={},this.paths=new lju,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 W1.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new u9f(n)}reset(){this.inos={},this.paths=new lju,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,Sm.ADD,i),[Sm.ADD];if(i.isDirectory())return this.updateIno(t,Sm.ADD_DIR,i),[Sm.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Sm.UNLINK,n),[Sm.UNLINK];if(n.isDirectory())return this.updateIno(t,Sm.UNLINK_DIR,n),[Sm.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Sm.CHANGE,i),[Sm.CHANGE]);if(i.isDirectory())return this.updateIno(t,Sm.UNLINK,n),this.updateIno(t,Sm.ADD_DIR,i),[Sm.UNLINK,Sm.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Sm.UNLINK_DIR,n),this.updateIno(t,Sm.ADD,i),[Sm.UNLINK_DIR,Sm.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Sm.UNLINK_DIR,n),this.updateIno(t,Sm.ADD_DIR,i),[Sm.UNLINK_DIR,Sm.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=n.isFile()?EFt.FILE:EFt.DIR;i[t]=[n.ino,a]}updateStats(t,r){var n;if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=((n=this.stats.get(t))==null?void 0:n.ino)||-1;this.paths.delete(i,t),this.stats.delete(t)}}},pju=dju;var ybi=class extends s9f.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(XQ.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(XQ.CLOSE,i)),this._readyWait=new Promise(i=>this.on(XQ.READY,i)),this._locker=new o9f(this),this._roots=new Set,this._poller=new pju,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&&(W1.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(XQ.CLOSE))}error(t){if(this.isClosed())return!1;let r=W1.lang.castError(t);return this.emit(XQ.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(XQ.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(XQ.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&!!W1.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&!!W1.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)!W1.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 a9f(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=W1.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){let a=this._watchers[t];if(a!=null&&a.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=xrn.default.dirname(t);for(let f=1;f<1/0;f++){let d=this._watchers[u];if(d!=null&&d.find(o=>(f===1||o.options.recursive&&f<=(o.options.depth??uBr))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&sBr&&o.options.native!==!1)))return!0;if(!sBr)break;let c=xrn.default.dirname(t);if(u===c)break;u=c}return!1}async watchDirectories(t,r,n,i,a){if(this.isClosed())return;t=W1.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||sBr&&r.native!==!1?r:{...r,recursive:!1},o={watcher:Vwa.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=xrn.default.dirname(f),S=f;await this.watchDirectories([j],O,n,S,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||sBr&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??uBr,f=r.limit??fbi,[d]=await W1.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=W1.fs.getDepth(t);for(let l of d){let g=W1.fs.getDepth(l),O=Math.max(0,u-(g-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 ybi(a),f=()=>{this._subwatchers.add(i),this.on(XQ.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(XQ.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=xrn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new pju,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 W1.lang.noop;if(this.pollerExists(t,r))return W1.lang.noop;let i={...r,interval:r.pollingInterval??GFf},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(XQ.CLOSE,f),Vwa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(XQ.CLOSE,f),Vwa.default.unwatchFile(t,n)};return W1.lang.attempt(u),()=>W1.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=W1.lang.uniq(t).sort(),t.every((a,u)=>t.every((f,d)=>d===u||!W1.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=xrn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await W1.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=xrn.default.dirname(t),u=await W1.fs.poll(a,r.pollingTimeout);return u!=null&&u.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=W1.lang.noop){if(W1.lang.isFunction(t))return this.watch([],{},t);if(W1.lang.isUndefined(t))return this.watch([],r,n);if(W1.lang.isFunction(r))return this.watch(t,{},r);if(W1.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=W1.lang.castArray(t);i.forEach(a=>this._roots.add(a)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==W1.lang.noop&&this.on(XQ.ALL,n),r.readdirMap=void 0,this.ready())}},c9f=ybi;var Myj=yu(p9f(),1),xyj=yu(wju(),1),Tyj=yu(Dju(),1),qyj=yu(Cju(),1),Nju=yu(lLf(),1);var IHf=yu(RDa(),1),RHf=require("fs"),HEr=require("fs/promises"),tSa=require("os"),FHf=yu(require("path"),1),LHf=require("stream/promises"),UHf=yu(Jte(),1),VHf=yu(BHf(),1),Ubj="etag",Uwu="preview",Vbj="bundle",Vwu=".fern";function Wbj(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu))}function rSa(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu),Ws.of(Vbj))}function Hbj(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu),Ws.of(Ubj))}async function WHf({bucketUrl:e,logger:t,preferCached:r}){var A,N,z,C,U,Y,te,G;t.debug("Setting up docs preview bundle...");let i=await(await fetch(e)).text(),u=await new VHf.default.Parser().parseStringPromise(i),f=(C=(z=(N=(A=u==null?void 0:u.ListBucketResult)==null?void 0:A.Contents)==null?void 0:N[0])==null?void 0:z.ETag)==null?void 0:C[0],d=(G=(te=(Y=(U=u==null?void 0:u.ListBucketResult)==null?void 0:U.Contents)==null?void 0:Y[0])==null?void 0:te.Key)==null?void 0:G[0],c=Hbj();if(r){let $=await Vh(c),ee;if($&&(t.debug("Reading existing ETag"),ee=(await(0,HEr.readFile)(c)).toString()),ee!=null&&ee===f)return t.debug("ETag matches. Using already downloaded bundle"),{type:"success"};t.debug("ETag is different. Downloading latest preview bundle")}let o=await UHf.default.dir({prefix:"fern"}),l=I_.of(o.path);t.debug(`Created tmp directory ${l}`);let g=await fetch(`${FHf.default.join(e,d)}`),O=Tf(l,Ws.of("output.zip")),j=g.body;if(j==null)return{type:"failure"};await(0,LHf.pipeline)(j,(0,RHf.createWriteStream)(O)),t.debug(`Wrote output.zip to ${O}`);let S=Wbj();await Vh(S)&&await(0,HEr.rm)(S,{recursive:!0}),await(0,HEr.mkdir)(S,{recursive:!0}),t.debug(`rm -rf ${S}`);let x=rSa();return await(0,HEr.mkdir)(x,{recursive:!0}),await(0,IHf.default)(O,x),await(0,HEr.writeFile)(c,f),t.debug(`Downloaded bundle to ${x}`),{type:"success"}}async function HHf({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 g=>await g.toFernWorkspace({context:r},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),u=new Wwu(r),f={},c=await new mrn(e,n,a,r,void 0,async g=>g.map(O=>{let j=Wkr();return f[j]={type:"url",url:`/_local${O.absoluteFilePath}`},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async g=>u.addReferencedAPI(g)).resolve(),o=cPu({writeShape:c,files:{}}),l=fPu({dbShape:o.config});return{apis:u.getAPIsForDefinition(),config:l,files:{},filesV2:f,pages:o.pages,search:{type:"legacyMultiAlgoliaIndex"}}}var Wwu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=Wkr(),a=dwe({ir:t,snippetsConfig:r,playgroundConfig:n}),u=tvi(a,i,new orn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),f=ivi(u);return this.apis[i]=f,i}catch(i){let a=i;throw this.context.logger.error(`Failed to read referenced API: ${a==null?void 0:a.message}`),a.stack!=null&&this.context.logger.error(a==null?void 0:a.stack),i}}getAPIsForDefinition(){return this.apis}};var $bj={pages:{},apis:{},files:{},filesV2:{},config:{navigation:{items:[]}},search:{type:"legacyMultiAlgoliaIndex"}};async function $wu({initialProject:e,reloadProject:t,validateProject:r,context:n,port:i,bundlePath:a}){var z,C;if(a!=null)n.logger.info(`Using bundle from path: ${a}`);else try{let U="https://prod-local-preview-bundle2.s3.amazonaws.com/";if(U==null)throw new Error("Failed to connect to the docs preview server. Please contact support@buildwithfern.com");await WHf({bucketUrl:U,logger:n.logger,preferCached:!0})}catch{let Y=rSa();if(await Vh(Y))n.logger.warn("Failed to download latest docs application. Falling back to existing bundle.");else{n.logger.warn("Failed to download docs application. Please reach out to support@buildwithfern.com.");return}}let u=Hg(e.config._absolutePath),f=(0,Hwu.default)(),d=JHf.default.createServer(f),c=new Nju.default({server:d}),o=new Set;function l(U){for(let Y of o)Y.send(JSON.stringify(U))}c.on("connection",function(Y){o.add(Y),Y.on("close",function(){o.delete(Y)})}),f.use((0,$Hf.default)());let g=new URL(EEr(((C=(z=e.docsWorkspaces)==null?void 0:z.config.instances[0])==null?void 0:C.url)??`localhost:${i}`)),O=e,j,S=async()=>{n.logger.info("Reloading docs...");let U=Date.now();try{O=await t(),n.logger.info("Validating docs..."),await r(O);let Y=await HHf({domain:g.host,project:O,context:n});return n.logger.info(`Reload completed in ${Date.now()-U}ms`),Y}catch{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."),j}};j=await S();let x=O.apiWorkspaces.flatMap(U=>U.getAbsoluteFilepaths()),A=a?I_.of(nSa.default.resolve(a)):rSa();new c9f([u,...x],{recursive:!0,ignoreInitial:!0,debounce:1e3,renameDetection:!0}).on("all",async(U,Y,te)=>{n.logger.info(cl.dim(`[${U}] ${Y}`)),l({version:1,type:"startReload"});let G=await S();G!=null&&(j=G),l({version:1,type:"finishReload"})}),f.post("/v2/registry/docs/load-with-url",async(U,Y)=>{var te;try{let G=j??$bj,$={baseUrl:{domain:g.host,basePath:g.pathname},definition:G,lightModeEnabled:((te=G.config.colorsV3)==null?void 0:te.type)!=="dark"};Y.send($)}catch(G){n.logger.error("Error loading docs",G.message),Y.status(500).send()}}),f.get(/^\/_local\/(.*)/,(U,Y)=>Y.sendFile(`/${U.params[0]}`)),f.get("/",(U,Y,te)=>U.headers.upgrade==="websocket"?c.handleUpgrade(U,U.socket,Buffer.alloc(0),G=>{c.emit("connection",G,U)}):te()),f.use("/_next",Hwu.default.static(nSa.default.join(A,"/_next"))),f.use("*",async(U,Y)=>Y.sendFile(nSa.default.join(A,"/[[...slug]].html"))),f.listen(i),n.logger.info(`Running server on http://localhost:${i}`),await new Promise(()=>{})}var zW={RequestReference:"requestReference",InlinedRequestProperty:"inlinedRequestProperty",Response:"response",StreamingResponse:"streamingResponse"};function zC(e,t){return async r=>{var n;r!=null&&await((n=e.docs)==null?void 0:n.call(e,r,[...t,"docs"]))}}async function nqe({example:e,visitor:t,nodePath:r}){var n;if(typeof e=="string")e.startsWith(_Bt)&&await((n=t.exampleTypeReference)==null?void 0:n.call(t,e,r));else if(RO(e))for(let i of Object.values(e))await nqe({example:i,visitor:t,nodePath:r});else if(Array.isArray(e))for(let i of e)await nqe({example:i,visitor:t,nodePath:r})}function QAt(e){return async(t,r,{_default:n,validation:i,location:a}={})=>{var u;await((u=e.typeReference)==null?void 0:u.call(e,{typeReference:t,_default:n,validation:i,location:a,nodePath:r},r))}}async function GHf({service:e,visitor:t,nodePath:r}){var n;await((n=t.httpService)==null?void 0:n.call(t,e,r)),await Aw(e,{url:async i=>{var a;await((a=t.serviceBaseUrl)==null?void 0:a.call(t,i,[...r,"url"]))},"base-path":gf,"display-name":gf,availability:gf,headers:async i=>{await KHf({headers:i,visitor:t,nodePath:[...r,"headers"]})},audiences:gf,auth:gf,"path-parameters":async i=>{await iSa({pathParameters:i,visitor:t,nodePath:[...r,"path-parameters"]})},endpoints:async i=>{for(let[a,u]of Object.entries(i)){let f=[...r,"endpoints",a];await Jbj({endpointId:a,endpoint:u,service:e,visitor:t,nodePathForEndpoint:f})}},idempotent:gf,transport:gf,source:gf})}async function Jbj({endpointId:e,endpoint:t,service:r,visitor:n,nodePathForEndpoint:i}){var u;let a=QAt(n);await((u=n.httpEndpoint)==null?void 0:u.call(n,{endpointId:e,endpoint:t,service:r},i)),await Aw(t,{docs:zC(n,i),"display-name":gf,availability:gf,path:gf,idempotent:gf,url:async f=>{var d;await((d=n.endpointBaseUrl)==null?void 0:d.call(n,{baseUrl:f,service:r},[...i,"url"]))},"path-parameters":async f=>{await iSa({pathParameters:f,visitor:n,nodePath:[...i,"path-parameters"]})},request:async f=>{if(f==null)return;let d=[...i,"request"];if(typeof f=="string"){await a(f,d,{location:"requestReference"});return}await Aw(f,{name:gf,"query-parameters":async c=>{var o;if(c!=null)for(let[l,g]of Object.entries(c)){let O=[...d,"query-parameters",l];await((o=n.queryParameter)==null?void 0:o.call(n,{queryParameterKey:l,queryParameter:g},O)),typeof g=="string"?await a(g,O):await Aw(g,{name:gf,docs:zC(n,O),availability:gf,type:async j=>{await a(j,[...O,"type"],{_default:g.default,validation:g.validation})},"allow-multiple":gf,audiences:gf,encoding:gf,default:gf,validation:gf})}},"content-type":gf,headers:async c=>{await KHf({headers:c,visitor:n,nodePath:[...d,"headers"]})},body:async c=>{var l;if(c==null)return;let o=[...d,"body"];typeof c=="string"?await a(c,o,{location:"requestReference"}):m7(c)?(await((l=n.typeDeclaration)==null?void 0:l.call(n,{typeName:{isInlined:!0,location:"inlinedRequest"},declaration:c},o)),await Aw(c,{extends:async g=>{var j;if(g==null)return;let O=typeof g=="string"?[g]:g;for(let S of O){let x=[...o,"extends",S];await((j=n.extension)==null?void 0:j.call(n,S,x)),await a(S,x)}},properties:async g=>{if(g!=null)for(let[O,j]of Object.entries(g)){let S=[...o,"properties",O];typeof j=="string"?await a(j,S,{location:zW.InlinedRequestProperty}):await Aw(j,{name:gf,docs:zC(n,S),availability:gf,type:async x=>{await a(x,[...S,"type"],{location:zW.InlinedRequestProperty,_default:j.default,validation:j.validation})},audiences:gf,encoding:gf,default:gf,validation:gf})}},["extra-properties"]:gf})):(await zC(n,o)(c.docs),await a(c.type,o))}})},audiences:gf,method:gf,auth:gf,"stream-condition":async f=>{var d;await((d=n.streamCondition)==null?void 0:d.call(n,{streamCondition:f,endpoint:t},[...i,"stream-condition"]))},"response-stream":async f=>{f!=null&&(typeof f=="string"?await a(f,[...i,"response-stream"],{location:zW.StreamingResponse}):await a(f.type,[...i,"response-stream"],{location:zW.StreamingResponse}))},response:async f=>{if(f==null)return;let d=[...i,"response"];typeof f=="string"?await a(f,d,{location:zW.Response}):await Aw(f,{docs:zC(n,d),type:async c=>{await a(c,[...d,"type"],{location:zW.Response})},property:gf,"status-code":gf})},errors:async f=>{var d;if(f!=null)for(let c of f){let o=[...i,"errors",typeof c=="string"?c:c.error];typeof c=="string"?await((d=n.errorReference)==null?void 0:d.call(n,c,o)):await Aw(c,{docs:zC(n,o),error:async l=>{var g;await((g=n.errorReference)==null?void 0:g.call(n,l,[...o,"error"]))}})}},examples:async f=>{if(f!=null)for(let[d,c]of f.entries())await Gbj({nodePathForExample:[...i,{key:"examples",arrayIndex:d}],visitor:n,service:r,endpoint:t,example:c})},pagination:gf})}async function Gbj({nodePathForExample:e,visitor:t,service:r,endpoint:n,example:i}){var o,l,g,O,j,S,x;if(i.headers==null&&i["path-parameters"]==null&&i["query-parameters"]==null&&i.request==null&&i.response==null&&i["code-samples"]!=null)return;await((o=t.exampleHttpEndpointCall)==null?void 0:o.call(t,{service:r,endpoint:n,example:i},e));let a=[...e,"headers"];if(await((l=t.exampleHeaders)==null?void 0:l.call(t,{service:r,endpoint:n,examples:i.headers},a)),i.headers!=null)for(let A of Object.values(i.headers))await nqe({example:A,visitor:t,nodePath:a});let u=[...e,"path-parameters"];if(await((g=t.examplePathParameters)==null?void 0:g.call(t,{service:r,endpoint:n,examples:i["path-parameters"]},u)),i["path-parameters"]!=null)for(let A of Object.values(i["path-parameters"]))await nqe({example:A,visitor:t,nodePath:u});let f=[...e,"query-parameters"];if(await((O=t.exampleQueryParameters)==null?void 0:O.call(t,{service:r,endpoint:n,examples:i["query-parameters"]},f)),i["query-parameters"]!=null)for(let A of Object.values(i["query-parameters"]))await nqe({example:A,visitor:t,nodePath:f});let d=[...e,"request"];await((j=t.exampleRequest)==null?void 0:j.call(t,{service:r,endpoint:n,example:i.request},d)),i.request!=null&&await nqe({example:i.request,visitor:t,nodePath:d});let c=[...e,"response"];if(await((S=t.exampleResponse)==null?void 0:S.call(t,{service:r,endpoint:n,example:i.response},c)),i.response!=null&&await wZr(n,i.response,{body:async A=>{var N;A.body!=null&&await nqe({example:A.body,visitor:t,nodePath:c}),A.error!=null&&await((N=t.errorReference)==null?void 0:N.call(t,A.error,[...c,"error"]))},stream:async A=>{for(let N of A.stream)await nqe({example:N,visitor:t,nodePath:c})},events:async A=>{for(let{data:N}of A.stream)await nqe({example:N,visitor:t,nodePath:c})}}),i["code-samples"]!=null)for(let[A,N]of i["code-samples"].entries())await((x=t.exampleCodeSample)==null?void 0:x.call(t,{service:r,endpoint:n,example:i,sample:N},[...e,{key:"code-samples",arrayIndex:A}]))}async function iSa({pathParameters:e,visitor:t,nodePath:r}){var i,a;if(e==null)return;let n=QAt(t);for(let[u,f]of Object.entries(e)){let d=[...r,u];await((i=t.pathParameter)==null?void 0:i.call(t,{pathParameterKey:u,pathParameter:f},d)),F2n(f)?typeof f=="string"?await((a=t.variableReference)==null?void 0:a.call(t,f,d)):await Aw(f,{docs:zC(t,d),variable:async c=>{var o;return await((o=t.variableReference)==null?void 0:o.call(t,c,[...d,"variable"]))},availability:gf}):typeof f=="string"?await n(f,d):await Aw(f,{docs:zC(t,d),type:async c=>{await n(c,[...d,"type"],{_default:f.default,validation:f.validation})},availability:gf,encoding:gf,default:gf,validation:gf})}}async function KHf({headers:e,visitor:t,nodePath:r}){var i;if(e==null)return;let n=QAt(t);for(let[a,u]of Object.entries(e)){let f=[...r,a];await((i=t.header)==null?void 0:i.call(t,{headerKey:a,header:u},f)),typeof u=="string"?await n(u,f):await Aw(u,{name:gf,availability:gf,type:async d=>{await n(d,f,{_default:u.default,validation:u.validation})},docs:zC(t,f),audiences:gf,encoding:gf,env:gf,default:gf,validation:gf})}}async function YHf({typeDeclarations:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e)){let u=[...r,i];await((n=t.typeName)==null?void 0:n.call(t,i,u)),await Jwu({typeName:i,declaration:a,visitor:t,nodePathForType:u})}}async function Jwu({typeName:e,declaration:t,visitor:r,nodePathForType:n}){var u;let i=QAt(r);await((u=r.typeDeclaration)==null?void 0:u.call(r,{typeName:{isInlined:!1,name:e},declaration:t,nodePath:n},n));let a=async f=>{var d;if(f!=null)for(let[c,o]of f.entries()){let l=[...n,{key:"examples",arrayIndex:c}];await((d=r.exampleType)==null?void 0:d.call(r,{typeName:e,typeDeclaration:t,example:o},l)),await nqe({example:o.value,nodePath:l,visitor:r})}};await y5(t,{alias:async f=>{typeof f=="string"?await i(f,n):await Aw(f,{type:async d=>{await i(d,[...n,"type"])},docs:zC(r,n),availability:gf,audiences:gf,examples:a,validation:gf,encoding:gf,source:gf})},object:async f=>{await Aw(f,{docs:zC(r,n),extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...n,"extends",l];await((o=r.extension)==null?void 0:o.call(r,l,g)),await i(l,g)}},extensions:gf,properties:async d=>{if(d!=null)for(let[c,o]of Object.entries(d)){let l=[...n,"properties",c];typeof o=="string"?await i(o,l):await Aw(o,{name:gf,docs:zC(r,l),availability:gf,type:async g=>{await i(g,[...l,"type"],{_default:o.default,validation:o.validation})},audiences:gf,encoding:gf,default:gf,validation:gf})}},["extra-properties"]:gf,availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},discriminatedUnion:async f=>{await Aw(f,{docs:zC(r,n),discriminant:gf,extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...n,"extends",l];await((o=r.extension)==null?void 0:o.call(r,l,g)),await i(l,g)}},union:async d=>{for(let[c,o]of Object.entries(d)){let l=[...n,"union",c];typeof o=="string"?await i(o,l):await Aw(o,{docs:zC(r,l),name:gf,key:gf,type:async g=>{typeof g=="string"&&await i(g,[...n,"type"])},["display-name"]:gf,availability:gf})}},"base-properties":gf,availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},undiscriminatedUnion:async f=>{await Aw(f,{docs:zC(r,n),discriminated:gf,union:async d=>{for(let[c,o]of d.entries()){let l=[...n,`union[${c}]`];typeof o!="string"&&await Aw(o,{docs:zC(r,l),type:async g=>{await i(g,[...n,"type"])}})}},availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},enum:async f=>{await Aw(f,{docs:zC(r,n),enum:async d=>{for(let c of d){let o=[...n,typeof c=="string"?c:c.name??c.value];typeof c!="string"&&await Aw(c,{docs:zC(r,o),name:gf,value:gf,casing:gf})}},availability:gf,audiences:gf,default:gf,encoding:gf,source:gf,examples:a})}})}async function XHf({errorDeclarations:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e)){let u=[...r,i];await((n=t.errorDeclaration)==null?void 0:n.call(t,{errorName:i,declaration:a},u)),await Kbj({errorName:i,declaration:a,visitor:t,nodePathForError:u})}}async function Kbj({errorName:e,declaration:t,visitor:r,nodePathForError:n}){let i=QAt(r);typeof t=="string"?await i(t,n):await Aw(t,{docs:zC(r,n),"status-code":gf,type:async a=>{if(a==null)return;let u=[...n,"type"];typeof a=="string"?await i(a,u):await Jwu({typeName:e,declaration:a,visitor:r,nodePathForType:u})},examples:async a=>{var u;if(a!=null)for(let f of a){let d=[...n,"type"];await((u=r.exampleError)==null?void 0:u.call(r,{errorName:e,declaration:t,example:f},d))}}})}async function QHf({imports:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e))await((n=t.import)==null?void 0:n.call(t,{importPath:a,importedAs:i},[...r,i]))}async function ZHf({webhook:e,visitor:t,nodePathForWebhook:r}){let n=QAt(t);await Aw(e,{"display-name":gf,method:gf,examples:gf,headers:async i=>{await Ybj({headers:i,visitor:t,nodePath:[...r,"headers"]})},payload:async i=>{var f;let a=[...r,"payload"];if(typeof i=="string"){await n(i,a,{location:"requestReference"});return}if(Xbj(i)){await n(i.type,[...a,"type"],{location:"requestReference"});return}let u=[...a];await((f=t.typeDeclaration)==null?void 0:f.call(t,{typeName:{isInlined:!0,location:"inlinedRequest"},declaration:i},u)),await Aw(i,{name:gf,extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...u,"extends",l];await((o=t.extension)==null?void 0:o.call(t,l,g)),await n(l,g)}},properties:async d=>{if(d!=null)for(let[c,o]of Object.entries(d)){let l=[...u,"properties",c];typeof o=="string"?await n(o,l,{location:zW.InlinedRequestProperty}):await Aw(o,{name:gf,docs:zC(t,l),availability:gf,type:async g=>{await n(g,[...l,"type"],{_default:o.default,validation:o.validation,location:zW.InlinedRequestProperty})},audiences:gf,encoding:gf,default:gf,validation:gf})}}})},audiences:gf,availability:gf,docs:zC(t,r)})}async function Ybj({headers:e,visitor:t,nodePath:r}){var i;if(e==null)return;let n=QAt(t);for(let[a,u]of Object.entries(e)){let f=[...r,a];await((i=t.header)==null?void 0:i.call(t,{headerKey:a,header:u},f)),typeof u=="string"?await n(u,f):await Aw(u,{name:gf,availability:gf,type:async d=>{await n(d,f,{_default:u.default,validation:u.validation})},docs:zC(t,f),audiences:gf,encoding:gf,env:gf,default:gf,validation:gf})}}function Xbj(e){return e.type!=null}async function BW(e,t){await Aw(e,{docs:zC(t,[]),imports:async r=>{await QHf({imports:r,visitor:t,nodePath:["imports"]})},types:async r=>{await YHf({typeDeclarations:r,visitor:t,nodePath:["types"]})},service:async r=>{r!=null&&await GHf({service:r,visitor:t,nodePath:["service"]})},webhooks:async r=>{for(let[n,i]of Object.entries(r??{}))await ZHf({webhook:i,visitor:t,nodePathForWebhook:["webhooks",n]})},channel:gf,errors:async r=>{await XHf({errorDeclarations:r,visitor:t,nodePath:["errors"]})}})}async function Gwu(e,t){await Aw(e,{docs:gf,imports:gf,types:gf,service:gf,webhooks:gf,errors:gf,channel:gf,export:async r=>{var n;await((n=t.export)==null?void 0:n.call(t,typeof r=="string"?r:r==null?void 0:r.dependency,["export"]))},navigation:async r=>{var n;await((n=t.navigation)==null?void 0:n.call(t,r,["navigation"]))}})}async function Kwu(e,t){var r;await((r=t.file)==null?void 0:r.call(t,e,[])),await Aw(e,{version:gf,name:gf,"default-url":gf,"display-name":gf,imports:gf,auth:gf,"idempotency-headers":gf,"auth-schemes":async n=>{await Promise.all(Object.entries(n??{}).map(async([i,a])=>{var u;xGo(a)&&await((u=t.oauth)==null?void 0:u.call(t,{name:i,oauth:a},["auth-scheme",i]))}))},pagination:gf,"default-environment":async n=>{var i;await((i=t.defaultEnvironment)==null?void 0:i.call(t,n,["default-environment"]))},docs:gf,headers:gf,environments:async n=>{var i;if(n!=null)for(let[a,u]of Object.entries(n))await((i=t.environment)==null?void 0:i.call(t,{environmentId:a,environment:u},["environments",a]))},"error-discrimination":async n=>{var i;await((i=t.errorDiscrimination)==null?void 0:i.call(t,n,["error-discrimination"]))},audiences:gf,errors:async n=>{var i;if(n!=null)for(let a of n)await((i=t.errorReference)==null?void 0:i.call(t,a,["errors",a]))},"base-path":gf,"path-parameters":async n=>{await iSa({pathParameters:n,visitor:t,nodePath:["path-parameters"]})},variables:async n=>{var i;if(n!=null)for(let[a,u]of Object.entries(n))await((i=t.variableDeclaration)==null?void 0:i.call(t,{variableId:a,variable:u},["variables",a]))}})}var aSa=new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$");function kHf({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.definitionFile)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.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 e$f({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.packageMarker)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.message})))}}};return{[a]:u}}return{...i("export"),...i("navigation")}}function t$f({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.rootApiFile)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.message})))}}};return{[a]:u}}return{...i("file"),...i("oauth"),...i("defaultEnvironment"),...i("environment"),...i("errorDiscrimination"),...i("errorReference"),...i("variableDeclaration"),...i("variableReference"),...i("pathParameter")}}function Qbj(e,t,r){if(!Pne(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 Zbj(e){return Number(e.replace("v",""))}async function kbj(e){let t=Gaa({token:void 0}),r=await t.generators.getGeneratorByImage({dockerImage:e.name});if(!r.ok)return;let n=await t.generators.versions.getGeneratorRelease(r.body.id,e.version);if(n.ok)return n.body.irVersion}var Ywu={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{let r=Gaa({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=Zbj(e["ir-version"]);else{let f=await kbj(e);if(f==null)return[];a=f}if(a<=i)return[];let u=await r.generators.cli.getMinCliForIr(a);return u.ok?Qbj(e.name,u.body.version,t)??[]:[]}}})};var Xwu={name:"import-file-exists",create:({workspace:e})=>{let t=Object.keys(bEr(e.definition)),r=new Set;return t.forEach(n=>{let i=Tf(e.definition.absoluteFilepath,Ws.of(n));r.add(i)}),{definitionFile:{import:async({importedAs:n,importPath:i},{relativeFilepath:a})=>{let u=[],f=Tf(e.definition.absoluteFilepath,Hg(a),Ws.of(i));return r.has(f)||u.push({severity:"error",message:`Import ${cl.bold(n)} points to non-existent path ${cl.bold(i)}.`}),u}}}}};function oSa(e){return e.definition.rootApiFile.contents.environments==null?[]:Object.values(e.definition.rootApiFile.contents.environments).reduce((t,r)=>{if(R2n(r))for(let n of Object.keys(r.urls))t.includes(n)||t.push(n);return t},[])}var Qwu={name:"matching-environment-urls",create:({workspace:e})=>{let t=oSa(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 ${cl.bold(u)}`})};return ADr(n,{singleBaseUrl:()=>{for(let u of t)a(u)},multipleBaseUrls:u=>{for(let f of t)u.urls[f]==null&&a(f)}}),i}}}}};var Zwu={name:"no-circular-imports",DISABLE_RULE:!0,create:({workspace:e})=>{let t=egj(e.definition.namedDefinitionFiles);return{definitionFile:{import:async({importPath:r},{relativeFilepath:n})=>{let i=t[n];if(i==null)return[];let a=Yzr({referencedIn:n,importPath:Ws.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 egj(e){let t={};for(let r of S8t(e))t[r]=r$f(r,[r],e);return t}function r$f(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=Yzr({referencedIn:e,importPath:Ws.of(a)});t.includes(u)?t[0]===u&&t[0]===tgj(t)&&n.push({startingFilepath:u,chainWithoutStartingFilepath:t.slice(1)}):n.push(...r$f(u,[...t,u],r))}return n}function tgj(e){return e.reduce((t,r)=>r<t?r:t)}var vx=Kzr({generationLanguage:void 0,keywords:void 0,smartCasing:!1});var uSa=class{workspace;typeResolver;constructor(t){this.workspace=t,this.typeResolver=new mM(t)}isTypeComplex(t,r){let n=yO({relativeFilepath:r.relativeFilepath,definitionFile:r.contents,casingsGenerator:vx,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:Ol(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:Ol(t)}}isNamedTypeComplex({type:t,file:r,visited:n}){if(n.has(t.rawName))return!1;if(n.add(t.rawName),cNr(t.declaration))return!0;if(SCt(t.declaration))return!1;if(FE(t.declaration))return this.objectHasComplexProperties({typeName:t.rawName,objectDeclaration:t.declaration,file:r,visited:n});if(U2n(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}Ol(t.declaration)}objectHasComplexProperties({typeName:t,objectDeclaration:r,file:n,visited:i}){return WAt({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:Ol(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:Ol(t)}}};var kwu={name:"no-complex-query-params",create:({workspace:e})=>{let t=new uSa(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 eDu={name:"no-conflicting-endpoint-parameters",create:()=>({definitionFile:{pathParameter:({pathParameterKey:e})=>e===Rja?[{severity:"error",message:`Path parameter ${cl.bold(e)} is not suitable for code generation, because it can conflict with the request body parameter.`}]:[]}})};function Xbi({service:e,endpoint:t}){return e["base-path"]+t.path}var sSa=class{root=new _8n;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 Xbi({service:t.service,endpoint:t.endpoint}).split("/").filter(r=>r.length>0)}},_8n=class{childPaths={};childPathParam;endpointsThatEndWithThisNode=[];insert(t,r){var u;let[n,...i]=t;if(n==null){this.endpointsThatEndWithThisNode.push(r);return}(this.isPathParam(n)?this.childPathParam??(this.childPathParam=new _8n):(u=this.childPaths)[n]??(u[n]=new _8n)).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 tDu={name:"no-conflicting-endpoint-paths",create:async({workspace:e})=>{let t=new sSa;return await N5(e,async(r,n)=>{await BW(n,{httpEndpoint:({service:i,endpointId:a,endpoint:u})=>{t.registerEndpoint({service:i,endpointId:a,endpoint:u,relativeFilepath:r})}})}),{definitionFile:{httpEndpoint:({service:r,endpoint:n,endpointId:i},{relativeFilepath:a})=>{let u=t.getConflictingEndpoints({service:r,endpointId:i,endpoint:n,relativeFilepath:a});return u.length===0?[]:[{severity:"warning",message:[`Endpoint path ${Xbi({service:r,endpoint:n})} conflicts with other endpoints:`,...u.map(f=>` - ${f.relativeFilepath} -> ${f.endpointId} ${cl.dim(Xbi({service:f.service,endpoint:f.endpoint}))}`)].join(`
1946
+ `)}]:t.flatMap((c,o)=>xW({rawTypeReference:f,example:c,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:[...u,`${o}`]}))},optional:f=>t==null?[]:xW({rawTypeReference:f,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a,breadcrumbs:u}),unknown:()=>[],literal:f=>{switch(f.type){case"boolean":return cwe(d=>d===f.boolean,f.boolean.toString())(t);case"string":return cwe(d=>d===f.string,`"${f.string}"`)(t);default:Ol(f)}}}})}function loj({primitiveType:e,example:t}){return e.v2!=null?bM._visit(e.v2,{integer:r=>foj({example:t,rules:r.validation}),long:()=>v5f(t),uint:()=>_5f(t),uint64:()=>h5f(t),double:r=>doj({example:t,rules:r.validation}),float:()=>y5f(t),boolean:()=>b5f(t),string:r=>poj({example:t,rules:r.validation}),uuid:()=>g5f(t),date:()=>O5f(t),dateTime:()=>m5f(t),base64:()=>ONn(t),bigInteger:()=>ONn(t),_other:()=>{throw new Error("Unknown primitive type v2: "+e.v2)}}):ID._visit(e.v1,{integer:()=>j5f(t),long:()=>v5f(t),uint:()=>_5f(t),uint64:()=>h5f(t),double:()=>w5f(t),float:()=>y5f(t),boolean:()=>b5f(t),string:()=>ONn(t),uuid:()=>g5f(t),dateTime:()=>m5f(t),date:()=>O5f(t),base64:()=>ONn(t),bigInteger:()=>ONn(t),_other:()=>{throw new Error("Unknown primitive type: "+e.v1)}})}function foj({example:e,rules:t}){let r=j5f(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 doj({example:e,rules:t}){let r=w5f(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 poj({example:e,rules:t}){let r=ONn(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 ONn=cwe(e=>typeof e=="string","a string"),j5f=cwe(e=>Number.isInteger(e),"an integer"),_5f=cwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint"),h5f=cwe(e=>Number.isInteger(e)&&typeof e=="number"&&e>=0,"a uint64"),y5f=cwe(e=>typeof e=="number","a float"),w5f=cwe(e=>typeof e=="number","a double"),v5f=cwe(e=>Number.isInteger(e),"an integer"),b5f=cwe(e=>typeof e=="boolean","a boolean"),g5f=cwe(e=>typeof e=="string"&&soj.test(e),"a UUID"),m5f=cwe(e=>typeof e=="string"&&P5f.test(e),"an ISO 8601 timestamp"),O5f=cwe(e=>typeof e=="string"&&coj.test(e)&&P5f.test(e),"a date");function cwe(e,t){return r=>e(r)?[]:Z2e(r,t)}function Evi({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&&Evi({expected:e.container.itemType,actual:t.container.itemType});case"optional":return Evi({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&&Evi({expected:e.container.keyType,actual:t.container.keyType})&&Evi({expected:e.container.valueType,actual:t.container.valueType});case"literal":return t._type!=="container"||t.container._type!==e.container._type?!1:_oj({expected:e.container.literal,actual:t.container.literal});default:Ol(e.container)}if(e._type==="named")return t._type==="named"&&t.filepath===e.filepath&&t.rawName===e.rawName;Ol(e)}function _oj({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:Ol(e)}}async function Vja({_enum:e,file:t}){let r=await Promise.all(e.enum.map(async i=>({...await gG(i),name:t.casingsGenerator.generateNameAndWireValue({wireValue:typeof i=="string"?i:i.value,name:PNn(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 D5f(e,t){let r=t.enum.find(n=>typeof n=="string"?!1:n.value===e);return{name:typeof r=="string"?e:(r==null?void 0:r.name)??e,wasExplicitlySet:!1}}function PNn(e){return typeof e=="string"?{name:e,wasExplicitlySet:!1}:e.name==null?{name:e.value,wasExplicitlySet:!1}:{name:e.name,wasExplicitlySet:!0}}function BPu({typeName:e,typeDeclaration:t,example:r,typeResolver:n,exampleResolver:i,fileContainingType:a,fileContainingExample:u,workspace:f}){return y5(t,{alias:d=>gM.alias({value:gT({example:r,rawTypeBeingExemplified:typeof d=="string"?d:d.type,fileContainingRawTypeReference:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f})}),object:d=>S5f({typeName:e,rawObject:d,example:r,fileContainingType:a,fileContainingExample:u,typeResolver:n,exampleResolver:i,workspace:f}),discriminatedUnion:d=>{let c=frn(d);if(!RO(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 g=typeof l=="string"?l:typeof l.type=="string"?l.type:void 0;return gM.union({discriminant:u.casingsGenerator.generateNameAndWireValue({name:Zzr(d).name,wireValue:c}),singleUnionType:yoj({rawValueType:g,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 gM.enum({value:u.casingsGenerator.generateNameAndWireValue({name:D5f(r,d).name,wireValue:r})})},undiscriminatedUnion:d=>{for(let[c,o]of d.union.entries())if(xW({rawTypeReference:typeof o=="string"?o:o.type,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:f,breadcrumbs:[]}).length===0)return gM.undiscriminatedUnion({index:c,singleUnionType:gT({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 gT({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:jZr({type:r,_default:void 0,validation:void 0,visitor:{primitive:l=>hoj({example:f,typeBeingExemplified:l.v1}),map:({keyType:l,valueType:g})=>{if(!RO(f))throw new Error("Example is not an object");return Q0.container(hT.map({map:Object.entries(f).map(([O,j])=>({key:gT({example:O,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u}),value:gT({example:j,fileContainingExample:d,rawTypeBeingExemplified:g,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})})),keyType:n.parseTypeReference(l),valueType:n.parseTypeReference(g)}))},list:l=>{if(!Array.isArray(f))throw new Error("Example is not a list");return Q0.container(hT.list({list:f.map(g=>gT({example:g,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 Q0.container(hT.set({set:f.map(g=>gT({example:g,fileContainingExample:d,rawTypeBeingExemplified:l,fileContainingRawTypeReference:n,typeResolver:i,exampleResolver:a,workspace:u})),itemType:n.parseTypeReference(l)}))},optional:l=>Q0.container(hT.optional({optional:f!=null?gT({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 Q0.container(hT.literal({literal:Xv.boolean(l.boolean)}));case"string":return Q0.container(hT.literal({literal:Xv.string({original:l.string})}));default:Ol(l)}},named:l=>{let g=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 Q0.named({typeName:j,shape:BPu({typeName:j,typeDeclaration:g.declaration,fileContainingType:g.file,fileContainingExample:d,example:f,typeResolver:i,exampleResolver:a,workspace:u})})},unknown:()=>Q0.unknown(c)}}),jsonExample:c}}function hoj({example:e,typeBeingExemplified:t}){return ID._visit(t,{string:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},dateTime:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.datetime({datetime:new Date(e),raw:e}))},date:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.date(e))},base64:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},uint:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.uint(e))},uint64:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.uint64(e))},integer:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.integer(e))},float:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.float(e))},double:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.double(e))},long:()=>{if(typeof e!="number")throw new Error("Example is not a number");return Q0.primitive(Xv.long(e))},boolean:()=>{if(typeof e!="boolean")throw new Error("Example is not a boolean");return Q0.primitive(Xv.boolean(e))},uuid:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.uuid(e))},bigInteger:()=>{if(typeof e!="string")throw new Error("Example is not a string");return Q0.primitive(Xv.string({original:e}))},_other:()=>{throw new Error("Unknown primitive type: "+t)}})}function S5f({typeName:e,rawObject:t,example:r,fileContainingType:n,fileContainingExample:i,typeResolver:a,exampleResolver:u,workspace:f}){if(!RO(r))throw new Error(`Example is not an object. Got: ${JSON.stringify(r)}`);return gM.object({properties:t.properties!=null||t.extends!=null?Object.entries(r).reduce((d,[c,o])=>{let l=E5f({typeName:e,wirePropertyKey:c,rawObject:t,typeResolver:a,file:n});if(l==null)throw new Error("Could not find original type declaration for property: "+c);let g=gT({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:MW({propertyKey:c,property:l.rawPropertyType}).name,wireValue:c}),value:g,originalTypeDeclaration:l.typeName}),d},[]):[]})}function E5f({typeName:e,wirePropertyKey:t,rawObject:r,typeResolver:n,file:i}){var u;let a=(u=r.properties)==null?void 0:u[t];return a!=null?{typeName:e,rawPropertyType:a,file:i}:Mvi({wirePropertyKey:t,extends_:r.extends,typeResolver:n,file:i})}function Mvi({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"||!FE(u.declaration))throw new Error("Extension is not of a named object");let f=E5f({wirePropertyKey:e,rawObject:u.declaration,typeResolver:r,typeName:u.name,file:u.file});if(f!=null)return f}}}function yoj({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:mNn({unionKey:d,rawSingleUnionType:t}).name,wireValue:d});if(e==null)return{wireDiscriminantValue:o,shape:D3.noProperties()};let l=zPu({rawSingleUnionType:t,rawValueType:e,parsedValueType:r.parseTypeReference(e),file:r,typeResolver:i});switch(l.propertiesType){case"singleProperty":{if(!RO(u))throw new Error("Example is not an object");return{wireDiscriminantValue:o,shape:D3.singleProperty(gT({example:u[l.name.wireValue],rawTypeBeingExemplified:e,typeResolver:i,exampleResolver:a,fileContainingRawTypeReference:r,fileContainingExample:n,workspace:c}))}}case"samePropertiesAsObject":{if(!RO(u))throw new Error("Example is not an object");let{[f]:g,...O}=u,j=i.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:e,file:r});if(!FE(j.declaration))throw new Error(`${e} is not an object`);let S={typeId:l.typeId,fernFilepath:l.fernFilepath,name:l.name};return{wireDiscriminantValue:o,shape:D3.samePropertiesAsObject({typeId:nw.generateTypeId(S),object:S5f({rawObject:j.declaration,example:O,fileContainingType:j.file,fileContainingExample:n,typeResolver:i,exampleResolver:a,typeName:S,workspace:c})})}}default:Ol(l)}}async function Wja({file:e,queryParameterKey:t,queryParameter:r}){let{name:n}=DEr({queryParameterKey:t,queryParameter:r}),i=e.parseTypeReference(r);return{...await gG(r),name:e.casingsGenerator.generateNameAndWireValue({wireValue:t,name:n}),valueType:i,allowMultiple:typeof r!="string"&&r["allow-multiple"]!=null?r["allow-multiple"]:!1}}function DEr({queryParameterKey:e,queryParameter:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function voj(e){let t=JSON.stringify(e);return M5f.default.createHash("sha256").update(t).digest("hex")}function x5f({service:e,endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,variableResolver:u,file:f,workspace:d}){let c=goj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:a,variableResolver:u,file:f,workspace:d});return{id:r.name??voj(r),name:r.name!=null?f.casingsGenerator.generateName(r.name):void 0,docs:r.docs,url:woj({file:f,service:e,endpoint:t,example:r,pathParams:c}),...c,...moj({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])=>{var O,j;let g=typeof t.request!="string"?(j=(O=t.request)==null?void 0:O["query-parameters"])==null?void 0:j[o]:void 0;if(g==null)throw new Error(`Query parameter ${o} does not exist`);return{name:f.casingsGenerator.generateNameAndWireValue({name:DEr({queryParameterKey:o,queryParameter:g}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof g=="string"?g:g.type,typeResolver:n,exampleResolver:a,fileContainingRawTypeReference:f,fileContainingExample:f,workspace:d}),shape:boj({queryParameter:g})}}):[],request:Ooj({endpoint:t,example:r,typeResolver:n,exampleResolver:a,file:f,workspace:d}),response:Poj({endpoint:t,example:r,typeResolver:n,errorResolver:i,exampleResolver:a,file:f,workspace:d})}}function boj({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?uR.exploded():uR.single()}function goj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,variableResolver:a,file:u,workspace:f}){var g,O,j;let d=[],c=[],o=[],l=({name:S,pathParameterDeclaration:x,examplePathParameter:A})=>{let N=xvi({parameter:x,variableResolver:a,file:u});return{name:S,value:gT({example:A,rawTypeBeingExemplified:N.rawType,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:N.file,fileContainingExample:u,workspace:f})}};if(r["path-parameters"]!=null)for(let[S,x]of Object.entries(r["path-parameters"])){let A=(g=u.rootApiFile["path-parameters"])==null?void 0:g[S],N=(O=e["path-parameters"])==null?void 0:O[S],z=(j=t["path-parameters"])==null?void 0:j[S];if(A!=null)d.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:A,examplePathParameter:x}));else if(z!=null)o.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:z,examplePathParameter:x}));else if(N!=null)c.push(l({name:u.casingsGenerator.generateName(S),pathParameterDeclaration:N,examplePathParameter:x}));else throw new Error(`Path parameter ${S} does not exist`)}return{rootPathParameters:d,endpointPathParameters:o,servicePathParameters:c}}function moj({service:e,endpoint:t,example:r,typeResolver:n,exampleResolver:i,file:a,workspace:u}){var c,o,l;let f=[],d=[];if(r.headers!=null)for(let[g,O]of Object.entries(r.headers)){let j=typeof t.request!="string"?(o=(c=t.request)==null?void 0:c.headers)==null?void 0:o[g]:void 0,S=(l=e.headers)==null?void 0:l[g];if(j!=null)d.push({name:a.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:g,header:j}).name,wireValue:g}),value:gT({example:O,rawTypeBeingExemplified:typeof j=="string"?j:j.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else if(S!=null)f.push({name:a.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:g,header:S}).name,wireValue:g}),value:gT({example:O,rawTypeBeingExemplified:typeof S=="string"?S:S.type,typeResolver:n,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})});else throw new Error(`Header ${g} does not exist`)}return{endpointHeaders:d,serviceHeaders:f}}function Ooj({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var d,c;let u=typeof e.request!="string"?(d=e.request)==null?void 0:d.body:e.request;if(u==null||typeof u=="string"&&oli(u)!=null)return;if(!m7(u))return AJ.reference(gT({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(!RO(t.request))throw new Error(`Example is not an object. Got: ${JSON.stringify(t.request)}`);let f=[];for(let[o,l]of Object.entries(t.request)){let g=(c=u.properties)==null?void 0:c[o],O=typeof g=="string"?g:g==null?void 0:g.type;if(!(O!=null&&STe(O)!=null))if(g!=null)f.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:o,property:g}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof g!="string"?g.type:g,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let j=Mvi({extends_:u.extends,wirePropertyKey:o,typeResolver:r,file:i});if(j==null)throw new Error("Could not find original type declaration for property: "+o);f.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:o,property:j.rawPropertyType}).name,wireValue:o}),value:gT({example:l,rawTypeBeingExemplified:typeof j.rawPropertyType=="string"?j.rawPropertyType:j.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:j.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:j.typeName})}}return AJ.inlinedRequestBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t.request,file:i}).resolvedExample,properties:f})}function Poj({endpoint:e,example:t,typeResolver:r,errorResolver:n,exampleResolver:i,file:a,workspace:u}){return t.response==null?w3.ok(Qq.body(void 0)):wZr(e,t.response,{body:f=>{if(f.error!=null){let d=n.getDeclarationOrThrow(f.error,a);return w3.error({error:Xzr({errorName:f.error,file:a}),body:d.declaration.type!=null?gT({example:f.body,rawTypeBeingExemplified:d.declaration.type,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:d.file,fileContainingExample:a,workspace:u}):void 0})}return w3.ok(Qq.body(joj({endpoint:e,example:f,typeResolver:r,exampleResolver:i,file:a,workspace:u})))},stream:f=>{var c;let d=typeof e["response-stream"]=="string"?e["response-stream"]:(c=e["response-stream"])==null?void 0:c.type;return w3.ok(Qq.stream(f.stream.map(o=>{if(d!=null)return gT({example:o,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u})}).filter(RS)))},events:f=>{var c;let d=typeof e["response-stream"]=="string"?e["response-stream"]:(c=e["response-stream"])==null?void 0:c.type;return w3.ok(Qq.sse(f.stream.map(({event:o,data:l})=>{if(d==null)return;let g=gT({example:l,rawTypeBeingExemplified:d,typeResolver:r,exampleResolver:i,fileContainingRawTypeReference:a,fileContainingExample:a,workspace:u});return{event:o,data:g}}).filter(RS)))}})}function joj({endpoint:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;let u=typeof e.response!="string"?(f=e.response)==null?void 0:f.type:e.response;if(u!=null&&t.body!=null)return gT({example:t.body,rawTypeBeingExemplified:u,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})}function woj({file:e,service:t,endpoint:r,example:n,pathParams:i}){let a=HS(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 T5f({endpoint:e,file:t,typeResolver:r}){var i;return{body:await Doj({endpoint:e,file:t,typeResolver:r}),statusCode:typeof e.response!="string"?(i=e.response)==null?void 0:i["status-code"]:void 0}}async function Doj({endpoint:e,file:t,typeResolver:r}){let n=await Soj({endpoint:e,file:t,typeResolver:r}),i=await Eoj({endpoint:e,file:t,typeResolver:r});if(n!=null&&i!=null){let a;switch(n.type){case"fileDownload":{a=kre.fileDownload({...n});break}case"json":{a=kre.json({...n.value});break}case"text":{a=kre.text({...n});break}default:Ol(n)}return pA.streamParameter({nonStreamResponse:a,streamResponse:i})}else{if(n!=null)return n;if(i!=null)return pA.streaming(i)}}async function Soj({endpoint:e,file:t,typeResolver:r}){let{response:n}=e;if(n!=null){let i=typeof n!="string"?n.docs:void 0,a=typeof n=="string"?n:n.type;return STe(a)!=null?pA.fileDownload({docs:i}):sli(a)!=null?pA.text({docs:i}):await Moj(n,i,t,r)}}async function Eoj({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 o2n(a)?ene.text({docs:i}):typeof n!="string"&&u==="sse"?ene.sse({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0}):ene.json({docs:i,payload:t.parseTypeReference(a),terminator:typeof n!="string"?n.terminator:void 0})}}async function Moj(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?pA.json(mCt.nestedPropertyAsResponse({docs:t,responseBodyType:i,responseProperty:await wvi({typeResolver:n,file:r,resolvedType:a,property:u})})):pA.json(mCt.response({docs:t,responseBodyType:i}))}async function q5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.cursor({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.cursor}),next:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.next_cursor}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results})})}async function C5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:i}){return mTe.offset({page:await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.offset}),results:await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.results}),step:i.step!=null?await e.resolveRequestPropertyOrThrow({file:t,endpoint:r,propertyComponents:i.step}):void 0,hasNextPage:i.hasNextPage!=null?await e.resolveResponsePropertyOrThrow({file:t,endpoint:r,propertyComponents:i.hasNextPage}):void 0})}function A5f(e){return xoj(e)?{type:"offset",offset:VAt(e.offset),results:jEr(e.results),step:e.step!=null?VAt(e.step):void 0,hasNextPage:e["has-next-page"]!=null?jEr(e["has-next-page"]):void 0}:{type:"cursor",cursor:VAt(e.cursor),next_cursor:jEr(e.next_cursor),results:jEr(e.results)}}function xoj(e){return e.offset!=null&&e.results!=null}async function N5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n}){let i=typeof n.pagination=="boolean"?t.rootApiFile.pagination:n.pagination;if(!i)return;let a=A5f(i);switch(a.type){case"cursor":return await q5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});case"offset":return C5f({propertyResolver:e,file:t,endpointName:r,endpointSchema:n,paginationPropertyComponents:a});default:Ol(a)}}function z5f({errors:e,file:t}){return e==null?[]:Object.values(e).map(r=>{let n=typeof r=="string"?r:r.error,i=Xzr({errorName:n,file:t});return{docs:typeof r!="string"?r.docs:void 0,error:i}})}function Hja({source:e}){return{filepath:e.relativeFilePath,packageName:e.packageName,options:e.csharpNamespace!=null?{csharp:{namespace:e.csharpNamespace}}:void 0}}function B5f({source:e,serviceNameOverride:t}){let r=t??e.serviceName;if(r!=null)return{file:Hja({source:e}),name:Qzr.generateName(r)}}async function I5f({file:e,serviceDeclaration:t,sourceResolver:r}){var a,u;if(t.source==null)return vTe.http();let n=await r.resolveSourceOrThrow({source:t.source,file:e});if(n==null||n.type!=="protobuf")return vTe.http();let i=B5f({source:n,serviceNameOverride:(u=(a=t.transport)==null?void 0:a.grpc)==null?void 0:u["service-name"]});if(i==null)throw new Error(`Failed to resolve service name from ${n.relativeFilePath}.`);return vTe.grpc({service:i})}async function R5f({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 g=await jNn({pathParameters:r["path-parameters"],location:bTe.Service,file:n,variableResolver:d}),O=await I5f({file:n,serviceDeclaration:r,sourceResolver:c}),j={fernFilepath:n.fernFilepath};return{availability:Jne(r.availability),name:j,displayName:r["display-name"]??void 0,basePath:FAt(r["base-path"]),headers:r.headers!=null?await Promise.all(Object.entries(r.headers).map(([x,A])=>k2e({headerKey:x,header:A,file:n}))):[],pathParameters:g,encoding:Aoj(O),transport:O,endpoints:await Promise.all(Object.entries(r.endpoints).map(async([x,A])=>{var C,U;let N=await jNn({pathParameters:A["path-parameters"],location:bTe.Endpoint,file:n,variableResolver:d}),z={...await gG(A),id:"",name:n.casingsGenerator.generateName(x),displayName:A["display-name"],auth:A.auth??r.auth,idempotent:A.idempotent??r.idempotent??!1,baseUrl:A.url??r.url??e,method:A.method!=null?Coj(A.method):Qre.Post,path:FAt(A.path),fullPath:FAt(n.rootApiFile["base-path"]!=null?HS(n.rootApiFile["base-path"],r["base-path"],A.path):HS(r["base-path"],A.path)),pathParameters:N,allPathParameters:[...t,...g,...N],queryParameters:typeof A.request!="string"&&((C=A.request)==null?void 0:C["query-parameters"])!=null?await Promise.all(Object.entries(A.request["query-parameters"]).map(async([Y,te])=>await Wja({file:n,queryParameterKey:Y,queryParameter:te}))):[],headers:typeof A.request!="string"&&((U=A.request)==null?void 0:U.headers)!=null?await Promise.all(Object.entries(A.request.headers).map(([Y,te])=>k2e({headerKey:Y,header:te,file:n}))):[],requestBody:Q8f({request:A.request,file:n}),sdkRequest:await r5f({service:r,request:A.request,endpoint:A,endpointKey:x,file:n,typeResolver:a,propertyResolver:u}),response:await T5f({endpoint:A,file:n,typeResolver:a}),errors:[...z5f({errors:A.errors,file:n}),...o],userSpecifiedExamples:A.examples!=null?A.examples.map(Y=>{var te;return{example:x5f({service:r,endpoint:A,example:Y,typeResolver:a,errorResolver:i,exampleResolver:f,variableResolver:d,file:n,workspace:l}),codeSamples:(te=Y["code-samples"])==null?void 0:te.map(G=>i5f({codeSample:G,file:n}))}}):[],autogeneratedExamples:[],pagination:await N5f({propertyResolver:u,file:n,endpointName:x,endpointSchema:A})};return z.id=nw.generateEndpointId(j,z),z}))}}async function jNn({pathParameters:e,location:t,file:r,variableResolver:n}){return e==null?[]:await Promise.all(Object.entries(e).map(([i,a])=>Toj({parameterName:i,parameter:a,location:t,file:r,variableResolver:n})))}async function Toj({parameterName:e,parameter:t,location:r,file:n,variableResolver:i}){return{...await gG(t),name:n.casingsGenerator.generateName(e),valueType:qoj({parameter:t,variableResolver:i,file:n}),location:r,variable:F2n(t)?i.getVariableIdOrThrow(typeof t=="string"?t:t.variable):void 0}}function qoj({parameter:e,variableResolver:t,file:r}){let n=xvi({parameter:e,variableResolver:t,file:r});return n.file.parseTypeReference(n.rawType)}function xvi({parameter:e,variableResolver:t,file:r}){let n=$ja({parameter:e,variableResolver:t,file:r});if(n==null)throw new Error("Cannot resolve path parameter");return n}function $ja({parameter:e,variableResolver:t,file:r}){if(F2n(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 Coj(e){switch(e){case"GET":return Qre.Get;case"POST":return Qre.Post;case"PUT":return Qre.Put;case"PATCH":return Qre.Patch;case"DELETE":return Qre.Delete;default:Ol(e)}}async function k2e({headerKey:e,header:t,file:r}){let{name:n}=OFt({headerKey:e,header:t});return{...await gG(t),name:r.casingsGenerator.generateNameAndWireValue({wireValue:e,name:n}),valueType:r.parseTypeReference(t),env:typeof t=="string"?void 0:t.env}}function OFt({headerKey:e,header:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function Aoj(e){switch(e.type){case"http":return{json:{},proto:void 0};case"grpc":return{json:void 0,proto:{}};default:Ol(e)}}var mG={};Wb(mG,{validateObjectExample:()=>gNn,validateTypeExample:()=>Uja,validateTypeReferenceExample:()=>xW});function F5f(e){return{errorInstanceIdKey:e.generateNameAndWireValue({wireValue:"errorInstanceId",name:"errorInstanceId"})}}function Jja({fernFilePath:e}){return e.packagePath.length===0&&e.file==null}async function L5f({endpointResolver:e,propertyResolver:t,file:r,refreshTokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:nw.generateEndpointIdFromResolvedEndpoint(i),serviceId:nw.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:Jja({fernFilePath:i.file.fernFilepath})?void 0:nw.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 U5f({endpointResolver:e,propertyResolver:t,file:r,tokenEndpoint:n}){let i=await e.resolveEndpointOrThrow({endpoint:n.endpoint,file:r});return{endpointReference:{endpointId:nw.generateEndpointIdFromResolvedEndpoint(i),serviceId:nw.generateServiceIdFromFernFilepath(i.file.fernFilepath),subpackageId:Jja({fernFilePath:i.file.fernFilepath})?void 0:nw.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 V5f({propertyResolver:e,endpointResolver:t,file:r,oauthScheme:n,tokenEndpoint:i,refreshTokenEndpoint:a}){let u=await U5f({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 L5f({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 Tvi={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}},IPu={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 W5f(e){var t,r;return{endpoint:e["get-token"].endpoint,requestProperties:Noj({requestProperties:(t=e["get-token"])==null?void 0:t["request-properties"]}),responseProperties:zoj({responseProperties:(r=e["get-token"])==null?void 0:r["response-properties"]})}}function H5f(e){var t,r;if(e["refresh-token"]!=null)return{endpoint:e["refresh-token"].endpoint,requestProperties:Boj({requestProperties:(t=e["refresh-token"])==null?void 0:t["request-properties"]}),responseProperties:Ioj({responseProperties:(r=e["refresh-token"])==null?void 0:r["response-properties"]})}}function Noj({requestProperties:e}){if(e==null)return Tvi.requestProperties;let t=e["client-id"],r=e["client-secret"],n=e.scopes;return{type:"access_token",client_id:t!=null?VAt(t):Tvi.requestProperties.client_id,client_secret:r!=null?VAt(r):Tvi.requestProperties.client_secret,scopes:n!=null?VAt(n):Tvi.requestProperties.scopes}}function zoj({responseProperties:e}){return $5f({responseProperties:e,defaultValue:Tvi.responseProperties})}function Boj({requestProperties:e}){if(e==null)return IPu.requestProperties;let t=e["refresh-token"];return{type:"refresh_token",refresh_token:t!=null?VAt(t):IPu.requestProperties.refresh_token}}function Ioj({responseProperties:e}){return $5f({responseProperties:e,defaultValue:IPu.responseProperties})}function $5f({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?jEr(r):t.access_token,expires_in:n!=null?jEr(n):t.expires_in,refresh_token:i!=null?jEr(i):t.refresh_token}}async function X5f({rawApiFileSchema:e,file:t,propertyResolver:r,endpointResolver:n}){if(e.auth==null)return{docs:void 0,requirement:J3r.All,schemes:[]};let i=typeof e.auth!="string"?e.auth.docs:void 0;return cli(e.auth,{single:async a=>{let u=await J5f({reference:a,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n});return{docs:i,requirement:J3r.All,schemes:[u]}},any:async({any:a})=>({docs:i,requirement:J3r.Any,schemes:await Promise.all(a.map(async u=>await J5f({reference:u,authSchemeDeclarations:e["auth-schemes"],file:t,propertyResolver:r,endpointResolver:n})))})})}async function J5f({reference:e,authSchemeDeclarations:t,file:r,propertyResolver:n,endpointResolver:i}){let a=(f,d)=>{let c=t==null?void 0:t[f];if(c==null)throw new Error("Unknown auth scheme: "+f);return uKo(c,{header:async o=>VV.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=>K5f({file:r,docs:d,rawScheme:o}),bearer:async o=>G5f({file:r,docs:d,rawScheme:o}),oauth:async o=>await Y5f({file:r,docs:d,rawScheme:o,propertyResolver:n,endpointResolver:i})})},u=typeof e=="string"?e:e.scheme;switch(u){case"bearer":return G5f({file:r,docs:void 0,rawScheme:void 0});case"basic":return K5f({file:r,docs:void 0,rawScheme:void 0});case"oauth":return await Y5f({file:r,docs:void 0,rawScheme:void 0,propertyResolver:n,endpointResolver:i});default:return a(u,typeof e!="string"?e.docs:void 0)}}function G5f({file:e,docs:t,rawScheme:r}){var n,i;return VV.bearer({docs:t,token:e.casingsGenerator.generateName(((n=r==null?void 0:r.token)==null?void 0:n.name)??"token"),tokenEnvVar:(i=r==null?void 0:r.token)==null?void 0:i.env})}function K5f({file:e,docs:t,rawScheme:r}){var n,i,a,u;return VV.basic({docs:t,username:e.casingsGenerator.generateName(((n=r==null?void 0:r.username)==null?void 0:n.name)??"username"),usernameEnvVar:(i=r==null?void 0:r.username)==null?void 0:i.env,password:e.casingsGenerator.generateName(((a=r==null?void 0:r.password)==null?void 0:a.name)??"password"),passwordEnvVar:(u=r==null?void 0:r.password)==null?void 0:u.env})}async function Y5f({file:e,docs:t,rawScheme:r,propertyResolver:n,endpointResolver:i}){switch(r==null?void 0:r.type){case"client-credentials":return VV.oauth({docs:t,configuration:G3r.clientCredentials(await V5f({propertyResolver:n,endpointResolver:i,file:e,oauthScheme:r,tokenEndpoint:W5f(r),refreshTokenEndpoint:H5f(r)}))});default:throw new Error(`Unknown OAuth type: '${r==null?void 0:r.type}'`)}}async function Q5f({file:e,rawApiFileSchema:t}){if(t.version!=null)return Y3r.header({header:await Roj({file:e,header:t.version.header}),value:await Foj({file:e,versionDeclaration:t.version})})}async function Roj({file:e,header:t}){return typeof t=="string"?await k2e({file:e,headerKey:t,header:{type:"string"}}):await k2e({file:e,headerKey:t.value,header:{type:"string",name:t.name,env:t.env}})}async function Foj({file:e,versionDeclaration:t}){return await Vja({_enum:{default:t.default,enum:t.values},file:e})}async function Z5f({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:Jne(d.availability),docs:d.docs,origin:d.origin,body:Voj({body:d.body,file:i}),displayName:d["display-name"]});return{availability:Jne(e.availability),path:FAt(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])=>k2e({headerKey:f,header:d,file:i}))):[],docs:e.docs,pathParameters:e["path-parameters"]!=null?await jNn({pathParameters:e["path-parameters"],location:bTe.Endpoint,file:i,variableResolver:n}):[],queryParameters:e["query-parameters"]!=null?await Promise.all(Object.entries(e["query-parameters"]).map(async([f,d])=>{let{name:c}=DEr({queryParameterKey:f,queryParameter:d}),o=i.parseTypeReference(d);return{...await gG(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=Hoj({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:Joj({channel:e,example:f,pathParams:d}),...d,...$oj({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])=>{var g;let l=(g=e["query-parameters"])==null?void 0:g[c];if(l==null)throw new Error(`Query parameter ${c} does not exist`);return{name:i.casingsGenerator.generateNameAndWireValue({name:DEr({queryParameterKey:c,queryParameter:l}).name,wireValue:c}),value:gT({example:o,rawTypeBeingExemplified:typeof l=="string"?l:l.type,typeResolver:t,exampleResolver:r,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),shape:Loj({queryParameter:l})}}):[],messages:f.messages.map(c=>{var l;let o=(l=e.messages)==null?void 0:l[c.type];if(o==null)throw new Error(`Message ${c.type} does not exist`);return{type:c.type,body:Uoj({message:o,example:c.body,typeResolver:t,exampleResolver:r,file:i,workspace:a})}})}})}}function Loj({queryParameter:e}){return(typeof e!="string"&&e["allow-multiple"]!=null?e["allow-multiple"]:!1)?uR.exploded():uR.single()}function Uoj({message:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;if(!Goj(e.body))return jCt.reference(gT({example:t,rawTypeBeingExemplified:typeof e.body!="string"?e.body.type:e.body,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}));if(!RO(t))throw new Error("Example must be an object");let u=[];for(let[d,c]of Object.entries(t)){let o=(f=e.body.properties)==null?void 0:f[d];if(o!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:d,property:o}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof o!="string"?o.type:o,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a}),originalTypeDeclaration:void 0});else{let l=Mvi({extends_:e.body.extends,wirePropertyKey:d,typeResolver:r,file:i});if(l==null)throw new Error("Could not find original type declaration for property: "+d);u.push({name:i.casingsGenerator.generateNameAndWireValue({name:MW({propertyKey:d,property:l.rawPropertyType}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof l.rawPropertyType=="string"?l.rawPropertyType:l.rawPropertyType.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:l.file,fileContainingExample:i,workspace:a}),originalTypeDeclaration:l.typeName})}}return jCt.inlinedBody({jsonExample:n.resolveAllReferencesInExampleOrThrow({example:t,file:i}).resolvedExample,properties:u})}function Voj({body:e,file:t}){return typeof e=="string"?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e)}):Woj(e)?PTe.reference({docs:void 0,bodyType:t.parseTypeReference(e.type)}):PTe.inlinedBody({name:t.casingsGenerator.generateName(e.name),extends:UAt(e.extends??[]).map(r=>k9({typeName:r,file:t})),properties:[]})}function Woj(e){return e.type!=null}function Hoj({channel:e,example:t,typeResolver:r,exampleResolver:n,variableResolver:i,file:a,workspace:u}){var c;let f=[],d=({name:o,pathParameterDeclaration:l,examplePathParameter:g})=>{let O=xvi({parameter:l,variableResolver:i,file:a});return{name:o,value:gT({example:g,rawTypeBeingExemplified:O.rawType,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:O.file,fileContainingExample:a,workspace:u})}};if(t["path-parameters"]!=null)for(let[o,l]of Object.entries(t["path-parameters"])){let g=(c=e["path-parameters"])==null?void 0:c[o];if(g!=null)f.push(d({name:a.casingsGenerator.generateName(o),pathParameterDeclaration:g,examplePathParameter:l}));else throw new Error(`Path parameter ${o} does not exist`)}return{pathParameters:f}}function $oj({channel:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:a}){var f;let u=[];if(t.headers!=null)for(let[d,c]of Object.entries(t.headers)){let o=(f=e.headers)==null?void 0:f[d];if(o!=null)u.push({name:i.casingsGenerator.generateNameAndWireValue({name:OFt({headerKey:d,header:o}).name,wireValue:d}),value:gT({example:c,rawTypeBeingExemplified:typeof o=="string"?o:o.type,typeResolver:r,exampleResolver:n,fileContainingRawTypeReference:i,fileContainingExample:i,workspace:a})});else throw new Error(`Heder ${d} does not exist`)}return{headers:u}}function Joj({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 Goj(e){return typeof e=="string"?!1:e.extends!=null||e.properties!=null}function RPu({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:ADr(n,{singleBaseUrl:()=>vCt.singleBaseUrl(Koj({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>vCt.multipleBaseUrls(Yoj({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})}}function Koj({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>ADr(n,{singleBaseUrl:i=>({docs:typeof i=="string"?void 0:i.docs,id:r,name:t.generateName(r),url:k5f(typeof i=="string"?i:i.url)}),multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function Yoj({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>ADr(i,{multipleBaseUrls:a=>({docs:a.docs,id:n,name:r.generateName(n),urls:sy(a.urls,u=>k5f(u))}),singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function k5f(e){return e.endsWith("/")?e.slice(0,-1):e}function ezf({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:gT({example:f.value,rawTypeBeingExemplified:t.type,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})});return{name:Xzr({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 tzf="content";function rzf(e,t){if(e==null||e.strategy==="status-code")return OCt.statusCode();switch(e.strategy){case"property":return OCt.property({discriminant:t.casingsGenerator.generateNameAndWireValue({name:e["property-name"],wireValue:e["property-name"]}),contentProperty:t.casingsGenerator.generateNameAndWireValue({name:tzf,wireValue:tzf})});default:Ol(e)}}function nzf({readme:e,services:t}){let r=new FPu(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 FPu=class{endpoints={};constructor(t){this.endpoints=this.buildEndpoints(t)}getEndpointForReadme(t){let r=Qoj({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){var r,n;return this.getEndpointKey({method:t.method,path:Xoj(t),stream:((n=(r=t.response)==null?void 0:r.body)==null?void 0:n.type)==="streaming"})}getEndpointKey({method:t,path:r,stream:n}){return`${t}|${r}|${n}`}};function Xoj(e){let t="";e.fullPath.head.length>0&&(t=HS(t,e.fullPath.head));for(let r of e.fullPath.parts)t=HS(t,"{"+r.pathParameter+"}"),r.tail.length>0&&(t=HS(t,r.tail));return t.startsWith("/")?t:`/${t}`}function Qoj({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 izf({webhooks:e,file:t,typeResolver:r,exampleResolver:n,workspace:i}){let a=[];for(let[u,f]of Object.entries(e))a.push({id:nw.generateWebhookId(t.fernFilepath,u),availability:Jne(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])=>k2e({headerKey:d,header:c,file:t}))):[],payload:Zoj({payload:f.payload,file:t}),examples:f.examples!=null?euj({webhook:f,examples:f.examples,file:t,typeResolver:r,exampleResolver:n,workspace:i}):void 0});return a}function Zoj({payload:e,file:t}){return typeof e=="string"?ine.reference({docs:void 0,payloadType:t.parseTypeReference(e)}):Gja(e)?ine.reference({docs:void 0,payloadType:t.parseTypeReference(e.type)}):ine.inlinedPayload({name:t.casingsGenerator.generateName(e.name),extends:UAt(e.extends).map(r=>k9({typeName:r,file:t})),properties:e.properties!=null?Object.entries(e.properties).map(([r,n])=>koj({propertyKey:r,propertyDefinition:n,docs:typeof n!="string"?n.docs:void 0,availability:typeof n!="string"?Jne(n.availability):void 0,file:t})):[]})}function koj({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:MW({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t)}}function euj({webhook:e,examples:t,file:r,typeResolver:n,exampleResolver:i,workspace:a}){let u=typeof e.payload=="string"?e.payload:Gja(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:gT({example:f.payload,rawTypeBeingExemplified:u,fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}));if(!RO(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:gT({example:f.payload,rawTypeBeingExemplified:"map<string, unknown>",fileContainingRawTypeReference:r,fileContainingExample:r,typeResolver:n,exampleResolver:i,workspace:a})}))}function Gja(e){return e.type!=null}function wNn(e){var r;let t={};for(let[n,i]of Object.entries(e))if(typeof i!="string")for(let a of i.audiences??[])t[a]==null&&(t[a]=new Set),(r=t[a])==null||r.add(n);return t}function azf({name:e,source:t}){return Yw.userDefined({file:Hja({source:t}),name:Qzr.generateName(e)})}function ozf({encoding:e}){if(e.proto!=null&&e.proto.type!=null){let t=tuj({type:e.proto.type});if(t!=null)return t}}function tuj({type:e}){switch(e){case"google.protobuf.Any":return Yw.wellKnown(th.any());case"google.protobuf.Api":return Yw.wellKnown(th.api());case"google.protobuf.BoolValue":return Yw.wellKnown(th.boolValue());case"google.protobuf.BytesValue":return Yw.wellKnown(th.bytesValue());case"google.protobuf.DoubleValue":return Yw.wellKnown(th.doubleValue());case"google.protobuf.Duration":return Yw.wellKnown(th.duration());case"google.protobuf.Empty":return Yw.wellKnown(th.empty());case"google.protobuf.Enum":return Yw.wellKnown(th.enum());case"google.protobuf.EnumValue":return Yw.wellKnown(th.enumValue());case"google.protobuf.Field":return Yw.wellKnown(th.field());case"google.protobuf.FieldCardinality":return Yw.wellKnown(th.fieldCardinality());case"google.protobuf.FieldKind":return Yw.wellKnown(th.fieldKind());case"google.protobuf.FieldMask":return Yw.wellKnown(th.fieldMask());case"google.protobuf.FloatVlaue":return Yw.wellKnown(th.floatValue());case"google.protobuf.Int32Value":return Yw.wellKnown(th.int32Value());case"google.protobuf.Int64Value":return Yw.wellKnown(th.int64Value());case"google.protobuf.ListValue":return Yw.wellKnown(th.listValue());case"google.protobuf.Method":return Yw.wellKnown(th.method());case"google.protobuf.Mixin":return Yw.wellKnown(th.mixin());case"google.protobuf.NullValue":return Yw.wellKnown(th.nullValue());case"google.protobuf.Option":return Yw.wellKnown(th.option());case"google.protobuf.SourceContext":return Yw.wellKnown(th.sourceContext());case"google.protobuf.StringValue":return Yw.wellKnown(th.stringValue());case"google.protobuf.Struct":return Yw.wellKnown(th.struct());case"google.protobuf.Syntax":return Yw.wellKnown(th.syntax());case"google.protobuf.Timestamp":return Yw.wellKnown(th.timestamp());case"google.protobuf.Type":return Yw.wellKnown(th.type());case"google.protobuf.Uint32Value":return Yw.wellKnown(th.uint32Value());case"google.protobuf.Uint64Value":return Yw.wellKnown(th.uint64Value());case"google.protobuf.Value":return Yw.wellKnown(th.value())}}async function uzf({generic:e,file:t,typeResolver:r}){var u;let n=typeof e=="string"?e:e.type,i=j3(n);if(i==null)throw new Error(`Invalid generic type definition: ${n}`);let a=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:n,file:t});if(i.arguments&&FE(a.declaration)){let f=((u=j3(a.typeName))==null?void 0:u.arguments)??[],d=Object.entries(a.declaration.properties??{}).map(([c,o])=>{var g;let l=o;return typeof o=="string"&&(f==null?void 0:f.includes(o))&&(l=((g=i.arguments)==null?void 0:g[f.indexOf(o)])??o),[c,l]});return MC.object({extends:UAt(a.declaration.extends).map(c=>k9({typeName:c,file:t})),properties:await jvi({properties:Object.fromEntries(d)},t),extraProperties:a.declaration["extra-properties"]??!1,extendedProperties:void 0})}throw new Error(`Generic type definition not supported: ${n}`)}async function szf({alias:e,file:t,typeResolver:r}){let n=typeof e=="string"?e:e.type;return yTe(n)?await uzf({generic:n,file:t,typeResolver:r}):MC.alias({aliasOf:t.parseTypeReference(e),resolvedType:ruj({aliasOf:n,file:t,typeResolver:r})})}function ruj({aliasOf:e,file:t,typeResolver:r}){let n=r.resolveTypeOrThrow({type:e,file:t});switch(n._type){case"primitive":return WV.primitive(n.originalTypeReference.primitive);case"container":return WV.container(n.originalTypeReference.container);case"unknown":return WV.unknown();case"named":{let i=FE(n.declaration)?PCt.Object:cNr(n.declaration)?PCt.Union:SCt(n.declaration)?PCt.Enum:U2n(n.declaration)?PCt.UndiscriminatedUnion:Ol(n.declaration);return WV.named({name:n.name,shape:i})}}}function czf({union:e,file:t}){return MC.undiscriminatedUnion({members:e.union.map(r=>typeof r=="string"?{docs:void 0,type:t.parseTypeReference(r)}:{type:t.parseTypeReference(r),docs:r.docs})})}function lzf(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 UPu({typeDeclaration:e,file:t,typeResolver:r,seenTypeNames:n=new LPu}){let i=y5(e,{alias:u=>{var c;let f=typeof u=="string"?u:u.type,d=j3(f);if(d!=null){let o=new Set(d.arguments??[]),l=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:f,file:t}),g=(c=j3(l.typeName))==null?void 0:c.arguments;if(FE(l.declaration)){let O=lzf(l.declaration);g&&O.filter(j=>!g.includes(j)).forEach(j=>o.add(j))}return Array.from(o)}return[f]},object:u=>lzf(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=BJ({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=k9({typeName:d,file:t});if(!n.hasTypeNameBeenSeen(c)){n.addTypeName(c),a.push(c);let o=r.getDeclarationOfNamedTypeOrThrow({referenceToNamedType:d,file:t});if(yTe(o.typeName))continue;a.push(...UPu({typeDeclaration:o.declaration,file:o.file,typeResolver:r,seenTypeNames:n}))}}}return a}var LPu=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 fzf({typeName:e,typeDeclaration:t,file:r,typeResolver:n,exampleResolver:i,sourceResolver:a,workspace:u}){let f=await gG(t),d=k9({typeName:e,file:r}),c=UPu({typeDeclaration:t,file:r,typeResolver:n}),o={};FE(t)&&(o=wNn(t.properties??{}));let l=await iuj({file:r,typeDeclaration:t,typeName:e,sourceResolver:a});return{propertiesByAudience:o,typeDeclaration:{...f,name:d,shape:await nuj({typeDeclaration:t,file:r,typeResolver:n}),referencedTypes:new Set(c.map(g=>g.typeId)),encoding:auj({typeDeclaration:t,source:l}),source:l,userProvidedExamples:typeof t!="string"&&t.examples!=null?t.examples.map(g=>({name:g.name!=null?r.casingsGenerator.generateName(g.name):void 0,docs:g.docs,jsonExample:i.resolveAllReferencesInExampleOrThrow({example:g.value,file:r}).resolvedExample,shape:BPu({typeName:d,example:g.value,typeResolver:n,exampleResolver:i,typeDeclaration:t,fileContainingType:r,fileContainingExample:r,workspace:u})})):[],autogeneratedExamples:[]},descendantFilepaths:new Set(c.map(g=>g.fernFilepath))}}async function nuj({typeDeclaration:e,file:t,typeResolver:r}){return await y5(e,{alias:n=>szf({alias:n,file:t,typeResolver:r}),object:n=>Y8f({object:n,file:t}),discriminatedUnion:n=>f5f({union:n,file:t,typeResolver:r}),undiscriminatedUnion:n=>czf({union:n,file:t}),enum:async n=>MC.enum(await Vja({_enum:n,file:t}))})}async function iuj({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=ozf({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(azf({source:i,name:r}))}function auj({typeDeclaration:e,source:t}){return typeof e!="string"&&e.encoding!=null?ouj(e.encoding):uuj(t)}function ouj(e){return e.proto!=null?{json:void 0,proto:{}}:{json:{},proto:void 0}}function uuj(e){return e!=null&&e.type==="proto"?{json:void 0,proto:{}}:{json:{},proto:void 0}}var Kja=yu(Ksu(),1),Yja=class{ir;userProvidedTypeExamples;types;MAX_EXAMPLE_DEPTH=2;flattenedProperties;constructor(t){this.ir=t,this.types=new Map;for(let r of Object.values(t.types))this.types.set(r.name.typeId,r);this.userProvidedTypeExamples=new Map;for(let[r,n]of Object.entries(this.ir.types)){let i=n.userProvidedExamples;i&&i.length>0&&this.userProvidedTypeExamples.set(r,i[0])}this.flattenedProperties=new Map;for(let r of this.types.keys())this.flattenedProperties.set(r,this.getFlattenedProperties(r,0))}convertPropertyToExampleProperty(t,r,n){return{name:r.name,value:this.generateExampleTypeReference(r.valueType,n),originalTypeDeclaration:t}}getFlattenedProperties(t,r){let n=this.types.get(t);return n===void 0?[]:this.flattenedProperties.get(t)??n.shape._visit({alias:a=>a.aliasOf._visit({container:()=>[],named:u=>this.getFlattenedProperties(u.typeId,r),primitive:()=>[],unknown:()=>[],_other:()=>[]}),enum:()=>(this.flattenedProperties.set(t,[]),[]),object:a=>{let u=[...a.properties.map(f=>this.convertPropertyToExampleProperty(n.name,f,r)),...a.extends.flatMap(f=>this.getFlattenedProperties(f.typeId,r))];return this.flattenedProperties.set(t,u),u},union:a=>{let u=[...a.baseProperties.map(f=>this.convertPropertyToExampleProperty(n.name,f,r)),...a.extends.flatMap(f=>this.getFlattenedProperties(f.typeId,r))];return this.flattenedProperties.set(t,u),u},undiscriminatedUnion:a=>(this.flattenedProperties.set(t,[]),[]),_other:()=>{throw new Error("Attempting to type declaration for an unknown type.")}})}enrichWithAutogeneratedExamples(){for(let[t,r]of Object.entries(this.ir.services))for(let n of r.endpoints){let i=this.generateEndpointExamples(n,this.ir.pathParameters,r.pathParameters,r.headers);n.autogeneratedExamples=i.map(a=>({example:a}))}return this.ir}getExampleWithoutResponse(t,r,n,i){let a=[...t.userSpecifiedExamples.map(o=>o.example).filter(RS)],u={rootPathParameters:r.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.rootPathParameters).find(l=>l.name===o.name)})),servicePathParameters:n.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.servicePathParameters).find(l=>l.name===o.name)})),endpointPathParameters:t.pathParameters.map(o=>this.generatePathParameterExample({pathParameter:o,maybePathParameterExample:a.flatMap(l=>l.endpointPathParameters).find(l=>l.name===o.name)})),serviceHeaders:i.map(o=>this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.serviceHeaders).find(l=>l.name===o.name)})),endpointHeaders:t.headers.map(o=>this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.endpointHeaders).find(l=>l.name===o.name)})),queryParameters:t.queryParameters.map(o=>({...this.generateHttpParameterExample({parameter:o,maybeParameterExample:a.flatMap(l=>l.queryParameters).find(l=>l.name===o.name)}),shape:o.allowMultiple?uR.exploded():uR.single()})),request:t.requestBody!==void 0?this.generateRequestBodyExample({requestBody:t.requestBody,maybeExampleRequest:a.map(o=>o.request).filter(o=>o!=null)[0]}):void 0,name:void 0,docs:void 0},f=[...u.rootPathParameters,...u.servicePathParameters,...u.endpointPathParameters],d=this.examplePathParametersToRecord(f),c=t.fullPath.head+t.fullPath.parts.map(o=>d[o.pathParameter]+o.tail).join("");return{url:c.startsWith("/")||c===""?c:`/${c}`,...u}}examplePathParametersToRecord(t){let r={};return t.forEach(n=>{let i=n.value.jsonExample,a=typeof i=="string"?i:JSON.stringify(i);r[n.name.originalName]=a}),r}generateEndpointExamples(t,r,n,i){var c;let a=this.getExampleWithoutResponse(t,r,n,i),f=[...t.userSpecifiedExamples.map(o=>o.example).filter(RS)].map(({response:o})=>{var g;let l={...a,response:this.generateSuccessResponseExample({response:(g=t.response)==null?void 0:g.body,maybeResponse:o})};return{...l,id:(0,Kja.default)(l)}});if(f.length===0){let o={...a,response:this.generateSuccessResponseExample({response:(c=t.response)==null?void 0:c.body,maybeResponse:void 0})};f.push({...o,id:(0,Kja.default)(o)})}let d=t.errors.map(o=>{let l={...a,response:this.generateErrorResponseExample(o)};return{...l,id:(0,Kja.default)(l)}});return[...f,...d]}generatePathParameterExample({pathParameter:t,maybePathParameterExample:r}){return r??{name:t.name,value:this.generateExampleTypeReference(t.valueType,0)}}generateHttpParameterExample({parameter:t,maybeParameterExample:r}){return r??{name:t.name,value:this.generateExampleTypeReference(t.valueType,0)}}generateInlinedRequestBodyExample(t){let r=[...new Set([...t.properties.map(i=>({name:i.name,value:this.generateExampleTypeReference(i.valueType,0),originalTypeDeclaration:void 0})),...t.extends.flatMap(i=>this.flattenedProperties.get(i.typeId)??[])])],n={};return r.forEach(i=>n[i.name.wireValue]=i.value.jsonExample),AJ.inlinedRequestBody({jsonExample:n,properties:r})}generateRequestBodyExample({requestBody:t,maybeExampleRequest:r}){return r??t._visit({inlinedRequestBody:n=>this.generateInlinedRequestBodyExample(n),reference:n=>AJ.reference(this.generateExampleTypeReference(n.requestBodyType,0)),fileUpload:()=>{},bytes:()=>{},_other:()=>{}})}generateSuccessResponseExample({response:t,maybeResponse:r}){var n;return r!=null&&r.type==="ok"&&((n=r.value)==null?void 0:n.value)!=null?r:t==null?w3.ok(Qq.body()):w3.ok(t._visit({json:i=>Qq.body(i._visit({response:a=>this.generateExampleTypeReference(a.responseBodyType,0),nestedPropertyAsResponse:a=>a.responseProperty!==void 0?this.generateExampleTypeReference(a.responseProperty.valueType,0):this.generateExampleTypeReference(a.responseBodyType,0),_other:()=>this.generateExampleUnknown()})),fileDownload:()=>Qq.body(this.generateExamplePrimitive({primitiveType:ID.Base64})),text:()=>Qq.body(this.generateExamplePrimitive({primitiveType:ID.String})),streaming:i=>i._visit({sse:a=>Qq.sse([{event:"message",data:this.generateExampleTypeReference(a.payload,0)},{event:"message",data:this.generateExampleTypeReference(a.payload,0)}]),json:a=>Qq.stream([this.generateExampleTypeReference(a.payload,0),this.generateExampleTypeReference(a.payload,0)]),text:()=>Qq.stream([this.generateExamplePrimitive({primitiveType:ID.String}),this.generateExamplePrimitive({primitiveType:ID.String})]),_other:()=>Qq.stream([this.generateExampleUnknown()])}),streamParameter:i=>{let a=i.nonStreamResponse._visit({fileDownload:f=>pA.fileDownload({...f}),json:f=>pA.fileDownload({...f}),text:f=>pA.fileDownload({...f}),_other:f=>{throw new Error(`Received unrecognized response ${f}`)}}),u=this.generateSuccessResponseExample({response:a,maybeResponse:void 0});if(u.type==="error")throw new Error("Unexpected: received error example");return u.value},_other:()=>Qq.body(this.generateExampleUnknown())}))}generateErrorResponseExample(t){return w3.error({error:t.error,body:void 0})}generateExampleType(t,r){let n=this.userProvidedTypeExamples.get(t.name.typeId);if(n!=null)return n;switch(t.shape.type){case"alias":return this.generateExampleTypeForAlias(t.shape,r);case"enum":return this.generateExampleTypeForEnum(t.shape);case"object":return this.generateExampleTypeForObject(t.name,r);case"union":return this.generateExampleTypeForUnion(t.name.typeId,t.shape,r);case"undiscriminatedUnion":return this.generateExampleTypeForUndiscriminatedUnion(t.shape,r);default:Ol(t.shape)}}generateExampleTypeForAlias(t,r){let n=this.generateExampleTypeReference(t.aliasOf,r);return this.newNamelessExampleType({jsonExample:n.jsonExample,shape:gM.alias({value:n})})}generateExampleTypeForEnum(t){if(t.values.length===0||t.values[0]==null)return null;let r=t.values[0];return this.newNamelessExampleType({jsonExample:r.name.wireValue,shape:gM.enum({value:r.name})})}generateExampleTypeForObject(t,r){let n=this.userProvidedTypeExamples.get(t.typeId);this.flattenedProperties.has(t.typeId)||this.flattenedProperties.set(t.typeId,this.getFlattenedProperties(t.typeId,r));let i=this.flattenedProperties.get(t.typeId),a={};return i==null||i.forEach(u=>a[u.name.wireValue]=u.value.jsonExample),n??this.newNamelessExampleType({jsonExample:a,shape:gM.object({properties:i??[]})})}generateSingleUnionType(t,r,n){return{wireDiscriminantValue:r.discriminantValue,shape:r.shape._visit({samePropertiesAsObject:i=>{let a=this.types.get(i.typeId);return a===void 0||a.shape.type!=="object"?D3.noProperties():D3.samePropertiesAsObject({typeId:i.typeId,object:{properties:[...t,...this.flattenedProperties.get(i.typeId)??[]]}})},singleProperty:i=>D3.singleProperty(this.generateExampleTypeReference(i.type,n+1)),noProperties:()=>D3.noProperties(),_other:()=>D3.noProperties()})}}generateExampleTypeForUnion(t,r,n){return r.types.map(i=>{let a=this.flattenedProperties.get(t)??[],u=this.generateSingleUnionType(a,i,n),f={},d=u.shape._visit({samePropertiesAsObject:o=>([...a,...this.flattenedProperties.get(o.typeId)??o.object.properties].forEach(g=>f[g.name.wireValue]=g.value.jsonExample),f),singleProperty:o=>o.jsonExample,noProperties:()=>f,_other:()=>f}),c={[r.discriminant.wireValue]:i.discriminantValue.wireValue,...d};return this.newNamelessExampleType({jsonExample:c,shape:gM.union({discriminant:r.discriminant,singleUnionType:u})})})}generateExampleTypeForUndiscriminatedUnion(t,r){return t.members.map((n,i)=>{let a=this.generateExampleTypeReference(n.type,r);return this.newNamelessExampleType({jsonExample:a.jsonExample,shape:gM.undiscriminatedUnion({index:i,singleUnionType:a})})})}generateExampleTypeReference(t,r,n={}){if(this.exceedsMaxDepth(r))return this.generateExampleUnknown({},n);switch(t.type){case"container":return this.generateExampleContainer(t.container,r);case"named":return this.generateExampleNamed(t,r);case"primitive":return this.generateExamplePrimitive({primitiveType:t.primitive.v1});case"unknown":return this.generateExampleUnknown({},n);default:Ol(t)}}generateExampleNamed(t,r){let n=this.resolveType(t),i=this.generateExampleType(n,r),a=i instanceof Array?i[0]:i;if(a==null)throw new Error(`internal error: failed to generate example type with id: ${t.typeId}`);return{jsonExample:a.jsonExample,shape:Q0.named({typeName:t,shape:a.shape})}}generateExampleContainer(t,r){switch(t.type){case"list":return this.generateExampleTypeReferenceList(t.list,r+1);case"map":return this.generateExampleTypeReferenceMap(t,r+1);case"optional":return this.generateExampleTypeReferenceOptional(t.optional,r+1);case"set":return this.generateExampleTypeReferenceSet(t.set,r+1);case"literal":return this.generateExampleTypeReferenceLiteral(t.literal);default:Ol(t)}}generateExampleTypeReferenceOptional(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:n.jsonExample,shape:Q0.container(hT.optional({optional:n,valueType:t}))}}generateExampleTypeReferenceList(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:[n.jsonExample],shape:Q0.container(hT.list({list:[n],itemType:t}))}}generateExampleTypeReferenceMap(t,r){let n=this.generateExampleTypeReference(t.keyType,r,{unknownAsPrimitive:!0}),i=this.generateExampleTypeReference(t.valueType,r);return{jsonExample:{[this.jsonExampleToMapKey(n.jsonExample)]:i.jsonExample},shape:Q0.container(hT.map({map:[{key:n,value:i}],keyType:t.keyType,valueType:t.valueType}))}}jsonExampleToMapKey(t){return typeof t=="number"?1:"string"}generateExampleTypeReferenceSet(t,r){let n=this.generateExampleTypeReference(t,r);return{jsonExample:[n.jsonExample],shape:Q0.container(hT.set({set:[n],itemType:t}))}}generateExampleTypeReferenceLiteral(t){switch(t.type){case"boolean":return{jsonExample:t.boolean,shape:Q0.container(hT.literal({literal:Xv.boolean(t.boolean)}))};case"string":return{jsonExample:t.string,shape:Q0.container(hT.literal({literal:Xv.string({original:t.string})}))};default:Ol(t)}}generateExamplePrimitive({primitiveType:t,example:r}){switch(t){case"STRING":{let n=r!=null&&typeof r=="string"?r:SC.STRING;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}case"INTEGER":{let n=r!=null&&typeof r=="number"?r:SC.INT;return{jsonExample:n,shape:Q0.primitive(Xv.integer(n))}}case"UINT":{let n=r!=null&&typeof r=="number"?r:SC.UINT;return{jsonExample:n,shape:Q0.primitive(Xv.uint(n))}}case"UINT_64":{let n=r!=null&&typeof r=="number"?r:SC.UINT64;return{jsonExample:n,shape:Q0.primitive(Xv.uint64(n))}}case"FLOAT":{let n=r!=null&&typeof r=="number"?r:SC.FLOAT;return{jsonExample:n,shape:Q0.primitive(Xv.float(n))}}case"DOUBLE":{let n=r!=null&&typeof r=="number"?r:SC.DOUBLE;return{jsonExample:n,shape:Q0.primitive(Xv.double(n))}}case"BOOLEAN":{let n=r!=null&&typeof r=="boolean"?r:SC.BOOLEAN;return{jsonExample:n,shape:Q0.primitive(Xv.boolean(n))}}case"LONG":{let n=r!=null&&typeof r=="number"?r:SC.INT64;return{jsonExample:n,shape:Q0.primitive(Xv.long(n))}}case"DATE_TIME":{let n=r!=null&&typeof r=="string"?r:SC.DATE_TIME;return{jsonExample:n,shape:Q0.primitive(Xv.datetime({datetime:new Date(n),raw:n}))}}case"UUID":{let n=r!=null&&typeof r=="string"?r:SC.UUID;return{jsonExample:n,shape:Q0.primitive(Xv.uuid(n))}}case"DATE":{let n=r!=null&&typeof r=="string"?r:SC.DATE;return{jsonExample:n,shape:Q0.primitive(Xv.date(n))}}case"BASE_64":{let n=r!=null&&typeof r=="string"?r:SC.BASE64;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}case"BIG_INTEGER":{let n=r!=null&&typeof r=="string"?r:SC.BIG_INTEGER;return{jsonExample:n,shape:Q0.primitive(Xv.string({original:n}))}}}}generateExampleUnknown({name:t}={},r={}){if(r.unknownAsPrimitive){let i=t??"string";return this.generateExamplePrimitive({primitiveType:ID.String,example:i})}let n={key:"value"};return{jsonExample:n,shape:Q0.unknown(n)}}resolveType(t){let r=this.ir.types[t.typeId];if(r==null)throw new Error(`internal error: could not resolve type with id: ${t.typeId}`);return r}newNamelessExampleType({jsonExample:t,shape:r}){return{name:void 0,docs:void 0,jsonExample:t,shape:r}}exceedsMaxDepth(t){return t>this.MAX_EXAMPLE_DEPTH}};function dzf(e,t){let r=t[e];if(r==null)throw new Zqt(`Illegal Error: Failed to load type declaration for type ${e}`);return r}function pzf(e){return{types:Object.fromEntries(Object.entries(e.types).map(([t,r])=>[t,cuj({typeDeclaration:r,ir:e})])),services:Object.fromEntries(Object.entries(e.services).map(([t,r])=>[t,{...r,endpoints:r.endpoints.map(n=>suj({endpoint:n,ir:e}))}]))}}function suj({endpoint:e,ir:t}){var r;return((r=e.requestBody)==null?void 0:r.type)!=="inlinedRequestBody"?e:{...e,requestBody:{...e.requestBody,extendedProperties:e.requestBody.extends.flatMap(n=>_zf(n,t))}}}function cuj({typeDeclaration:e,ir:t}){switch(e.shape.type){case"object":return{...e,shape:{...e.shape,extendedProperties:e.shape.extends.flatMap(r=>_zf(r,t))}}}return e}function _zf(e,t){let r=VPu(e.typeId,t);return hzf({objectTypeDeclaration:r,ir:t})}function VPu(e,t){let r=dzf(e,t.types);switch(r.shape.type){case"object":return r.shape;case"alias":if(r.shape.resolvedType.type==="named")return VPu(r.shape.resolvedType.name.typeId,t)}throw new Zqt(`Unexpected error: ${e} is extended but has shape ${r.shape.type}`)}function hzf({objectTypeDeclaration:e,ir:t}){let r=e.extends.flatMap(n=>{let i=VPu(n.typeId,t);return hzf({objectTypeDeclaration:i,ir:t})});return[...e.properties,...r]}var Xja=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=nw.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=nw.generateErrorId(t.name);return this.errors.has(r)}hasService(t){let r=nw.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 Qja=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=luj(t)}addType({declaredTypeName:t,descendantTypeIds:r,descendantFilepaths:n,descendantTypeIdsByAudience:i,propertiesByAudience:a}){let u=nw.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){var i;let n=nw.generateTypeId(t);this.hasAudience(r)&&(this.typesNeededForAudience.add(n),this.addSubpackages(t.fernFilepath),(i=this.types[n])==null||i.referencedSubpackages.forEach(a=>{this.addSubpackages(a)}))}markEnvironmentForAudiences(t,r,n){t&&(this.hasAudience(r)||n)&&this.environmentsNeededForAudience.add(t.id)}getTypesReferencedByService(){return this.typesReferencedByService}addError(t){let r=nw.generateErrorId(t.name),n=new Set,i=new Set;t.type!=null&&SB(t.type,n,i);let a={errorId:r,referencedTypes:n,referencedSubpackages:i};this.errors[r]=a}addEndpoint(t,r,n){var c;let i=nw.generateServiceId(t.name),a=r.id,u=new Set,f=new Set,d=new Set;for(let o of[...t.headers,...r.headers])SB(o.valueType,u,d);for(let o of[...t.pathParameters,...r.pathParameters])SB(o.valueType,u,d);for(let o of r.queryParameters)SB(o.valueType,u,d);if(n!=null&&n.request!=null&&typeof n.request!="string"){let o=wNn(n.request["query-parameters"]??{});this.queryParameters[a]={endpointId:a,parametersByAudience:o}}r.requestBody!=null&&cB._visit(r.requestBody,{inlinedRequestBody:o=>{for(let l of o.extends)WPu(l,u,d);for(let l of o.properties)SB(l.valueType,u,d);if(n!=null&&typeof n.request=="object"&&typeof n.request.body=="object"&&m7(n.request.body)){let l=wNn(n.request.body.properties??{});this.requestProperties[a]={endpointId:a,propertiesByAudience:l}}},reference:({requestBodyType:o})=>{SB(o,u,d)},fileUpload:({properties:o})=>{for(let l of o)Zre._visit(l,{file:gf,bodyProperty:({valueType:g})=>{SB(g,u,d)},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+l.type)}})},bytes:()=>{},_other:()=>{var o;throw new Error("Unknown HttpRequestBody: "+((o=r.requestBody)==null?void 0:o.type))}}),((c=r.response)==null?void 0:c.body)!=null&&pA._visit(r.response.body,{fileDownload:gf,json:o=>{SB(o.responseBodyType,u,d)},streaming:o=>{o._visit({sse:l=>SB(l.payload,u,d),json:l=>SB(l.payload,u,d),text:gf,_other:()=>{throw new Error("Unknown streamingResponse type: "+o.type)}})},streamParameter:o=>{o.streamResponse._visit({sse:l=>SB(l.payload,u,d),json:l=>SB(l.payload,u,d),text:gf,_other:()=>{throw new Error("Unknown streamingResponse type: "+o.streamResponse.type)}}),o.nonStreamResponse.type==="json"&&SB(o.nonStreamResponse.value.responseBodyType,u,d)},text:gf,_other:()=>{var o,l;throw new Error("Unknown HttpResponse: "+((l=(o=r.response)==null?void 0:o.body)==null?void 0:l.type))}}),r.errors.forEach(o=>{f.add(nw.generateErrorId(o.error)),d.add(o.error.fernFilepath)});for(let o of u)this.markTypeForService(o,i);this.endpoints[a]={endpointId:a,referencedTypes:u,referencedErrors:f,referencedSubpackages:d}}markEndpointForAudience(t,r,n){if(this.hasAudience(n)){let i=nw.generateServiceId(t);this.servicesNeededForAudience.add(i),r.forEach(a=>{var f;let u=a.id;this.endpointsNeededForAudience.add(u),(f=this.endpoints[u])==null||f.referencedSubpackages.forEach(d=>{this.addSubpackages(d)})}),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&&ine._visit(r.payload,{inlinedPayload:f=>{for(let d of f.extends)WPu(d,a,u);for(let d of f.properties)SB(d.valueType,a,u);if((n==null?void 0:n.payload)!=null&&typeof n.payload=="object"&&!Gja(n.payload)){let d=wNn(n.payload.properties??{});this.webhookProperties[i]={webhookId:i,propertiesByAudience:d}}},reference:({payloadType:f})=>{SB(f,a,u)},_other:()=>{var f;throw new Error("Unknown WebhookPayload: "+((f=r.payload)==null?void 0:f.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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}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!=null&&l.forEach(g=>{c.add(g)})}u[f]=c.size>0?c:void 0}}return new Xja({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:Ol(r)}}addSubpackages(t){for(let r=1;r<=t.allParts.length;++r){let n={...t,allParts:t.allParts.slice(0,r)};this.subpackagesNeededForAudience.add(nw.generateSubpackageId(n))}}};function luj(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:Ol(e)}}function SB(e,t,r){E2._visit(e,{container:n=>{fuj(n,t,r)},named:n=>{WPu(n,t,r)},primitive:gf,unknown:gf,_other:gf})}function WPu(e,t,r){t.add(nw.generateTypeId(e)),r.add(e.fernFilepath)}function fuj(e,t,r){xC._visit(e,{list:n=>{SB(n,t,r)},map:n=>{SB(n.keyType,t,r),SB(n.valueType,t,r)},optional:n=>{SB(n,t,r)},set:n=>{SB(n,t,r)},literal:gf,_other:gf})}function vzf({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:f8({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)}}:void 0;return n!==void 0?D3.samePropertiesAsObject(n):void 0},singleProperty:r=>{let n=f8({filteredIr:e,exampleTypeReference:r});return n!==void 0?D3.singleProperty(n):void 0},noProperties:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}})}function f8({filteredIr:e,exampleTypeReference:t}){return t.shape._visit({primitive:()=>t,container:r=>r._visit({list:n=>({...t,shape:Q0.container(hT.list({...n,list:n.list.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),set:n=>({...t,shape:Q0.container(hT.set({...n,set:n.set.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),optional:n=>{let i=n.optional!=null?f8({filteredIr:e,exampleTypeReference:n.optional}):void 0;return i!=null?{...t,shape:Q0.container(hT.optional({optional:i,valueType:n.valueType}))}:void 0},map:n=>({...t,shape:Q0.container(hT.map({...n,map:n.map.map(i=>{let a=f8({filteredIr:e,exampleTypeReference:i.key}),u=f8({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=f8({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.alias({...n,value:i})})}:void 0},enum:n=>({...t,shape:Q0.named({...r,shape:gM.enum(n)})}),object:n=>({...t,shape:Q0.named({...r,shape:gM.object({...n,properties:n.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,i.name.wireValue)).map(i=>({...i,value:f8({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)})})}),union:n=>{let i=vzf({filteredIr:e,singleUnionTypeProperties:n.singleUnionType.shape});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.union({...n,singleUnionType:{...n.singleUnionType,shape:i}})})}:void 0},undiscriminatedUnion:n=>{let i=f8({filteredIr:e,exampleTypeReference:n.singleUnionType});return i!==void 0?{...t,shape:Q0.named({...r,shape:gM.undiscriminatedUnion({...n,singleUnionType:i})})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}}):void 0,unknown:()=>t,_other:()=>t})}function HPu({filteredIr:e,pathParameters:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function duj({filteredIr:e,queryParameters:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function yzf({filteredIr:e,headers:t}){return t.map(r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function puj({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=f8({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...n,value:i}:void 0}).filter(n=>n!==void 0)}),reference:r=>{let n=f8({filteredIr:e,exampleTypeReference:r});return n!==void 0?AJ.reference(n):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function _uj({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>w3.ok(Qq.body(n!=null?f8({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>w3.ok(Qq.stream(n.map(i=>f8({filteredIr:e,exampleTypeReference:i})).filter(RS))),sse:n=>w3.ok(Qq.sse(n.map(({event:i,data:a})=>{let u=f8({filteredIr:e,exampleTypeReference:a});return u!==void 0?{event:i,data:u}:void 0}).filter(RS))),_other:({type:n})=>{throw new Error(`Received unknown type for OK example: ${n}`)}}),error:({error:r,body:n})=>w3.error({error:r,body:n!=null?f8({filteredIr:e,exampleTypeReference:n}):void 0}),_other:({type:r})=>{throw new Error(`Received unknown type for example: ${r}`)}})}function $Pu({filteredIr:e,example:t}){return{...t,rootPathParameters:HPu({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:HPu({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:HPu({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:yzf({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:yzf({filteredIr:e,headers:t.endpointHeaders}),queryParameters:duj({filteredIr:e,queryParameters:t.queryParameters}),request:t.request!==void 0?puj({filteredIr:e,requestBody:t.request}):void 0,response:_uj({filteredIr:e,response:t.response})}}function bzf({filteredIr:e,exampleType:t}){return t.shape._visit({alias:r=>{let n=f8({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...t,shape:gM.alias({...r,value:n})}:void 0},enum:()=>t,object:r=>({...t,shape:gM.object({...r,properties:r.properties.filter(n=>e.hasProperty(n.originalTypeDeclaration.typeId,n.name.wireValue)).map(n=>({...n,value:f8({filteredIr:e,exampleTypeReference:n.value})})).filter(n=>n.value!==void 0)})}),union:r=>{let n=vzf({filteredIr:e,singleUnionTypeProperties:r.singleUnionType.shape});return n!==void 0?{...t,shape:gM.union({...r,singleUnionType:{...r.singleUnionType,shape:n}})}:void 0},undiscriminatedUnion:r=>{let n=f8({filteredIr:e,exampleTypeReference:r.singleUnionType});return n!==void 0?{...t,shape:gM.undiscriminatedUnion({...r,singleUnionType:n})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}var Zja=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:nw.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:sy(this.subpackages,(n,i)=>({...n,hasEndpointsInTree:r.has(i)})),rootPackage:{...this.rootPackage,hasEndpointsInTree:r.size>0||this.rootPackage.service!=null}}}sortRootPackage(t){if(!gzf(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(!gzf(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=nw.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 gzf(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 mzf({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:Yzr({referencedIn:t,importPath:f})}}var drn=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 N5(this.workspace,async(i,a,u)=>{var d;let f=yO({relativeFilepath:i,definitionFile:a,casingsGenerator:Qzr,rootApiFile:this.workspace.definition.rootApiFile.contents,defaultUrl:u.defaultUrl});for(let[c,o]of Object.entries(((d=a.service)==null?void 0:d.endpoints)??{}))o.method===t&&o.path===r&&(n={endpointId:c,endpoint:o,file:f})}),await Gtn(this.workspace,async(i,a)=>{var f;let u=yO({relativeFilepath:i,definitionFile:a,casingsGenerator:Qzr,rootApiFile:this.workspace.definition.rootApiFile.contents});for(let[d,c]of Object.entries(((f=a.service)==null?void 0:f.endpoints)??{}))c.method===t&&c.path===r&&(n={endpointId:d,endpoint:c,file:u})}),n}async resolveEndpoint({endpoint:t,file:r}){var f,d;let i=new lli().tryParse(t);if(i!=null)return await this.resolveEndpointByMethodAndPath(i);let a=this.getDeclarationOfEndpoint({referenceToEndpoint:t,file:r});if(a==null)return;let u=(d=(f=a.file.definitionFile.service)==null?void 0:f.endpoints)==null?void 0:d[a.endpointName];if(u!=null)return{endpointId:a.endpointName,endpoint:u,file:a.file}}getDeclarationOfEndpoint({referenceToEndpoint:t,file:r}){var u,f;let n=mzf({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(!(i==null||((f=(u=i.service)==null?void 0:u.endpoints)==null?void 0:f[n.endpointName])==null))return{endpointName:n.endpointName,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var prn=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){var u;let n=swe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(i==null)return;let a=(u=i.errors)==null?void 0:u[n.typeName];if(a!=null)return{declaration:a,file:yO({definitionFile:i,relativeFilepath:n.relativeFilepath,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}};var lwe=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(RO(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(`\\${_Bt}`))return{resolvedExample:t.slice(1),file:r};if(!t.startsWith(_Bt))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(_Bt.length),exampleName:n}:{rawTypeReference:`${r}.${n}`.slice(_Bt.length),exampleName:i}}};var kja=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:tne.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}){var u;let i=await this.endpointResolver.resolveEndpointOrThrow({endpoint:r,file:t}),a=await this.resolveObjectProperty({file:i.file,typeName:(typeof i.endpoint.response!="string"?(u=i.endpoint.response)==null?void 0:u.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}){var a;if(i.length===1){let u=i[0]??"",f=typeof n["query-parameters"]!=null?(a=n["query-parameters"])==null?void 0:a[u]:void 0;if(f!=null)return{property:tne.query(await Wja({file:r,queryParameterKey:u,queryParameter:f})),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:tne.body(u)}}if(m7(n.body)){let u=await APu({typeResolver:t,file:r,objectSchema:n.body,propertyComponents:i});return u==null?void 0:{propertyPath:await this.propertyPathFromPropertyComponents({propertyComponents:i,file:r}),property:tne.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:tne.body(a)}}async resolveObjectProperty({file:t,typeName:r,propertyComponents:n}){let i=this.typeResolver.resolveTypeOrThrow({type:r,file:t});return await CPu({typeResolver:this.typeResolver,file:Dvi(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 Ozf=require("fs/promises"),ewa=class{async parse({absoluteFilePath:t}){let r=await(0,Ozf.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==null?void 0:n[1],packageName:i==null?void 0:i[1],serviceName:a==null?void 0:a[1]}}};var twa=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(kea(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 kea(t)?await this.resolveProtobufSource({source:t,file:r}):await this.resolveOpenAPISource({source:t,file:r})}async resolveProtobufSource({source:t,file:r}){let n=Tf(this.workspace.absoluteFilepath,Ws.of(t.proto));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await Vh(n))return;let a=await new ewa().parse({absoluteFilePath:n}),u={type:"protobuf",absoluteFilePath:n,relativeFilePath:Ws.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=Tf(this.workspace.absoluteFilepath,Ws.of(t.openapi));if(this.sourceCache.has(n))return this.sourceCache.get(n);if(!await Vh(n))return;let i={type:"openapi",absoluteFilePath:n,relativeFilePath:Ws.of(t.openapi)};return this.sourceCache.set(n,i),i}};var mM=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}){var u,f;let n=swe({reference:t,referencedIn:r.relativeFilepath,imports:r.imports});if(n==null)return;let i=Vne(this.workspace,n.relativeFilepath);if(i==null)return;let a=(u=i.types)==null?void 0:u[n.typeName];if(a==null){let d=j3(n.typeName);if(d!=null){for(let c of Object.keys(i.types??{})??[])if(d.name&&c.startsWith(d.name)&&c.endsWith(">")){let o=(f=i.types)==null?void 0:f[c];return o!=null?{typeName:c,declaration:o,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}:void 0}}return}return{typeName:n.typeName,declaration:a,file:yO({relativeFilepath:n.relativeFilepath,definitionFile:i,casingsGenerator:r.casingsGenerator,rootApiFile:this.workspace.definition.rootApiFile.contents})}}resolveType({type:t,file:r,objectPath:n=[]}){return BJ({type:t,_default:void 0,validation:void 0,visitor:{primitive:i=>({_type:"primitive",primitive:i,originalTypeReference:E2.primitive(i)}),unknown:()=>({_type:"unknown",originalTypeReference:E2.unknown()}),map:({keyType:i,valueType:a})=>i!=null&&a!=null?{_type:"container",container:{_type:"map",keyType:i,valueType:a},originalTypeReference:E2.container(xC.map({keyType:i.originalTypeReference,valueType:a.originalTypeReference}))}:void 0,list:i=>i!=null?{_type:"container",container:{_type:"list",itemType:i},originalTypeReference:E2.container(xC.list(i.originalTypeReference))}:void 0,optional:i=>i!=null?{_type:"container",container:{_type:"optional",itemType:i},originalTypeReference:E2.container(xC.optional(i.originalTypeReference))}:void 0,set:i=>i!=null?{_type:"container",container:{_type:"set",itemType:i},originalTypeReference:E2.container(xC.set(i.originalTypeReference))}:void 0,literal:i=>({_type:"container",container:{_type:"literal",literal:i},originalTypeReference:E2.container(xC.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(L2n(a))return this.resolveType({type:typeof a=="string"?a:a.type,file:u,objectPath:i});let f=Lja({type:t,_default:void 0,validation:void 0,file:r});if(!(f.type!=="named"||Vne(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 DNn=class{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){var i;if(!t.startsWith(DNn.VARIABLE_PREFIX))return;let n=(i=r.rootApiFile.variables)==null?void 0:i[t.substring(1)];if(n!=null)return{declaration:n,file:wEr({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 "+DNn.VARIABLE_PREFIX);return r}getVariableId(t){if(!!t.startsWith(DNn.VARIABLE_PREFIX))return t.substring(DNn.VARIABLE_PREFIX.length)}},eqe=DNn;dv(eqe,"VARIABLE_PREFIX","$");function rwa(e,t){if(t){for(let[r,n]of Object.entries(t))if(typeof n!="string"&&r===e)return n.audiences}}async function JQ({fdrApiDefinitionId:e,workspace:t,generationLanguage:r,keywords:n,smartCasing:i,disableExamples:a,audiences:u,readme:f,packageName:d,version:c,context:o}){let l=Kzr({generationLanguage:r,keywords:n,smartCasing:i}),g=new Qja(u),O=wEr({casingsGenerator:l,rootApiFile:t.definition.rootApiFile.contents}),j=(t.definition.rootApiFile.contents.errors??[]).map(Yr=>({error:Xzr({errorName:Yr,file:O}),docs:void 0})),S=new mM(t),x=new drn(t),A=new kja(S,x),N=new prn(t),z=new lwe(S),C=new eqe,U=new twa(o,t),Y={fdrApiDefinitionId:e,apiVersion:await Q5f({file:O,rawApiFileSchema:t.definition.rootApiFile.contents}),apiName:l.generateName(t.definition.rootApiFile.contents.name),apiDisplayName:t.definition.rootApiFile.contents["display-name"],apiDocs:await Bja(t.definition.rootApiFile.contents.docs),auth:await X5f({rawApiFileSchema:t.definition.rootApiFile.contents,file:O,propertyResolver:A,endpointResolver:x}),headers:t.definition.rootApiFile.contents.headers!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents.headers).map(([Yr,Gt])=>k2e({headerKey:Yr,header:Gt,file:O}))):[],idempotencyHeaders:t.definition.rootApiFile.contents["idempotency-headers"]!=null?await Promise.all(Object.entries(t.definition.rootApiFile.contents["idempotency-headers"]).map(([Yr,Gt])=>k2e({headerKey:Yr,header:Gt,file:O}))):[],types:{},errors:{},services:{},constants:F5f(l),environments:RPu({casingsGenerator:l,rawApiFileSchema:t.definition.rootApiFile.contents}),errorDiscriminationStrategy:rzf(t.definition.rootApiFile.contents["error-discrimination"],O),basePath:t.definition.rootApiFile.contents["base-path"]!=null?FAt(t.definition.rootApiFile.contents["base-path"]):void 0,pathParameters:await jNn({pathParameters:t.definition.rootApiFile.contents["path-parameters"],file:O,location:bTe.Root,variableResolver:C}),variables:t.definition.rootApiFile.contents.variables!=null?Object.entries(t.definition.rootApiFile.contents.variables).map(([Yr,Gt])=>({docs:typeof Gt!="string"?Gt.docs:void 0,id:Yr,name:O.casingsGenerator.generateName(Yr),type:O.parseTypeReference(Gt)})):[],serviceTypeReferenceInfo:{typesReferencedOnlyByService:{},sharedTypes:[]},webhookGroups:{},websocketChannels:{},readmeConfig:void 0,sourceConfig:void 0,publishConfig:void 0},te=new Zja,G=async Yr=>{te.addSubpackage(Yr.fernFilepath),await Aw(Yr.definitionFile,{imports:gf,docs:Gt=>{Gt!=null&&te.addDocs(Yr.fernFilepath,Gt)},types:async Gt=>{if(Gt!=null)for(let[bn,An]of Object.entries(Gt)){if(yTe(bn))continue;let Ht=await fzf({typeName:bn,typeDeclaration:An,file:Yr,typeResolver:S,exampleResolver:z,sourceResolver:U,workspace:t}),er=Ht.typeDeclaration;a&&(er.userProvidedExamples=[],er.autogeneratedExamples=[]);let jn=Ht.descendantFilepaths,dn=nw.generateTypeId(er.name);Y.types[dn]=er,te.addType(dn,er),g.addType({declaredTypeName:er.name,descendantTypeIds:er.referencedTypes,descendantTypeIdsByAudience:{},propertiesByAudience:Ht.propertiesByAudience,descendantFilepaths:jn}),g.markTypeForAudiences(er.name,K8f(An))}},errors:Gt=>{if(Gt==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[An,Ht]of Object.entries(Gt)){let er=ezf({errorName:An,errorDeclaration:Ht,file:Yr,typeResolver:S,exampleResolver:z,workspace:t}),jn=nw.generateErrorId(er.name);Y.errors[jn]=er,te.addError(jn,er),g.addError(er)}},service:async Gt=>{if(Gt==null)return;let bn=await R5f({rootDefaultUrl:Yr.defaultUrl??t.definition.rootApiFile.contents["default-url"],rootPathParameters:Y.pathParameters,serviceDefinition:Gt,file:Yr,errorResolver:N,typeResolver:S,propertyResolver:A,exampleResolver:z,sourceResolver:U,globalErrors:j,variableResolver:C,workspace:t}),An=nw.generateServiceId(bn.name);Y.services[An]=bn,te.addService(An,bn);let Ht={};bn.endpoints.forEach(er=>{a&&(er.autogeneratedExamples=[],er.userSpecifiedExamples=[]);let jn=Gt.endpoints[er.name.originalName];g.addEndpoint(bn,er,jn),Ht[er.name.originalName]=er}),Gt.audiences!=null&&g.markEndpointForAudience(bn.name,bn.endpoints,Gt.audiences),Object.entries(Gt.endpoints).map(([er,jn])=>{let dn=Ht[er];dn!=null&&jn.audiences!=null&&g.markEndpointForAudience(bn.name,[dn],jn.audiences)})},webhooks:async Gt=>{if(Gt==null)return;let bn=nw.generateWebhookGroupId(Yr.fernFilepath),An=await izf({webhooks:Gt,file:Yr,typeResolver:S,exampleResolver:z,workspace:t}),Ht={};for(let er of An)Ht[er.name.originalName]=er;Object.entries(Gt).forEach(([er,jn])=>{let dn=Ht[er];dn!=null&&(g.addWebhook(Yr,dn,jn),jn.audiences!=null&&g.markWebhookForAudiences(Yr,dn,jn.audiences))}),Y.webhookGroups[bn]=An,te.addWebhookGroup(bn,Yr.fernFilepath)},channel:async Gt=>{if(Gt==null)return;let bn=nw.generateWebSocketChannelId(Yr.fernFilepath),An=await Z5f({channel:Gt,file:Yr,variableResolver:C,typeResolver:S,exampleResolver:z,workspace:t});Y.websocketChannels!=null&&(Y.websocketChannels[bn]=An,te.addWebSocketChannel(bn,Yr.fernFilepath))}})};await N5(t,async(Yr,Gt,bn)=>{await G(yO({relativeFilepath:Yr,definitionFile:Gt,casingsGenerator:l,rootApiFile:t.definition.rootApiFile.contents,defaultUrl:bn.defaultUrl}))}),await Gtn(t,async(Yr,Gt)=>{if(Gt.navigation!=null)if(typeof Gt.navigation=="string")te.addPackageRedirection({from:LAt({relativeFilepath:Yr,casingsGenerator:l}),to:LAt({relativeFilepath:Tf(Hg(Yr),Ws.of(Gt.navigation)),casingsGenerator:l})});else{let bn=Gt.navigation.map(An=>nw.generateSubpackageId(LAt({relativeFilepath:Tf(Hg(Yr),Ws.of(An)),casingsGenerator:l})));Yr===$T?te.sortRootPackage(bn):te.sortSubpackage(nw.generateSubpackageId(LAt({relativeFilepath:Yr,casingsGenerator:l})),bn)}}),Y.serviceTypeReferenceInfo=huj(g);let $=a?Y:new Yja(Y).enrichWithAutogeneratedExamples(),ee=t.definition.rootApiFile.contents,Ve=RPu({casingsGenerator:l,rawApiFileSchema:ee}),$e=Ve==null?void 0:Ve.environments._visit({singleBaseUrl:Yr=>Yr.environments.filter(Gt=>rwa(Gt.id,ee.environments)!=null).length===0,multipleBaseUrls:Yr=>Yr.environments.filter(Gt=>rwa(Gt.id,ee.environments)!=null).length===0,_other:()=>!1});Ve==null||Ve.environments.environments.forEach(Yr=>{g.markEnvironmentForAudiences(Yr,rwa(Yr.id,ee.environments)??[],$e)});let Dt=g.hasNoAudiences()?void 0:g.build(),Tt=yuj($,Dt),Wt=t.definition.rootApiFile.contents.auth!=null&&Object.values(Tt.services).every(Yr=>Yr.endpoints.every(Gt=>Gt.auth)),Nt=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>{var bn,An;return((An=(bn=Gt.response)==null?void 0:bn.body)==null?void 0:An.type)==="streaming"})),ur=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>Gt.pagination!=null)),Ar=Object.values(Tt.services).some(Yr=>Yr.endpoints.some(Gt=>{var bn,An;return((An=(bn=Gt.response)==null?void 0:bn.body)==null?void 0:An.type)==="fileDownload"})),Jr=f!=null?nzf({readme:f,services:Y.services}):void 0,{types:zt,services:_r}=pzf(Tt);return{...Tt,...te.build(Dt),types:zt,services:_r,sdkConfig:{isAuthMandatory:Wt,hasStreamingEndpoints:Nt,hasPaginatedEndpoints:ur,hasFileDownloadEndpoints:Ar,platformHeaders:{language:"X-Fern-Language",sdkName:"X-Fern-SDK-Name",sdkVersion:"X-Fern-SDK-Version",userAgent:c!=null&&d!=null?{header:"User-Agent",value:`${d}/${c}`}:void 0}},readmeConfig:Jr}}function huj(e){var i;let t={},r=[],n=e.getTypesReferencedByService();for(let[a,u]of Object.entries(n)){if(u.size===1){let f=u.values().next().value;t[f]===void 0&&(t[f]=[]),(i=t[f])==null||i.push(a);continue}r.push(a)}return{typesReferencedOnlyByService:t,sharedTypes:r}}function yuj(e,t){if(t==null)return e;let r=LQr(e.types,u=>t.hasType(u)),n=Object.fromEntries(Object.entries(r).map(([u,f])=>{let d=[];if(f.userProvidedExamples=f.userProvidedExamples.map(c=>bzf({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:MC.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:LQr(e.errors,u=>t.hasError(u)),services:sy(LQr(e.services,u=>t.hasService(u)),u=>({...u,endpoints:u.endpoints.filter(f=>t.hasEndpoint(f)).map(f=>{var d;return f.autogeneratedExamples=f.autogeneratedExamples.map(c=>({...c,example:$Pu({filteredIr:t,example:c.example})})),f.userSpecifiedExamples=f.userSpecifiedExamples.map(c=>({...c,example:c.example!=null?$Pu({filteredIr:t,example:c.example}):void 0})),f.queryParameters.length>0&&(f.queryParameters=f.queryParameters.filter(c=>t.hasQueryParameter(f.id,c.name.wireValue))),((d=f.requestBody)==null?void 0:d.type)==="inlinedRequestBody"?{...f,requestBody:{...f.requestBody,properties:f.requestBody.properties.filter(c=>t.hasRequestProperty(f.id,c.name.wireValue))}}:f})})),webhookGroups:i,serviceTypeReferenceInfo:vuj(e.serviceTypeReferenceInfo,t)}}function vuj(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 Azf=yu(Tja(),1),Nzf=yu(qja(),1),cwa=require("fs/promises"),zzf=yu($1a(),1);function PFt(e){return typeof e.subpackageId=="string"}function fwe(e){return e.map(t=>t.type==="literal"?t.value:`{${t.value}}`).join("")}function _rn(e){return e.map(t=>t.type==="literal"?t.value:`:${t.value}`).join("")}var JPu="__package__",SNn,ENn,MNn,qvi,Cvi,Avi,Nvi,xNn,TNn,zvi,qNn,CNn,nwa,hrn=class{constructor(t,r){lh(this,CNn);dv(this,"api");dv(this,"context");lh(this,SNn,new Map);lh(this,ENn,new Map);lh(this,MNn,new Map);lh(this,qvi,new Map);lh(this,Cvi,new Map);lh(this,Avi,new Map);lh(this,Nvi,new Map);lh(this,xNn,new Map);lh(this,TNn,new Map);lh(this,zvi,new Map);lh(this,qNn,new Map);this.api=t,this.context=r,[t.rootPackage,...Object.values(t.subpackages)].forEach(n=>{let i=hrn.getSubpackageId(n),a={endpoints:new Map,webSockets:new Map,webhooks:new Map};yc(this,Nvi).set(i,a),n.endpoints.forEach(u=>{var o;a.endpoints.set(u.id,u);let f=hrn.createEndpointId(u,i);yc(this,SNn).set(f,u);let d=[],c=[u.method];((o=u.response)==null?void 0:o.type.type)==="stream"&&c.push("STREAM"),c.forEach(l=>{d.push(`${l} ${fwe(u.path.parts)}`),d.push(`${l} ${_rn(u.path.parts)}`),u.environments.forEach(g=>{d.push(`${l} ${HS(g.baseUrl,fwe(u.path.parts))}`),d.push(`${l} ${HS(g.baseUrl,_rn(u.path.parts))}`);let O=Pzf(g);O!=null&&(d.push(`${l} ${HS(O,fwe(u.path.parts))}`),d.push(`${l} ${HS(O,_rn(u.path.parts))}`))})}),d.forEach(l=>{var g;(g=this.context)==null||g.logger.debug(`Registering endpoint locator: ${l}`),yc(this,xNn).set(l,u)})}),n.websockets.forEach(u=>{a.webSockets.set(u.id,u);let f=hrn.createWebSocketId(u,i);yc(this,ENn).set(f,u);let d=[];["GET","WSS"].forEach(o=>{d.push(`${o} ${fwe(u.path.parts)}`),d.push(`${o} ${_rn(u.path.parts)}`),u.environments.forEach(l=>{d.push(`${o} ${HS(l.baseUrl,fwe(u.path.parts))}`),d.push(`${o} ${HS(l.baseUrl,_rn(u.path.parts))}`);let g=Pzf(l);g!=null&&(d.push(`${o} ${HS(g,fwe(u.path.parts))}`),d.push(`${o} ${HS(g,_rn(u.path.parts))}`))})}),d.forEach(o=>{var l;(l=this.context)==null||l.logger.debug(`Registering websocket locator: ${o}`),yc(this,TNn).set(o,u)})}),n.webhooks.forEach(u=>{a.webhooks.set(u.id,u),yc(this,MNn).set(hrn.createWebhookId(u,i),u)})}),yc(this,SNn).forEach((n,i)=>{yc(this,qvi).set(n,i)}),yc(this,ENn).forEach((n,i)=>{yc(this,Cvi).set(n,i)}),yc(this,MNn).forEach((n,i)=>{yc(this,Avi).set(n,i)}),dO(this,CNn,nwa).call(this,t.rootPackage,[])}static create(t,r){return new hrn(t,r)}static getSubpackageId(t){return PFt(t)?t.subpackageId:JPu}getSubpackageByIdOrLocator(t){if(t!=null)return t===JPu?this.api.rootPackage:this.api.subpackages[t]??yc(this,qNn).get(t)}resolveSubpackage(t){if(t!=null){for(;(t==null?void 0:t.pointsTo)!=null;)t=this.api.subpackages[t.pointsTo];return t}}get endpoints(){return yc(this,SNn)}get webSockets(){return yc(this,ENn)}get webhooks(){return yc(this,MNn)}get endpointsByLocator(){return yc(this,xNn)}get webSocketsByLocator(){return yc(this,TNn)}get webhooksByLocator(){return yc(this,zvi)}get subpackages(){return yc(this,Nvi)}get subpackagesByLocator(){return yc(this,qNn)}getEndpointId(t){return yc(this,qvi).get(t)}getWebSocketId(t){return yc(this,Cvi).get(t)}getWebhookId(t){return yc(this,Avi).get(t)}static createEndpointId(t,r){return VE.EndpointId(t.originalEndpointId??`${r}.${t.id}`)}static createWebSocketId(t,r){return VE.WebSocketId(`${r}.${t.id}`)}static createWebhookId(t,r){return VE.WebhookId(`${r}.${t.id}`)}},kzr=hrn;SNn=new WeakMap,ENn=new WeakMap,MNn=new WeakMap,qvi=new WeakMap,Cvi=new WeakMap,Avi=new WeakMap,Nvi=new WeakMap,xNn=new WeakMap,TNn=new WeakMap,zvi=new WeakMap,qNn=new WeakMap,CNn=new WeakSet,nwa=function(t,r){if(t==null)return;let n=PFt(t)?[...r,t.name]:r,i=n.length===0?[JPu]:n;if([i.join("."),i.join("/"),`${i.join(".")}.yml`].forEach(u=>{var f;(f=this.context)==null||f.logger.debug(`Registering subpackage locator: ${u}`),yc(this,qNn).set(u,t)}),t.pointsTo!=null)return dO(this,CNn,nwa).call(this,this.api.subpackages[t.pointsTo],n);t.endpoints.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering endpoint locator: ${c}`),yc(this,xNn).set(c,u)})}),t.websockets.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering websocket locator: ${c}`),yc(this,TNn).set(c,u)})}),t.webhooks.forEach(u=>{let f=[...n,u.id];[f.join("."),f.join("/")].forEach(c=>{var o;(o=this.context)==null||o.logger.debug(`Registering webhook locator: ${c}`),yc(this,zvi).set(c,u)})}),t.subpackages.forEach(u=>{dO(this,CNn,nwa).call(this,this.api.subpackages[u],n)})};function Pzf(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 ANn=yu(Tja(),1),wzf=yu(qja(),1);function jzf(e){var i;let t=e.split(".")[0];if(t==null)return;let n=(i=/(^\d{1,4})-(\d{1,2})-(\d{1,4})/.exec(t))==null?void 0:i[0];if(n!=null)try{return new Date(n)}catch{}}ANn.default.extend(wzf.default);var buj="Changelog",guj=["summary","index","overview"],yrn=class{markdownToFullSlug;changelogFiles;docsWorkspace;idgen;constructor(t,r,n,i){this.markdownToFullSlug=t,this.changelogFiles=r,this.docsWorkspace=n,this.idgen=i}convert(t){var c,o;if(this.changelogFiles==null||this.changelogFiles.length===0)return;let r=t.title??buj;this.idgen=this.idgen.append("changelog");let n=[],i;for(let l of this.changelogFiles){let g=sWo(l.split("/"));if(g==null)continue;let O=jzf(g);if(O==null){let S=(c=g.split(".")[0])==null?void 0:c.toLowerCase();S!=null&&guj.includes(S)&&(i=l);continue}let j=this.toRelativeFilepath(l);n.push({date:O,pageId:VE.PageId(j),absoluteFilepath:l})}let a=t.parentSlug.apply({fullSlug:i!=null?(o=this.markdownToFullSlug.get(i))==null?void 0:o.split("/"):void 0,skipUrlSlug:!1,urlSlug:t.slug??nR(r)}),u=n.map(l=>{var O;let g=ANn.default.utc(l.date);return{id:this.idgen.append(g.format("YYYY-M-D")).get(),type:"changelogEntry",title:g.format("MMMM D, YYYY"),slug:a.apply({fullSlug:(O=this.markdownToFullSlug.get(l.absoluteFilepath))==null?void 0:O.split("/"),urlSlug:g.format("YYYY/M/D")}).get(),icon:void 0,hidden:void 0,date:l.date.toISOString(),pageId:l.pageId,noindex:void 0}}),f=GPu(u,l=>l.date,"desc"),d=this.groupByYear(f,a);return{id:this.idgen.get(),type:"changelog",title:r,slug:a.get(),icon:t.icon,hidden:t.hidden,children:d,overviewPageId:i!=null?VE.PageId(this.toRelativeFilepath(i)):void 0,noindex:void 0}}groupByYear(t,r){let n=new Map;for(let i of t){let a=ANn.default.utc(i.date).year(),u=n.get(a)??[];u.push(i),n.set(a,u)}return GPu(Array.from(n.entries()).map(([i,a])=>{let u=r.append(i.toString()).get();return{id:this.idgen.append(i.toString()).get(),type:"changelogYear",title:i.toString(),year:i,slug:u,icon:void 0,hidden:void 0,children:this.groupByMonth(a,r)}}),"year","desc")}groupByMonth(t,r){let n=new Map;for(let i of t){let a=ANn.default.utc(i.date).month()+1,u=n.get(a)??[];u.push(i),n.set(a,u)}return GPu(Array.from(n.entries()).map(([i,a])=>{let u=(0,ANn.default)(new Date(0,i-1));return{id:this.idgen.append(u.format("YYYY-M")).get(),type:"changelogMonth",title:u.format("MMMM YYYY"),month:i,slug:r.append(i.toString()).get(),icon:void 0,hidden:void 0,children:a}}),"month","desc")}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}};function GPu(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 HAt=class{id;ids;static init(t){return new HAt(t,new Set([t]))}constructor(t,r){this.id=t,this.ids=r}get(){return VE.NodeId(this.id)}append(t){let r=`${this.id}.${t}`;if(this.ids.has(r)){let n=1;for(;this.ids.has(`${r}-${n}`);)n++;r=`${r}-${n}`}return this.ids.add(r),new HAt(r,this.ids)}};var o6,NNn,zNn,BNn,jFt,brn,eBr,Ivi,tBr,grn,Bvi,awa,Dzf,owa,Szf,uwa,Ezf,Rvi,KPu,Fvi,YPu,Lvi,XPu,Uvi,QPu,Vvi,ZPu,SEr,vrn,iwa=class{constructor(t,r,n,i,a,u,f){lh(this,grn);lh(this,awa);lh(this,owa);lh(this,uwa);lh(this,Rvi);lh(this,Fvi);lh(this,Lvi);lh(this,Uvi);lh(this,Vvi);lh(this,SEr);dv(this,"apiSection");dv(this,"workspace");dv(this,"docsWorkspace");dv(this,"taskContext");dv(this,"markdownFilesToFullSlugs");dv(this,"apiDefinitionId");lh(this,o6,void 0);lh(this,NNn,new Set);lh(this,zNn,new Set);lh(this,BNn,new Set);lh(this,jFt,new Set);lh(this,brn,new Map);lh(this,eBr,[]);lh(this,Ivi,void 0);lh(this,tBr,void 0);dv(this,"disableEndpointPairs");var o;this.apiSection=t,this.workspace=i,this.docsWorkspace=a,this.taskContext=u,this.markdownFilesToFullSlugs=f,this.disableEndpointPairs=((o=a.config.experimental)==null?void 0:o.disableStreamToggle)??!1,this.apiDefinitionId=VE.ApiDefinitionId(r.id),pv(this,o6,kzr.create(r,u));let d=HAt.init(this.apiDefinitionId);pv(this,Ivi,this.apiSection.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(this.apiSection.overviewAbsolutePath)):void 0);let c=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;pv(this,tBr,n.apply({fullSlug:c==null?void 0:c.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??nR(this.apiSection.title)})),this.apiSection.navigation!=null&&pv(this,eBr,dO(this,grn,Bvi).call(this,this.apiSection.navigation,yc(this,o6).api.rootPackage,yc(this,tBr),d)),pv(this,eBr,dO(this,Fvi,YPu).call(this,yc(this,eBr).map(l=>dO(this,Lvi,XPu).call(this,l)),dO(this,Uvi,QPu).call(this,yc(this,o6).api.rootPackage,yc(this,tBr))))}get(){var n;let t=VE.utils.followRedirects(yc(this,eBr)),r=HAt.init(this.apiDefinitionId);return{id:r.get(),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:yc(this,Ivi),paginated:this.apiSection.paginated,slug:yc(this,tBr).get(),icon:this.apiSection.icon,hidden:this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:new yrn(this.markdownFilesToFullSlugs,(n=this.workspace.changelog)==null?void 0:n.files.map(i=>i.absoluteFilepath),this.docsWorkspace,r).convert({parentSlug:yc(this,tBr)}),children:yc(this,eBr),availability:void 0,pointsTo:t,noindex:void 0,playground:dO(this,SEr,vrn).call(this,this.apiSection.playground)}}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=yc(this,o6).endpoints.get(i.endpointId);if(a==null)throw new Error(`Endpoint ${i.endpointId} not found`);let u=`${a.method} ${fwe(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:VE.NodeId(`${this.apiDefinitionId}:${o.endpointId}+${c.endpointId}`),type:"endpointPair",stream:c,nonStream:o};r[d]=l}),r}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}};o6=new WeakMap,NNn=new WeakMap,zNn=new WeakMap,BNn=new WeakMap,jFt=new WeakMap,brn=new WeakMap,eBr=new WeakMap,Ivi=new WeakMap,tBr=new WeakMap,grn=new WeakSet,Bvi=function(t,r,n,i){r=yc(this,o6).resolveSubpackage(r);let a=r!=null?kzr.getSubpackageId(r):void 0;return t.map(u=>A3(u)._visit({link:f=>({id:i.append(`link:${f.url}`).get(),type:"link",title:f.text,icon:f.icon,url:VE.Url(f.url)}),page:f=>{var o;let d=VE.PageId(this.toRelativeFilepath(f.absolutePath)),c=n.apply({fullSlug:(o=this.markdownFilesToFullSlugs.get(f.absolutePath))==null?void 0:o.split("/"),urlSlug:f.slug??nR(f.title)});return{id:i.append(`page:${d}`).get(),type:"page",pageId:d,title:f.title,slug:c.get(),icon:f.icon,hidden:f.hidden,noindex:f.noindex}},package:f=>dO(this,awa,Dzf).call(this,f,n,i),section:f=>dO(this,owa,Szf).call(this,f,n,i),item:({value:f})=>dO(this,uwa,Ezf).call(this,f,a,n,i),endpoint:f=>dO(this,Rvi,KPu).call(this,f,a,n,i)})).filter(RS)},awa=new WeakSet,Dzf=function(t,r,n){let i=t.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,a=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,u=yc(this,o6).getSubpackageByIdOrLocator(t.package);if(u!=null){let f=kzr.getSubpackageId(u),d=n.append(f);yc(this,jFt).has(f)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${f}`),yc(this,jFt).add(f),yc(this,brn).set(d.get(),[f]);let c=t.slug??(PFt(u)?u.urlSlug:this.apiSection.slug??nR(this.apiSection.title)),o=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=dO(this,grn,Bvi).call(this,t.contents,u,o,d);return{id:d.get(),type:"apiPackage",children:l,title:t.title??(PFt(u)?u.displayName??RAt(u.name):this.apiSection.title),slug:o.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}}else{this.taskContext.logger.warn(`Subpackage ${t.package} not found in ${this.apiDefinitionId}, treating it as a section`);let f=t.slug??nR(t.package),d=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:f}),c=dO(this,grn,Bvi).call(this,t.contents,void 0,d,n);return{id:n.append(nR(t.package)).get(),type:"apiPackage",children:c,title:t.title??t.package,slug:d.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}}},owa=new WeakSet,Szf=function(t,r,n){let i=t.overviewAbsolutePath!=null?VE.PageId(this.toRelativeFilepath(t.overviewAbsolutePath)):void 0,a=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,u=n.append(`section:${nR(t.title)}`),f=t.referencedSubpackages.map(l=>{let g=yc(this,o6).getSubpackageByIdOrLocator(l);return g!=null?kzr.getSubpackageId(g):void 0}).filter(l=>(l==null&&this.taskContext.logger.error(`Subpackage ${l} not found in ${this.apiDefinitionId}`),l!=null)).filter(RS);yc(this,brn).set(u.get(),f),f.forEach(l=>{yc(this,jFt).has(l)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${l}`),yc(this,jFt).add(l)});let d=t.slug??nR(t.title),c=r.apply({fullSlug:a==null?void 0:a.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:d}),o=dO(this,grn,Bvi).call(this,t.contents,void 0,c,n);return{id:u.get(),type:"apiPackage",children:o,title:t.title,slug:c.get(),icon:t.icon,hidden:t.hidden,overviewPageId:i,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:dO(this,SEr,vrn).call(this,t.playground)}},uwa=new WeakSet,Ezf=function(t,r,n,i){t=t.trim();let a=yc(this,o6).getSubpackageByIdOrLocator(t);if(a!=null){let u=kzr.getSubpackageId(a),f=i.append(u);yc(this,jFt).has(u)&&this.taskContext.logger.error(`Duplicate subpackage found in the API Reference layout: ${u}`),yc(this,jFt).add(u),yc(this,brn).set(f.get(),[u]);let d=PFt(a)?a.urlSlug:"",c=n.apply({urlSlug:d});return{id:f.get(),type:"apiPackage",children:[],title:PFt(a)?a.displayName??RAt(a.name):this.apiSection.title,slug:c.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}}return dO(this,Rvi,KPu).call(this,{type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,playground:void 0},r,n,i)},Rvi=new WeakSet,KPu=function(t,r,n,i){var d,c,o,l;let a=(r!=null?(d=yc(this,o6).subpackages.get(r))==null?void 0:d.endpoints.get(t.endpoint):void 0)??yc(this,o6).endpointsByLocator.get(t.endpoint);if(a!=null){let g=yc(this,o6).getEndpointId(a);if(g==null)throw new Error(`Expected Endpoint ID for ${a.id}. Got undefined.`);yc(this,NNn).has(g)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${g}`),yc(this,NNn).add(g);let O=t.slug!=null?n.append(t.slug):n.apply(a);return{id:i.append(a.id).get(),type:"endpoint",method:a.method,endpointId:g,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(a.availability),isResponseStream:((c=a.response)==null?void 0:c.type.type)==="stream",title:t.title??a.name??fwe(a.path.parts),slug:O.get(),icon:t.icon,hidden:t.hidden,playground:dO(this,SEr,vrn).call(this,t.playground)}}let u=(r!=null?(o=yc(this,o6).subpackages.get(r))==null?void 0:o.webSockets.get(t.endpoint):void 0)??yc(this,o6).webSocketsByLocator.get(t.endpoint);if(u!=null){let g=yc(this,o6).getWebSocketId(u);if(g==null)throw new Error(`Expected WebSocket ID for ${u.id}. Got undefined.`);return yc(this,zNn).has(g)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${g}`),yc(this,zNn).add(g),{id:i.append(u.id).get(),type:"webSocket",webSocketId:g,title:t.title??u.name??fwe(u.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(u)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(u.availability),playground:dO(this,SEr,vrn).call(this,t.playground)}}let f=(r!=null?(l=yc(this,o6).subpackages.get(r))==null?void 0:l.webhooks.get(t.endpoint):void 0)??yc(this,o6).webhooks.get(VE.WebhookId(t.endpoint));if(f!=null){let g=yc(this,o6).getWebhookId(f);if(g==null)throw new Error(`Expected Webhook ID for ${f.id}. Got undefined.`);return yc(this,BNn).has(g)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${g}`),yc(this,BNn).add(g),{id:i.append(f.id).get(),type:"webhook",webhookId:g,method:f.method,title:t.title??f.name??HS("/",...f.path),slug:(t.slug!=null?n.append(t.slug):n.apply(f)).get(),icon:t.icon,hidden:t.hidden,apiDefinitionId:this.apiDefinitionId,availability:void 0}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)},Fvi=new WeakSet,YPu=function(t,r){return this.mergeEndpointPairs([...t,...r]).filter(n=>n.type==="apiPackage"?n.children.length>0:!0)},Lvi=new WeakSet,XPu=function(t){if(t.type==="apiPackage"){let r=VE.SlugGenerator.init(t.slug),i=(yc(this,brn).get(t.id)??[]).flatMap(f=>dO(this,Vvi,ZPu).call(this,f,r)),a=t.children.map(f=>dO(this,Lvi,XPu).call(this,f)),u=dO(this,Fvi,YPu).call(this,a,i);return{...t,children:u,pointsTo:VE.utils.followRedirects(u)}}return t},Uvi=new WeakSet,QPu=function(t,r){let n=[];return t.endpoints.forEach(i=>{var f;let a=yc(this,o6).getEndpointId(i);if(a==null)throw new Error(`Expected Endpoint ID for ${i.id}. Got undefined.`);if(yc(this,NNn).has(a))return;let u=r.apply(i);n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"endpoint",method:i.method,endpointId:a,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(i.availability),isResponseStream:((f=i.response)==null?void 0:f.type.type)==="stream",title:i.name??fwe(i.path.parts),slug:u.get(),icon:void 0,hidden:void 0,playground:void 0})}),t.websockets.forEach(i=>{let a=yc(this,o6).getWebSocketId(i);if(a==null)throw new Error(`Expected WebSocket ID for ${i.id}. Got undefined.`);yc(this,zNn).has(a)||n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"webSocket",webSocketId:a,title:i.name??fwe(i.path.parts),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:VE.utils.convertAvailability(i.availability),playground:void 0})}),t.webhooks.forEach(i=>{let a=yc(this,o6).getWebhookId(i);if(a==null)throw new Error(`Expected Webhook ID for ${i.id}. Got undefined.`);yc(this,BNn).has(a)||n.push({id:VE.NodeId(`${this.apiDefinitionId}:${a}`),type:"webhook",webhookId:a,method:i.method,title:i.name??RAt(i.id),slug:r.apply(i).get(),icon:void 0,hidden:void 0,apiDefinitionId:this.apiDefinitionId,availability:void 0})}),t.subpackages.forEach(i=>{if(yc(this,jFt).has(i))return;let a=yc(this,o6).getSubpackageByIdOrLocator(i);if(a==null){this.taskContext.logger.error(`Subpackage ${i} not found in ${this.apiDefinitionId}`);return}let u=PFt(a)?r.apply(a):r,f=dO(this,Vvi,ZPu).call(this,i,u);f.length>0&&n.push({id:VE.NodeId(`${this.apiDefinitionId}:${i}`),type:"apiPackage",children:f,title:PFt(a)?a.displayName??RAt(a.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:void 0,overviewPageId:void 0,availability:void 0,apiDefinitionId:this.apiDefinitionId,pointsTo:VE.utils.followRedirects(f),noindex:void 0,playground: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},Vvi=new WeakSet,ZPu=function(t,r){let n=t!=null?yc(this,o6).resolveSubpackage(yc(this,o6).getSubpackageByIdOrLocator(t)):void 0;return n==null?(this.taskContext.logger.error(`Subpackage ${t} not found in ${this.apiDefinitionId}`),[]):dO(this,Uvi,QPu).call(this,n,r)},SEr=new WeakSet,vrn=function(t){if(t)return{environments:t.environments!=null&&t.environments.length>0?t.environments.map(r=>VE.EnvironmentId(r)):void 0,button:t.button!=null&&t.button.href?{href:VE.Url(t.button.href)}:void 0}};function Mzf(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 wFt=yu(tXi(),1);function xzf(e){return e._visit({alias:t=>({type:"alias",value:QT(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:GQ(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>r.typeId),properties:t.properties.map(r=>({description:r.docs??void 0,key:r.name.wireValue,valueType:QT(r.valueType),availability:GQ(r.availability)}))}),union:t=>{let r=t.baseProperties.map(n=>({key:n.name.wireValue,valueType:QT(n.valueType),availability:GQ(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?GQ(n.availability):void 0,additionalProperties:h_.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[i.typeId],properties:r}),singleProperty:i=>({extends:[],properties:[{key:i.name.wireValue,valueType:QT(i.type)},...r]}),noProperties:()=>({extends:[],properties:r}),_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:QT(r.type)}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function QT(e){return e._visit({container:t=>h_.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:QT(r)}),map:({keyType:r,valueType:n})=>({type:"map",keyType:QT(r),valueType:QT(n)}),optional:r=>({type:"optional",itemType:QT(r)}),set:r=>({type:"set",itemType:QT(r)}),literal:r=>h_.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:t.typeId}),primitive:t=>({type:"primitive",value:h_.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>Ouj(t.v2),float:()=>({type:"double"}),double:()=>Puj(t.v2),string:()=>muj(t.v2),long:()=>({type:"long"}),boolean:()=>({type:"boolean"}),dateTime:()=>({type:"datetime"}),date:()=>({type:"date"}),uuid:()=>({type:"uuid"}),base64:()=>({type:"base64"}),bigInteger:()=>({type:"bigInteger"}),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 muj(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",regex:t!=null?t.pattern:void 0,minLength:t!=null?t.minLength:void 0,maxLength:t!=null?t.minLength:void 0,default:e!=null&&e.type==="string"?e.default:void 0}}function Ouj(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t!=null?t.min:void 0,maximum:t!=null?t.max:void 0,default:e!=null&&e.type==="integer"?e.default:void 0}}function Puj(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t!=null?t.min:void 0,maximum:t!=null?t.max:void 0,default:e!=null&&e.type==="double"?e.default:void 0}}function kPu(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?wuj(r,t):[],webhooks:n!=null?juj(n):[],websockets:i!=null?[Duj(i,t)]:[],types:e.types.map(a=>a),subpackages:e.subpackages.map(a=>a),pointsTo:e.navigationConfig!=null?e.navigationConfig.pointsTo:void 0}}function juj(e){return e.map(t=>({description:t.docs??void 0,id:t.name.originalName,path:[],method:t.method,name:t.displayName??Hsi(t.name.originalName),headers:t.headers.map(r=>({description:r.docs??void 0,key:r.name.wireValue,type:QT(r.valueType)})),payload:Nuj(t.payload),examples:t.examples!=null?t.examples.map(r=>({payload:r.payload.jsonExample})):[]}))}function wuj(e,t){var n;let r=[];for(let i of e.endpoints){let a=i.autogeneratedExamples[0],u={availability:GQ(i.availability??e.availability),auth:i.auth,description:i.docs??void 0,method:xuj(i.method),defaultEnvironment:((n=t.environments)==null?void 0:n.defaultEnvironment)!=null?t.environments.defaultEnvironment:void 0,environments:t.environments!=null?Suj({environmentsConfig:t.environments,endpoint:i}):void 0,id:i.name.originalName,originalEndpointId:i.id,name:i.displayName??Hsi(i.name.originalName),path:{pathParameters:[...t.pathParameters,...e.pathParameters,...i.pathParameters].map(f=>({description:f.docs??void 0,key:f.name.originalName,type:QT(f.valueType)})),parts:[...t.basePath!=null?swa(t.basePath):[],...swa(e.basePath),...swa(i.path)]},queryParameters:i.queryParameters.map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:QT(f.valueType),availability:GQ(f.availability)})),headers:[...e.headers,...i.headers].map(f=>({description:f.docs??void 0,key:f.name.wireValue,type:QT(f.valueType),availability:GQ(f.availability)})),request:i.requestBody!=null?Tuj(i.requestBody):void 0,response:i.response!=null?quj(i.response):void 0,errors:void 0,errorsV2:Cuj(i.errors,t),examples:a!=null?i.userSpecifiedExamples.map(f=>Auj({autogeneratedExample:a,userSpecifiedExample:f,irEndpoint:i,ir:t})):[]};r.push(u)}return r}function Duj(e,t){var r;return{auth:e.auth,description:e.docs??void 0,defaultEnvironment:((r=t.environments)==null?void 0:r.defaultEnvironment)!=null?t.environments.defaultEnvironment:void 0,environments:t.environments!=null?Euj({environmentsConfig:t.environments,channel:e}):[],id:e.name.originalName,name:e.displayName??Hsi(e.name.originalName),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:n.name.originalName,type:QT(n.valueType)})),parts:swa(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:QT(n.valueType)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:QT(n.valueType)})),messages:e.messages.map(n=>({type:n.type,displayName:n.displayName,origin:n.origin,body:zuj(n.body),description:n.docs,availability:GQ(n.availability)})),examples:e.examples.map(n=>{var i;return{name:(i=n.name)==null?void 0:i.originalName,description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((a,u)=>(a[u.name.originalName]=u.value.jsonExample,a),{}),queryParameters:n.queryParameters.reduce((a,u)=>(a[u.name.wireValue]=u.value.jsonExample,a),{}),headers:n.headers.reduce((a,u)=>(a[u.name.wireValue]=u.value.jsonExample,a),{}),messages:n.messages.map(a=>({type:a.type,body:a.body.jsonExample}))}})}}function GQ(e){if(e!=null)switch(e.status){case"DEPRECATED":return wFt.FernRegistry.api.v1.register.Availability.Deprecated;case"PRE_RELEASE":return wFt.FernRegistry.api.v1.register.Availability.Beta;case"GENERAL_AVAILABILITY":return wFt.FernRegistry.api.v1.register.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return wFt.FernRegistry.api.v1.register.Availability.Beta;default:Ol(e.status)}}function Suj({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id: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:i.id,baseUrl:a}});default:Ol(r)}}function Euj({environmentsConfig:e,channel:t}){let r=e.environments;switch(r.type){case"singleBaseUrl":return r.environments.map(n=>({id:n.id,baseUrl:Muj(n.url,"wss")}));case"multipleBaseUrls":throw new Error(`Multiple base URLs are not supported for WebSocket "${t.name.originalName}"`);default:Ol(r)}}function Muj(e,t){return e.replace(/^[^:]+/,t)}function xuj(e){return h_.http.HttpMethod._visit(e,{get:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Get,post:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Post,put:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Put,patch:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Patch,delete:()=>wFt.FernRegistry.api.v1.register.HttpMethod.Delete,_other:()=>{throw new Error("Unknown http method: "+e)}})}function swa(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:r.pathParameter},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function Tuj(e){let t=h_.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??cA.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>n.typeId),properties:r.properties.map(n=>({description:n.docs??void 0,key:n.name.wireValue,valueType:QT(n.valueType),availability:GQ(n.availability)}))}}),reference:r=>({type:"json",contentType:r.contentType??cA.APPLICATION_JSON,shape:{type:"reference",value:QT(r.requestBodyType)}}),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:u.key.wireValue,isOptional:u.isOptional}),fileArray:u=>({type:"fileArray",key:u.key.wireValue,isOptional:u.isOptional}),_other:()=>{}});if(a!=null)return{type:"file",value:a}},bodyProperty:i=>({type:"bodyProperty",key:i.name.wireValue,valueType:QT(i.valueType),description:i.docs,availability:GQ(i.availability)}),_other:()=>{}})).filter(RS)}}),bytes:r=>({type:"bytes",description:void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t}:void 0}function quj(e){if(e.body==null)return;let t=h_.http.HttpResponseBody._visit(e.body,{fileDownload:()=>({type:"fileDownload"}),json:r=>({type:"reference",value:QT(r.responseBodyType)}),text:()=>{},streamParameter:()=>{},streaming:r=>{if(r.type==="text")return{type:"streamingText"};if(r.type==="json")return{type:"stream",shape:{type:"reference",value:QT(r.payload)}};if(r.type==="sse")return{type:"stream",shape:{type:"reference",value:QT(r.payload)}}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}});if(t!=null)return{type:t,statusCode:e.statusCode}}function Cuj(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:QT(i.type)},statusCode:i.statusCode,description:i.docs??void 0,examples:i.examples.map(a=>{var u;return{name:(u=a.name)==null?void 0:u.originalName,responseBody:{type:"json",value:a.jsonExample}}})})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let a=[{key:t.errorDiscriminationStrategy.discriminant.wireValue,valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}}}];i.type!=null&&a.push({key:t.errorDiscriminationStrategy.contentProperty.wireValue,valueType:QT(i.type)}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:a},statusCode:i.statusCode,description:i.docs??void 0,name:i.name.name.originalName})}}return r}function Auj({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){var f,d,c;let i=n.headers.map(o=>{let l=o.valueType.type==="container"&&o.valueType.container.type==="literal"?o.valueType.container.literal._visit({boolean:g=>`${g}`,string:g=>g,_other:()=>{}}):void 0;if(l!=null)return{name:o.name,value:{jsonExample:l,shape:h_.ExampleTypeReferenceShape.primitive(h_.ExamplePrimitive.string({original:l}))}}}).filter(RS),a=e.example??t.example,{codeSamples:u}=e;return{name:(f=a.name)==null?void 0:f.originalName,description:a.docs,path:a.url,pathParameters:[...a.rootPathParameters,...a.servicePathParameters,...a.endpointPathParameters].reduce((o,l)=>(o[l.name.originalName]=l.value.jsonExample,o),{}),queryParameters:a.queryParameters.reduce((o,l)=>(o[l.name.wireValue]=l.value.jsonExample,o),{}),headers:[...i,...a.serviceHeaders,...a.endpointHeaders].reduce((o,l)=>(o[l.name.wireValue]=l.value.jsonExample,o),{}),requestBody:(d=a.request)==null?void 0:d.jsonExample,requestBodyV3:(c=r.requestBody)==null?void 0:c._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:o=>{if(a.request==null)return;let l={};if(RO(a.request.jsonExample)){let g=a.request.jsonExample;for(let O of o.properties)O._visit({file:j=>{let S=g[j.key.wireValue];if(j.type==="file")l[j.key.wireValue]={type:"filename",value:typeof S=="string"?S:"<file1>"};else if(j.type==="fileArray"){let x=(Array.isArray(S)?S:[S]).filter(A=>typeof A=="string");l[j.key.wireValue]={type:"filenames",value:x}}},bodyProperty:j=>{l[j.name.wireValue]={type:"json",value:g[j.name.wireValue]}},_other:sCt})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:h_.http.ExampleResponse._visit(a.response,{ok:o=>o._visit({body:l=>l!=null?200:204,stream:l=>l.length>0?200:204,sse:l=>l.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+o.type)}}),error:({error:o})=>{let l=n.errors[o.errorId];if(l==null)throw new Error("Cannot find error "+o.errorId);return l.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),responseBody:a.response._visit({ok:o=>o._visit({body:l=>l==null?void 0:l.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:o=>{var l;return(l=o.body)==null?void 0:l.jsonExample},_other:()=>{}}),responseBodyV3:a.response._visit({ok:o=>o._visit({body:l=>l!=null?{type:"json",value:l.jsonExample}:void 0,stream:l=>({type:"stream",value:l.map(g=>g.jsonExample)}),sse:l=>({type:"sse",value:l.map(({event:g,data:O})=>({event:g,data:O.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+o.type)}}),error:o=>o.body!=null?{type:"json",value:o.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+a.response.type)}}),codeSamples:u==null?void 0:u.map(o=>Dje._visit(o,{language:l=>{var g;return{language:l.language,code:l.code,name:(g=l.name)==null?void 0:g.originalName,description:l.docs??void 0,install:l.install}},sdk:l=>{var g;return{language:l.sdk,code:l.code,name:(g=l.name)==null?void 0:g.originalName,description:l.docs??void 0,install:void 0}},_other:()=>{}})).filter(RS)}}function Nuj(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>t.typeId),properties:e.properties.map(t=>({description:t.docs??void 0,key:t.name.wireValue,valueType:QT(t.valueType),availability:GQ(t.availability)}))}};case"reference":return{type:{type:"reference",value:QT(e.payloadType)}};default:Ol(e)}}function zuj(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>t.typeId),properties:e.properties.map(t=>({description:t.docs??void 0,key:t.name.wireValue,valueType:QT(t.valueType),availability:GQ(t.availability)}))};case"reference":return{type:"reference",value:QT(e.bodyType)};default:Ol(e)}}function Tzf(e,t,r){var i;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 a=((i=n.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath)==null?void 0:i.map(u=>u.originalName).join("."))||"$.body.access_token";return r!=null&&r.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:n.configuration.tokenEndpoint.endpointReference.endpointId,accessTokenLocator:a}}}:{type:"bearerAuth",tokenName:"token"}}default:Ol(n)}}function dwe({ir:e,snippetsConfig:t,playgroundConfig:r}){let n={types:{},subpackages:{},rootPackage:kPu(e.rootPackage,e),auth:Tzf(e.auth,e,r),snippetsConfiguration:t,globalHeaders:e.headers.map(i=>({description:i.docs??void 0,key:i.name.wireValue,type:QT(i.valueType)}))};for(let[i,a]of v3(e.types))n.types[i]={description:a.docs??void 0,name:a.name.name.originalName,shape:xzf(a.shape),availability:GQ(a.availability)};for(let[i,a]of v3(e.subpackages)){let u=a.service!=null?e.services[a.service]:void 0;n.subpackages[i]={subpackageId:i,displayName:u==null?void 0:u.displayName,name:a.name.originalName,description:a.docs??void 0,...kPu(a,e)}}return n}async function e1u({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:a,playgroundConfig:u}){let f=await JQ({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=qZr({token:n.value}),c=dwe({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:e,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 Buj=new orn({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function qzf(e,t,r){return ivi(tvi(dwe({ir:e,snippetsConfig:{},playgroundConfig:r}),t,Buj))}function Czf(e){var r,n,i,a,u,f,d,c,o,l;let t=new Set;return((r=e.logo)==null?void 0:r.dark)!=null&&t.add(e.logo.dark),((n=e.logo)==null?void 0:n.light)!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),((i=e.backgroundImage)==null?void 0:i.dark)!=null&&t.add(e.backgroundImage.dark),((a=e.backgroundImage)==null?void 0:a.light)!=null&&t.add(e.backgroundImage.light),((u=e.metadata)==null?void 0:u["og:image"])!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),((f=e.metadata)==null?void 0:f["og:logo"])!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),((d=e.metadata)==null?void 0:d["twitter:image"])!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),((c=e.typography)==null?void 0:c.bodyFont)!=null&&e.typography.bodyFont.variants.forEach(g=>{t.add(g.absolutePath)}),((o=e.typography)==null?void 0:o.headingsFont)!=null&&e.typography.headingsFont.variants.forEach(g=>{t.add(g.absolutePath)}),((l=e.typography)==null?void 0:l.codeFont)!=null&&e.typography.codeFont.variants.forEach(g=>{t.add(g.absolutePath)}),e.js!=null&&e.js.files.forEach(g=>{t.add(g.absolutePath)}),t}function EEr(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}Azf.default.extend(Nzf.default);var mrn=class{domain;docsWorkspace;fernWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;constructor(t,r,n,i,a,u,f){this.domain=t,this.docsWorkspace=r,this.fernWorkspaces=n,this.taskContext=i,this.editThisPage=a,this.uploadFiles=u,this.registerApi=f}_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(){var d;this._parsedDocsConfig=await jre.parseDocsConfiguration({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig}),this.fernWorkspaces.forEach(c=>{var o;(o=c.changelog)==null||o.files.forEach(l=>{let g=YN(this.docsWorkspace.absoluteFilepath,l.absoluteFilepath);this.parsedDocsConfig.pages[g]=l.contents})}),this.markdownFilesToFullSlugs=this.getMarkdownFilesToFullSlugs(this.parsedDocsConfig.pages);for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=await Y0i({markdown:o,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absolutePathToMdx:this.resolveFilepath(c),context:this.taskContext});for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=await X0i({markdown:o,absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath,absolutePathToMdx:this.resolveFilepath(c),context:this.taskContext});let t=Czf(this.parsedDocsConfig);for(let[c,o]of Object.entries(this.parsedDocsConfig.pages)){let{filepaths:l,markdown:g}=K0i(o,{absolutePathToMdx:this.resolveFilepath(c),absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath});this.parsedDocsConfig.pages[Ws.of(c)]=g;for(let O of l)t.add(O)}let r=Array.from(t).map(c=>({absoluteFilePath:c,relativeFilePath:this.toRelativeFilepath(c)}));(await this.uploadFiles(r)).forEach(c=>{this.collectedFileIds.set(c.absoluteFilePath,c.fileId)});let i=this.getDocsBasePath();for(let[c,o]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Ws.of(c)]=XOu(o,this.collectedFileIds,new Map(Array.from(this.markdownFilesToFullSlugs.entries()).map(([l,g])=>[l,HS(i,g)])),{absolutePathToMdx:this.resolveFilepath(c),absolutePathToFernFolder:this.docsWorkspace.absoluteFilepath},this.taskContext);let a={};Object.entries(this.parsedDocsConfig.pages).forEach(([c,o])=>{a[c]={markdown:o,editThisPageUrl:Iuj(this.editThisPage,c)}});let u=await this.convertDocsConfiguration(),f={};if(((d=this._parsedDocsConfig.experimental)==null?void 0:d.mdxComponents)!=null){let c=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async o=>{let l=w2(this.docsWorkspace.absoluteFilepath,o);(await(0,cwa.stat)(l)).isDirectory()?(await o4r(l,"{js,ts,jsx,tsx}")).forEach(j=>{c.add(j)}):l.match(/\.(js|ts|jsx|tsx)$/)!=null&&c.add(l)})),f=Object.fromEntries(await Promise.all([...c].map(async o=>{let l=this.toRelativeFilepath(o),g=(await(0,cwa.readFile)(o)).toString();return[l,g]})))}return{config:u,pages:a,jsFiles:f}}resolveFilepath(t){if(t!=null)return w2(this.docsWorkspace.absoluteFilepath,t)}toRelativeFilepath(t){if(t!=null)return YN(this.docsWorkspace.absoluteFilepath,t)}getMarkdownFilesToFullSlugs(t){let r=new Map;for(let[n,i]of Object.entries(t)){let u=(0,zzf.default)(i).data.slug;typeof u=="string"&&u.trim().length>0&&r.set(this.resolveFilepath(n),u.trim())}return r}getDocsBasePath(){return new URL(EEr(this.domain)).pathname}async convertDocsConfiguration(){var n,i;let t=await this.convertNavigationConfig();return{title:this.parsedDocsConfig.title,logoHeight:(n=this.parsedDocsConfig.logo)==null?void 0:n.height,logoHref:(i=this.parsedDocsConfig.logo)==null?void 0:i.href,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks,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,defaultLanguage:this.parsedDocsConfig.defaultLanguage,analyticsConfig:this.parsedDocsConfig.analyticsConfig,announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,playground: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 convertNavigationConfig(){let t=VE.SlugGenerator.init(VE.utils.slugjoin(this.getDocsBasePath()));switch(this.parsedDocsConfig.navigation.type){case"versioned":return{versions:await Promise.all(this.parsedDocsConfig.navigation.versions.map(async n=>{let i=t.setVersionSlug(n.slug??nR(n.version)),a=await this.convertUnversionedNavigationConfig({landingPage:n.landingPage,navigationConfig:n.navigation,parentSlug:i});return{version:n.version,config:a,availability:n.availability!=null?Ruj(n.availability):void 0,urlSlugOverride:n.slug}}))};case"untabbed":case"tabbed":return this.convertUnversionedNavigationConfig({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:this.parsedDocsConfig.navigation,parentSlug:t});default:Ol(this.parsedDocsConfig.navigation)}}async convertNavigationItem(t,r){var n,i,a;switch(t.type){case"page":return{type:"page",title:t.title,icon:t.icon,id:this.toRelativeFilepath(t.absolutePath),urlSlugOverride:t.slug,fullSlug:(n=this.markdownFilesToFullSlugs.get(t.absolutePath))==null?void 0:n.split("/"),hidden:t.hidden};case"section":{let u=r.apply({fullSlug:void 0,skipUrlSlug:t.skipUrlSlug,urlSlug:t.slug??nR(t.title)}),f=await Promise.all(t.contents.map(d=>this.convertNavigationItem(d,u)));return{type:"section",title:t.title,items:f,urlSlugOverride:t.slug,collapsed:t.collapsed,icon:t.icon,hidden:t.hidden,skipUrlSlug:t.skipUrlSlug,overviewPageId:this.toRelativeFilepath(t.overviewAbsolutePath)}}case"apiSection":{let u=this.getFernWorkspaceForApiSection(t),f=Mzf(t.snippetsConfiguration),d=await JQ({workspace:u,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}),c=await this.registerApi({ir:d,snippetsConfig:f,playgroundConfig:{oauth:(i=t.playground)==null?void 0:i.oauth}}),o=qzf(d,c,{oauth:(a=t.playground)==null?void 0:a.oauth}),l=new iwa(t,o,r,u,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs);return{type:"apiV2",node:l.get()}}case"link":return{type:"link",title:t.text,url:t.url};case"changelog":{let u=HAt.init(r.get()),f=new yrn(this.markdownFilesToFullSlugs,t.changelog,this.docsWorkspace,u).convert({parentSlug:r,title:t.title,icon:t.icon,hidden:t.hidden,slug:t.slug});return{type:"changelogV3",node:f??{id:u.append("changelog").get(),type:"changelog",title:t.title,slug:r.append(t.slug??nR(t.title)).get(),children:[]}}}default:Ol(t)}}async convertUnversionedNavigationConfig({landingPage:t,navigationConfig:r,parentSlug:n}){var a;let i=t!=null?{id:this.toRelativeFilepath(t.absolutePath),urlSlugOverride:t.slug,fullSlug:(a=this.markdownFilesToFullSlugs.get(t.absolutePath))==null?void 0:a.split("/"),hidden:t.hidden,title:t.title,icon:t.icon}:void 0;switch(r.type){case"untabbed":{let u=await Promise.all(r.items.map(f=>this.convertNavigationItem(f,n)));return{landingPage:i,items:u}}case"tabbed":return{landingPage:i,tabsV2:await this.convertTabbedNavigation(r.items,n)};default:Ol(r)}}async convertTabbedNavigation(t,r){return Promise.all(t.map(async n=>{if(n.child.type==="link")return{type:"link",title:n.title,icon:n.icon,url:n.child.href};if(n.child.type==="changelog"){let i=HAt.init(r.get()),a=new yrn(this.markdownFilesToFullSlugs,n.child.changelog,this.docsWorkspace,i).convert({parentSlug:r,title:n.title,icon:n.icon,hidden:n.hidden,slug:n.slug});return{type:"changelogV3",node:a??{id:i.append("changelog").get(),type:"changelog",title:n.title,slug:r.append(n.slug??nR(n.title)).get(),children:[]}}}if(n.child.type==="layout"){let i=r.apply({skipUrlSlug:n.skipUrlSlug,urlSlug:n.slug??nR(n.title)}),a=await Promise.all(n.child.layout.map(u=>this.convertNavigationItem(u,i)));return{type:"group",title:n.title,icon:n.icon,items:a,urlSlugOverride:n.slug,skipUrlSlug:n.skipUrlSlug,hidden:n.hidden,fullSlug:void 0}}Ol(n.child)}))}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t)}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"})}:{...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==null?void 0:r[t],a=n==null?void 0: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(RS)}}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 qFo(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:r}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function Iuj(e,t){if((e==null?void 0:e.github)==null)return;let{owner:r,repo:n,branch:i="main",host:a="https://github.com"}=e.github;return`${EEr(a)}/${r}/${n}/blob/${i}/fern/${t}`}function Ruj(e){switch(e){case"beta":return nrn.VersionAvailability.Beta;case"deprecated":return nrn.VersionAvailability.Deprecated;case"ga":return nrn.VersionAvailability.GenerallyAvailable;case"stable":return nrn.VersionAvailability.Stable;default:Ol(e)}}var $Hf=yu(Uzf(),1),Hwu=yu(eju(),1),JHf=yu(require("http"),1),nSa=yu(require("path"),1);var s9f=require("events"),Vwa=yu(require("fs"),1),xrn=yu(require("path"),1);var HFf=yu(require("os"),1),$Ff=300,uBr=20,fbi=1e7,JFf=HFf.default.platform();var hhj=JFf==="darwin",tju=JFf==="win32",sBr=hhj||tju,GFf=3e3,KFf=2e4,rju=1250;var EFt;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(EFt||(EFt={}));var Mrn;(function(e){e.CHANGE="change",e.RENAME="rename"})(Mrn||(Mrn={}));var dbi;(function(e){e.CHANGE="change",e.ERROR="error"})(dbi||(dbi={}));var Sm;(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"})(Sm||(Sm={}));var XQ;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(XQ||(XQ={}));var yhj=(e,t=1,r)=>{t=Math.max(1,t);let n=(r==null?void 0:r.leading)??!1,i=(r==null?void 0:r.trailing)??!0,a=Math.max((r==null?void 0:r.maxWait)??1/0,t),u,f,d=0,c=0,o=()=>{let C=Date.now(),U=C-d,Y=C-c,te=U>=t||Y>=a;return[C,te]},l=C=>{if(c=C,!u)return;let U=u;u=void 0,e.apply(void 0,U)},g=()=>{N(0)},O=()=>{!f||(g(),l(Date.now()))},j=C=>{if(c=C,n)return l(C)},S=C=>{if(i&&u)return l(C);u=void 0},x=()=>{f=void 0;let[C,U]=o();return U?S(C):A(C)},A=C=>{let U=C-d,Y=C-c,te=t-U,G=a-Y,$=Math.min(te,G);return N($)},N=C=>{f&&clearTimeout(f),!(C<=0)&&(f=setTimeout(x,C))},z=(...C)=>{let[U,Y]=o(),te=!!f;if(u=C,d=U,(Y||!f)&&N(t),Y)return te?l(U):j(U)};return z.cancel=g,z.flush=O,z},Rwa=yhj;var uju=yu(require("fs"),1),Lwa=yu(require("path"),1);var Ux=yu(require("fs"),1),qW=require("util");var xEr=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},MFt=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var nju=yu(require("process"),1),YFf=nju.default.getuid?!nju.default.getuid():!1,XFf=1e4,Kne=()=>{};var pbi={isChangeErrorOk:e=>{if(!pbi.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!YFf&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!pbi.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(!pbi.isNodeError(e))throw e;if(!pbi.isChangeErrorOk(e))throw e}},B5=pbi;var iju=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=XFf,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()}}}}},QFf=new iju;var TEr=(e,t)=>function(n){return function i(...a){return QFf.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(g=>setTimeout(g,o)).then(()=>i.apply(void 0,a))}throw c};return e.apply(void 0,a).then(f,d)})}},qEr=(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 vhj={attempt:{chmod:xEr((0,qW.promisify)(Ux.default.chmod),B5.onChangeError),chown:xEr((0,qW.promisify)(Ux.default.chown),B5.onChangeError),close:xEr((0,qW.promisify)(Ux.default.close),Kne),fsync:xEr((0,qW.promisify)(Ux.default.fsync),Kne),mkdir:xEr((0,qW.promisify)(Ux.default.mkdir),Kne),realpath:xEr((0,qW.promisify)(Ux.default.realpath),Kne),stat:xEr((0,qW.promisify)(Ux.default.stat),Kne),unlink:xEr((0,qW.promisify)(Ux.default.unlink),Kne),chmodSync:MFt(Ux.default.chmodSync,B5.onChangeError),chownSync:MFt(Ux.default.chownSync,B5.onChangeError),closeSync:MFt(Ux.default.closeSync,Kne),existsSync:MFt(Ux.default.existsSync,Kne),fsyncSync:MFt(Ux.default.fsync,Kne),mkdirSync:MFt(Ux.default.mkdirSync,Kne),realpathSync:MFt(Ux.default.realpathSync,Kne),statSync:MFt(Ux.default.statSync,Kne),unlinkSync:MFt(Ux.default.unlinkSync,Kne)},retry:{close:TEr((0,qW.promisify)(Ux.default.close),B5.isRetriableError),fsync:TEr((0,qW.promisify)(Ux.default.fsync),B5.isRetriableError),open:TEr((0,qW.promisify)(Ux.default.open),B5.isRetriableError),readFile:TEr((0,qW.promisify)(Ux.default.readFile),B5.isRetriableError),rename:TEr((0,qW.promisify)(Ux.default.rename),B5.isRetriableError),stat:TEr((0,qW.promisify)(Ux.default.stat),B5.isRetriableError),write:TEr((0,qW.promisify)(Ux.default.write),B5.isRetriableError),writeFile:TEr((0,qW.promisify)(Ux.default.writeFile),B5.isRetriableError),closeSync:qEr(Ux.default.closeSync,B5.isRetriableError),fsyncSync:qEr(Ux.default.fsyncSync,B5.isRetriableError),openSync:qEr(Ux.default.openSync,B5.isRetriableError),readFileSync:qEr(Ux.default.readFileSync,B5.isRetriableError),renameSync:qEr(Ux.default.renameSync,B5.isRetriableError),statSync:qEr(Ux.default.statSync,B5.isRetriableError),writeSync:qEr(Ux.default.writeSync,B5.isRetriableError),writeFileSync:qEr(Ux.default.writeFileSync,B5.isRetriableError)}},ZFf=vhj;var Fwa=yu(require("fs"),1),_bi=yu(require("path"),1);var kFf={then:e=>{e()}};var aju=()=>{};var oju=()=>{let e=aju,t=aju,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}};oju.wrap=async e=>{let t=oju();return await e(t),t.promise};var e9f=oju;var t9f=e=>Array.isArray(e)?e:[e],r9f=e=>typeof e=="function",n9f=()=>{let{promise:e,resolve:t}=e9f(),r=0,n=()=>{r+=1},i=()=>{r-=1,!r&&t()};return(()=>{n(),queueMicrotask(i)})(),{promise:e,increment:n,decrement:i}};var bhj=(e,t)=>{let r=(t==null?void 0:t.followSymlinks)??!1,n=(t==null?void 0:t.depth)??1/0,i=(t==null?void 0:t.limit)??1/0,a=(t==null?void 0:t.ignore)??[],u=t9f(a).map(zt=>r9f(zt)?zt:_r=>zt.test(_r)),f=zt=>u.some(_r=>_r(zt)),d=(t==null?void 0:t.signal)??{aborted:!1},c=(t==null?void 0:t.onDirents)||(()=>{}),o=[],l=new Set,g={},O=[],j=new Set,S={},x=[],A=new Set,N={},z={},C=new Set,U={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},Y={directories:o,directoriesNames:l,directoriesNamesToPaths:g,files:O,filesNames:j,filesNamesToPaths:S,symlinks:x,symlinksNames:A,symlinksNamesToPaths:N,map:z},{promise:te,increment:G,decrement:$}=n9f(),ee=0,Ve=(zt,_r,Yr,Gt)=>{C.has(_r)||ee>=i||(ee+=1,zt.directories.push(_r),zt.directoriesNames.add(Yr),o.push(_r),l.add(Yr),g.propertyIsEnumerable(Yr)||(g[Yr]=[]),g[Yr].push(_r),C.add(_r),!(Gt>=n)&&(ee>=i||ur(_r,Gt+1)))},$e=(zt,_r,Yr)=>{C.has(_r)||ee>=i||(ee+=1,zt.files.push(_r),zt.filesNames.add(Yr),O.push(_r),j.add(Yr),S.propertyIsEnumerable(Yr)||(S[Yr]=[]),S[Yr].push(_r),C.add(_r))},Dt=(zt,_r,Yr,Gt)=>{C.has(_r)||ee>=i||(ee+=1,zt.symlinks.push(_r),zt.symlinksNames.add(Yr),x.push(_r),A.add(Yr),N.propertyIsEnumerable(Yr)||(N[Yr]=[]),N[Yr].push(_r),C.add(_r),r&&(Gt>=n||ee>=i||Ar(_r,Gt+1)))},Tt=(zt,_r,Yr,Gt,bn)=>{d.aborted||f(_r)||(Gt.isDirectory()?Ve(zt,_r,Yr,bn):Gt.isFile()?$e(zt,_r,Yr):Gt.isSymbolicLink()&&Dt(zt,_r,Yr,bn))},Wt=(zt,_r,Yr,Gt)=>{if(d.aborted)return;let bn=_r===_bi.default.sep?"":_bi.default.sep,An=Yr.name,Ht=`${_r}${bn}${An}`;f(Ht)||(Yr.isDirectory()?Ve(zt,Ht,An,Gt):Yr.isFile()?$e(zt,Ht,An):Yr.isSymbolicLink()&&Dt(zt,Ht,An,Gt))},Nt=(zt,_r,Yr,Gt)=>{for(let bn=0,An=Yr.length;bn<An;bn++)Wt(zt,_r,Yr[bn],Gt)},ur=(zt,_r)=>{d.aborted||_r>n||ee>=i||(G(),Fwa.default.readdir(zt,{withFileTypes:!0},(Yr,Gt)=>{if(Yr||d.aborted||!Gt.length)return $();(c(Gt)||kFf).then(()=>{let An=z[zt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Nt(An,zt,Gt,_r),$()})}))},Ar=async(zt,_r)=>{G(),Fwa.default.realpath(zt,(Yr,Gt)=>{if(Yr||d.aborted)return $();Fwa.default.stat(Gt,async(bn,An)=>{if(bn||d.aborted)return $();let Ht=_bi.default.basename(Gt),er=z[zt]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Tt(er,Gt,Ht,An,_r),$()})})};return(async(zt,_r=1)=>(zt=_bi.default.normalize(zt),C.add(zt),ur(zt,_r),await te,d.aborted?U:Y))(e)},i9f=bhj;var xFt={lang:{debounce:Rwa,attempt:e=>{try{return e()}catch(t){return xFt.lang.castError(t)}},castArray:e=>xFt.lang.isArray(e)?e:[e],castError:e=>xFt.lang.isError(e)?e:xFt.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(xFt.lang.isNaN(e))return xFt.lang.isNaN(t);if(xFt.lang.isPrimitive(e)||xFt.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(Lwa.default.sep).length-1),getRealPath:(e,t)=>{try{return t?uju.default.realpathSync.native(e):uju.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Lwa.default.sep&&t.length-e.length>Lwa.default.sep.length,poll:(e,t=KFf)=>ZFf.retry.stat(t)(e,{bigint:!0}).catch(xFt.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 i9f(e,{depth:r,limit:n,ignore:t,signal:i});return[u.directories,u.files]}}}},W1=xFt;var Uwa=yu(require("path"),1);var sju=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||W1.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=$Ff){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=W1.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===Sm.CHANGE&&f===Sm.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===Sm.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):u===Sm.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??uBr:Math.min(1,this.options.depth??uBr),u=this.options.limit??fbi,[f,d]=await W1.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())!W1.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(Sm.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!sBr&&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(Sm.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Sm.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Uwa.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Sm.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Uwa.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(Sm.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Sm.ADD?this.onTargetAdd(n):r===Sm.ADD_DIR?this.onTargetAddDir(n):r===Sm.CHANGE?this.onTargetChange(n):r===Sm.UNLINK?this.onTargetUnlink(n):r===Sm.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=Mrn.CHANGE,r){if(this.watcher.isClosed())return;let n=Uwa.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){tju&&t.code==="EPERM"?this.onWatcherChange(Mrn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(dbi.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(dbi.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(Mrn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&sBr&&this.options.native!==!1?this.options.depth??uBr:Math.min(1,this.options.depth??uBr),n=this.options.limit??fbi,[i,a]=await W1.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(Mrn.CHANGE,f,t)}))}}},a9f=sju;var QQ={interval:100,intervalId:void 0,fns:new Map,init:()=>{QQ.intervalId||(QQ.intervalId=setInterval(QQ.resolve,QQ.interval))},reset:()=>{!QQ.intervalId||(clearInterval(QQ.intervalId),delete QQ.intervalId)},add:(e,t)=>{QQ.fns.set(e,Date.now()+t),QQ.init()},remove:e=>{QQ.fns.delete(e)},resolve:()=>{if(!QQ.fns.size)return QQ.reset();let e=Date.now();for(let[t,r]of QQ.fns)r>=e||(QQ.remove(t),t())}},hbi=QQ;var TFt=class{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=rju){let{ino:n,targetPath:i,events:a,locks:u}=t,f=()=>{let l=this._watcher._poller.paths.find(n||-1,g=>g!==i);if(l&&l!==i){if(W1.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),hbi.remove(c)},c=()=>{d(),f()};hbi.add(c,r);let o=()=>{let l=u.unlink.get(n);if(!l)return;d();let g=l();i===g?a.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(a.change,i):this._watcher.event(a.rename,g,i)};u.add.set(n,o),o()}getLockUnlink(t,r=rju){var l;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),hbi.remove(c)},c=()=>{d(),f()};hbi.add(c,r);let o=()=>(d(),i);u.unlink.set(n,o),(l=u.add.get(n))==null||l()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Sm.ADD,EFt.FILE);return this.getLockAdd({ino:n,targetPath:t,events:TFt.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Sm.ADD_DIR,EFt.DIR);return this.getLockAdd({ino:n,targetPath:t,events:TFt.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Sm.UNLINK,EFt.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:TFt.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Sm.UNLINK_DIR,EFt.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:TFt.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}}};TFt.DIR_EVENTS={add:Sm.ADD_DIR,rename:Sm.RENAME_DIR,unlink:Sm.UNLINK_DIR};TFt.FILE_EVENTS={add:Sm.ADD,change:Sm.CHANGE,rename:Sm.RENAME,unlink:Sm.UNLINK};var o9f=TFt;var cju=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(W1.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(W1.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(W1.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(W1.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return W1.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);W1.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},lju=cju;var fju=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}},u9f=fju;var dju=class{constructor(){this.inos={},this.paths=new lju,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 W1.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new u9f(n)}reset(){this.inos={},this.paths=new lju,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,Sm.ADD,i),[Sm.ADD];if(i.isDirectory())return this.updateIno(t,Sm.ADD_DIR,i),[Sm.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Sm.UNLINK,n),[Sm.UNLINK];if(n.isDirectory())return this.updateIno(t,Sm.UNLINK_DIR,n),[Sm.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Sm.CHANGE,i),[Sm.CHANGE]);if(i.isDirectory())return this.updateIno(t,Sm.UNLINK,n),this.updateIno(t,Sm.ADD_DIR,i),[Sm.UNLINK,Sm.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Sm.UNLINK_DIR,n),this.updateIno(t,Sm.ADD,i),[Sm.UNLINK_DIR,Sm.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Sm.UNLINK_DIR,n),this.updateIno(t,Sm.ADD_DIR,i),[Sm.UNLINK_DIR,Sm.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=n.isFile()?EFt.FILE:EFt.DIR;i[t]=[n.ino,a]}updateStats(t,r){var n;if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=((n=this.stats.get(t))==null?void 0:n.ino)||-1;this.paths.delete(i,t),this.stats.delete(t)}}},pju=dju;var ybi=class extends s9f.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(XQ.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(XQ.CLOSE,i)),this._readyWait=new Promise(i=>this.on(XQ.READY,i)),this._locker=new o9f(this),this._roots=new Set,this._poller=new pju,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&&(W1.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(XQ.CLOSE))}error(t){if(this.isClosed())return!1;let r=W1.lang.castError(t);return this.emit(XQ.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(XQ.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(XQ.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&!!W1.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&!!W1.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)!W1.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 a9f(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=W1.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){let a=this._watchers[t];if(a!=null&&a.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=xrn.default.dirname(t);for(let f=1;f<1/0;f++){let d=this._watchers[u];if(d!=null&&d.find(o=>(f===1||o.options.recursive&&f<=(o.options.depth??uBr))&&o.handler===n&&(!o.filePath||o.filePath===i)&&o.options.ignore===r.ignore&&!!o.options.native==!!r.native&&(!r.recursive||o.options.recursive&&sBr&&o.options.native!==!1)))return!0;if(!sBr)break;let c=xrn.default.dirname(t);if(u===c)break;u=c}return!1}async watchDirectories(t,r,n,i,a){if(this.isClosed())return;t=W1.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||sBr&&r.native!==!1?r:{...r,recursive:!1},o={watcher:Vwa.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=xrn.default.dirname(f),S=f;await this.watchDirectories([j],O,n,S,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||sBr&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,a));{r={...r,recursive:!0};let u=r.depth??uBr,f=r.limit??fbi,[d]=await W1.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=W1.fs.getDepth(t);for(let l of d){let g=W1.fs.getDepth(l),O=Math.max(0,u-(g-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 ybi(a),f=()=>{this._subwatchers.add(i),this.on(XQ.CLOSE,d),u.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(i),this.removeListener(XQ.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=xrn.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,a=new pju,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 W1.lang.noop;if(this.pollerExists(t,r))return W1.lang.noop;let i={...r,interval:r.pollingInterval??GFf},a={targetPath:t,options:r},u=()=>{this._pollers.add(a),this.on(XQ.CLOSE,f),Vwa.default.watchFile(t,i,n)},f=()=>{this._pollers.delete(a),this.removeListener(XQ.CLOSE,f),Vwa.default.unwatchFile(t,n)};return W1.lang.attempt(u),()=>W1.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=W1.lang.uniq(t).sort(),t.every((a,u)=>t.every((f,d)=>d===u||!W1.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=xrn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await W1.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=xrn.default.dirname(t),u=await W1.fs.poll(a,r.pollingTimeout);return u!=null&&u.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=W1.lang.noop){if(W1.lang.isFunction(t))return this.watch([],{},t);if(W1.lang.isUndefined(t))return this.watch([],r,n);if(W1.lang.isFunction(r))return this.watch(t,{},r);if(W1.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=W1.lang.castArray(t);i.forEach(a=>this._roots.add(a)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==W1.lang.noop&&this.on(XQ.ALL,n),r.readdirMap=void 0,this.ready())}},c9f=ybi;var Myj=yu(p9f(),1),xyj=yu(wju(),1),Tyj=yu(Dju(),1),qyj=yu(Cju(),1),Nju=yu(lLf(),1);var IHf=yu(RDa(),1),RHf=require("fs"),HEr=require("fs/promises"),tSa=require("os"),FHf=yu(require("path"),1),LHf=require("stream/promises"),UHf=yu(Jte(),1),VHf=yu(BHf(),1),Ubj="etag",Uwu="preview",Vbj="bundle",Vwu=".fern";function Wbj(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu))}function rSa(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu),Ws.of(Vbj))}function Hbj(){return Tf(I_.of((0,tSa.homedir)()),Ws.of(Vwu),Ws.of(Uwu),Ws.of(Ubj))}async function WHf({bucketUrl:e,logger:t,preferCached:r}){var A,N,z,C,U,Y,te,G;t.debug("Setting up docs preview bundle...");let i=await(await fetch(e)).text(),u=await new VHf.default.Parser().parseStringPromise(i),f=(C=(z=(N=(A=u==null?void 0:u.ListBucketResult)==null?void 0:A.Contents)==null?void 0:N[0])==null?void 0:z.ETag)==null?void 0:C[0],d=(G=(te=(Y=(U=u==null?void 0:u.ListBucketResult)==null?void 0:U.Contents)==null?void 0:Y[0])==null?void 0:te.Key)==null?void 0:G[0],c=Hbj();if(r){let $=await Vh(c),ee;if($&&(t.debug("Reading existing ETag"),ee=(await(0,HEr.readFile)(c)).toString()),ee!=null&&ee===f)return t.debug("ETag matches. Using already downloaded bundle"),{type:"success"};t.debug("ETag is different. Downloading latest preview bundle")}let o=await UHf.default.dir({prefix:"fern"}),l=I_.of(o.path);t.debug(`Created tmp directory ${l}`);let g=await fetch(`${FHf.default.join(e,d)}`),O=Tf(l,Ws.of("output.zip")),j=g.body;if(j==null)return{type:"failure"};await(0,LHf.pipeline)(j,(0,RHf.createWriteStream)(O)),t.debug(`Wrote output.zip to ${O}`);let S=Wbj();await Vh(S)&&await(0,HEr.rm)(S,{recursive:!0}),await(0,HEr.mkdir)(S,{recursive:!0}),t.debug(`rm -rf ${S}`);let x=rSa();return await(0,HEr.mkdir)(x,{recursive:!0}),await(0,IHf.default)(O,x),await(0,HEr.writeFile)(c,f),t.debug(`Downloaded bundle to ${x}`),{type:"success"}}async function HHf({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 g=>await g.toFernWorkspace({context:r},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),u=new Wwu(r),f={},c=await new mrn(e,n,a,r,void 0,async g=>g.map(O=>{let j=Wkr();return f[j]={type:"url",url:`/_local${O.absoluteFilePath}`},{absoluteFilePath:O.absoluteFilePath,relativeFilePath:O.relativeFilePath,fileId:j}}),async g=>u.addReferencedAPI(g)).resolve(),o=cPu({writeShape:c,files:{}}),l=fPu({dbShape:o.config});return{apis:u.getAPIsForDefinition(),config:l,files:{},filesV2:f,pages:o.pages,search:{type:"legacyMultiAlgoliaIndex"}}}var Wwu=class{context;apis={};constructor(t){this.context=t}addReferencedAPI({ir:t,snippetsConfig:r,playgroundConfig:n}){try{let i=Wkr(),a=dwe({ir:t,snippetsConfig:r,playgroundConfig:n}),u=tvi(a,i,new orn({snippetsConfigWithSdkId:{},snippetsBySdkId:{},snippetTemplatesByEndpoint:{},snippetTemplatesByEndpointId:{},snippetsBySdkIdAndEndpointId:{}})),f=ivi(u);return this.apis[i]=f,i}catch(i){let a=i;throw this.context.logger.error(`Failed to read referenced API: ${a==null?void 0:a.message}`),a.stack!=null&&this.context.logger.error(a==null?void 0:a.stack),i}}getAPIsForDefinition(){return this.apis}};var $bj={pages:{},apis:{},files:{},filesV2:{},config:{navigation:{items:[]}},search:{type:"legacyMultiAlgoliaIndex"}};async function $wu({initialProject:e,reloadProject:t,validateProject:r,context:n,port:i,bundlePath:a}){var z,C;if(a!=null)n.logger.info(`Using bundle from path: ${a}`);else try{let U="https://prod-local-preview-bundle2.s3.amazonaws.com/";if(U==null)throw new Error("Failed to connect to the docs preview server. Please contact support@buildwithfern.com");await WHf({bucketUrl:U,logger:n.logger,preferCached:!0})}catch{let Y=rSa();if(await Vh(Y))n.logger.warn("Failed to download latest docs application. Falling back to existing bundle.");else{n.logger.warn("Failed to download docs application. Please reach out to support@buildwithfern.com.");return}}let u=Hg(e.config._absolutePath),f=(0,Hwu.default)(),d=JHf.default.createServer(f),c=new Nju.default({server:d}),o=new Set;function l(U){for(let Y of o)Y.send(JSON.stringify(U))}c.on("connection",function(Y){o.add(Y),Y.on("close",function(){o.delete(Y)})}),f.use((0,$Hf.default)());let g=new URL(EEr(((C=(z=e.docsWorkspaces)==null?void 0:z.config.instances[0])==null?void 0:C.url)??`localhost:${i}`)),O=e,j,S=async()=>{n.logger.info("Reloading docs...");let U=Date.now();try{O=await t(),n.logger.info("Validating docs..."),await r(O);let Y=await HHf({domain:g.host,project:O,context:n});return n.logger.info(`Reload completed in ${Date.now()-U}ms`),Y}catch{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."),j}};j=await S();let x=O.apiWorkspaces.flatMap(U=>U.getAbsoluteFilepaths()),A=a?I_.of(nSa.default.resolve(a)):rSa();new c9f([u,...x],{recursive:!0,ignoreInitial:!0,debounce:1e3,renameDetection:!0}).on("all",async(U,Y,te)=>{n.logger.info(cl.dim(`[${U}] ${Y}`)),l({version:1,type:"startReload"});let G=await S();G!=null&&(j=G),l({version:1,type:"finishReload"})}),f.post("/v2/registry/docs/load-with-url",async(U,Y)=>{var te;try{let G=j??$bj,$={baseUrl:{domain:g.host,basePath:g.pathname},definition:G,lightModeEnabled:((te=G.config.colorsV3)==null?void 0:te.type)!=="dark"};Y.send($)}catch(G){n.logger.error("Error loading docs",G.message),Y.status(500).send()}}),f.get(/^\/_local\/(.*)/,(U,Y)=>Y.sendFile(`/${U.params[0]}`)),f.get("/",(U,Y,te)=>U.headers.upgrade==="websocket"?c.handleUpgrade(U,U.socket,Buffer.alloc(0),G=>{c.emit("connection",G,U)}):te()),f.use("/_next",Hwu.default.static(nSa.default.join(A,"/_next"))),f.use("*",async(U,Y)=>Y.sendFile(nSa.default.join(A,"/[[...slug]].html"))),f.listen(i),n.logger.info(`Running server on http://localhost:${i}`),await new Promise(()=>{})}var zW={RequestReference:"requestReference",InlinedRequestProperty:"inlinedRequestProperty",Response:"response",StreamingResponse:"streamingResponse"};function zC(e,t){return async r=>{var n;r!=null&&await((n=e.docs)==null?void 0:n.call(e,r,[...t,"docs"]))}}async function nqe({example:e,visitor:t,nodePath:r}){var n;if(typeof e=="string")e.startsWith(_Bt)&&await((n=t.exampleTypeReference)==null?void 0:n.call(t,e,r));else if(RO(e))for(let i of Object.values(e))await nqe({example:i,visitor:t,nodePath:r});else if(Array.isArray(e))for(let i of e)await nqe({example:i,visitor:t,nodePath:r})}function QAt(e){return async(t,r,{_default:n,validation:i,location:a}={})=>{var u;await((u=e.typeReference)==null?void 0:u.call(e,{typeReference:t,_default:n,validation:i,location:a,nodePath:r},r))}}async function GHf({service:e,visitor:t,nodePath:r}){var n;await((n=t.httpService)==null?void 0:n.call(t,e,r)),await Aw(e,{url:async i=>{var a;await((a=t.serviceBaseUrl)==null?void 0:a.call(t,i,[...r,"url"]))},"base-path":gf,"display-name":gf,availability:gf,headers:async i=>{await KHf({headers:i,visitor:t,nodePath:[...r,"headers"]})},audiences:gf,auth:gf,"path-parameters":async i=>{await iSa({pathParameters:i,visitor:t,nodePath:[...r,"path-parameters"]})},endpoints:async i=>{for(let[a,u]of Object.entries(i)){let f=[...r,"endpoints",a];await Jbj({endpointId:a,endpoint:u,service:e,visitor:t,nodePathForEndpoint:f})}},idempotent:gf,transport:gf,source:gf})}async function Jbj({endpointId:e,endpoint:t,service:r,visitor:n,nodePathForEndpoint:i}){var u;let a=QAt(n);await((u=n.httpEndpoint)==null?void 0:u.call(n,{endpointId:e,endpoint:t,service:r},i)),await Aw(t,{docs:zC(n,i),"display-name":gf,availability:gf,path:gf,idempotent:gf,url:async f=>{var d;await((d=n.endpointBaseUrl)==null?void 0:d.call(n,{baseUrl:f,service:r},[...i,"url"]))},"path-parameters":async f=>{await iSa({pathParameters:f,visitor:n,nodePath:[...i,"path-parameters"]})},request:async f=>{if(f==null)return;let d=[...i,"request"];if(typeof f=="string"){await a(f,d,{location:"requestReference"});return}await Aw(f,{name:gf,"query-parameters":async c=>{var o;if(c!=null)for(let[l,g]of Object.entries(c)){let O=[...d,"query-parameters",l];await((o=n.queryParameter)==null?void 0:o.call(n,{queryParameterKey:l,queryParameter:g},O)),typeof g=="string"?await a(g,O):await Aw(g,{name:gf,docs:zC(n,O),availability:gf,type:async j=>{await a(j,[...O,"type"],{_default:g.default,validation:g.validation})},"allow-multiple":gf,audiences:gf,encoding:gf,default:gf,validation:gf})}},"content-type":gf,headers:async c=>{await KHf({headers:c,visitor:n,nodePath:[...d,"headers"]})},body:async c=>{var l;if(c==null)return;let o=[...d,"body"];typeof c=="string"?await a(c,o,{location:"requestReference"}):m7(c)?(await((l=n.typeDeclaration)==null?void 0:l.call(n,{typeName:{isInlined:!0,location:"inlinedRequest"},declaration:c},o)),await Aw(c,{extends:async g=>{var j;if(g==null)return;let O=typeof g=="string"?[g]:g;for(let S of O){let x=[...o,"extends",S];await((j=n.extension)==null?void 0:j.call(n,S,x)),await a(S,x)}},properties:async g=>{if(g!=null)for(let[O,j]of Object.entries(g)){let S=[...o,"properties",O];typeof j=="string"?await a(j,S,{location:zW.InlinedRequestProperty}):await Aw(j,{name:gf,docs:zC(n,S),availability:gf,type:async x=>{await a(x,[...S,"type"],{location:zW.InlinedRequestProperty,_default:j.default,validation:j.validation})},audiences:gf,encoding:gf,default:gf,validation:gf})}},["extra-properties"]:gf})):(await zC(n,o)(c.docs),await a(c.type,o))}})},audiences:gf,method:gf,auth:gf,"stream-condition":async f=>{var d;await((d=n.streamCondition)==null?void 0:d.call(n,{streamCondition:f,endpoint:t},[...i,"stream-condition"]))},"response-stream":async f=>{f!=null&&(typeof f=="string"?await a(f,[...i,"response-stream"],{location:zW.StreamingResponse}):await a(f.type,[...i,"response-stream"],{location:zW.StreamingResponse}))},response:async f=>{if(f==null)return;let d=[...i,"response"];typeof f=="string"?await a(f,d,{location:zW.Response}):await Aw(f,{docs:zC(n,d),type:async c=>{await a(c,[...d,"type"],{location:zW.Response})},property:gf,"status-code":gf})},errors:async f=>{var d;if(f!=null)for(let c of f){let o=[...i,"errors",typeof c=="string"?c:c.error];typeof c=="string"?await((d=n.errorReference)==null?void 0:d.call(n,c,o)):await Aw(c,{docs:zC(n,o),error:async l=>{var g;await((g=n.errorReference)==null?void 0:g.call(n,l,[...o,"error"]))}})}},examples:async f=>{if(f!=null)for(let[d,c]of f.entries())await Gbj({nodePathForExample:[...i,{key:"examples",arrayIndex:d}],visitor:n,service:r,endpoint:t,example:c})},pagination:gf})}async function Gbj({nodePathForExample:e,visitor:t,service:r,endpoint:n,example:i}){var o,l,g,O,j,S,x;if(i.headers==null&&i["path-parameters"]==null&&i["query-parameters"]==null&&i.request==null&&i.response==null&&i["code-samples"]!=null)return;await((o=t.exampleHttpEndpointCall)==null?void 0:o.call(t,{service:r,endpoint:n,example:i},e));let a=[...e,"headers"];if(await((l=t.exampleHeaders)==null?void 0:l.call(t,{service:r,endpoint:n,examples:i.headers},a)),i.headers!=null)for(let A of Object.values(i.headers))await nqe({example:A,visitor:t,nodePath:a});let u=[...e,"path-parameters"];if(await((g=t.examplePathParameters)==null?void 0:g.call(t,{service:r,endpoint:n,examples:i["path-parameters"]},u)),i["path-parameters"]!=null)for(let A of Object.values(i["path-parameters"]))await nqe({example:A,visitor:t,nodePath:u});let f=[...e,"query-parameters"];if(await((O=t.exampleQueryParameters)==null?void 0:O.call(t,{service:r,endpoint:n,examples:i["query-parameters"]},f)),i["query-parameters"]!=null)for(let A of Object.values(i["query-parameters"]))await nqe({example:A,visitor:t,nodePath:f});let d=[...e,"request"];await((j=t.exampleRequest)==null?void 0:j.call(t,{service:r,endpoint:n,example:i.request},d)),i.request!=null&&await nqe({example:i.request,visitor:t,nodePath:d});let c=[...e,"response"];if(await((S=t.exampleResponse)==null?void 0:S.call(t,{service:r,endpoint:n,example:i.response},c)),i.response!=null&&await wZr(n,i.response,{body:async A=>{var N;A.body!=null&&await nqe({example:A.body,visitor:t,nodePath:c}),A.error!=null&&await((N=t.errorReference)==null?void 0:N.call(t,A.error,[...c,"error"]))},stream:async A=>{for(let N of A.stream)await nqe({example:N,visitor:t,nodePath:c})},events:async A=>{for(let{data:N}of A.stream)await nqe({example:N,visitor:t,nodePath:c})}}),i["code-samples"]!=null)for(let[A,N]of i["code-samples"].entries())await((x=t.exampleCodeSample)==null?void 0:x.call(t,{service:r,endpoint:n,example:i,sample:N},[...e,{key:"code-samples",arrayIndex:A}]))}async function iSa({pathParameters:e,visitor:t,nodePath:r}){var i,a;if(e==null)return;let n=QAt(t);for(let[u,f]of Object.entries(e)){let d=[...r,u];await((i=t.pathParameter)==null?void 0:i.call(t,{pathParameterKey:u,pathParameter:f},d)),F2n(f)?typeof f=="string"?await((a=t.variableReference)==null?void 0:a.call(t,f,d)):await Aw(f,{docs:zC(t,d),variable:async c=>{var o;return await((o=t.variableReference)==null?void 0:o.call(t,c,[...d,"variable"]))},availability:gf}):typeof f=="string"?await n(f,d):await Aw(f,{docs:zC(t,d),type:async c=>{await n(c,[...d,"type"],{_default:f.default,validation:f.validation})},availability:gf,encoding:gf,default:gf,validation:gf})}}async function KHf({headers:e,visitor:t,nodePath:r}){var i;if(e==null)return;let n=QAt(t);for(let[a,u]of Object.entries(e)){let f=[...r,a];await((i=t.header)==null?void 0:i.call(t,{headerKey:a,header:u},f)),typeof u=="string"?await n(u,f):await Aw(u,{name:gf,availability:gf,type:async d=>{await n(d,f,{_default:u.default,validation:u.validation})},docs:zC(t,f),audiences:gf,encoding:gf,env:gf,default:gf,validation:gf})}}async function YHf({typeDeclarations:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e)){let u=[...r,i];await((n=t.typeName)==null?void 0:n.call(t,i,u)),await Jwu({typeName:i,declaration:a,visitor:t,nodePathForType:u})}}async function Jwu({typeName:e,declaration:t,visitor:r,nodePathForType:n}){var u;let i=QAt(r);await((u=r.typeDeclaration)==null?void 0:u.call(r,{typeName:{isInlined:!1,name:e},declaration:t,nodePath:n},n));let a=async f=>{var d;if(f!=null)for(let[c,o]of f.entries()){let l=[...n,{key:"examples",arrayIndex:c}];await((d=r.exampleType)==null?void 0:d.call(r,{typeName:e,typeDeclaration:t,example:o},l)),await nqe({example:o.value,nodePath:l,visitor:r})}};await y5(t,{alias:async f=>{typeof f=="string"?await i(f,n):await Aw(f,{type:async d=>{await i(d,[...n,"type"])},docs:zC(r,n),availability:gf,audiences:gf,examples:a,validation:gf,encoding:gf,source:gf})},object:async f=>{await Aw(f,{docs:zC(r,n),extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...n,"extends",l];await((o=r.extension)==null?void 0:o.call(r,l,g)),await i(l,g)}},extensions:gf,properties:async d=>{if(d!=null)for(let[c,o]of Object.entries(d)){let l=[...n,"properties",c];typeof o=="string"?await i(o,l):await Aw(o,{name:gf,docs:zC(r,l),availability:gf,type:async g=>{await i(g,[...l,"type"],{_default:o.default,validation:o.validation})},audiences:gf,encoding:gf,default:gf,validation:gf})}},["extra-properties"]:gf,availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},discriminatedUnion:async f=>{await Aw(f,{docs:zC(r,n),discriminant:gf,extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...n,"extends",l];await((o=r.extension)==null?void 0:o.call(r,l,g)),await i(l,g)}},union:async d=>{for(let[c,o]of Object.entries(d)){let l=[...n,"union",c];typeof o=="string"?await i(o,l):await Aw(o,{docs:zC(r,l),name:gf,key:gf,type:async g=>{typeof g=="string"&&await i(g,[...n,"type"])},["display-name"]:gf,availability:gf})}},"base-properties":gf,availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},undiscriminatedUnion:async f=>{await Aw(f,{docs:zC(r,n),discriminated:gf,union:async d=>{for(let[c,o]of d.entries()){let l=[...n,`union[${c}]`];typeof o!="string"&&await Aw(o,{docs:zC(r,l),type:async g=>{await i(g,[...n,"type"])}})}},availability:gf,audiences:gf,encoding:gf,source:gf,examples:a})},enum:async f=>{await Aw(f,{docs:zC(r,n),enum:async d=>{for(let c of d){let o=[...n,typeof c=="string"?c:c.name??c.value];typeof c!="string"&&await Aw(c,{docs:zC(r,o),name:gf,value:gf,casing:gf})}},availability:gf,audiences:gf,default:gf,encoding:gf,source:gf,examples:a})}})}async function XHf({errorDeclarations:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e)){let u=[...r,i];await((n=t.errorDeclaration)==null?void 0:n.call(t,{errorName:i,declaration:a},u)),await Kbj({errorName:i,declaration:a,visitor:t,nodePathForError:u})}}async function Kbj({errorName:e,declaration:t,visitor:r,nodePathForError:n}){let i=QAt(r);typeof t=="string"?await i(t,n):await Aw(t,{docs:zC(r,n),"status-code":gf,type:async a=>{if(a==null)return;let u=[...n,"type"];typeof a=="string"?await i(a,u):await Jwu({typeName:e,declaration:a,visitor:r,nodePathForType:u})},examples:async a=>{var u;if(a!=null)for(let f of a){let d=[...n,"type"];await((u=r.exampleError)==null?void 0:u.call(r,{errorName:e,declaration:t,example:f},d))}}})}async function QHf({imports:e,visitor:t,nodePath:r}){var n;if(e!=null)for(let[i,a]of Object.entries(e))await((n=t.import)==null?void 0:n.call(t,{importPath:a,importedAs:i},[...r,i]))}async function ZHf({webhook:e,visitor:t,nodePathForWebhook:r}){let n=QAt(t);await Aw(e,{"display-name":gf,method:gf,examples:gf,headers:async i=>{await Ybj({headers:i,visitor:t,nodePath:[...r,"headers"]})},payload:async i=>{var f;let a=[...r,"payload"];if(typeof i=="string"){await n(i,a,{location:"requestReference"});return}if(Xbj(i)){await n(i.type,[...a,"type"],{location:"requestReference"});return}let u=[...a];await((f=t.typeDeclaration)==null?void 0:f.call(t,{typeName:{isInlined:!0,location:"inlinedRequest"},declaration:i},u)),await Aw(i,{name:gf,extends:async d=>{var o;if(d==null)return;let c=typeof d=="string"?[d]:d;for(let l of c){let g=[...u,"extends",l];await((o=t.extension)==null?void 0:o.call(t,l,g)),await n(l,g)}},properties:async d=>{if(d!=null)for(let[c,o]of Object.entries(d)){let l=[...u,"properties",c];typeof o=="string"?await n(o,l,{location:zW.InlinedRequestProperty}):await Aw(o,{name:gf,docs:zC(t,l),availability:gf,type:async g=>{await n(g,[...l,"type"],{_default:o.default,validation:o.validation,location:zW.InlinedRequestProperty})},audiences:gf,encoding:gf,default:gf,validation:gf})}}})},audiences:gf,availability:gf,docs:zC(t,r)})}async function Ybj({headers:e,visitor:t,nodePath:r}){var i;if(e==null)return;let n=QAt(t);for(let[a,u]of Object.entries(e)){let f=[...r,a];await((i=t.header)==null?void 0:i.call(t,{headerKey:a,header:u},f)),typeof u=="string"?await n(u,f):await Aw(u,{name:gf,availability:gf,type:async d=>{await n(d,f,{_default:u.default,validation:u.validation})},docs:zC(t,f),audiences:gf,encoding:gf,env:gf,default:gf,validation:gf})}}function Xbj(e){return e.type!=null}async function BW(e,t){await Aw(e,{docs:zC(t,[]),imports:async r=>{await QHf({imports:r,visitor:t,nodePath:["imports"]})},types:async r=>{await YHf({typeDeclarations:r,visitor:t,nodePath:["types"]})},service:async r=>{r!=null&&await GHf({service:r,visitor:t,nodePath:["service"]})},webhooks:async r=>{for(let[n,i]of Object.entries(r??{}))await ZHf({webhook:i,visitor:t,nodePathForWebhook:["webhooks",n]})},channel:gf,errors:async r=>{await XHf({errorDeclarations:r,visitor:t,nodePath:["errors"]})}})}async function Gwu(e,t){await Aw(e,{docs:gf,imports:gf,types:gf,service:gf,webhooks:gf,errors:gf,channel:gf,export:async r=>{var n;await((n=t.export)==null?void 0:n.call(t,typeof r=="string"?r:r==null?void 0:r.dependency,["export"]))},navigation:async r=>{var n;await((n=t.navigation)==null?void 0:n.call(t,r,["navigation"]))}})}async function Kwu(e,t){var r;await((r=t.file)==null?void 0:r.call(t,e,[])),await Aw(e,{version:gf,name:gf,"default-url":gf,"display-name":gf,imports:gf,auth:gf,"idempotency-headers":gf,"auth-schemes":async n=>{await Promise.all(Object.entries(n??{}).map(async([i,a])=>{var u;xGo(a)&&await((u=t.oauth)==null?void 0:u.call(t,{name:i,oauth:a},["auth-scheme",i]))}))},pagination:gf,"default-environment":async n=>{var i;await((i=t.defaultEnvironment)==null?void 0:i.call(t,n,["default-environment"]))},docs:gf,headers:gf,environments:async n=>{var i;if(n!=null)for(let[a,u]of Object.entries(n))await((i=t.environment)==null?void 0:i.call(t,{environmentId:a,environment:u},["environments",a]))},"error-discrimination":async n=>{var i;await((i=t.errorDiscrimination)==null?void 0:i.call(t,n,["error-discrimination"]))},audiences:gf,errors:async n=>{var i;if(n!=null)for(let a of n)await((i=t.errorReference)==null?void 0:i.call(t,a,["errors",a]))},"base-path":gf,"path-parameters":async n=>{await iSa({pathParameters:n,visitor:t,nodePath:["path-parameters"]})},variables:async n=>{var i;if(n!=null)for(let[a,u]of Object.entries(n))await((i=t.variableDeclaration)==null?void 0:i.call(t,{variableId:a,variable:u},["variables",a]))}})}var aSa=new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$");function kHf({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.definitionFile)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.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 e$f({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.packageMarker)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.message})))}}};return{[a]:u}}return{...i("export"),...i("navigation")}}function t$f({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(a){let u=async(f,d)=>{var c;for(let o of r){let l=(c=o.rootApiFile)==null?void 0:c[a];if(l!=null){let g=await l(f,{relativeFilepath:e,contents:t});n(g.map(O=>({severity:O.severity,relativeFilepath:e,nodePath:d,message:O.message})))}}};return{[a]:u}}return{...i("file"),...i("oauth"),...i("defaultEnvironment"),...i("environment"),...i("errorDiscrimination"),...i("errorReference"),...i("variableDeclaration"),...i("variableReference"),...i("pathParameter")}}function Qbj(e,t,r){if(!Pne(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 Zbj(e){return Number(e.replace("v",""))}async function kbj(e){let t=Gaa({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 Ywu={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{let r=Gaa({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=Zbj(e["ir-version"]);else{let f=await kbj(e);if(f==null)return[];a=f}if(a<=i)return[];let u=await r.generators.cli.getMinCliForIr(a);return u.ok?Qbj(e.name,u.body.version,t)??[]:[]}}})};var Xwu={name:"import-file-exists",create:({workspace:e})=>{let t=Object.keys(bEr(e.definition)),r=new Set;return t.forEach(n=>{let i=Tf(e.definition.absoluteFilepath,Ws.of(n));r.add(i)}),{definitionFile:{import:async({importedAs:n,importPath:i},{relativeFilepath:a})=>{let u=[],f=Tf(e.definition.absoluteFilepath,Hg(a),Ws.of(i));return r.has(f)||u.push({severity:"error",message:`Import ${cl.bold(n)} points to non-existent path ${cl.bold(i)}.`}),u}}}}};function oSa(e){return e.definition.rootApiFile.contents.environments==null?[]:Object.values(e.definition.rootApiFile.contents.environments).reduce((t,r)=>{if(R2n(r))for(let n of Object.keys(r.urls))t.includes(n)||t.push(n);return t},[])}var Qwu={name:"matching-environment-urls",create:({workspace:e})=>{let t=oSa(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 ${cl.bold(u)}`})};return ADr(n,{singleBaseUrl:()=>{for(let u of t)a(u)},multipleBaseUrls:u=>{for(let f of t)u.urls[f]==null&&a(f)}}),i}}}}};var Zwu={name:"no-circular-imports",DISABLE_RULE:!0,create:({workspace:e})=>{let t=egj(e.definition.namedDefinitionFiles);return{definitionFile:{import:async({importPath:r},{relativeFilepath:n})=>{let i=t[n];if(i==null)return[];let a=Yzr({referencedIn:n,importPath:Ws.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 egj(e){let t={};for(let r of S8t(e))t[r]=r$f(r,[r],e);return t}function r$f(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=Yzr({referencedIn:e,importPath:Ws.of(a)});t.includes(u)?t[0]===u&&t[0]===tgj(t)&&n.push({startingFilepath:u,chainWithoutStartingFilepath:t.slice(1)}):n.push(...r$f(u,[...t,u],r))}return n}function tgj(e){return e.reduce((t,r)=>r<t?r:t)}var vx=Kzr({generationLanguage:void 0,keywords:void 0,smartCasing:!1});var uSa=class{workspace;typeResolver;constructor(t){this.workspace=t,this.typeResolver=new mM(t)}isTypeComplex(t,r){let n=yO({relativeFilepath:r.relativeFilepath,definitionFile:r.contents,casingsGenerator:vx,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:Ol(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:Ol(t)}}isNamedTypeComplex({type:t,file:r,visited:n}){if(n.has(t.rawName))return!1;if(n.add(t.rawName),cNr(t.declaration))return!0;if(SCt(t.declaration))return!1;if(FE(t.declaration))return this.objectHasComplexProperties({typeName:t.rawName,objectDeclaration:t.declaration,file:r,visited:n});if(U2n(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}Ol(t.declaration)}objectHasComplexProperties({typeName:t,objectDeclaration:r,file:n,visited:i}){return WAt({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:Ol(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:Ol(t)}}};var kwu={name:"no-complex-query-params",create:({workspace:e})=>{let t=new uSa(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 eDu={name:"no-conflicting-endpoint-parameters",create:()=>({definitionFile:{pathParameter:({pathParameterKey:e})=>e===Rja?[{severity:"error",message:`Path parameter ${cl.bold(e)} is not suitable for code generation, because it can conflict with the request body parameter.`}]:[]}})};function Xbi({service:e,endpoint:t}){return e["base-path"]+t.path}var sSa=class{root=new _8n;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 Xbi({service:t.service,endpoint:t.endpoint}).split("/").filter(r=>r.length>0)}},_8n=class{childPaths={};childPathParam;endpointsThatEndWithThisNode=[];insert(t,r){var u;let[n,...i]=t;if(n==null){this.endpointsThatEndWithThisNode.push(r);return}(this.isPathParam(n)?this.childPathParam??(this.childPathParam=new _8n):(u=this.childPaths)[n]??(u[n]=new _8n)).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 tDu={name:"no-conflicting-endpoint-paths",create:async({workspace:e})=>{let t=new sSa;return await N5(e,async(r,n)=>{await BW(n,{httpEndpoint:({service:i,endpointId:a,endpoint:u})=>{t.registerEndpoint({service:i,endpointId:a,endpoint:u,relativeFilepath:r})}})}),{definitionFile:{httpEndpoint:({service:r,endpoint:n,endpointId:i},{relativeFilepath:a})=>{let u=t.getConflictingEndpoints({service:r,endpointId:i,endpoint:n,relativeFilepath:a});return u.length===0?[]:[{severity:"warning",message:[`Endpoint path ${Xbi({service:r,endpoint:n})} conflicts with other endpoints:`,...u.map(f=>` - ${f.relativeFilepath} -> ${f.endpointId} ${cl.dim(Xbi({service:f.service,endpoint:f.endpoint}))}`)].join(`
1947
1947
  `)}]}}}}};var rDu={name:"no-conflicting-request-wrapper-properties",create:({workspace:e})=>({definitionFile:{httpEndpoint:({endpoint:t,service:r},{contents:n,relativeFilepath:i})=>{let a=rgj({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 ${cl.bold(f)}. This is not suitable for code generation. Use the "name" property to deconflict.
1948
1948
  `+d.map(c=>` - ${ngj(c)}`).join(`
1949
1949
  `)});return u}}})};function rgj({endpoint:e,service:t,relativeFilepath:r,definitionFile:n,workspace:i}){let a={},u=(f,d)=>{(a[f]??(a[f]=[])).push(d)};if(e.request!=null&&typeof e.request!="string"&&e.request.body!=null&&!m7(e.request.body)&&Fja({request:e.request,file:yO({relativeFilepath:r,definitionFile:n,casingsGenerator:vx,rootApiFile:i.definition.rootApiFile.contents}),typeResolver:new mM(i)})&&u(Svi,{type:"referenced-body",propertyName:Svi}),t.headers!=null)for(let[f,d]of Object.entries(t.headers))u(OFt({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(OFt({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(DEr({queryParameterKey:f,queryParameter:d}).name,{type:"endpoint-query-parameter",queryParameterKey:f,queryParameter:d});if(e.request.body!=null&&m7(e.request.body)){let f=WAt({typeName:void 0,objectDeclaration:{extends:e.request.body.extends,properties:e.request.body.properties??{}},filepathOfDeclaration:r,definitionFile:n,workspace:i,typeResolver:new mM(i),smartCasing:!1});for(let d of f)u(d.name,{type:"inlined-body",property:d})}}return a}function ngj(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: ${bNn({property:e.property,prefixBreadcrumbs:["<Request Body>"]})}`;case"referenced-body":return`Body property "${e.propertyName}"`;default:Ol(e)}}var nDu=yu(require("path"),1),iDu={name:"no-duplicate-declarations",create:async({workspace:e,logger:t})=>{let r=await igj(e),n={},i=({declaredName:a,relativeFilepath:u})=>{var g;let f=nDu.default.dirname(u),d=(g=r[f])==null?void 0:g[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]??(n[f]=new Set);if(!c.has(a))return c.add(a),[];let o=d.indexOf(u);return d.filter((O,j)=>j!==o).map(O=>({severity:"error",message:`${a} is already declared in ${O===u?"this file":O}`}))};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})=>{var f;return typeof a.request!="string"&&((f=a.request)==null?void 0:f.name)!=null?i({declaredName:a.request.name,relativeFilepath:u}):[]}}}}};async function igj(e){let t={};return await N5(e,async(r,n)=>{let i=nDu.default.dirname(r),a=t[i]??(t[i]={}),u=f=>{(a[f]??(a[f]=[])).push(r)};await BW(n,{typeName:f=>{u(f)},errorDeclaration:({errorName:f})=>{u(f)},httpEndpoint:({endpoint:f})=>{var d;typeof f.request!="string"&&((d=f.request)==null?void 0:d.name)!=null&&u(f.request.name)}})}),t}function Qbi(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 aDu={name:"no-duplicate-enum-values",create:()=>({definitionFile:{typeDeclaration:({declaration:e})=>SCt(e)?Qbi(e.enum.map(r=>typeof r=="string"?r:r.value)).map(r=>({severity:"error",message:`Duplicated enum value: ${cl.bold(r)}.`})):[]}})};var oDu={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(RS);return Qbi(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(RS);return Qbi(t).map(r=>({severity:"error",message:`Duplicate example name: ${r}`}))}}})};function n$f(e){if(!e.isInlined)return e.name;switch(e.location){case"inlinedRequest":return"<Inlined Request>";default:Ol(e.location)}}var uDu={name:"no-duplicate-field-names",create:({workspace:e})=>{let t=new mM(e);return{definitionFile:{typeDeclaration:({typeName:r,declaration:n},{relativeFilepath:i,contents:a})=>{let u=[];return y5(n,{alias:sCt,enum:f=>{let d=i$f(f.enum,c=>PNn(c).name);for(let c of d)u.push({severity:"error",message:`Name "${c}" is used by multiple values.`})},object:f=>{let d=n$f(r),c=WAt({typeName:d,objectDeclaration:f,filepathOfDeclaration:i,definitionFile:a,workspace:e,typeResolver:t,smartCasing:!1}),o=cWo(c,l=>l.name);for(let[l,g]of Object.entries(o))if(g.length>1){let O=[`Object has multiple properties named "${l}":`,...g.map(j=>` - ${bNn({property:j,prefixBreadcrumbs:[d]})}`)].join(`