fern-api 3.90.2 → 3.90.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.cjs +6 -6
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1090,7 +1090,7 @@ ${t}
1090
1090
  `),r.push(`This PR has **${t.length} file${t.length===1?"":"s"}** where your customizations conflict with the new SDK generation. Below is per-file guidance to help you resolve each conflict.
1091
1091
  `),r.push('> In GitHub\'s conflict editor, `<<<<<<< HEAD` ("Accept current") = **new generated code**, `>>>>>>> main` ("Accept incoming") = **your customization**.\n'),r.push("| File | Your customization | Why it conflicted | Suggested resolution |"),r.push("|------|-------------------|-------------------|---------------------|");for(let n of t)r.push(`| \`${n.file}\` | ${n.customization} | ${n.reason} | ${n.guidance} |`);return r.push(`
1092
1092
  ---`),r.push("*Posted by Fern Replay to help resolve SDK customization conflicts.*"),r.join(`
1093
- `)}async function J7w(e,t,r,n,i,o){if(i==null)return;let s=i.conflictDetails;if(s==null||s.length===0)return;let a=K7w(s);if(a==null){o.debug("No conflict files to comment on -- skipping conflict comment");return}try{await e.issues.createComment({owner:t,repo:r,issue_number:n,body:a}),o.debug(`Posted conflict resolution guide comment on PR #${n}`)}catch(c){o.debug(`Could not post conflict comment on PR #${n}: ${c instanceof Error?c.message:String(c)}`)}}});var slc=d(l8o=>{"use strict";Object.defineProperty(l8o,"__esModule",{value:!0});l8o.BaseStep=void 0;var olc=class{outputDir;logger;constructor(t,r){this.outputDir=t,this.logger=r}};l8o.BaseStep=olc});var vAd=d(p8o=>{"use strict";Object.defineProperty(p8o,"__esModule",{value:!0});p8o.GithubStep=void 0;var hAd=(d7e(),Od(LTr)),Y7w=(n8o(),Od(r8o)),gAd=require("fs/promises"),X7w=require("path"),yAd=uAd(),Z7w=pAd(),eHw=fAd(),tHw=dAd(),rHw=u8o(),nHw=slc(),alc=class extends nHw.BaseStep{config;name="github";constructor(t,r,n){super(t,r),this.config=n}async execute(t){let r=t.previousStepResults.replay,n=this.config.skipCommit??this.deriveSkipCommit(r),i=this.config.replayConflictInfo??this.deriveReplayConflictInfo(r);try{this.logger.debug("Starting GitHub self-hosted flow in directory: "+this.outputDir);let o=hAd.ClonedRepository.createAtPath(this.outputDir);try{await o.fetch(["--unshallow"])}catch{}let c=`fern-bot/${new Date().toISOString().replace("T","_").replace(/:/g,"-").replace("Z","").replace(".","_")}`,u=this.config.mode;switch(u){case"pull-request":return await this.executePullRequestMode(o,c,n,i,r);case"push":return await this.executePushMode(o);default:{let l=u;throw new Error(`Unexpected GitHub mode: ${String(l)}`)}}}catch(o){let s=`Error during GitHub self-hosted flow: ${String(o)}`;return this.logger.error(s),{executed:!0,success:!1,errorMessage:s}}}async executePullRequestMode(t,r,n,i,o){let s=this.config.branch??await t.getDefaultBranch(),a=new Y7w.Octokit({auth:this.config.token}),{owner:c,repo:u}=(0,hAd.parseRepository)(this.config.uri),l=await(0,Z7w.findExistingUpdatablePR)(a,c,u,s,this.logger),p,m=!1,f;if(l!=null?(this.logger.info(`Found existing updatable PR #${l.number}, will update branch ${l.headBranch}`),p=l.headBranch,m=!0,n?f=await(0,yAd.createReplayBranch)(t,p,this.config.commitMessage,i,this.logger):await t.checkoutRemoteBranch(p)):(this.logger.debug(`No existing updatable PR found, creating new branch ${r}`),p=r,n?f=await(0,yAd.createReplayBranch)(t,p,this.config.commitMessage,i,this.logger):await t.checkout(p)),!n){await this.ensureFernignore(),this.logger.debug("Committing changes...");let _=this.config.commitMessage??"SDK Generation";await t.commitAllChanges(_),this.logger.debug(`Committed changes to local copy of GitHub repository at ${this.outputDir}`)}let h={executed:!0,success:!0,updatedExistingPr:m};if(!this.config.previewMode){n&&m?await t.forcePush():await t.push();let _=await t.getCurrentBranch();if(h.branchUrl=`https://github.com/${this.config.uri}/tree/${_}`,this.logger.info(`Pushed branch: ${h.branchUrl}`),f!=null)try{let O=this.config.generatorName?.replace(/\//g,"--"),E=O!=null?`fern-generation-base--${O}`:"fern-generation-base";await t.createAndPushTag(E,f),this.logger.debug(`Pushed ${E} tag for generation tracking`),h.generationBaseTagSha=f}catch(O){this.logger.debug(`Could not push generation tag: ${O instanceof Error?O.message:String(O)}`)}}if(!this.config.previewMode){let _=await t.getHeadSha();await this.postReplayConflictStatus(a,c,u,_,i,o),m&&l!=null&&await this.togglePrDraftState(a,l,i)}let g=this.config.commitMessage??"SDK Generation",{prTitle:y,prBody:A}=(0,eHw.parseCommitMessageForPR)(g),b=(0,rHw.formatReplayPrBody)(o,{branchName:p}),v=b!=null?A+`
1093
+ `)}async function J7w(e,t,r,n,i,o){if(i==null)return;let s=i.conflictDetails;if(s==null||s.length===0)return;let a=K7w(s);if(a==null){o.debug("No conflict files to comment on -- skipping conflict comment");return}try{await e.issues.createComment({owner:t,repo:r,issue_number:n,body:a}),o.debug(`Posted conflict resolution guide comment on PR #${n}`)}catch(c){o.debug(`Could not post conflict comment on PR #${n}: ${c instanceof Error?c.message:String(c)}`)}}});var slc=d(l8o=>{"use strict";Object.defineProperty(l8o,"__esModule",{value:!0});l8o.BaseStep=void 0;var olc=class{outputDir;logger;constructor(t,r){this.outputDir=t,this.logger=r}};l8o.BaseStep=olc});var vAd=d(p8o=>{"use strict";Object.defineProperty(p8o,"__esModule",{value:!0});p8o.GithubStep=void 0;var hAd=(d7e(),Od(LTr)),Y7w=(n8o(),Od(r8o)),gAd=require("fs/promises"),X7w=require("path"),yAd=uAd(),Z7w=pAd(),eHw=fAd(),tHw=dAd(),rHw=u8o(),nHw=slc(),alc=class extends nHw.BaseStep{config;name="github";constructor(t,r,n){super(t,r),this.config=n}async execute(t){let r=t.previousStepResults.replay,n=this.config.skipCommit??this.deriveSkipCommit(r),i=this.config.replayConflictInfo??this.deriveReplayConflictInfo(r);try{this.logger.debug("Starting GitHub self-hosted flow in directory: "+this.outputDir);let o=hAd.ClonedRepository.createAtPath(this.outputDir);try{await o.fetch(["--unshallow"])}catch{}let c=`fern-bot/${new Date().toISOString().replace("T","_").replace(/:/g,"-").replace("Z","").replace(".","_")}`,u=this.config.mode;switch(u){case"pull-request":return await this.executePullRequestMode(o,c,n,i,r);case"push":return await this.executePushMode(o);default:{let l=u;throw new Error(`Unexpected GitHub mode: ${String(l)}`)}}}catch(o){let s=`Error during GitHub self-hosted flow: ${String(o)}`;return this.logger.error(s),{executed:!0,success:!1,errorMessage:s}}}async executePullRequestMode(t,r,n,i,o){let s=this.config.branch??await t.getDefaultBranch(),a=new Y7w.Octokit({auth:this.config.token}),{owner:c,repo:u}=(0,hAd.parseRepository)(this.config.uri),l=await(0,Z7w.findExistingUpdatablePR)(a,c,u,s,this.logger),p,m=!1,f;if(l!=null?(this.logger.info(`Found existing updatable PR #${l.number}, will update branch ${l.headBranch}`),p=l.headBranch,m=!0,n?f=await(0,yAd.createReplayBranch)(t,p,this.config.commitMessage,i,this.logger):await t.checkoutRemoteBranch(p)):(this.logger.debug(`No existing updatable PR found, creating new branch ${r}`),p=r,n?f=await(0,yAd.createReplayBranch)(t,p,this.config.commitMessage,i,this.logger):await t.checkout(p)),!n){await this.ensureFernignore(),this.logger.debug("Committing changes...");let _=this.config.commitMessage??"SDK Generation";await t.commitAllChanges(_),this.logger.debug(`Committed changes to local copy of GitHub repository at ${this.outputDir}`)}let h={executed:!0,success:!0,updatedExistingPr:m};if(!this.config.previewMode){m?await t.forcePush():await t.push();let _=await t.getCurrentBranch();if(h.branchUrl=`https://github.com/${this.config.uri}/tree/${_}`,this.logger.info(`Pushed branch: ${h.branchUrl}`),f!=null)try{let O=this.config.generatorName?.replace(/\//g,"--"),E=O!=null?`fern-generation-base--${O}`:"fern-generation-base";await t.createAndPushTag(E,f),this.logger.debug(`Pushed ${E} tag for generation tracking`),h.generationBaseTagSha=f}catch(O){this.logger.debug(`Could not push generation tag: ${O instanceof Error?O.message:String(O)}`)}}if(!this.config.previewMode){let _=await t.getHeadSha();await this.postReplayConflictStatus(a,c,u,_,i,o),m&&l!=null&&await this.togglePrDraftState(a,l,i)}let g=this.config.commitMessage??"SDK Generation",{prTitle:y,prBody:A}=(0,eHw.parseCommitMessageForPR)(g),b=(0,rHw.formatReplayPrBody)(o,{branchName:p}),v=b!=null?A+`
1094
1094
 
1095
1095
  ---
1096
1096
 
@@ -1458,7 +1458,7 @@ ${FVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&$xs(th
1458
1458
  `+a_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?a_t.default.cyan(qVu(t,this.opt.mask)):a_t.default.italic(a_t.default.dim("[hidden]")):this.opt.mask?qVu(t,this.opt.mask):a_t.default.italic(a_t.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var xon=He(N1(),1);var LUu=He(SPs(),1),Eon=require("child_process"),I2t=require("fs"),Oon=He(require("path"),1),qUu=He(require("os"),1),WUu=require("crypto"),mIs=He(VUu(),1);var bon=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var BPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var _on=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var von=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function won(e="",t,r){let n=new dIs(e,r);n.runAsync((i,o)=>{if(i)setImmediate(t,i,void 0);else try{n.cleanup(),setImmediate(t,void 0,o)}catch(s){setImmediate(t,s,void 0)}})}function UUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function Wly(e){let t=[],r="";for(let n=0;n<e.length;n++){let i=e.charAt(n);n>0&&i===" "&&e[n-1]!=="\\"&&r.length>0?(t.push(r),r=""):r=`${r}${i}`}return r.length>0&&t.push(r),t}var dIs=class{text="";tempFile;editor;lastExitStatus=0;fileOptions={};get temp_file(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile}get last_exit_status(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus}constructor(t="",r){this.text=t,r&&(this.fileOptions=r),this.determineEditor(),this.createTemporaryFile()}run(){return this.launchEditor(),this.readTemporaryFile(),this.text}runAsync(t){try{this.launchEditorAsync(()=>{try{this.readTemporaryFile(),setImmediate(t,void 0,this.text)}catch(r){setImmediate(t,r,void 0)}})}catch(r){setImmediate(t,r,void 0)}}cleanup(){this.removeTemporaryFile()}determineEditor(){let t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:process.platform.startsWith("win")?"notepad":"vim",r=Wly(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??qUu.default.tmpdir(),r=(0,WUu.randomUUID)(),n=UUu(this.fileOptions.prefix),i=UUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Oon.default.resolve(t,o),a=Oon.default.resolve(t)+Oon.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let c={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(c.mode=this.fileOptions.mode),(0,I2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new bon(t)}}readTemporaryFile(){try{let t=(0,I2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,LUu.detect)(t)??"utf8";mIs.default.encodingExists(r)||(r="utf8"),this.text=mIs.default.decode(t,r)}}catch(t){throw new _on(t)}}removeTemporaryFile(){try{(0,I2t.unlinkSync)(this.tempFile)}catch(t){throw new von(t)}}launchEditor(){try{let t=(0,Eon.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new BPr(t)}}launchEditorAsync(t){try{(0,Eon.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new BPr(r)}}};var GUu=He(OG(),1);var TPr=class extends k1{_run(t){this.done=t,this.editorResult=new GUu.Subject;let r=pz(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"?xon.default.dim("Received"):xon.default.dim("Press <enter> to launch your preferred editor."),t&&(r=xon.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),won(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 YUu=require("stream");var KUu=He(require("readline"),1),JUu=He($Uu(),1),p_t=class{constructor(t){this.rl||=KUu.default.createInterface(Hly(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 Hly(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 JUu.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var DPr=class extends p_t{constructor(t={}){super(t),this.log=new YUu.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return gPr(this.rl,this.bottomBar.split(`
1459
1459
  `).length),this}updateBottomBar(t){return gPr(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+`
1460
1460
  `}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&&Hin(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=He(OG(),1),e4u=He(kxr(),1);var Pon=He(OG(),1),XUu=He(kxr(),1),Ion=function(e,t,r){return typeof e[t]!="function"?(0,Pon.of)(e):(0,Pon.from)((0,XUu.default)(e[t])(r).then(n=>(e[t]=n,e)))};var ZUu={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},C2t=class extends p_t{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,cb.from)(t):(0,cb.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,cb.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,cb.from)([t]),this.process=n.pipe((0,cb.concatMap)(this.processQuestion.bind(this)),(0,cb.publish)()),this.process.connect(),this.process.pipe((0,cb.reduce)((i,o)=>(ZUu.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,cb.defer)(()=>(0,cb.of)(t).pipe((0,cb.concatMap)(this.setDefaultType.bind(this)),(0,cb.concatMap)(this.filterIfRunnable.bind(this)),(0,cb.concatMap)(()=>Ion(t,"message",this.answers)),(0,cb.concatMap)(()=>Ion(t,"default",this.answers)),(0,cb.concatMap)(()=>Ion(t,"choices",this.answers)),(0,cb.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,cb.defer)(()=>(0,cb.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,cb.defer)(()=>(0,cb.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&ZUu.get(this.answers,t.name)!==void 0)return cb.EMPTY;if(t.when===!1)return cb.EMPTY;if(typeof t.when!="function")return(0,cb.of)(t);let{answers:r}=this;return(0,cb.defer)(()=>(0,cb.from)((0,e4u.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function t4u(e){let t=function(r,n){let i;try{i=new C2t(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",APr),this.registerPrompt("input",s_t),this.registerPrompt("number",bPr),this.registerPrompt("confirm",_Pr),this.registerPrompt("rawlist",vPr),this.registerPrompt("expand",OPr),this.registerPrompt("checkbox",EPr),this.registerPrompt("password",wPr),this.registerPrompt("editor",TPr)},t.restoreDefaultPrompts(),t}var gIs=t4u();function Kly(e,t){gIs.registerPrompt(e,t)}function Jly(){gIs.restoreDefaultPrompts()}var Yly={prompt:gIs,ui:{BottomBar:DPr,Prompt:C2t},createPromptModule:t4u,registerPrompt:Kly,restoreDefaultPrompts:Jly,Separator:C3},ub=Yly;var S2t=require("path");function n4u(){let e=Xly();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function Xly(e=process.argv[1]?(0,S2t.dirname)(process.argv[1]):process.cwd(),t=S2t.sep==="\\"){let r=t?r4u(e):e;return n=>{if(!n)return;let i=t?r4u(n):n,{dir:o,base:s,ext:a}=S2t.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let c=decodeURIComponent(s);o||(o=".");let u=o.lastIndexOf("/node_modules");if(u>-1)return`${o.slice(u+14).replace(/\//g,".")}:${c}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}function r4u(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var yIs=e=>{if("flags"in e){let t=i4u(e.flags),r=o4u(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,s4u(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,Zly(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function Zly(e,t,r){return{key:e,enabled:typeof t=="string"?!0:t,variant:typeof t=="string"?t:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:r?JSON.stringify(r):void 0,description:void 0}}}var i4u=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,RPr(r)]).filter(([,t])=>t!==void 0)),o4u=e=>{let t=e??{};return Object.fromEntries(Object.keys(t).filter(r=>{let n=t[r];return n.enabled&&n.metadata&&n.metadata.payload!==void 0}).map(r=>{let n=t[r].metadata?.payload;return[r,n?s4u(n):void 0]}))};var RPr=e=>e===void 0?void 0:e.variant??e.enabled,s4u=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Con="0123456789abcdef",Son=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Con.charAt(this.bytes[r]>>>4),t+=Con.charAt(15&this.bytes[r]),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Con.charAt(this.bytes[r]>>>4),t+=Con.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},AIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??epy()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let n=this.generateOrAbortCore(t,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,r)),n}generateOrAbortCore(t,r){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+r>=this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return Son.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,Son.ofInner(t)}},epy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),a4u,Hbe=()=>tpy().toString(),tpy=()=>(a4u||(a4u=new AIs)).generate();var rpy=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],c4u=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return rpy.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var j3=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e})({});var ipy=Array.isArray,u4u=Object.prototype,teI=u4u.hasOwnProperty,bIs=u4u.toString,_Is=ipy||function(e){return bIs.call(e)==="[object Array]"};var l4u=e=>e===Object(e)&&!_Is(e);var j2t=e=>e===void 0,FPr=e=>bIs.call(e)=="[object String]",p4u=e=>FPr(e)&&e.trim().length===0;var f4u=e=>bIs.call(e)=="[object Number]"&&e===e;var vIs=e=>e instanceof Error;function NPr(e){return e===null||typeof e!="object"}function f_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function m4u(e){return f_t(e,"ErrorEvent")}function jon(e){return!j2t(Event)&&opy(e,Event)}function d4u(e){return f_t(e,"Object")}function opy(e,t){try{return e instanceof t}catch{return!1}}function kPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),f4u(e)?e>r?(n.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(n.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(n.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+i),kPr(i||r,t,r,n))}var spy=864e5,Bon=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=kPr(t.bucketSize,0,100,t._logger),this._refillRate=kPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=kPr(t.refillInterval,0,spy,t._logger)}_applyRefill(t,r){let n=r-t.lastAccess,i=Math.floor(n/this._refillInterval);if(i>0){let o=i*this._refillRate;t.tokens=Math.min(t.tokens+o,this._bucketSize),t.lastAccess=t.lastAccess+i*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),n=String(t),i=this._buckets[n];return i?this._applyRefill(i,r):(i={tokens:this._bucketSize,lastAccess:r},this._buckets[n]=i),i.tokens===0?!0:(i.tokens--,i.tokens===0&&this._onBucketRateLimited?.(t),i.tokens===0)}stop(){this._buckets={}}};var Ton=class{add(t){let r=Hbe();return this.promiseByIds[r]=t,t.catch(()=>{}).finally(()=>{delete this.promiseByIds[r]}),t}async join(){let t=Object.values(this.promiseByIds),r=t.length;for(;r>0;)await Promise.all(t),t=Object.values(this.promiseByIds),r=t.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}};function apy(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var h4u=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>h4u(`${e} ${o}`,t,r)}},cpy=e=>e();function g4u(e,t=cpy){return h4u(e,t,apy())}var T2t="Mobile",Ron="iOS",B2t="Android",y4u="Tablet",meI=B2t+" "+y4u;var upy="Apple",deI=upy+" Watch",A4u="Safari",Fon="BlackBerry",b4u="Samsung",lpy=b4u+"Browser",ppy=b4u+" Internet",Non="Chrome",fpy=Non+" OS",mpy=Non+" "+Ron,_4u="Internet Explorer",dpy=_4u+" "+T2t,EIs="Opera",heI=EIs+" Mini",v4u="Edge",hpy="Microsoft "+v4u,wIs="Firefox",gpy=wIs+" "+Ron,xIs="Nintendo",PIs="PlayStation",Don="Xbox",ypy=B2t+" "+T2t,Apy=T2t+" "+A4u,zPr="Windows",bpy=zPr+" Phone";var O4u="Generic",geI=O4u+" "+T2t.toLowerCase(),yeI=O4u+" "+y4u.toLowerCase(),_py="Konqueror",rU="(\\d+(\\.\\d+)?)",OIs=new RegExp("Version/"+rU),AeI=new RegExp(Don,"i"),beI=new RegExp(PIs+" \\w+","i"),_eI=new RegExp(xIs+" \\w+","i"),vpy=new RegExp(Fon+"|PlayBook|BB10","i"),Opy={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"};var veI={[dpy]:[new RegExp("rv:"+rU)],[hpy]:[new RegExp(v4u+"?\\/"+rU)],[Non]:[new RegExp("("+Non+"|CrMo)\\/"+rU)],[mpy]:[new RegExp("CriOS\\/"+rU)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+rU)],[A4u]:[OIs],[Apy]:[OIs],[EIs]:[new RegExp("("+EIs+"|OPR)\\/"+rU)],[wIs]:[new RegExp(wIs+"\\/"+rU)],[gpy]:[new RegExp("FxiOS\\/"+rU)],[_py]:[new RegExp("Konqueror[:/]?"+rU,"i")],[Fon]:[new RegExp(Fon+" "+rU),OIs],[ypy]:[new RegExp("android\\s"+rU,"i")],[ppy]:[new RegExp(lpy+"\\/"+rU)],[_4u]:[new RegExp("(rv:|MSIE )"+rU)],Mozilla:[new RegExp("rv:"+rU)]};var OeI=[[new RegExp(Don+"; "+Don+" (.*?)[);]","i"),e=>[Don,e&&e[1]||""]],[new RegExp(xIs,"i"),[xIs,""]],[new RegExp(PIs,"i"),[PIs,""]],[vpy,[Fon,""]],[new RegExp(zPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[bpy,""];if(new RegExp(T2t).test(t)&&!/IEMobile\b/.test(t))return[zPr+" "+T2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=Opy[n]||"";return/arm/i.test(t)&&(i="RT"),[zPr,i]}return[zPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Ron,t.join(".")]}return[Ron,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=j2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+B2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+B2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[B2t,t.join(".")]}return[B2t,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,e=>{let t=["Mac OS X",""];if(e&&e[1]){let r=[e[1],e[2],e[3]||"0"];t[1]=r.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[fpy,""]],[/Linux|debian/i,["Linux",""]]];var E4u="utf8";function w4u(e,t){if(!e||typeof e!="string"||Epy(e))throw new Error(t)}function Epy(e){return e.trim().length===0}function x4u(e){return e?.replace(/\/+$/,"")}async function P4u(e,t){let r=null;for(let n=0;n<t.retryCount+1;n++){n>0&&await new Promise(i=>setTimeout(i,t.retryDelay));try{return await e()}catch(i){if(r=i,!t.retryCheck(i))throw i}}throw r}function kon(){return new Date().toISOString()}function m_t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var I4u=e=>e instanceof Error;function IIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var zon=class{constructor(){this.events={},this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),()=>{this.events[t]=this.events[t].filter(n=>n!==r)}}emit(t,r){for(let n of this.events[t]||[])n(r);for(let n of this.events["*"]||[])n(t,r)}};function C4u(){return"CompressionStream"in globalThis}async function CIs(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var d_t=class extends Error{constructor(t,r){super("HTTP error while fetching PostHog: status="+t.status+", reqByteLength="+r),this.response=t,this.reqByteLength=r,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}},D2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function S4u(e){if(e instanceof d_t){let t="";try{t=await e.text}catch{}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function SIs(e){return typeof e=="object"&&(e instanceof d_t||e instanceof D2t)}function j4u(e){return typeof e=="object"&&e instanceof d_t&&e.status===413}var QPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Ton,this._events=new zon,this._isInitialized=!1,w4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=x4u(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:SIs},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=g4u("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!C4u()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(j3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!0){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:yIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof d_t)return{type:"api_error",statusCode:t.status};if(t instanceof D2t){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let c=RPr(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(j3.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(j3.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(j3.Props,this.props)})}processBeforeEnqueue(t){return t}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(j3.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(j3.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=m_t(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:kon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await CIs(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:kon(),uuid:n?.uuid?n.uuid:Hbe()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await S4u(t)})}async flush(){let t=IIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),IIs([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(j3.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=()=>{let h=(this.getPersistedProperty(j3.Queue)||[]).slice(i.length);this.setPersistedProperty(j3.Queue,h),t=h},a={api_key:this.apiKey,batch:o,sent_at:kon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await CIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>j4u(f)?!1:SIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(j4u(f)&&o.length>1){this.maxBatchSize=Math.max(1,Math.floor(o.length/2)),this._logger.warn(`Received 413 when sending batch of size ${o.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw f instanceof D2t||s(),this._events.emit("error",f),f}s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let c=new AbortController;return setTimeout(()=>c.abort(),a),c.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,E4u)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await P4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new D2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new d_t(a,s);return a},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(j3.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!SIs(i))throw i;await S4u(i)}};return Promise.race([new Promise((i,o)=>{m_t(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,o("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var B3={};D(B3,{DOMExceptionCoercer:()=>DIs,ErrorCoercer:()=>RIs,ErrorEventCoercer:()=>FIs,ErrorPropertiesBuilder:()=>jIs,EventCoercer:()=>zIs,ObjectCoercer:()=>kIs,PrimitiveCoercer:()=>QIs,PromiseRejectionEventCoercer:()=>MIs,ReduceableCache:()=>VIs,StringCoercer:()=>NIs,chromeStackLineParser:()=>BIs,createDefaultStackParser:()=>zpy,createStackParser:()=>V4u,geckoStackLineParser:()=>TIs,nodeStackLineParser:()=>k4u,opera10StackLineParser:()=>R4u,opera11StackLineParser:()=>F4u,reverseAndStripFrames:()=>M4u,winjsStackLineParser:()=>D4u});var Qon,B4u,Mon;function T4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Mon&&r.length===B4u||(B4u=r.length,Mon=r.reduce((n,i)=>{Qon||(Qon={});let o=Qon[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let u=s[a]?.filename,l=t[i];if(u&&l){n[u]=l,Qon[i]=[u,l];break}}}return n},{})),Mon}var xpy=4,jIs=class{constructor(t,r,n=[]){this.coercers=t,this.stackParser=r,this.modifiers=n}buildFromUnknown(t,r={}){let i=r&&r.mechanism||{handled:!0,type:"generic"},s=this.buildCoercingContext(i,r,0).apply(t),a=this.buildParsingContext(),c=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(c,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&_Is(r.stacktrace.frames)&&(r.stacktrace.frames=await this.applyModifiers(r.stacktrace.frames));return t}coerceFallback(t){return{type:"Error",value:"Unknown error",stack:t.syntheticException?.stack,synthetic:!0}}parseStacktrace(t,r){let n;t.cause!=null&&(n=this.parseStacktrace(t.cause,r));let i;return t.stack!=""&&t.stack!=null&&(i=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?1:0),r.chunkIdMap)),{...t,cause:n,stack:i}}applyChunkIds(t,r){return t.map(n=>(n.filename&&r&&(n.chunk_id=r[n.filename]),n))}applyCoercers(t,r){for(let n of this.coercers)if(n.match(t))return n.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let n of this.modifiers)r=await n(r);return r}convertToExceptionList(t,r){let n={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(n.stacktrace={type:"raw",frames:t.stack});let i=[n];return t.cause!=null&&i.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),i}buildParsingContext(){return{chunkIdMap:T4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=xpy){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var mz="?";function $be(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?mz:r,in_app:!0};return j2t(n)||(o.lineno=n),j2t(i)||(o.colno=i),o}var Von=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:mz,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var Ppy=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Ipy=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Cpy=/\((\S*)(?::(\d+))(?::(\d+))\)/,BIs=(e,t)=>{let r=Ppy.exec(e);if(r){let[,i,o,s]=r;return $be(t,i,mz,+o,+s)}let n=Ipy.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Cpy.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Von(n[1]||mz,n[2]);return $be(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var Spy=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,jpy=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,TIs=(e,t)=>{let r=Spy.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=jpy.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||mz;return[o,i]=Von(o,i),$be(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Bpy=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,D4u=(e,t)=>{let r=Bpy.exec(e);return r?$be(t,r[2],r[1]||mz,+r[3],r[4]?+r[4]:void 0):void 0};var Tpy=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,R4u=(e,t)=>{let r=Tpy.exec(e);return r?$be(t,r[2],r[3]||mz,+r[1]):void 0},Dpy=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,F4u=(e,t)=>{let r=Dpy.exec(e);return r?$be(t,r[5],r[3]||r[4]||mz,+r[1],+r[2]):void 0};var Rpy=/^\s*[-]{4,}$/,Fpy=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,k4u=(e,t)=>{let r=e.match(Fpy);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||mz,o=s?`${s}.${a}`:a);let c=r[2]?.startsWith("file://")?r[2].slice(7):r[2],u=r[5]==="native";return c?.match(/\/[A-Z]:/)&&(c=c.slice(1)),!c&&r[5]&&!u&&(c=r[5]),{filename:c?decodeURI(c):void 0,module:void 0,function:o,lineno:N4u(r[3]),colno:N4u(r[4]),in_app:Npy(c||"",u),platform:t}}if(e.match(Rpy))return{filename:e,platform:t}};function Npy(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function N4u(e){return parseInt(e||"",10)||void 0}var z4u=/\(error: (.*)\)/,Q4u=50;function M4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,Q4u).map(r=>({...r,filename:r.filename||kpy(t).filename,function:r.function||mz}))}function kpy(e){return e[e.length-1]||{}}function zpy(){return V4u("web:javascript",BIs,TIs)}function V4u(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1461
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=z4u.test(a)?a.replace(z4u,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=Q4u)break}}return M4u(i)}}var DIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=FPr(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return f_t(t,"DOMException")}isDOMError(t){return f_t(t,"DOMError")}};var RIs=class{match(t){return vIs(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var FIs=class{constructor(){}match(t){return m4u(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var Qpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,NIs=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(Qpy);return i&&(r=i[1],n=i[2]),[r,n]}};var U4u=["fatal","error","warning","log","info","debug"];function Uon(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var kIs=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return jon(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Uon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return FPr(t)&&!p4u(t)&&U4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(I4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var zIs=class{match(t){return jon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Uon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var QIs=class{match(t){return NPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var MIs=class{match(t){return f_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return NPr(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(NPr(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var VIs=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var W4u=require("fs"),G4u=require("readline"),Lon=new B3.ReduceableCache(25),H4u=new B3.ReduceableCache(20),UIs=7,Mpy=1e3,Vpy=1e4;async function $4u(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||Wpy(s)||Gpy(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(H4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=$py(o);if(s.every(c=>Hpy(i,c)))continue;let a=Kpy(Lon,i,{});n.push(Upy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Lpy(e,Lon),Lon.reduce(),e}function Upy(e,t,r){return new Promise(n=>{let i=(0,W4u.createReadStream)(e),o=(0,G4u.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function m(){H4u.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",m),o.on("error",m),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Jpy(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let h=t[c];if(h===void 0){o.close(),o.removeAllListeners();return}l=h[0],p=h[1]}})})}function Lpy(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;qpy(r.lineno,r,n)}}function qpy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=K4u(e);i<e;i++){let o=r[i];if(o===void 0)return void L4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void L4u(t);t.context_line=r[e];let n=J4u(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function L4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Wpy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Gpy(e){return e.lineno!==void 0&&e.lineno>Vpy||e.colno!==void 0&&e.colno>Mpy}function Hpy(e,t){let r=Lon.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function $py(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=q4u(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+UIs:(i.push(n),n=q4u(o)),t++}return i}function q4u(e){return[K4u(e),J4u(e)]}function K4u(e){return Math.max(1,e-UIs)}function J4u(e){return e+UIs}function Kpy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Jpy(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function Ypy(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function Y4u(e,t){globalThis.process?.on("uncaughtException",Ypy(e,t))}function X4u(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Xpy=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Bon({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return l4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||Hbe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(Y4u(this.onException.bind(this),this.onFatalError.bind(this)),X4u(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(Xpy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var Z4u="5.24.7";var MPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function eLu(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Zpy=6e4,efy=1152921504606847e3,tfy=["is_not"],R2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Kbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},qon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Kbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Kbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Kbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?oLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):iLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await tLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await tLu(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(Zpy,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new R2t(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new R2t(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new R2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof R2t&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=m_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function tLu(e,t,r=""){let n=await eLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/efy}function iLu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new XE("Operator is_not_set is not supported")}else throw new XE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!tfy.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return rLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return rLu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new XE("Date operations cannot be performed on boolean values");let u=nfy(String(i));if(u==null&&(u=nLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=nLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function rfy(e,t){if(!(e in t))throw new Kbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function oLu(e,t,r,n=!1){let i=String(e.value);rfy(i,r);let o=r[i];return sLu(o,t,r,n)}function sLu(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=sLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Kbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=oLu(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=iLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Kbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function rLu(e){try{return new RegExp(e),!0}catch{return!1}}function nLu(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new XE(`${e} is in an invalid date format`)}throw new XE(`The date provided ${e} must be a string, number, or date object`)}function nfy(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Won=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var ify=100,aLu=3e4,ofy=5e4,Gon=class extends QPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Won,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,ify):aLu,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new qon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||ofy}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return Z4u}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=aLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Kbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=MPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(MPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(MPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(MPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=m_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(d4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=Hbe(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&c4u(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",h.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:h,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var cLu=require("async_hooks"),Hon=class{constructor(){this.storage=new cLu.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){if(n?.fresh===!0)return this.storage.run(t,r);{let o=this.get()||{},s={distinctId:t.distinctId??o.distinctId,sessionId:t.sessionId??o.sessionId,properties:{...o.properties||{},...t.properties||{}}};return this.storage.run(s,r)}}};var uLu="posthog-node";function sfy(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[LIs.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],m=p.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:m,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var LIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=uLu,this.name=uLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(sfy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new B3.ErrorPropertiesBuilder([new B3.EventCoercer,new B3.ErrorCoercer,new B3.ObjectCoercer,new B3.StringCoercer,new B3.PrimitiveCoercer],B3.createStackParser("node:javascript",B3.nodeStackLineParser),[n4u(),$4u]);var YWe=class extends Gon{getLibraryId(){return"posthog-node"}initializeContext(){return new Hon}};var $on=class{posthog;constructor({posthogApiKey:t}){this.posthog=new YWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.90.2",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var VPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var F2t=require("fs/promises"),dLu=require("os"),hLu=require("path");var lLu=He(require("crypto")),Jon=new Uint8Array(256),Kon=Jon.length;function qIs(){return Kon>Jon.length-16&&(lLu.default.randomFillSync(Jon),Kon=0),Jon.slice(Kon,Kon+=16)}var pLu=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function afy(e){return typeof e=="string"&&pLu.test(e)}var WIs=afy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function fLu(e,t=0){return dz[e[t+0]]+dz[e[t+1]]+dz[e[t+2]]+dz[e[t+3]]+"-"+dz[e[t+4]]+dz[e[t+5]]+"-"+dz[e[t+6]]+dz[e[t+7]]+"-"+dz[e[t+8]]+dz[e[t+9]]+"-"+dz[e[t+10]]+dz[e[t+11]]+dz[e[t+12]]+dz[e[t+13]]+dz[e[t+14]]+dz[e[t+15]]}var mLu=He(require("crypto")),GIs={randomUUID:mLu.default.randomUUID};function cfy(e,t,r){if(GIs.randomUUID&&!t&&!e)return GIs.randomUUID();e=e||{};let n=e.random||(e.rng||qIs)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return fLu(n)}var mR=cfy;var ufy="id",lfy=".fern",UPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new YWe(r),this.userId=t==null?void 0:Cvs(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"3.90.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,dLu.homedir)()),Ze.of(lfy),Ze.of(ufy));await qr(t)||(await(0,F2t.mkdir)((0,hLu.dirname)(t),{recursive:!0}),await(0,F2t.writeFile)(t,mR())),this.persistedDistinctId=(await(0,F2t.readFile)(t)).toString()}return this.persistedDistinctId}};var HIs;async function N2t(){return HIs==null&&(HIs=await pfy()),HIs}async function pfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new VPr;let r=await mZr();return r!=null?new UPr({token:r,posthogApiKey:e}):await Cbe()!=null?new $on({posthogApiKey:e}):new UPr({token:void 0,posthogApiKey:e})}catch{return new VPr}}var gLu=(e=0)=>t=>`\x1B[${t+e}m`,yLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ALu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,fI={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},xnI=Object.keys(fI.modifier),ffy=Object.keys(fI.color),mfy=Object.keys(fI.bgColor),PnI=[...ffy,...mfy];function dfy(){let e=new Map;for(let[t,r]of Object.entries(fI)){for(let[n,i]of Object.entries(r))fI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=fI[n],e.set(i[0],i[1]);Object.defineProperty(fI,t,{value:r,enumerable:!1})}return Object.defineProperty(fI,"codes",{value:e,enumerable:!1}),fI.color.close="\x1B[39m",fI.bgColor.close="\x1B[49m",fI.color.ansi=gLu(),fI.color.ansi256=yLu(),fI.color.ansi16m=ALu(),fI.bgColor.ansi=gLu(10),fI.bgColor.ansi256=yLu(10),fI.bgColor.ansi16m=ALu(10),Object.defineProperties(fI,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>fI.rgbToAnsi256(...fI.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>fI.ansi256ToAnsi(fI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>fI.ansi256ToAnsi(fI.hexToAnsi256(t)),enumerable:!1}}),fI}var hfy=dfy(),fue=hfy;var Xon=He(require("process"),1),_Lu=He(require("os"),1),$Is=He(require("tty"),1);function sJ(e,t=globalThis.Deno?globalThis.Deno.args:Xon.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=Xon.default,Yon;sJ("no-color")||sJ("no-colors")||sJ("color=false")||sJ("color=never")?Yon=0:(sJ("color")||sJ("colors")||sJ("color=true")||sJ("color=always"))&&(Yon=1);function gfy(){if("FORCE_COLOR"in mI)return mI.FORCE_COLOR==="true"?1:mI.FORCE_COLOR==="false"?0:mI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(mI.FORCE_COLOR,10),3)}function yfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Afy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=gfy();n!==void 0&&(Yon=n);let i=r?Yon:n;if(i===0)return 0;if(r){if(sJ("color=16m")||sJ("color=full")||sJ("color=truecolor"))return 3;if(sJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(Xon.default.platform==="win32"){let s=_Lu.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in mI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in mI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in mI)||mI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in mI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(mI.TEAMCITY_VERSION)?1:0;if(mI.COLORTERM==="truecolor"||mI.TERM==="xterm-kitty"||mI.TERM==="xterm-ghostty"||mI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in mI){let s=Number.parseInt((mI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(mI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(mI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(mI.TERM)||"COLORTERM"in mI?1:o}function bLu(e,t={}){let r=Afy(e,{streamIsTTY:e&&e.isTTY,...t});return yfy(r)}var bfy={stdout:bLu({isTTY:$Is.default.isatty(1)}),stderr:bLu({isTTY:$Is.default.isatty(2)})},vLu=bfy;function OLu(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let i=t.length,o=0,s="";do s+=e.slice(o,n)+t+r,o=n+i,n=e.indexOf(t,o);while(n!==-1);return s+=e.slice(o),s}function ELu(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
1461
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=z4u.test(a)?a.replace(z4u,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=Q4u)break}}return M4u(i)}}var DIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=FPr(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return f_t(t,"DOMException")}isDOMError(t){return f_t(t,"DOMError")}};var RIs=class{match(t){return vIs(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var FIs=class{constructor(){}match(t){return m4u(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var Qpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,NIs=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(Qpy);return i&&(r=i[1],n=i[2]),[r,n]}};var U4u=["fatal","error","warning","log","info","debug"];function Uon(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var kIs=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return jon(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Uon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return FPr(t)&&!p4u(t)&&U4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(I4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var zIs=class{match(t){return jon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Uon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var QIs=class{match(t){return NPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var MIs=class{match(t){return f_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return NPr(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(NPr(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var VIs=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var W4u=require("fs"),G4u=require("readline"),Lon=new B3.ReduceableCache(25),H4u=new B3.ReduceableCache(20),UIs=7,Mpy=1e3,Vpy=1e4;async function $4u(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||Wpy(s)||Gpy(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(H4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=$py(o);if(s.every(c=>Hpy(i,c)))continue;let a=Kpy(Lon,i,{});n.push(Upy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Lpy(e,Lon),Lon.reduce(),e}function Upy(e,t,r){return new Promise(n=>{let i=(0,W4u.createReadStream)(e),o=(0,G4u.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function m(){H4u.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",m),o.on("error",m),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Jpy(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let h=t[c];if(h===void 0){o.close(),o.removeAllListeners();return}l=h[0],p=h[1]}})})}function Lpy(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;qpy(r.lineno,r,n)}}function qpy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=K4u(e);i<e;i++){let o=r[i];if(o===void 0)return void L4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void L4u(t);t.context_line=r[e];let n=J4u(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function L4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Wpy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Gpy(e){return e.lineno!==void 0&&e.lineno>Vpy||e.colno!==void 0&&e.colno>Mpy}function Hpy(e,t){let r=Lon.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function $py(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=q4u(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+UIs:(i.push(n),n=q4u(o)),t++}return i}function q4u(e){return[K4u(e),J4u(e)]}function K4u(e){return Math.max(1,e-UIs)}function J4u(e){return e+UIs}function Kpy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Jpy(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function Ypy(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function Y4u(e,t){globalThis.process?.on("uncaughtException",Ypy(e,t))}function X4u(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Xpy=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Bon({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return l4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||Hbe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(Y4u(this.onException.bind(this),this.onFatalError.bind(this)),X4u(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(Xpy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var Z4u="5.24.7";var MPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function eLu(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Zpy=6e4,efy=1152921504606847e3,tfy=["is_not"],R2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Kbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},qon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Kbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Kbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Kbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?oLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):iLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await tLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await tLu(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(Zpy,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new R2t(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new R2t(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new R2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof R2t&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=m_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function tLu(e,t,r=""){let n=await eLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/efy}function iLu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new XE("Operator is_not_set is not supported")}else throw new XE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!tfy.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return rLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return rLu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new XE("Date operations cannot be performed on boolean values");let u=nfy(String(i));if(u==null&&(u=nLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=nLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function rfy(e,t){if(!(e in t))throw new Kbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function oLu(e,t,r,n=!1){let i=String(e.value);rfy(i,r);let o=r[i];return sLu(o,t,r,n)}function sLu(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=sLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Kbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=oLu(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=iLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Kbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function rLu(e){try{return new RegExp(e),!0}catch{return!1}}function nLu(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new XE(`${e} is in an invalid date format`)}throw new XE(`The date provided ${e} must be a string, number, or date object`)}function nfy(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Won=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var ify=100,aLu=3e4,ofy=5e4,Gon=class extends QPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Won,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,ify):aLu,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new qon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||ofy}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return Z4u}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=aLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Kbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=MPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(MPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(MPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(MPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=m_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(d4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=Hbe(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&c4u(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",h.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:h,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var cLu=require("async_hooks"),Hon=class{constructor(){this.storage=new cLu.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){if(n?.fresh===!0)return this.storage.run(t,r);{let o=this.get()||{},s={distinctId:t.distinctId??o.distinctId,sessionId:t.sessionId??o.sessionId,properties:{...o.properties||{},...t.properties||{}}};return this.storage.run(s,r)}}};var uLu="posthog-node";function sfy(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[LIs.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],m=p.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:m,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var LIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=uLu,this.name=uLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(sfy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new B3.ErrorPropertiesBuilder([new B3.EventCoercer,new B3.ErrorCoercer,new B3.ObjectCoercer,new B3.StringCoercer,new B3.PrimitiveCoercer],B3.createStackParser("node:javascript",B3.nodeStackLineParser),[n4u(),$4u]);var YWe=class extends Gon{getLibraryId(){return"posthog-node"}initializeContext(){return new Hon}};var $on=class{posthog;constructor({posthogApiKey:t}){this.posthog=new YWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.90.3",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var VPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var F2t=require("fs/promises"),dLu=require("os"),hLu=require("path");var lLu=He(require("crypto")),Jon=new Uint8Array(256),Kon=Jon.length;function qIs(){return Kon>Jon.length-16&&(lLu.default.randomFillSync(Jon),Kon=0),Jon.slice(Kon,Kon+=16)}var pLu=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function afy(e){return typeof e=="string"&&pLu.test(e)}var WIs=afy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function fLu(e,t=0){return dz[e[t+0]]+dz[e[t+1]]+dz[e[t+2]]+dz[e[t+3]]+"-"+dz[e[t+4]]+dz[e[t+5]]+"-"+dz[e[t+6]]+dz[e[t+7]]+"-"+dz[e[t+8]]+dz[e[t+9]]+"-"+dz[e[t+10]]+dz[e[t+11]]+dz[e[t+12]]+dz[e[t+13]]+dz[e[t+14]]+dz[e[t+15]]}var mLu=He(require("crypto")),GIs={randomUUID:mLu.default.randomUUID};function cfy(e,t,r){if(GIs.randomUUID&&!t&&!e)return GIs.randomUUID();e=e||{};let n=e.random||(e.rng||qIs)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return fLu(n)}var mR=cfy;var ufy="id",lfy=".fern",UPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new YWe(r),this.userId=t==null?void 0:Cvs(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"3.90.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,dLu.homedir)()),Ze.of(lfy),Ze.of(ufy));await qr(t)||(await(0,F2t.mkdir)((0,hLu.dirname)(t),{recursive:!0}),await(0,F2t.writeFile)(t,mR())),this.persistedDistinctId=(await(0,F2t.readFile)(t)).toString()}return this.persistedDistinctId}};var HIs;async function N2t(){return HIs==null&&(HIs=await pfy()),HIs}async function pfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new VPr;let r=await mZr();return r!=null?new UPr({token:r,posthogApiKey:e}):await Cbe()!=null?new $on({posthogApiKey:e}):new UPr({token:void 0,posthogApiKey:e})}catch{return new VPr}}var gLu=(e=0)=>t=>`\x1B[${t+e}m`,yLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ALu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,fI={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},xnI=Object.keys(fI.modifier),ffy=Object.keys(fI.color),mfy=Object.keys(fI.bgColor),PnI=[...ffy,...mfy];function dfy(){let e=new Map;for(let[t,r]of Object.entries(fI)){for(let[n,i]of Object.entries(r))fI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=fI[n],e.set(i[0],i[1]);Object.defineProperty(fI,t,{value:r,enumerable:!1})}return Object.defineProperty(fI,"codes",{value:e,enumerable:!1}),fI.color.close="\x1B[39m",fI.bgColor.close="\x1B[49m",fI.color.ansi=gLu(),fI.color.ansi256=yLu(),fI.color.ansi16m=ALu(),fI.bgColor.ansi=gLu(10),fI.bgColor.ansi256=yLu(10),fI.bgColor.ansi16m=ALu(10),Object.defineProperties(fI,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>fI.rgbToAnsi256(...fI.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>fI.ansi256ToAnsi(fI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>fI.ansi256ToAnsi(fI.hexToAnsi256(t)),enumerable:!1}}),fI}var hfy=dfy(),fue=hfy;var Xon=He(require("process"),1),_Lu=He(require("os"),1),$Is=He(require("tty"),1);function sJ(e,t=globalThis.Deno?globalThis.Deno.args:Xon.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=Xon.default,Yon;sJ("no-color")||sJ("no-colors")||sJ("color=false")||sJ("color=never")?Yon=0:(sJ("color")||sJ("colors")||sJ("color=true")||sJ("color=always"))&&(Yon=1);function gfy(){if("FORCE_COLOR"in mI)return mI.FORCE_COLOR==="true"?1:mI.FORCE_COLOR==="false"?0:mI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(mI.FORCE_COLOR,10),3)}function yfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Afy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=gfy();n!==void 0&&(Yon=n);let i=r?Yon:n;if(i===0)return 0;if(r){if(sJ("color=16m")||sJ("color=full")||sJ("color=truecolor"))return 3;if(sJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(Xon.default.platform==="win32"){let s=_Lu.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in mI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in mI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in mI)||mI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in mI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(mI.TEAMCITY_VERSION)?1:0;if(mI.COLORTERM==="truecolor"||mI.TERM==="xterm-kitty"||mI.TERM==="xterm-ghostty"||mI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in mI){let s=Number.parseInt((mI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(mI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(mI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(mI.TERM)||"COLORTERM"in mI?1:o}function bLu(e,t={}){let r=Afy(e,{streamIsTTY:e&&e.isTTY,...t});return yfy(r)}var bfy={stdout:bLu({isTTY:$Is.default.isatty(1)}),stderr:bLu({isTTY:$Is.default.isatty(2)})},vLu=bfy;function OLu(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let i=t.length,o=0,s="";do s+=e.slice(o,n)+t+r,o=n+i,n=e.indexOf(t,o);while(n!==-1);return s+=e.slice(o),s}function ELu(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
1462
1462
  `:`
1463
1463
  `)+r,i=n+1,n=e.indexOf(`
1464
1464
  `,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:wLu,stderr:xLu}=vLu,KIs=Symbol("GENERATOR"),k2t=Symbol("STYLER"),LPr=Symbol("IS_EMPTY"),PLu=["ansi","ansi","ansi256","ansi16m"],z2t=Object.create(null),_fy=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=wLu?wLu.level:0;e.level=t.level===void 0?r:t.level};var vfy=e=>{let t=(...r)=>r.join(" ");return _fy(t,e),Object.setPrototypeOf(t,qPr.prototype),t};function qPr(e){return vfy(e)}Object.setPrototypeOf(qPr.prototype,Function.prototype);for(let[e,t]of Object.entries(fue))z2t[e]={get(){let r=Zon(this,YIs(t.open,t.close,this[k2t]),this[LPr]);return Object.defineProperty(this,e,{value:r}),r}};z2t.visible={get(){let e=Zon(this,this[k2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var JIs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?fue[r].ansi16m(...n):t==="ansi256"?fue[r].ansi256(fue.rgbToAnsi256(...n)):fue[r].ansi(fue.rgbToAnsi(...n)):e==="hex"?JIs("rgb",t,r,...fue.hexToRgb(...n)):fue[r][e](...n),Ofy=["rgb","hex","ansi256"];for(let e of Ofy){z2t[e]={get(){let{level:r}=this;return function(...n){let i=YIs(JIs(e,PLu[r],"color",...n),fue.color.close,this[k2t]);return Zon(this,i,this[LPr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);z2t[t]={get(){let{level:r}=this;return function(...n){let i=YIs(JIs(e,PLu[r],"bgColor",...n),fue.bgColor.close,this[k2t]);return Zon(this,i,this[LPr])}}}}var Efy=Object.defineProperties(()=>{},{...z2t,level:{enumerable:!0,get(){return this[KIs].level},set(e){this[KIs].level=e}}}),YIs=(e,t,r)=>{let n,i;return r===void 0?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},Zon=(e,t,r)=>{let n=(...i)=>wfy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,Efy),n[KIs]=e,n[k2t]=t,n[LPr]=r,n},wfy=(e,t)=>{if(e.level<=0||!t)return e[LPr]?"":t;let r=e[k2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=OLu(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
@@ -2133,7 +2133,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
2133
2133
  Learn more about project structure:
2134
2134
  https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=nr.V1.SlugGenerator.init(nr.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>nr.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return OB(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=nr.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:o,child:s}}async toVersionedNode(t,r){let n=this.#e.get("versioned"),i=t.versions[0];if(i?.hidden===!0)throw new Error(`The default version "${i.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`);let o=5,s=[];for(let a=0;a<t.versions.length;a+=o){let c=t.versions.slice(a,a+o),u=await Promise.all(c.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...u)}return{id:n,type:"versioned",children:s}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??M0(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n);break;default:Ue(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:FV.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),o=r.setVersionSlug(t.slug??M0(t.version)),s=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,o):await this.toSidebarRootNode(i,t.navigation.items,o);return{type:"version",id:i,versionId:nr.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?ZIA(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,o):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(c=>this.toNavigationChild({prefix:i,item:c,parentSlug:n})))).filter(c=>c!=null),a=[];return s.forEach(c=>{if(c.type==="apiReference"){a.push(c);return}let u=c.type==="section"&&(c.collapsible===!0||c.collapsible==null&&c.collapsed===!0);if(c.type==="section"&&!u){a.push(c);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},a.push(p)),p.children.push(c)}),{type:"sidebarRoot",id:i,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,children:[{type:"varianted",id:i,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??M0(t.title)}`),o=n.apply({urlSlug:t.slug??M0(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(c=>this.toVariantChild(c,i,o)))).filter(c=>c!=null);return{type:"variant",id:i,variantId:nr.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return OB(t)._visit({page:async i=>this.toPageNode({item:i,parentSlug:n}),apiSection:async i=>this.toApiSectionNode({item:i,parentSlug:n}),section:async i=>this.toSectionNode({prefix:r,item:i,parentSlug:n}),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n),librarySection:async i=>this.handleLibrarySection(i,n)})}async toNavigationChild({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){return OB(r)._visit({page:async s=>this.toPageNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),apiSection:async s=>this.toApiSectionNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),section:async s=>this.toSectionNode({prefix:t,item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),link:async s=>this.toLinkNode(s),changelog:async s=>this.toChangelogNode(s,n,i),librarySection:async s=>this.handleLibrarySection(s,n)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=HNl(t.snippetsConfiguration),s,a,c,u,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{c=this.getOpenApiWorkspaceForApiSection(t),s=await c.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(v){u=v}let m;if(t.tagDescriptionPages&&p)try{let _=await(c??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});_.tags.tagsById&&(m=Object.fromEntries(Object.entries(_.tags.tagsById).filter(([O,E])=>E.description&&E.description.trim().length>0).map(([O,E])=>[ao(O),{id:String(E.id),description:E.description}])))}catch(v){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(v))}if(s==null){if(this.apiWorkspaces.length===0&&u!=null)throw u;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Nw({workspace:a,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},readme:void 0,version:void 0,packageName:void 0,context:this.taskContext,sourceResolver:new bE(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(v){this.taskContext.logger.debug(`Could not load workspace: ${v}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=ej(s,{onError:v=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${v}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),h=t.apiName??a?.workspaceName??c?.workspaceName,g=await this.registerApi({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:h,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types}),y=ERr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new ANn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,m,f.namespacesByOperationId),b=A.getTagDescriptionContent();for(let[v,_]of b.entries()){let O=v.split("/").pop()||v,E=Ze.of(O),P=_;this.docsWorkspace.config.settings?.substituteEnvVars&&(P=ej(_,{onError:x=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${x}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[E]=P,this.parsedDocsConfig.pages[E]=P}return A.get()}async toChangelogNode(t,r,n){return new gEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:nr.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(){let t={},r={},n=new Map;for(let i of this.ossWorkspaces){let o=i.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let c=await new g3t({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,c.graphqlOperations),Object.assign(r,c.types),s.namespace)for(let u of Object.keys(c.graphqlOperations))n.set(vn.GraphQlOperationId(u),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}}return{operations:t,types:r,namespacesByOperationId:n}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=aa(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??M0(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=It(r,Ze.of("_navigation.yml"));if(!(0,G$s.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,AHe.readFile)(n,"utf-8")).split(`
2135
2135
  `).filter(s=>!s.startsWith("#")).join(`
2136
- `);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,G$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,AHe.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return OB(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new gEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}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(tu),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return OB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function XIA(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${UU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function ZIA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(tu)}async function H$s(e,t,r){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return VU({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var ku={};D(ku,{AlgoliaSearchIndex:()=>mkl,ApiDefinitionId:()=>Rkl,ApiId:()=>zkl,Availability:()=>Zkl,DocsConfigId:()=>Qkl,EndpointId:()=>Vkl,EndpointPathLiteral:()=>Ykl,EnvironmentId:()=>Mkl,FileId:()=>Gkl,HttpMethod:()=>Xkl,IndexSegmentId:()=>dkl,JqString:()=>$kl,OrgId:()=>Nkl,PageId:()=>Wkl,PayloadLocation:()=>Pzl,PropertyKey:()=>Kkl,PullRequestState:()=>vzl,RoleId:()=>Jkl,TokenId:()=>kkl,TypeId:()=>qkl,Url:()=>Hkl,VersionId:()=>Fkl,WebSocketId:()=>Ukl,WebhookId:()=>Lkl,algolia:()=>$$s,api:()=>iKs,commons:()=>oKs,diff:()=>ezl,docs:()=>dKs,generators:()=>gKs,git:()=>yKs,navigation:()=>_Ks,sdks:()=>OKs,snippets:()=>wzl,snippetsFactory:()=>xzl,templates:()=>EKs,tokens:()=>Izl});var $$s={};D($$s,{AlgoliaSearchIndex:()=>mkl,IndexSegmentId:()=>dkl});function mkl(e){return e}function dkl(e){return e}var iKs={};D(iKs,{latest:()=>Y$s,v1:()=>nKs});var Y$s={};D(Y$s,{AuthSchemeId:()=>hkl,WebhookHttpMethod:()=>bkl,auth:()=>K$s,commons:()=>gkl,endpoint:()=>ykl,type_:()=>Akl,webhook:()=>J$s,websocket:()=>_kl});var K$s={};D(K$s,{AuthSchemeId:()=>hkl});function hkl(e){return e}var gkl={};var ykl={};var Akl={};var J$s={};D(J$s,{WebhookHttpMethod:()=>bkl});var bkl={Get:"GET",Post:"POST"};var _kl={};var nKs={};D(nKs,{SubpackageId:()=>jkl,WebSocketMessageId:()=>Bkl,WebSocketMessageOrigin:()=>Tkl,WebhookHttpMethod:()=>Dkl,commons:()=>rKs,db:()=>X$s,read:()=>eKs,register:()=>tKs});var X$s={};D(X$s,{endpoint:()=>vkl});var vkl={};var eKs={};D(eKs,{SupportedLanguage:()=>Okl,endpoint:()=>Z$s,type_:()=>Ekl,webhook:()=>wkl,websocket:()=>xkl});var Z$s={};D(Z$s,{SupportedLanguage:()=>Okl});var Okl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Ekl={};var wkl={};var xkl={};var tKs={};D(tKs,{SourceId:()=>eCA,endpoint:()=>Pkl,type_:()=>Ikl,webhook:()=>Ckl,websocket:()=>Skl});var Pkl={};var Ikl={};var Ckl={};var Skl={};function eCA(e){return e}var rKs={};D(rKs,{SubpackageId:()=>jkl,WebSocketMessageId:()=>Bkl,WebSocketMessageOrigin:()=>Tkl,WebhookHttpMethod:()=>Dkl});function jkl(e){return e}function Bkl(e){return e}var Tkl={Client:"client",Server:"server"};var Dkl={Get:"GET",Post:"POST"};var oKs={};D(oKs,{ApiDefinitionId:()=>Rkl,ApiId:()=>zkl,Availability:()=>Zkl,DocsConfigId:()=>Qkl,EndpointId:()=>Vkl,EndpointPathLiteral:()=>Ykl,EnvironmentId:()=>Mkl,FileId:()=>Gkl,HttpMethod:()=>Xkl,JqString:()=>$kl,OrgId:()=>Nkl,PageId:()=>Wkl,PropertyKey:()=>Kkl,RoleId:()=>Jkl,TokenId:()=>kkl,TypeId:()=>qkl,Url:()=>Hkl,VersionId:()=>Fkl,WebSocketId:()=>Ukl,WebhookId:()=>Lkl});function Rkl(e){return e}function Fkl(e){return e}function Nkl(e){return e}function kkl(e){return e}function zkl(e){return e}function Qkl(e){return e}function Mkl(e){return e}function Vkl(e){return e}function Ukl(e){return e}function Lkl(e){return e}function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}var Xkl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var Zkl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var ezl={};var dKs={};D(dKs,{latest:()=>cKs,v1:()=>fKs,v2:()=>mKs});var cKs={};D(cKs,{Layout:()=>rzl,MdxEngine:()=>tCA,TwitterCardSetting:()=>nzl,commons:()=>tzl,frontmatter:()=>sKs,seo:()=>aKs});var tCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var tzl={};var sKs={};D(sKs,{Layout:()=>rzl});var rzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var aKs={};D(aKs,{TwitterCardSetting:()=>nzl});var nzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fKs={};D(fKs,{commons:()=>pKs,db:()=>izl,read:()=>ozl,write:()=>uKs});var izl={};var ozl={};var uKs={};D(uKs,{DocsRegistrationId:()=>nCA,FilePath:()=>rCA});function rCA(e){return e}function nCA(e){return e}var pKs={};D(pKs,{ContentAlignment:()=>uzl,FontDisplay:()=>dzl,FontStyle:()=>mzl,HeaderPosition:()=>lzl,JsScriptStrategy:()=>fzl,ProgrammingLanguage:()=>szl,SearchbarPlacement:()=>azl,TabsPlacement:()=>czl,TwitterCardSetting:()=>pzl,commons:()=>lKs});var lKs={};D(lKs,{ContentAlignment:()=>uzl,FontDisplay:()=>dzl,FontStyle:()=>mzl,HeaderPosition:()=>lzl,JsScriptStrategy:()=>fzl,ProgrammingLanguage:()=>szl,SearchbarPlacement:()=>azl,TabsPlacement:()=>czl,TwitterCardSetting:()=>pzl});var szl={Typescript:"typescript",Javascript:"javascript",Python:"python",Java:"java",Go:"go",Ruby:"ruby",Csharp:"csharp",Nodets:"nodets",Nodejs:"nodejs",Dotnet:"dotnet",Curl:"curl",Jvm:"jvm",Ts:"ts",Js:"js"};var azl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var czl={Header:"HEADER",Sidebar:"SIDEBAR"};var uzl={Center:"CENTER",Left:"LEFT"};var lzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var pzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var mzl={Normal:"normal",Italic:"italic"};var dzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var mKs={};D(mKs,{read:()=>hzl,write:()=>gzl});var hzl={};var gzl={};var gKs={};D(gKs,{ChangelogEntryType:()=>Azl,GeneratorId:()=>iCA,GeneratorLanguage:()=>oCA,ReleaseType:()=>bzl,cli:()=>yzl,commons:()=>hKs,versions:()=>_zl});var yzl={};var hKs={};D(hKs,{ChangelogEntryType:()=>Azl,ReleaseType:()=>bzl});var Azl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var bzl={Ga:"GA",Rc:"RC"};var _zl={};function iCA(e){return e}var oCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var yKs={};D(yKs,{PullRequestState:()=>vzl});var vzl={Open:"open",Closed:"closed",Merged:"merged"};var _Ks={};D(_Ks,{latest:()=>AKs,v1:()=>bKs});var AKs={};D(AKs,{NodeId:()=>cCA,ProductId:()=>uCA,Slug:()=>sCA,TabId:()=>aCA});function sCA(e){return e}function aCA(e){return e}function cCA(e){return e}function uCA(e){return e}var bKs={};D(bKs,{NavigationV1Availability:()=>dCA,NodeId:()=>fCA,ProductId:()=>mCA,Slug:()=>lCA,TabId:()=>pCA});function lCA(e){return e}function pCA(e){return e}function fCA(e){return e}function mCA(e){return e}var dCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var OKs={};D(OKs,{Language:()=>Ozl,VersionBump:()=>Ezl,versions:()=>vKs});var vKs={};D(vKs,{Language:()=>Ozl,VersionBump:()=>Ezl});var Ozl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Ezl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var wzl={};var xzl={};var EKs={};D(EKs,{PayloadLocation:()=>Pzl});var Pzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var Izl={};var SNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Czl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var jNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function Szl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends jNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${Szl(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},Oj=class extends sa{},D5=class extends Oj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var jzl="x-fern-base-path",Bzl="x-fern-availability",BNn="x-fern-sdk-group-name",Tzl="x-fern-global-headers",Dzl="x-fern-sdk-method-name";var Rzl="x-fern-webhook",Fzl="x-fern-access-token-locator",Nzl="x-fern-basic",kzl="x-fern-username-variable-name",zzl="x-fern-password-variable-name",Qzl="x-fern-bearer",Mzl="x-fern-token-variable-name",Vzl="x-fern-header",Uzl="x-fern-header-variable-name",Lzl="x-fern-server-name",qzl="x-fern-examples";var TNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Lzl]}convert(){if(this.serverName!=null)return this.serverName}};var DNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new TNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function bHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new DNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function RNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var l2l=He(oI());var FNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Nzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var NNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[zzl]}convert(){return this.passwordVariableName}};var kNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[kzl]}convert(){return this.usernameVariableName}};var zNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Qzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var QNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Mzl]}convert(){return this.tokenVariableName}};function Wzl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var Gzl="x-bearer-format",Hzl="x-code-samples",$zl="x-codeSamples";var MNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[Gzl]}convert(){return this.bearerFormat}};var VNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Vzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var UNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Uzl]}convert(){return this.headerVariableName}};function Kzl(e){return e.type==="apiKey"}var $3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){Kzl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new VNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};qns();_Dc();function LNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function K3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function yEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(yEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function qNn(e){if(Array.isArray(e))return e.map(K3t);if(typeof e=="symbol")return[e];e=yEt(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function wRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(G6r(t))return r;let n=e[t];return n===void 0?LNn(t)?wRr(e,qNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=K3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return hCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),G6r(t))return r;let n=e[t];return n===void 0?r:n}}}function hCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||G6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function Jzl(e){return function(t){return wRr(t,e)}}function Yzl(e){return e!==null&&(typeof e=="object"||typeof e=="function")}vrs();function wKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function PKs(e,t,r){return typeof r!="function"?PKs(e,t,()=>{}):xKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:xKs(i,o,n,u)},new Map)}function xKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return gCA(e,t,r,n);case"function":return Object.keys(t).length>0?xKs(e,{...t},r,n):wKs(e,t);default:return Yzl(e)?typeof t=="string"?t==="":!0:wKs(e,t)}}function gCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Xzl(e,t,r,n);if(t instanceof Map)return yCA(e,t,r,n);if(t instanceof Set)return ACA(e,t,r,n);let i=Object.keys(t);if(e==null||p_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!p_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function yCA(e,t,r,n){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,o]of t.entries()){let s=e.get(i);if(r(s,o,i,e,t,n)===!1)return!1}return!0}function Xzl(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let u=e[c],l=!1;if(r(u,s,o,e,t,n)&&(l=!0),l){i.add(c),a=!0;break}}if(!a)return!1}return!0}function ACA(e,t,r,n){return t.size===0?!0:e instanceof Set?Xzl([...e],[...t],r,n):!1}function WNn(e,t){return PKs(e,t,()=>{})}bDc();function Zzl(e){return e=ADc(e),t=>WNn(t,e)}Ers();M6r();Ors();function e2l(e,t){return yDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(CDt(e)===W6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),E$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case U6r:case V6r:case L6r:{let a=new e.constructor(e?.valueOf());return E$(a,e),a}case q6r:{let a={};return E$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function t2l(e){return e2l(e)}var bCA=/^(?:0|[1-9]\d*)$/;function r2l(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return bCA.test(e)}}M6r();function n2l(e){return e!==null&&typeof e=="object"&&CDt(e)==="[object Arguments]"}function i2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&LNn(t)&&e?.[t]==null?r=qNn(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||n2l(n))&&r2l(o)&&o<n.length))return!1;n=n[o]}return!0}function o2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=K3t(e);break}}return t=t2l(t),function(r){let n=wRr(r,e);return n===void 0?i2l(r,e):t===void 0?n===void 0:WNn(n,t)}}function s2l(e){if(e==null)return s9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?o2l(e[0],e[1]):Zzl(e);case"string":case"symbol":case"number":return Jzl(e)}}qns();wrs();function GNn(e,t=s9r){return e==null?{}:Sk(e,s2l(t))}L2c();function a2l(e){return U2c(yEt(e))}wDc();function c2l(e){return typeof e!="string"&&(e=yEt(e)),e.replace(/['\u2019]/g,"")}function Ile(e){return EDc(c2l(a2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function HNn({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${_CA(s)}${vCA(e)}.${OCA(n,i,o,a)}`}function _CA(e){return e?"webhook_":"endpoint_"}function vCA(e){return e!=null?_O(e)?.map(t=>Ile(t)).join("/"):""}function OCA(e,t,r,n){return e||t||Ile(r??"")||Ile(n??"")}function u2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var $Nn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Fzl],this.accessTokenLocator!=null&&(u2l(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var KNn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new $Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=HNn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var J3t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new FNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new NNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new zNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new QNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{Wzl(this.input)?(this.authScheme="header",this.headerAuthNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new l2l.UnreachableCaseError(this.authScheme);return}}};var Y3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=RNn(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new J3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var JNn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[jzl],this.basePath!=null?(this.basePath.startsWith("/")&&(this.basePath=this.basePath.slice(1)),this.basePath.endsWith("/")&&(this.basePath=this.basePath.slice(0,-1))):this.basePath=void 0}convert(){return this.basePath}};function p2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function f2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function X3t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!p2l(i))&&(s=f2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function YNn(e,t){return Sy(e)?Hz(e,t,void 0):e}function _He(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function m2l(e,t){let r={...e};for(let[n,i]of Object.entries(t??{}))r[n]=[...r[n]??[],...i];return Object.keys(r).length>0?r:void 0}function d2l(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let n of e)for(let i of t)r.push({path:n.path??i.path,responseStatusCode:n.responseStatusCode??i.responseStatusCode,name:n.name??i.name,description:n.description??i.description,pathParameters:n.pathParameters??i.pathParameters,queryParameters:n.queryParameters??i.queryParameters,headers:n.headers??i.headers,requestBody:n.requestBody??i.requestBody,responseBody:n.responseBody??i.responseBody,snippets:{...i.snippets,...n.snippets}});return r}var h2l=He(oI());var IKs=["decimal","decimal128","double-int","double","float","sf-decimal"],CKs=["int16","int32","int64","int8","sf-integer","uint8"],SKs=["base64url","binary","byte","char","commonmark","date-time","date","decimal","decimal128","duration","email","hostname","html","http-date","idn-email","idn-hostname","int64","ipv4","ipv6","iri-reference","iri","json-pointer","media-range","password","regex","relative-json-pointer","sf-binary","sf-boolean","sf-string","sf-token","time","uri-reference","uri-template","uri","uuid"],jKs=["beta","pre-release","in-development","generally-available","deprecated"];function Ej(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(Ej(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Bzl];r!=null&&(jKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${jKs.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return ku.Availability.Beta;case"in-development":return ku.Availability.InDevelopment;case"generally-available":return ku.Availability.GenerallyAvailable;case"deprecated":return ku.Availability.Deprecated;case void 0:return;default:new h2l.UnreachableCaseError(this.availability);return}}};var ZNn=He(oI());function g2l(e){return typeof e=="object"&&e!=null&&"language"in e}function y2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function A2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function b2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function XNn(e){return typeof e=="object"&&e!=null&&"event"in e}function BKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(XNn)}function vHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function _2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ekn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[qzl]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return vHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>vHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new ZNn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=_2l(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new ZNn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{A2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{BKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!BKs(r.response)&&b2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ZNn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{g2l(p)?p.language!=null&&(a[p.language]??=[],a[p.language]?.push({name:p.name,language:p.language,install:p.install,code:p.code,generated:!1,description:p.docs})):y2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var xRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[BNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ile(r)))}};var tkn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Dzl]}convert(){return this.sdkMethodName}};var rkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Rzl]}convert(){return this.isWebhook}};var nkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[Hzl]??[],...this.input[$zl]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var AEt=He(oI());function TKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function v2l(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var tF="",Bve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(vHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>vHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new AEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=TKs(this.input?.requestExample,this.context.document)??(t!=null?{value:t}:void 0);let r=this.shapes.responseBody?.schema?.example({includeOptionals:!1,override:void 0});if(this.resolvedResponseInput=TKs(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(XNn)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return vHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>vHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new AEt.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new AEt.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:v2l(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Wz(this.name):this.summary!=null?Wz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function O2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var F2l=He(oI());var E2l="#/components/schemas/";function Z3t(e){if(e.$ref.startsWith(E2l))return e.$ref.replace(E2l,"")}function qVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function OHe(e){return typeof e.type=="string"&&e.type==="array"}function w2l(e){return e.type==="boolean"}function x2l(e){return e.type==="integer"}function EHe(e){return!Array.isArray(e.type)&&!OHe(e)}function P2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||EHe(t)||OHe(t))}function I2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function C2l(e){return e.type==="null"}function S2l(e){return e.type==="number"}function DKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function j2l(e){return e.type==="string"}var ikn=class extends D5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var okn=class extends Oj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var skn=class extends D5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(qVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function akn(e){return e!=null&&e.length>0?e:[void 0]}var e5t=class extends D5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return Z3t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return X3t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>akn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=Ej(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var ckn=class extends D5{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>Ej(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>Ej(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=Ej({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map(qVe).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?qVe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var ukn=class extends Oj{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var wHe=class extends Oj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=Ej(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var B2l=He(oI());function ECA(e){return CKs.includes(e)}var lkn=class extends Oj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(ECA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${CKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="integer";if(this.format!=null)switch(this.format){case"int64":t="long";break;case"int8":case"int16":case"int32":case"uint8":case"sf-integer":case void 0:t="integer";break;default:new B2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var pkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return qVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var T2l=He(oI());function wCA(e){return IKs.includes(e)}var fkn=class extends Oj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(wCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${IKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="double";if(this.format!=null)switch(this.format){case"decimal":case"decimal128":case"double-int":case"double":case"float":case"sf-decimal":case void 0:t="double";break;default:new T2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var D2l=He(oI());function xCA(e){return SKs.includes(e)}var mkn=class extends Oj{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new D2l.UnreachableCaseError(t),"string"}}parse(){this.regex=this.input.pattern,this.minLength=this.input.minLength,this.maxLength=this.input.maxLength,this.mimeType=this.input.contentMediaType,this.input.default!=null&&typeof this.input.default!="string"&&this.context.errors.warning({message:`Expected default value to be a string. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(xCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${SKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new wHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var R2l=He(oI());var dkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,R2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var bEt=class extends D5{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=Z3t(this.input);let t=Ej(this.input,this.context.document);t?.enum!=null&&EHe(t)&&(this.maybeEnumConverterNode=new wHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=Ej(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends D5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),EHe(this.input)&&I2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=Z3t(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new bEt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(P2l(this.input))this.typeShapeNode=new skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(EHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(DKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new e5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(EHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new wHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":DKs(this.input)&&(this.typeShapeNode=new e5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":OHe(this.input)&&(this.typeShapeNode=new ikn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":w2l(this.input)&&(this.typeShapeNode=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":x2l(this.input)&&(this.typeShapeNode=new lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":S2l(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":j2l(this.input)&&(this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":C2l(this.input)&&(this.typeShapeNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new F2l.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new e5t({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!OHe(this.input)&&this.input==null||OHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?qVe(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function xHe(e){if(e!=null)return X3t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Tve=class extends Oj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=O2l(this.input,this.context.document);this.inputExample=n?.example??Object.values(n?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function N2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var RKs=He(oI());function hkn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var k2l=He(NAs(),1),t5t=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=k2l.default.parse(t);return r==null?null:new e(r.type,r.subtype,r.essence,r.parameters,r,t)}toString(){return this.input}isText(){return this.type==="text"}isImage(){return this.type==="image"}isAudio(){return this.type==="audio"}isVideo(){return this.type==="video"}isFont(){return this.type==="font"}isMultipart(){return this.type==="multipart"}isApplication(){return this.type==="application"}isMessage(){return this.type==="message"}isModel(){return this.type==="model"}isCSS(){return this.isText()&&this.subtype==="css"}isCSV(){return this.isText()&&this.subtype==="csv"}isMarkdown(){return this.isText()&&this.subtype==="markdown"}isPlainText(){return this.isText()&&this.subtype==="plain"}isEventStream(){return this.isText()&&this.subtype==="event-stream"}isMultiPartFormData(){return this.isMultipart()&&this.subtype==="form-data"}isJSON(){return this.isApplication()&&this.subtype==="json"}containsJSON(){return this.isApplication()&&this.subtype.includes("json")}isURLEncoded(){return this.isApplication()&&this.subtype==="x-www-form-urlencoded"}isOctetStream(){return this.isApplication()&&this.subtype==="octet-stream"}isPDF(){return this.isApplication()&&this.subtype==="pdf"}isZip(){return this.isApplication()&&this.subtype==="zip"}isGzip(){return this.isApplication()&&this.subtype==="gzip"}isTar(){return this.isApplication()&&this.subtype==="tar"}isBrotli(){return this.isApplication()&&this.subtype==="br"}isDeflate(){return this.isApplication()&&this.subtype==="deflate"}isProtobuf(){return this.isApplication()&&this.subtype==="protobuf"}isAvif(){return this.isImage()&&this.subtype==="avif"}isWebP(){return this.isImage()&&this.subtype==="webp"}isSVG(){return this.isImage()&&this.subtype==="svg+xml"}isPNG(){return this.isImage()&&this.subtype==="png"}isJPEG(){return this.isImage()&&this.subtype==="jpeg"}isGIF(){return this.isImage()&&this.subtype==="gif"}isMPEG(){return this.isAudio()&&this.subtype==="mpeg"}isWAV(){return this.isAudio()&&this.subtype==="wav"}isHTML(){return this.mimeType.isHTML()}isXML(){return this.mimeType.isXML()}isJavaScript(){return this.mimeType.isJavaScript()}};function PCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var gkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),PCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=RNn(r.$ref,this.context.document):i=r,i!=null)return[t,new J3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var ykn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=Ej(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=Ej(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var Akn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=Ej(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new bEt({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=t5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new ykn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[tF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[tF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ile([this.method,this.path,this.contentType,"request"].join("_"));return hkn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new RKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof bEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new RKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var bkn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=N2l(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new Akn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var z2l={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};function Q2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var _kn=He(oI());var M2l="application/json";var V2l="application/octet-stream";function U2l(e,t){return e===t||t===tF||e===tF}var PRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)U2l(a,o)&&(n.add(a),this.examples?.push(new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,_He(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Bve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,_He(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Bve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,_He(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,_He(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[tF];if(o!=null)for(let s of o)this.examples?.push(new Bve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,_He(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=t5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=M2l,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=V2l,this.contentSubtype=Ej(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=GNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]=[{value:this.input.example}]);let n=Ej(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=GNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[tF]??=[],r[tF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==tF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==tF);Object.keys(r).every(a=>a===tF)||this.matchExamplesByIndex(o,s),!i.has(tF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new _kn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ile([this.method,this.path,this.statusCode,"response"].join("_"));return hkn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new _kn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new _kn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var IRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=Q2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new PRr({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new PRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var vkn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new IRr({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new IRr({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return akn(xHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??z2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var PHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Bve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,_He(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=bHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new rkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=YNn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new bkn({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new vkn({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new Y3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new xRr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new xRr({input:{[BNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new tkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>HNn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=d2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:m2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:xHe(this.queryParameters)?.flat(),headers:xHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:xHe(this.pathParameters)?.flat(),queryParameters:xHe(this.queryParameters)?.flat(),requestHeaders:xHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var r5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=bHe(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new PHe({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new PHe({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new PHe({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new PHe({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new PHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function Okn(e){return"payloads"in e}var Ekn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new r5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:bHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{Okn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var wkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Tzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||YNn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return X3t(this.globalHeaders,this.requiredProperties)?.flat()}};function L2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var xkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=L2l(o,this.context.document);if(s!=null)return new r5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{Okn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Pkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=bHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Y3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new Ekn({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new xkn({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new gkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new wkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=mR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Czl({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:ku.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};Ni();async function FKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new fle(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new SNn,generatedTypes:{}},c=new Pkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=wkt(o,c.convert())}return o}_w();Ir();var t9l=He(zKs(),1),r9l=He(fzn(),1),K2n=require("fs/promises"),n9l=He(require("http"),1),i9l=He(require("path"),1);var V4l=require("events"),yzn=He(require("fs"),1),SEt=He(require("path"),1);var E4l=He(require("os"),1),w4l=300,DHe=20,XRr=1e7,x4l=E4l.default.platform();var VRA=x4l==="darwin",nYs=x4l==="win32",RHe=VRA||nYs,P4l=3e3,I4l=2e4,iYs=1250;var Nve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Nve||(Nve={}));var CEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(CEt||(CEt={}));var ZRr;(function(e){e.CHANGE="change",e.ERROR="error"})(ZRr||(ZRr={}));var Ll;(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"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var URA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},mzn=URA;var cYs=He(require("fs"),1),hzn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var GVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},kve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var oYs=He(require("process"),1),C4l=oYs.default.getuid?!oYs.default.getuid():!1,S4l=1e4,k5=()=>{};var eFr={isChangeErrorOk:e=>{if(!eFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!C4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!eFr.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(!eFr.isNodeError(e))throw e;if(!eFr.isChangeErrorOk(e))throw e}},wj=eFr;var sYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=S4l,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()}}}}},j4l=new sYs;var HVe=(e,t)=>function(n){return function i(...o){return j4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},$Ve=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var LRA={attempt:{chmod:GVe((0,$z.promisify)(Ab.default.chmod),wj.onChangeError),chown:GVe((0,$z.promisify)(Ab.default.chown),wj.onChangeError),close:GVe((0,$z.promisify)(Ab.default.close),k5),fsync:GVe((0,$z.promisify)(Ab.default.fsync),k5),mkdir:GVe((0,$z.promisify)(Ab.default.mkdir),k5),realpath:GVe((0,$z.promisify)(Ab.default.realpath),k5),stat:GVe((0,$z.promisify)(Ab.default.stat),k5),unlink:GVe((0,$z.promisify)(Ab.default.unlink),k5),chmodSync:kve(Ab.default.chmodSync,wj.onChangeError),chownSync:kve(Ab.default.chownSync,wj.onChangeError),closeSync:kve(Ab.default.closeSync,k5),existsSync:kve(Ab.default.existsSync,k5),fsyncSync:kve(Ab.default.fsync,k5),mkdirSync:kve(Ab.default.mkdirSync,k5),realpathSync:kve(Ab.default.realpathSync,k5),statSync:kve(Ab.default.statSync,k5),unlinkSync:kve(Ab.default.unlinkSync,k5)},retry:{close:HVe((0,$z.promisify)(Ab.default.close),wj.isRetriableError),fsync:HVe((0,$z.promisify)(Ab.default.fsync),wj.isRetriableError),open:HVe((0,$z.promisify)(Ab.default.open),wj.isRetriableError),readFile:HVe((0,$z.promisify)(Ab.default.readFile),wj.isRetriableError),rename:HVe((0,$z.promisify)(Ab.default.rename),wj.isRetriableError),stat:HVe((0,$z.promisify)(Ab.default.stat),wj.isRetriableError),write:HVe((0,$z.promisify)(Ab.default.write),wj.isRetriableError),writeFile:HVe((0,$z.promisify)(Ab.default.writeFile),wj.isRetriableError),closeSync:$Ve(Ab.default.closeSync,wj.isRetriableError),fsyncSync:$Ve(Ab.default.fsyncSync,wj.isRetriableError),openSync:$Ve(Ab.default.openSync,wj.isRetriableError),readFileSync:$Ve(Ab.default.readFileSync,wj.isRetriableError),renameSync:$Ve(Ab.default.renameSync,wj.isRetriableError),statSync:$Ve(Ab.default.statSync,wj.isRetriableError),writeSync:$Ve(Ab.default.writeSync,wj.isRetriableError),writeFileSync:$Ve(Ab.default.writeFileSync,wj.isRetriableError)}},B4l=LRA;var dzn=He(require("fs"),1),tFr=He(require("path"),1);var aYs=()=>{};var qRA=()=>{let e=aYs,t=aYs,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},T4l=qRA;var WRA=()=>{let{promise:e,resolve:t,isPending:r}=T4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},D4l=WRA;var R4l={then:e=>{e()}};var F4l=e=>Array.isArray(e)?e:[e],N4l=e=>typeof e=="function";var GRA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=F4l(o).map(X=>N4l(X)?X:Z=>X.test(Z)),a=X=>s.some(Z=>Z(X)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,m={},f=[],h=new Set,g={},y=[],A=new Set,b={},v={},_=new Set,O={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},E={directories:l,directoriesNames:p,directoriesNamesToPaths:m,files:f,filesNames:h,filesNamesToPaths:g,symlinks:y,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:P,increment:x,decrement:I}=D4l(),F=0,q=(X,Z,ke,Te)=>{_.has(Z)||F>=i||(F+=1,X.directories.push(Z),X.directoriesNames.add(ke),l.push(Z),p.add(ke),m.propertyIsEnumerable(ke)||(m[ke]=[]),m[ke].push(Z),_.add(Z),!(Te>=n)&&(F>=i||ee(Z,Te+1)))},W=(X,Z,ke)=>{_.has(Z)||F>=i||(F+=1,X.files.push(Z),X.filesNames.add(ke),f.push(Z),h.add(ke),g.propertyIsEnumerable(ke)||(g[ke]=[]),g[ke].push(Z),_.add(Z))},$=(X,Z,ke,Te)=>{_.has(Z)||F>=i||(F+=1,X.symlinks.push(Z),X.symlinksNames.add(ke),y.push(Z),A.add(ke),b.propertyIsEnumerable(ke)||(b[ke]=[]),b[ke].push(Z),_.add(Z),r&&(Te>=n||F>=i||We(Z,Te+1)))},re=(X,Z,ke,Te,Je)=>{c.aborted||a(Z)||(Te.isDirectory()?q(X,Z,ke,Je):Te.isFile()?W(X,Z,ke):Te.isSymbolicLink()&&$(X,Z,ke,Je))},ce=(X,Z,ke,Te)=>{if(c.aborted)return;let Je=Z===tFr.default.sep?"":tFr.default.sep,Ye=ke.name,_e=`${Z}${Je}${Ye}`;a(_e)||(ke.isDirectory()?q(X,_e,Ye,Te):ke.isFile()?W(X,_e,Ye):ke.isSymbolicLink()&&$(X,_e,Ye,Te))},G=(X,Z,ke,Te)=>{for(let Je=0,Ye=ke.length;Je<Ye;Je++)ce(X,Z,ke[Je],Te)},ee=(X,Z)=>{c.aborted||Z>n||F>=i||(x(),dzn.default.readdir(X,{withFileTypes:!0},(ke,Te)=>{if(ke||c.aborted||!Te.length)return I();(u(Te)||R4l).then(()=>{let Ye=v[X]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,X,Te,Z),I()})}))},We=(X,Z)=>{x(),dzn.default.realpath(X,(ke,Te)=>{if(ke||c.aborted)return I();dzn.default.stat(Te,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=tFr.default.basename(Te),ge=v[X]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Te,_e,Ye,Z),I()})})};return(async(X,Z=1)=>(X=tFr.default.normalize(X),_.add(X),ee(X,Z),await P,c.aborted?O:E))(e)},k4l=GRA;var zve={lang:{debounce:mzn,attempt:e=>{try{return e()}catch(t){return zve.lang.castError(t)}},castArray:e=>zve.lang.isArray(e)?e:[e],castError:e=>zve.lang.isError(e)?e:zve.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(zve.lang.isNaN(e))return zve.lang.isNaN(t);if(zve.lang.isPrimitive(e)||zve.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(hzn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?cYs.default.realpathSync.native(e):cYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===hzn.default.sep&&t.length-e.length>hzn.default.sep.length,poll:(e,t=I4l)=>B4l.retry.stat(t)(e,{bigint:!0}).catch(zve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await k4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=zve;var gzn=He(require("path"),1);var uYs=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||th.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=w4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??DHe:Math.min(1,this.options.depth??DHe),s=this.options.limit??XRr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!RHe&&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(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(gzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(gzn.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(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.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=CEt.CHANGE,r){if(this.watcher.isClosed())return;let n=gzn.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){nYs&&t.code==="EPERM"?this.onWatcherChange(CEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(ZRr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(ZRr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(CEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&RHe&&this.options.native!==!1?this.options.depth??DHe:Math.min(1,this.options.depth??DHe),n=this.options.limit??XRr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(CEt.CHANGE,a,t)}))}}},z4l=uYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},rFr=GU;var nFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=iYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),rFr.remove(u)},u=()=>{c(),a()};rFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=iYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),rFr.remove(u)},u=()=>{c(),a()};rFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Nve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Nve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Nve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Nve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};nFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};nFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var Q4l=nFr;var lYs=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(th.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(th.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(th.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(th.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return th.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);th.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},pYs=lYs;var fYs=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}},M4l=fYs;var mYs=class{constructor(){this.inos={},this.paths=new pYs,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await th.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new M4l(n)}reset(){this.inos={},this.paths=new pYs,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,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Nve.FILE:Nve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},dYs=mYs;var hYs=class e extends V4l.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(WU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(WU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(WU.READY,i)),this._locker=new Q4l(this),this._roots=new Set,this._poller=new dYs,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&&(th.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(WU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(WU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(WU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(WU.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)th.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new z4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=SEt.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??DHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&RHe&&l.options.native!==!1)))return!0;if(!RHe)break;let u=SEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||RHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:yzn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=SEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||RHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??DHe,a=r.limit??XRr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=SEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new dYs,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return th.lang.noop;if(this.pollerExists(t,r))return th.lang.noop;let i={...r,interval:r.pollingInterval??P4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),yzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),yzn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=SEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=SEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Azn=hYs;Tzn();Ir();var P5t=require("fs/promises"),HLl=require("os"),$Ll=He(require("path"),1),hNA=".fern",gNA="logs";function yNA(){return"cli@3.90.2"}var FEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,HLl.homedir)()),Ze.of(hNA)),r=It(t,Ze.of(gNA));await qr(r)||await(0,P5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${$Ll.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2136
+ `);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,G$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,AHe.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return OB(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new gEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}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(tu),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return OB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function XIA(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${UU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function ZIA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(tu)}async function H$s(e,t,r){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return VU({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var ku={};D(ku,{AlgoliaSearchIndex:()=>mkl,ApiDefinitionId:()=>Rkl,ApiId:()=>zkl,Availability:()=>Zkl,DocsConfigId:()=>Qkl,EndpointId:()=>Vkl,EndpointPathLiteral:()=>Ykl,EnvironmentId:()=>Mkl,FileId:()=>Gkl,HttpMethod:()=>Xkl,IndexSegmentId:()=>dkl,JqString:()=>$kl,OrgId:()=>Nkl,PageId:()=>Wkl,PayloadLocation:()=>Pzl,PropertyKey:()=>Kkl,PullRequestState:()=>vzl,RoleId:()=>Jkl,TokenId:()=>kkl,TypeId:()=>qkl,Url:()=>Hkl,VersionId:()=>Fkl,WebSocketId:()=>Ukl,WebhookId:()=>Lkl,algolia:()=>$$s,api:()=>iKs,commons:()=>oKs,diff:()=>ezl,docs:()=>dKs,generators:()=>gKs,git:()=>yKs,navigation:()=>_Ks,sdks:()=>OKs,snippets:()=>wzl,snippetsFactory:()=>xzl,templates:()=>EKs,tokens:()=>Izl});var $$s={};D($$s,{AlgoliaSearchIndex:()=>mkl,IndexSegmentId:()=>dkl});function mkl(e){return e}function dkl(e){return e}var iKs={};D(iKs,{latest:()=>Y$s,v1:()=>nKs});var Y$s={};D(Y$s,{AuthSchemeId:()=>hkl,WebhookHttpMethod:()=>bkl,auth:()=>K$s,commons:()=>gkl,endpoint:()=>ykl,type_:()=>Akl,webhook:()=>J$s,websocket:()=>_kl});var K$s={};D(K$s,{AuthSchemeId:()=>hkl});function hkl(e){return e}var gkl={};var ykl={};var Akl={};var J$s={};D(J$s,{WebhookHttpMethod:()=>bkl});var bkl={Get:"GET",Post:"POST"};var _kl={};var nKs={};D(nKs,{SubpackageId:()=>jkl,WebSocketMessageId:()=>Bkl,WebSocketMessageOrigin:()=>Tkl,WebhookHttpMethod:()=>Dkl,commons:()=>rKs,db:()=>X$s,read:()=>eKs,register:()=>tKs});var X$s={};D(X$s,{endpoint:()=>vkl});var vkl={};var eKs={};D(eKs,{SupportedLanguage:()=>Okl,endpoint:()=>Z$s,type_:()=>Ekl,webhook:()=>wkl,websocket:()=>xkl});var Z$s={};D(Z$s,{SupportedLanguage:()=>Okl});var Okl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Ekl={};var wkl={};var xkl={};var tKs={};D(tKs,{SourceId:()=>eCA,endpoint:()=>Pkl,type_:()=>Ikl,webhook:()=>Ckl,websocket:()=>Skl});var Pkl={};var Ikl={};var Ckl={};var Skl={};function eCA(e){return e}var rKs={};D(rKs,{SubpackageId:()=>jkl,WebSocketMessageId:()=>Bkl,WebSocketMessageOrigin:()=>Tkl,WebhookHttpMethod:()=>Dkl});function jkl(e){return e}function Bkl(e){return e}var Tkl={Client:"client",Server:"server"};var Dkl={Get:"GET",Post:"POST"};var oKs={};D(oKs,{ApiDefinitionId:()=>Rkl,ApiId:()=>zkl,Availability:()=>Zkl,DocsConfigId:()=>Qkl,EndpointId:()=>Vkl,EndpointPathLiteral:()=>Ykl,EnvironmentId:()=>Mkl,FileId:()=>Gkl,HttpMethod:()=>Xkl,JqString:()=>$kl,OrgId:()=>Nkl,PageId:()=>Wkl,PropertyKey:()=>Kkl,RoleId:()=>Jkl,TokenId:()=>kkl,TypeId:()=>qkl,Url:()=>Hkl,VersionId:()=>Fkl,WebSocketId:()=>Ukl,WebhookId:()=>Lkl});function Rkl(e){return e}function Fkl(e){return e}function Nkl(e){return e}function kkl(e){return e}function zkl(e){return e}function Qkl(e){return e}function Mkl(e){return e}function Vkl(e){return e}function Ukl(e){return e}function Lkl(e){return e}function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}var Xkl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var Zkl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var ezl={};var dKs={};D(dKs,{latest:()=>cKs,v1:()=>fKs,v2:()=>mKs});var cKs={};D(cKs,{Layout:()=>rzl,MdxEngine:()=>tCA,TwitterCardSetting:()=>nzl,commons:()=>tzl,frontmatter:()=>sKs,seo:()=>aKs});var tCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var tzl={};var sKs={};D(sKs,{Layout:()=>rzl});var rzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var aKs={};D(aKs,{TwitterCardSetting:()=>nzl});var nzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fKs={};D(fKs,{commons:()=>pKs,db:()=>izl,read:()=>ozl,write:()=>uKs});var izl={};var ozl={};var uKs={};D(uKs,{DocsRegistrationId:()=>nCA,FilePath:()=>rCA});function rCA(e){return e}function nCA(e){return e}var pKs={};D(pKs,{ContentAlignment:()=>uzl,FontDisplay:()=>dzl,FontStyle:()=>mzl,HeaderPosition:()=>lzl,JsScriptStrategy:()=>fzl,ProgrammingLanguage:()=>szl,SearchbarPlacement:()=>azl,TabsPlacement:()=>czl,TwitterCardSetting:()=>pzl,commons:()=>lKs});var lKs={};D(lKs,{ContentAlignment:()=>uzl,FontDisplay:()=>dzl,FontStyle:()=>mzl,HeaderPosition:()=>lzl,JsScriptStrategy:()=>fzl,ProgrammingLanguage:()=>szl,SearchbarPlacement:()=>azl,TabsPlacement:()=>czl,TwitterCardSetting:()=>pzl});var szl={Typescript:"typescript",Javascript:"javascript",Python:"python",Java:"java",Go:"go",Ruby:"ruby",Csharp:"csharp",Nodets:"nodets",Nodejs:"nodejs",Dotnet:"dotnet",Curl:"curl",Jvm:"jvm",Ts:"ts",Js:"js"};var azl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var czl={Header:"HEADER",Sidebar:"SIDEBAR"};var uzl={Center:"CENTER",Left:"LEFT"};var lzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var pzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var mzl={Normal:"normal",Italic:"italic"};var dzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var mKs={};D(mKs,{read:()=>hzl,write:()=>gzl});var hzl={};var gzl={};var gKs={};D(gKs,{ChangelogEntryType:()=>Azl,GeneratorId:()=>iCA,GeneratorLanguage:()=>oCA,ReleaseType:()=>bzl,cli:()=>yzl,commons:()=>hKs,versions:()=>_zl});var yzl={};var hKs={};D(hKs,{ChangelogEntryType:()=>Azl,ReleaseType:()=>bzl});var Azl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var bzl={Ga:"GA",Rc:"RC"};var _zl={};function iCA(e){return e}var oCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var yKs={};D(yKs,{PullRequestState:()=>vzl});var vzl={Open:"open",Closed:"closed",Merged:"merged"};var _Ks={};D(_Ks,{latest:()=>AKs,v1:()=>bKs});var AKs={};D(AKs,{NodeId:()=>cCA,ProductId:()=>uCA,Slug:()=>sCA,TabId:()=>aCA});function sCA(e){return e}function aCA(e){return e}function cCA(e){return e}function uCA(e){return e}var bKs={};D(bKs,{NavigationV1Availability:()=>dCA,NodeId:()=>fCA,ProductId:()=>mCA,Slug:()=>lCA,TabId:()=>pCA});function lCA(e){return e}function pCA(e){return e}function fCA(e){return e}function mCA(e){return e}var dCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var OKs={};D(OKs,{Language:()=>Ozl,VersionBump:()=>Ezl,versions:()=>vKs});var vKs={};D(vKs,{Language:()=>Ozl,VersionBump:()=>Ezl});var Ozl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Ezl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var wzl={};var xzl={};var EKs={};D(EKs,{PayloadLocation:()=>Pzl});var Pzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var Izl={};var SNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Czl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var jNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function Szl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends jNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${Szl(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},Oj=class extends sa{},D5=class extends Oj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var jzl="x-fern-base-path",Bzl="x-fern-availability",BNn="x-fern-sdk-group-name",Tzl="x-fern-global-headers",Dzl="x-fern-sdk-method-name";var Rzl="x-fern-webhook",Fzl="x-fern-access-token-locator",Nzl="x-fern-basic",kzl="x-fern-username-variable-name",zzl="x-fern-password-variable-name",Qzl="x-fern-bearer",Mzl="x-fern-token-variable-name",Vzl="x-fern-header",Uzl="x-fern-header-variable-name",Lzl="x-fern-server-name",qzl="x-fern-examples";var TNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Lzl]}convert(){if(this.serverName!=null)return this.serverName}};var DNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new TNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function bHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new DNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function RNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var l2l=He(oI());var FNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Nzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var NNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[zzl]}convert(){return this.passwordVariableName}};var kNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[kzl]}convert(){return this.usernameVariableName}};var zNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Qzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var QNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Mzl]}convert(){return this.tokenVariableName}};function Wzl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var Gzl="x-bearer-format",Hzl="x-code-samples",$zl="x-codeSamples";var MNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[Gzl]}convert(){return this.bearerFormat}};var VNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Vzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var UNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Uzl]}convert(){return this.headerVariableName}};function Kzl(e){return e.type==="apiKey"}var $3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){Kzl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new VNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};qns();_Dc();function LNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function K3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function yEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(yEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function qNn(e){if(Array.isArray(e))return e.map(K3t);if(typeof e=="symbol")return[e];e=yEt(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function wRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(G6r(t))return r;let n=e[t];return n===void 0?LNn(t)?wRr(e,qNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=K3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return hCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),G6r(t))return r;let n=e[t];return n===void 0?r:n}}}function hCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||G6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function Jzl(e){return function(t){return wRr(t,e)}}function Yzl(e){return e!==null&&(typeof e=="object"||typeof e=="function")}vrs();function wKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function PKs(e,t,r){return typeof r!="function"?PKs(e,t,()=>{}):xKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:xKs(i,o,n,u)},new Map)}function xKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return gCA(e,t,r,n);case"function":return Object.keys(t).length>0?xKs(e,{...t},r,n):wKs(e,t);default:return Yzl(e)?typeof t=="string"?t==="":!0:wKs(e,t)}}function gCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Xzl(e,t,r,n);if(t instanceof Map)return yCA(e,t,r,n);if(t instanceof Set)return ACA(e,t,r,n);let i=Object.keys(t);if(e==null||p_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!p_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function yCA(e,t,r,n){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,o]of t.entries()){let s=e.get(i);if(r(s,o,i,e,t,n)===!1)return!1}return!0}function Xzl(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let u=e[c],l=!1;if(r(u,s,o,e,t,n)&&(l=!0),l){i.add(c),a=!0;break}}if(!a)return!1}return!0}function ACA(e,t,r,n){return t.size===0?!0:e instanceof Set?Xzl([...e],[...t],r,n):!1}function WNn(e,t){return PKs(e,t,()=>{})}bDc();function Zzl(e){return e=ADc(e),t=>WNn(t,e)}Ers();M6r();Ors();function e2l(e,t){return yDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(CDt(e)===W6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),E$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case U6r:case V6r:case L6r:{let a=new e.constructor(e?.valueOf());return E$(a,e),a}case q6r:{let a={};return E$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function t2l(e){return e2l(e)}var bCA=/^(?:0|[1-9]\d*)$/;function r2l(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return bCA.test(e)}}M6r();function n2l(e){return e!==null&&typeof e=="object"&&CDt(e)==="[object Arguments]"}function i2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&LNn(t)&&e?.[t]==null?r=qNn(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||n2l(n))&&r2l(o)&&o<n.length))return!1;n=n[o]}return!0}function o2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=K3t(e);break}}return t=t2l(t),function(r){let n=wRr(r,e);return n===void 0?i2l(r,e):t===void 0?n===void 0:WNn(n,t)}}function s2l(e){if(e==null)return s9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?o2l(e[0],e[1]):Zzl(e);case"string":case"symbol":case"number":return Jzl(e)}}qns();wrs();function GNn(e,t=s9r){return e==null?{}:Sk(e,s2l(t))}L2c();function a2l(e){return U2c(yEt(e))}wDc();function c2l(e){return typeof e!="string"&&(e=yEt(e)),e.replace(/['\u2019]/g,"")}function Ile(e){return EDc(c2l(a2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function HNn({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${_CA(s)}${vCA(e)}.${OCA(n,i,o,a)}`}function _CA(e){return e?"webhook_":"endpoint_"}function vCA(e){return e!=null?_O(e)?.map(t=>Ile(t)).join("/"):""}function OCA(e,t,r,n){return e||t||Ile(r??"")||Ile(n??"")}function u2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var $Nn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Fzl],this.accessTokenLocator!=null&&(u2l(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var KNn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new $Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=HNn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var J3t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new FNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new NNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new zNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new QNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{Wzl(this.input)?(this.authScheme="header",this.headerAuthNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new l2l.UnreachableCaseError(this.authScheme);return}}};var Y3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=RNn(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new J3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var JNn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[jzl],this.basePath!=null?(this.basePath.startsWith("/")&&(this.basePath=this.basePath.slice(1)),this.basePath.endsWith("/")&&(this.basePath=this.basePath.slice(0,-1))):this.basePath=void 0}convert(){return this.basePath}};function p2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function f2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function X3t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!p2l(i))&&(s=f2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function YNn(e,t){return Sy(e)?Hz(e,t,void 0):e}function _He(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function m2l(e,t){let r={...e};for(let[n,i]of Object.entries(t??{}))r[n]=[...r[n]??[],...i];return Object.keys(r).length>0?r:void 0}function d2l(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let n of e)for(let i of t)r.push({path:n.path??i.path,responseStatusCode:n.responseStatusCode??i.responseStatusCode,name:n.name??i.name,description:n.description??i.description,pathParameters:n.pathParameters??i.pathParameters,queryParameters:n.queryParameters??i.queryParameters,headers:n.headers??i.headers,requestBody:n.requestBody??i.requestBody,responseBody:n.responseBody??i.responseBody,snippets:{...i.snippets,...n.snippets}});return r}var h2l=He(oI());var IKs=["decimal","decimal128","double-int","double","float","sf-decimal"],CKs=["int16","int32","int64","int8","sf-integer","uint8"],SKs=["base64url","binary","byte","char","commonmark","date-time","date","decimal","decimal128","duration","email","hostname","html","http-date","idn-email","idn-hostname","int64","ipv4","ipv6","iri-reference","iri","json-pointer","media-range","password","regex","relative-json-pointer","sf-binary","sf-boolean","sf-string","sf-token","time","uri-reference","uri-template","uri","uuid"],jKs=["beta","pre-release","in-development","generally-available","deprecated"];function Ej(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(Ej(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Bzl];r!=null&&(jKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${jKs.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return ku.Availability.Beta;case"in-development":return ku.Availability.InDevelopment;case"generally-available":return ku.Availability.GenerallyAvailable;case"deprecated":return ku.Availability.Deprecated;case void 0:return;default:new h2l.UnreachableCaseError(this.availability);return}}};var ZNn=He(oI());function g2l(e){return typeof e=="object"&&e!=null&&"language"in e}function y2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function A2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function b2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function XNn(e){return typeof e=="object"&&e!=null&&"event"in e}function BKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(XNn)}function vHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function _2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ekn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[qzl]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return vHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>vHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new ZNn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=_2l(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new ZNn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{A2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{BKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!BKs(r.response)&&b2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ZNn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{g2l(p)?p.language!=null&&(a[p.language]??=[],a[p.language]?.push({name:p.name,language:p.language,install:p.install,code:p.code,generated:!1,description:p.docs})):y2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var xRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[BNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ile(r)))}};var tkn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Dzl]}convert(){return this.sdkMethodName}};var rkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Rzl]}convert(){return this.isWebhook}};var nkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[Hzl]??[],...this.input[$zl]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var AEt=He(oI());function TKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function v2l(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var tF="",Bve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(vHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>vHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new AEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=TKs(this.input?.requestExample,this.context.document)??(t!=null?{value:t}:void 0);let r=this.shapes.responseBody?.schema?.example({includeOptionals:!1,override:void 0});if(this.resolvedResponseInput=TKs(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(XNn)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return vHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>vHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new AEt.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new AEt.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new AEt.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:v2l(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Wz(this.name):this.summary!=null?Wz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function O2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var F2l=He(oI());var E2l="#/components/schemas/";function Z3t(e){if(e.$ref.startsWith(E2l))return e.$ref.replace(E2l,"")}function qVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function OHe(e){return typeof e.type=="string"&&e.type==="array"}function w2l(e){return e.type==="boolean"}function x2l(e){return e.type==="integer"}function EHe(e){return!Array.isArray(e.type)&&!OHe(e)}function P2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||EHe(t)||OHe(t))}function I2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function C2l(e){return e.type==="null"}function S2l(e){return e.type==="number"}function DKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function j2l(e){return e.type==="string"}var ikn=class extends D5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var okn=class extends Oj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var skn=class extends D5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(qVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function akn(e){return e!=null&&e.length>0?e:[void 0]}var e5t=class extends D5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return Z3t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return X3t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>akn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=Ej(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var ckn=class extends D5{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>Ej(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>Ej(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=Ej({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map(qVe).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?qVe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var ukn=class extends Oj{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var wHe=class extends Oj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=Ej(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var B2l=He(oI());function ECA(e){return CKs.includes(e)}var lkn=class extends Oj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(ECA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${CKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="integer";if(this.format!=null)switch(this.format){case"int64":t="long";break;case"int8":case"int16":case"int32":case"uint8":case"sf-integer":case void 0:t="integer";break;default:new B2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var pkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return qVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var T2l=He(oI());function wCA(e){return IKs.includes(e)}var fkn=class extends Oj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(wCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${IKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="double";if(this.format!=null)switch(this.format){case"decimal":case"decimal128":case"double-int":case"double":case"float":case"sf-decimal":case void 0:t="double";break;default:new T2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var D2l=He(oI());function xCA(e){return SKs.includes(e)}var mkn=class extends Oj{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new D2l.UnreachableCaseError(t),"string"}}parse(){this.regex=this.input.pattern,this.minLength=this.input.minLength,this.maxLength=this.input.maxLength,this.mimeType=this.input.contentMediaType,this.input.default!=null&&typeof this.input.default!="string"&&this.context.errors.warning({message:`Expected default value to be a string. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(xCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${SKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new wHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var R2l=He(oI());var dkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,R2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var bEt=class extends D5{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=Z3t(this.input);let t=Ej(this.input,this.context.document);t?.enum!=null&&EHe(t)&&(this.maybeEnumConverterNode=new wHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=Ej(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends D5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),EHe(this.input)&&I2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=Z3t(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new bEt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(P2l(this.input))this.typeShapeNode=new skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(EHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(DKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new e5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(EHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new wHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":DKs(this.input)&&(this.typeShapeNode=new e5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":OHe(this.input)&&(this.typeShapeNode=new ikn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":w2l(this.input)&&(this.typeShapeNode=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":x2l(this.input)&&(this.typeShapeNode=new lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":S2l(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":j2l(this.input)&&(this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":C2l(this.input)&&(this.typeShapeNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new F2l.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new e5t({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!OHe(this.input)&&this.input==null||OHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?qVe(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function xHe(e){if(e!=null)return X3t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Tve=class extends Oj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=O2l(this.input,this.context.document);this.inputExample=n?.example??Object.values(n?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function N2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var RKs=He(oI());function hkn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var k2l=He(NAs(),1),t5t=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=k2l.default.parse(t);return r==null?null:new e(r.type,r.subtype,r.essence,r.parameters,r,t)}toString(){return this.input}isText(){return this.type==="text"}isImage(){return this.type==="image"}isAudio(){return this.type==="audio"}isVideo(){return this.type==="video"}isFont(){return this.type==="font"}isMultipart(){return this.type==="multipart"}isApplication(){return this.type==="application"}isMessage(){return this.type==="message"}isModel(){return this.type==="model"}isCSS(){return this.isText()&&this.subtype==="css"}isCSV(){return this.isText()&&this.subtype==="csv"}isMarkdown(){return this.isText()&&this.subtype==="markdown"}isPlainText(){return this.isText()&&this.subtype==="plain"}isEventStream(){return this.isText()&&this.subtype==="event-stream"}isMultiPartFormData(){return this.isMultipart()&&this.subtype==="form-data"}isJSON(){return this.isApplication()&&this.subtype==="json"}containsJSON(){return this.isApplication()&&this.subtype.includes("json")}isURLEncoded(){return this.isApplication()&&this.subtype==="x-www-form-urlencoded"}isOctetStream(){return this.isApplication()&&this.subtype==="octet-stream"}isPDF(){return this.isApplication()&&this.subtype==="pdf"}isZip(){return this.isApplication()&&this.subtype==="zip"}isGzip(){return this.isApplication()&&this.subtype==="gzip"}isTar(){return this.isApplication()&&this.subtype==="tar"}isBrotli(){return this.isApplication()&&this.subtype==="br"}isDeflate(){return this.isApplication()&&this.subtype==="deflate"}isProtobuf(){return this.isApplication()&&this.subtype==="protobuf"}isAvif(){return this.isImage()&&this.subtype==="avif"}isWebP(){return this.isImage()&&this.subtype==="webp"}isSVG(){return this.isImage()&&this.subtype==="svg+xml"}isPNG(){return this.isImage()&&this.subtype==="png"}isJPEG(){return this.isImage()&&this.subtype==="jpeg"}isGIF(){return this.isImage()&&this.subtype==="gif"}isMPEG(){return this.isAudio()&&this.subtype==="mpeg"}isWAV(){return this.isAudio()&&this.subtype==="wav"}isHTML(){return this.mimeType.isHTML()}isXML(){return this.mimeType.isXML()}isJavaScript(){return this.mimeType.isJavaScript()}};function PCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var gkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),PCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=RNn(r.$ref,this.context.document):i=r,i!=null)return[t,new J3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var ykn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=Ej(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=Ej(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var Akn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=Ej(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new bEt({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=t5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new ykn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[tF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[tF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ile([this.method,this.path,this.contentType,"request"].join("_"));return hkn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new RKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof bEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new RKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var bkn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=N2l(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new Akn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var z2l={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};function Q2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var _kn=He(oI());var M2l="application/json";var V2l="application/octet-stream";function U2l(e,t){return e===t||t===tF||e===tF}var PRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)U2l(a,o)&&(n.add(a),this.examples?.push(new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,_He(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Bve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,_He(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Bve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,_He(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,_He(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[tF];if(o!=null)for(let s of o)this.examples?.push(new Bve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,_He(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=t5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=M2l,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=V2l,this.contentSubtype=Ej(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=GNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]=[{value:this.input.example}]);let n=Ej(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=GNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[tF]??=[],r[tF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==tF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==tF);Object.keys(r).every(a=>a===tF)||this.matchExamplesByIndex(o,s),!i.has(tF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new _kn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ile([this.method,this.path,this.statusCode,"response"].join("_"));return hkn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new _kn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new _kn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var IRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=Q2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new PRr({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new PRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var vkn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new IRr({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new IRr({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return akn(xHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??z2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var PHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Bve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,_He(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=bHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new rkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=YNn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new bkn({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new vkn({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new Y3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new xRr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new xRr({input:{[BNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new tkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>HNn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=d2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:m2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:xHe(this.queryParameters)?.flat(),headers:xHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:xHe(this.pathParameters)?.flat(),queryParameters:xHe(this.queryParameters)?.flat(),requestHeaders:xHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var r5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=bHe(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new PHe({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new PHe({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new PHe({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new PHe({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new PHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function Okn(e){return"payloads"in e}var Ekn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new r5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:bHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{Okn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var wkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Tzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||YNn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return X3t(this.globalHeaders,this.requiredProperties)?.flat()}};function L2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var xkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=L2l(o,this.context.document);if(s!=null)return new r5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{Okn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Pkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=bHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Y3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new Ekn({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new xkn({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new gkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new wkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=mR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Czl({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:ku.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};Ni();async function FKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new fle(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new SNn,generatedTypes:{}},c=new Pkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=wkt(o,c.convert())}return o}_w();Ir();var t9l=He(zKs(),1),r9l=He(fzn(),1),K2n=require("fs/promises"),n9l=He(require("http"),1),i9l=He(require("path"),1);var V4l=require("events"),yzn=He(require("fs"),1),SEt=He(require("path"),1);var E4l=He(require("os"),1),w4l=300,DHe=20,XRr=1e7,x4l=E4l.default.platform();var VRA=x4l==="darwin",nYs=x4l==="win32",RHe=VRA||nYs,P4l=3e3,I4l=2e4,iYs=1250;var Nve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Nve||(Nve={}));var CEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(CEt||(CEt={}));var ZRr;(function(e){e.CHANGE="change",e.ERROR="error"})(ZRr||(ZRr={}));var Ll;(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"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var URA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},mzn=URA;var cYs=He(require("fs"),1),hzn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var GVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},kve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var oYs=He(require("process"),1),C4l=oYs.default.getuid?!oYs.default.getuid():!1,S4l=1e4,k5=()=>{};var eFr={isChangeErrorOk:e=>{if(!eFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!C4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!eFr.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(!eFr.isNodeError(e))throw e;if(!eFr.isChangeErrorOk(e))throw e}},wj=eFr;var sYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=S4l,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()}}}}},j4l=new sYs;var HVe=(e,t)=>function(n){return function i(...o){return j4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},$Ve=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var LRA={attempt:{chmod:GVe((0,$z.promisify)(Ab.default.chmod),wj.onChangeError),chown:GVe((0,$z.promisify)(Ab.default.chown),wj.onChangeError),close:GVe((0,$z.promisify)(Ab.default.close),k5),fsync:GVe((0,$z.promisify)(Ab.default.fsync),k5),mkdir:GVe((0,$z.promisify)(Ab.default.mkdir),k5),realpath:GVe((0,$z.promisify)(Ab.default.realpath),k5),stat:GVe((0,$z.promisify)(Ab.default.stat),k5),unlink:GVe((0,$z.promisify)(Ab.default.unlink),k5),chmodSync:kve(Ab.default.chmodSync,wj.onChangeError),chownSync:kve(Ab.default.chownSync,wj.onChangeError),closeSync:kve(Ab.default.closeSync,k5),existsSync:kve(Ab.default.existsSync,k5),fsyncSync:kve(Ab.default.fsync,k5),mkdirSync:kve(Ab.default.mkdirSync,k5),realpathSync:kve(Ab.default.realpathSync,k5),statSync:kve(Ab.default.statSync,k5),unlinkSync:kve(Ab.default.unlinkSync,k5)},retry:{close:HVe((0,$z.promisify)(Ab.default.close),wj.isRetriableError),fsync:HVe((0,$z.promisify)(Ab.default.fsync),wj.isRetriableError),open:HVe((0,$z.promisify)(Ab.default.open),wj.isRetriableError),readFile:HVe((0,$z.promisify)(Ab.default.readFile),wj.isRetriableError),rename:HVe((0,$z.promisify)(Ab.default.rename),wj.isRetriableError),stat:HVe((0,$z.promisify)(Ab.default.stat),wj.isRetriableError),write:HVe((0,$z.promisify)(Ab.default.write),wj.isRetriableError),writeFile:HVe((0,$z.promisify)(Ab.default.writeFile),wj.isRetriableError),closeSync:$Ve(Ab.default.closeSync,wj.isRetriableError),fsyncSync:$Ve(Ab.default.fsyncSync,wj.isRetriableError),openSync:$Ve(Ab.default.openSync,wj.isRetriableError),readFileSync:$Ve(Ab.default.readFileSync,wj.isRetriableError),renameSync:$Ve(Ab.default.renameSync,wj.isRetriableError),statSync:$Ve(Ab.default.statSync,wj.isRetriableError),writeSync:$Ve(Ab.default.writeSync,wj.isRetriableError),writeFileSync:$Ve(Ab.default.writeFileSync,wj.isRetriableError)}},B4l=LRA;var dzn=He(require("fs"),1),tFr=He(require("path"),1);var aYs=()=>{};var qRA=()=>{let e=aYs,t=aYs,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},T4l=qRA;var WRA=()=>{let{promise:e,resolve:t,isPending:r}=T4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},D4l=WRA;var R4l={then:e=>{e()}};var F4l=e=>Array.isArray(e)?e:[e],N4l=e=>typeof e=="function";var GRA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=F4l(o).map(X=>N4l(X)?X:Z=>X.test(Z)),a=X=>s.some(Z=>Z(X)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,m={},f=[],h=new Set,g={},y=[],A=new Set,b={},v={},_=new Set,O={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},E={directories:l,directoriesNames:p,directoriesNamesToPaths:m,files:f,filesNames:h,filesNamesToPaths:g,symlinks:y,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:P,increment:x,decrement:I}=D4l(),F=0,q=(X,Z,ke,Te)=>{_.has(Z)||F>=i||(F+=1,X.directories.push(Z),X.directoriesNames.add(ke),l.push(Z),p.add(ke),m.propertyIsEnumerable(ke)||(m[ke]=[]),m[ke].push(Z),_.add(Z),!(Te>=n)&&(F>=i||ee(Z,Te+1)))},W=(X,Z,ke)=>{_.has(Z)||F>=i||(F+=1,X.files.push(Z),X.filesNames.add(ke),f.push(Z),h.add(ke),g.propertyIsEnumerable(ke)||(g[ke]=[]),g[ke].push(Z),_.add(Z))},$=(X,Z,ke,Te)=>{_.has(Z)||F>=i||(F+=1,X.symlinks.push(Z),X.symlinksNames.add(ke),y.push(Z),A.add(ke),b.propertyIsEnumerable(ke)||(b[ke]=[]),b[ke].push(Z),_.add(Z),r&&(Te>=n||F>=i||We(Z,Te+1)))},re=(X,Z,ke,Te,Je)=>{c.aborted||a(Z)||(Te.isDirectory()?q(X,Z,ke,Je):Te.isFile()?W(X,Z,ke):Te.isSymbolicLink()&&$(X,Z,ke,Je))},ce=(X,Z,ke,Te)=>{if(c.aborted)return;let Je=Z===tFr.default.sep?"":tFr.default.sep,Ye=ke.name,_e=`${Z}${Je}${Ye}`;a(_e)||(ke.isDirectory()?q(X,_e,Ye,Te):ke.isFile()?W(X,_e,Ye):ke.isSymbolicLink()&&$(X,_e,Ye,Te))},G=(X,Z,ke,Te)=>{for(let Je=0,Ye=ke.length;Je<Ye;Je++)ce(X,Z,ke[Je],Te)},ee=(X,Z)=>{c.aborted||Z>n||F>=i||(x(),dzn.default.readdir(X,{withFileTypes:!0},(ke,Te)=>{if(ke||c.aborted||!Te.length)return I();(u(Te)||R4l).then(()=>{let Ye=v[X]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,X,Te,Z),I()})}))},We=(X,Z)=>{x(),dzn.default.realpath(X,(ke,Te)=>{if(ke||c.aborted)return I();dzn.default.stat(Te,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=tFr.default.basename(Te),ge=v[X]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Te,_e,Ye,Z),I()})})};return(async(X,Z=1)=>(X=tFr.default.normalize(X),_.add(X),ee(X,Z),await P,c.aborted?O:E))(e)},k4l=GRA;var zve={lang:{debounce:mzn,attempt:e=>{try{return e()}catch(t){return zve.lang.castError(t)}},castArray:e=>zve.lang.isArray(e)?e:[e],castError:e=>zve.lang.isError(e)?e:zve.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(zve.lang.isNaN(e))return zve.lang.isNaN(t);if(zve.lang.isPrimitive(e)||zve.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(hzn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?cYs.default.realpathSync.native(e):cYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===hzn.default.sep&&t.length-e.length>hzn.default.sep.length,poll:(e,t=I4l)=>B4l.retry.stat(t)(e,{bigint:!0}).catch(zve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await k4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=zve;var gzn=He(require("path"),1);var uYs=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||th.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=w4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??DHe:Math.min(1,this.options.depth??DHe),s=this.options.limit??XRr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!RHe&&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(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(gzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(gzn.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(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.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=CEt.CHANGE,r){if(this.watcher.isClosed())return;let n=gzn.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){nYs&&t.code==="EPERM"?this.onWatcherChange(CEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(ZRr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(ZRr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(CEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&RHe&&this.options.native!==!1?this.options.depth??DHe:Math.min(1,this.options.depth??DHe),n=this.options.limit??XRr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(CEt.CHANGE,a,t)}))}}},z4l=uYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},rFr=GU;var nFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=iYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),rFr.remove(u)},u=()=>{c(),a()};rFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=iYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),rFr.remove(u)},u=()=>{c(),a()};rFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Nve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Nve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Nve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Nve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};nFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};nFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var Q4l=nFr;var lYs=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(th.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(th.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(th.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(th.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return th.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);th.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},pYs=lYs;var fYs=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}},M4l=fYs;var mYs=class{constructor(){this.inos={},this.paths=new pYs,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await th.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new M4l(n)}reset(){this.inos={},this.paths=new pYs,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,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Nve.FILE:Nve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},dYs=mYs;var hYs=class e extends V4l.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(WU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(WU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(WU.READY,i)),this._locker=new Q4l(this),this._roots=new Set,this._poller=new dYs,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&&(th.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(WU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(WU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(WU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(WU.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)th.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new z4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=SEt.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??DHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&RHe&&l.options.native!==!1)))return!0;if(!RHe)break;let u=SEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||RHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:yzn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=SEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||RHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??DHe,a=r.limit??XRr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=SEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new dYs,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return th.lang.noop;if(this.pollerExists(t,r))return th.lang.noop;let i={...r,interval:r.pollingInterval??P4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),yzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),yzn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=SEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=SEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Azn=hYs;Tzn();Ir();var P5t=require("fs/promises"),HLl=require("os"),$Ll=He(require("path"),1),hNA=".fern",gNA="logs";function yNA(){return"cli@3.90.3"}var FEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,HLl.homedir)()),Ze.of(hNA)),r=It(t,Ze.of(gNA));await qr(r)||await(0,P5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${$Ll.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2137
2137
  `);await(0,P5t.writeFile)(this.logFilePath,o,"utf-8"),this.initialized=!0}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
2138
2138
  `;try{await(0,P5t.appendFile)(this.logFilePath,r,"utf-8")}catch{}}async logFrontendMetrics(t){let r={timestamp:t.timestamp,source:t.source,level:t.level,eventType:this.getEventType(t.payload,t.isAggregate),isAggregate:t.isAggregate,data:t.payload};await this.writeEntry(r)}async logCliMetric(t,r="info"){let n={timestamp:t.timestamp,source:yNA(),level:r,eventType:t.type,data:{durationMs:t.durationMs,metadata:t.metadata}};await this.writeEntry(n)}async logCliMemory(){let t=process.memoryUsage(),r={type:"cli_memory",timestamp:new Date().toISOString(),metadata:{heapUsed:t.heapUsed,heapTotal:t.heapTotal,external:t.external,rss:t.rss,heapUsedMB:Math.round(t.heapUsed/1024/1024*100)/100,heapTotalMB:Math.round(t.heapTotal/1024/1024*100)/100,rssMB:Math.round(t.rss/1024/1024*100)/100}};await this.logCliMetric(r)}async logCliReloadStart(){let t={type:"cli_reload_start",timestamp:new Date().toISOString()};await this.logCliMetric(t)}async logCliReloadFinish(t,r){let n={type:"cli_reload_finish",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliDocsGeneration(t,r){let n={type:"cli_docs_generation",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliValidation(t,r){let n={type:"cli_validation",timestamp:new Date().toISOString(),durationMs:t,metadata:{success:r}};await this.logCliMetric(n)}getEventType(t,r){return r?"aggregate_summary":"type"in t&&typeof t.type=="string"?t.type:"unknown"}static isMetricsMessage(t){if(typeof t!="object"||t===null)return!1;let r=t;return r.type==="metrics"&&typeof r.timestamp=="string"&&typeof r.source=="string"}};var kYs={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function KLl(e){let t=ANA();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i}=e,o=new Map;function s(c){let u=JSON.stringify(c),l=[];for(let[p]of o)try{p.send(u)}catch{l.push(p)}for(let p of l){let m=o.get(p);m&&(clearInterval(m.pingInterval),o.delete(p))}}let a=t.serve({port:r,fetch(c,u){if(c.method==="OPTIONS")return new Response(null,{status:204,headers:kYs});let l=new URL(c.url);if(c.headers.get("upgrade")?.toLowerCase()==="websocket"){u.upgrade(c,{data:{connectionId:`${Date.now()}`}});return}if(c.method==="POST"&&l.pathname==="/v2/registry/docs/load-with-url")return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...kYs}});let p=/^\/_local\/(.*)/.exec(l.pathname);return c.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:kYs}):new Response("Not Found",{status:404})},websocket:{open(c){let{connectionId:u}=c.data,l=setInterval(()=>{let p=o.get(c);if(!p)return;let m=Date.now();if(m-p.lastPong>9e4){c.close();return}try{c.send(JSON.stringify({type:"ping",timestamp:m}))}catch{c.close()}},3e4);o.set(c,{pingInterval:l,lastPong:Date.now()});try{c.send(JSON.stringify({type:"connected",connectionId:u}))}catch{}},message(c,u){try{let l=JSON.parse(u.toString());if(l.type==="pong"){let p=o.get(c);p&&(p.lastPong=Date.now())}else FEt.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(c){let u=o.get(c);u&&(clearInterval(u.pingInterval),o.delete(c))}}});return{sendData:s,stop:c=>a.stop(c)}}function ANA(){return globalThis.Bun}Ir();var bZs=He(GYs(),1),HWl=He(aZs(),1),z5=require("fs/promises"),$Wl=require("os"),KWl=He(oR(),1),JWl=He(WWl(),1),L2n=process.platform==="win32",AZs=at.cyan("[docs]:"),$QA="etag",KQA=23,GWl=e=>e.padEnd(KQA," "),JQA="preview",YQA="app-preview",XQA="bundle",ZQA=".next",eMA="standalone",tMA=".fern",rMA="packages/fern-docs/bundle/.next/server/instrumentation.js",nMA=".npmrc",iMA=".pnpmfile.cjs",oMA="pnpm-workspace.yaml",sMA='Cannot find matching keyid: {"signatures":';function aMA(){return It(vr.of((0,$Wl.homedir)()),Ze.of(tMA))}function q5t({app:e=!1}){return It(aMA(),Ze.of(e?YQA:JQA))}function GHe({app:e=!1}){return It(q5t({app:e}),Ze.of(e?ZQA:XQA))}function NFr({app:e=!1}){return It(GHe({app:e}),Ze.of(eMA))}function cMA({app:e=!1}){return It(NFr({app:e}),Ze.of(rMA))}function uMA({app:e=!1}){return It(NFr({app:e}),Ze.of(oMA))}function lMA({app:e=!1}){return It(NFr({app:e}),Ze.of(iMA))}function pMA({app:e=!1}){return It(NFr({app:e}),Ze.of(nMA))}function qEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function fMA({app:e=!1}){return It(q5t({app:e}),Ze.of($QA))}var mMA=`module.exports = {
2139
2139
  hooks: {
@@ -2613,13 +2613,13 @@ client<llm> DefaultClient {
2613
2613
  }
2614
2614
  `},Vld=()=>Qyw;var Myw={...process.env},tKa=Gqo.BamlRuntime.fromFiles("baml_src",Vld(),Myw),Uld=new Gqo.BamlCtxManager(tKa);var rKa=class e{runtime;ctxManager;streamClient;httpRequest;httpStreamRequest;llmResponseParser;llmStreamParser;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.streamClient=new nKa(t,r,n),this.httpRequest=new Uqo(t,r),this.httpStreamRequest=new Lqo(t,r),this.llmResponseParser=new qqo(t,r),this.llmStreamParser=new Wqo(t,r),this.bamlOptions=n||{}}withOptions(t){return new e(this.runtime,this.ctxManager,t)}get stream(){return this.streamClient}get request(){return this.httpRequest}get streamRequest(){return this.httpStreamRequest}get parse(){return this.llmResponseParser}get parseStream(){return this.llmStreamParser}async AnalyzeSdkDiff(t,r){try{let n={...this.bamlOptions,...r||{}},i=n.signal;if(i?.aborted)throw new uNe.BamlAbortError("Operation was aborted",i.reason);if(n.onTick)return await this.stream.AnalyzeSdkDiff(t,r).getFinalResponse();let o=n.collector?Array.isArray(n.collector)?n.collector:[n.collector]:[],s=r?.env?{...process.env,...r.env}:{...process.env},a=Object.fromEntries(Object.entries(s).filter(([u,l])=>l!==void 0));return(await this.runtime.callFunction("AnalyzeSdkDiff",{diff:t},this.ctxManager.cloneContext(),n.tb?.__tb(),n.clientRegistry,o,n.tags||{},a,i,n.events)).parsed(!1)}catch(n){throw(0,uNe.toBamlError)(n)}}},nKa=class{runtime;ctxManager;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.bamlOptions=n||{}}AnalyzeSdkDiff(t,r){try{let n={...this.bamlOptions,...r||{}},i=n.signal;if(i?.aborted)throw new uNe.BamlAbortError("Operation was aborted",i.reason);let o=n.collector?Array.isArray(n.collector)?n.collector:[n.collector]:[],s;if(n.onTick){let l=new uNe.Collector("on-tick-collector");o=[...o,l],s=()=>{let p=l.last;if(p)try{n.onTick("Unknown",p)}catch(m){console.error("Error in onTick callback for AnalyzeSdkDiff",m)}}}let a=r?.env?{...process.env,...r.env}:{...process.env},c=Object.fromEntries(Object.entries(a).filter(([l,p])=>p!==void 0)),u=this.runtime.streamFunction("AnalyzeSdkDiff",{diff:t},void 0,this.ctxManager.cloneContext(),n.tb?.__tb(),n.clientRegistry,o,n.tags||{},c,i,s);return new uNe.BamlStream(u,l=>l,l=>l,this.ctxManager.cloneContext(),n.signal)}catch(n){throw(0,uNe.toBamlError)(n)}}},KUr=new rKa(tKa,Uld);var lNe;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(lNe||(lNe={}));var iKa=require("@boundaryml/baml"),Vyw="0.211.2";(0,Lld.ThrowIfVersionMismatch)(Vyw);var jdr=require("@boundaryml/baml");function Hqo(e){let t=new jdr.ClientRegistry,r={model:e.model};return t.addLlmClient("ConfiguredClient",e.provider,r),t.setPrimary("ConfiguredClient"),(0,jdr.getLogLevel)()!=="ERROR"&&(0,jdr.setLogLevel)("ERROR"),t}Ir();var Wld=He(aZs(),1),ak=require("fs/promises"),Gld=require("os"),Hld=require("path"),oKa=He(g3(),1),$ld=He(oR(),1);var Uyw="AUTO";var qld;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(qld||(qld={}));function $qo(e){return Uyw.toLowerCase()===e.toLowerCase()}var Kqo=class{context;absolutePathToTmpOutputDirectory;absolutePathToTmpSnippetJSON;absolutePathToTmpSnippetTemplatesJSON;absolutePathToLocalSnippetTemplateJSON;absolutePathToLocalOutput;absolutePathToLocalSnippetJSON;version;ai;isWhitelabel;constructor({context:t,absolutePathToTmpOutputDirectory:r,absolutePathToTmpSnippetJSON:n,absolutePathToLocalSnippetTemplateJSON:i,absolutePathToLocalOutput:o,absolutePathToLocalSnippetJSON:s,absolutePathToTmpSnippetTemplatesJSON:a,version:c,ai:u,isWhitelabel:l}){this.context=t,this.absolutePathToLocalOutput=o,this.absolutePathToTmpOutputDirectory=r,this.absolutePathToTmpSnippetJSON=n,this.absolutePathToLocalSnippetJSON=s,this.absolutePathToLocalSnippetTemplateJSON=i,this.absolutePathToTmpSnippetTemplatesJSON=a,this.version=c,this.ai=u,this.isWhitelabel=l}async copyGeneratedFiles(){let t=await this.isFernIgnorePresent(),r=await this.isGitRepository();if(t&&r?await this.copyGeneratedFilesWithFernIgnoreInExistingRepo():t&&!r?await this.copyGeneratedFilesWithFernIgnoreInTempRepo():!t&&r?await this.copyGeneratedFilesNoFernIgnorePreservingGit():await this.copyGeneratedFilesNoFernIgnoreDeleteAll(),this.absolutePathToTmpSnippetJSON!=null&&this.absolutePathToLocalSnippetJSON!=null&&await qr(this.absolutePathToTmpSnippetJSON)&&await this.copySnippetJSON({absolutePathToTmpSnippetJSON:this.absolutePathToTmpSnippetJSON,absolutePathToLocalSnippetJSON:this.absolutePathToLocalSnippetJSON}),this.version!=null&&$qo(this.version)){let n=new qFr({logger:this.context.logger}),i=await this.handleAutoVersioning();return i==null?(this.context.logger.info("No semantic changes detected. Skipping GitHub operations."),{shouldCommit:!1,autoVersioningCommitMessage:void 0}):(await n.replaceMagicVersion(this.absolutePathToLocalOutput,this.version,i.version),{shouldCommit:!0,autoVersioningCommitMessage:i.commitMessage})}return{shouldCommit:!0,autoVersioningCommitMessage:void 0}}async handleAutoVersioning(){let t=new qFr({logger:this.context.logger}),r;try{this.context.logger.info("Analyzing SDK changes for automatic semantic versioning"),r=await this.generateDiffFile();let n=await(0,ak.readFile)(r,"utf-8");if(n.trim().length===0)return this.context.logger.info("No changes detected in generated SDK"),null;if(!this.version)throw new Error("Version is required for auto versioning");let i=t.extractPreviousVersion(n,this.version),o=t.cleanDiffForAI(n,this.version);if(this.context.logger.debug(`Generated diff size: ${n.length} bytes`),this.context.logger.debug(`Cleaned diff size: ${o.length} bytes`),i==null){this.context.logger.info("No previous version found (new SDK repository). Using 0.0.1 as initial version.");let s=this.version?.startsWith("v")?"v0.0.1":"0.0.1",a=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
2615
2615
 
2616
- \u{1F33F} Generated with Fern`;return{version:s,commitMessage:a}}this.context.logger.debug(`Previous version detected: ${i}`);try{let s=await this.getClientRegistry(),c=await KUr.withOptions({clientRegistry:s}).AnalyzeSdkDiff(o);if(c.version_bump===lNe.NO_CHANGE)return this.context.logger.info("AI detected no semantic changes"),null;let u=this.incrementVersion(i,c.version_bump);this.context.logger.info(`Version bump: ${c.version_bump}, new version: ${u}`);let l=this.isWhitelabel?c.message:this.addFernBranding(c.message);return{version:u,commitMessage:l}}catch(s){this.context.logger.warn(`AI analysis failed, falling back to PATCH increment: ${s}`);let a=this.incrementVersion(i,lNe.PATCH),c=this.isWhitelabel?"SDK regeneration":`SDK regeneration
2616
+ \u{1F33F} Generated with Fern`;return{version:s,commitMessage:a}}if(this.context.logger.debug(`Previous version detected: ${i}`),o.trim().length===0)return this.context.logger.info("No actual changes detected after filtering version-only changes. Cancelling generation."),null;try{let s=await this.getClientRegistry(),c=await KUr.withOptions({clientRegistry:s}).AnalyzeSdkDiff(o);if(c.version_bump===lNe.NO_CHANGE)return this.context.logger.info("AI detected no semantic changes"),null;let u=this.incrementVersion(i,c.version_bump);this.context.logger.info(`Version bump: ${c.version_bump}, new version: ${u}`);let l=this.isWhitelabel?c.message:this.addFernBranding(c.message);return{version:u,commitMessage:l}}catch(s){this.context.logger.warn(`AI analysis failed, falling back to PATCH increment: ${s}`);let a=this.incrementVersion(i,lNe.PATCH),c=this.isWhitelabel?"SDK regeneration":`SDK regeneration
2617
2617
 
2618
2618
  \u{1F33F} Generated with Fern`;return{version:a,commitMessage:c}}}catch(n){if(n instanceof LFr){this.context.logger.warn(`AUTO versioning could not extract previous version: ${n.message}. Falling back to initial version 0.0.1.`);let i=this.version?.startsWith("v")?"v0.0.1":"0.0.1",o=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
2619
2619
 
2620
2620
  \u{1F33F} Generated with Fern`;return{version:i,commitMessage:o}}throw this.context.logger.error(`Failed to perform automatic versioning: ${n}`),new Error(`Automatic versioning failed: ${n}`)}finally{if(r)try{await(0,ak.rm)(r)}catch(n){this.context.logger.warn(`Failed to delete temp diff file: ${r}`,String(n))}}}incrementVersion(t,r){let n=oKa.default.clean(t);if(!n)throw new Error(`Invalid version format: ${t}`);let i;switch(r){case lNe.MAJOR:i="major";break;case lNe.MINOR:i="minor";break;case lNe.PATCH:i="patch";break;default:throw new Error(`Unsupported version bump: ${r}`)}let o=oKa.default.inc(n,i);if(!o)throw new Error(`Failed to increment version: ${t}`);return t.startsWith("v")?`v${o}`:o}async getClientRegistry(){if(this.ai==null)throw new Error("No AI service configuration found in generators.yml. Please add an 'ai' section with provider and model.");return this.context.logger.debug(`Using AI service: ${this.ai.provider} with model ${this.ai.model}`),Hqo(this.ai)}addFernBranding(t){return`${t.trim()}
2621
2621
 
2622
- \u{1F33F} Generated with Fern`}async isFernIgnorePresent(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e)));return await qr(t)}async isGitRepository(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(".git")));return await qr(t)}async copyGeneratedFilesWithFernIgnoreInExistingRepo(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e))),r=await Nvt({absolutePathToFernignore:t}),n=await this.getPathsToPreserve(r);(await this.runGitCommand(["config","--list"],this.absolutePathToLocalOutput)).includes("user.name")||(await this.runGitCommand(["config","user.name","fern-api"],this.absolutePathToLocalOutput),await this.runGitCommand(["config","user.email","info@buildwithfern.com"],this.absolutePathToLocalOutput)),await this.runGitCommand(["rm","-rf","."],this.absolutePathToLocalOutput),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput),await this.runGitCommand(["add","."],this.absolutePathToLocalOutput),await this.runGitCommand(["reset","--",...n],this.absolutePathToLocalOutput),await this.runGitCommand(["clean","-fd","--",...n],this.absolutePathToLocalOutput),await this.runGitCommand(["restore","."],this.absolutePathToLocalOutput)}async copyGeneratedFilesWithFernIgnoreInTempRepo(){let t=vr.of((await $ld.default.dir({})).path),r=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e))),n=await Nvt({absolutePathToFernignore:r}),i=await this.getPathsToPreserve(n);await(0,ak.cp)(this.absolutePathToLocalOutput,t,{recursive:!0}),await this.runGitCommand(["init"],t),await this.runGitCommand(["add","."],t),(await this.runGitCommand(["config","--list"],t)).includes("user.name")||(await this.runGitCommand(["config","user.name","fern-api"],t),await this.runGitCommand(["config","user.email","info@buildwithfern.com"],t)),await this.runGitCommand(["commit","--allow-empty","-m",'"init"'],t),await this.runGitCommand(["rm","-rf","."],t),await this.copyGeneratedFilesToDirectory(t),await this.runGitCommand(["add","."],t),await this.runGitCommand(["reset","--",...i],t),await this.runGitCommand(["clean","-fd","--",...i],t),await this.runGitCommand(["restore","."],t),await(0,ak.rm)(It(t,Ze.of(".git")),{recursive:!0}),await(0,ak.rm)(this.absolutePathToLocalOutput,{recursive:!0}),await(0,ak.cp)(t,this.absolutePathToLocalOutput,{recursive:!0})}async copyGeneratedFilesNoFernIgnorePreservingGit(){let t=await(0,ak.readdir)(this.absolutePathToLocalOutput),r=[".git"];await this.generatedOutputMissingReadme()&&r.push("README.md"),await Promise.all(t.filter(n=>!r.includes(n)).map(n=>(0,ak.rm)(It(this.absolutePathToLocalOutput,Ze.of(n)),{force:!0,recursive:!0}))),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput)}async copyGeneratedFilesNoFernIgnoreDeleteAll(){this.context.logger.debug(`rm -rf ${this.absolutePathToLocalOutput}`),await(0,ak.rm)(this.absolutePathToLocalOutput,{force:!0,recursive:!0}),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput)}async copyGeneratedFilesToDirectory(t){let[r,...n]=await(0,ak.readdir)(this.absolutePathToTmpOutputDirectory);if(r!=null)if(this.context.logger.debug(`Copying generated files to ${t}`),r.endsWith(".zip")){await(0,Wld.default)(It(this.absolutePathToTmpOutputDirectory,Ze.of(r)),t);for(let i of n)await(0,ak.cp)(It(this.absolutePathToTmpOutputDirectory,Ze.of(i)),It(t,Ze.of(i)),{recursive:!0})}else await(0,ak.cp)(this.absolutePathToTmpOutputDirectory,t,{recursive:!0})}async copySnippetJSON({absolutePathToTmpSnippetJSON:t,absolutePathToLocalSnippetJSON:r}){this.context.logger.debug(`Copying generated snippets to ${r}`),await(0,ak.cp)(t,r)}async generatedOutputMissingReadme(){try{let t=await(0,ak.readdir)(this.absolutePathToTmpOutputDirectory);return t.length===1&&t[0]!=null&&t[0].endsWith(".zip")?!1:!t.includes("README.md")}catch{return!0}}async getPathsToPreserve(t){return await this.generatedOutputMissingReadme()?[...t,"README.md"]:t}async runGitCommand(t,r){return(await _h(this.context.logger,"git",t,{cwd:r,doNotPipeOutput:!0})).stdout}async generateDiffFile(){let t=(0,Hld.join)((0,Gld.tmpdir)(),`git-diff-${Date.now()}.patch`);return await this.runGitCommand(["diff","HEAD","--output",t],this.absolutePathToLocalOutput),this.context.logger.info(`Generated git diff to file: ${t}`),t}};function Lyw(e,t){let r=nfa(e);if(r?.type==="custom"){let n=r.value,i=t?Tdr.dirname(t):process.cwd(),o=Tdr.isAbsolute(n)?n:Tdr.resolve(i,n);return vr.of(o)}}async function Jqo({organization:e,absolutePathToFernConfig:t,workspace:r,generatorInvocation:n,absolutePathToLocalOutput:i,absolutePathToLocalSnippetJSON:o,absolutePathToLocalSnippetTemplateJSON:s,audiences:a,version:c,workspaceTempDir:u,keepDocker:l,context:p,irVersionOverride:m,outputVersionOverride:f,writeUnitTests:h,generateOauthClients:g,generatePaginatedClients:y,includeOptionalRequestPropertyExamples:A,inspect:b,executionEnvironment:v,runner:_,whiteLabel:O,ir:E,ai:P}){let{latest:x,migrated:I}=await Mld({workspace:r,audiences:a,generatorInvocation:n,context:p,irVersionOverride:m,packageName:xi.getPackageName({generatorInvocation:n}),version:c??f,sourceConfig:Wyw(r),includeOptionalRequestPropertyExamples:A,ir:E}),F=await qyw({workspaceTempDir:u,filename:zZs,context:p,ir:I});p.logger.debug("Wrote IR to: "+F);let q=(0,Bdr.join)(u.path,kZs),W=vr.of(q);await(0,Zjt.writeFile)(q,""),p.logger.debug("Will write config.json to: "+W);let $=(0,Bdr.join)(u.path,NZs),re=vr.of($);await(0,Zjt.mkdir)($,{recursive:!0}),p.logger.debug("Will write output to: "+re);let ce;if(o!=null){let Je=(0,Bdr.join)(u.path,"snippet.json");ce=vr.of(Je),await(0,Zjt.writeFile)(Je,""),p.logger.debug("Will write snippet.json to: "+ce)}let G;if(s!=null){let Je=(0,Bdr.join)(u.path,Vel);G=vr.of(Je),await(0,Zjt.writeFile)(Je,""),p.logger.debug("Will write snippet-templates.json to: "+G)}let ee=v??new $He({containerImage:`${n.name}:${n.version}`,keepContainer:l}),$e=ee instanceof $He?{outputDirectory:vr.of(iQn),irPath:vr.of(oQn),configPath:vr.of(WFr),snippetPath:vr.of(sQn),snippetTemplatePath:vr.of(aQn)}:{outputDirectory:re,configPath:W,irPath:F,snippetPath:ce,snippetTemplatePath:G},X=b0p({generatorInvocation:n,customConfig:n.config,workspaceName:r.definition.rootApiFile.contents.name,outputVersion:f,organization:e,absolutePathToSnippet:ce,absolutePathToSnippetTemplates:G,absolutePathToFernConfig:t,writeUnitTests:h,generateOauthClients:g,generatePaginatedClients:y,whiteLabel:O,paths:$e});await(0,Zjt.writeFile)(W,JSON.stringify(await Kld.GeneratorConfig.jsonOrThrow(X),void 0,4));let Z=Lyw(n,t);await ee.execute({generatorName:n.name,irPath:F,configPath:W,outputPath:re,snippetPath:ce,snippetTemplatePath:G,licenseFilePath:Z,context:p,inspect:b,runner:_});let Te=await new Kqo({context:p,absolutePathToLocalOutput:i,absolutePathToTmpOutputDirectory:re,absolutePathToLocalSnippetJSON:o,absolutePathToLocalSnippetTemplateJSON:s,absolutePathToTmpSnippetJSON:ce,absolutePathToTmpSnippetTemplatesJSON:G,version:c,ai:P,isWhitelabel:E.readmeConfig?.whiteLabel??!1}).copyGeneratedFiles();return{ir:x,generatorConfig:X,...Te}}async function qyw({ir:e,workspaceTempDir:t,filename:r,context:n}){n.logger.debug("Migrated IR");let i;if(r)i=vr.of((0,Bdr.join)(t.path,r));else{let o=await Jld.default.file({tmpdir:t.path});i=vr.of(o.path)}return await G2(i,e,{pretty:!1}),n.logger.debug(`Wrote IR to ${i}`),i}function Wyw(e){return{sources:e.getSources().map(t=>t.type==="protobuf"?L3.proto({id:t.id,protoRootUrl:`file:///${Gyw(t)}`}):L3.openapi())}}function Gyw(e){return`${h9l}/${e.id}`}pr();Ir();var M6o=He(gpc(),1);d7e();pr();function DBt({apiName:e,organization:t,generatorInvocation:r}){let n=$Yw(r);return{apiName:e,organization:t,customConfig:r.config,outputConfig:n??gr.GeneratorOutputConfig.local()}}function $Yw(e){let t=e.outputMode;switch(t.type){case"downloadFiles":return gr.GeneratorOutputConfig.local();case"publishV2":return KYw({publish:t.publishV2,version:e.version});case"githubV2":return JYw({github:t.githubV2,language:e.language,version:e.version});case"publish":case"github":return;default:Ue(t)}}function KYw({publish:e,version:t}){switch(e.type){case"npmOverride":{let r=e.npmOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.npm({version:t,packageName:r.packageName,repoUrl:void 0}))}case"mavenOverride":{let r=e.mavenOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.maven({version:t,coordinate:r.coordinate,repoUrl:void 0}))}case"pypiOverride":{let r=e.pypiOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.pypi({version:t,packageName:r.coordinate,repoUrl:void 0}))}case"rubyGemsOverride":{let r=e.rubyGemsOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.rubygems({version:t,packageName:r.packageName,repoUrl:void 0}))}case"nugetOverride":{let r=e.nugetOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.nuget({version:t,packageName:r.packageName,repoUrl:void 0}))}case"cratesOverride":{let r=e.cratesOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.crates({version:t,packageName:r.packageName,repoUrl:void 0}))}case"postman":return;default:Ue(e)}}function JYw({github:e,version:t,language:r}){let n=YYw({owner:e.owner,repo:e.repo});if(r===xi.GenerationLanguage.GO)return gr.GeneratorOutputConfig.publish(gr.PublishInfo.go({version:t,repoUrl:n}));if(r===xi.GenerationLanguage.SWIFT)return gr.GeneratorOutputConfig.publish(gr.PublishInfo.swift({version:t,repoUrl:n}));let i=e.publishInfo;if(i!=null)switch(i.type){case"maven":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.maven({version:t,coordinate:i.coordinate,repoUrl:n}));case"npm":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.npm({version:t,packageName:i.packageName,repoUrl:n}));case"pypi":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.pypi({version:t,packageName:i.packageName,repoUrl:n}));case"rubygems":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.rubygems({version:t,packageName:i.packageName,repoUrl:n}));case"nuget":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.nuget({version:t,packageName:i.packageName,repoUrl:n}));case"crates":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.crates({version:t,packageName:i.packageName,repoUrl:n}));case"postman":return;default:Ue(i)}}function YYw({owner:e,repo:t}){return`https://github.com/${e}/${t}`}pr();function XYw(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function ypc(e,t){for(let[r,n]of rC(e.failures))ZYw({relativeFilepath:r,failure:n,logger:t})}function ZYw({relativeFilepath:e,failure:t,logger:r}){switch(t.type){case jd.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 jd.FILE_READ:r.error("Failed to open file: "+e);break;case jd.FILE_MISSING:r.error("Missing file: "+e);break;case jd.FILE_PARSE:t.error instanceof SCr?r.error(uJ({title:`Failed to parse ${e}: ${t.error.reason}`,subtitle:t.error.mark.snippet})):r.error("Failed to parse file: "+e);break;case jd.STRUCTURE_VALIDATION:for(let n of t.error.issues)for(let{title:i,subtitle:o}of eXw(n))r.error(uJ({title:i,subtitle:o,breadcrumbs:[e,...n.path]}));break;case jd.FAILED_TO_LOAD_DEPENDENCY:r.error("Failed to load dependency: "+t.dependencyName);break;case jd.DEPENDENCY_NOT_LISTED:r.error(`Dependency is not listed in ${F_n}: `+t.dependencyName);break;case jd.EXPORT_PACKAGE_HAS_DEFINITIONS:r.error("Exported package contains API definitions: "+t.pathToPackage);break;case jd.EXPORTING_PACKAGE_MARKER_OTHER_KEYS:r.error(`${t.pathOfPackageMarker} has an export so it cannot define other keys.`);break;case jd.JSONSCHEMA_VALIDATION:if(t.error.error!=null){let n=t.error.error.instancePath.split("/").filter(i=>i!=="").map(XYw);t.error.error.keyword==="required"&&t.error.error.params?.missingProperty?n.push(t.error.error.params.missingProperty):t.error.error.keyword==="additionalProperties"&&t.error.error.params?.additionalProperty&&n.push(t.error.error.params.additionalProperty),r.error(uJ({title:t.error.error.message??"Unknown error",breadcrumbs:[e,...n]}))}break;default:Ue(t)}}function eXw(e){switch(e.code){case mi.invalid_type:return[{title:"Incorrect type",subtitle:`Expected ${at.underline(e.expected)} but received ${at.underline(e.received)}`}];case mi.unrecognized_keys:return e.keys.map(t=>({title:"Unexpected key",subtitle:`Encountered unexpected key ${at.underline(t)}`}));case mi.invalid_enum_value:return[{title:"Unrecognized value",subtitle:`Allowed values: ${e.options.map(t=>at.underline(t)).join(", ")}`}];case mi.invalid_union:case mi.invalid_arguments:case mi.invalid_return_type:case mi.invalid_date:case mi.invalid_string:case mi.too_small:case mi.too_big:case mi.invalid_intersection_types:case mi.not_multiple_of:case mi.custom:default:return[{title:e.message}]}}Ir();Ir();Ir();var t0d=require("fs/promises");async function r0d(e,t){let r=[];for(let n of await nR(e,t))r.push(await tXw({relativeFilepath:dl(e,n),absoluteFilepath:n}));return r}async function tXw({relativeFilepath:e,absoluteFilepath:t}){return{relativeFilepath:e,absoluteFilepath:t,fileContents:(await(0,t0d.readFile)(t)).toString()}}async function n0d({absolutePathToWorkspace:e}){let t=It(e,Ze.of(Qel));if(!await qr(t))return;let n=await r0d(t,"{md,mdx}");return{files:await Promise.all(n.map(i=>({absoluteFilepath:i.absoluteFilepath,contents:i.fileContents})))}}async function Apc({absolutePathToWorkspace:e,namespace:t,definitions:r}){let n=[];for(let i of r){let o=i.overrides!=null?It(e,Ze.of(i.overrides)):void 0,s=i.overlays!=null?It(e,Ze.of(i.overlays)):void 0;if(i.schema.type==="protobuf"){let u=Ze.of(i.schema.root),l=It(e,u);if(!await qr(l))return{didSucceed:!1,failures:{[Ze.of(i.schema.root)]:{type:jd.FILE_MISSING}}};let p=i.schema.target.length===0?void 0:It(e,Ze.of(i.schema.target));if(p!=null&&!await qr(p))return{didSucceed:!1,failures:{[Ze.of(i.schema.target)]:{type:jd.FILE_MISSING}}};let m=jjn(i.settings);n.push({type:"protobuf",absoluteFilepathToProtobufRoot:l,absoluteFilepathToProtobufTarget:p,absoluteFilepathToOverrides:o,relativeFilepathToProtobufRoot:u,dependencies:i.schema.dependencies,generateLocally:i.schema.localGeneration,fromOpenAPI:i.schema.fromOpenAPI,settings:{...m,audiences:i.audiences??[]}});continue}if(i.schema.type==="openrpc"){let u=Ze.of(i.schema.path),l=It(e,u);n.push({type:"openrpc",absoluteFilepath:l,absoluteFilepathToOverrides:o,namespace:t});continue}if(i.schema.type==="graphql"){let u=Ze.of(i.schema.path),l=It(e,u);if(!await qr(l))return{didSucceed:!1,failures:{[u]:{type:jd.FILE_MISSING}}};n.push({type:"graphql",absoluteFilepath:l,absoluteFilepathToOverrides:o,namespace:t});continue}let a=It(e,Ze.of(i.schema.path));if(!await qr(a))return{didSucceed:!1,failures:{[Ze.of(i.schema.path)]:{type:jd.FILE_MISSING}}};if(i.overrides!=null&&o!=null&&!await qr(o))return{didSucceed:!1,failures:{[Ze.of(i.overrides)]:{type:jd.FILE_MISSING}}};if(i.overlays!=null&&s!=null&&!await qr(s))return{didSucceed:!1,failures:{[Ze.of(i.overlays)]:{type:jd.FILE_MISSING}}};let c=jjn(i.settings);n.push({type:"openapi",absoluteFilepath:a,absoluteFilepathToOverrides:o,absoluteFilepathToOverlays:s,settings:{...c,audiences:i.audiences??[]},source:{type:"openapi",file:a},namespace:t})}return n}async function Z4r({absolutePathToWorkspace:e,context:t,cliVersion:r,workspaceName:n}){let[i,o]=await Promise.all([qG({absolutePathToWorkspace:e,context:t}),n0d({absolutePathToWorkspace:e}).catch(()=>{})]);if(i?.api!=null&&i?.api.type==="conjure")return{didSucceed:!0,workspace:new Iqt({workspaceName:n,absoluteFilePath:e,generatorsConfiguration:i,changelog:o,cliVersion:r,context:t,relativePathToConjureDirectory:Ze.of(i.api.pathToConjureDefinition)})};if(i?.api!=null&&(i.api.type==="singleNamespace"&&i.api.definitions.length>0||i.api.type==="multiNamespace")){let s=[];if(i.api.type==="singleNamespace"){let c=await Apc({absolutePathToWorkspace:e,namespace:void 0,definitions:i.api.definitions});if(!Array.isArray(c))return c;s.push(...c)}else{let c=Object.entries(i.api.definitions),u=await Promise.all(c.map(([l,p])=>Apc({absolutePathToWorkspace:e,namespace:l,definitions:p})));for(let l of u){if(!Array.isArray(l))return l;s.push(...l)}if(i.api.rootDefinitions!=null){let l=await Apc({absolutePathToWorkspace:e,namespace:void 0,definitions:i.api.rootDefinitions});if(!Array.isArray(l))return l;s.push(...l)}}let a={didSucceed:!0,workspace:new yb({specs:s.filter(c=>!(c.type==="openrpc"||c.type==="protobuf"&&!c.fromOpenAPI)),allSpecs:s.filter(c=>!(c.type==="protobuf"&&c.fromOpenAPI)),workspaceName:n,absoluteFilePath:e,generatorsConfiguration:i,changelog:o,cliVersion:r})};return await a.workspace.processGraphQLSpecs(t),a}if(await qr(It(e,Ze.of(SP))))return{didSucceed:!0,workspace:new BQ({absoluteFilePath:e,generatorsConfiguration:i,workspaceName:n,changelog:o,context:t,cliVersion:r,loadAPIWorkspace:Z4r})};if(await LJr(It(e,Ze.of(SP)))){let s=e.split("/").pop();t.logger.warn(`Detected empty API definiton: ${s}. Remove to resolve error.`)}return{didSucceed:!1,failures:{[Ze.of(ojr)]:{type:jd.MISCONFIGURED_DIRECTORY}}}}pr();Ir();var i0d=require("fs/promises");var bpc={};D(bpc,{additionalProperties:()=>oXw,default:()=>aXw,definitions:()=>sXw,properties:()=>nXw,required:()=>iXw,type:()=>rXw});var rXw="object",nXw={instances:{type:"array",items:{$ref:"#/definitions/docs.DocsInstance"}},title:{oneOf:[{type:"string"},{type:"null"}]},libraries:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/docs.LibraryConfiguration"}},{type:"null"}]},analytics:{oneOf:[{$ref:"#/definitions/docs.AnalyticsConfig"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]},roles:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.RoleId"}},{type:"null"}]},tabs:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/docs.TabConfig"}},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},products:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ProductConfig"}},{type:"null"}]},"landing-page":{oneOf:[{$ref:"#/definitions/docs.PageConfiguration"},{type:"null"}]},navigation:{oneOf:[{$ref:"#/definitions/docs.NavigationConfig"},{type:"null"}]},"navbar-links":{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.NavbarLink"}},{type:"null"}]},"footer-links":{oneOf:[{$ref:"#/definitions/docs.FooterLinksConfig"},{type:"null"}]},"page-actions":{oneOf:[{$ref:"#/definitions/docs.PageActionsConfig"},{type:"null"}]},experimental:{oneOf:[{$ref:"#/definitions/docs.ExperimentalConfig"},{type:"null"}]},"default-language":{oneOf:[{$ref:"#/definitions/docs.ProgrammingLanguage"},{type:"null"}]},languages:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.Language"}},{type:"null"}]},"ai-chat":{oneOf:[{$ref:"#/definitions/docs.AIChatConfig"},{type:"null"}]},"ai-search":{oneOf:[{$ref:"#/definitions/docs.AIChatConfig"},{type:"null"}]},"ai-examples":{oneOf:[{$ref:"#/definitions/docs.AiExamplesConfig"},{type:"null"}]},metadata:{oneOf:[{$ref:"#/definitions/docs.MetadataConfig"},{type:"null"}]},redirects:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.RedirectConfig"}},{type:"null"}]},logo:{oneOf:[{$ref:"#/definitions/docs.LogoConfiguration"},{type:"null"}]},favicon:{oneOf:[{type:"string"},{type:"null"}]},"background-image":{oneOf:[{$ref:"#/definitions/docs.BackgroundImageConfiguration"},{type:"null"}]},colors:{oneOf:[{$ref:"#/definitions/docs.ColorsConfiguration"},{type:"null"}]},typography:{oneOf:[{$ref:"#/definitions/docs.DocsTypographyConfig"},{type:"null"}]},layout:{oneOf:[{$ref:"#/definitions/docs.LayoutConfig"},{type:"null"}]},settings:{oneOf:[{$ref:"#/definitions/docs.DocsSettingsConfig"},{type:"null"}]},theme:{oneOf:[{$ref:"#/definitions/docs.ThemeConfig"},{type:"null"}]},integrations:{oneOf:[{$ref:"#/definitions/docs.IntegrationsConfig"},{type:"null"}]},css:{oneOf:[{$ref:"#/definitions/docs.CssConfig"},{type:"null"}]},js:{oneOf:[{$ref:"#/definitions/docs.JsConfig"},{type:"null"}]},header:{oneOf:[{type:"string"},{type:"null"}]},footer:{oneOf:[{type:"string"},{type:"null"}]}},iXw=["instances"],oXw=!1,sXw={"docs.CustomDomain":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"docs.GithubEditThisPageConfig":{type:"object",properties:{host:{oneOf:[{type:"string"},{type:"null"}]},owner:{type:"string"},repo:{type:"string"},branch:{oneOf:[{type:"string"},{type:"null"}]}},required:["owner","repo"],additionalProperties:!1},"docs.EditThisPageLaunch":{type:"string",enum:["github","dashboard"]},"docs.EditThisPageConfig":{type:"object",properties:{github:{oneOf:[{$ref:"#/definitions/docs.GithubEditThisPageConfig"},{type:"null"}]},launch:{oneOf:[{$ref:"#/definitions/docs.EditThisPageLaunch"},{type:"null"}]}},additionalProperties:!1},"docs.AudienceId":{type:"string"},"docs.Audience":{anyOf:[{$ref:"#/definitions/docs.AudienceId"},{type:"array",items:{$ref:"#/definitions/docs.AudienceId"}}]},"docs.DocsInstance":{type:"object",properties:{url:{type:"string"},"custom-domain":{oneOf:[{$ref:"#/definitions/docs.CustomDomain"},{type:"null"}]},private:{oneOf:[{type:"boolean"},{type:"null"}]},"edit-this-page":{oneOf:[{$ref:"#/definitions/docs.EditThisPageConfig"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.GitLibraryInputSchema":{type:"object",properties:{git:{type:"string"},subpath:{oneOf:[{type:"string"},{type:"null"}]}},required:["git"],additionalProperties:!1},"docs.PathLibraryInputSchema":{type:"object",properties:{path:{type:"string"}},required:["path"],additionalProperties:!1},"docs.LibraryInputConfiguration":{anyOf:[{$ref:"#/definitions/docs.GitLibraryInputSchema"},{$ref:"#/definitions/docs.PathLibraryInputSchema"}]},"docs.LibraryOutputConfiguration":{type:"object",properties:{path:{type:"string"}},required:["path"],additionalProperties:!1},"docs.LibraryLanguage":{type:"string",enum:["python","cpp"]},"docs.LibraryConfiguration":{type:"object",properties:{input:{$ref:"#/definitions/docs.LibraryInputConfiguration"},output:{$ref:"#/definitions/docs.LibraryOutputConfiguration"},lang:{$ref:"#/definitions/docs.LibraryLanguage"}},required:["input","output","lang"],additionalProperties:!1},"docs.SegmentConfig":{type:"object",properties:{"write-key":{type:"string"}},required:["write-key"],additionalProperties:!1},"docs.FullStoryAnalyticsConfig":{type:"object",properties:{"org-id":{type:"string"}},required:["org-id"],additionalProperties:!1},"docs.IntercomConfig":{type:"object",properties:{"app-id":{type:"string"},"api-base":{oneOf:[{type:"string"},{type:"null"}]}},required:["app-id"],additionalProperties:!1},"docs.PostHogConfig":{type:"object",properties:{"api-key":{type:"string"},endpoint:{oneOf:[{type:"string"},{type:"null"}]}},required:["api-key"],additionalProperties:!1},"docs.GTMConfig":{type:"object",properties:{"container-id":{type:"string"}},required:["container-id"],additionalProperties:!1},"docs.GoogleAnalytics4Config":{type:"object",properties:{"measurement-id":{type:"string"}},required:["measurement-id"],additionalProperties:!1},"docs.AnalyticsConfig":{type:"object",properties:{segment:{oneOf:[{$ref:"#/definitions/docs.SegmentConfig"},{type:"null"}]},fullstory:{oneOf:[{$ref:"#/definitions/docs.FullStoryAnalyticsConfig"},{type:"null"}]},intercom:{oneOf:[{$ref:"#/definitions/docs.IntercomConfig"},{type:"null"}]},posthog:{oneOf:[{$ref:"#/definitions/docs.PostHogConfig"},{type:"null"}]},gtm:{oneOf:[{$ref:"#/definitions/docs.GTMConfig"},{type:"null"}]},ga4:{oneOf:[{$ref:"#/definitions/docs.GoogleAnalytics4Config"},{type:"null"}]}},additionalProperties:!1},"docs.AnnouncementConfig":{type:"object",properties:{message:{type:"string"}},required:["message"],additionalProperties:!1},"docs.RoleId":{type:"string"},"docs.Role":{anyOf:[{$ref:"#/definitions/docs.RoleId"},{type:"array",items:{$ref:"#/definitions/docs.RoleId"}}]},"docs.FeatureFlag":{type:"object",properties:{flag:{type:"string"},"fallback-value":{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},match:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]}},required:["flag"],additionalProperties:!1},"docs.FeatureFlagConfiguration":{anyOf:[{type:"string",description:"The name of the feature flag, We assume that it is a boolean feature flag that needs to be evaluated to true."},{$ref:"#/definitions/docs.FeatureFlag",description:"A single feature flag with a configurable name, fallback value, and match value. Especially useful for non boolean feature flags."},{type:"array",items:{$ref:"#/definitions/docs.FeatureFlag"},description:"A list of feature flags. If any of the feature flags are satisfied, we will show all content."}]},"docs.Target":{type:"string",enum:["_blank","_self","_parent","_top"]},"docs.ChangelogFolderRelativePath":{type:"string"},"docs.TabConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},"display-name":{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},changelog:{oneOf:[{$ref:"#/definitions/docs.ChangelogFolderRelativePath"},{type:"null"}]}},required:["display-name"],additionalProperties:!1},"docs.VersionAvailability":{type:"string",enum:["deprecated","ga","stable","beta"]},"docs.VersionConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},"display-name":{type:"string"},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.VersionAvailability"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]}},required:["display-name","path"],additionalProperties:!1},"docs.InternalProduct":{type:"object",properties:{"display-name":{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},image:{oneOf:[{type:"string"},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]}},required:["display-name","path"],additionalProperties:!1},"docs.ExternalProduct":{type:"object",properties:{"display-name":{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},image:{oneOf:[{type:"string"},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},href:{type:"string"},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["display-name","href"],additionalProperties:!1},"docs.ProductConfig":{anyOf:[{$ref:"#/definitions/docs.InternalProduct"},{$ref:"#/definitions/docs.ExternalProduct"}]},"docs.Availability":{type:"string",enum:["stable","generally-available","in-development","pre-release","deprecated","beta"]},"docs.PageConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},page:{type:"string"},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},noindex:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["page","path"],additionalProperties:!1},"docs.SectionConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},section:{type:"string"},path:{oneOf:[{type:"string"},{type:"null"}]},contents:{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["section","contents"],additionalProperties:!1},"docs.VersionedSnippetLanguageConfiguration":{type:"object",properties:{version:{type:"string"},package:{type:"string"}},required:["version","package"],additionalProperties:!1},"docs.SnippetLanguageConfiguration":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.VersionedSnippetLanguageConfiguration"}]},"docs.SnippetsConfiguration":{type:"object",properties:{python:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},typescript:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},go:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},java:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},ruby:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},csharp:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},php:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},swift:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},rust:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]}},additionalProperties:!1},"docs.PlaygroundButtonSettings":{type:"object",properties:{href:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.PlaygroundSettings":{type:"object",properties:{hidden:{oneOf:[{type:"boolean"},{type:"null"}]},environments:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},button:{oneOf:[{$ref:"#/definitions/docs.PlaygroundButtonSettings"},{type:"null"}]},oauth:{oneOf:[{type:"boolean"},{type:"null"}]},"limit-websocket-messages-per-connection":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"docs.ApiReferencePackageConfigurationWithOptions":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},title:{oneOf:[{type:"string"},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},contents:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},additionalProperties:!1},"docs.ApiReferencePackageConfiguration":{anyOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{$ref:"#/definitions/docs.ApiReferencePackageConfigurationWithOptions"}]},"docs.ApiReferenceSectionConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},section:{type:"string"},"referenced-packages":{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},contents:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["section"],additionalProperties:!1},"docs.ApiReferenceEndpointConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},endpoint:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"docs.ApiReferenceOperationConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},operation:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["operation"],additionalProperties:!1},"docs.LinkConfiguration":{type:"object",properties:{link:{type:"string"},href:{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["link","href"],additionalProperties:!1},"docs.ApiReferenceLayoutItem":{anyOf:[{type:"string",description:"This should be either an endpoint, websocket, webhook, or subpackage ID"},{type:"object",additionalProperties:{$ref:"#/definitions/docs.ApiReferencePackageConfiguration"},description:"Keyed by subpackage name, this object allows you to group endpoints and pages together."},{$ref:"#/definitions/docs.ApiReferenceSectionConfiguration"},{$ref:"#/definitions/docs.ApiReferenceEndpointConfiguration"},{$ref:"#/definitions/docs.ApiReferenceOperationConfiguration"},{$ref:"#/definitions/docs.PageConfiguration"},{$ref:"#/definitions/docs.LinkConfiguration"}]},"docs.ApiReferenceConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},api:{type:"string"},"api-name":{oneOf:[{type:"string"},{type:"null"}]},openrpc:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},"display-errors":{oneOf:[{type:"boolean"},{type:"null"}]},"tag-description-pages":{oneOf:[{type:"boolean"},{type:"null"}]},snippets:{oneOf:[{$ref:"#/definitions/docs.SnippetsConfiguration"},{type:"null"}]},postman:{oneOf:[{type:"string"},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},layout:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},alphabetized:{oneOf:[{type:"boolean"},{type:"null"}]},flattened:{oneOf:[{type:"boolean"},{type:"null"}]},paginated:{oneOf:[{type:"boolean"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["api"],additionalProperties:!1},"docs.LibraryName":{type:"string"},"docs.LibraryReferenceConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},library:{$ref:"#/definitions/docs.LibraryName"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]}},required:["library"],additionalProperties:!1},"docs.ChangelogConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},changelog:{$ref:"#/definitions/docs.ChangelogFolderRelativePath"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["changelog"],additionalProperties:!1},"docs.TitleSource":{type:"string",enum:["frontmatter","filename"]},"docs.FolderConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},folder:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},"title-source":{oneOf:[{$ref:"#/definitions/docs.TitleSource"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["folder"],additionalProperties:!1},"docs.NavigationItem":{anyOf:[{$ref:"#/definitions/docs.PageConfiguration"},{$ref:"#/definitions/docs.SectionConfiguration"},{$ref:"#/definitions/docs.ApiReferenceConfiguration"},{$ref:"#/definitions/docs.LibraryReferenceConfiguration"},{$ref:"#/definitions/docs.LinkConfiguration"},{$ref:"#/definitions/docs.ChangelogConfiguration"},{$ref:"#/definitions/docs.FolderConfiguration"}]},"docs.UntabbedNavigationConfig":{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},"docs.TabId":{type:"string"},"docs.TabbedNavigationItemWithLayout":{type:"object",properties:{tab:{$ref:"#/definitions/docs.TabId"},layout:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},{type:"null"}]}},required:["tab"],additionalProperties:!1},"docs.TabVariant":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},title:{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},layout:{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},slug:{oneOf:[{type:"string"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},default:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["title","layout"],additionalProperties:!1},"docs.TabbedNavigationItemWithVariants":{type:"object",properties:{tab:{$ref:"#/definitions/docs.TabId"},variants:{type:"array",items:{$ref:"#/definitions/docs.TabVariant"}}},required:["tab","variants"],additionalProperties:!1},"docs.TabbedNavigationItem":{anyOf:[{$ref:"#/definitions/docs.TabbedNavigationItemWithLayout"},{$ref:"#/definitions/docs.TabbedNavigationItemWithVariants"}]},"docs.TabbedNavigationConfig":{type:"array",items:{$ref:"#/definitions/docs.TabbedNavigationItem"}},"docs.NavigationConfig":{anyOf:[{$ref:"#/definitions/docs.UntabbedNavigationConfig"},{$ref:"#/definitions/docs.TabbedNavigationConfig"}]},"docs.NavbarGithubConfigWithOptions":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},url:{type:"string"},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.NavbarGithubConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.NavbarGithubConfigWithOptions"}]},"docs.NavbarLinkConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.NavbarLink":{type:"object",properties:{type:{type:"string",enum:["filled","outlined","minimal","github","dropdown","primary","secondary"]}},oneOf:[{properties:{type:{const:"filled"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"outlined"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"minimal"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"github"},value:{$ref:"#/definitions/docs.NavbarGithubConfig"}},required:["type"]},{properties:{type:{const:"dropdown"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},links:{type:"array",items:{$ref:"#/definitions/docs.NavbarLinkConfig"}},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type","links"]},{properties:{type:{const:"primary"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"secondary"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]}]},"docs.FooterLinksConfig":{type:"object",properties:{github:{oneOf:[{type:"string"},{type:"null"}]},twitter:{oneOf:[{type:"string"},{type:"null"}]},x:{oneOf:[{type:"string"},{type:"null"}]},linkedin:{oneOf:[{type:"string"},{type:"null"}]},youtube:{oneOf:[{type:"string"},{type:"null"}]},instagram:{oneOf:[{type:"string"},{type:"null"}]},facebook:{oneOf:[{type:"string"},{type:"null"}]},discord:{oneOf:[{type:"string"},{type:"null"}]},slack:{oneOf:[{type:"string"},{type:"null"}]},hackernews:{oneOf:[{type:"string"},{type:"null"}]},medium:{oneOf:[{type:"string"},{type:"null"}]},website:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.PageActionOption":{type:"string",enum:["copy-page","view-as-markdown","ask-ai","chatgpt","claude","cursor","vscode"]},"docs.CustomPageAction":{type:"object",properties:{title:{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},url:{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},default:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["title","url"],additionalProperties:!1},"docs.PageActionOptions":{type:"object",properties:{"copy-page":{oneOf:[{type:"boolean"},{type:"null"}]},"view-as-markdown":{oneOf:[{type:"boolean"},{type:"null"}]},"ask-ai":{oneOf:[{type:"boolean"},{type:"null"}]},chatgpt:{oneOf:[{type:"boolean"},{type:"null"}]},claude:{oneOf:[{type:"boolean"},{type:"null"}]},cursor:{oneOf:[{type:"boolean"},{type:"null"}]},vscode:{oneOf:[{type:"boolean"},{type:"null"}]},custom:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.CustomPageAction"}},{type:"null"}]}},additionalProperties:!1},"docs.PageActionsConfig":{type:"object",properties:{default:{oneOf:[{$ref:"#/definitions/docs.PageActionOption"},{type:"null"}]},options:{oneOf:[{$ref:"#/definitions/docs.PageActionOptions"},{type:"null"}]}},additionalProperties:!1},"docs.ExperimentalConfig":{type:"object",properties:{"mdx-components":{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"disable-stream-toggle":{oneOf:[{type:"boolean"},{type:"null"}]},"openapi-parser-v2":{oneOf:[{type:"boolean"},{type:"null"}]},"openapi-parser-v3":{oneOf:[{type:"boolean"},{type:"null"}]},"dynamic-snippets":{oneOf:[{type:"boolean"},{type:"null"}]},"ai-examples":{oneOf:[{type:"boolean"},{type:"null"}]},"ai-example-style-instructions":{oneOf:[{type:"string"},{type:"null"}]},"exclude-apis":{oneOf:[{type:"boolean"},{type:"null"}]},"basepath-aware":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.ProgrammingLanguage":{type:"string",enum:["typescript","javascript","python","java","go","ruby","csharp","php","swift","rust","nodets","nodejs","dotnet","curl","jvm","ts","js"]},"docs.Language":{type:"string",enum:["en","es","fr","de","it","pt","ja","zh","ko","el","no","pl","ru","sv","tr"]},"docs.AIChatModel":{type:"string",enum:["claude-3.7","claude-4","command-a"]},"docs.AIChatLocation":{type:"string",enum:["docs","slack","discord"]},"docs.AIChatWebsiteDatasource":{type:"object",properties:{url:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.AIChatDatasource":{anyOf:[{$ref:"#/definitions/docs.AIChatWebsiteDatasource"}]},"docs.AIChatConfig":{type:"object",properties:{model:{oneOf:[{$ref:"#/definitions/docs.AIChatModel"},{type:"null"}]},"system-prompt":{oneOf:[{type:"string"},{type:"null"}]},location:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.AIChatLocation"}},{type:"null"}]},datasources:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.AIChatDatasource"}},{type:"null"}]}},additionalProperties:!1},"docs.AiExamplesConfig":{type:"object",properties:{enabled:{oneOf:[{type:"boolean"},{type:"null"}]},style:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.TwitterCardSetting":{type:"string",enum:["summary","summary_large_image","app","player"]},"docs.MetadataConfig":{type:"object",properties:{"og:site_name":{oneOf:[{type:"string"},{type:"null"}]},"og:title":{oneOf:[{type:"string"},{type:"null"}]},"og:description":{oneOf:[{type:"string"},{type:"null"}]},"og:url":{oneOf:[{type:"string"},{type:"null"}]},"og:image":{oneOf:[{type:"string"},{type:"null"}]},"og:image:width":{oneOf:[{type:"number"},{type:"null"}]},"og:image:height":{oneOf:[{type:"number"},{type:"null"}]},"og:locale":{oneOf:[{type:"string"},{type:"null"}]},"og:logo":{oneOf:[{type:"string"},{type:"null"}]},"twitter:title":{oneOf:[{type:"string"},{type:"null"}]},"twitter:description":{oneOf:[{type:"string"},{type:"null"}]},"twitter:handle":{oneOf:[{type:"string"},{type:"null"}]},"twitter:image":{oneOf:[{type:"string"},{type:"null"}]},"twitter:site":{oneOf:[{type:"string"},{type:"null"}]},"twitter:url":{oneOf:[{type:"string"},{type:"null"}]},"twitter:card":{oneOf:[{$ref:"#/definitions/docs.TwitterCardSetting"},{type:"null"}]},"canonical-host":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.RedirectConfig":{type:"object",properties:{source:{type:"string"},destination:{type:"string"},permanent:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["source","destination"],additionalProperties:!1},"docs.LogoConfiguration":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]},height:{oneOf:[{type:"number"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},"right-text":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.BackgroundImageThemedConfig":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.BackgroundImageConfiguration":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.BackgroundImageThemedConfig"}]},"docs.ColorThemedConfig":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.ColorConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.ColorThemedConfig"}]},"docs.ColorsConfiguration":{type:"object",properties:{"accent-primary":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},accentPrimary:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},background:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},border:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"sidebar-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"header-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"card-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-1":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-2":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-3":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-4":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-5":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-6":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-7":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-8":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-9":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-10":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-11":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-12":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]}},additionalProperties:!1},"docs.FontWeight":{anyOf:[{type:"string"},{type:"integer"}]},"docs.FontStyle":{type:"string",enum:["normal","italic"]},"docs.FontConfigVariant":{type:"object",properties:{path:{type:"string"},weight:{oneOf:[{$ref:"#/definitions/docs.FontWeight"},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/docs.FontStyle"},{type:"null"}]}},required:["path"],additionalProperties:!1},"docs.FontConfigPath":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.FontConfigVariant"}]},"docs.FontDisplay":{type:"string",enum:["auto","block","swap","fallback","optional"]},"docs.FontConfig":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},path:{oneOf:[{type:"string"},{type:"null"}]},weight:{oneOf:[{$ref:"#/definitions/docs.FontWeight"},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/docs.FontStyle"},{type:"null"}]},paths:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.FontConfigPath"}},{type:"null"}]},display:{oneOf:[{$ref:"#/definitions/docs.FontDisplay"},{type:"null"}]},fallback:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"font-variation-settings":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.DocsTypographyConfig":{type:"object",properties:{headingsFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]},bodyFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]},codeFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]}},additionalProperties:!1},"docs.SearchbarPlacement":{type:"string",enum:["header","header-tabs","sidebar"]},"docs.TabsPlacement":{type:"string",enum:["header","sidebar"]},"docs.SwitcherPlacement":{type:"string",enum:["header","sidebar"]},"docs.ContentAlignment":{type:"string",enum:["center","left"]},"docs.HeaderPosition":{type:"string",enum:["fixed","static"]},"docs.LayoutConfig":{type:"object",properties:{"page-width":{oneOf:[{type:"string"},{type:"null"}]},"content-width":{oneOf:[{type:"string"},{type:"null"}]},"sidebar-width":{oneOf:[{type:"string"},{type:"null"}]},"header-height":{oneOf:[{type:"string"},{type:"null"}]},"searchbar-placement":{oneOf:[{$ref:"#/definitions/docs.SearchbarPlacement"},{type:"null"}]},"tabs-placement":{oneOf:[{$ref:"#/definitions/docs.TabsPlacement"},{type:"null"}]},"switcher-placement":{oneOf:[{$ref:"#/definitions/docs.SwitcherPlacement"},{type:"null"}]},"content-alignment":{oneOf:[{$ref:"#/definitions/docs.ContentAlignment"},{type:"null"}]},"header-position":{oneOf:[{$ref:"#/definitions/docs.HeaderPosition"},{type:"null"}]},"disable-header":{oneOf:[{type:"boolean"},{type:"null"}]},"hide-nav-links":{oneOf:[{type:"boolean"},{type:"null"}]},"hide-feedback":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.HttpSnippetLanguage":{type:"string",enum:["curl","csharp","go","java","javascript","php","python","ruby","swift","typescript"]},"docs.HttpSnippetsConfig":{anyOf:[{type:"boolean"},{type:"array",items:{$ref:"#/definitions/docs.HttpSnippetLanguage"}}]},"docs.DocsSettingsConfig":{type:"object",properties:{"search-text":{oneOf:[{type:"string"},{type:"null"}]},"disable-search":{oneOf:[{type:"boolean"},{type:"null"}]},"dark-mode-code":{oneOf:[{type:"boolean"},{type:"null"}]},"default-search-filters":{oneOf:[{type:"boolean"},{type:"null"}]},"http-snippets":{oneOf:[{$ref:"#/definitions/docs.HttpSnippetsConfig"},{type:"null"}]},"hide-404-page":{oneOf:[{type:"boolean"},{type:"null"}]},"use-javascript-as-typescript":{oneOf:[{type:"boolean"},{type:"null"}]},"disable-explorer-proxy":{oneOf:[{type:"boolean"},{type:"null"}]},"disable-analytics":{oneOf:[{type:"boolean"},{type:"null"}]},language:{oneOf:[{$ref:"#/definitions/docs.Language"},{type:"null"}]},"folder-title-source":{oneOf:[{$ref:"#/definitions/docs.TitleSource"},{type:"null"}]},"substitute-env-vars":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.SidebarThemeConfig":{type:"string",enum:["default","minimal"]},"docs.BodyThemeConfig":{type:"string",enum:["default","canvas"]},"docs.TabsThemeConfig":{type:"string",enum:["default","bubble"]},"docs.PageActionsThemeConfig":{type:"string",enum:["default","toolbar"]},"docs.FooterNavThemeConfig":{type:"string",enum:["default","minimal"]},"docs.LanguageSwitcherThemeConfig":{type:"string",enum:["default","minimal"]},"docs.ProductSwitcherThemeConfig":{type:"string",enum:["default","toggle"]},"docs.ThemeConfig":{type:"object",properties:{sidebar:{oneOf:[{$ref:"#/definitions/docs.SidebarThemeConfig"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/docs.BodyThemeConfig"},{type:"null"}]},tabs:{oneOf:[{$ref:"#/definitions/docs.TabsThemeConfig"},{type:"null"}]},"page-actions":{oneOf:[{$ref:"#/definitions/docs.PageActionsThemeConfig"},{type:"null"}]},"footer-nav":{oneOf:[{$ref:"#/definitions/docs.FooterNavThemeConfig"},{type:"null"}]},"language-switcher":{oneOf:[{$ref:"#/definitions/docs.LanguageSwitcherThemeConfig"},{type:"null"}]},"product-switcher":{oneOf:[{$ref:"#/definitions/docs.ProductSwitcherThemeConfig"},{type:"null"}]}},additionalProperties:!1},"docs.IntegrationsConfig":{type:"object",properties:{intercom:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.CssConfig":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"docs.JsScriptStrategy":{type:"string",enum:["beforeInteractive","afterInteractive","lazyOnload"]},"docs.JsRemoteConfig":{type:"object",properties:{url:{type:"string"},strategy:{oneOf:[{$ref:"#/definitions/docs.JsScriptStrategy"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.JsFileConfigSettings":{type:"object",properties:{path:{type:"string"},strategy:{oneOf:[{$ref:"#/definitions/docs.JsScriptStrategy"},{type:"null"}]}},required:["path"],additionalProperties:!1},"docs.JsFileConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.JsFileConfigSettings"}]},"docs.JsConfigOptions":{anyOf:[{$ref:"#/definitions/docs.JsRemoteConfig"},{$ref:"#/definitions/docs.JsFileConfig"}]},"docs.JsConfig":{anyOf:[{$ref:"#/definitions/docs.JsConfigOptions"},{type:"array",items:{$ref:"#/definitions/docs.JsConfigOptions"}}]}},aXw={type:rXw,properties:nXw,required:iXw,additionalProperties:oXw,definitions:sXw};async function _pc({fernDirectory:e,context:t}){let r=It(e,Ze.of(tw));if(!await qr(r))return;let n=await cXw({absolutePathToDocsDefinition:e,context:t});if(n!=null)return{type:"docs",absoluteFilePath:e,config:n,workspaceName:void 0,absoluteFilepathToDocsConfig:It(e,Ze.of(tw))}}async function cXw({absolutePathToDocsDefinition:e,context:t}){if(!await qr(e))return;let r=It(e,Ze.of(tw));return await uXw({absolutePathOfConfiguration:r,context:t})}async function uXw({absolutePathOfConfiguration:e,context:t}){let r=await(0,i0d.readFile)(e),n=Bn.load(r.toString()),i=Jce(n,bpc,{filePath:e});if(i.success){let o=[];t.logger.debug("About to sanitize docs configuration JSON structure");let s=FK(n,[],o);o.length>0?t.logger.warn(`docs.yml contained null/undefined sections that were ignored: ${o.map(a=>a.join(".")).join(", ")}`):t.logger.debug("No null/undefined values found during sanitization");try{return t.logger.debug("Attempting to parse sanitized docs configuration"),Y3.RawSchemas.Serializer.DocsConfiguration.parseOrThrow(s)}catch(a){throw t.logger.error(`Parsing failed even after sanitization: ${a instanceof Error?a.message:String(a)}`),t.logger.debug(`Sanitized JSON structure: ${JSON.stringify(s,null,2)}`),new Error(`Failed to parse ${e}: ${a instanceof Error?a.message:String(a)}`)}}else throw new Error(`Failed to parse docs.yml:
2622
+ \u{1F33F} Generated with Fern`}async isFernIgnorePresent(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e)));return await qr(t)}async isGitRepository(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(".git")));return await qr(t)}async copyGeneratedFilesWithFernIgnoreInExistingRepo(){let t=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e))),r=await Nvt({absolutePathToFernignore:t}),n=await this.getPathsToPreserve(r);(await this.runGitCommand(["config","--list"],this.absolutePathToLocalOutput)).includes("user.name")||(await this.runGitCommand(["config","user.name","fern-api"],this.absolutePathToLocalOutput),await this.runGitCommand(["config","user.email","info@buildwithfern.com"],this.absolutePathToLocalOutput)),await this.runGitCommand(["rm","-rf","."],this.absolutePathToLocalOutput),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput),await this.runGitCommand(["add","."],this.absolutePathToLocalOutput),await this.runGitCommand(["reset","--",...n],this.absolutePathToLocalOutput),await this.runGitCommand(["clean","-fd","--",...n],this.absolutePathToLocalOutput),await this.runGitCommand(["restore","."],this.absolutePathToLocalOutput)}async copyGeneratedFilesWithFernIgnoreInTempRepo(){let t=vr.of((await $ld.default.dir({})).path),r=vr.of(It(this.absolutePathToLocalOutput,Ze.of(x_e))),n=await Nvt({absolutePathToFernignore:r}),i=await this.getPathsToPreserve(n);await(0,ak.cp)(this.absolutePathToLocalOutput,t,{recursive:!0}),await this.runGitCommand(["init"],t),await this.runGitCommand(["add","."],t),(await this.runGitCommand(["config","--list"],t)).includes("user.name")||(await this.runGitCommand(["config","user.name","fern-api"],t),await this.runGitCommand(["config","user.email","info@buildwithfern.com"],t)),await this.runGitCommand(["commit","--allow-empty","-m",'"init"'],t),await this.runGitCommand(["rm","-rf","."],t),await this.copyGeneratedFilesToDirectory(t),await this.runGitCommand(["add","."],t),await this.runGitCommand(["reset","--",...i],t),await this.runGitCommand(["clean","-fd","--",...i],t),await this.runGitCommand(["restore","."],t),await(0,ak.rm)(It(t,Ze.of(".git")),{recursive:!0}),await(0,ak.rm)(this.absolutePathToLocalOutput,{recursive:!0}),await(0,ak.cp)(t,this.absolutePathToLocalOutput,{recursive:!0})}async copyGeneratedFilesNoFernIgnorePreservingGit(){let t=await(0,ak.readdir)(this.absolutePathToLocalOutput),r=[".git"];await this.generatedOutputMissingReadme()&&r.push("README.md"),await Promise.all(t.filter(n=>!r.includes(n)).map(n=>(0,ak.rm)(It(this.absolutePathToLocalOutput,Ze.of(n)),{force:!0,recursive:!0}))),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput)}async copyGeneratedFilesNoFernIgnoreDeleteAll(){this.context.logger.debug(`rm -rf ${this.absolutePathToLocalOutput}`),await(0,ak.rm)(this.absolutePathToLocalOutput,{force:!0,recursive:!0}),await this.copyGeneratedFilesToDirectory(this.absolutePathToLocalOutput)}async copyGeneratedFilesToDirectory(t){let[r,...n]=await(0,ak.readdir)(this.absolutePathToTmpOutputDirectory);if(r!=null)if(this.context.logger.debug(`Copying generated files to ${t}`),r.endsWith(".zip")){await(0,Wld.default)(It(this.absolutePathToTmpOutputDirectory,Ze.of(r)),t);for(let i of n)await(0,ak.cp)(It(this.absolutePathToTmpOutputDirectory,Ze.of(i)),It(t,Ze.of(i)),{recursive:!0})}else await(0,ak.cp)(this.absolutePathToTmpOutputDirectory,t,{recursive:!0})}async copySnippetJSON({absolutePathToTmpSnippetJSON:t,absolutePathToLocalSnippetJSON:r}){this.context.logger.debug(`Copying generated snippets to ${r}`),await(0,ak.cp)(t,r)}async generatedOutputMissingReadme(){try{let t=await(0,ak.readdir)(this.absolutePathToTmpOutputDirectory);return t.length===1&&t[0]!=null&&t[0].endsWith(".zip")?!1:!t.includes("README.md")}catch{return!0}}async getPathsToPreserve(t){return await this.generatedOutputMissingReadme()?[...t,"README.md"]:t}async runGitCommand(t,r){return(await _h(this.context.logger,"git",t,{cwd:r,doNotPipeOutput:!0})).stdout}async generateDiffFile(){let t=(0,Hld.join)((0,Gld.tmpdir)(),`git-diff-${Date.now()}.patch`);return await this.runGitCommand(["add","-N","."],this.absolutePathToLocalOutput),await this.runGitCommand(["diff","HEAD","--output",t],this.absolutePathToLocalOutput),this.context.logger.info(`Generated git diff to file: ${t}`),t}};function Lyw(e,t){let r=nfa(e);if(r?.type==="custom"){let n=r.value,i=t?Tdr.dirname(t):process.cwd(),o=Tdr.isAbsolute(n)?n:Tdr.resolve(i,n);return vr.of(o)}}async function Jqo({organization:e,absolutePathToFernConfig:t,workspace:r,generatorInvocation:n,absolutePathToLocalOutput:i,absolutePathToLocalSnippetJSON:o,absolutePathToLocalSnippetTemplateJSON:s,audiences:a,version:c,workspaceTempDir:u,keepDocker:l,context:p,irVersionOverride:m,outputVersionOverride:f,writeUnitTests:h,generateOauthClients:g,generatePaginatedClients:y,includeOptionalRequestPropertyExamples:A,inspect:b,executionEnvironment:v,runner:_,whiteLabel:O,ir:E,ai:P}){let{latest:x,migrated:I}=await Mld({workspace:r,audiences:a,generatorInvocation:n,context:p,irVersionOverride:m,packageName:xi.getPackageName({generatorInvocation:n}),version:c??f,sourceConfig:Wyw(r),includeOptionalRequestPropertyExamples:A,ir:E}),F=await qyw({workspaceTempDir:u,filename:zZs,context:p,ir:I});p.logger.debug("Wrote IR to: "+F);let q=(0,Bdr.join)(u.path,kZs),W=vr.of(q);await(0,Zjt.writeFile)(q,""),p.logger.debug("Will write config.json to: "+W);let $=(0,Bdr.join)(u.path,NZs),re=vr.of($);await(0,Zjt.mkdir)($,{recursive:!0}),p.logger.debug("Will write output to: "+re);let ce;if(o!=null){let Je=(0,Bdr.join)(u.path,"snippet.json");ce=vr.of(Je),await(0,Zjt.writeFile)(Je,""),p.logger.debug("Will write snippet.json to: "+ce)}let G;if(s!=null){let Je=(0,Bdr.join)(u.path,Vel);G=vr.of(Je),await(0,Zjt.writeFile)(Je,""),p.logger.debug("Will write snippet-templates.json to: "+G)}let ee=v??new $He({containerImage:`${n.name}:${n.version}`,keepContainer:l}),$e=ee instanceof $He?{outputDirectory:vr.of(iQn),irPath:vr.of(oQn),configPath:vr.of(WFr),snippetPath:vr.of(sQn),snippetTemplatePath:vr.of(aQn)}:{outputDirectory:re,configPath:W,irPath:F,snippetPath:ce,snippetTemplatePath:G},X=b0p({generatorInvocation:n,customConfig:n.config,workspaceName:r.definition.rootApiFile.contents.name,outputVersion:f,organization:e,absolutePathToSnippet:ce,absolutePathToSnippetTemplates:G,absolutePathToFernConfig:t,writeUnitTests:h,generateOauthClients:g,generatePaginatedClients:y,whiteLabel:O,paths:$e});await(0,Zjt.writeFile)(W,JSON.stringify(await Kld.GeneratorConfig.jsonOrThrow(X),void 0,4));let Z=Lyw(n,t);await ee.execute({generatorName:n.name,irPath:F,configPath:W,outputPath:re,snippetPath:ce,snippetTemplatePath:G,licenseFilePath:Z,context:p,inspect:b,runner:_});let Te=await new Kqo({context:p,absolutePathToLocalOutput:i,absolutePathToTmpOutputDirectory:re,absolutePathToLocalSnippetJSON:o,absolutePathToLocalSnippetTemplateJSON:s,absolutePathToTmpSnippetJSON:ce,absolutePathToTmpSnippetTemplatesJSON:G,version:c,ai:P,isWhitelabel:E.readmeConfig?.whiteLabel??!1}).copyGeneratedFiles();return{ir:x,generatorConfig:X,...Te}}async function qyw({ir:e,workspaceTempDir:t,filename:r,context:n}){n.logger.debug("Migrated IR");let i;if(r)i=vr.of((0,Bdr.join)(t.path,r));else{let o=await Jld.default.file({tmpdir:t.path});i=vr.of(o.path)}return await G2(i,e,{pretty:!1}),n.logger.debug(`Wrote IR to ${i}`),i}function Wyw(e){return{sources:e.getSources().map(t=>t.type==="protobuf"?L3.proto({id:t.id,protoRootUrl:`file:///${Gyw(t)}`}):L3.openapi())}}function Gyw(e){return`${h9l}/${e.id}`}pr();Ir();var M6o=He(gpc(),1);d7e();pr();function DBt({apiName:e,organization:t,generatorInvocation:r}){let n=$Yw(r);return{apiName:e,organization:t,customConfig:r.config,outputConfig:n??gr.GeneratorOutputConfig.local()}}function $Yw(e){let t=e.outputMode;switch(t.type){case"downloadFiles":return gr.GeneratorOutputConfig.local();case"publishV2":return KYw({publish:t.publishV2,version:e.version});case"githubV2":return JYw({github:t.githubV2,language:e.language,version:e.version});case"publish":case"github":return;default:Ue(t)}}function KYw({publish:e,version:t}){switch(e.type){case"npmOverride":{let r=e.npmOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.npm({version:t,packageName:r.packageName,repoUrl:void 0}))}case"mavenOverride":{let r=e.mavenOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.maven({version:t,coordinate:r.coordinate,repoUrl:void 0}))}case"pypiOverride":{let r=e.pypiOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.pypi({version:t,packageName:r.coordinate,repoUrl:void 0}))}case"rubyGemsOverride":{let r=e.rubyGemsOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.rubygems({version:t,packageName:r.packageName,repoUrl:void 0}))}case"nugetOverride":{let r=e.nugetOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.nuget({version:t,packageName:r.packageName,repoUrl:void 0}))}case"cratesOverride":{let r=e.cratesOverride;return r==null?void 0:gr.GeneratorOutputConfig.publish(gr.PublishInfo.crates({version:t,packageName:r.packageName,repoUrl:void 0}))}case"postman":return;default:Ue(e)}}function JYw({github:e,version:t,language:r}){let n=YYw({owner:e.owner,repo:e.repo});if(r===xi.GenerationLanguage.GO)return gr.GeneratorOutputConfig.publish(gr.PublishInfo.go({version:t,repoUrl:n}));if(r===xi.GenerationLanguage.SWIFT)return gr.GeneratorOutputConfig.publish(gr.PublishInfo.swift({version:t,repoUrl:n}));let i=e.publishInfo;if(i!=null)switch(i.type){case"maven":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.maven({version:t,coordinate:i.coordinate,repoUrl:n}));case"npm":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.npm({version:t,packageName:i.packageName,repoUrl:n}));case"pypi":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.pypi({version:t,packageName:i.packageName,repoUrl:n}));case"rubygems":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.rubygems({version:t,packageName:i.packageName,repoUrl:n}));case"nuget":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.nuget({version:t,packageName:i.packageName,repoUrl:n}));case"crates":return gr.GeneratorOutputConfig.publish(gr.PublishInfo.crates({version:t,packageName:i.packageName,repoUrl:n}));case"postman":return;default:Ue(i)}}function YYw({owner:e,repo:t}){return`https://github.com/${e}/${t}`}pr();function XYw(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function ypc(e,t){for(let[r,n]of rC(e.failures))ZYw({relativeFilepath:r,failure:n,logger:t})}function ZYw({relativeFilepath:e,failure:t,logger:r}){switch(t.type){case jd.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 jd.FILE_READ:r.error("Failed to open file: "+e);break;case jd.FILE_MISSING:r.error("Missing file: "+e);break;case jd.FILE_PARSE:t.error instanceof SCr?r.error(uJ({title:`Failed to parse ${e}: ${t.error.reason}`,subtitle:t.error.mark.snippet})):r.error("Failed to parse file: "+e);break;case jd.STRUCTURE_VALIDATION:for(let n of t.error.issues)for(let{title:i,subtitle:o}of eXw(n))r.error(uJ({title:i,subtitle:o,breadcrumbs:[e,...n.path]}));break;case jd.FAILED_TO_LOAD_DEPENDENCY:r.error("Failed to load dependency: "+t.dependencyName);break;case jd.DEPENDENCY_NOT_LISTED:r.error(`Dependency is not listed in ${F_n}: `+t.dependencyName);break;case jd.EXPORT_PACKAGE_HAS_DEFINITIONS:r.error("Exported package contains API definitions: "+t.pathToPackage);break;case jd.EXPORTING_PACKAGE_MARKER_OTHER_KEYS:r.error(`${t.pathOfPackageMarker} has an export so it cannot define other keys.`);break;case jd.JSONSCHEMA_VALIDATION:if(t.error.error!=null){let n=t.error.error.instancePath.split("/").filter(i=>i!=="").map(XYw);t.error.error.keyword==="required"&&t.error.error.params?.missingProperty?n.push(t.error.error.params.missingProperty):t.error.error.keyword==="additionalProperties"&&t.error.error.params?.additionalProperty&&n.push(t.error.error.params.additionalProperty),r.error(uJ({title:t.error.error.message??"Unknown error",breadcrumbs:[e,...n]}))}break;default:Ue(t)}}function eXw(e){switch(e.code){case mi.invalid_type:return[{title:"Incorrect type",subtitle:`Expected ${at.underline(e.expected)} but received ${at.underline(e.received)}`}];case mi.unrecognized_keys:return e.keys.map(t=>({title:"Unexpected key",subtitle:`Encountered unexpected key ${at.underline(t)}`}));case mi.invalid_enum_value:return[{title:"Unrecognized value",subtitle:`Allowed values: ${e.options.map(t=>at.underline(t)).join(", ")}`}];case mi.invalid_union:case mi.invalid_arguments:case mi.invalid_return_type:case mi.invalid_date:case mi.invalid_string:case mi.too_small:case mi.too_big:case mi.invalid_intersection_types:case mi.not_multiple_of:case mi.custom:default:return[{title:e.message}]}}Ir();Ir();Ir();var t0d=require("fs/promises");async function r0d(e,t){let r=[];for(let n of await nR(e,t))r.push(await tXw({relativeFilepath:dl(e,n),absoluteFilepath:n}));return r}async function tXw({relativeFilepath:e,absoluteFilepath:t}){return{relativeFilepath:e,absoluteFilepath:t,fileContents:(await(0,t0d.readFile)(t)).toString()}}async function n0d({absolutePathToWorkspace:e}){let t=It(e,Ze.of(Qel));if(!await qr(t))return;let n=await r0d(t,"{md,mdx}");return{files:await Promise.all(n.map(i=>({absoluteFilepath:i.absoluteFilepath,contents:i.fileContents})))}}async function Apc({absolutePathToWorkspace:e,namespace:t,definitions:r}){let n=[];for(let i of r){let o=i.overrides!=null?It(e,Ze.of(i.overrides)):void 0,s=i.overlays!=null?It(e,Ze.of(i.overlays)):void 0;if(i.schema.type==="protobuf"){let u=Ze.of(i.schema.root),l=It(e,u);if(!await qr(l))return{didSucceed:!1,failures:{[Ze.of(i.schema.root)]:{type:jd.FILE_MISSING}}};let p=i.schema.target.length===0?void 0:It(e,Ze.of(i.schema.target));if(p!=null&&!await qr(p))return{didSucceed:!1,failures:{[Ze.of(i.schema.target)]:{type:jd.FILE_MISSING}}};let m=jjn(i.settings);n.push({type:"protobuf",absoluteFilepathToProtobufRoot:l,absoluteFilepathToProtobufTarget:p,absoluteFilepathToOverrides:o,relativeFilepathToProtobufRoot:u,dependencies:i.schema.dependencies,generateLocally:i.schema.localGeneration,fromOpenAPI:i.schema.fromOpenAPI,settings:{...m,audiences:i.audiences??[]}});continue}if(i.schema.type==="openrpc"){let u=Ze.of(i.schema.path),l=It(e,u);n.push({type:"openrpc",absoluteFilepath:l,absoluteFilepathToOverrides:o,namespace:t});continue}if(i.schema.type==="graphql"){let u=Ze.of(i.schema.path),l=It(e,u);if(!await qr(l))return{didSucceed:!1,failures:{[u]:{type:jd.FILE_MISSING}}};n.push({type:"graphql",absoluteFilepath:l,absoluteFilepathToOverrides:o,namespace:t});continue}let a=It(e,Ze.of(i.schema.path));if(!await qr(a))return{didSucceed:!1,failures:{[Ze.of(i.schema.path)]:{type:jd.FILE_MISSING}}};if(i.overrides!=null&&o!=null&&!await qr(o))return{didSucceed:!1,failures:{[Ze.of(i.overrides)]:{type:jd.FILE_MISSING}}};if(i.overlays!=null&&s!=null&&!await qr(s))return{didSucceed:!1,failures:{[Ze.of(i.overlays)]:{type:jd.FILE_MISSING}}};let c=jjn(i.settings);n.push({type:"openapi",absoluteFilepath:a,absoluteFilepathToOverrides:o,absoluteFilepathToOverlays:s,settings:{...c,audiences:i.audiences??[]},source:{type:"openapi",file:a},namespace:t})}return n}async function Z4r({absolutePathToWorkspace:e,context:t,cliVersion:r,workspaceName:n}){let[i,o]=await Promise.all([qG({absolutePathToWorkspace:e,context:t}),n0d({absolutePathToWorkspace:e}).catch(()=>{})]);if(i?.api!=null&&i?.api.type==="conjure")return{didSucceed:!0,workspace:new Iqt({workspaceName:n,absoluteFilePath:e,generatorsConfiguration:i,changelog:o,cliVersion:r,context:t,relativePathToConjureDirectory:Ze.of(i.api.pathToConjureDefinition)})};if(i?.api!=null&&(i.api.type==="singleNamespace"&&i.api.definitions.length>0||i.api.type==="multiNamespace")){let s=[];if(i.api.type==="singleNamespace"){let c=await Apc({absolutePathToWorkspace:e,namespace:void 0,definitions:i.api.definitions});if(!Array.isArray(c))return c;s.push(...c)}else{let c=Object.entries(i.api.definitions),u=await Promise.all(c.map(([l,p])=>Apc({absolutePathToWorkspace:e,namespace:l,definitions:p})));for(let l of u){if(!Array.isArray(l))return l;s.push(...l)}if(i.api.rootDefinitions!=null){let l=await Apc({absolutePathToWorkspace:e,namespace:void 0,definitions:i.api.rootDefinitions});if(!Array.isArray(l))return l;s.push(...l)}}let a={didSucceed:!0,workspace:new yb({specs:s.filter(c=>!(c.type==="openrpc"||c.type==="protobuf"&&!c.fromOpenAPI)),allSpecs:s.filter(c=>!(c.type==="protobuf"&&c.fromOpenAPI)),workspaceName:n,absoluteFilePath:e,generatorsConfiguration:i,changelog:o,cliVersion:r})};return await a.workspace.processGraphQLSpecs(t),a}if(await qr(It(e,Ze.of(SP))))return{didSucceed:!0,workspace:new BQ({absoluteFilePath:e,generatorsConfiguration:i,workspaceName:n,changelog:o,context:t,cliVersion:r,loadAPIWorkspace:Z4r})};if(await LJr(It(e,Ze.of(SP)))){let s=e.split("/").pop();t.logger.warn(`Detected empty API definiton: ${s}. Remove to resolve error.`)}return{didSucceed:!1,failures:{[Ze.of(ojr)]:{type:jd.MISCONFIGURED_DIRECTORY}}}}pr();Ir();var i0d=require("fs/promises");var bpc={};D(bpc,{additionalProperties:()=>oXw,default:()=>aXw,definitions:()=>sXw,properties:()=>nXw,required:()=>iXw,type:()=>rXw});var rXw="object",nXw={instances:{type:"array",items:{$ref:"#/definitions/docs.DocsInstance"}},title:{oneOf:[{type:"string"},{type:"null"}]},libraries:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/docs.LibraryConfiguration"}},{type:"null"}]},analytics:{oneOf:[{$ref:"#/definitions/docs.AnalyticsConfig"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]},roles:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.RoleId"}},{type:"null"}]},tabs:{oneOf:[{type:"object",additionalProperties:{$ref:"#/definitions/docs.TabConfig"}},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},products:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ProductConfig"}},{type:"null"}]},"landing-page":{oneOf:[{$ref:"#/definitions/docs.PageConfiguration"},{type:"null"}]},navigation:{oneOf:[{$ref:"#/definitions/docs.NavigationConfig"},{type:"null"}]},"navbar-links":{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.NavbarLink"}},{type:"null"}]},"footer-links":{oneOf:[{$ref:"#/definitions/docs.FooterLinksConfig"},{type:"null"}]},"page-actions":{oneOf:[{$ref:"#/definitions/docs.PageActionsConfig"},{type:"null"}]},experimental:{oneOf:[{$ref:"#/definitions/docs.ExperimentalConfig"},{type:"null"}]},"default-language":{oneOf:[{$ref:"#/definitions/docs.ProgrammingLanguage"},{type:"null"}]},languages:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.Language"}},{type:"null"}]},"ai-chat":{oneOf:[{$ref:"#/definitions/docs.AIChatConfig"},{type:"null"}]},"ai-search":{oneOf:[{$ref:"#/definitions/docs.AIChatConfig"},{type:"null"}]},"ai-examples":{oneOf:[{$ref:"#/definitions/docs.AiExamplesConfig"},{type:"null"}]},metadata:{oneOf:[{$ref:"#/definitions/docs.MetadataConfig"},{type:"null"}]},redirects:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.RedirectConfig"}},{type:"null"}]},logo:{oneOf:[{$ref:"#/definitions/docs.LogoConfiguration"},{type:"null"}]},favicon:{oneOf:[{type:"string"},{type:"null"}]},"background-image":{oneOf:[{$ref:"#/definitions/docs.BackgroundImageConfiguration"},{type:"null"}]},colors:{oneOf:[{$ref:"#/definitions/docs.ColorsConfiguration"},{type:"null"}]},typography:{oneOf:[{$ref:"#/definitions/docs.DocsTypographyConfig"},{type:"null"}]},layout:{oneOf:[{$ref:"#/definitions/docs.LayoutConfig"},{type:"null"}]},settings:{oneOf:[{$ref:"#/definitions/docs.DocsSettingsConfig"},{type:"null"}]},theme:{oneOf:[{$ref:"#/definitions/docs.ThemeConfig"},{type:"null"}]},integrations:{oneOf:[{$ref:"#/definitions/docs.IntegrationsConfig"},{type:"null"}]},css:{oneOf:[{$ref:"#/definitions/docs.CssConfig"},{type:"null"}]},js:{oneOf:[{$ref:"#/definitions/docs.JsConfig"},{type:"null"}]},header:{oneOf:[{type:"string"},{type:"null"}]},footer:{oneOf:[{type:"string"},{type:"null"}]}},iXw=["instances"],oXw=!1,sXw={"docs.CustomDomain":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"docs.GithubEditThisPageConfig":{type:"object",properties:{host:{oneOf:[{type:"string"},{type:"null"}]},owner:{type:"string"},repo:{type:"string"},branch:{oneOf:[{type:"string"},{type:"null"}]}},required:["owner","repo"],additionalProperties:!1},"docs.EditThisPageLaunch":{type:"string",enum:["github","dashboard"]},"docs.EditThisPageConfig":{type:"object",properties:{github:{oneOf:[{$ref:"#/definitions/docs.GithubEditThisPageConfig"},{type:"null"}]},launch:{oneOf:[{$ref:"#/definitions/docs.EditThisPageLaunch"},{type:"null"}]}},additionalProperties:!1},"docs.AudienceId":{type:"string"},"docs.Audience":{anyOf:[{$ref:"#/definitions/docs.AudienceId"},{type:"array",items:{$ref:"#/definitions/docs.AudienceId"}}]},"docs.DocsInstance":{type:"object",properties:{url:{type:"string"},"custom-domain":{oneOf:[{$ref:"#/definitions/docs.CustomDomain"},{type:"null"}]},private:{oneOf:[{type:"boolean"},{type:"null"}]},"edit-this-page":{oneOf:[{$ref:"#/definitions/docs.EditThisPageConfig"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.GitLibraryInputSchema":{type:"object",properties:{git:{type:"string"},subpath:{oneOf:[{type:"string"},{type:"null"}]}},required:["git"],additionalProperties:!1},"docs.PathLibraryInputSchema":{type:"object",properties:{path:{type:"string"}},required:["path"],additionalProperties:!1},"docs.LibraryInputConfiguration":{anyOf:[{$ref:"#/definitions/docs.GitLibraryInputSchema"},{$ref:"#/definitions/docs.PathLibraryInputSchema"}]},"docs.LibraryOutputConfiguration":{type:"object",properties:{path:{type:"string"}},required:["path"],additionalProperties:!1},"docs.LibraryLanguage":{type:"string",enum:["python","cpp"]},"docs.LibraryConfiguration":{type:"object",properties:{input:{$ref:"#/definitions/docs.LibraryInputConfiguration"},output:{$ref:"#/definitions/docs.LibraryOutputConfiguration"},lang:{$ref:"#/definitions/docs.LibraryLanguage"}},required:["input","output","lang"],additionalProperties:!1},"docs.SegmentConfig":{type:"object",properties:{"write-key":{type:"string"}},required:["write-key"],additionalProperties:!1},"docs.FullStoryAnalyticsConfig":{type:"object",properties:{"org-id":{type:"string"}},required:["org-id"],additionalProperties:!1},"docs.IntercomConfig":{type:"object",properties:{"app-id":{type:"string"},"api-base":{oneOf:[{type:"string"},{type:"null"}]}},required:["app-id"],additionalProperties:!1},"docs.PostHogConfig":{type:"object",properties:{"api-key":{type:"string"},endpoint:{oneOf:[{type:"string"},{type:"null"}]}},required:["api-key"],additionalProperties:!1},"docs.GTMConfig":{type:"object",properties:{"container-id":{type:"string"}},required:["container-id"],additionalProperties:!1},"docs.GoogleAnalytics4Config":{type:"object",properties:{"measurement-id":{type:"string"}},required:["measurement-id"],additionalProperties:!1},"docs.AnalyticsConfig":{type:"object",properties:{segment:{oneOf:[{$ref:"#/definitions/docs.SegmentConfig"},{type:"null"}]},fullstory:{oneOf:[{$ref:"#/definitions/docs.FullStoryAnalyticsConfig"},{type:"null"}]},intercom:{oneOf:[{$ref:"#/definitions/docs.IntercomConfig"},{type:"null"}]},posthog:{oneOf:[{$ref:"#/definitions/docs.PostHogConfig"},{type:"null"}]},gtm:{oneOf:[{$ref:"#/definitions/docs.GTMConfig"},{type:"null"}]},ga4:{oneOf:[{$ref:"#/definitions/docs.GoogleAnalytics4Config"},{type:"null"}]}},additionalProperties:!1},"docs.AnnouncementConfig":{type:"object",properties:{message:{type:"string"}},required:["message"],additionalProperties:!1},"docs.RoleId":{type:"string"},"docs.Role":{anyOf:[{$ref:"#/definitions/docs.RoleId"},{type:"array",items:{$ref:"#/definitions/docs.RoleId"}}]},"docs.FeatureFlag":{type:"object",properties:{flag:{type:"string"},"fallback-value":{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]},match:{oneOf:[{type:["string","number","boolean","object","array","null"]},{type:"null"}]}},required:["flag"],additionalProperties:!1},"docs.FeatureFlagConfiguration":{anyOf:[{type:"string",description:"The name of the feature flag, We assume that it is a boolean feature flag that needs to be evaluated to true."},{$ref:"#/definitions/docs.FeatureFlag",description:"A single feature flag with a configurable name, fallback value, and match value. Especially useful for non boolean feature flags."},{type:"array",items:{$ref:"#/definitions/docs.FeatureFlag"},description:"A list of feature flags. If any of the feature flags are satisfied, we will show all content."}]},"docs.Target":{type:"string",enum:["_blank","_self","_parent","_top"]},"docs.ChangelogFolderRelativePath":{type:"string"},"docs.TabConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},"display-name":{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},changelog:{oneOf:[{$ref:"#/definitions/docs.ChangelogFolderRelativePath"},{type:"null"}]}},required:["display-name"],additionalProperties:!1},"docs.VersionAvailability":{type:"string",enum:["deprecated","ga","stable","beta"]},"docs.VersionConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},"display-name":{type:"string"},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.VersionAvailability"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]}},required:["display-name","path"],additionalProperties:!1},"docs.InternalProduct":{type:"object",properties:{"display-name":{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},image:{oneOf:[{type:"string"},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},announcement:{oneOf:[{$ref:"#/definitions/docs.AnnouncementConfig"},{type:"null"}]}},required:["display-name","path"],additionalProperties:!1},"docs.ExternalProduct":{type:"object",properties:{"display-name":{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},image:{oneOf:[{type:"string"},{type:"null"}]},versions:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.VersionConfig"}},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},href:{type:"string"},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["display-name","href"],additionalProperties:!1},"docs.ProductConfig":{anyOf:[{$ref:"#/definitions/docs.InternalProduct"},{$ref:"#/definitions/docs.ExternalProduct"}]},"docs.Availability":{type:"string",enum:["stable","generally-available","in-development","pre-release","deprecated","beta"]},"docs.PageConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},page:{type:"string"},path:{type:"string"},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},noindex:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["page","path"],additionalProperties:!1},"docs.SectionConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},section:{type:"string"},path:{oneOf:[{type:"string"},{type:"null"}]},contents:{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["section","contents"],additionalProperties:!1},"docs.VersionedSnippetLanguageConfiguration":{type:"object",properties:{version:{type:"string"},package:{type:"string"}},required:["version","package"],additionalProperties:!1},"docs.SnippetLanguageConfiguration":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.VersionedSnippetLanguageConfiguration"}]},"docs.SnippetsConfiguration":{type:"object",properties:{python:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},typescript:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},go:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},java:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},ruby:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},csharp:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},php:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},swift:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]},rust:{oneOf:[{$ref:"#/definitions/docs.SnippetLanguageConfiguration"},{type:"null"}]}},additionalProperties:!1},"docs.PlaygroundButtonSettings":{type:"object",properties:{href:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.PlaygroundSettings":{type:"object",properties:{hidden:{oneOf:[{type:"boolean"},{type:"null"}]},environments:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},button:{oneOf:[{$ref:"#/definitions/docs.PlaygroundButtonSettings"},{type:"null"}]},oauth:{oneOf:[{type:"boolean"},{type:"null"}]},"limit-websocket-messages-per-connection":{oneOf:[{type:"integer"},{type:"null"}]}},additionalProperties:!1},"docs.ApiReferencePackageConfigurationWithOptions":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},title:{oneOf:[{type:"string"},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},contents:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},additionalProperties:!1},"docs.ApiReferencePackageConfiguration":{anyOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{$ref:"#/definitions/docs.ApiReferencePackageConfigurationWithOptions"}]},"docs.ApiReferenceSectionConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},section:{type:"string"},"referenced-packages":{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},contents:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["section"],additionalProperties:!1},"docs.ApiReferenceEndpointConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},endpoint:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["endpoint"],additionalProperties:!1},"docs.ApiReferenceOperationConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},operation:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["operation"],additionalProperties:!1},"docs.LinkConfiguration":{type:"object",properties:{link:{type:"string"},href:{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["link","href"],additionalProperties:!1},"docs.ApiReferenceLayoutItem":{anyOf:[{type:"string",description:"This should be either an endpoint, websocket, webhook, or subpackage ID"},{type:"object",additionalProperties:{$ref:"#/definitions/docs.ApiReferencePackageConfiguration"},description:"Keyed by subpackage name, this object allows you to group endpoints and pages together."},{$ref:"#/definitions/docs.ApiReferenceSectionConfiguration"},{$ref:"#/definitions/docs.ApiReferenceEndpointConfiguration"},{$ref:"#/definitions/docs.ApiReferenceOperationConfiguration"},{$ref:"#/definitions/docs.PageConfiguration"},{$ref:"#/definitions/docs.LinkConfiguration"}]},"docs.ApiReferenceConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},api:{type:"string"},"api-name":{oneOf:[{type:"string"},{type:"null"}]},openrpc:{oneOf:[{type:"string"},{type:"null"}]},audiences:{oneOf:[{$ref:"#/definitions/docs.Audience"},{type:"null"}]},"display-errors":{oneOf:[{type:"boolean"},{type:"null"}]},"tag-description-pages":{oneOf:[{type:"boolean"},{type:"null"}]},snippets:{oneOf:[{$ref:"#/definitions/docs.SnippetsConfiguration"},{type:"null"}]},postman:{oneOf:[{type:"string"},{type:"null"}]},summary:{oneOf:[{type:"string"},{type:"null"}]},layout:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.ApiReferenceLayoutItem"}},{type:"null"}]},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},alphabetized:{oneOf:[{type:"boolean"},{type:"null"}]},flattened:{oneOf:[{type:"boolean"},{type:"null"}]},paginated:{oneOf:[{type:"boolean"},{type:"null"}]},playground:{oneOf:[{$ref:"#/definitions/docs.PlaygroundSettings"},{type:"null"}]}},required:["api"],additionalProperties:!1},"docs.LibraryName":{type:"string"},"docs.LibraryReferenceConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},library:{$ref:"#/definitions/docs.LibraryName"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]}},required:["library"],additionalProperties:!1},"docs.ChangelogConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},changelog:{$ref:"#/definitions/docs.ChangelogFolderRelativePath"},title:{oneOf:[{type:"string"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["changelog"],additionalProperties:!1},"docs.TitleSource":{type:"string",enum:["frontmatter","filename"]},"docs.FolderConfiguration":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},folder:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]},"title-source":{oneOf:[{$ref:"#/definitions/docs.TitleSource"},{type:"null"}]},slug:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},collapsed:{oneOf:[{type:"boolean"},{type:"null"}]},collapsible:{oneOf:[{type:"boolean"},{type:"null"}]},"collapsed-by-default":{oneOf:[{type:"boolean"},{type:"null"}]},availability:{oneOf:[{$ref:"#/definitions/docs.Availability"},{type:"null"}]}},required:["folder"],additionalProperties:!1},"docs.NavigationItem":{anyOf:[{$ref:"#/definitions/docs.PageConfiguration"},{$ref:"#/definitions/docs.SectionConfiguration"},{$ref:"#/definitions/docs.ApiReferenceConfiguration"},{$ref:"#/definitions/docs.LibraryReferenceConfiguration"},{$ref:"#/definitions/docs.LinkConfiguration"},{$ref:"#/definitions/docs.ChangelogConfiguration"},{$ref:"#/definitions/docs.FolderConfiguration"}]},"docs.UntabbedNavigationConfig":{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},"docs.TabId":{type:"string"},"docs.TabbedNavigationItemWithLayout":{type:"object",properties:{tab:{$ref:"#/definitions/docs.TabId"},layout:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},{type:"null"}]}},required:["tab"],additionalProperties:!1},"docs.TabVariant":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},orphaned:{oneOf:[{type:"boolean"},{type:"null"}]},"feature-flag":{oneOf:[{$ref:"#/definitions/docs.FeatureFlagConfiguration"},{type:"null"}]},title:{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},layout:{type:"array",items:{$ref:"#/definitions/docs.NavigationItem"}},slug:{oneOf:[{type:"string"},{type:"null"}]},"skip-slug":{oneOf:[{type:"boolean"},{type:"null"}]},hidden:{oneOf:[{type:"boolean"},{type:"null"}]},default:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["title","layout"],additionalProperties:!1},"docs.TabbedNavigationItemWithVariants":{type:"object",properties:{tab:{$ref:"#/definitions/docs.TabId"},variants:{type:"array",items:{$ref:"#/definitions/docs.TabVariant"}}},required:["tab","variants"],additionalProperties:!1},"docs.TabbedNavigationItem":{anyOf:[{$ref:"#/definitions/docs.TabbedNavigationItemWithLayout"},{$ref:"#/definitions/docs.TabbedNavigationItemWithVariants"}]},"docs.TabbedNavigationConfig":{type:"array",items:{$ref:"#/definitions/docs.TabbedNavigationItem"}},"docs.NavigationConfig":{anyOf:[{$ref:"#/definitions/docs.UntabbedNavigationConfig"},{$ref:"#/definitions/docs.TabbedNavigationConfig"}]},"docs.NavbarGithubConfigWithOptions":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},url:{type:"string"},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.NavbarGithubConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.NavbarGithubConfigWithOptions"}]},"docs.NavbarLinkConfig":{type:"object",properties:{viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.NavbarLink":{type:"object",properties:{type:{type:"string",enum:["filled","outlined","minimal","github","dropdown","primary","secondary"]}},oneOf:[{properties:{type:{const:"filled"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"outlined"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"minimal"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"github"},value:{$ref:"#/definitions/docs.NavbarGithubConfig"}},required:["type"]},{properties:{type:{const:"dropdown"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},links:{type:"array",items:{$ref:"#/definitions/docs.NavbarLinkConfig"}},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type","links"]},{properties:{type:{const:"primary"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]},{properties:{type:{const:"secondary"},viewers:{oneOf:[{$ref:"#/definitions/docs.Role"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},target:{oneOf:[{$ref:"#/definitions/docs.Target"},{type:"null"}]},url:{oneOf:[{type:"string"},{type:"null"}]},text:{oneOf:[{type:"string"},{type:"null"}]},icon:{oneOf:[{type:"string"},{type:"null"}]},rightIcon:{oneOf:[{type:"string"},{type:"null"}]},rounded:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["type"]}]},"docs.FooterLinksConfig":{type:"object",properties:{github:{oneOf:[{type:"string"},{type:"null"}]},twitter:{oneOf:[{type:"string"},{type:"null"}]},x:{oneOf:[{type:"string"},{type:"null"}]},linkedin:{oneOf:[{type:"string"},{type:"null"}]},youtube:{oneOf:[{type:"string"},{type:"null"}]},instagram:{oneOf:[{type:"string"},{type:"null"}]},facebook:{oneOf:[{type:"string"},{type:"null"}]},discord:{oneOf:[{type:"string"},{type:"null"}]},slack:{oneOf:[{type:"string"},{type:"null"}]},hackernews:{oneOf:[{type:"string"},{type:"null"}]},medium:{oneOf:[{type:"string"},{type:"null"}]},website:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.PageActionOption":{type:"string",enum:["copy-page","view-as-markdown","ask-ai","chatgpt","claude","cursor","vscode"]},"docs.CustomPageAction":{type:"object",properties:{title:{type:"string"},subtitle:{oneOf:[{type:"string"},{type:"null"}]},url:{type:"string"},icon:{oneOf:[{type:"string"},{type:"null"}]},default:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["title","url"],additionalProperties:!1},"docs.PageActionOptions":{type:"object",properties:{"copy-page":{oneOf:[{type:"boolean"},{type:"null"}]},"view-as-markdown":{oneOf:[{type:"boolean"},{type:"null"}]},"ask-ai":{oneOf:[{type:"boolean"},{type:"null"}]},chatgpt:{oneOf:[{type:"boolean"},{type:"null"}]},claude:{oneOf:[{type:"boolean"},{type:"null"}]},cursor:{oneOf:[{type:"boolean"},{type:"null"}]},vscode:{oneOf:[{type:"boolean"},{type:"null"}]},custom:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.CustomPageAction"}},{type:"null"}]}},additionalProperties:!1},"docs.PageActionsConfig":{type:"object",properties:{default:{oneOf:[{$ref:"#/definitions/docs.PageActionOption"},{type:"null"}]},options:{oneOf:[{$ref:"#/definitions/docs.PageActionOptions"},{type:"null"}]}},additionalProperties:!1},"docs.ExperimentalConfig":{type:"object",properties:{"mdx-components":{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"disable-stream-toggle":{oneOf:[{type:"boolean"},{type:"null"}]},"openapi-parser-v2":{oneOf:[{type:"boolean"},{type:"null"}]},"openapi-parser-v3":{oneOf:[{type:"boolean"},{type:"null"}]},"dynamic-snippets":{oneOf:[{type:"boolean"},{type:"null"}]},"ai-examples":{oneOf:[{type:"boolean"},{type:"null"}]},"ai-example-style-instructions":{oneOf:[{type:"string"},{type:"null"}]},"exclude-apis":{oneOf:[{type:"boolean"},{type:"null"}]},"basepath-aware":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.ProgrammingLanguage":{type:"string",enum:["typescript","javascript","python","java","go","ruby","csharp","php","swift","rust","nodets","nodejs","dotnet","curl","jvm","ts","js"]},"docs.Language":{type:"string",enum:["en","es","fr","de","it","pt","ja","zh","ko","el","no","pl","ru","sv","tr"]},"docs.AIChatModel":{type:"string",enum:["claude-3.7","claude-4","command-a"]},"docs.AIChatLocation":{type:"string",enum:["docs","slack","discord"]},"docs.AIChatWebsiteDatasource":{type:"object",properties:{url:{type:"string"},title:{oneOf:[{type:"string"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.AIChatDatasource":{anyOf:[{$ref:"#/definitions/docs.AIChatWebsiteDatasource"}]},"docs.AIChatConfig":{type:"object",properties:{model:{oneOf:[{$ref:"#/definitions/docs.AIChatModel"},{type:"null"}]},"system-prompt":{oneOf:[{type:"string"},{type:"null"}]},location:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.AIChatLocation"}},{type:"null"}]},datasources:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.AIChatDatasource"}},{type:"null"}]}},additionalProperties:!1},"docs.AiExamplesConfig":{type:"object",properties:{enabled:{oneOf:[{type:"boolean"},{type:"null"}]},style:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.TwitterCardSetting":{type:"string",enum:["summary","summary_large_image","app","player"]},"docs.MetadataConfig":{type:"object",properties:{"og:site_name":{oneOf:[{type:"string"},{type:"null"}]},"og:title":{oneOf:[{type:"string"},{type:"null"}]},"og:description":{oneOf:[{type:"string"},{type:"null"}]},"og:url":{oneOf:[{type:"string"},{type:"null"}]},"og:image":{oneOf:[{type:"string"},{type:"null"}]},"og:image:width":{oneOf:[{type:"number"},{type:"null"}]},"og:image:height":{oneOf:[{type:"number"},{type:"null"}]},"og:locale":{oneOf:[{type:"string"},{type:"null"}]},"og:logo":{oneOf:[{type:"string"},{type:"null"}]},"twitter:title":{oneOf:[{type:"string"},{type:"null"}]},"twitter:description":{oneOf:[{type:"string"},{type:"null"}]},"twitter:handle":{oneOf:[{type:"string"},{type:"null"}]},"twitter:image":{oneOf:[{type:"string"},{type:"null"}]},"twitter:site":{oneOf:[{type:"string"},{type:"null"}]},"twitter:url":{oneOf:[{type:"string"},{type:"null"}]},"twitter:card":{oneOf:[{$ref:"#/definitions/docs.TwitterCardSetting"},{type:"null"}]},"canonical-host":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.RedirectConfig":{type:"object",properties:{source:{type:"string"},destination:{type:"string"},permanent:{oneOf:[{type:"boolean"},{type:"null"}]}},required:["source","destination"],additionalProperties:!1},"docs.LogoConfiguration":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]},height:{oneOf:[{type:"number"},{type:"null"}]},href:{oneOf:[{type:"string"},{type:"null"}]},"right-text":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.BackgroundImageThemedConfig":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.BackgroundImageConfiguration":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.BackgroundImageThemedConfig"}]},"docs.ColorThemedConfig":{type:"object",properties:{dark:{oneOf:[{type:"string"},{type:"null"}]},light:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.ColorConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.ColorThemedConfig"}]},"docs.ColorsConfiguration":{type:"object",properties:{"accent-primary":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},accentPrimary:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},background:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},border:{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"sidebar-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"header-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"card-background":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-1":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-2":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-3":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-4":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-5":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-6":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-7":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-8":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-9":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-10":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-11":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]},"accent-12":{oneOf:[{$ref:"#/definitions/docs.ColorConfig"},{type:"null"}]}},additionalProperties:!1},"docs.FontWeight":{anyOf:[{type:"string"},{type:"integer"}]},"docs.FontStyle":{type:"string",enum:["normal","italic"]},"docs.FontConfigVariant":{type:"object",properties:{path:{type:"string"},weight:{oneOf:[{$ref:"#/definitions/docs.FontWeight"},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/docs.FontStyle"},{type:"null"}]}},required:["path"],additionalProperties:!1},"docs.FontConfigPath":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.FontConfigVariant"}]},"docs.FontDisplay":{type:"string",enum:["auto","block","swap","fallback","optional"]},"docs.FontConfig":{type:"object",properties:{name:{oneOf:[{type:"string"},{type:"null"}]},path:{oneOf:[{type:"string"},{type:"null"}]},weight:{oneOf:[{$ref:"#/definitions/docs.FontWeight"},{type:"null"}]},style:{oneOf:[{$ref:"#/definitions/docs.FontStyle"},{type:"null"}]},paths:{oneOf:[{type:"array",items:{$ref:"#/definitions/docs.FontConfigPath"}},{type:"null"}]},display:{oneOf:[{$ref:"#/definitions/docs.FontDisplay"},{type:"null"}]},fallback:{oneOf:[{type:"array",items:{type:"string"}},{type:"null"}]},"font-variation-settings":{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.DocsTypographyConfig":{type:"object",properties:{headingsFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]},bodyFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]},codeFont:{oneOf:[{$ref:"#/definitions/docs.FontConfig"},{type:"null"}]}},additionalProperties:!1},"docs.SearchbarPlacement":{type:"string",enum:["header","header-tabs","sidebar"]},"docs.TabsPlacement":{type:"string",enum:["header","sidebar"]},"docs.SwitcherPlacement":{type:"string",enum:["header","sidebar"]},"docs.ContentAlignment":{type:"string",enum:["center","left"]},"docs.HeaderPosition":{type:"string",enum:["fixed","static"]},"docs.LayoutConfig":{type:"object",properties:{"page-width":{oneOf:[{type:"string"},{type:"null"}]},"content-width":{oneOf:[{type:"string"},{type:"null"}]},"sidebar-width":{oneOf:[{type:"string"},{type:"null"}]},"header-height":{oneOf:[{type:"string"},{type:"null"}]},"searchbar-placement":{oneOf:[{$ref:"#/definitions/docs.SearchbarPlacement"},{type:"null"}]},"tabs-placement":{oneOf:[{$ref:"#/definitions/docs.TabsPlacement"},{type:"null"}]},"switcher-placement":{oneOf:[{$ref:"#/definitions/docs.SwitcherPlacement"},{type:"null"}]},"content-alignment":{oneOf:[{$ref:"#/definitions/docs.ContentAlignment"},{type:"null"}]},"header-position":{oneOf:[{$ref:"#/definitions/docs.HeaderPosition"},{type:"null"}]},"disable-header":{oneOf:[{type:"boolean"},{type:"null"}]},"hide-nav-links":{oneOf:[{type:"boolean"},{type:"null"}]},"hide-feedback":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.HttpSnippetLanguage":{type:"string",enum:["curl","csharp","go","java","javascript","php","python","ruby","swift","typescript"]},"docs.HttpSnippetsConfig":{anyOf:[{type:"boolean"},{type:"array",items:{$ref:"#/definitions/docs.HttpSnippetLanguage"}}]},"docs.DocsSettingsConfig":{type:"object",properties:{"search-text":{oneOf:[{type:"string"},{type:"null"}]},"disable-search":{oneOf:[{type:"boolean"},{type:"null"}]},"dark-mode-code":{oneOf:[{type:"boolean"},{type:"null"}]},"default-search-filters":{oneOf:[{type:"boolean"},{type:"null"}]},"http-snippets":{oneOf:[{$ref:"#/definitions/docs.HttpSnippetsConfig"},{type:"null"}]},"hide-404-page":{oneOf:[{type:"boolean"},{type:"null"}]},"use-javascript-as-typescript":{oneOf:[{type:"boolean"},{type:"null"}]},"disable-explorer-proxy":{oneOf:[{type:"boolean"},{type:"null"}]},"disable-analytics":{oneOf:[{type:"boolean"},{type:"null"}]},language:{oneOf:[{$ref:"#/definitions/docs.Language"},{type:"null"}]},"folder-title-source":{oneOf:[{$ref:"#/definitions/docs.TitleSource"},{type:"null"}]},"substitute-env-vars":{oneOf:[{type:"boolean"},{type:"null"}]}},additionalProperties:!1},"docs.SidebarThemeConfig":{type:"string",enum:["default","minimal"]},"docs.BodyThemeConfig":{type:"string",enum:["default","canvas"]},"docs.TabsThemeConfig":{type:"string",enum:["default","bubble"]},"docs.PageActionsThemeConfig":{type:"string",enum:["default","toolbar"]},"docs.FooterNavThemeConfig":{type:"string",enum:["default","minimal"]},"docs.LanguageSwitcherThemeConfig":{type:"string",enum:["default","minimal"]},"docs.ProductSwitcherThemeConfig":{type:"string",enum:["default","toggle"]},"docs.ThemeConfig":{type:"object",properties:{sidebar:{oneOf:[{$ref:"#/definitions/docs.SidebarThemeConfig"},{type:"null"}]},body:{oneOf:[{$ref:"#/definitions/docs.BodyThemeConfig"},{type:"null"}]},tabs:{oneOf:[{$ref:"#/definitions/docs.TabsThemeConfig"},{type:"null"}]},"page-actions":{oneOf:[{$ref:"#/definitions/docs.PageActionsThemeConfig"},{type:"null"}]},"footer-nav":{oneOf:[{$ref:"#/definitions/docs.FooterNavThemeConfig"},{type:"null"}]},"language-switcher":{oneOf:[{$ref:"#/definitions/docs.LanguageSwitcherThemeConfig"},{type:"null"}]},"product-switcher":{oneOf:[{$ref:"#/definitions/docs.ProductSwitcherThemeConfig"},{type:"null"}]}},additionalProperties:!1},"docs.IntegrationsConfig":{type:"object",properties:{intercom:{oneOf:[{type:"string"},{type:"null"}]}},additionalProperties:!1},"docs.CssConfig":{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},"docs.JsScriptStrategy":{type:"string",enum:["beforeInteractive","afterInteractive","lazyOnload"]},"docs.JsRemoteConfig":{type:"object",properties:{url:{type:"string"},strategy:{oneOf:[{$ref:"#/definitions/docs.JsScriptStrategy"},{type:"null"}]}},required:["url"],additionalProperties:!1},"docs.JsFileConfigSettings":{type:"object",properties:{path:{type:"string"},strategy:{oneOf:[{$ref:"#/definitions/docs.JsScriptStrategy"},{type:"null"}]}},required:["path"],additionalProperties:!1},"docs.JsFileConfig":{anyOf:[{type:"string"},{$ref:"#/definitions/docs.JsFileConfigSettings"}]},"docs.JsConfigOptions":{anyOf:[{$ref:"#/definitions/docs.JsRemoteConfig"},{$ref:"#/definitions/docs.JsFileConfig"}]},"docs.JsConfig":{anyOf:[{$ref:"#/definitions/docs.JsConfigOptions"},{type:"array",items:{$ref:"#/definitions/docs.JsConfigOptions"}}]}},aXw={type:rXw,properties:nXw,required:iXw,additionalProperties:oXw,definitions:sXw};async function _pc({fernDirectory:e,context:t}){let r=It(e,Ze.of(tw));if(!await qr(r))return;let n=await cXw({absolutePathToDocsDefinition:e,context:t});if(n!=null)return{type:"docs",absoluteFilePath:e,config:n,workspaceName:void 0,absoluteFilepathToDocsConfig:It(e,Ze.of(tw))}}async function cXw({absolutePathToDocsDefinition:e,context:t}){if(!await qr(e))return;let r=It(e,Ze.of(tw));return await uXw({absolutePathOfConfiguration:r,context:t})}async function uXw({absolutePathOfConfiguration:e,context:t}){let r=await(0,i0d.readFile)(e),n=Bn.load(r.toString()),i=Jce(n,bpc,{filePath:e});if(i.success){let o=[];t.logger.debug("About to sanitize docs configuration JSON structure");let s=FK(n,[],o);o.length>0?t.logger.warn(`docs.yml contained null/undefined sections that were ignored: ${o.map(a=>a.join(".")).join(", ")}`):t.logger.debug("No null/undefined values found during sanitization");try{return t.logger.debug("Attempting to parse sanitized docs configuration"),Y3.RawSchemas.Serializer.DocsConfiguration.parseOrThrow(s)}catch(a){throw t.logger.error(`Parsing failed even after sanitization: ${a instanceof Error?a.message:String(a)}`),t.logger.debug(`Sanitized JSON structure: ${JSON.stringify(s,null,2)}`),new Error(`Failed to parse ${e}: ${a instanceof Error?a.message:String(a)}`)}}else throw new Error(`Failed to parse docs.yml:
2623
2623
  ${i.error?.message??"Unknown error"}`)}var a6o=He(dQe(),1);Ir();var o0d=require("fs"),q8o=require("fs/promises"),s0d=require("stream/promises");async function a0d({snippetsS3PreSignedReadUrl:e,absolutePathToLocalSnippetJSON:t,context:r}){try{await lXw({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}),r.logger.info(at.green(`Downloaded to ${t}`))}catch{r.logger.debug(at.yellow("Failed to download snippet.json from output."))}}async function lXw({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await eS.get(e,{responseType:"stream"});await qr(t)&&await(0,q8o.rm)(t,{recursive:!0}),await(0,q8o.mkdir)(ji(t),{recursive:!0}),await(0,s0d.pipeline)(r.data,(0,o0d.createWriteStream)(t))}pr();_w();Ir();var mke=He(dQe(),1);var c0d=He(yFt(),1),W8o=require("fs/promises");var u0d=He(Jy(),1);async function l0d({projectConfig:e,workspace:t,organization:r,intermediateRepresentation:n,generatorInvocation:i,version:o,context:s,shouldLogS3Url:a,token:c,whitelabel:u,irVersionOverride:l,absolutePathToPreview:p,fernignorePath:m}){let f;if(m!=null)try{f=await(0,W8o.readFile)(m,"utf-8")}catch(g){s.failAndThrow(`Failed to read fernignore file at ${m}: ${g}`)}let h=await pXw({projectConfig:e,workspace:t,organization:r,generatorInvocation:i,version:o,context:s,shouldLogS3Url:a,token:c,whitelabel:u,absolutePathToPreview:p,fernignoreContents:f});return await fXw({intermediateRepresentation:n,job:h,context:s,generatorInvocation:i,irVersionOverride:l}),h}async function pXw({projectConfig:e,workspace:t,organization:r,generatorInvocation:n,version:i,context:o,shouldLogS3Url:s,token:a,whitelabel:c,absolutePathToPreview:u,fernignoreContents:l}){let p=hQe({token:a.value}),m={id:n.name,version:n.version,outputMode:n.outputMode,customConfig:n.config,publishMetadata:n.publishMetadata},f=await p.remoteGen.createJobV3({apiName:t.definition.rootApiFile.contents.name,version:i,organizationName:r,generators:[m],uploadToS3:dXw({outputMode:n.outputMode,generatorInvocation:n,absolutePathToPreview:u,shouldLogS3Url:s}),whitelabel:c,preview:u!=null,fernignoreContents:l});return f.ok?f.body:mXw(f.error)._visit({illegalApiNameError:()=>o.failAndThrow("API name is invalid: "+t.definition.rootApiFile.contents.name),illegalApiVersionError:()=>o.failAndThrow("API version is invalid: "+i),cannotPublishToNpmScope:({validScope:h,invalidScope:g})=>o.failAndThrow(`You do not have permission to publish to ${g} (expected ${h})`),cannotPublishToMavenGroup:({validGroup:h,invalidGroup:g})=>o.failAndThrow(`You do not have permission to publish to ${g} (expected ${h})`),cannotPublishPypiPackage:({validPrefix:h,invalidPackageName:g})=>o.failAndThrow(`You do not have permission to publish to ${g} (expected ${h})`),generatorsDoNotExistError:h=>o.failAndThrow("Generators do not exist: "+h.nonExistentGenerators.map(g=>`${g.id}@${g.version}`).join(", ")),insufficientPermissions:()=>o.failAndThrow(`You do not have permission to run this generator for organization '${r}'. Please run 'fern login' to ensure you are logged in with the correct account.
2624
2624
 
2625
2625
  Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`),orgNotConfiguredForWhitelabel:()=>o.failAndThrow("Your org is not configured for white-labeling. Please reach out to support@buildwithfern.com."),branchDoesNotExist:h=>o.failAndThrow(`Branch ${h.branch} does not exist in repository ${h.repositoryOwner}/${h.repositoryName}`),_other:h=>(o.logger.debug(`Failed to create job: ${JSON.stringify(h)}`),o.failAndThrow("Failed to create job. Please try again or contact support@buildwithfern.com for assistance."))})}async function fXw({intermediateRepresentation:e,generatorInvocation:t,job:r,context:n,irVersionOverride:i}){let o=await DAt(t).then(p=>p==null?void 0:"v"+p.toString()),s=i??o,a=s==null?await HUr({intermediateRepresentation:e,context:n,targetGenerator:{name:t.name,version:t.version}}):await X$a({intermediateRepresentation:e,context:n,irVersion:s,targetGenerator:{name:t.name,version:t.version}}),c=new c0d.default,u=await _Yr(a,{onWrite:p=>{n.logger.debug("Wrote IR to disk: "+p)}});c.append("file",u);let l=(0,u0d.default)(qhs(),`/api/remote-gen/jobs/${r.jobId}/start`);try{await eS.post(l,c,{headers:c.getHeaders(),maxBodyLength:1/0})}catch(p){let m=p instanceof Mqu?p.response?.data:p;n.logger.debug(`POST ${l} failed with ${JSON.stringify(p)}`),n.failAndThrow("Failed to start job",m)}}function mXw(e){if(e?.content?.reason==="status-code"){let t=e.content.body;switch(t?._error){case"IllegalApiNameError":return mke.FernFiddle.remoteGen.createJobV3.Error.illegalApiNameError();case"IllegalApiVersionError":return mke.FernFiddle.remoteGen.createJobV3.Error.illegalApiVersionError(t.body);case"GeneratorsDoNotExistError":return mke.FernFiddle.remoteGen.createJobV3.Error.generatorsDoNotExistError(t.body);case"CannotPublishToNpmScope":return mke.FernFiddle.remoteGen.createJobV3.Error.cannotPublishToNpmScope(t.body);case"CannotPublishToMavenScope":return mke.FernFiddle.remoteGen.createJobV3.Error.cannotPublishToMavenGroup(t.body);case"CannotPublishPypiPackage":return mke.FernFiddle.remoteGen.createJobV3.Error.cannotPublishPypiPackage(t.body);case"InsufficientPermissions":return mke.FernFiddle.remoteGen.createJobV3.Error.insufficientPermissions(t.body);case"OrgNotConfiguredForWhitelabel":return mke.FernFiddle.remoteGen.createJobV3.Error.orgNotConfiguredForWhitelabel(t.body);case"BranchDoesNotExist":return mke.FernFiddle.remoteGen.createJobV3.Error.branchDoesNotExist(t.body)}}return e}function dXw({outputMode:e,generatorInvocation:t,absolutePathToPreview:r,shouldLogS3Url:n}){return e.type==="downloadFiles"||t.absolutePathToLocalSnippets!=null||r!=null||n}var p0d=hQe();var hXw=3;function f0d({job:e,taskId:t,taskHandler:r,context:n}){let i=0,o=async()=>{let s=await p0d.remoteGen.getJobStatus(e.jobId);if(s.ok)return s.body[t];n.logger.debug("Failed to get job status.",JSON.stringify(s.error.content))};return new Promise((s,a)=>{c();async function c(){try{let u=await o();if(u==null)i++,i===hXw&&n.failAndThrow(`Failed to get job status after ${i} attempts.`),setTimeout(c,2e3+1e3*i);else{i=0;let l=await r.processUpdate(u);r.isFinished?s(l):setTimeout(c,2e3)}}catch(u){a(u)}}})}pr();Ir();var n6o=require("fs"),E9=require("fs/promises"),RBt=He(require("path"),1),Spc=require("stream/promises");var G8o=He(h0d(),1);function L3e(e,t,{target:r="stdout",...n}={}){return G8o.default[r]?Y2t.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}L3e.isSupported=G8o.default.stdout;L3e.stderr=(e,t,r={})=>L3e(e,t,{target:"stderr",...r});L3e.stderr.isSupported=G8o.default.stderr;var i6o=He(oR(),1),C0d=He(I0d(),1),r6o=class{context;generatorInvocation;absolutePathToPreview;lengthOfLastLogs=0;constructor({interactiveTaskContext:t,generatorInvocation:r,absolutePathToPreview:n}){this.context=t,this.generatorInvocation=r,this.absolutePathToPreview=n}async processUpdate(t){t==null&&this.context.failAndThrow("Task is missing on job status");let r=t.packages.map(i=>i.coordinate._visit({npm:o=>`${o.name}@${o.version}`,maven:o=>`${o.group}:${o.artifact}:${o.version}`,pypi:o=>`${o.name} ${o.version}`,ruby:o=>`${o.name}:${o.version}`,nuget:o=>`${o.name} ${o.version}`,crates:o=>`${o.name} ${o.version}`,_other:()=>"<unknown package>"}));t.packages.length>0&&this.#n==null&&(this.#n=t.packages[0]?.coordinate._visit({npm:i=>i.version,maven:i=>i.version,pypi:i=>i.version,ruby:i=>i.version,nuget:i=>i.version,crates:i=>i.version,_other:()=>{}})),this.absolutePathToPreview==null&&this.context.setSubtitle(r.length>0?r.map(i=>`\u25E6 ${i}`).join(`
@@ -2934,7 +2934,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
2934
2934
  Run ${at.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
2935
2935
  Run ${at.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),H2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function G0c({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!_Md(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,c)=>a.generatorName.localeCompare(c.generatorName)||a.currentVersion.localeCompare(c.currentVersion));for(let a of s)i+=`
2936
2936
  ${await Qxx(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+at.dim(a.currentVersion)+at.reset(" \u2192 ")+at.green(a.latestVersion);return i+=`
2937
- `,n?H2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Qxx(e){let r=await new bMd.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 Mxx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=M0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await QG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=M0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await QG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await qG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function EMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=A5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function vJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await Mxx({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...EMd(u,c,t.logger));else s.push(...EMd(a.versions,void 0,t.logger))}return s}async function Wht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:WSr(e.packageName,{version:t?"prerelease":"latest"})}var wMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],OJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new E_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.90.2"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new nx}failWithoutThrowing(t,r){this.didSucceed=!1,lIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await N2t()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await vMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2937
+ `,n?H2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Qxx(e){let r=await new bMd.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 Mxx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=M0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await QG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=M0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await QG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function OMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await qG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function EMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=A5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function vJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await Mxx({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...EMd(u,c,t.logger));else s.push(...EMd(a.versions,void 0,t.logger))}return s}async function Wht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:WSr(e.packageName,{version:t?"prerelease":"latest"})}var wMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],OJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new E_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.90.3"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new nx}failWithoutThrowing(t,r){this.didSucceed=!1,lIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await N2t()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await vMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2938
2938
  `)||(r+=`
2939
2939
  `),this.stderr.info(r))}catch{}}async exitIfFailed(){this.didSucceed||await this.exit()}exitProgram({code:t}={}){process.exit(t??(this.didSucceed?0:1))}longestWorkspaceName;registerWorkspaces(t){let r=xAs(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 i5r(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw o.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,o),new nx}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await N2t()).sendEvent(t)}logger=XV((t,...r)=>this.log(t,...r));stderr=XV((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=xMd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?xMd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=wMd[this.numTasks++%wMd.length],s=at.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===lb.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:async t=>{await this.instrumentPostHogEvent(t)},shouldBufferLogs:!1}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>az.indexOf(i.level)>=az.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Ji.Debug,stderr:r})}_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 Wht({cliEnvironment:this.environment,includePreReleases:t}),n=A5(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await vJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await q0c({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:at.yellow("?"),style:{answer:i=>at.cyan(i),message:i=>at.bold(i),highlight:i=>at.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
2940
2940
  Cancelled by user.`),new nx):n}}async getInput(t){return await V0c({message:t.message,default:t.default})}};function xMd(e){return`[${e}]:`}Ir();var PMd=require("fs/promises");async function H0c({context:e,nameOverride:t,...r}){let n=await TP(t);return n==null?e.failAndThrow(`Directory "${t??Bw}" not found.`):await IMd({absolutePathToFernDirectory:n,context:e,nameOverride:t,...r})}async function IMd({absolutePathToFernDirectory:e,cliName:t,cliVersion:r,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i,context:o}){let s=[],[a,c,u,l,p,m]=await Promise.all([qr(It(e,Ze.of(pU))),qr(It(e,Ze.of(SP))),qr(It(e,Ze.of(Tw))),qr(It(e,Ze.of($Vt))),qr(It(e,Ze.of(ojr))),qr(It(e,Ze.of(_2s)))]);(a||c||u||l||p||m)&&(s=await CMd({cliName:t,fernDirectory:e,cliVersion:r,context:o,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i}));let f=await _pc({fernDirectory:e,context:o});return s.length===0&&f==null?o.failAndThrow(`No SDK specifications or docs specifications found. Please ensure one of the following .yml (not .yaml) files is present: