fern-api 3.92.0 → 3.92.1

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 +4 -4
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1450,7 +1450,7 @@ ${GVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&oPs(th
1450
1450
  `+d_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?d_t.default.cyan(tUu(t,this.opt.mask)):d_t.default.italic(d_t.default.dim("[hidden]")):this.opt.mask?tUu(t,this.opt.mask):d_t.default.italic(d_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 Ton=He(z1(),1);var e4u=He(MPs(),1),jon=require("child_process"),D2t=require("fs"),Son=He(require("path"),1),t4u=He(require("os"),1),r4u=require("crypto"),wIs=He(XUu(),1);var Pon=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var NPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var Ion=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Con=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Bon(e="",t,r){let n=new xIs(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 ZUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function spy(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 xIs=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=spy(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??t4u.default.tmpdir(),r=(0,r4u.randomUUID)(),n=ZUu(this.fileOptions.prefix),i=ZUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Son.default.resolve(t,o),a=Son.default.resolve(t)+Son.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,D2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new Pon(t)}}readTemporaryFile(){try{let t=(0,D2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,e4u.detect)(t)??"utf8";wIs.default.encodingExists(r)||(r="utf8"),this.text=wIs.default.decode(t,r)}}catch(t){throw new Ion(t)}}removeTemporaryFile(){try{(0,D2t.unlinkSync)(this.tempFile)}catch(t){throw new Con(t)}}launchEditor(){try{let t=(0,jon.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new NPr(t)}}launchEditorAsync(t){try{(0,jon.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new NPr(r)}}};var n4u=He(wG(),1);var kPr=class extends Q1{_run(t){this.done=t,this.editorResult=new n4u.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"?Ton.default.dim("Received"):Ton.default.dim("Press <enter> to launch your preferred editor."),t&&(r=Ton.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Bon(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 c4u=require("stream");var s4u=He(require("readline"),1),a4u=He(o4u(),1),A_t=class{constructor(t){this.rl||=s4u.default.createInterface(cpy(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 cpy(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 a4u.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var zPr=class extends A_t{constructor(t={}){super(t),this.log=new c4u.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return vPr(this.rl,this.bottomBar.split(`
1451
1451
  `).length),this}updateBottomBar(t){return vPr(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+`
1452
1452
  `}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&&eon(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=He(wG(),1),p4u=He(Uxr(),1);var Don=He(wG(),1),u4u=He(Uxr(),1),Ron=function(e,t,r){return typeof e[t]!="function"?(0,Don.of)(e):(0,Don.from)((0,u4u.default)(e[t])(r).then(n=>(e[t]=n,e)))};var l4u={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}},R2t=class extends A_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)=>(l4u.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)(()=>Ron(t,"message",this.answers)),(0,cb.concatMap)(()=>Ron(t,"default",this.answers)),(0,cb.concatMap)(()=>Ron(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&&l4u.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,p4u.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function f4u(e){let t=function(r,n){let i;try{i=new R2t(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",EPr),this.registerPrompt("input",m_t),this.registerPrompt("number",wPr),this.registerPrompt("confirm",xPr),this.registerPrompt("rawlist",PPr),this.registerPrompt("expand",IPr),this.registerPrompt("checkbox",CPr),this.registerPrompt("password",SPr),this.registerPrompt("editor",kPr)},t.restoreDefaultPrompts(),t}var IIs=f4u();function lpy(e,t){IIs.registerPrompt(e,t)}function ppy(){IIs.restoreDefaultPrompts()}var fpy={prompt:IIs,ui:{BottomBar:zPr,Prompt:R2t},createPromptModule:f4u,registerPrompt:lpy,restoreDefaultPrompts:ppy,Separator:S3},ub=fpy;var F2t=require("path");function d4u(){let e=mpy();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function mpy(e=process.argv[1]?(0,F2t.dirname)(process.argv[1]):process.cwd(),t=F2t.sep==="\\"){let r=t?m4u(e):e;return n=>{if(!n)return;let i=t?m4u(n):n,{dir:o,base:s,ext:a}=F2t.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 m4u(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var CIs=e=>{if("flags"in e){let t=h4u(e.flags),r=g4u(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,y4u(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,dpy(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function dpy(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 h4u=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,QPr(r)]).filter(([,t])=>t!==void 0)),g4u=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?y4u(n):void 0]}))};var QPr=e=>e===void 0?void 0:e.variant??e.enabled,y4u=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Fon="0123456789abcdef",Non=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+=Fon.charAt(this.bytes[r]>>>4),t+=Fon.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+=Fon.charAt(this.bytes[r]>>>4),t+=Fon.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}},SIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??hpy()}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 Non.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,Non.ofInner(t)}},hpy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),A4u,Ybe=()=>gpy().toString(),gpy=()=>(A4u||(A4u=new SIs)).generate();var ypy=["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"],b4u=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return ypy.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var B3=(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 bpy=Array.isArray,_4u=Object.prototype,beI=_4u.hasOwnProperty,jIs=_4u.toString,BIs=bpy||function(e){return jIs.call(e)==="[object Array]"};var v4u=e=>e===Object(e)&&!BIs(e);var N2t=e=>e===void 0,MPr=e=>jIs.call(e)=="[object String]",O4u=e=>MPr(e)&&e.trim().length===0;var E4u=e=>jIs.call(e)=="[object Number]"&&e===e;var TIs=e=>e instanceof Error;function VPr(e){return e===null||typeof e!="object"}function b_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function w4u(e){return b_t(e,"ErrorEvent")}function kon(e){return!N2t(Event)&&_py(e,Event)}function x4u(e){return b_t(e,"Object")}function _py(e,t){try{return e instanceof t}catch{return!1}}function UPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),E4u(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),UPr(i||r,t,r,n))}var vpy=864e5,zon=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=UPr(t.bucketSize,0,100,t._logger),this._refillRate=UPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=UPr(t.refillInterval,0,vpy,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 Qon=class{add(t){let r=Ybe();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 Opy(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var P4u=(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=>P4u(`${e} ${o}`,t,r)}},Epy=e=>e();function I4u(e,t=Epy){return P4u(e,t,Opy())}var z2t="Mobile",Von="iOS",k2t="Android",C4u="Tablet",BeI=k2t+" "+C4u;var wpy="Apple",TeI=wpy+" Watch",S4u="Safari",Uon="BlackBerry",j4u="Samsung",xpy=j4u+"Browser",Ppy=j4u+" Internet",Lon="Chrome",Ipy=Lon+" OS",Cpy=Lon+" "+Von,B4u="Internet Explorer",Spy=B4u+" "+z2t,RIs="Opera",DeI=RIs+" Mini",T4u="Edge",jpy="Microsoft "+T4u,FIs="Firefox",Bpy=FIs+" "+Von,NIs="Nintendo",kIs="PlayStation",Mon="Xbox",Tpy=k2t+" "+z2t,Dpy=z2t+" "+S4u,LPr="Windows",Rpy=LPr+" Phone";var D4u="Generic",ReI=D4u+" "+z2t.toLowerCase(),FeI=D4u+" "+C4u.toLowerCase(),Fpy="Konqueror",rU="(\\d+(\\.\\d+)?)",DIs=new RegExp("Version/"+rU),NeI=new RegExp(Mon,"i"),keI=new RegExp(kIs+" \\w+","i"),zeI=new RegExp(NIs+" \\w+","i"),Npy=new RegExp(Uon+"|PlayBook|BB10","i"),kpy={"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 QeI={[Spy]:[new RegExp("rv:"+rU)],[jpy]:[new RegExp(T4u+"?\\/"+rU)],[Lon]:[new RegExp("("+Lon+"|CrMo)\\/"+rU)],[Cpy]:[new RegExp("CriOS\\/"+rU)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+rU)],[S4u]:[DIs],[Dpy]:[DIs],[RIs]:[new RegExp("("+RIs+"|OPR)\\/"+rU)],[FIs]:[new RegExp(FIs+"\\/"+rU)],[Bpy]:[new RegExp("FxiOS\\/"+rU)],[Fpy]:[new RegExp("Konqueror[:/]?"+rU,"i")],[Uon]:[new RegExp(Uon+" "+rU),DIs],[Tpy]:[new RegExp("android\\s"+rU,"i")],[Ppy]:[new RegExp(xpy+"\\/"+rU)],[B4u]:[new RegExp("(rv:|MSIE )"+rU)],Mozilla:[new RegExp("rv:"+rU)]};var MeI=[[new RegExp(Mon+"; "+Mon+" (.*?)[);]","i"),e=>[Mon,e&&e[1]||""]],[new RegExp(NIs,"i"),[NIs,""]],[new RegExp(kIs,"i"),[kIs,""]],[Npy,[Uon,""]],[new RegExp(LPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[Rpy,""];if(new RegExp(z2t).test(t)&&!/IEMobile\b/.test(t))return[LPr+" "+z2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=kpy[n]||"";return/arm/i.test(t)&&(i="RT"),[LPr,i]}return[LPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Von,t.join(".")]}return[Von,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=N2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+k2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+k2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[k2t,t.join(".")]}return[k2t,""]}],[/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/,[Ipy,""]],[/Linux|debian/i,["Linux",""]]];var R4u="utf8";function F4u(e,t){if(!e||typeof e!="string"||zpy(e))throw new Error(t)}function zpy(e){return e.trim().length===0}function N4u(e){return e?.replace(/\/+$/,"")}async function k4u(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 qon(){return new Date().toISOString()}function __t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var z4u=e=>e instanceof Error;function zIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Won=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 Q4u(){return"CompressionStream"in globalThis}async function QIs(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 v_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()}},Q2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function M4u(e){if(e instanceof v_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 MIs(e){return typeof e=="object"&&(e instanceof v_t||e instanceof Q2t)}function V4u(e){return typeof e=="object"&&e instanceof v_t&&e.status===413}var qPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Qon,this._events=new Won,this._isInitialized=!1,F4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=N4u(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:MIs},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=I4u("[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=!Q4u()||(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(B3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(B3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(B3.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:CIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof v_t)return{type:"api_error",statusCode:t.status};if(t instanceof Q2t){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=QPr(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(B3.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(B3.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(B3.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(B3.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(B3.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=__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:qon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await QIs(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:qon(),uuid:n?.uuid?n.uuid:Ybe()};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 M4u(t)})}async flush(){let t=zIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),zIs([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(B3.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(B3.Queue)||[]).slice(i.length);this.setPersistedProperty(B3.Queue,h),t=h},a={api_key:this.apiKey,batch:o,sent_at:qon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await QIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>V4u(f)?!1:MIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(V4u(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 Q2t||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,R4u)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await k4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new Q2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new v_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(B3.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!MIs(i))throw i;await M4u(i)}};return Promise.race([new Promise((i,o)=>{__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 T3={};D(T3,{DOMExceptionCoercer:()=>qIs,ErrorCoercer:()=>WIs,ErrorEventCoercer:()=>GIs,ErrorPropertiesBuilder:()=>VIs,EventCoercer:()=>KIs,ObjectCoercer:()=>$Is,PrimitiveCoercer:()=>JIs,PromiseRejectionEventCoercer:()=>YIs,ReduceableCache:()=>XIs,StringCoercer:()=>HIs,chromeStackLineParser:()=>UIs,createDefaultStackParser:()=>Zpy,createStackParser:()=>X4u,geckoStackLineParser:()=>LIs,nodeStackLineParser:()=>$4u,opera10StackLineParser:()=>W4u,opera11StackLineParser:()=>G4u,reverseAndStripFrames:()=>Y4u,winjsStackLineParser:()=>q4u});var Gon,U4u,Hon;function L4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Hon&&r.length===U4u||(U4u=r.length,Hon=r.reduce((n,i)=>{Gon||(Gon={});let o=Gon[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,Gon[i]=[u,l];break}}}return n},{})),Hon}var Mpy=4,VIs=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&&BIs(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:L4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=Mpy){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 Xbe(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?mz:r,in_app:!0};return N2t(n)||(o.lineno=n),N2t(i)||(o.colno=i),o}var $on=(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 Vpy=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Upy=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Lpy=/\((\S*)(?::(\d+))(?::(\d+))\)/,UIs=(e,t)=>{let r=Vpy.exec(e);if(r){let[,i,o,s]=r;return Xbe(t,i,mz,+o,+s)}let n=Upy.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Lpy.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=$on(n[1]||mz,n[2]);return Xbe(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var qpy=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Wpy=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,LIs=(e,t)=>{let r=qpy.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=Wpy.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]=$on(o,i),Xbe(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Gpy=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,q4u=(e,t)=>{let r=Gpy.exec(e);return r?Xbe(t,r[2],r[1]||mz,+r[3],r[4]?+r[4]:void 0):void 0};var Hpy=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,W4u=(e,t)=>{let r=Hpy.exec(e);return r?Xbe(t,r[2],r[3]||mz,+r[1]):void 0},$py=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,G4u=(e,t)=>{let r=$py.exec(e);return r?Xbe(t,r[5],r[3]||r[4]||mz,+r[1],+r[2]):void 0};var Kpy=/^\s*[-]{4,}$/,Jpy=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,$4u=(e,t)=>{let r=e.match(Jpy);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:H4u(r[3]),colno:H4u(r[4]),in_app:Ypy(c||"",u),platform:t}}if(e.match(Kpy))return{filename:e,platform:t}};function Ypy(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 H4u(e){return parseInt(e||"",10)||void 0}var K4u=/\(error: (.*)\)/,J4u=50;function Y4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,J4u).map(r=>({...r,filename:r.filename||Xpy(t).filename,function:r.function||mz}))}function Xpy(e){return e[e.length-1]||{}}function Zpy(){return X4u("web:javascript",UIs,LIs)}function X4u(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1453
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=K4u.test(a)?a.replace(K4u,"$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>=J4u)break}}return Y4u(i)}}var qIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=MPr(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 b_t(t,"DOMException")}isDOMError(t){return b_t(t,"DOMError")}};var WIs=class{match(t){return TIs(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 GIs=class{constructor(){}match(t){return w4u(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 efy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,HIs=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(efy);return i&&(r=i[1],n=i[2]),[r,n]}};var Z4u=["fatal","error","warning","log","info","debug"];function Kon(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 $Is=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 kon(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=Kon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return MPr(t)&&!O4u(t)&&Z4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(z4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var KIs=class{match(t){return kon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Kon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var JIs=class{match(t){return VPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var YIs=class{match(t){return b_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return VPr(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(VPr(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 XIs=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 rLu=require("fs"),nLu=require("readline"),Jon=new T3.ReduceableCache(25),iLu=new T3.ReduceableCache(20),ZIs=7,tfy=1e3,rfy=1e4;async function oLu(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"||sfy(s)||afy(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(iLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=ufy(o);if(s.every(c=>cfy(i,c)))continue;let a=lfy(Jon,i,{});n.push(nfy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&ify(e,Jon),Jon.reduce(),e}function nfy(e,t,r){return new Promise(n=>{let i=(0,rLu.createReadStream)(e),o=(0,nLu.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(){iLu.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]=pfy(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 ify(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;ofy(r.lineno,r,n)}}function ofy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=sLu(e);i<e;i++){let o=r[i];if(o===void 0)return void eLu(t);t.pre_context.push(o)}if(r[e]===void 0)return void eLu(t);t.context_line=r[e];let n=aLu(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 eLu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function sfy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function afy(e){return e.lineno!==void 0&&e.lineno>rfy||e.colno!==void 0&&e.colno>tfy}function cfy(e,t){let r=Jon.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 ufy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=tLu(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+ZIs:(i.push(n),n=tLu(o)),t++}return i}function tLu(e){return[sLu(e),aLu(e)]}function sLu(e){return Math.max(1,e-ZIs)}function aLu(e){return e+ZIs}function lfy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function pfy(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 ffy(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 cLu(e,t){globalThis.process?.on("uncaughtException",ffy(e,t))}function uLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var mfy=2e3,due=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new zon({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return v4u(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||Ybe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(cLu(this.onException.bind(this),this.onFatalError.bind(this)),uLu(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(mfy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var lLu="5.24.7";var WPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function pLu(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 dfy=6e4,hfy=1152921504606847e3,gfy=["is_not"],M2t=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)}},Zbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Yon=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 Zbe||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 Zbe||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 Zbe)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"?gLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):hLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await fLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await fLu(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(dfy,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 M2t(`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 M2t(`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 M2t(`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 M2t&&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=__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 fLu(e,t,r=""){let n=await pLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/hfy}function hLu(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&&!gfy.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 mLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return mLu(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=Afy(String(i));if(u==null&&(u=dLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=dLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function yfy(e,t){if(!(e in t))throw new Zbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function gLu(e,t,r,n=!1){let i=String(e.value);yfy(i,r);let o=r[i];return yLu(o,t,r,n)}function yLu(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=yLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Zbe)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=gLu(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=hLu(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 Zbe)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 mLu(e){try{return new RegExp(e),!0}catch{return!1}}function dLu(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 Afy(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 Xon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var bfy=100,ALu=3e4,_fy=5e4,Zon=class extends qPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Xon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,bfy):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 Yon({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 due(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||_fy}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 lLu}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 Zbe||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=WPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(WPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(WPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(WPr.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=__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(x4u(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(!due.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(due.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!due.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(due.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=Ybe(),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"&&b4u(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 bLu=require("async_hooks"),esn=class{constructor(){this.storage=new bLu.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 _Lu="posthog-node";function vfy(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[eCs.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 eCs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=_Lu,this.name=_Lu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(vfy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};due.errorPropertiesBuilder=new T3.ErrorPropertiesBuilder([new T3.EventCoercer,new T3.ErrorCoercer,new T3.ObjectCoercer,new T3.StringCoercer,new T3.PrimitiveCoercer],T3.createStackParser("node:javascript",T3.nodeStackLineParser),[d4u(),oLu]);var r9e=class extends Zon{getLibraryId(){return"posthog-node"}initializeContext(){return new esn}};var tsn=class{posthog;constructor({posthogApiKey:t}){this.posthog=new r9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.92.0",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var GPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var V2t=require("fs/promises"),xLu=require("os"),PLu=require("path");var vLu=He(require("crypto")),nsn=new Uint8Array(256),rsn=nsn.length;function tCs(){return rsn>nsn.length-16&&(vLu.default.randomFillSync(nsn),rsn=0),nsn.slice(rsn,rsn+=16)}var OLu=/^(?:[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 Ofy(e){return typeof e=="string"&&OLu.test(e)}var rCs=Ofy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function ELu(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 wLu=He(require("crypto")),nCs={randomUUID:wLu.default.randomUUID};function Efy(e,t,r){if(nCs.randomUUID&&!t&&!e)return nCs.randomUUID();e=e||{};let n=e.random||(e.rng||tCs)();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 ELu(n)}var dR=Efy;var wfy="id",xfy=".fern",HPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new r9e(r),this.userId=t==null?void 0:Qvs(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.92.0",...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 nC({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=Pt(vr.of((0,xLu.homedir)()),Xe.of(xfy),Xe.of(wfy));await qr(t)||(await(0,V2t.mkdir)((0,PLu.dirname)(t),{recursive:!0}),await(0,V2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,V2t.readFile)(t)).toString()}return this.persistedDistinctId}};var iCs;async function U2t(){return iCs==null&&(iCs=await Pfy()),iCs}async function Pfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new GPr;let r=await _Zr();return r!=null?new HPr({token:r,posthogApiKey:e}):await Tbe()!=null?new tsn({posthogApiKey:e}):new HPr({token:void 0,posthogApiKey:e})}catch{return new GPr}}var ILu=(e=0)=>t=>`\x1B[${t+e}m`,CLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,SLu=(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]}},LnI=Object.keys(fI.modifier),Ify=Object.keys(fI.color),Cfy=Object.keys(fI.bgColor),qnI=[...Ify,...Cfy];function Sfy(){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=ILu(),fI.color.ansi256=CLu(),fI.color.ansi16m=SLu(),fI.bgColor.ansi=ILu(10),fI.bgColor.ansi256=CLu(10),fI.bgColor.ansi16m=SLu(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 jfy=Sfy(),hue=jfy;var osn=He(require("process"),1),BLu=He(require("os"),1),oCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:osn.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}=osn.default,isn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?isn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(isn=1);function Bfy(){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 Tfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Dfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Bfy();n!==void 0&&(isn=n);let i=r?isn:n;if(i===0)return 0;if(r){if(cJ("color=16m")||cJ("color=full")||cJ("color=truecolor"))return 3;if(cJ("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(osn.default.platform==="win32"){let s=BLu.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 jLu(e,t={}){let r=Dfy(e,{streamIsTTY:e&&e.isTTY,...t});return Tfy(r)}var Rfy={stdout:jLu({isTTY:oCs.default.isatty(1)}),stderr:jLu({isTTY:oCs.default.isatty(2)})},TLu=Rfy;function DLu(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 RLu(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
1453
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=K4u.test(a)?a.replace(K4u,"$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>=J4u)break}}return Y4u(i)}}var qIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=MPr(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 b_t(t,"DOMException")}isDOMError(t){return b_t(t,"DOMError")}};var WIs=class{match(t){return TIs(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 GIs=class{constructor(){}match(t){return w4u(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 efy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,HIs=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(efy);return i&&(r=i[1],n=i[2]),[r,n]}};var Z4u=["fatal","error","warning","log","info","debug"];function Kon(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 $Is=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 kon(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=Kon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return MPr(t)&&!O4u(t)&&Z4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(z4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var KIs=class{match(t){return kon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Kon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var JIs=class{match(t){return VPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var YIs=class{match(t){return b_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return VPr(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(VPr(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 XIs=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 rLu=require("fs"),nLu=require("readline"),Jon=new T3.ReduceableCache(25),iLu=new T3.ReduceableCache(20),ZIs=7,tfy=1e3,rfy=1e4;async function oLu(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"||sfy(s)||afy(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(iLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=ufy(o);if(s.every(c=>cfy(i,c)))continue;let a=lfy(Jon,i,{});n.push(nfy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&ify(e,Jon),Jon.reduce(),e}function nfy(e,t,r){return new Promise(n=>{let i=(0,rLu.createReadStream)(e),o=(0,nLu.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(){iLu.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]=pfy(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 ify(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;ofy(r.lineno,r,n)}}function ofy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=sLu(e);i<e;i++){let o=r[i];if(o===void 0)return void eLu(t);t.pre_context.push(o)}if(r[e]===void 0)return void eLu(t);t.context_line=r[e];let n=aLu(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 eLu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function sfy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function afy(e){return e.lineno!==void 0&&e.lineno>rfy||e.colno!==void 0&&e.colno>tfy}function cfy(e,t){let r=Jon.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 ufy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=tLu(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+ZIs:(i.push(n),n=tLu(o)),t++}return i}function tLu(e){return[sLu(e),aLu(e)]}function sLu(e){return Math.max(1,e-ZIs)}function aLu(e){return e+ZIs}function lfy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function pfy(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 ffy(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 cLu(e,t){globalThis.process?.on("uncaughtException",ffy(e,t))}function uLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var mfy=2e3,due=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new zon({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return v4u(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||Ybe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(cLu(this.onException.bind(this),this.onFatalError.bind(this)),uLu(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(mfy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var lLu="5.24.7";var WPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function pLu(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 dfy=6e4,hfy=1152921504606847e3,gfy=["is_not"],M2t=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)}},Zbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Yon=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 Zbe||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 Zbe||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 Zbe)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"?gLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):hLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await fLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await fLu(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(dfy,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 M2t(`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 M2t(`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 M2t(`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 M2t&&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=__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 fLu(e,t,r=""){let n=await pLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/hfy}function hLu(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&&!gfy.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 mLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return mLu(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=Afy(String(i));if(u==null&&(u=dLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=dLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function yfy(e,t){if(!(e in t))throw new Zbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function gLu(e,t,r,n=!1){let i=String(e.value);yfy(i,r);let o=r[i];return yLu(o,t,r,n)}function yLu(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=yLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Zbe)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=gLu(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=hLu(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 Zbe)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 mLu(e){try{return new RegExp(e),!0}catch{return!1}}function dLu(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 Afy(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 Xon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var bfy=100,ALu=3e4,_fy=5e4,Zon=class extends qPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Xon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,bfy):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 Yon({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 due(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||_fy}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 lLu}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 Zbe||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=WPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(WPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(WPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(WPr.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=__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(x4u(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(!due.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(due.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!due.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(due.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=Ybe(),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"&&b4u(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 bLu=require("async_hooks"),esn=class{constructor(){this.storage=new bLu.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 _Lu="posthog-node";function vfy(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[eCs.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 eCs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=_Lu,this.name=_Lu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(vfy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};due.errorPropertiesBuilder=new T3.ErrorPropertiesBuilder([new T3.EventCoercer,new T3.ErrorCoercer,new T3.ObjectCoercer,new T3.StringCoercer,new T3.PrimitiveCoercer],T3.createStackParser("node:javascript",T3.nodeStackLineParser),[d4u(),oLu]);var r9e=class extends Zon{getLibraryId(){return"posthog-node"}initializeContext(){return new esn}};var tsn=class{posthog;constructor({posthogApiKey:t}){this.posthog=new r9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.92.1",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var GPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var V2t=require("fs/promises"),xLu=require("os"),PLu=require("path");var vLu=He(require("crypto")),nsn=new Uint8Array(256),rsn=nsn.length;function tCs(){return rsn>nsn.length-16&&(vLu.default.randomFillSync(nsn),rsn=0),nsn.slice(rsn,rsn+=16)}var OLu=/^(?:[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 Ofy(e){return typeof e=="string"&&OLu.test(e)}var rCs=Ofy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function ELu(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 wLu=He(require("crypto")),nCs={randomUUID:wLu.default.randomUUID};function Efy(e,t,r){if(nCs.randomUUID&&!t&&!e)return nCs.randomUUID();e=e||{};let n=e.random||(e.rng||tCs)();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 ELu(n)}var dR=Efy;var wfy="id",xfy=".fern",HPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new r9e(r),this.userId=t==null?void 0:Qvs(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.92.1",...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 nC({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=Pt(vr.of((0,xLu.homedir)()),Xe.of(xfy),Xe.of(wfy));await qr(t)||(await(0,V2t.mkdir)((0,PLu.dirname)(t),{recursive:!0}),await(0,V2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,V2t.readFile)(t)).toString()}return this.persistedDistinctId}};var iCs;async function U2t(){return iCs==null&&(iCs=await Pfy()),iCs}async function Pfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new GPr;let r=await _Zr();return r!=null?new HPr({token:r,posthogApiKey:e}):await Tbe()!=null?new tsn({posthogApiKey:e}):new HPr({token:void 0,posthogApiKey:e})}catch{return new GPr}}var ILu=(e=0)=>t=>`\x1B[${t+e}m`,CLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,SLu=(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]}},LnI=Object.keys(fI.modifier),Ify=Object.keys(fI.color),Cfy=Object.keys(fI.bgColor),qnI=[...Ify,...Cfy];function Sfy(){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=ILu(),fI.color.ansi256=CLu(),fI.color.ansi16m=SLu(),fI.bgColor.ansi=ILu(10),fI.bgColor.ansi256=CLu(10),fI.bgColor.ansi16m=SLu(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 jfy=Sfy(),hue=jfy;var osn=He(require("process"),1),BLu=He(require("os"),1),oCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:osn.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}=osn.default,isn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?isn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(isn=1);function Bfy(){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 Tfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Dfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Bfy();n!==void 0&&(isn=n);let i=r?isn:n;if(i===0)return 0;if(r){if(cJ("color=16m")||cJ("color=full")||cJ("color=truecolor"))return 3;if(cJ("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(osn.default.platform==="win32"){let s=BLu.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 jLu(e,t={}){let r=Dfy(e,{streamIsTTY:e&&e.isTTY,...t});return Tfy(r)}var Rfy={stdout:jLu({isTTY:oCs.default.isatty(1)}),stderr:jLu({isTTY:oCs.default.isatty(2)})},TLu=Rfy;function DLu(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 RLu(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
1454
1454
  `:`
1455
1455
  `)+r,i=n+1,n=e.indexOf(`
1456
1456
  `,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:FLu,stderr:NLu}=TLu,sCs=Symbol("GENERATOR"),L2t=Symbol("STYLER"),$Pr=Symbol("IS_EMPTY"),kLu=["ansi","ansi","ansi256","ansi16m"],q2t=Object.create(null),Ffy=(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=FLu?FLu.level:0;e.level=t.level===void 0?r:t.level};var Nfy=e=>{let t=(...r)=>r.join(" ");return Ffy(t,e),Object.setPrototypeOf(t,KPr.prototype),t};function KPr(e){return Nfy(e)}Object.setPrototypeOf(KPr.prototype,Function.prototype);for(let[e,t]of Object.entries(hue))q2t[e]={get(){let r=ssn(this,cCs(t.open,t.close,this[L2t]),this[$Pr]);return Object.defineProperty(this,e,{value:r}),r}};q2t.visible={get(){let e=ssn(this,this[L2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var aCs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?hue[r].ansi16m(...n):t==="ansi256"?hue[r].ansi256(hue.rgbToAnsi256(...n)):hue[r].ansi(hue.rgbToAnsi(...n)):e==="hex"?aCs("rgb",t,r,...hue.hexToRgb(...n)):hue[r][e](...n),kfy=["rgb","hex","ansi256"];for(let e of kfy){q2t[e]={get(){let{level:r}=this;return function(...n){let i=cCs(aCs(e,kLu[r],"color",...n),hue.color.close,this[L2t]);return ssn(this,i,this[$Pr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);q2t[t]={get(){let{level:r}=this;return function(...n){let i=cCs(aCs(e,kLu[r],"bgColor",...n),hue.bgColor.close,this[L2t]);return ssn(this,i,this[$Pr])}}}}var zfy=Object.defineProperties(()=>{},{...q2t,level:{enumerable:!0,get(){return this[sCs].level},set(e){this[sCs].level=e}}}),cCs=(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}},ssn=(e,t,r)=>{let n=(...i)=>Qfy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,zfy),n[sCs]=e,n[L2t]=t,n[$Pr]=r,n},Qfy=(e,t)=>{if(e.level<=0||!t)return e[$Pr]?"":t;let r=e[L2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=DLu(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
@@ -2113,7 +2113,7 @@ ${n.map(o=>` ${o}`).join(`,
2113
2113
  `)}
2114
2114
  ]`;case 1:return`${i} Did you mean ${r[0]}?`;case 2:return`${i} Did you mean ${r[0]} or ${r[1]}?`;default:return`${i} Did you mean ${r[0]}, ${r[1]}, or ${r[2]}?`}}function PNn(e){return`API section ${e} is specified multiple times, however will be only rendered once.`}function CIA(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}_w();function INn({children:e,findEndpointById:t,stringifyEndpointPathParts:r,disableEndpointPairs:n,apiDefinitionId:i}){if(n)return e;let o=[],s=new Map;return e.forEach(a=>{if(a.type!=="endpoint"){o.push(a);return}let c=t(a.endpointId);if(c==null)throw new Error(`Endpoint ${a.endpointId} not found`);let u=`${c.method} ${r(c)}`,l=s.get(u);if(s.set(u,a),l==null||l.isResponseStream===a.isResponseStream){o.push(a);return}let p=o.indexOf(l),m=a.isResponseStream?a:l,f=a.isResponseStream?l:a,h={id:nr.V1.NodeId(`${i}:${f.endpointId}+${m.endpointId}`),type:"endpointPair",stream:m,nonStream:f};o[p]=h}),o}function ekl({left:e,right:t,findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}){return INn({children:[...e,...t],findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}).filter(s=>s.type==="apiPackage"?s.children.length>0||s.overviewPageId!=null:!0)}_w();Ni();Ir();function H3t(e,t){if(t!=null)return dl(e.absoluteFilePath,t)}function tkl({docsWorkspace:e,page:t,parentSlug:r,idgen:n,markdownFilesToFullSlugs:i,markdownFilesToNoIndex:o,hideChildren:s,resolveIconFileId:a}){let c=nr.V1.PageId(H3t(e,t.absolutePath)),u=r.apply({fullSlug:i.get(t.absolutePath)?.split("/"),urlSlug:t.slug??M0(t.title)});return{id:n.get(c),type:"page",pageId:c,title:t.title,slug:u.get(),icon:a?a(t.icon):t.icon,hidden:s||t.hidden,noindex:t.noindex||o.get(t.absolutePath),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,availability:t.availability}}var CNn=class{apiSection;docsWorkspace;taskContext;markdownFilesToFullSlugs;markdownFilesToNoIndex;markdownFilesToTags;workspace;hideChildren;parentAvailability;openApiTags;apiDefinitionId;#e;#t=new Set;#r=new Set;#n=new Set;#i=new Set;#o=new Set;#s=new Set;#a=new Map;#c=[];#u;#m;#p;disableEndpointPairs;collectedFileIds=new Map;#f;#l;constructor(t,r,n,i,o,s,a,c,u,l,p,m,f,h,g){this.apiSection=t,this.docsWorkspace=i,this.taskContext=o,this.markdownFilesToFullSlugs=s,this.markdownFilesToNoIndex=a,this.markdownFilesToTags=c,this.workspace=p,this.hideChildren=m,this.parentAvailability=f,this.openApiTags=h,this.#f=new Map,this.#l=g??new Map,this.disableEndpointPairs=i.config.experimental?.disableStreamToggle??!1,this.apiDefinitionId=nr.V1.ApiDefinitionId(r.id),this.#e=OHe.create(r,o),this.collectedFileIds=l,this.#p=u,this.#u=this.apiSection.overviewAbsolutePath!=null?nr.V1.PageId(H3t(this.docsWorkspace,this.apiSection.overviewAbsolutePath)):void 0;let y=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;this.#m=n.apply({fullSlug:y?.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??M0(this.apiSection.title)});let A=this.apiSection.availability??this.parentAvailability;this.apiSection.navigation!=null&&(this.#c=this.#d(this.apiSection.navigation,this.#e.api.rootPackage,this.#m,A)),this.#c=this.#A(this.#c.map(b=>this.#E(b,A)),this.#w(this.#e.api.rootPackage,this.#m,A))}get(){let t=nr.V1.followRedirects(this.#c),r=new EEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.workspace?.changelog?.files.map(i=>i.absoluteFilepath),this.docsWorkspace,this.#p).orUndefined(),n=this.#u;if(n==null){let i=this.#c.find(o=>o.type==="apiPackage"&&o.overviewPageId!=null);i!=null&&(n=i.overviewPageId)}return{id:this.#p.get(this.apiDefinitionId),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:n,collapsible:void 0,collapsedByDefault:void 0,paginated:this.apiSection.paginated,slug:this.#m.get(),icon:this.resolveIconFileId(this.apiSection.icon),hidden:this.hideChildren||this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:r?.toChangelogNode({parentSlug:this.#m,viewers:void 0,hidden:this.hideChildren}),children:this.#c,availability:this.apiSection.availability??this.parentAvailability,pointsTo:t,noindex:void 0,playground:this.#x(this.apiSection.playground),postmanCollectionUrl:this.apiSection.postman,authed:void 0,viewers:this.apiSection.viewers,orphaned:this.apiSection.orphaned,featureFlags:this.apiSection.featureFlags}}getTagDescriptionContent(){return this.#f}createTagDescriptionPageId(t){if(!this.apiSection.tagDescriptionPages||!this.openApiTags)return;let r=Sle(t)?t.name:void 0;if(!r)return;let n=this.openApiTags[r];if(!n||!n.description)return;let i=`tag-${r}.md`,o=vr.of(`/${i}`),s=nr.V1.PageId(i),a=n.description.replace(/\{/g,"\\{").replace(/\}/g,"\\}").replace(/</g,"&lt;").replace(/>/g,"&gt;"),c=`# ${Wz(n.id.replace(/[_-]/g," "))}
2115
2115
 
2116
- ${a}`;return this.#f.set(o,c),this.markdownFilesToNoIndex.set(o,!1),this.markdownFilesToTags.set(o,[r]),s}#d(t,r,n,i){r=this.#e.resolveSubpackage(r);let o=r!=null?OHe.getSubpackageId(r):void 0;return t.map(s=>Q$s(s)._visit({link:a=>({id:this.#p.get(a.url),type:"link",title:a.text,icon:this.resolveIconFileId(a.icon),url:nr.Url(a.url),target:a.target}),page:a=>this.#h(a,n,i),package:a=>this.#g(a,n,i),section:a=>this.#_(a,n,i),item:({value:a})=>this.#b(a,o,n,i),endpoint:a=>this.#v(a,o,n,i),operation:a=>this.#O(a,o,n,i)})).filter(ru)}#h(t,r,n){return tkl({page:{...t,availability:t.availability??n},parentSlug:r,docsWorkspace:this.docsWorkspace,markdownFilesToFullSlugs:this.markdownFilesToFullSlugs,markdownFilesToNoIndex:this.markdownFilesToNoIndex,idgen:this.#p,hideChildren:this.hideChildren,resolveIconFileId:this.resolveIconFileId.bind(this)})}#g(t,r,n){let i=t.overviewAbsolutePath!=null?nr.V1.PageId(H3t(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.availability??n,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let c=OHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(PNn(t.package)),this.#s.add(c),this.#a.set(u,[c]);let l=t.slug??(Sle(a)?a.urlSlug:this.apiSection.slug??M0(this.apiSection.title)),p=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:l}),m=this.#d(t.contents,a,p,s);return{id:u,type:"apiPackage",children:m,title:t.title??(Sle(a)?a.displayName??Wz(a.name):this.apiSection.title),slug:p.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:s,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}else{this.taskContext.logger.warn(xNn(t.package,this.#e.subpackageLocators));let c=t.slug??M0(t.package),u=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=this.#d(t.contents,void 0,u,s);return{id:this.#p.get(i??`${this.apiDefinitionId}:${M0(t.package)}`),type:"apiPackage",children:l,title:t.title??t.package,slug:u.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:s,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}#_(t,r,n){let i=t.overviewAbsolutePath!=null?nr.V1.PageId(H3t(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(t.overviewAbsolutePath):void 0,a=this.#p.get(i??o??r.get()),c=t.referencedSubpackages.map(f=>{let h=this.#e.getSubpackageByIdOrLocator(f),g=h!=null?OHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(xNn(f,this.#e.subpackageLocators));return}return{subpackageId:g,locator:f}}).filter(f=>f!=null).filter(ru);this.#a.set(a,c.map(f=>f.subpackageId)),c.forEach(f=>{this.#s.has(f.subpackageId)&&this.taskContext.logger.error(PNn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??M0(t.title),l=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),p=t.availability??n,m=this.#d(t.contents,void 0,l,p);return{id:a,type:"apiPackage",children:m,title:t.title,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:t.collapsible,collapsedByDefault:t.collapsedByDefault,availability:p,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:s,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#b(t,r,n,i){t=t.trim();let o=this.#e.getSubpackageByIdOrLocator(t)??this.#e.getSubpackageByIdOrLocator(ao(t));if(o!=null){let s=OHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(PNn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=Sle(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",children:[],title:Sle(o)?o.displayName??Wz(o.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:this.createTagDescriptionPageId(o),collapsible:void 0,collapsedByDefault:void 0,availability:i,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}return this.#v({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,availability:void 0,playground:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0},r,n,i)}#v(t,r,n,i){let o=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.endpoints.get(vP.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(o!=null){let u=this.#e.getEndpointId(o);if(u==null)this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);else{this.#t.has(u)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${u}`),this.#t.add(u);let l=t.slug!=null?n.append(t.slug):n.apply(o);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"endpoint",method:o.method,endpointId:u,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(o.availability)??i,isResponseStream:o.response?.type.type==="stream",title:t.title??o.name??LQ(o.path.parts),slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#x(o.includeInApiExplorer===!1?{...t.playground,hidden:!0}:t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}let s=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.webSockets.get(vP.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(s!=null){let u=this.#e.getWebSocketId(s);if(u==null)this.taskContext.logger.error(`Expected WebSocket ID for ${s.id}. Got undefined.`);else return this.#r.has(u)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${u}`),this.#r.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webSocket",webSocketId:u,title:t.title??s.name??LQ(s.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(s)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(s.availability)??i,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let a=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.webhooks.get(vP.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(nr.V1.WebhookId(t.endpoint));if(a!=null){let u=this.#e.getWebhookId(a);if(u==null)this.taskContext.logger.error(`Expected Webhook ID for ${a.id}. Got undefined.`);else return this.#n.has(u)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${u}`),this.#n.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webhook",webhookId:u,method:a.method,title:t.title??a.name??(0,rkl.default)("/",...a.path),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(a.availability)??i,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let c=this.#e.api.rootPackage.graphqlOperations?.find(u=>u.id===t.endpoint||u.name===t.endpoint);if(c!=null){let u=vP.GraphQlOperationId(c.id);if(this.#o.has(u)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${u}`);return}this.#o.add(u);let l=t.slug!=null?n.append(t.slug):n.append(c.name??c.id);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"graphql",operationType:c.operationType,graphqlOperationId:vP.GraphQlOperationId(c.id),apiDefinitionId:this.apiDefinitionId,availability:t.availability??i,title:t.title??c.displayName??c.name??c.id,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#O(t,r,n,i){let o=t.operation.trim().split(/\s+/,2);if(o.length!==2){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let[s,a]=o;if(!a){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let c=this.#e.api.rootPackage.graphqlOperations??[],u=c.filter(f=>{if(f.operationType!==s)return!1;if(a.includes(".")){if(f.id===a||f.name===a)return!0;let h=a.split("."),g=h[h.length-1],y=h.slice(0,-1).join(".");if(f.name===g||f.id===g)return f.id.startsWith(y+".")||this.#l.get(vn.GraphQlOperationId(f.id))===y}else return f.name===a||f.id===a;return!1});if(!a.includes(".")){let f=c.filter(h=>h.operationType===s&&(h.name===a||h.id===a));if(f.length>1){let h=f.map(g=>{let y=this.#l.get(vn.GraphQlOperationId(g.id));if(y)return`"${s} ${y}.${a}"`;let A=g.id.split("_");if(A.length>=3){let b=A[0];return`"${s} ${b}.${a}"`}return`"${s} ${g.id}"`}).join(", ");this.taskContext.logger.warn(`Ambiguous operation reference: "${t.operation}". Found ${f.length} operations with name "${a}". Using first match: "${h.split(", ")[0]}". Please use the full namespaced format for clarity. Available options: ${h}`)}}let l=u[0];if(l==null){this.taskContext.logger.error(`GraphQL operation not found in the API Reference layout: ${t.operation}`);return}let p=vP.GraphQlOperationId(l.id);if(this.#o.has(p)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${p}`);return}this.#o.add(p);let m=t.slug!=null?n.append(t.slug):n.append(l.name??l.id);return{id:this.#p.get(`${this.apiDefinitionId}:${p}`),type:"graphql",operationType:l.operationType,graphqlOperationId:vP.GraphQlOperationId(l.id),apiDefinitionId:this.apiDefinitionId,availability:t.availability??i,title:t.title??l.displayName??l.name??l.id,slug:m.get(),icon:void 0,hidden:this.hideChildren||t.hidden,playground:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#A(t,r){return ekl({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>LQ(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#E(t,r){return U$s({child:t,nodeIdToSubpackageId:this.#a,convertApiDefinitionPackageId:(n,i,o)=>this.#y(n,i,o),mergeAndFilterChildren:this.#A.bind(this)})}#w(t,r,n){let i=[];if(t.endpoints.forEach(o=>{if(o.protocol?.type==="grpc"){let s=this.#e.getGrpcId(o);if(s==null){this.taskContext.logger.error(`Expected Grpc ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#i.has(s))return;let a=r.apply(o);i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"grpc",grpcId:s,title:o.name??LQ(o.path.parts),method:o.protocol?.methodType??"UNARY",apiDefinitionId:this.apiDefinitionId,availability:n,slug:a.get(),icon:void 0,hidden:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let s=this.#e.getEndpointId(o);if(s==null){this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#t.has(s))return;let a=r.apply(o);i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"endpoint",method:o.method,endpointId:s,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,isResponseStream:o.response?.type.type==="stream",title:o.name??LQ(o.path.parts),slug:a.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}}),t.websockets.forEach(o=>{let s=this.#e.getWebSocketId(o);if(s==null){this.taskContext.logger.error(`Expected WebSocket ID for ${o.id}. Got undefined.`);return}this.#r.has(s)||i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webSocket",webSocketId:s,title:o.name??LQ(o.path.parts),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.webhooks.forEach(o=>{let s=this.#e.getWebhookId(o);if(s==null){this.taskContext.logger.error(`Expected Webhook ID for ${o.id}. Got undefined.`);return}this.#n.has(s)||i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webhook",webhookId:s,method:o.method,title:o.name??Wz(o.id),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.subpackages.forEach(o=>{if(this.#s.has(o))return;let s=this.#e.getSubpackageByIdOrLocator(o);if(s==null){this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`);return}let a=Sle(s)?r.apply(s):r,c=this.#y(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(vP.SubpackageId(o)),p=l?Array.from(l.endpoints.values()).some(m=>{let f=this.#e.getEndpointId(m);return f!=null&&this.#t.has(f)}):!1;(c.length>0||u!=null&&p)&&i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${o}`),type:"apiPackage",children:c,title:Sle(s)?s.displayName??Wz(s.name):this.apiSection.title,slug:a.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.graphqlOperations!=null&&t.graphqlOperations.length>0){let o=this.#I(t.graphqlOperations,r,n);i.push(...o)}return i=this.mergeEndpointPairs(i),this.apiSection.alphabetized&&(i=i.sort((o,s)=>{let a=o.type==="endpointPair"?o.nonStream.title:o.title,c=s.type==="endpointPair"?s.nonStream.title:s.title;return a.localeCompare(c)})),i}#I(t,r,n){let i={},o={};for(let u of t){let l=vP.GraphQlOperationId(u.id);if(this.#o.has(l))continue;this.#o.add(l);let p=this.#l.get(vn.GraphQlOperationId(u.id)),m=u.operationType;p!=null?(i[p]==null&&(i[p]={}),i[p][m]==null&&(i[p][m]=[]),i[p][m].push(u)):(o[m]==null&&(o[m]=[]),o[m].push(u))}let s=[],a=["QUERY","MUTATION","SUBSCRIPTION"],c={QUERY:"Queries",MUTATION:"Mutations",SUBSCRIPTION:"Subscriptions"};for(let[u,l]of Object.entries(i)){let p=r.append(M0(u)),m=[];for(let h of a){let g=l[h];if(g==null||g.length===0)continue;let y=c[h],A=p.append(M0(y)),b=g.map(_=>{let O=A.append(_.name??_.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${_.id}`),type:"graphql",operationType:_.operationType,graphqlOperationId:vP.GraphQlOperationId(_.id),apiDefinitionId:this.apiDefinitionId,availability:n,title:_.displayName??_.name??_.id,slug:O.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}),v={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}:${h}`),type:"apiPackage",children:b,title:y,slug:A.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};m.push(v)}let f={id:this.#p.get(`${this.apiDefinitionId}:graphql:namespace:${u}`),type:"apiPackage",children:m,title:Wz(u),slug:p.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(f)}for(let u of a){let l=o[u];if(l==null||l.length===0)continue;let p=c[u],m=r.append(M0(p)),f=l.map(g=>{let y=m.append(g.name??g.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${g.id}`),type:"graphql",operationType:g.operationType,graphqlOperationId:vP.GraphQlOperationId(g.id),apiDefinitionId:this.apiDefinitionId,availability:n,title:g.displayName??g.name??g.id,slug:y.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}),h={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}`),type:"apiPackage",children:f,title:p,slug:m.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(h)}return s}#y(t,r,n){let i=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return i==null?(this.taskContext.logger.debug(xNn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return WNl(t)}mergeEndpointPairs(t){return INn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>LQ(r.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}getFileId(t){let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}};_w();var nkl=He(require("crypto"),1);function SIA(e){return nkl.default.createHash("sha256").update(e).digest("hex")}var SNn=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#r(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),SIA(r===0?t:`${t}-${r}`)}#n(t){let r=this.#r(t),n=0;for(;this.#t.has(r);)if(r=this.#r(t),n++,n>100)throw new Error(`Infinite loop detected for id: ${t}`);return r}get(t){return nr.V1.NodeId(this.#n(t))}};function ikl(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0,csharpSdk:e.csharp!=null?{package:typeof e.csharp=="string"?e.csharp:e.csharp.package,version:typeof e.csharp=="string"?void 0:e.csharp.version}:void 0,phpSdk:e.php!=null?{package:typeof e.php=="string"?e.php:e.php.package,version:typeof e.php=="string"?void 0:e.php.version}:void 0,swiftSdk:e.swift!=null?{package:typeof e.swift=="string"?e.swift:e.swift.package,version:typeof e.swift=="string"?void 0:e.swift.version}:void 0,rustSdk:e.rust!=null?{package:typeof e.rust=="string"?e.rust:e.rust.package,version:typeof e.rust=="string"?void 0:e.rust.version}:void 0}}_w();pr();var jNn=class{selectors;constructor(t){this.selectors=t}matches(t,r){for(let n of this.selectors)if(this.pathMatches(t,n.path)&&(!n.method||n.method===r))return!0;return!1}pathMatches(t,r){if(t===r)return!0;let n=t.split("/").filter(o=>o.length>0),i=r.split("/").filter(o=>o.length>0);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let s=n[o],a=i[o];if(!s||!a)return!1;let c=s.startsWith("{")&&s.endsWith("}"),u=a.startsWith("{")&&a.endsWith("}");if(!(c&&u)&&s!==a)return!1}return!0}getMatchingPaths(t){let r=[];for(let[n,i]of Object.entries(t)){if(!i)continue;let o=["get","put","post","delete","options","head","patch","trace"];for(let s of o)if(i[s]&&this.matches(n,s)){r.includes(n)||r.push(n);break}}return r}};var BNn=class{document;schemas=new Set;parameters=new Set;responses=new Set;requestBodies=new Set;securitySchemes=new Set;headers=new Set;examples=new Set;links=new Set;callbacks=new Set;constructor(t){this.document=t}collectFromOperation(t){if(t.parameters)for(let r of t.parameters)this.collectParameter(r);if(t.requestBody&&this.collectFromRequestBody(t.requestBody),t.responses)for(let r of Object.values(t.responses))this.collectFromResponse(r);if(t.callbacks)for(let[r,n]of Object.entries(t.callbacks))if(this.isReference(n))this.callbacks.add(this.extractComponentName(n.$ref));else for(let i of Object.values(n))this.collectFromPathItem(i);if(t.security)for(let r of t.security)for(let n of Object.keys(r))this.securitySchemes.add(n)}collectFromPathItem(t){if(t.parameters)for(let n of t.parameters)this.collectParameter(n);let r=[t.get,t.put,t.post,t.delete,t.options,t.head,t.patch,t.trace];for(let n of r)n&&this.collectFromOperation(n)}collectParameter(t){if(this.isReference(t)){this.parameters.add(this.extractComponentName(t.$ref));let r=this.resolveParameter(t.$ref);r&&this.collectParameter(r)}else{if(t.schema&&this.collectFromSchema(t.schema),t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}}collectFromRequestBody(t){if(this.isReference(t)){this.requestBodies.add(this.extractComponentName(t.$ref));let r=this.resolveRequestBody(t.$ref);r&&this.collectFromRequestBody(r)}else if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r)}collectFromResponse(t){if(this.isReference(t)){this.responses.add(this.extractComponentName(t.$ref));let r=this.resolveResponse(t.$ref);r&&this.collectFromResponse(r)}else{if(t.headers)for(let[r,n]of Object.entries(t.headers))this.isReference(n)?this.headers.add(this.extractComponentName(n.$ref)):n.schema&&this.collectFromSchema(n.schema);if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.links)for(let[r,n]of Object.entries(t.links))this.isReference(n)&&this.links.add(this.extractComponentName(n.$ref))}}collectFromMediaType(t){if(t.schema&&this.collectFromSchema(t.schema),t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}collectFromSchema(t){if(this.isReference(t)){let r=this.extractComponentName(t.$ref);if(!this.schemas.has(r)){this.schemas.add(r);let n=this.resolveSchema(t.$ref);n&&this.collectFromSchema(n)}}else{if(t.properties)for(let r of Object.values(t.properties))this.collectFromSchema(r);if(t.additionalProperties&&typeof t.additionalProperties=="object"&&this.collectFromSchema(t.additionalProperties),"items"in t&&t.items)if(Array.isArray(t.items))for(let r of t.items)this.collectFromSchema(r);else this.collectFromSchema(t.items);if(t.allOf)for(let r of t.allOf)this.collectFromSchema(r);if(t.oneOf)for(let r of t.oneOf)this.collectFromSchema(r);if(t.anyOf)for(let r of t.anyOf)this.collectFromSchema(r);t.not&&this.collectFromSchema(t.not)}}resolveSchema(t){let r=this.extractComponentName(t);return this.document.components?.schemas?.[r]}resolveParameter(t){let r=this.extractComponentName(t);return this.document.components?.parameters?.[r]}resolveResponse(t){let r=this.extractComponentName(t);return this.document.components?.responses?.[r]}resolveRequestBody(t){let r=this.extractComponentName(t);return this.document.components?.requestBodies?.[r]}isReference(t){return t!=null&&typeof t=="object"&&"$ref"in t}extractComponentName(t){let r=t.split("/");return r[r.length-1]??t}getSchemas(){return this.schemas}getParameters(){return this.parameters}getResponses(){return this.responses}getRequestBodies(){return this.requestBodies}getSecuritySchemes(){return this.securitySchemes}getHeaders(){return this.headers}getExamples(){return this.examples}getLinks(){return this.links}getCallbacks(){return this.callbacks}};var IRr=class{matcher;document;constructor(t){this.matcher=new jNn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new BNn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let m=c[p];m&&this.matcher.matches(a,p)&&(u[p]=m,r.collectFromOperation(m))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let m of p.tags)a.add(m)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}};var NNn=require("fs/promises");function q$s(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=Object.keys(t);if(r.length===0||r.length>2)return!1;let n="type"in t&&typeof t.type=="string",i="value"in t;return n&&r.length===1||n&&i&&r.length===2||i&&r.length===1}function EHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(EHe);if(typeof e!="object")return e;let t=e;if(q$s(t))return"value"in t?EHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=EHe(i);o!==void 0&&(r[n]=o)}return r}function W$s(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function TNn(e,t,r,n){let i={},o={},s={};if(e==null||typeof e!="object"||Array.isArray(e))return{filteredBody:e,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s};let a=e,c={},u=new Set(Object.keys(t??{})),l=new Set(Object.keys(r??{})),p=new Set(Object.keys(n??{}));for(let[m,f]of Object.entries(a)){let h=m.toLowerCase().replace(/[-_]/g,""),g=!1,y=!1,A=!1;for(let b of u){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){g=!0,i[b]=f;break}}if(!g)for(let b of l){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){y=!0,o[b]=f;break}}if(!g&&!y)for(let b of p){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){A=!0,s[b]=f;break}}!g&&!y&&!A&&(c[m]=f)}return{filteredBody:c,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s}}var jIA=0,BIA=15e3,DNn=class{config;context;lambdaOrigin;venusOrigin;token;jwtPromise;organizationId;venusAirGappedResult;constructor(t,r,n,i){this.config={enabled:t.enabled,openaiApiKey:t.openaiApiKey,model:t.model??"gpt-4o-mini",maxRetries:t.maxRetries??jIA,requestTimeoutMs:t.requestTimeoutMs??BIA,styleInstructions:t.styleInstructions},this.context=r;let o="https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws";if(!o)throw new Error("DEFAULT_FDR_LAMBDA_DOCS_ORIGIN environment variable is not set. AI example enhancement requires this to be configured.");this.lambdaOrigin=o,this.venusOrigin="https://venus.buildwithfern.com",this.token=n,this.organizationId=i}async isVenusAirGapped(){if(this.venusAirGappedResult!==void 0)return this.venusAirGappedResult;this.context.logger.debug(`Checking Venus connectivity at ${this.venusOrigin}/health`);try{return await fetch(`${this.venusOrigin}/health`,{method:"GET",signal:AbortSignal.timeout(5e3)}),this.venusAirGappedResult=!1,this.context.logger.debug("Venus connectivity check succeeded"),!1}catch(t){let r=t instanceof Error?t.message:String(t);return bDr(r)?(this.venusAirGappedResult=!0,this.context.logger.debug(`Venus connectivity check failed - air-gapped mode: ${r}`),!0):(this.venusAirGappedResult=!1,!1)}}async getJwt(){return this.jwtPromise==null&&(this.jwtPromise=this.fetchJwtFromVenus()),this.jwtPromise}async fetchJwtFromVenus(){this.context.logger.debug("Fetching JWT from Venus for AI example enhancement"),this.context.logger.debug(`Token type: ${this.token.type}`),this.context.logger.debug(`Token value (first 10 chars): ${this.token.value.substring(0,10)}...`),this.context.logger.debug(`Token value starts with 'fern_': ${this.token.value.startsWith("fern_")}`),this.context.logger.debug(`Venus origin: ${this.venusOrigin}`),this.context.logger.debug(`Organization ID: ${this.organizationId}`);let t=await fetch(`${this.venusOrigin}/auth/jwt`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token.value}`},body:JSON.stringify({organizationId:this.organizationId}),signal:AbortSignal.timeout(1e4)});if(!t.ok){let n=await t.text();throw new Error(`Failed to fetch JWT from Venus: ${t.status} ${n||t.statusText}`)}let r=await t.json();return this.context.logger.debug(`Successfully obtained JWT from Venus (expires at ${r.expiresAt})`),r.token}async enhanceExample(t){if(!this.config.enabled)return{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};if(await this.isVenusAirGapped())return this.context.logger.debug("Skipping AI example enhancement - Venus is not reachable"),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};let n;try{n=await this.getJwt()}catch(s){return this.context.logger.warn(`Failed to obtain JWT from Venus: ${s}. AI example enhancement will be skipped.`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}let i,o=this.config.maxRetries+1;for(let s=1;s<=o;s++)try{this.context.logger.debug(`Enhancing example for ${t.method} ${t.endpointPath} via lambda (attempt ${s}/${o})`);let a={method:t.method,endpointPath:t.endpointPath,organizationId:t.organizationId,operationSummary:t.operationSummary,operationDescription:t.operationDescription,originalRequestExample:t.originalRequestExample,originalResponseExample:t.originalResponseExample,openApiSpec:t.openApiSpec,exampleStyleInstructions:t.exampleStyleInstructions??this.config.styleInstructions};this.context.logger.debug(`Sending to enhanceExamples: ${JSON.stringify({...a,openApiSpec:t.openApiSpec?`[OpenAPI spec present: ${t.openApiSpec.length} chars]`:"[No OpenAPI spec]"},null,2)}`);let c=await fetch(`${this.lambdaOrigin}/v2/registry/ai/enhance-example`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify(a),signal:AbortSignal.timeout(this.config.requestTimeoutMs)});if(!c.ok){let l=await c.text();throw new Error(`Lambda returned ${c.status}: ${l||c.statusText}`)}let u=await c.json();return{enhancedRequestExample:u.enhancedRequestExample??t.originalRequestExample,enhancedResponseExample:u.enhancedResponseExample??t.originalResponseExample}}catch(a){if(i=a,this.context.logger.warn(`Attempt ${s} failed to enhance example: ${a}`),s<o){let c=Math.min(1e3*Math.pow(2,s-1),1e4);await new Promise(u=>setTimeout(u,c))}}return this.context.logger.error(`Failed to enhance example after ${o} attempts: ${i?.message}`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}};var $3t=class e{static instance;currentApiId;queue=[];progress=new Map;constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}create(t,r,n){let i=`${t}-${Date.now()}-${Math.random()}`;return this.progress.set(i,{apiName:t,completed:0,total:r,endpointsSample:n}),this.queue.push(i),this.currentApiId||(this.currentApiId=i,this.updateSpinnerStatus()),i}update(t,r){let n=this.progress.get(t);n&&(n.completed=r,t===this.currentApiId&&this.updateSpinnerStatus())}finish(t){this.progress.delete(t);let r=this.queue.indexOf(t);r!==-1&&this.queue.splice(r,1),t===this.currentApiId&&(this.queue.length>0?(this.currentApiId=this.queue[0],this.updateSpinnerStatus()):(this.currentApiId=void 0,delete process.env.FERN_SPINNER_STATUS))}updateSpinnerStatus(){if(!this.currentApiId){delete process.env.FERN_SPINNER_STATUS;return}let t=this.progress.get(this.currentApiId);if(t){let r=`auto-generating examples for endpoints - ${t.apiName}`;t.endpointsSample&&(r+=` (${t.endpointsSample})`),r+=` - ${t.completed}/${t.total}`,process.env.FERN_SPINNER_STATUS=r}}};Ir();var RNn=require("fs/promises");async function TIA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,RNn.readFile)(r,"utf-8"),o=Bn.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object"){for(let[u,l]of Object.entries(c))if(l&&typeof l=="object"&&"x-fern-examples"in l){let p=l["x-fern-examples"];if(Array.isArray(p)){for(let m of p)if(typeof m=="object"&&m!==null){let f=m;n.push({endpointPath:a,method:u.toUpperCase(),pathParameters:f["path-parameters"],queryParameters:f["query-parameters"],headers:f.headers,request:f.request,response:f.response})}}}}}t.logger.debug(`Parsed ${n.length} AI examples from ai_examples_override.yml`)}catch(i){t.logger.debug(`No existing ai_examples_override.yml found or error reading it: ${i}`)}return n}async function G$s({sourceFilePath:e,context:t}){let r=await TIA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,RNn.readFile)(e,"utf-8");try{n=JSON.parse(u)}catch{n=Bn.load(u)}}catch(u){return t.logger.warn(`Failed to read OpenAPI spec file: ${u}`),{validExamples:r,invalidExamples:[],totalExamples:r.length,validCount:r.length,invalidCount:0}}let i=new mY({logger:t.logger}),o=new PVe({namespace:void 0,generationLanguage:"typescript",logger:t.logger,smartCasing:!1,spec:n,exampleGenerationArgs:{disabled:!1},errorCollector:i,enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,settings:Zue()}),s=new HOt({context:o}),{validExamples:a,invalidExamples:c}=s.validateAiExamples({aiExamples:r,spec:n});if(c.length>0){t.logger.info(`Found ${c.length} stale AI examples that need to be regenerated out of ${r.length} total`);for(let{example:u,validationResult:l}of c)t.logger.debug(`Stale AI example: ${u.method} ${u.endpointPath} - ${l.errors.map(p=>p.message).join(", ")}`)}return{validExamples:a,invalidExamples:c,totalExamples:r.length,validCount:a.length,invalidCount:c.length}}async function okl({sourceFilePath:e,context:t}){let r=await G$s({sourceFilePath:e,context:t});if(r.invalidCount===0)return t.logger.debug("No invalid AI examples to remove"),{removedCount:0,remainingCount:r.totalExamples};let n=vr.of(`${ji(e)}/ai_examples_override.yml`);try{let i=await(0,RNn.readFile)(n,"utf-8"),o=Bn.load(i);if(!o||!o.paths)return{removedCount:0,remainingCount:r.totalExamples};let s=new Set(r.invalidExamples.map(({example:u})=>`${u.method.toLowerCase()}:${u.endpointPath}`));for(let[u,l]of Object.entries(o.paths))if(l&&typeof l=="object"){for(let p of Object.keys(l)){let m=`${p.toLowerCase()}:${u}`;s.has(m)&&delete l[p]}Object.keys(l).length===0&&delete o.paths[u]}let{writeFile:a}=await import("fs/promises"),c=Bn.dump(o,{indent:2,lineWidth:-1,noRefs:!0});return await a(n,c,"utf-8"),t.logger.info(`Removed ${r.invalidCount} invalid AI examples from ai_examples_override.yml`),{removedCount:r.invalidCount,remainingCount:r.validCount}}catch(i){return t.logger.warn(`Failed to remove invalid AI examples: ${i}`),{removedCount:0,remainingCount:r.totalExamples}}}Ir();var CRr=require("fs/promises");async function H$s(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,CRr.readFile)(r,"utf-8"),o=Bn.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object")for(let u of Object.keys(c)){let l=`${u.toLowerCase()}:${a}`;n.add(l)}}t.logger.debug(`Loaded ${n.size} covered endpoints from ai_examples_override.yml`)}catch{t.logger.debug("No existing ai_examples_override.yml found or error reading it")}return n}async function FNn({enhancedExamples:e,sourceFilePath:t,context:r}){if(e.length===0){r.logger.debug("No enhanced examples to write");return}let n=new Map;for(let s of e){let a=n.get(s.endpoint)||[];a.push(s),n.set(s.endpoint,a)}let i={paths:{}};for(let[s,a]of n.entries()){let c=new Map;for(let u of a){let l=c.get(u.method.toLowerCase())||[];l.push(u),c.set(u.method.toLowerCase(),l)}i.paths[s]||(i.paths[s]={});for(let[u,l]of c.entries()){let p=l.map((f,h)=>{let g={},y={...f.pathParameters??{}},A={...f.queryParameters??{}},b={...f.headers??{}},v={...b};if(f.headerParameterNames)for(let F of f.headerParameterNames)F in v||(v[F]="");let _={};if(f.queryParameterNames)for(let F of f.queryParameterNames)_[F]=A[F]??"";let O={};if(f.pathParameterNames)for(let F of f.pathParameterNames)O[F]=y[F]??"";let E=f.requestBody;E!=null&&typeof E=="object"&&!Array.isArray(E)&&"body"in E&&(E=E.body);let P=EHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=TNn(P,O,_,v);x=F;for(let[re,ce]of Object.entries(q))ce!=null&&ce!==""&&(y[re]=ce);for(let[re,ce]of Object.entries(W))ce!=null&&ce!==""&&(A[re]=ce);for(let[re,ce]of Object.entries($))ce!=null&&ce!==""&&(b[re]=ce)}Object.keys(y).length>0&&(g["path-parameters"]=y),Object.keys(A).length>0&&(g["query-parameters"]=A),Object.keys(b).length>0&&(g.headers=b),x!==void 0&&!W$s(x)&&(g.request=x);let I=EHe(f.responseBody);return I!==void 0&&!W$s(I)&&(g.response={body:I}),g}),m=i.paths[s];m&&(m[u]={"x-fern-examples":p})}}let o=vr.of(`${ji(t)}/ai_examples_override.yml`);try{let s={};try{let u=await(0,CRr.readFile)(o,"utf-8"),l=Bn.load(u);l&&typeof l=="object"&&(s=l)}catch{r.logger.debug("No existing ai_examples_override.yml found, creating new file")}let a={paths:{}};if(s.paths){for(let[u,l]of Object.entries(s.paths))if(l&&typeof l=="object"){a.paths[u]={};for(let[p,m]of Object.entries(l))m&&typeof m=="object"&&"x-fern-examples"in m&&(a.paths[u][p]={"x-fern-examples":m["x-fern-examples"]||[]})}}for(let[u,l]of Object.entries(i.paths)){a.paths[u]||(a.paths[u]={});for(let[p,m]of Object.entries(l))a.paths[u][p]?r.logger.debug(`Skipping ${p.toUpperCase()} ${u} - examples already exist in override file`):(a.paths[u][p]=m,r.logger.debug(`Adding new examples for ${p.toUpperCase()} ${u}`))}let c=Bn.dump(a,{indent:2,lineWidth:-1,noRefs:!0});await(0,CRr.writeFile)(o,c,"utf-8"),r.logger.debug(`AI enhanced examples written to: ${o}`)}catch(s){throw r.logger.warn(`Failed to write AI examples override file: ${s}`),s}}var $$s=class{failureCount=0;failureThreshold=30;isOpen=!1;recordFailure(){this.failureCount++,this.failureCount>=this.failureThreshold&&(this.isOpen=!0)}recordSuccess(){this.failureCount=0,this.isOpen=!1}shouldSkip(){return this.isOpen}getFailureCount(){return this.failureCount}getThreshold(){return this.failureThreshold}},K$s=class{progressCallback;maxConcurrency;activeRequests=new Map;pendingQueue=[];results=new Map;stats={pending:0,active:0,completed:0,failed:0,totalStarted:0};completedSinceLastCallback=[];constructor(t,r){this.progressCallback=r,this.maxConcurrency=t}async processAll(t){for(this.pendingQueue=[...t],this.stats.pending=this.pendingQueue.length,this.stats.totalStarted=this.pendingQueue.length;this.pendingQueue.length>0&&this.activeRequests.size<this.maxConcurrency;)this.startNext();for(;this.activeRequests.size>0;){let r=Array.from(this.activeRequests.entries()).map(([o,s])=>s.promise.then(a=>({id:o,result:a}))),{id:n,result:i}=await Promise.race(r);await this.handleCompletion(n,i),this.pendingQueue.length>0&&this.startNext()}return this.results}startNext(){if(this.pendingQueue.length===0||this.activeRequests.size>=this.maxConcurrency)return;let t=this.pendingQueue.shift();if(!t)return;let r=`req-${Date.now()}-${Math.random()}`,n=t(),i={id:r,promise:n,startTime:Date.now()};this.activeRequests.set(r,i),this.stats.pending=this.pendingQueue.length,this.stats.active=this.activeRequests.size}async handleCompletion(t,r){this.activeRequests.get(t)&&this.activeRequests.delete(t),r.success?(this.stats.completed++,this.results.set(r.endpointKey,{enhancedReq:r.enhancedReq,enhancedRes:r.enhancedRes,extractedHeaders:r.extractedHeaders,extractedPathParams:r.extractedPathParams,extractedQueryParams:r.extractedQueryParams})):this.stats.failed++,this.stats.active=this.activeRequests.size,this.completedSinceLastCallback.push(r),this.progressCallback&&(this.progressCallback({...this.stats},[...this.completedSinceLastCallback]),this.completedSinceLastCallback=[])}getStats(){return{...this.stats}}};function DIA(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=sMe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function RIA(e,t){let r=e[0];if(r==null)return{openapi:"3.0.0",info:{title:"",version:""},paths:{}};let n={...r};n.paths={...n.paths},n.components&&(n.components={...n.components},n.components.schemas&&(n.components.schemas={...n.components.schemas}));for(let i of e.slice(1)){if(i.paths)for(let[o,s]of Object.entries(i.paths))n.paths[o]==null&&(n.paths[o]=s);if(i.components?.schemas){n.components||(n.components={}),n.components.schemas||(n.components.schemas={});for(let[o,s]of Object.entries(i.components.schemas))n.components.schemas[o]==null&&(n.components.schemas[o]=s)}}return t.logger.debug(`Combined spec has ${Object.keys(n.paths??{}).length} paths`),n}function ckl(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}function J$s(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=ckl(t,o);if(!s)return[];let a=i.paths[s];if(!a)return[];let c=a[r.toLowerCase()];if(!c)return[];let u=[],l=[...a.parameters??[],...c.parameters??[]];for(let p of l)"$ref"in p||p.in===n&&u.push(p.name);return u}catch{return[]}}function FIA(e,t,r){return J$s(e,t,r,"header")}function NIA(e,t,r){return J$s(e,t,r,"query")}function kIA(e,t,r){return J$s(e,t,r,"path")}async function zIA(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=sMe(e)}if(!n.openapi||!n.paths){r.logger.debug("Invalid OpenAPI spec structure, skipping pruning");return}let i=Object.keys(n.paths);r.logger.debug(`OpenAPI spec contains ${i.length} paths`);let o=[];for(let p of t){let m=ckl(p.path,i);m?(o.push({path:m,method:p.method.toLowerCase()}),r.logger.debug(`Mapped ${p.path} to OpenAPI path: ${m}`)):r.logger.debug(`No matching OpenAPI path found for ${p.path}`)}if(o.length===0){r.logger.debug("No endpoints matched in OpenAPI spec");return}let a=new IRr({document:n,endpoints:o}).prune();r.logger.debug(`Pruned OpenAPI spec for batch: ${a.statistics.originalEndpoints} \u2192 ${a.statistics.prunedEndpoints} endpoints, ${a.statistics.originalSchemas} \u2192 ${a.statistics.prunedSchemas} schemas`);let c=JSON.stringify(a.document,null,2);if(c.length>15e5){r.logger.debug(`Pruned OpenAPI spec still too large (${c.length} characters), skipping spec context for AI enhancement`);return}r.logger.debug(`Pruned spec size: ${c.length} characters (within limit)`);let u=o.map(p=>`${(p.method||"unknown").toUpperCase()}_${p.path.replace(/\//g,"_").replace(/[{}]/g,"")}`),l=`batch_${o.length}endpoints_${u.join("_").substring(0,100)}_pruned_spec.yaml`;return c}catch(n){return r.logger.debug(`Failed to prune OpenAPI spec: ${n}. Using original spec.`),e}}async function J3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await QIA(e,t,r,n,i,o,s)}catch(a){return r.logger.debug(`AI example enhancement failed with error: ${a}. Continuing with original API definition to prevent CLI crash.`),r.logger.debug(`Full AI enhancement error stack: ${a instanceof Error?a.stack:String(a)}`),e}}async function QIA(e,t,r,n,i,o,s){let a=new DNn(t,r,n,i),c=new $$s,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let A=[];for(let b of o)try{let v=await(0,NNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null){let O=Array.isArray(b.absoluteFilePathToOverrides)?b.absoluteFilePathToOverrides:[b.absoluteFilePathToOverrides];try{let E;try{E=JSON.parse(v)}catch{E=sMe(v,{json:!0})}for(let P of O){let x=await(0,NNn.readFile)(P,"utf-8"),I;try{I=JSON.parse(x)}catch{I=sMe(x,{json:!0})}E=xwr({data:E,overrides:I})}v=w9e(E),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(E){r.logger.debug(`Failed to apply overrides to spec: ${E}. Using raw spec.`)}}if(!DIA(v)){r.logger.debug(`Non-OpenAPI spec detected at ${b.absoluteFilePath}, skipping`);continue}let _;try{_=JSON.parse(v)}catch{_=sMe(v)}A.push(_),r.logger.debug(`Loaded OpenAPI spec from ${b.absoluteFilePath} (${v.length} characters)`)}catch(v){r.logger.debug(`Failed to read OpenAPI spec file ${b.absoluteFilePath}: ${v}`)}if(A.length>0){let b=RIA(A,r);u=JSON.stringify(b,null,2),r.logger.debug(`Combined ${A.length} OpenAPI spec(s) for AI enhancement`)}for(let b of o)try{let v=await H$s(b.absoluteFilePath,r),_=await G$s({sourceFilePath:b.absoluteFilePath,context:r});if(_.invalidCount>0){for(let{example:E}of _.invalidExamples){let P=`${E.method.toLowerCase()}:${E.endpointPath}`;l.add(P)}let O=await okl({sourceFilePath:b.absoluteFilePath,context:r});r.logger.info(`Removed ${O.removedCount} stale AI examples from ${b.absoluteFilePath}, ${l.size} endpoints will be regenerated`)}else r.logger.debug("No stale AI examples found to remove")}catch(v){r.logger.debug(`Failed to clean up stale AI examples: ${v}`)}}let m=new Set;if(o!=null&&o.length>0){for(let A of o){let b=await H$s(A.absoluteFilePath,r);for(let v of b)l.has(v)||m.add(v)}l.size>0&&r.logger.debug(`Coverage adjusted: ${m.size} preserved, ${l.size} marked for regeneration`)}let f={count:0,total:0},h=[],g=await MIA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await FNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ukl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function MIA(e,t,r,n,i,o,s,a,c,u,l,p){let m=[];for(let[O,E]of Object.entries(e.subpackages)){let P=skl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=skl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ukl(e);i.total+=m.length,r.logger.debug(`AI Examples Enhancement: ${m.length} endpoints need enhancement out of ${h} total endpoints (${s.size} already covered)`),r.logger.debug(`Collected ${m.length} work items across all packages`);let g=$3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await VIA(m,t,r,n,i,o,c,u,y,A,p);g.finish(y);let v={};for(let[O,E]of Object.entries(e.subpackages)){let P=akl(E,b);v[O]=P}let _=akl(e.rootPackage,b);return r.logger.debug(`AI Examples Enhancement Complete: ${A?.count||0}/${m.length} endpoints enhanced successfully (${h} total endpoints in API)`),{...e,subpackages:v,rootPackage:_}}function ukl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function skl(e,t,r,n){let i=[],o=new Set,s={totalEndpoints:e.endpoints.length,alreadyCovered:0,notAutogenerated:0,noExistingExamples:0,alreadyProcessed:0,noExamples:0,processed:0};for(let a of e.endpoints){let c=a;if(!qIA(c))for(let l of c.examples){let p=`${c.method.toLowerCase()}:${l.path}`;if(o.has(p)){s.alreadyProcessed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already processed in this run`);continue}let m=r?.has(p);if(!m&&t.has(p)){s.alreadyCovered++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already covered (has AI-enhanced examples)`);continue}if(!m&&!LIA(l,n,p)){s.notAutogenerated++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: has human-written examples (not auto-generated)`);continue}let f=K3t(l.requestBodyV3),h=K3t(l.responseBodyV3);if(!m&&!f&&!h){s.noExistingExamples++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: no existing request/response examples to enhance`);continue}i.push({endpoint:c,example:l,endpointKey:p}),s.processed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} selected for AI enhancement`),o.add(p);break}}return n&&(n.logger.debug(`Endpoint Filtering Results: ${s.processed}/${s.totalEndpoints} endpoints selected for AI enhancement`),n.logger.debug(`Filtering breakdown - Already covered: ${s.alreadyCovered}, Not auto-generated: ${s.notAutogenerated}, No existing examples: ${s.noExistingExamples}, No examples at all: ${s.noExamples}, Already processed: ${s.alreadyProcessed}, Selected: ${s.processed}`)),i}async function VIA(e,t,r,n,i,o,s,a,c,u,l){let p=parseInt(process.env.FERN_AI_MAX_CONCURRENT||"25",10);if(r.logger.debug(`Processing ${e.length} endpoints with max ${p} concurrent Lambda calls using rolling window queue`),l?.shouldSkip())return r.logger.debug(`Circuit breaker is open after ${l.getFailureCount()} failures (threshold: ${l.getThreshold()}). Skipping AI enhancement for remaining endpoints.`),new Map;let m=0,f=0,h=Math.max(10,Math.floor(e.length/20)),g=(_,O)=>{if(c&&u&&$3t.getInstance().update(c,_.completed),l?.shouldSkip()){r.logger.debug(`Circuit breaker opened during processing. Processed ${_.completed} endpoints.`);return}a&&o.length>0&&_.completed-f>=h&&(FNn({enhancedExamples:o,sourceFilePath:a,context:r}).then(()=>{r.logger.debug(`Saved ${o.length} examples after ${_.completed} completions`)}).catch(P=>{r.logger.debug(`Failed to save incremental results: ${P}`)}),f=_.completed)},y=e.map((_,O)=>async()=>{try{if(l?.shouldSkip())return{endpointKey:_.endpointKey,success:!1,error:"Circuit breaker is open"};let E=await UIA(_,t,r,n,i,o,s,a,c,u,O+1,l);return E?{endpointKey:E.endpointKey,enhancedReq:E.enhancedReq,enhancedRes:E.enhancedRes,extractedHeaders:E.extractedHeaders,extractedPathParams:E.extractedPathParams,extractedQueryParams:E.extractedQueryParams,success:!0}:{endpointKey:_.endpointKey,success:!1,error:"processEndpoint returned null"}}catch(E){return r.logger.debug(`Work item factory error for ${_.endpointKey}: ${E}`),{endpointKey:_.endpointKey,success:!1,error:String(E)}}}),A=new K$s(p,g),b=await A.processAll(y);if(a&&o.length>0)try{await FNn({enhancedExamples:o,sourceFilePath:a,context:r}),r.logger.debug(`Final save: ${o.length} examples saved`)}catch(_){r.logger.debug(`Failed to save final results: ${_}`)}let v=A.getStats();return r.logger.debug(`Completed processing: ${v.completed} succeeded, ${v.failed} failed`),b}async function UIA(e,t,r,n,i,o,s,a,c,u,l,p){let m=e.endpointKey;r.logger.debug(`Processing endpoint ${l}: ${e.endpoint.method} ${e.example.path}`);let f;s&&(f=await zIA(s,[{path:e.example.path,method:e.endpoint.method}],r));let h={method:e.endpoint.method,endpointPath:e.example.path,organizationId:n,operationSummary:e.endpoint.summary,operationDescription:e.endpoint.description,originalRequestExample:K3t(e.example.requestBodyV3),originalResponseExample:K3t(e.example.responseBodyV3),pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,openApiSpec:f};try{let g=await t.enhanceExample(h);p?.recordSuccess();let y=g.enhancedRequestExample!==h.originalRequestExample,A=g.enhancedResponseExample!==h.originalResponseExample;if(y||A){let b=f?FIA(f,e.example.path,e.endpoint.method):[],v=f?NIA(f,e.example.path,e.endpoint.method):[],_=f?kIA(f,e.example.path,e.endpoint.method):[],O={...e.example.headers??{}};if(b.length>0)for(let ee of b)ee in O||(O[ee]="");let E={};for(let ee of v)E[ee]=e.example.queryParameters?.[ee]??"";let P={};for(let ee of _)P[ee]=e.example.pathParameters?.[ee]??"";let x=EHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=TNn(x,P,E,O),$={...e.example.headers??{}};for(let[ee,We]of Object.entries(W))We!=null&&We!==""&&($[ee]=We);let re={...e.example.pathParameters??{}};for(let[ee,We]of Object.entries(F))We!=null&&We!==""&&(re[ee]=We);let ce={...e.example.queryParameters??{}};for(let[ee,We]of Object.entries(q))We!=null&&We!==""&&(ce[ee]=We);let G={endpoint:e.example.path,method:e.endpoint.method,pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,requestBody:y?g.enhancedRequestExample:void 0,responseBody:A?g.enhancedResponseExample:void 0,headerParameterNames:b.length>0?b:void 0,queryParameterNames:v.length>0?v:void 0,pathParameterNames:_.length>0?_:void 0};return o.push(G),i.count++,u&&u.count++,r.logger.debug(`Successfully enhanced ${e.endpoint.method} ${e.example.path}`),c&&u&&$3t.getInstance().update(c,u.count),{endpointKey:m,enhancedReq:I,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys($).length>0?$:void 0,extractedPathParams:Object.keys(re).length>0?re:void 0,extractedQueryParams:Object.keys(ce).length>0?ce:void 0}}return r.logger.debug(`No changes needed for ${e.endpoint.method} ${e.example.path}`),{endpointKey:m,enhancedReq:g.enhancedRequestExample,enhancedRes:g.enhancedResponseExample}}catch(g){p?.recordFailure(),r.logger.debug(`Endpoint ${e.endpoint.method} ${e.example.path} failed: ${g}`)}return r.logger.debug(`Failed to enhance ${e.endpoint.method} ${e.example.path}`),null}function akl(e,t){let r=e.endpoints.map(n=>{let i=n,o=i.examples.map(s=>{let a=`${i.method.toLowerCase()}:${s.path}`,c=t.get(a);if(c){let u={...s};if(c.enhancedReq!==void 0)if(u.requestBody=c.enhancedReq,s.requestBodyV3)if(typeof s.requestBodyV3.value=="object"&&s.requestBodyV3.value!==null&&!Array.isArray(s.requestBodyV3.value)&&Object.values(s.requestBodyV3.value).some(p=>q$s(p))){let p=c.enhancedReq,m=s.requestBodyV3.value,f={};for(let[h,g]of Object.entries(m))h in p?f[h]={...g,value:p[h]}:f[h]=g;u.requestBodyV3={...s.requestBodyV3,value:f}}else u.requestBodyV3={...s.requestBodyV3,value:c.enhancedReq};else u.requestBodyV3={type:"json",value:c.enhancedReq};return c.enhancedRes!==void 0&&(u.responseBody=c.enhancedRes,u.responseBodyV3=s.responseBodyV3?{...s.responseBodyV3,value:c.enhancedRes}:{type:"json",value:c.enhancedRes}),c.extractedHeaders!==void 0&&(u.headers={...s.headers??{},...c.extractedHeaders}),c.extractedPathParams!==void 0&&(u.pathParameters={...s.pathParameters??{},...c.extractedPathParams}),c.extractedQueryParams!==void 0&&(u.queryParameters={...s.queryParameters??{},...c.extractedQueryParams}),u}return s});return{...n,examples:o}});return{...e,endpoints:r}}function LIA(e,t,r){let i=K3t(e.requestBodyV3),o=K3t(e.responseBodyV3),s=kNn(i,t,`${r}:request`),a=kNn(o,t,`${r}:response`),c=s.total+a.total,u=s.autogenerated+a.autogenerated;if(c===0)return!0;let l=u/c,p=l>=.3;return t&&r&&(p?t.logger.debug(`Endpoint ${r} considered auto-generated: ${u}/${c} (${(l*100).toFixed(1)}%) values are generic`):t.logger.debug(`Endpoint ${r} flagged as human-written: only ${u}/${c} (${(l*100).toFixed(1)}%) values are generic (threshold: ${.3*100}%)`)),p}function kNn(e,t,r){if(e==null)return{autogenerated:0,total:0};if(typeof e=="string"){let n=e===Co.STRING||e===Co.BASE64||e===Co.DATE||e===Co.DATE_TIME||e===Co.UUID||e===Co.BIG_INTEGER||Co.SAMPLE_STRINGS.includes(e)||e==="";return!n&&t&&r&&t.logger.debug(`Non-generic string found at ${r}: "${e}"`),{autogenerated:n?1:0,total:1}}if(typeof e=="number"){let n=e===Co.DOUBLE||e===Co.FLOAT||e===Co.INT||e===Co.INT64||e===Co.UINT||e===Co.UINT64||e===0;return!n&&t&&r&&t.logger.debug(`Non-generic number found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(typeof e=="boolean"){let n=e===Co.BOOLEAN;return!n&&t&&r&&t.logger.debug(`Non-generic boolean found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(Array.isArray(e)){if(e.length===0)return{autogenerated:0,total:0};let n=0,i=0;return e.forEach((o,s)=>{let a=kNn(o,t,r?`${r}[${s}]`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}if(typeof e=="object"){let n=0,i=0;return Object.entries(e).forEach(([o,s])=>{let a=kNn(s,t,r?`${r}.${o}`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}return t&&r&&t.logger.debug(`Unknown type at ${r}: ${typeof e} = ${e}`),{autogenerated:0,total:1}}function qIA(e){try{let t=e;if(t.v2Examples?.userSpecifiedExamples&&typeof t.v2Examples.userSpecifiedExamples=="object"){let r=t.v2Examples.userSpecifiedExamples;return Object.keys(r).length>0}if(t.v2Responses?.responses){for(let r of t.v2Responses.responses)if(r.body?.v2Examples?.userSpecifiedExamples&&typeof r.body.v2Examples.userSpecifiedExamples=="object"){let n=r.body.v2Examples.userSpecifiedExamples;if(Object.keys(n).length>0)return!0}}return!1}catch{return!1}}function K3t(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}_w();pr();_w();function lkl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return pkl({scheme:n,playgroundConfig:t,context:r})}}function pkl({scheme:e,playgroundConfig:t,context:r}){switch(e.type){case"basic":return{type:"basicAuth",passwordName:e.password.originalName,usernameName:e.username.originalName,description:e.docs,passwordAlwaysEmpty:e.passwordOmit};case"bearer":return{type:"bearerAuth",tokenName:e.token.originalName,description:e.docs};case"header":return{type:"header",headerWireValue:e.name.wireValue,nameOverride:e.name.name.originalName,prefix:e.prefix,description:e.docs};case"oauth":{let n=e.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(i=>i.name.originalName).join(".")||"$.body.access_token";return t?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:vn.EndpointId(e.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:vn.JqString(n),headerName:e.configuration.tokenHeader,tokenPrefix:e.configuration.tokenPrefix,description:e.docs}}}:{type:"bearerAuth",tokenName:"token",description:e.docs}}case"inferred":{e.tokenEndpoint.authenticatedRequestHeaders.length>1&&r.logger.warn("Inferred auth scheme has multiple authenticated request headers. Only the `Authentication` or first header will be pushed to FDR.");let n=e.tokenEndpoint.authenticatedRequestHeaders.find(o=>o.headerName.toLowerCase()==="authorization");if(n)return n.responseProperty.propertyPath!=null&&n.responseProperty.propertyPath.length>0&&r.logger.warn("Inferred Authentication header has a property path. The property wirevalue will be pushed to FDR without property path."),{type:"bearerAuth",tokenName:n.responseProperty.property.name.wireValue,description:e.docs};let i=e.tokenEndpoint.authenticatedRequestHeaders[0];return i?{type:"header",headerWireValue:i.headerName,prefix:i.valuePrefix,nameOverride:void 0,description:e.docs}:{type:"bearerAuth",tokenName:"token",description:e.docs}}default:Ue(e)}}function fkl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=pkl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();_w();Ni();_w();function dkl(e){return e._visit({alias:t=>({type:"alias",value:Ig(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?t.default.name.wireValue:void 0,values:t.values.map(r=>({description:r.docs??void 0,value:r.name.wireValue,availability:RP(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>vn.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:vn.PropertyKey(r.name.wireValue),valueType:Ig(r.valueType),availability:RP(r.availability),propertyAccess:r.propertyAccess})),extraProperties:JIA(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:RP(n.availability),description:n.docs,propertyAccess:n.propertyAccess}));return{type:"discriminatedUnion",discriminant:t.discriminant.wireValue,variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:n.discriminantValue.wireValue,displayName:n.displayName,availability:n.availability!=null?RP(n.availability):void 0,additionalProperties:Er.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[vn.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:vn.PropertyKey(i.name.wireValue),valueType:Ig(i.type),description:void 0,availability:void 0,propertyAccess:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+n.shape.propertiesType)}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?r.type.name.originalName:void 0,description:r.docs??void 0,type:Ig(r.type),availability:void 0,displayName:r.type.type==="named"?r.type.displayName:void 0}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function Ig(e){return e._visit({container:t=>Er.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:Ig(r),minItems:void 0,maxItems:void 0}),map:({keyType:r,valueType:n})=>({type:"map",keyType:Ig(r),valueType:Ig(n),minProperties:void 0,maxProperties:void 0}),optional:r=>({type:"optional",itemType:Ig(r),defaultValue:void 0}),nullable:r=>({type:"nullable",itemType:Ig(r)}),set:r=>({type:"set",itemType:Ig(r),minItems:void 0,maxItems:void 0}),literal:r=>Er.types.Literal._visit(r,{boolean:n=>({type:"literal",value:{type:"booleanLiteral",value:n}}),string:n=>({type:"literal",value:{type:"stringLiteral",value:n}}),_other:()=>{throw new Error("Unknown literal type: "+r.type)}}),_other:()=>{throw new Error("Unknown container reference: "+t.type)}}),named:t=>({type:"id",value:vn.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:Er.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>GIA(t.v2),float:()=>mkl(t.v2),double:()=>mkl(t.v2),string:()=>WIA(t.v2),long:()=>HIA(t.v2),boolean:()=>({type:"boolean",default:t.v2?.type==="boolean"?t.v2.default:void 0}),dateTime:()=>({type:"datetime",default:void 0}),date:()=>({type:"date",default:void 0}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",mimeType:void 0,default:void 0}),bigInteger:()=>({type:"bigInteger",default:t.v2?.type==="bigInteger"?t.v2.default:void 0}),uint:()=>$IA(t.v2),uint64:()=>KIA(t.v2),dateTimeRfc2822:()=>({type:"datetime",default:void 0}),_other:()=>{throw new Error("Unknown primitive: "+t.v1)}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new Error("Unknown Type reference: "+e.type)}})}function WIA(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",format:t?.format,regex:t?.pattern,minLength:t?.minLength,maxLength:t?.maxLength,default:e!=null&&e.type==="string"?e.default:void 0}}function GIA(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="integer"?e.default:void 0}}function mkl(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="double"?e.default:void 0}}function HIA(e){let t=e!=null&&e.type==="long"?e.validation:void 0;return{type:"long",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="long"?e.default:void 0}}function $IA(e){let t=e!=null&&e.type==="uint"?e.validation:void 0;return{type:"uint",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint"?e.default:void 0}}function KIA(e){let t=e!=null&&e.type==="uint64"?e.validation:void 0;return{type:"uint64",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint64"?e.default:void 0}}function JIA(e){return typeof e=="boolean"?e?Tn.unknown():void 0:typeof e=="string"?{type:"id",value:vn.TypeId(e),default:void 0}:Ig(e)}function Z$s(e,t,r,n){let i=e.service!=null?t.services[e.service]:void 0,o=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,s=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:i!=null?XIA(i,t):[],webhooks:o!=null?YIA(o):[],websockets:s!=null?[ZIA(s,t)]:[],types:[...e.types.map(c=>vn.TypeId(c)),...Object.keys(n??{}).map(c=>vn.TypeId(c))],subpackages:e.subpackages.map(c=>vn.api.v1.SubpackageId(c)),pointsTo:e.navigationConfig!=null?vn.api.v1.SubpackageId(e.navigationConfig.pointsTo):void 0,graphqlOperations:r?Object.values(r):[]}}function YIA(e){return e.map(t=>{let r=[];if(t.v2Examples!=null){for(let[n,i]of Object.entries(t.v2Examples.userSpecifiedExamples))r.push({name:i.name??n,payload:i.payload});for(let[n,i]of Object.entries(t.v2Examples.autogeneratedExamples))r.push({name:i.name??n,payload:i.payload})}else r.push(...t.examples?.map(n=>({name:n.name?.originalName,payload:n.payload.jsonExample}))??[]);return{description:t.docs??void 0,availability:RP(t.availability),id:vn.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??Obt(t.name.originalName),headers:t.headers.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:RP(n.availability)})),payload:cCA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(X$s).filter(ru)}})}function XIA(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],o=[];if(n.v2Examples!=null){let a,c=n.v2Examples.userSpecifiedExamples,u=n.v2Examples.autogeneratedExamples,l=Object.values(c).map(m=>m.response?.statusCode).filter((m,f,h)=>h.indexOf(m)!==f).length>0;for(let[m,f]of Object.entries(c))a=gkl({shouldUseExampleName:f.displayName!=null||l,exampleName:f.displayName??m,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a);let p=Object.values(u).map(m=>m.response?.statusCode).filter((m,f,h)=>h.indexOf(m)!==f).length>0;for(let[m,f]of Object.entries(u))a=gkl({shouldUseExampleName:p,exampleName:f.displayName??m,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a)}else if(n.userSpecifiedExamples.length>0)o.push(...n.userSpecifiedExamples.map(a=>Y$s({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(ru));else if(i!=null){let a=Y$s({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=fqt({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=Y$s({autogeneratedExample:a,irEndpoint:n,ir:t});if(c!=null){let u={...c,responseBodyV3:{type:"filename",value:"<bytes>"}};o.push(u)}}}let s={slug:void 0,availability:RP(n.availability??e.availability),auth:n.auth,authV2:eCA(n.security),multiAuth:tCA(n.security,t.auth),description:n.docs??void 0,method:oCA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?rCA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??Obt(n.name.originalName),path:n.basePath!=null?{pathParameters:n.pathParameters.map(a=>({description:a.docs??void 0,key:vn.PropertyKey(a.name.originalName),type:Ig(a.valueType),availability:void 0,explode:a.explode})),parts:[...Y3t(n.basePath),...Y3t(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(a=>({description:a.docs??void 0,key:vn.PropertyKey(a.name.originalName),type:Ig(a.valueType),availability:void 0,explode:a.explode})),parts:[...t.basePath!=null?Y3t(t.basePath):[],...Y3t(e.basePath),...Y3t(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability),explode:a.explode})),headers:[...e.headers,...n.headers].map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability)})),request:n.requestBody!=null?hkl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(hkl).filter(ru)},response:n.response!=null?X$s(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map(X$s).filter(ru)},errors:void 0,errorsV2:sCA(n.errors,t),examples:o,protocol:n.source?._visit({openapi:()=>({type:"rest"}),openrpc:()=>({type:"openrpc",methodName:n.id}),proto:a=>({type:"grpc",methodName:n.id,methodType:a.methodType}),_other:()=>{}}),includeInApiExplorer:n.apiPlayground};r.push(s)}return r}function ZIA(e,t){let r=[];if(e.v2Examples!=null&&(Object.keys(e.v2Examples.userSpecifiedExamples).length>0||Object.keys(e.v2Examples.autogeneratedExamples).length>0)){let n=Object.entries(e.v2Examples.userSpecifiedExamples),i=Object.entries(e.v2Examples.autogeneratedExamples),o=n.length>0?n[0]:i[0];if(o!=null){let[s,a]=o;r.push({name:s,description:"",path:a.baseUrl??"",pathParameters:a.pathParameters??{},queryParameters:a.queryParameters??{},headers:a.headers??{},messages:a.messages?.map(c=>({type:vn.api.v1.WebSocketMessageId(c.type),body:c.body}))??[]})}}else r=e.examples.map(n=>({name:n.name?.originalName,description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((i,o)=>(i[vn.PropertyKey(o.name.originalName)]=o.value.jsonExample,i),{}),queryParameters:n.queryParameters.reduce((i,o)=>(i[o.name.wireValue]=o.value.jsonExample,i),{}),headers:n.headers.reduce((i,o)=>(i[o.name.wireValue]=o.value.jsonExample,i),{}),messages:n.messages.map(i=>({type:vn.api.v1.WebSocketMessageId(i.type),body:i.body.jsonExample}))}));return{auth:e.auth,availability:RP(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?nCA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??Obt(e.name.originalName),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:vn.PropertyKey(n.name.originalName),type:Ig(n.valueType),availability:void 0,explode:n.explode})),parts:Y3t(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:Ig(n.valueType),description:n.docs,availability:RP(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:RP(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:vn.api.v1.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:lCA(n.body),description:n.docs,availability:RP(n.availability)})),examples:r}}function eCA(e){if(e==null)return;if(e.length===0)return[];let t=new Set(e.flatMap(r=>Object.keys(r)));return Array.from(t).map(r=>vn.AuthSchemeId(r))}function tCA(e,t){return e==null?t!=null&&t.requirement==="ANY"&&t.schemes.length>0?t.schemes.map(r=>({schemes:[vn.AuthSchemeId(r.key)]})):void 0:e.length===0?[]:e.map(r=>({schemes:Object.keys(r).map(n=>vn.AuthSchemeId(n))}))}function RP(e){if(e!=null)switch(e.status){case"DEPRECATED":return vn.Availability.Deprecated;case"PRE_RELEASE":return vn.Availability.Beta;case"GENERAL_AVAILABILITY":return vn.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return vn.Availability.Beta;default:Ue(e.status)}}function rCA({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl,i=t.v2BaseUrls;switch(r.type){case"singleBaseUrl":return r.environments.map(o=>({id:vn.EnvironmentId(o.id),baseUrl:o.url,audiences:o.audiences}));case"multipleBaseUrls":if(i!=null)return i.flatMap(s=>r.environments.map(a=>{let c=a.urls[s];if(c==null)throw new Error(`Encountered undefined server name "${s}" at endpoint ${t.method.toUpperCase()} ${t.path}. Expected environment ${a.id} to contain url for ${s}`);return{id:vn.EnvironmentId(s),baseUrl:c,audiences:a.audiences}})).filter((s,a,c)=>a===c.findIndex(u=>u.id===s.id&&u.baseUrl===s.baseUrl));if(n==null)throw new Error(`Expected endpoint ${t.name.originalName} to have base url.`);return r.environments.map(o=>{let s=o.urls[n];if(s==null)throw new Error(`Encountered undefined server name "${n}" at endpoint ${t.method.toUpperCase()} ${t.path.head}. Expected environment ${o.id} to contain url for ${n}`);return{id:vn.EnvironmentId(o.id),baseUrl:s,audiences:o.audiences}});default:Ue(r)}}function nCA({environmentsConfig:e,channel:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:vn.EnvironmentId(i.id),baseUrl:iCA(i.url,"wss"),audiences:i.audiences}));case"multipleBaseUrls":if(n==null)throw new Error(`Expected channel ${t.name.originalName} to have base url.`);return r.environments.map(i=>{let o=i.urls[n];if(o==null)throw new Error(`Encountered undefined server name ${o} at channel ${t.name.originalName} ${t.path.head}. Expected environment ${i.id} to contain url for ${n}`);return{id:vn.EnvironmentId(i.id),baseUrl:o,audiences:i.audiences}});default:Ue(r)}}function iCA(e,t){return e.replace(/^[^:]+/,t)}function oCA(e){return Er.http.HttpMethod._visit(e,{get:()=>vn.HttpMethod.Get,post:()=>vn.HttpMethod.Post,put:()=>vn.HttpMethod.Put,patch:()=>vn.HttpMethod.Patch,delete:()=>vn.HttpMethod.Delete,head:()=>vn.HttpMethod.Head,_other:()=>{throw new Error("Unknown http method: "+e)}})}function Y3t(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:vn.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function hkl(e){let t=Er.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??ib.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>vn.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:RP(n.availability),propertyAccess:n.propertyAccess})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??ib.APPLICATION_JSON,shape:{type:"reference",value:Ig(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:r.name.originalName,description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let o=i._visit({file:s=>({type:"file",key:vn.PropertyKey(s.key.wireValue),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),fileArray:s=>({type:"fileArray",key:vn.PropertyKey(s.key.wireValue),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),_other:()=>{}});if(o!=null)return{type:"file",value:o}},bodyProperty:i=>({type:"bodyProperty",key:vn.PropertyKey(i.name.wireValue),valueType:Ig(i.valueType),contentType:i.contentType,description:i.docs??void 0,availability:RP(i.availability),exploded:i.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},contentType:r.contentType,description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t,description:e.docs}:void 0}function X$s(e){let t=e.docs,r;return e.body!=null&&(r=Er.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:Ig(n.responseBodyType)}),text:()=>{},bytes:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:Ig(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:Ig(n.payload)},terminator:n.terminator}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}})),r!=null?{type:r,statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t}:e.statusCode!=null?{statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t,type:{type:"object",extends:[],properties:[],extraProperties:void 0}}:void 0}function sCA(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:Ig(i.type)},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,name:i.displayName??i.name.name.originalName,availability:void 0,examples:pCA(i,t),headers:i.headers!=null&&i.headers.length>0?i.headers.map(o=>({description:o.docs??void 0,key:o.name.wireValue,type:Ig(o.valueType),availability:RP(o.availability)})):void 0})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let o=[{key:vn.PropertyKey(t.errorDiscriminationStrategy.discriminant.wireValue),valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}},description:i.docs,availability:void 0,propertyAccess:void 0}];i.type!=null&&o.push({key:vn.PropertyKey(t.errorDiscriminationStrategy.contentProperty.wireValue),valueType:Ig(i.type),description:i.docs,availability:void 0,propertyAccess:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:o,extraProperties:void 0},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,availability:void 0,name:i.displayName??i.name.name.originalName,examples:i.examples.map(s=>({name:s.name?.originalName,responseBody:{type:"json",value:s.jsonExample},description:s.docs})),headers:i.headers!=null&&i.headers.length>0?i.headers.map(s=>({description:s.docs??void 0,key:s.name.wireValue,type:Ig(s.valueType),availability:RP(s.availability)})):void 0})}}return r}function gkl({shouldUseExampleName:e,exampleName:t,example:r,irEndpoint:n,irService:i,ir:o}){if(r==null)return;let s=u=>{if(u.valueType.type==="container"&&u.valueType.container.type==="literal")return u.valueType.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}});if(u.valueType.type==="container"&&u.valueType.container.type==="optional"&&u.valueType.container.optional.type==="container"&&u.valueType.container.optional.container.type==="literal")return u.valueType.container.optional.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}})},a={};o.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)}),i.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)}),n.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)});let c=r.response?.body!=null?r.response.body.value:void 0;return{name:e?t:void 0,description:"",path:r.request?.endpoint.path??"",pathParameters:r.request?.pathParameters??{},queryParameters:r.request?.queryParameters??{},headers:(()=>{let l={...r.request?.headers??{}};for(let[p,m]of Object.entries(a))(l[p]===null||l[p]===void 0)&&(l[p]=m);return l})(),requestBody:r.request?.requestBody,requestBodyV3:n.requestBody?._visit({inlinedRequestBody:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,reference:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,fileUpload:u=>{if(r.request==null)return;let l={};if(Lu(r.request.requestBody)){let p=r.request.requestBody;for(let m of u.properties)m._visit({file:f=>{let h=p[f.key.wireValue];if(f.type==="file")l[f.key.wireValue]={type:"filename",value:typeof h=="string"?h:"<file1>"};else if(f.type==="fileArray"){let g=(Array.isArray(h)?h:[h]).filter(y=>typeof y=="string");l[f.key.wireValue]={type:"filenames",value:g}}},bodyProperty:f=>{if(f.style==="exploded"){let h=p[f.name.wireValue];l[f.name.wireValue]={type:"exploded",value:Array.isArray(h)?h:[h]}}else l[f.name.wireValue]={type:"json",value:p[f.name.wireValue]}},_other:m3})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??n.response?.statusCode??200,responseBody:c??void 0,responseBodyV3:c!=null?r.response?.body?._visit({json:u=>({type:"json",value:u}),stream:u=>Array.isArray(u)&&u.length>0&&u.every(aCA)?{type:"sse",value:u}:{type:"stream",value:u},error:()=>{},_other:()=>{throw new Error("Unknown ExampleResponseBody: "+r.response?.body?.type)}}):void 0,codeSamples:r.codeSamples?.map(u=>({name:u.name,description:u.docs??void 0,install:void 0,language:u.language,code:u.code})).filter(ru)}}function aCA(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function Y$s({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(a=>{let c;if(a.valueType.type==="container"&&a.valueType.container.type==="literal"?c=a.valueType.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}}):a.valueType.type==="container"&&a.valueType.container.type==="optional"&&a.valueType.container.optional.type==="container"&&a.valueType.container.optional.container.type==="literal"&&(c=a.valueType.container.optional.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}})),c!=null)return{name:a.name,value:{jsonExample:c,shape:Er.ExampleTypeReferenceShape.primitive(Er.ExamplePrimitive.string({original:c}))}}}).filter(ru),o=e?.example??t?.example;if(o==null)return;let{codeSamples:s}=e??{codeSamples:[]};return{name:o.name?.originalName,description:o.docs,path:o.url,pathParameters:[...o.rootPathParameters,...o.servicePathParameters,...o.endpointPathParameters].reduce((a,c)=>(a[vn.PropertyKey(c.name.originalName)]=c.value.jsonExample,a),{}),queryParameters:o.queryParameters.reduce((a,c)=>(a[c.name.wireValue]=c.value.jsonExample,a),{}),headers:[...i,...o.serviceHeaders,...o.endpointHeaders].reduce((a,c)=>(a[c.name.wireValue]=c.value.jsonExample,a),{}),requestBody:o.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,reference:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,fileUpload:a=>{if(o.request==null)return;let c={};if(Lu(o.request.jsonExample)){let u=o.request.jsonExample;for(let l of a.properties)l._visit({file:p=>{let m=u[p.key.wireValue];if(p.type==="file")c[p.key.wireValue]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(p.type==="fileArray"){let f=(Array.isArray(m)?m:[m]).filter(h=>typeof h=="string");c[p.key.wireValue]={type:"filenames",value:f}}},bodyProperty:p=>{if(p.style==="exploded"){let m=u[p.name.wireValue];c[p.name.wireValue]={type:"exploded",value:Array.isArray(m)?m:[m]}}else c[p.name.wireValue]={type:"json",value:u[p.name.wireValue]}},_other:m3})}return{type:"form",value:c}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??Er.http.ExampleResponse._visit(o.response,{ok:a=>a._visit({body:c=>c!=null?200:204,stream:c=>c.length>0?200:204,sse:c=>c.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+a.type)}}),error:({error:a})=>{let c=n.errors[a.errorId];if(c==null)throw new Error("Cannot find error "+a.errorId);return c.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+o.response.type)}}),responseBody:o.response._visit({ok:a=>a._visit({body:c=>c?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:a=>a.body?.jsonExample,_other:()=>{}}),responseBodyV3:o.response._visit({ok:a=>a._visit({body:c=>c!=null?{type:"json",value:c.jsonExample}:void 0,stream:c=>({type:"stream",value:c.map(u=>u.jsonExample)}),sse:c=>({type:"sse",value:c.map(({event:u,data:l})=>({event:u,data:l.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+a.type)}}),error:a=>a.body!=null?{type:"json",value:a.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+o.response.type)}}),codeSamples:s?.map(a=>jG._visit(a,{language:c=>({language:c.language,code:c.code,name:c.name?.originalName,description:c.docs??void 0,install:c.install}),sdk:c=>({language:c.sdk,code:c.code,name:c.name?.originalName,description:c.docs??void 0,install:void 0}),_other:()=>{}})).filter(ru)}}function cCA(e,t){return t!=null?{type:{type:"formData",name:t.name.originalName,description:t.docs??void 0,availability:void 0,properties:t.properties.map(r=>r._visit({file:n=>{let i=n._visit({file:o=>({type:"file",key:vn.PropertyKey(o.key.wireValue),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),fileArray:o=>({type:"fileArray",key:vn.PropertyKey(o.key.wireValue),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),_other:()=>{}});if(i!=null)return{type:"file",value:i}},bodyProperty:n=>({type:"bodyProperty",key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),contentType:n.contentType,description:n.docs??void 0,availability:RP(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},description:t.docs??void 0}:uCA(e)}function uCA(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>vn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:vn.PropertyKey(t.name.wireValue),valueType:Ig(t.valueType),availability:RP(t.availability),propertyAccess:void 0})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:Ig(e.payloadType)},description:e.docs};default:Ue(e)}}function lCA(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>vn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:vn.PropertyKey(t.name.wireValue),valueType:Ig(t.valueType),availability:RP(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Ig(e.bodyType)};default:Ue(e)}}function pCA(e,t){let r=e.v2Examples?.userSpecifiedExamples,n=e.v2Examples?.autogeneratedExamples,i=e.examples;if(r!=null&&Object.keys(r).length>0)return Object.entries(r).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(n!=null&&Object.keys(n).length>0)return Object.entries(n).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(i.length>0)return i.map(s=>({name:s.name?.originalName,responseBody:{type:"json",value:s.jsonExample},description:s.docs}));let o=fCA(e,t);return o!=null?[o]:[]}function fCA(e,t){if(e.type==null||e.type.type!=="named")return;let r=e.type.typeId,n=t.types[r];if(n==null||n.shape.type!=="object")return;let i={},o=!1;for(let s of n.shape.properties){let a=s.name.wireValue,c=s.v2Examples;if(c?.userSpecifiedExamples!=null){let u=Object.values(c.userSpecifiedExamples);if(u.length>0){i[a]=u[0],o=!0;continue}}if(c?.autogeneratedExamples!=null){let u=Object.values(c.autogeneratedExamples);if(u.length>0){i[a]=u[0];continue}}}if(o)return{name:void 0,responseBody:{type:"json",value:i},description:void 0}}function VU({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:Z$s(e.rootPackage,e,n,i),apiName:s??e.apiName.originalName,auth:lkl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:fkl({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:RP(c.availability),description:c.docs??void 0,key:c.name.wireValue,type:Ig(c.valueType)})),navigation:void 0};for(let[c,u]of Object.entries(e.types))a.types[vn.TypeId(c)]={description:u.docs??void 0,name:u.name.name.originalName,shape:dkl(u.shape),availability:RP(u.availability),displayName:u.name.displayName};for(let[c,u]of Object.entries(i))a.types[vn.TypeId(c)]=u;for(let[c,u]of Object.entries(e.subpackages)){let l=u.service!=null?e.services[u.service]:void 0;a.subpackages[vn.api.v1.SubpackageId(c)]={subpackageId:vn.api.v1.SubpackageId(c),displayName:l?.displayName??u.displayName,name:u.name.originalName,description:u.docs??void 0,...Z$s(u,e)}}return a}_w();async function eKs({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Nw({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1},readme:void 0,version:void 0,packageName:void 0,context:r,sourceResolver:new bE(r,t)}),p=uG({token:n.value}),m=VU({ir:l,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a,graphqlTypes:c,context:r});if(u){let g=t.getSources().filter(y=>y.type==="openapi").map(y=>({absoluteFilePath:y.absoluteFilePath,absoluteFilePathToOverrides:y.absoluteFilePathToOverrides}));m=await J3t(m,u,r,n,e,g.length>0?g:void 0,l.apiName.originalName)}let f=await p.api.v1.register.registerApiDefinition({orgId:vn.OrgId(e),apiId:vn.ApiId(l.apiName.originalName),definition:m});if(f.ok)return r.logger.debug(`Registered API Definition ${f.body.apiDefinitionId}`),{id:f.body.apiDefinitionId,ir:l};switch(f.error.error){case"UnauthorizedError":case"UserNotInOrgError":return r.failAndThrow("You do not have permissions to register the docs. Reach out to support@buildwithfern.com");default:return r.failAndThrow("Failed to register API",f.error)}}var mCA=new cHr({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function SRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return uHr(sHr(VU({ir:e,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:r,graphqlOperations:i,graphqlTypes:o,context:n}),vP.ApiDefinitionId(t),mCA))}var ykl=He(require("path"),1);async function h7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&ykl.default.isAbsolute(e)&&t.add(e)}async function Akl({parsedDocsConfig:e}){let t=new Set;return e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.navigation.type==="productgroup"&&e.navigation.products.forEach(n=>{n.image!=null&&t.add(n.image)}),(await tKs({navigation:e.navigation})).forEach(n=>{t.add(n)}),e.navbarLinks&&await Promise.all(e.navbarLinks.map(async n=>{n.type==="dropdown"&&n.links.map(async i=>{i.icon&&await h7({iconPath:i.icon,filepaths:t}),i.rightIcon&&await h7({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await h7({iconPath:n.icon,filepaths:t}),n.rightIcon&&await h7({iconPath:n.rightIcon,filepaths:t}))})),e.js!=null&&e.js.files.forEach(n=>{t.add(n.absolutePath)}),e.pageActions?.options?.custom!=null&&await Promise.all(e.pageActions.options.custom.map(async n=>{n.icon!=null&&await h7({iconPath:n.icon,filepaths:t})})),t}async function tKs({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>X3t({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await h7({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>X3t({item:n,filepaths:t}))):r.child.type==="variants"&&r.child.variants!=null&&await Promise.all(r.child.variants.flatMap(n=>{let i=[];return n.icon!=null&&i.push(h7({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>X3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await X3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await h7({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await X3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function X3t({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>X3t({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break}}function dCA(e,t,r){return e.replace(/\[([^\]]*)\]\(([^)]+\.mdx?(?:#[^)]*)?)\)/g,(n,i,o)=>{let s=o.indexOf("#"),a=s>=0?o.substring(0,s):o,c=s>=0?o.substring(s):"",u=_He({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function zNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)zNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=dCA(o,t,r):typeof o=="object"&&zNn(o,t,r)}function QNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)QNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&QNn(i,t,r)}pr();async function bkl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){gCA(e)?await Promise.all(e.map(async i=>{yCA(i)?await Promise.all(i.layout.map(async o=>{await MNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):ACA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await MNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await MNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function MNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await $ce(e,{alphabetized:Ut,api:Ut,apiName:Ut,audiences:Ut,displayErrors:Ut,tagDescriptionPages:Ut,snippets:Ut,summary:Ut,title:Ut,layout:Ut,collapsed:Ut,icon:Ut,slug:Ut,hidden:Ut,skipSlug:Ut,paginated:Ut,playground:Ut,flattened:Ut,path:Ut,page:Ut,featureFlag:Ut,openrpc:Ut,postman:Ut,contents:async i=>{i!=null&&await Promise.all(i.map(async o=>{await MNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),hCA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function hCA(e){return e.api!=null}function gCA(e){return e[0]?.tab!=null}function yCA(e){return"layout"in e&&Array.isArray(e.layout)}function ACA(e){return"variants"in e&&Array.isArray(e.variants)}function UU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}vkl.default.extend(Okl.default);var bCA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),_kl=0,_CA=async({ir:e})=>(_kl++,`${e.apiName.snakeCase.unsafeName}-${_kl}`),jle=class{domain;docsWorkspace;ossWorkspaces;apiWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;targetAudiences;constructor({domain:t,docsWorkspace:r,ossWorkspaces:n,apiWorkspaces:i,taskContext:o,editThisPage:s,uploadFiles:a=bCA,registerApi:c=_CA,targetAudiences:u}){this.domain=t,this.docsWorkspace=r,this.ossWorkspaces=n,this.apiWorkspaces=i,this.taskContext=o,this.editThisPage=s,this.uploadFiles=a,this.registerApi=c,this.targetAudiences=u}#e=SNn.init();shouldIncludeByAudience(t){return!t||t.length===0||!this.targetAudiences||this.targetAudiences.length===0?!0:t.some(r=>this.targetAudiences?.includes(r))}applyAudienceFiltering(t){let r=this.filterNavigationByAudience(t.navigation);return{...t,navigation:r}}filterNavigationByAudience(t){return t.type==="untabbed"||t.type==="tabbed"?t:t.type==="versioned"?{...t,versions:t.versions.filter(r=>this.shouldIncludeByAudience(this.getRawVersionAudiences(r.version)))}:t.type==="productgroup"?{...t,products:t.products.filter(r=>{let n=this.getRawProductAudiences(r.product);return this.shouldIncludeByAudience(n)})}:t}getRawProductAudiences(t){let n=this.docsWorkspace.config.products?.find(i=>i.displayName===t);return PTr(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return PTr(n?.audiences)}_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new Error("parsedDocsConfig is not set");return this._parsedDocsConfig}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;markdownFilesToSidebarTitle=new Map;markdownFilesToNoIndex=new Map;markdownFilesToTags=new Map;markdownFilesToAvailability=new Map;rawMarkdownFiles={};referencedMarkdownFiles=[];pendingApiRegistrations=[];pendingApiCounter=0;async resolve(){let t=performance.now(),r=process.memoryUsage();this.referencedMarkdownFiles=[],this.taskContext.logger.debug("Parsing docs configuration...");let n=performance.now();this._parsedDocsConfig=await X3s({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[Xe.of(X)]=Ne;let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let X=performance.now();await bkl({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:Se})=>{(await Se.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(Ye=>{let _e=dl(this.docsWorkspace.absoluteFilePath,Ye.absoluteFilepath);this.parsedDocsConfig.pages[_e]=Ye.contents,this.rawMarkdownFiles[Xe.of(_e)]=Ye.contents})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ne=performance.now()-X;this.taskContext.logger.debug(`Visited navigation AST in ${Ne.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages)){let Se=await vHe({markdown:Ne,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext});for(let _e of Se.referencedFiles)p.has(_e.absoluteFilePath)||(p.add(_e.absoluteFilePath),this.referencedMarkdownFiles.push(_e));let Je=await wRr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=xRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Xe.of(X)]=Ye}let m=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${m.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),h=await Akl({parsedDocsConfig:this.parsedDocsConfig}),g=performance.now()-f;this.taskContext.logger.debug(`Collected ${h.size} files in ${g.toFixed(0)}ms`),this.taskContext.logger.debug("Parsing image paths from markdown files...");let y=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))try{let{filepaths:Se,markdown:Je}=GVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Xe.of(X)]=Je;for(let Ye of Se)h.add(Ye)}catch(Se){throw this.taskContext.logger.error(`Failed to parse ${X}: ${Se instanceof Error?Se.message:String(Se)}`),Se}let A=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${A.toFixed(0)}ms`);let b=Array.from(h).map(X=>({absoluteFilePath:X,relativeFilePath:this.toRelativeFilepath(X)}));this.taskContext.logger.info(`Uploading ${b.length} files...`);let v=performance.now(),_=await this.uploadFiles(b),O=performance.now()-v;this.taskContext.logger.info(`Uploaded ${_.length} files in ${O.toFixed(0)}ms`),_.forEach(X=>{this.collectedFileIds.set(X.absoluteFilePath,X.fileId)}),this.taskContext.logger.debug("Building navigation tree...");let E=performance.now(),P=await this.toRootNode(),x=performance.now()-E;this.taskContext.logger.debug(`Built navigation tree in ${x.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let I=performance.now(),F=await this.getMarkdownFilesToFullyQualifiedPathNames(P),q=performance.now()-I;if(this.taskContext.logger.debug(`Got path names in ${q.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let X=performance.now();for(let Se of this.pendingApiRegistrations){this.resolveLinksInIrDocs(Se.ir,F);let Je=await this.registerApi({ir:Se.ir,snippetsConfig:Se.snippetsConfig,playgroundConfig:Se.playgroundConfig,apiName:Se.apiName,workspace:Se.workspace,graphqlOperations:Se.graphqlOperations,graphqlTypes:Se.graphqlTypes});QNn(Se.apiReferenceNode,Se.tempApiDefinitionId,Je)}let Ne=performance.now()-X;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ne.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let W=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Xe.of(X)]=ERr(Ne,this.collectedFileIds,F,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);let $=performance.now()-W;this.taskContext.logger.debug(`Replaced image paths in ${$.toFixed(0)}ms`),this.taskContext.logger.debug("Building page content...");let re={};Object.entries(this.parsedDocsConfig.pages).forEach(([X,Ne])=>{let{url:Se,launch:Je}=vCA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Xe.of(X)];re[FV.PageId(X)]={markdown:Ne,editThisPageUrl:Se?FV.Url(Se):void 0,editThisPageLaunch:Je,rawMarkdown:Ye}}),this.taskContext.logger.debug("Converting docs configuration...");let ce=performance.now(),G=await this.convertDocsConfiguration(P),ee=performance.now()-ce;this.taskContext.logger.debug(`Converted docs configuration in ${ee.toFixed(0)}ms`);let We={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){this.taskContext.logger.debug("Processing MDX components...");let X=performance.now(),Ne=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async Je=>{let Ye=aa(this.docsWorkspace.absoluteFilePath,Je);(await(0,wHe.stat)(Ye)).isDirectory()?(await iR(Ye,"{js,ts,jsx,tsx,md,mdx}")).forEach(dt=>{Ne.add(dt)}):Ye.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ne.add(Ye)})),We=Object.fromEntries(await Promise.all([...Ne].map(async Je=>{let Ye=this.toRelativeFilepath(Je),_e=(await(0,wHe.readFile)(Je)).toString();return[Ye,_e]})));let Se=performance.now()-X;this.taskContext.logger.debug(`Processed ${Ne.size} MDX component files in ${Se.toFixed(0)}ms`)}if(this.referencedMarkdownFiles.length>0){this.taskContext.logger.debug(`Adding ${this.referencedMarkdownFiles.length} referenced markdown files to jsFiles...`);for(let X of this.referencedMarkdownFiles)We[X.relativeFilePath]=X.content}if(this._parsedDocsConfig.header!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.header),Ne=(await(0,wHe.readFile)(this._parsedDocsConfig.header)).toString();We[X]=Ne,this.taskContext.logger.debug(`Added custom header component: ${X}`)}if(this._parsedDocsConfig.footer!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.footer),Ne=(await(0,wHe.readFile)(this._parsedDocsConfig.footer)).toString();We[X]=Ne,this.taskContext.logger.debug(`Added custom footer component: ${X}`)}let $e=performance.now()-t,Z=process.memoryUsage();return this.taskContext.logger.debug(`Total resolve time: ${$e.toFixed(0)}ms, Memory delta: RSS=${((Z.rss-r.rss)/1024/1024).toFixed(2)}MB`),{config:G,pages:re,jsFiles:We}}resolveFilepath(t){if(t!=null)return aa(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return dl(this.docsWorkspace.absoluteFilePath,t)}extractAllFrontmatterData(t){for(let[r,n]of Object.entries(t)){let i=(0,Ekl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();ORr(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=nr.migrate.FernNavigationV1ToLatest.create().root(t);return nr.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!nr.isPage(o))return;let a=nr.getPageId(o);if(a==null)return;let c=Pt(this.docsWorkspace.absoluteFilePath,Xe.of(a));r[c]=s}),r}getDocsBasePath(){return new URL(UU(this.domain)).pathname}async convertDocsConfiguration(t){return{aiChatConfig:this.parsedDocsConfig.aiChatConfig!=null?{model:this.parsedDocsConfig.aiChatConfig.model,systemPrompt:this.parsedDocsConfig.aiChatConfig.systemPrompt,location:this.parsedDocsConfig.aiChatConfig.location,datasources:this.parsedDocsConfig.aiChatConfig.datasources?.map(n=>({url:n.url,title:n.title}))}:void 0,hideNavLinks:void 0,title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?FV.Url(this.parsedDocsConfig.logo?.href):void 0,logoRightText:this.parsedDocsConfig.logo?.rightText,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(n=>n.type==="dropdown"?{...n,links:n.links?.map(i=>({...i,url:FV.Url(i.url),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)})),icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon)}:n.type==="github"?{...n,url:FV.Url(n.url)}:{...n,url:FV.Url(n.url),icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon)}),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,settings:this.parsedDocsConfig.settings,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:this.parsedDocsConfig.integrations,footerLinks:this.parsedDocsConfig.footerLinks?.map(n=>({...n,value:FV.Url(n.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,languages:this.parsedDocsConfig.languages,analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:this.parsedDocsConfig.analyticsConfig?.gtm?{containerId:this.parsedDocsConfig.analyticsConfig.gtm.containerId}:void 0,ga4:this.parsedDocsConfig.analyticsConfig?.ga4?{measurementId:this.parsedDocsConfig.analyticsConfig.ga4.measurementId}:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,editThisPageLaunch:this.editThisPage?.launch??"github",pageActions:this.convertPageActions(),theme:this.parsedDocsConfig.theme!=null?{sidebar:this.parsedDocsConfig.theme.sidebar,body:this.parsedDocsConfig.theme.body,tabs:this.parsedDocsConfig.theme.tabs,"page-actions":this.parsedDocsConfig.theme.pageActions,footerNav:this.parsedDocsConfig.theme.footerNav,"language-switcher":this.parsedDocsConfig.theme.languageSwitcher,"product-switcher":this.parsedDocsConfig.theme.productSwitcher}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0,header:this.parsedDocsConfig.header?this.toRelativeFilepath(this.parsedDocsConfig.header):void 0,footer:this.parsedDocsConfig.footer?this.toRelativeFilepath(this.parsedDocsConfig.footer):void 0}}getFernWorkspaceForApiSection(t){if(t.apiName!=null){let n=this.apiWorkspaces.find(i=>i.workspaceName===t.apiName);if(n!=null)return n}else if(this.apiWorkspaces.length===1&&this.apiWorkspaces[0]!=null)return this.apiWorkspaces[0];let r=t.apiName?`Failed to load API Definition '${t.apiName}' referenced in docs.
2116
+ ${a}`;return this.#f.set(o,c),this.markdownFilesToNoIndex.set(o,!1),this.markdownFilesToTags.set(o,[r]),s}#d(t,r,n,i){r=this.#e.resolveSubpackage(r);let o=r!=null?OHe.getSubpackageId(r):void 0;return t.map(s=>Q$s(s)._visit({link:a=>({id:this.#p.get(a.url),type:"link",title:a.text,icon:this.resolveIconFileId(a.icon),url:nr.Url(a.url),target:a.target}),page:a=>this.#h(a,n,i),package:a=>this.#g(a,n,i),section:a=>this.#_(a,n,i),item:({value:a})=>this.#b(a,o,n,i),endpoint:a=>this.#v(a,o,n,i),operation:a=>this.#O(a,o,n,i)})).filter(ru)}#h(t,r,n){return tkl({page:{...t,availability:t.availability??n},parentSlug:r,docsWorkspace:this.docsWorkspace,markdownFilesToFullSlugs:this.markdownFilesToFullSlugs,markdownFilesToNoIndex:this.markdownFilesToNoIndex,idgen:this.#p,hideChildren:this.hideChildren,resolveIconFileId:this.resolveIconFileId.bind(this)})}#g(t,r,n){let i=t.overviewAbsolutePath!=null?nr.V1.PageId(H3t(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.availability??n,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let c=OHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(PNn(t.package)),this.#s.add(c),this.#a.set(u,[c]);let l=t.slug??(Sle(a)?a.urlSlug:this.apiSection.slug??M0(this.apiSection.title)),p=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:l}),m=this.#d(t.contents,a,p,s);return{id:u,type:"apiPackage",children:m,title:t.title??(Sle(a)?a.displayName??Wz(a.name):this.apiSection.title),slug:p.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:s,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}else{this.taskContext.logger.warn(xNn(t.package,this.#e.subpackageLocators));let c=t.slug??M0(t.package),u=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=this.#d(t.contents,void 0,u,s);return{id:this.#p.get(i??`${this.apiDefinitionId}:${M0(t.package)}`),type:"apiPackage",children:l,title:t.title??t.package,slug:u.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:s,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}#_(t,r,n){let i=t.overviewAbsolutePath!=null?nr.V1.PageId(H3t(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(t.overviewAbsolutePath):void 0,a=this.#p.get(i??o??r.get()),c=t.referencedSubpackages.map(f=>{let h=this.#e.getSubpackageByIdOrLocator(f),g=h!=null?OHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(xNn(f,this.#e.subpackageLocators));return}return{subpackageId:g,locator:f}}).filter(f=>f!=null).filter(ru);this.#a.set(a,c.map(f=>f.subpackageId)),c.forEach(f=>{this.#s.has(f.subpackageId)&&this.taskContext.logger.error(PNn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??M0(t.title),l=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),p=t.availability??n,m=this.#d(t.contents,void 0,l,p);return{id:a,type:"apiPackage",children:m,title:t.title,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:t.collapsible,collapsedByDefault:t.collapsedByDefault,availability:p,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:s,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#b(t,r,n,i){t=t.trim();let o=this.#e.getSubpackageByIdOrLocator(t)??this.#e.getSubpackageByIdOrLocator(ao(t));if(o!=null){let s=OHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(PNn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=Sle(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",children:[],title:Sle(o)?o.displayName??Wz(o.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:this.createTagDescriptionPageId(o),collapsible:void 0,collapsedByDefault:void 0,availability:i,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}return this.#v({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,availability:void 0,playground:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0},r,n,i)}#v(t,r,n,i){let o=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.endpoints.get(vP.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(o!=null){let u=this.#e.getEndpointId(o);if(u==null)this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);else{this.#t.has(u)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${u}`),this.#t.add(u);let l=t.slug!=null?n.append(t.slug):n.apply(o);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"endpoint",method:o.method,endpointId:u,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(o.availability)??i,isResponseStream:o.response?.type.type==="stream",title:t.title??o.name??LQ(o.path.parts),slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#x(o.includeInApiExplorer===!1?{...t.playground,hidden:!0}:t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}let s=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.webSockets.get(vP.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(s!=null){let u=this.#e.getWebSocketId(s);if(u==null)this.taskContext.logger.error(`Expected WebSocket ID for ${s.id}. Got undefined.`);else return this.#r.has(u)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${u}`),this.#r.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webSocket",webSocketId:u,title:t.title??s.name??LQ(s.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(s)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(s.availability)??i,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let a=(r!=null?this.#e.subpackages.get(vP.SubpackageId(r))?.webhooks.get(vP.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(nr.V1.WebhookId(t.endpoint));if(a!=null){let u=this.#e.getWebhookId(a);if(u==null)this.taskContext.logger.error(`Expected Webhook ID for ${a.id}. Got undefined.`);else return this.#n.has(u)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${u}`),this.#n.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webhook",webhookId:u,method:a.method,title:t.title??a.name??(0,rkl.default)("/",...a.path),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:t.availability??nr.V1.convertAvailability(a.availability)??i,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let c=this.#e.api.rootPackage.graphqlOperations?.find(u=>u.id===t.endpoint||u.name===t.endpoint);if(c!=null){let u=vP.GraphQlOperationId(c.id);if(this.#o.has(u)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${u}`);return}this.#o.add(u);let l=t.slug!=null?n.append(t.slug):n.append(c.name??c.id);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"graphql",operationType:c.operationType,graphqlOperationId:vP.GraphQlOperationId(c.id),apiDefinitionId:this.apiDefinitionId,availability:t.availability??i,title:t.title??c.displayName??c.name??c.id,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#x(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#O(t,r,n,i){let o=t.operation.trim().split(/\s+/,2);if(o.length!==2){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let[s,a]=o;if(!a){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let c=this.#e.api.rootPackage.graphqlOperations??[],u=c.filter(f=>{if(f.operationType!==s)return!1;if(a.includes(".")){if(f.id===a||f.name===a)return!0;let h=a.split("."),g=h[h.length-1],y=h.slice(0,-1).join(".");if(f.name===g||f.id===g)return f.id.startsWith(y+".")||this.#l.get(vn.GraphQlOperationId(f.id))===y}else return f.name===a||f.id===a;return!1});if(!a.includes(".")){let f=c.filter(h=>h.operationType===s&&(h.name===a||h.id===a));if(f.length>1){let h=f.map(g=>{let y=this.#l.get(vn.GraphQlOperationId(g.id));if(y)return`"${s} ${y}.${a}"`;let A=g.id.split("_");if(A.length>=3){let b=A[0];return`"${s} ${b}.${a}"`}return`"${s} ${g.id}"`}).join(", ");this.taskContext.logger.warn(`Ambiguous operation reference: "${t.operation}". Found ${f.length} operations with name "${a}". Using first match: "${h.split(", ")[0]}". Please use the full namespaced format for clarity. Available options: ${h}`)}}let l=u[0];if(l==null){this.taskContext.logger.error(`GraphQL operation not found in the API Reference layout: ${t.operation}`);return}let p=vP.GraphQlOperationId(l.id);if(this.#o.has(p)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${p}`);return}this.#o.add(p);let m=t.slug!=null?n.append(t.slug):n.append(l.name??l.id);return{id:this.#p.get(`${this.apiDefinitionId}:${p}`),type:"graphql",operationType:l.operationType,graphqlOperationId:vP.GraphQlOperationId(l.id),apiDefinitionId:this.apiDefinitionId,availability:t.availability??i,title:t.title??l.displayName??l.name??l.id,slug:m.get(),icon:void 0,hidden:this.hideChildren||t.hidden,playground:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#A(t,r){return ekl({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>LQ(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#E(t,r){return U$s({child:t,nodeIdToSubpackageId:this.#a,convertApiDefinitionPackageId:(n,i,o)=>this.#y(n,i,o),mergeAndFilterChildren:this.#A.bind(this)})}#w(t,r,n){let i=[];if(t.endpoints.forEach(o=>{if(o.protocol?.type==="grpc"){let s=this.#e.getGrpcId(o);if(s==null){this.taskContext.logger.error(`Expected Grpc ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#i.has(s))return;let a=r.apply(o);i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"grpc",grpcId:s,title:o.name??LQ(o.path.parts),method:o.protocol?.methodType??"UNARY",apiDefinitionId:this.apiDefinitionId,availability:n,slug:a.get(),icon:void 0,hidden:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let s=this.#e.getEndpointId(o);if(s==null){this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${wNn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#t.has(s))return;let a=r.apply(o);i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"endpoint",method:o.method,endpointId:s,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,isResponseStream:o.response?.type.type==="stream",title:o.name??LQ(o.path.parts),slug:a.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}}),t.websockets.forEach(o=>{let s=this.#e.getWebSocketId(o);if(s==null){this.taskContext.logger.error(`Expected WebSocket ID for ${o.id}. Got undefined.`);return}this.#r.has(s)||i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webSocket",webSocketId:s,title:o.name??LQ(o.path.parts),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.webhooks.forEach(o=>{let s=this.#e.getWebhookId(o);if(s==null){this.taskContext.logger.error(`Expected Webhook ID for ${o.id}. Got undefined.`);return}this.#n.has(s)||i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webhook",webhookId:s,method:o.method,title:o.name??Wz(o.id),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:nr.V1.convertAvailability(o.availability)??n,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.subpackages.forEach(o=>{if(this.#s.has(o))return;let s=this.#e.getSubpackageByIdOrLocator(o);if(s==null){this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`);return}let a=Sle(s)?r.apply(s):r,c=this.#y(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(vP.SubpackageId(o)),p=l?Array.from(l.endpoints.values()).some(m=>{let f=this.#e.getEndpointId(m);return f!=null&&this.#t.has(f)}):!1;(c.length>0||u!=null&&p)&&i.push({id:nr.V1.NodeId(`${this.apiDefinitionId}:${o}`),type:"apiPackage",children:c,title:Sle(s)?s.displayName??Wz(s.name):this.apiSection.title,slug:a.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.graphqlOperations!=null&&t.graphqlOperations.length>0){let o=this.#I(t.graphqlOperations,r,n);i.push(...o)}return i=this.mergeEndpointPairs(i),this.apiSection.alphabetized&&(i=i.sort((o,s)=>{let a=o.type==="endpointPair"?o.nonStream.title:o.title,c=s.type==="endpointPair"?s.nonStream.title:s.title;return a.localeCompare(c)})),i}#I(t,r,n){let i={},o={};for(let u of t){let l=vP.GraphQlOperationId(u.id);if(this.#o.has(l))continue;this.#o.add(l);let p=this.#l.get(vn.GraphQlOperationId(u.id)),m=u.operationType;p!=null?(i[p]==null&&(i[p]={}),i[p][m]==null&&(i[p][m]=[]),i[p][m].push(u)):(o[m]==null&&(o[m]=[]),o[m].push(u))}let s=[],a=["QUERY","MUTATION","SUBSCRIPTION"],c={QUERY:"Queries",MUTATION:"Mutations",SUBSCRIPTION:"Subscriptions"};for(let[u,l]of Object.entries(i)){let p=r.append(M0(u)),m=[];for(let h of a){let g=l[h];if(g==null||g.length===0)continue;let y=c[h],A=p.append(M0(y)),b=g.map(_=>{let O=A.append(_.name??_.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${_.id}`),type:"graphql",operationType:_.operationType,graphqlOperationId:vP.GraphQlOperationId(_.id),apiDefinitionId:this.apiDefinitionId,availability:n,title:_.displayName??_.name??_.id,slug:O.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}),v={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}:${h}`),type:"apiPackage",children:b,title:y,slug:A.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};m.push(v)}let f={id:this.#p.get(`${this.apiDefinitionId}:graphql:namespace:${u}`),type:"apiPackage",children:m,title:Wz(u),slug:p.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(f)}for(let u of a){let l=o[u];if(l==null||l.length===0)continue;let p=c[u],m=r.append(M0(p)),f=l.map(g=>{let y=m.append(g.name??g.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${g.id}`),type:"graphql",operationType:g.operationType,graphqlOperationId:vP.GraphQlOperationId(g.id),apiDefinitionId:this.apiDefinitionId,availability:n,title:g.displayName??g.name??g.id,slug:y.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}),h={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}`),type:"apiPackage",children:f,title:p,slug:m.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:n,apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(h)}return s}#y(t,r,n){let i=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return i==null?(this.taskContext.logger.debug(xNn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return WNl(t)}mergeEndpointPairs(t){return INn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>LQ(r.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}getFileId(t){let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}};_w();var nkl=He(require("crypto"),1);function SIA(e){return nkl.default.createHash("sha256").update(e).digest("hex")}var SNn=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#r(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),SIA(r===0?t:`${t}-${r}`)}#n(t){let r=this.#r(t),n=0;for(;this.#t.has(r);)if(r=this.#r(t),n++,n>100)throw new Error(`Infinite loop detected for id: ${t}`);return r}get(t){return nr.V1.NodeId(this.#n(t))}};function ikl(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0,csharpSdk:e.csharp!=null?{package:typeof e.csharp=="string"?e.csharp:e.csharp.package,version:typeof e.csharp=="string"?void 0:e.csharp.version}:void 0,phpSdk:e.php!=null?{package:typeof e.php=="string"?e.php:e.php.package,version:typeof e.php=="string"?void 0:e.php.version}:void 0,swiftSdk:e.swift!=null?{package:typeof e.swift=="string"?e.swift:e.swift.package,version:typeof e.swift=="string"?void 0:e.swift.version}:void 0,rustSdk:e.rust!=null?{package:typeof e.rust=="string"?e.rust:e.rust.package,version:typeof e.rust=="string"?void 0:e.rust.version}:void 0}}_w();pr();var jNn=class{selectors;constructor(t){this.selectors=t}matches(t,r){for(let n of this.selectors)if(this.pathMatches(t,n.path)&&(!n.method||n.method===r))return!0;return!1}pathMatches(t,r){if(t===r)return!0;let n=t.split("/").filter(o=>o.length>0),i=r.split("/").filter(o=>o.length>0);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let s=n[o],a=i[o];if(!s||!a)return!1;let c=s.startsWith("{")&&s.endsWith("}"),u=a.startsWith("{")&&a.endsWith("}");if(!(c&&u)&&s!==a)return!1}return!0}getMatchingPaths(t){let r=[];for(let[n,i]of Object.entries(t)){if(!i)continue;let o=["get","put","post","delete","options","head","patch","trace"];for(let s of o)if(i[s]&&this.matches(n,s)){r.includes(n)||r.push(n);break}}return r}};var BNn=class{document;schemas=new Set;parameters=new Set;responses=new Set;requestBodies=new Set;securitySchemes=new Set;headers=new Set;examples=new Set;links=new Set;callbacks=new Set;constructor(t){this.document=t}collectFromOperation(t){if(t.parameters)for(let r of t.parameters)this.collectParameter(r);if(t.requestBody&&this.collectFromRequestBody(t.requestBody),t.responses)for(let r of Object.values(t.responses))this.collectFromResponse(r);if(t.callbacks)for(let[r,n]of Object.entries(t.callbacks))if(this.isReference(n))this.callbacks.add(this.extractComponentName(n.$ref));else for(let i of Object.values(n))this.collectFromPathItem(i);if(t.security)for(let r of t.security)for(let n of Object.keys(r))this.securitySchemes.add(n)}collectFromPathItem(t){if(t.parameters)for(let n of t.parameters)this.collectParameter(n);let r=[t.get,t.put,t.post,t.delete,t.options,t.head,t.patch,t.trace];for(let n of r)n&&this.collectFromOperation(n)}collectParameter(t){if(this.isReference(t)){this.parameters.add(this.extractComponentName(t.$ref));let r=this.resolveParameter(t.$ref);r&&this.collectParameter(r)}else{if(t.schema&&this.collectFromSchema(t.schema),t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}}collectFromRequestBody(t){if(this.isReference(t)){this.requestBodies.add(this.extractComponentName(t.$ref));let r=this.resolveRequestBody(t.$ref);r&&this.collectFromRequestBody(r)}else if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r)}collectFromResponse(t){if(this.isReference(t)){this.responses.add(this.extractComponentName(t.$ref));let r=this.resolveResponse(t.$ref);r&&this.collectFromResponse(r)}else{if(t.headers)for(let[r,n]of Object.entries(t.headers))this.isReference(n)?this.headers.add(this.extractComponentName(n.$ref)):n.schema&&this.collectFromSchema(n.schema);if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.links)for(let[r,n]of Object.entries(t.links))this.isReference(n)&&this.links.add(this.extractComponentName(n.$ref))}}collectFromMediaType(t){if(t.schema&&this.collectFromSchema(t.schema),t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}collectFromSchema(t){if(this.isReference(t)){let r=this.extractComponentName(t.$ref);if(!this.schemas.has(r)){this.schemas.add(r);let n=this.resolveSchema(t.$ref);n&&this.collectFromSchema(n)}}else{if(t.properties)for(let r of Object.values(t.properties))this.collectFromSchema(r);if(t.additionalProperties&&typeof t.additionalProperties=="object"&&this.collectFromSchema(t.additionalProperties),"items"in t&&t.items)if(Array.isArray(t.items))for(let r of t.items)this.collectFromSchema(r);else this.collectFromSchema(t.items);if(t.allOf)for(let r of t.allOf)this.collectFromSchema(r);if(t.oneOf)for(let r of t.oneOf)this.collectFromSchema(r);if(t.anyOf)for(let r of t.anyOf)this.collectFromSchema(r);t.not&&this.collectFromSchema(t.not)}}resolveSchema(t){let r=this.extractComponentName(t);return this.document.components?.schemas?.[r]}resolveParameter(t){let r=this.extractComponentName(t);return this.document.components?.parameters?.[r]}resolveResponse(t){let r=this.extractComponentName(t);return this.document.components?.responses?.[r]}resolveRequestBody(t){let r=this.extractComponentName(t);return this.document.components?.requestBodies?.[r]}isReference(t){return t!=null&&typeof t=="object"&&"$ref"in t}extractComponentName(t){let r=t.split("/");return r[r.length-1]??t}getSchemas(){return this.schemas}getParameters(){return this.parameters}getResponses(){return this.responses}getRequestBodies(){return this.requestBodies}getSecuritySchemes(){return this.securitySchemes}getHeaders(){return this.headers}getExamples(){return this.examples}getLinks(){return this.links}getCallbacks(){return this.callbacks}};var IRr=class{matcher;document;constructor(t){this.matcher=new jNn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new BNn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let m=c[p];m&&this.matcher.matches(a,p)&&(u[p]=m,r.collectFromOperation(m))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let m of p.tags)a.add(m)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}};var NNn=require("fs/promises");function q$s(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=Object.keys(t);if(r.length===0||r.length>2)return!1;let n="type"in t&&typeof t.type=="string",i="value"in t;return n&&r.length===1||n&&i&&r.length===2||i&&r.length===1}function EHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(EHe);if(typeof e!="object")return e;let t=e;if(q$s(t))return"value"in t?EHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=EHe(i);o!==void 0&&(r[n]=o)}return r}function W$s(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function TNn(e,t,r,n){let i={},o={},s={};if(e==null||typeof e!="object"||Array.isArray(e))return{filteredBody:e,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s};let a=e,c={},u=new Set(Object.keys(t??{})),l=new Set(Object.keys(r??{})),p=new Set(Object.keys(n??{}));for(let[m,f]of Object.entries(a)){let h=m.toLowerCase().replace(/[-_]/g,""),g=!1,y=!1,A=!1;for(let b of u){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){g=!0,i[b]=f;break}}if(!g)for(let b of l){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){y=!0,o[b]=f;break}}if(!g&&!y)for(let b of p){let v=b.toLowerCase().replace(/[-_]/g,"");if(h===v){A=!0,s[b]=f;break}}!g&&!y&&!A&&(c[m]=f)}return{filteredBody:c,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s}}var jIA=0,BIA=15e3,DNn=class{config;context;lambdaOrigin;venusOrigin;token;jwtPromise;organizationId;venusAirGappedResult;constructor(t,r,n,i){this.config={enabled:t.enabled,openaiApiKey:t.openaiApiKey,model:t.model??"gpt-4o-mini",maxRetries:t.maxRetries??jIA,requestTimeoutMs:t.requestTimeoutMs??BIA,styleInstructions:t.styleInstructions},this.context=r;let o="https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws";if(!o)throw new Error("DEFAULT_FDR_LAMBDA_DOCS_ORIGIN environment variable is not set. AI example enhancement requires this to be configured.");this.lambdaOrigin=o,this.venusOrigin="https://venus.buildwithfern.com",this.token=n,this.organizationId=i}async isVenusAirGapped(){if(this.venusAirGappedResult!==void 0)return this.venusAirGappedResult;this.context.logger.debug(`Checking Venus connectivity at ${this.venusOrigin}/health`);try{return await fetch(`${this.venusOrigin}/health`,{method:"GET",signal:AbortSignal.timeout(5e3)}),this.venusAirGappedResult=!1,this.context.logger.debug("Venus connectivity check succeeded"),!1}catch(t){let r=t instanceof Error?t.message:String(t);return bDr(r)?(this.venusAirGappedResult=!0,this.context.logger.debug(`Venus connectivity check failed - air-gapped mode: ${r}`),!0):(this.venusAirGappedResult=!1,!1)}}async getJwt(){return this.jwtPromise==null&&(this.jwtPromise=this.fetchJwtFromVenus()),this.jwtPromise}async fetchJwtFromVenus(){this.context.logger.debug("Fetching JWT from Venus for AI example enhancement"),this.context.logger.debug(`Token type: ${this.token.type}`),this.context.logger.debug(`Token value (first 10 chars): ${this.token.value.substring(0,10)}...`),this.context.logger.debug(`Token value starts with 'fern_': ${this.token.value.startsWith("fern_")}`),this.context.logger.debug(`Venus origin: ${this.venusOrigin}`),this.context.logger.debug(`Organization ID: ${this.organizationId}`);let t=await fetch(`${this.venusOrigin}/auth/jwt`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token.value}`},body:JSON.stringify({organizationId:this.organizationId}),signal:AbortSignal.timeout(1e4)});if(!t.ok){let n=await t.text();throw new Error(`Failed to fetch JWT from Venus: ${t.status} ${n||t.statusText}`)}let r=await t.json();return this.context.logger.debug(`Successfully obtained JWT from Venus (expires at ${r.expiresAt})`),r.token}async enhanceExample(t){if(!this.config.enabled)return{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};if(await this.isVenusAirGapped())return this.context.logger.debug("Skipping AI example enhancement - Venus is not reachable"),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};let n;try{n=await this.getJwt()}catch(s){return this.context.logger.warn(`Failed to obtain JWT from Venus: ${s}. AI example enhancement will be skipped.`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}let i,o=this.config.maxRetries+1;for(let s=1;s<=o;s++)try{this.context.logger.debug(`Enhancing example for ${t.method} ${t.endpointPath} via lambda (attempt ${s}/${o})`);let a={method:t.method,endpointPath:t.endpointPath,organizationId:t.organizationId,operationSummary:t.operationSummary,operationDescription:t.operationDescription,originalRequestExample:t.originalRequestExample,originalResponseExample:t.originalResponseExample,openApiSpec:t.openApiSpec,exampleStyleInstructions:t.exampleStyleInstructions??this.config.styleInstructions};this.context.logger.debug(`Sending to enhanceExamples: ${JSON.stringify({...a,openApiSpec:t.openApiSpec?`[OpenAPI spec present: ${t.openApiSpec.length} chars]`:"[No OpenAPI spec]"},null,2)}`);let c=await fetch(`${this.lambdaOrigin}/v2/registry/ai/enhance-example`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify(a),signal:AbortSignal.timeout(this.config.requestTimeoutMs)});if(!c.ok){let l=await c.text();throw new Error(`Lambda returned ${c.status}: ${l||c.statusText}`)}let u=await c.json();return{enhancedRequestExample:u.enhancedRequestExample??t.originalRequestExample,enhancedResponseExample:u.enhancedResponseExample??t.originalResponseExample}}catch(a){if(i=a,this.context.logger.warn(`Attempt ${s} failed to enhance example: ${a}`),s<o){let c=Math.min(1e3*Math.pow(2,s-1),1e4);await new Promise(u=>setTimeout(u,c))}}return this.context.logger.error(`Failed to enhance example after ${o} attempts: ${i?.message}`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}};var $3t=class e{static instance;currentApiId;queue=[];progress=new Map;constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}create(t,r,n){let i=`${t}-${Date.now()}-${Math.random()}`;return this.progress.set(i,{apiName:t,completed:0,total:r,endpointsSample:n}),this.queue.push(i),this.currentApiId||(this.currentApiId=i,this.updateSpinnerStatus()),i}update(t,r){let n=this.progress.get(t);n&&(n.completed=r,t===this.currentApiId&&this.updateSpinnerStatus())}finish(t){this.progress.delete(t);let r=this.queue.indexOf(t);r!==-1&&this.queue.splice(r,1),t===this.currentApiId&&(this.queue.length>0?(this.currentApiId=this.queue[0],this.updateSpinnerStatus()):(this.currentApiId=void 0,delete process.env.FERN_SPINNER_STATUS))}updateSpinnerStatus(){if(!this.currentApiId){delete process.env.FERN_SPINNER_STATUS;return}let t=this.progress.get(this.currentApiId);if(t){let r=`auto-generating examples for endpoints - ${t.apiName}`;t.endpointsSample&&(r+=` (${t.endpointsSample})`),r+=` - ${t.completed}/${t.total}`,process.env.FERN_SPINNER_STATUS=r}}};Ir();var RNn=require("fs/promises");async function TIA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,RNn.readFile)(r,"utf-8"),o=Bn.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object"){for(let[u,l]of Object.entries(c))if(l&&typeof l=="object"&&"x-fern-examples"in l){let p=l["x-fern-examples"];if(Array.isArray(p)){for(let m of p)if(typeof m=="object"&&m!==null){let f=m;n.push({endpointPath:a,method:u.toUpperCase(),pathParameters:f["path-parameters"],queryParameters:f["query-parameters"],headers:f.headers,request:f.request,response:f.response})}}}}}t.logger.debug(`Parsed ${n.length} AI examples from ai_examples_override.yml`)}catch(i){t.logger.debug(`No existing ai_examples_override.yml found or error reading it: ${i}`)}return n}async function G$s({sourceFilePath:e,context:t}){let r=await TIA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,RNn.readFile)(e,"utf-8");try{n=JSON.parse(u)}catch{n=Bn.load(u)}}catch(u){return t.logger.warn(`Failed to read OpenAPI spec file: ${u}`),{validExamples:r,invalidExamples:[],totalExamples:r.length,validCount:r.length,invalidCount:0}}let i=new mY({logger:t.logger}),o=new PVe({namespace:void 0,generationLanguage:"typescript",logger:t.logger,smartCasing:!1,spec:n,exampleGenerationArgs:{disabled:!1},errorCollector:i,enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,settings:Zue()}),s=new HOt({context:o}),{validExamples:a,invalidExamples:c}=s.validateAiExamples({aiExamples:r,spec:n});if(c.length>0){t.logger.info(`Found ${c.length} stale AI examples that need to be regenerated out of ${r.length} total`);for(let{example:u,validationResult:l}of c)t.logger.debug(`Stale AI example: ${u.method} ${u.endpointPath} - ${l.errors.map(p=>p.message).join(", ")}`)}return{validExamples:a,invalidExamples:c,totalExamples:r.length,validCount:a.length,invalidCount:c.length}}async function okl({sourceFilePath:e,context:t}){let r=await G$s({sourceFilePath:e,context:t});if(r.invalidCount===0)return t.logger.debug("No invalid AI examples to remove"),{removedCount:0,remainingCount:r.totalExamples};let n=vr.of(`${ji(e)}/ai_examples_override.yml`);try{let i=await(0,RNn.readFile)(n,"utf-8"),o=Bn.load(i);if(!o||!o.paths)return{removedCount:0,remainingCount:r.totalExamples};let s=new Set(r.invalidExamples.map(({example:u})=>`${u.method.toLowerCase()}:${u.endpointPath}`));for(let[u,l]of Object.entries(o.paths))if(l&&typeof l=="object"){for(let p of Object.keys(l)){let m=`${p.toLowerCase()}:${u}`;s.has(m)&&delete l[p]}Object.keys(l).length===0&&delete o.paths[u]}let{writeFile:a}=await import("fs/promises"),c=Bn.dump(o,{indent:2,lineWidth:-1,noRefs:!0});return await a(n,c,"utf-8"),t.logger.info(`Removed ${r.invalidCount} invalid AI examples from ai_examples_override.yml`),{removedCount:r.invalidCount,remainingCount:r.validCount}}catch(i){return t.logger.warn(`Failed to remove invalid AI examples: ${i}`),{removedCount:0,remainingCount:r.totalExamples}}}Ir();var CRr=require("fs/promises");async function H$s(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,CRr.readFile)(r,"utf-8"),o=Bn.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object")for(let u of Object.keys(c)){let l=`${u.toLowerCase()}:${a}`;n.add(l)}}t.logger.debug(`Loaded ${n.size} covered endpoints from ai_examples_override.yml`)}catch{t.logger.debug("No existing ai_examples_override.yml found or error reading it")}return n}async function FNn({enhancedExamples:e,sourceFilePath:t,context:r}){if(e.length===0){r.logger.debug("No enhanced examples to write");return}let n=new Map;for(let s of e){let a=n.get(s.endpoint)||[];a.push(s),n.set(s.endpoint,a)}let i={paths:{}};for(let[s,a]of n.entries()){let c=new Map;for(let u of a){let l=c.get(u.method.toLowerCase())||[];l.push(u),c.set(u.method.toLowerCase(),l)}i.paths[s]||(i.paths[s]={});for(let[u,l]of c.entries()){let p=l.map((f,h)=>{let g={},y={...f.pathParameters??{}},A={...f.queryParameters??{}},b={...f.headers??{}},v={...b};if(f.headerParameterNames)for(let F of f.headerParameterNames)F in v||(v[F]="");let _={};if(f.queryParameterNames)for(let F of f.queryParameterNames)_[F]=A[F]??"";let O={};if(f.pathParameterNames)for(let F of f.pathParameterNames)O[F]=y[F]??"";let E=f.requestBody;E!=null&&typeof E=="object"&&!Array.isArray(E)&&"body"in E&&(E=E.body);let P=EHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=TNn(P,O,_,v);x=F;for(let[re,ce]of Object.entries(q))ce!=null&&ce!==""&&(y[re]=ce);for(let[re,ce]of Object.entries(W))ce!=null&&ce!==""&&(A[re]=ce);for(let[re,ce]of Object.entries($))ce!=null&&ce!==""&&(b[re]=ce)}Object.keys(y).length>0&&(g["path-parameters"]=y),Object.keys(A).length>0&&(g["query-parameters"]=A),Object.keys(b).length>0&&(g.headers=b),x!==void 0&&!W$s(x)&&(g.request=x);let I=EHe(f.responseBody);return I!==void 0&&!W$s(I)&&(g.response={body:I}),g}),m=i.paths[s];m&&(m[u]={"x-fern-examples":p})}}let o=vr.of(`${ji(t)}/ai_examples_override.yml`);try{let s={};try{let u=await(0,CRr.readFile)(o,"utf-8"),l=Bn.load(u);l&&typeof l=="object"&&(s=l)}catch{r.logger.debug("No existing ai_examples_override.yml found, creating new file")}let a={paths:{}};if(s.paths){for(let[u,l]of Object.entries(s.paths))if(l&&typeof l=="object"){a.paths[u]={};for(let[p,m]of Object.entries(l))m&&typeof m=="object"&&"x-fern-examples"in m&&(a.paths[u][p]={"x-fern-examples":m["x-fern-examples"]||[]})}}for(let[u,l]of Object.entries(i.paths)){a.paths[u]||(a.paths[u]={});for(let[p,m]of Object.entries(l))a.paths[u][p]?r.logger.debug(`Skipping ${p.toUpperCase()} ${u} - examples already exist in override file`):(a.paths[u][p]=m,r.logger.debug(`Adding new examples for ${p.toUpperCase()} ${u}`))}let c=Bn.dump(a,{indent:2,lineWidth:-1,noRefs:!0});await(0,CRr.writeFile)(o,c,"utf-8"),r.logger.debug(`AI enhanced examples written to: ${o}`)}catch(s){throw r.logger.warn(`Failed to write AI examples override file: ${s}`),s}}var $$s=class{failureCount=0;failureThreshold=30;isOpen=!1;recordFailure(){this.failureCount++,this.failureCount>=this.failureThreshold&&(this.isOpen=!0)}recordSuccess(){this.failureCount=0,this.isOpen=!1}shouldSkip(){return this.isOpen}getFailureCount(){return this.failureCount}getThreshold(){return this.failureThreshold}},K$s=class{progressCallback;maxConcurrency;activeRequests=new Map;pendingQueue=[];results=new Map;stats={pending:0,active:0,completed:0,failed:0,totalStarted:0};completedSinceLastCallback=[];constructor(t,r){this.progressCallback=r,this.maxConcurrency=t}async processAll(t){for(this.pendingQueue=[...t],this.stats.pending=this.pendingQueue.length,this.stats.totalStarted=this.pendingQueue.length;this.pendingQueue.length>0&&this.activeRequests.size<this.maxConcurrency;)this.startNext();for(;this.activeRequests.size>0;){let r=Array.from(this.activeRequests.entries()).map(([o,s])=>s.promise.then(a=>({id:o,result:a}))),{id:n,result:i}=await Promise.race(r);await this.handleCompletion(n,i),this.pendingQueue.length>0&&this.startNext()}return this.results}startNext(){if(this.pendingQueue.length===0||this.activeRequests.size>=this.maxConcurrency)return;let t=this.pendingQueue.shift();if(!t)return;let r=`req-${Date.now()}-${Math.random()}`,n=t(),i={id:r,promise:n,startTime:Date.now()};this.activeRequests.set(r,i),this.stats.pending=this.pendingQueue.length,this.stats.active=this.activeRequests.size}async handleCompletion(t,r){this.activeRequests.get(t)&&this.activeRequests.delete(t),r.success?(this.stats.completed++,this.results.set(r.endpointKey,{enhancedReq:r.enhancedReq,enhancedRes:r.enhancedRes,extractedHeaders:r.extractedHeaders,extractedPathParams:r.extractedPathParams,extractedQueryParams:r.extractedQueryParams})):this.stats.failed++,this.stats.active=this.activeRequests.size,this.completedSinceLastCallback.push(r),this.progressCallback&&(this.progressCallback({...this.stats},[...this.completedSinceLastCallback]),this.completedSinceLastCallback=[])}getStats(){return{...this.stats}}};function DIA(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=sMe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function RIA(e,t){let r=e[0];if(r==null)return{openapi:"3.0.0",info:{title:"",version:""},paths:{}};let n={...r};n.paths={...n.paths},n.components&&(n.components={...n.components},n.components.schemas&&(n.components.schemas={...n.components.schemas}));for(let i of e.slice(1)){if(i.paths)for(let[o,s]of Object.entries(i.paths))n.paths[o]==null&&(n.paths[o]=s);if(i.components?.schemas){n.components||(n.components={}),n.components.schemas||(n.components.schemas={});for(let[o,s]of Object.entries(i.components.schemas))n.components.schemas[o]==null&&(n.components.schemas[o]=s)}}return t.logger.debug(`Combined spec has ${Object.keys(n.paths??{}).length} paths`),n}function ckl(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}function J$s(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=ckl(t,o);if(!s)return[];let a=i.paths[s];if(!a)return[];let c=a[r.toLowerCase()];if(!c)return[];let u=[],l=[...a.parameters??[],...c.parameters??[]];for(let p of l)"$ref"in p||p.in===n&&u.push(p.name);return u}catch{return[]}}function FIA(e,t,r){return J$s(e,t,r,"header")}function NIA(e,t,r){return J$s(e,t,r,"query")}function kIA(e,t,r){return J$s(e,t,r,"path")}async function zIA(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=sMe(e)}if(!n.openapi||!n.paths){r.logger.debug("Invalid OpenAPI spec structure, skipping pruning");return}let i=Object.keys(n.paths);r.logger.debug(`OpenAPI spec contains ${i.length} paths`);let o=[];for(let p of t){let m=ckl(p.path,i);m?(o.push({path:m,method:p.method.toLowerCase()}),r.logger.debug(`Mapped ${p.path} to OpenAPI path: ${m}`)):r.logger.debug(`No matching OpenAPI path found for ${p.path}`)}if(o.length===0){r.logger.debug("No endpoints matched in OpenAPI spec");return}let a=new IRr({document:n,endpoints:o}).prune();r.logger.debug(`Pruned OpenAPI spec for batch: ${a.statistics.originalEndpoints} \u2192 ${a.statistics.prunedEndpoints} endpoints, ${a.statistics.originalSchemas} \u2192 ${a.statistics.prunedSchemas} schemas`);let c=JSON.stringify(a.document,null,2);if(c.length>15e5){r.logger.debug(`Pruned OpenAPI spec still too large (${c.length} characters), skipping spec context for AI enhancement`);return}r.logger.debug(`Pruned spec size: ${c.length} characters (within limit)`);let u=o.map(p=>`${(p.method||"unknown").toUpperCase()}_${p.path.replace(/\//g,"_").replace(/[{}]/g,"")}`),l=`batch_${o.length}endpoints_${u.join("_").substring(0,100)}_pruned_spec.yaml`;return c}catch(n){return r.logger.debug(`Failed to prune OpenAPI spec: ${n}. Using original spec.`),e}}async function J3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await QIA(e,t,r,n,i,o,s)}catch(a){return r.logger.debug(`AI example enhancement failed with error: ${a}. Continuing with original API definition to prevent CLI crash.`),r.logger.debug(`Full AI enhancement error stack: ${a instanceof Error?a.stack:String(a)}`),e}}async function QIA(e,t,r,n,i,o,s){let a=new DNn(t,r,n,i),c=new $$s,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let A=[];for(let b of o)try{let v=await(0,NNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null){let O=Array.isArray(b.absoluteFilePathToOverrides)?b.absoluteFilePathToOverrides:[b.absoluteFilePathToOverrides];try{let E;try{E=JSON.parse(v)}catch{E=sMe(v,{json:!0})}for(let P of O){let x=await(0,NNn.readFile)(P,"utf-8"),I;try{I=JSON.parse(x)}catch{I=sMe(x,{json:!0})}E=xwr({data:E,overrides:I})}v=w9e(E),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(E){r.logger.debug(`Failed to apply overrides to spec: ${E}. Using raw spec.`)}}if(!DIA(v)){r.logger.debug(`Non-OpenAPI spec detected at ${b.absoluteFilePath}, skipping`);continue}let _;try{_=JSON.parse(v)}catch{_=sMe(v)}A.push(_),r.logger.debug(`Loaded OpenAPI spec from ${b.absoluteFilePath} (${v.length} characters)`)}catch(v){r.logger.debug(`Failed to read OpenAPI spec file ${b.absoluteFilePath}: ${v}`)}if(A.length>0){let b=RIA(A,r);u=JSON.stringify(b,null,2),r.logger.debug(`Combined ${A.length} OpenAPI spec(s) for AI enhancement`)}for(let b of o)try{let v=await H$s(b.absoluteFilePath,r),_=await G$s({sourceFilePath:b.absoluteFilePath,context:r});if(_.invalidCount>0){for(let{example:E}of _.invalidExamples){let P=`${E.method.toLowerCase()}:${E.endpointPath}`;l.add(P)}let O=await okl({sourceFilePath:b.absoluteFilePath,context:r});r.logger.info(`Removed ${O.removedCount} stale AI examples from ${b.absoluteFilePath}, ${l.size} endpoints will be regenerated`)}else r.logger.debug("No stale AI examples found to remove")}catch(v){r.logger.debug(`Failed to clean up stale AI examples: ${v}`)}}let m=new Set;if(o!=null&&o.length>0){for(let A of o){let b=await H$s(A.absoluteFilePath,r);for(let v of b)l.has(v)||m.add(v)}l.size>0&&r.logger.debug(`Coverage adjusted: ${m.size} preserved, ${l.size} marked for regeneration`)}let f={count:0,total:0},h=[],g=await MIA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await FNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ukl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function MIA(e,t,r,n,i,o,s,a,c,u,l,p){let m=[];for(let[O,E]of Object.entries(e.subpackages)){let P=skl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=skl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ukl(e);i.total+=m.length,r.logger.debug(`AI Examples Enhancement: ${m.length} endpoints need enhancement out of ${h} total endpoints (${s.size} already covered)`),r.logger.debug(`Collected ${m.length} work items across all packages`);let g=$3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await VIA(m,t,r,n,i,o,c,u,y,A,p);g.finish(y);let v={};for(let[O,E]of Object.entries(e.subpackages)){let P=akl(E,b);v[O]=P}let _=akl(e.rootPackage,b);return r.logger.debug(`AI Examples Enhancement Complete: ${A?.count||0}/${m.length} endpoints enhanced successfully (${h} total endpoints in API)`),{...e,subpackages:v,rootPackage:_}}function ukl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function skl(e,t,r,n){let i=[],o=new Set,s={totalEndpoints:e.endpoints.length,alreadyCovered:0,notAutogenerated:0,noExistingExamples:0,alreadyProcessed:0,noExamples:0,processed:0};for(let a of e.endpoints){let c=a;if(!qIA(c))for(let l of c.examples){let p=`${c.method.toLowerCase()}:${l.path}`;if(o.has(p)){s.alreadyProcessed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already processed in this run`);continue}let m=r?.has(p);if(!m&&t.has(p)){s.alreadyCovered++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already covered (has AI-enhanced examples)`);continue}if(!m&&!LIA(l,n,p)){s.notAutogenerated++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: has human-written examples (not auto-generated)`);continue}let f=K3t(l.requestBodyV3),h=K3t(l.responseBodyV3);if(!m&&!f&&!h){s.noExistingExamples++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: no existing request/response examples to enhance`);continue}i.push({endpoint:c,example:l,endpointKey:p}),s.processed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} selected for AI enhancement`),o.add(p);break}}return n&&(n.logger.debug(`Endpoint Filtering Results: ${s.processed}/${s.totalEndpoints} endpoints selected for AI enhancement`),n.logger.debug(`Filtering breakdown - Already covered: ${s.alreadyCovered}, Not auto-generated: ${s.notAutogenerated}, No existing examples: ${s.noExistingExamples}, No examples at all: ${s.noExamples}, Already processed: ${s.alreadyProcessed}, Selected: ${s.processed}`)),i}async function VIA(e,t,r,n,i,o,s,a,c,u,l){let p=parseInt(process.env.FERN_AI_MAX_CONCURRENT||"25",10);if(r.logger.debug(`Processing ${e.length} endpoints with max ${p} concurrent Lambda calls using rolling window queue`),l?.shouldSkip())return r.logger.debug(`Circuit breaker is open after ${l.getFailureCount()} failures (threshold: ${l.getThreshold()}). Skipping AI enhancement for remaining endpoints.`),new Map;let m=0,f=0,h=Math.max(10,Math.floor(e.length/20)),g=(_,O)=>{if(c&&u&&$3t.getInstance().update(c,_.completed),l?.shouldSkip()){r.logger.debug(`Circuit breaker opened during processing. Processed ${_.completed} endpoints.`);return}a&&o.length>0&&_.completed-f>=h&&(FNn({enhancedExamples:o,sourceFilePath:a,context:r}).then(()=>{r.logger.debug(`Saved ${o.length} examples after ${_.completed} completions`)}).catch(P=>{r.logger.debug(`Failed to save incremental results: ${P}`)}),f=_.completed)},y=e.map((_,O)=>async()=>{try{if(l?.shouldSkip())return{endpointKey:_.endpointKey,success:!1,error:"Circuit breaker is open"};let E=await UIA(_,t,r,n,i,o,s,a,c,u,O+1,l);return E?{endpointKey:E.endpointKey,enhancedReq:E.enhancedReq,enhancedRes:E.enhancedRes,extractedHeaders:E.extractedHeaders,extractedPathParams:E.extractedPathParams,extractedQueryParams:E.extractedQueryParams,success:!0}:{endpointKey:_.endpointKey,success:!1,error:"processEndpoint returned null"}}catch(E){return r.logger.debug(`Work item factory error for ${_.endpointKey}: ${E}`),{endpointKey:_.endpointKey,success:!1,error:String(E)}}}),A=new K$s(p,g),b=await A.processAll(y);if(a&&o.length>0)try{await FNn({enhancedExamples:o,sourceFilePath:a,context:r}),r.logger.debug(`Final save: ${o.length} examples saved`)}catch(_){r.logger.debug(`Failed to save final results: ${_}`)}let v=A.getStats();return r.logger.debug(`Completed processing: ${v.completed} succeeded, ${v.failed} failed`),b}async function UIA(e,t,r,n,i,o,s,a,c,u,l,p){let m=e.endpointKey;r.logger.debug(`Processing endpoint ${l}: ${e.endpoint.method} ${e.example.path}`);let f;s&&(f=await zIA(s,[{path:e.example.path,method:e.endpoint.method}],r));let h={method:e.endpoint.method,endpointPath:e.example.path,organizationId:n,operationSummary:e.endpoint.summary,operationDescription:e.endpoint.description,originalRequestExample:K3t(e.example.requestBodyV3),originalResponseExample:K3t(e.example.responseBodyV3),pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,openApiSpec:f};try{let g=await t.enhanceExample(h);p?.recordSuccess();let y=g.enhancedRequestExample!==h.originalRequestExample,A=g.enhancedResponseExample!==h.originalResponseExample;if(y||A){let b=f?FIA(f,e.example.path,e.endpoint.method):[],v=f?NIA(f,e.example.path,e.endpoint.method):[],_=f?kIA(f,e.example.path,e.endpoint.method):[],O={...e.example.headers??{}};if(b.length>0)for(let ee of b)ee in O||(O[ee]="");let E={};for(let ee of v)E[ee]=e.example.queryParameters?.[ee]??"";let P={};for(let ee of _)P[ee]=e.example.pathParameters?.[ee]??"";let x=EHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=TNn(x,P,E,O),$={...e.example.headers??{}};for(let[ee,We]of Object.entries(W))We!=null&&We!==""&&($[ee]=We);let re={...e.example.pathParameters??{}};for(let[ee,We]of Object.entries(F))We!=null&&We!==""&&(re[ee]=We);let ce={...e.example.queryParameters??{}};for(let[ee,We]of Object.entries(q))We!=null&&We!==""&&(ce[ee]=We);let G={endpoint:e.example.path,method:e.endpoint.method,pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,requestBody:y?g.enhancedRequestExample:void 0,responseBody:A?g.enhancedResponseExample:void 0,headerParameterNames:b.length>0?b:void 0,queryParameterNames:v.length>0?v:void 0,pathParameterNames:_.length>0?_:void 0};return o.push(G),i.count++,u&&u.count++,r.logger.debug(`Successfully enhanced ${e.endpoint.method} ${e.example.path}`),c&&u&&$3t.getInstance().update(c,u.count),{endpointKey:m,enhancedReq:I,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys($).length>0?$:void 0,extractedPathParams:Object.keys(re).length>0?re:void 0,extractedQueryParams:Object.keys(ce).length>0?ce:void 0}}return r.logger.debug(`No changes needed for ${e.endpoint.method} ${e.example.path}`),{endpointKey:m,enhancedReq:g.enhancedRequestExample,enhancedRes:g.enhancedResponseExample}}catch(g){p?.recordFailure(),r.logger.debug(`Endpoint ${e.endpoint.method} ${e.example.path} failed: ${g}`)}return r.logger.debug(`Failed to enhance ${e.endpoint.method} ${e.example.path}`),null}function akl(e,t){let r=e.endpoints.map(n=>{let i=n,o=i.examples.map(s=>{let a=`${i.method.toLowerCase()}:${s.path}`,c=t.get(a);if(c){let u={...s};if(c.enhancedReq!==void 0)if(u.requestBody=c.enhancedReq,s.requestBodyV3)if(typeof s.requestBodyV3.value=="object"&&s.requestBodyV3.value!==null&&!Array.isArray(s.requestBodyV3.value)&&Object.values(s.requestBodyV3.value).some(p=>q$s(p))){let p=c.enhancedReq,m=s.requestBodyV3.value,f={};for(let[h,g]of Object.entries(m))h in p?f[h]={...g,value:p[h]}:f[h]=g;u.requestBodyV3={...s.requestBodyV3,value:f}}else u.requestBodyV3={...s.requestBodyV3,value:c.enhancedReq};else u.requestBodyV3={type:"json",value:c.enhancedReq};return c.enhancedRes!==void 0&&(u.responseBody=c.enhancedRes,u.responseBodyV3=s.responseBodyV3?{...s.responseBodyV3,value:c.enhancedRes}:{type:"json",value:c.enhancedRes}),c.extractedHeaders!==void 0&&(u.headers={...s.headers??{},...c.extractedHeaders}),c.extractedPathParams!==void 0&&(u.pathParameters={...s.pathParameters??{},...c.extractedPathParams}),c.extractedQueryParams!==void 0&&(u.queryParameters={...s.queryParameters??{},...c.extractedQueryParams}),u}return s});return{...n,examples:o}});return{...e,endpoints:r}}function LIA(e,t,r){let i=K3t(e.requestBodyV3),o=K3t(e.responseBodyV3),s=kNn(i,t,`${r}:request`),a=kNn(o,t,`${r}:response`),c=s.total+a.total,u=s.autogenerated+a.autogenerated;if(c===0)return!0;let l=u/c,p=l>=.3;return t&&r&&(p?t.logger.debug(`Endpoint ${r} considered auto-generated: ${u}/${c} (${(l*100).toFixed(1)}%) values are generic`):t.logger.debug(`Endpoint ${r} flagged as human-written: only ${u}/${c} (${(l*100).toFixed(1)}%) values are generic (threshold: ${.3*100}%)`)),p}function kNn(e,t,r){if(e==null)return{autogenerated:0,total:0};if(typeof e=="string"){let n=e===Co.STRING||e===Co.BASE64||e===Co.DATE||e===Co.DATE_TIME||e===Co.UUID||e===Co.BIG_INTEGER||Co.SAMPLE_STRINGS.includes(e)||e==="";return!n&&t&&r&&t.logger.debug(`Non-generic string found at ${r}: "${e}"`),{autogenerated:n?1:0,total:1}}if(typeof e=="number"){let n=e===Co.DOUBLE||e===Co.FLOAT||e===Co.INT||e===Co.INT64||e===Co.UINT||e===Co.UINT64||e===0;return!n&&t&&r&&t.logger.debug(`Non-generic number found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(typeof e=="boolean"){let n=e===Co.BOOLEAN;return!n&&t&&r&&t.logger.debug(`Non-generic boolean found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(Array.isArray(e)){if(e.length===0)return{autogenerated:0,total:0};let n=0,i=0;return e.forEach((o,s)=>{let a=kNn(o,t,r?`${r}[${s}]`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}if(typeof e=="object"){let n=0,i=0;return Object.entries(e).forEach(([o,s])=>{let a=kNn(s,t,r?`${r}.${o}`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}return t&&r&&t.logger.debug(`Unknown type at ${r}: ${typeof e} = ${e}`),{autogenerated:0,total:1}}function qIA(e){try{let t=e;if(t.v2Examples?.userSpecifiedExamples&&typeof t.v2Examples.userSpecifiedExamples=="object"){let r=t.v2Examples.userSpecifiedExamples;return Object.keys(r).length>0}if(t.v2Responses?.responses){for(let r of t.v2Responses.responses)if(r.body?.v2Examples?.userSpecifiedExamples&&typeof r.body.v2Examples.userSpecifiedExamples=="object"){let n=r.body.v2Examples.userSpecifiedExamples;if(Object.keys(n).length>0)return!0}}return!1}catch{return!1}}function K3t(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}_w();pr();_w();function lkl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return pkl({scheme:n,playgroundConfig:t,context:r})}}function pkl({scheme:e,playgroundConfig:t,context:r}){switch(e.type){case"basic":return{type:"basicAuth",passwordName:e.password.originalName,usernameName:e.username.originalName,description:e.docs,passwordAlwaysEmpty:e.passwordOmit};case"bearer":return{type:"bearerAuth",tokenName:e.token.originalName,description:e.docs};case"header":return{type:"header",headerWireValue:e.name.wireValue,nameOverride:e.name.name.originalName,prefix:e.prefix,description:e.docs};case"oauth":{let n=e.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(i=>i.name.originalName).join(".")||"$.body.access_token";return t?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:vn.EndpointId(e.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:vn.JqString(n),headerName:e.configuration.tokenHeader,tokenPrefix:e.configuration.tokenPrefix,description:e.docs}}}:{type:"bearerAuth",tokenName:"token",description:e.docs}}case"inferred":{e.tokenEndpoint.authenticatedRequestHeaders.length>1&&r.logger.warn("Inferred auth scheme has multiple authenticated request headers. Only the `Authentication` or first header will be pushed to FDR.");let n=e.tokenEndpoint.authenticatedRequestHeaders.find(o=>o.headerName.toLowerCase()==="authorization");if(n)return n.responseProperty.propertyPath!=null&&n.responseProperty.propertyPath.length>0&&r.logger.warn("Inferred Authentication header has a property path. The property wirevalue will be pushed to FDR without property path."),{type:"bearerAuth",tokenName:n.responseProperty.property.name.wireValue,description:e.docs};let i=e.tokenEndpoint.authenticatedRequestHeaders[0];return i?{type:"header",headerWireValue:i.headerName,prefix:i.valuePrefix,nameOverride:void 0,description:e.docs}:{type:"bearerAuth",tokenName:"token",description:e.docs}}default:Ue(e)}}function fkl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=pkl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();_w();Ni();_w();function dkl(e){return e._visit({alias:t=>({type:"alias",value:Ig(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?t.default.name.wireValue:void 0,values:t.values.map(r=>({description:r.docs??void 0,value:r.name.wireValue,availability:RP(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>vn.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:vn.PropertyKey(r.name.wireValue),valueType:Ig(r.valueType),availability:RP(r.availability),propertyAccess:r.propertyAccess})),extraProperties:JIA(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:RP(n.availability),description:n.docs,propertyAccess:n.propertyAccess}));return{type:"discriminatedUnion",discriminant:t.discriminant.wireValue,variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:n.discriminantValue.wireValue,displayName:n.displayName,availability:n.availability!=null?RP(n.availability):void 0,additionalProperties:Er.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[vn.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:vn.PropertyKey(i.name.wireValue),valueType:Ig(i.type),description:void 0,availability:void 0,propertyAccess:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+n.shape.propertiesType)}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?r.type.name.originalName:void 0,description:r.docs??void 0,type:Ig(r.type),availability:void 0,displayName:r.type.type==="named"?r.type.displayName:void 0}))}),_other:()=>{throw new Error("Unknown Type shape: "+e.type)}})}function Ig(e){return e._visit({container:t=>Er.types.ContainerType._visit(t,{list:r=>({type:"list",itemType:Ig(r),minItems:void 0,maxItems:void 0}),map:({keyType:r,valueType:n})=>({type:"map",keyType:Ig(r),valueType:Ig(n),minProperties:void 0,maxProperties:void 0}),optional:r=>({type:"optional",itemType:Ig(r),defaultValue:void 0}),nullable:r=>({type:"nullable",itemType:Ig(r)}),set:r=>({type:"set",itemType:Ig(r),minItems:void 0,maxItems:void 0}),literal:r=>Er.types.Literal._visit(r,{boolean:n=>({type:"literal",value:{type:"booleanLiteral",value:n}}),string:n=>({type:"literal",value:{type:"stringLiteral",value:n}}),_other:()=>{throw new Error("Unknown literal type: "+r.type)}}),_other:()=>{throw new Error("Unknown container reference: "+t.type)}}),named:t=>({type:"id",value:vn.TypeId(t.typeId),default:void 0}),primitive:t=>({type:"primitive",value:Er.types.PrimitiveTypeV1._visit(t.v1,{integer:()=>GIA(t.v2),float:()=>mkl(t.v2),double:()=>mkl(t.v2),string:()=>WIA(t.v2),long:()=>HIA(t.v2),boolean:()=>({type:"boolean",default:t.v2?.type==="boolean"?t.v2.default:void 0}),dateTime:()=>({type:"datetime",default:void 0}),date:()=>({type:"date",default:void 0}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",mimeType:void 0,default:void 0}),bigInteger:()=>({type:"bigInteger",default:t.v2?.type==="bigInteger"?t.v2.default:void 0}),uint:()=>$IA(t.v2),uint64:()=>KIA(t.v2),dateTimeRfc2822:()=>({type:"datetime",default:void 0}),_other:()=>{throw new Error("Unknown primitive: "+t.v1)}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new Error("Unknown Type reference: "+e.type)}})}function WIA(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",format:t?.format,regex:t?.pattern,minLength:t?.minLength,maxLength:t?.maxLength,default:e!=null&&e.type==="string"?e.default:void 0}}function GIA(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="integer"?e.default:void 0}}function mkl(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="double"?e.default:void 0}}function HIA(e){let t=e!=null&&e.type==="long"?e.validation:void 0;return{type:"long",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="long"?e.default:void 0}}function $IA(e){let t=e!=null&&e.type==="uint"?e.validation:void 0;return{type:"uint",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint"?e.default:void 0}}function KIA(e){let t=e!=null&&e.type==="uint64"?e.validation:void 0;return{type:"uint64",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint64"?e.default:void 0}}function JIA(e){return typeof e=="boolean"?e?Tn.unknown():void 0:typeof e=="string"?{type:"id",value:vn.TypeId(e),default:void 0}:Ig(e)}function Z$s(e,t,r,n){let i=e.service!=null?t.services[e.service]:void 0,o=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,s=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:i!=null?XIA(i,t):[],webhooks:o!=null?YIA(o):[],websockets:s!=null?[ZIA(s,t)]:[],types:[...e.types.map(c=>vn.TypeId(c)),...Object.keys(n??{}).map(c=>vn.TypeId(c))],subpackages:e.subpackages.map(c=>vn.api.v1.SubpackageId(c)),pointsTo:e.navigationConfig!=null?vn.api.v1.SubpackageId(e.navigationConfig.pointsTo):void 0,graphqlOperations:r?Object.values(r):[]}}function YIA(e){return e.map(t=>{let r=[];if(t.v2Examples!=null){for(let[n,i]of Object.entries(t.v2Examples.userSpecifiedExamples))r.push({name:i.name??n,payload:i.payload});for(let[n,i]of Object.entries(t.v2Examples.autogeneratedExamples))r.push({name:i.name??n,payload:i.payload})}else r.push(...t.examples?.map(n=>({name:n.name?.originalName,payload:n.payload.jsonExample}))??[]);return{description:t.docs??void 0,availability:RP(t.availability),id:vn.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??Obt(t.name.originalName),headers:t.headers.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:RP(n.availability)})),payload:cCA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(X$s).filter(ru)}})}function XIA(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],o=[];if(n.v2Examples!=null){let a,c=n.v2Examples.userSpecifiedExamples,u=n.v2Examples.autogeneratedExamples,l=Object.values(c).map(m=>m.response?.statusCode).filter((m,f,h)=>h.indexOf(m)!==f).length>0;for(let[m,f]of Object.entries(c))a=gkl({shouldUseExampleName:f.displayName!=null||l,exampleName:f.displayName??m,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a);let p=Object.values(u).map(m=>m.response?.statusCode).filter((m,f,h)=>h.indexOf(m)!==f).length>0;for(let[m,f]of Object.entries(u))a=gkl({shouldUseExampleName:p,exampleName:f.displayName??m,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a)}else if(n.userSpecifiedExamples.length>0)o.push(...n.userSpecifiedExamples.map(a=>Y$s({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(ru));else if(i!=null){let a=Y$s({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=fqt({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=Y$s({autogeneratedExample:a,irEndpoint:n,ir:t});if(c!=null){let u={...c,responseBodyV3:{type:"filename",value:"<bytes>"}};o.push(u)}}}let s={slug:void 0,availability:RP(n.availability??e.availability),auth:n.auth,authV2:eCA(n.security),multiAuth:tCA(n.security,t.auth),description:n.docs??void 0,method:oCA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?rCA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??Obt(n.name.originalName),path:n.basePath!=null?{pathParameters:n.pathParameters.map(a=>({description:a.docs??void 0,key:vn.PropertyKey(a.name.originalName),type:Ig(a.valueType),availability:void 0,explode:a.explode})),parts:[...Y3t(n.basePath),...Y3t(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(a=>({description:a.docs??void 0,key:vn.PropertyKey(a.name.originalName),type:Ig(a.valueType),availability:void 0,explode:a.explode})),parts:[...t.basePath!=null?Y3t(t.basePath):[],...Y3t(e.basePath),...Y3t(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability),explode:a.explode})),headers:[...e.headers,...n.headers].map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:RP(a.availability)})),request:n.requestBody!=null?hkl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(hkl).filter(ru)},response:n.response!=null?X$s(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map(X$s).filter(ru)},errors:void 0,errorsV2:sCA(n.errors,t),examples:o,protocol:n.source?._visit({openapi:()=>({type:"rest"}),openrpc:()=>({type:"openrpc",methodName:n.id}),proto:a=>({type:"grpc",methodName:n.id,methodType:a.methodType}),_other:()=>{}}),includeInApiExplorer:n.apiPlayground};r.push(s)}return r}function ZIA(e,t){let r=[];if(e.v2Examples!=null&&(Object.keys(e.v2Examples.userSpecifiedExamples).length>0||Object.keys(e.v2Examples.autogeneratedExamples).length>0)){let n=Object.entries(e.v2Examples.userSpecifiedExamples),i=Object.entries(e.v2Examples.autogeneratedExamples),o=n.length>0?n[0]:i[0];if(o!=null){let[s,a]=o;r.push({name:s,description:"",path:a.baseUrl??"",pathParameters:a.pathParameters??{},queryParameters:a.queryParameters??{},headers:a.headers??{},messages:a.messages?.map(c=>({type:vn.api.v1.WebSocketMessageId(c.type),body:c.body}))??[]})}}else r=e.examples.map(n=>({name:n.name?.originalName,description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((i,o)=>(i[vn.PropertyKey(o.name.originalName)]=o.value.jsonExample,i),{}),queryParameters:n.queryParameters.reduce((i,o)=>(i[o.name.wireValue]=o.value.jsonExample,i),{}),headers:n.headers.reduce((i,o)=>(i[o.name.wireValue]=o.value.jsonExample,i),{}),messages:n.messages.map(i=>({type:vn.api.v1.WebSocketMessageId(i.type),body:i.body.jsonExample}))}));return{auth:e.auth,availability:RP(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?nCA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??Obt(e.name.originalName),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:vn.PropertyKey(n.name.originalName),type:Ig(n.valueType),availability:void 0,explode:n.explode})),parts:Y3t(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:Ig(n.valueType),description:n.docs,availability:RP(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:RP(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:vn.api.v1.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:lCA(n.body),description:n.docs,availability:RP(n.availability)})),examples:r}}function eCA(e){if(e==null)return;if(e.length===0)return[];let t=new Set(e.flatMap(r=>Object.keys(r)));return Array.from(t).map(r=>vn.AuthSchemeId(r))}function tCA(e,t){return e==null?t!=null&&t.requirement==="ANY"&&t.schemes.length>0?t.schemes.map(r=>({schemes:[vn.AuthSchemeId(r.key)]})):void 0:e.length===0?[]:e.map(r=>({schemes:Object.keys(r).map(n=>vn.AuthSchemeId(n))}))}function RP(e){if(e!=null)switch(e.status){case"DEPRECATED":return vn.Availability.Deprecated;case"PRE_RELEASE":return vn.Availability.Beta;case"GENERAL_AVAILABILITY":return vn.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return vn.Availability.Beta;default:Ue(e.status)}}function rCA({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl,i=t.v2BaseUrls;switch(r.type){case"singleBaseUrl":return r.environments.map(o=>({id:vn.EnvironmentId(o.id),baseUrl:o.url,audiences:o.audiences}));case"multipleBaseUrls":if(i!=null)return i.flatMap(s=>r.environments.map(a=>{let c=a.urls[s];if(c==null)throw new Error(`Encountered undefined server name "${s}" at endpoint ${t.method.toUpperCase()} ${t.path}. Expected environment ${a.id} to contain url for ${s}`);return{id:vn.EnvironmentId(s),baseUrl:c,audiences:a.audiences}})).filter((s,a,c)=>a===c.findIndex(u=>u.id===s.id&&u.baseUrl===s.baseUrl));if(n==null)throw new Error(`Expected endpoint ${t.name.originalName} to have base url.`);return r.environments.map(o=>{let s=o.urls[n];if(s==null)throw new Error(`Encountered undefined server name "${n}" at endpoint ${t.method.toUpperCase()} ${t.path.head}. Expected environment ${o.id} to contain url for ${n}`);return{id:vn.EnvironmentId(o.id),baseUrl:s,audiences:o.audiences}});default:Ue(r)}}function nCA({environmentsConfig:e,channel:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:vn.EnvironmentId(i.id),baseUrl:iCA(i.url,"wss"),audiences:i.audiences}));case"multipleBaseUrls":if(n==null)throw new Error(`Expected channel ${t.name.originalName} to have base url.`);return r.environments.map(i=>{let o=i.urls[n];if(o==null)throw new Error(`Encountered undefined server name ${o} at channel ${t.name.originalName} ${t.path.head}. Expected environment ${i.id} to contain url for ${n}`);return{id:vn.EnvironmentId(i.id),baseUrl:o,audiences:i.audiences}});default:Ue(r)}}function iCA(e,t){return e.replace(/^[^:]+/,t)}function oCA(e){return Er.http.HttpMethod._visit(e,{get:()=>vn.HttpMethod.Get,post:()=>vn.HttpMethod.Post,put:()=>vn.HttpMethod.Put,patch:()=>vn.HttpMethod.Patch,delete:()=>vn.HttpMethod.Delete,head:()=>vn.HttpMethod.Head,_other:()=>{throw new Error("Unknown http method: "+e)}})}function Y3t(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:vn.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function hkl(e){let t=Er.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??ib.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>vn.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:RP(n.availability),propertyAccess:n.propertyAccess})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??ib.APPLICATION_JSON,shape:{type:"reference",value:Ig(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:r.name.originalName,description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let o=i._visit({file:s=>({type:"file",key:vn.PropertyKey(s.key.wireValue),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),fileArray:s=>({type:"fileArray",key:vn.PropertyKey(s.key.wireValue),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),_other:()=>{}});if(o!=null)return{type:"file",value:o}},bodyProperty:i=>({type:"bodyProperty",key:vn.PropertyKey(i.name.wireValue),valueType:Ig(i.valueType),contentType:i.contentType,description:i.docs??void 0,availability:RP(i.availability),exploded:i.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},contentType:r.contentType,description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new Error("Unknown HttpRequestBody: "+e.type)}});return t!=null?{type:t,description:e.docs}:void 0}function X$s(e){let t=e.docs,r;return e.body!=null&&(r=Er.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:Ig(n.responseBodyType)}),text:()=>{},bytes:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:Ig(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:Ig(n.payload)},terminator:n.terminator}},_other:()=>{throw new Error("Unknown HttpResponse: "+e.body)}})),r!=null?{type:r,statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t}:e.statusCode!=null?{statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t,type:{type:"object",extends:[],properties:[],extraProperties:void 0}}:void 0}function sCA(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:Ig(i.type)},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,name:i.displayName??i.name.name.originalName,availability:void 0,examples:pCA(i,t),headers:i.headers!=null&&i.headers.length>0?i.headers.map(o=>({description:o.docs??void 0,key:o.name.wireValue,type:Ig(o.valueType),availability:RP(o.availability)})):void 0})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let o=[{key:vn.PropertyKey(t.errorDiscriminationStrategy.discriminant.wireValue),valueType:{type:"literal",value:{type:"stringLiteral",value:i.discriminantValue.name.originalName}},description:i.docs,availability:void 0,propertyAccess:void 0}];i.type!=null&&o.push({key:vn.PropertyKey(t.errorDiscriminationStrategy.contentProperty.wireValue),valueType:Ig(i.type),description:i.docs,availability:void 0,propertyAccess:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:o,extraProperties:void 0},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,availability:void 0,name:i.displayName??i.name.name.originalName,examples:i.examples.map(s=>({name:s.name?.originalName,responseBody:{type:"json",value:s.jsonExample},description:s.docs})),headers:i.headers!=null&&i.headers.length>0?i.headers.map(s=>({description:s.docs??void 0,key:s.name.wireValue,type:Ig(s.valueType),availability:RP(s.availability)})):void 0})}}return r}function gkl({shouldUseExampleName:e,exampleName:t,example:r,irEndpoint:n,irService:i,ir:o}){if(r==null)return;let s=u=>{if(u.valueType.type==="container"&&u.valueType.container.type==="literal")return u.valueType.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}});if(u.valueType.type==="container"&&u.valueType.container.type==="optional"&&u.valueType.container.optional.type==="container"&&u.valueType.container.optional.container.type==="literal")return u.valueType.container.optional.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}})},a={};o.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)}),i.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)}),n.headers.forEach(u=>{let l=s(u);l!=null&&(a[u.name.wireValue]=l)});let c=r.response?.body!=null?r.response.body.value:void 0;return{name:e?t:void 0,description:"",path:r.request?.endpoint.path??"",pathParameters:r.request?.pathParameters??{},queryParameters:r.request?.queryParameters??{},headers:(()=>{let l={...r.request?.headers??{}};for(let[p,m]of Object.entries(a))(l[p]===null||l[p]===void 0)&&(l[p]=m);return l})(),requestBody:r.request?.requestBody,requestBodyV3:n.requestBody?._visit({inlinedRequestBody:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,reference:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,fileUpload:u=>{if(r.request==null)return;let l={};if(Lu(r.request.requestBody)){let p=r.request.requestBody;for(let m of u.properties)m._visit({file:f=>{let h=p[f.key.wireValue];if(f.type==="file")l[f.key.wireValue]={type:"filename",value:typeof h=="string"?h:"<file1>"};else if(f.type==="fileArray"){let g=(Array.isArray(h)?h:[h]).filter(y=>typeof y=="string");l[f.key.wireValue]={type:"filenames",value:g}}},bodyProperty:f=>{if(f.style==="exploded"){let h=p[f.name.wireValue];l[f.name.wireValue]={type:"exploded",value:Array.isArray(h)?h:[h]}}else l[f.name.wireValue]={type:"json",value:p[f.name.wireValue]}},_other:m3})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??n.response?.statusCode??200,responseBody:c??void 0,responseBodyV3:c!=null?r.response?.body?._visit({json:u=>({type:"json",value:u}),stream:u=>Array.isArray(u)&&u.length>0&&u.every(aCA)?{type:"sse",value:u}:{type:"stream",value:u},error:()=>{},_other:()=>{throw new Error("Unknown ExampleResponseBody: "+r.response?.body?.type)}}):void 0,codeSamples:r.codeSamples?.map(u=>({name:u.name,description:u.docs??void 0,install:void 0,language:u.language,code:u.code})).filter(ru)}}function aCA(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function Y$s({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(a=>{let c;if(a.valueType.type==="container"&&a.valueType.container.type==="literal"?c=a.valueType.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}}):a.valueType.type==="container"&&a.valueType.container.type==="optional"&&a.valueType.container.optional.type==="container"&&a.valueType.container.optional.container.type==="literal"&&(c=a.valueType.container.optional.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}})),c!=null)return{name:a.name,value:{jsonExample:c,shape:Er.ExampleTypeReferenceShape.primitive(Er.ExamplePrimitive.string({original:c}))}}}).filter(ru),o=e?.example??t?.example;if(o==null)return;let{codeSamples:s}=e??{codeSamples:[]};return{name:o.name?.originalName,description:o.docs,path:o.url,pathParameters:[...o.rootPathParameters,...o.servicePathParameters,...o.endpointPathParameters].reduce((a,c)=>(a[vn.PropertyKey(c.name.originalName)]=c.value.jsonExample,a),{}),queryParameters:o.queryParameters.reduce((a,c)=>(a[c.name.wireValue]=c.value.jsonExample,a),{}),headers:[...i,...o.serviceHeaders,...o.endpointHeaders].reduce((a,c)=>(a[c.name.wireValue]=c.value.jsonExample,a),{}),requestBody:o.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,reference:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,fileUpload:a=>{if(o.request==null)return;let c={};if(Lu(o.request.jsonExample)){let u=o.request.jsonExample;for(let l of a.properties)l._visit({file:p=>{let m=u[p.key.wireValue];if(p.type==="file")c[p.key.wireValue]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(p.type==="fileArray"){let f=(Array.isArray(m)?m:[m]).filter(h=>typeof h=="string");c[p.key.wireValue]={type:"filenames",value:f}}},bodyProperty:p=>{if(p.style==="exploded"){let m=u[p.name.wireValue];c[p.name.wireValue]={type:"exploded",value:Array.isArray(m)?m:[m]}}else c[p.name.wireValue]={type:"json",value:u[p.name.wireValue]}},_other:m3})}return{type:"form",value:c}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??Er.http.ExampleResponse._visit(o.response,{ok:a=>a._visit({body:c=>c!=null?200:204,stream:c=>c.length>0?200:204,sse:c=>c.length>0?200:204,_other:()=>{throw new Error("Unknown ExampleResponseBody: "+a.type)}}),error:({error:a})=>{let c=n.errors[a.errorId];if(c==null)throw new Error("Cannot find error "+a.errorId);return c.statusCode},_other:()=>{throw new Error("Unknown ExampleResponse: "+o.response.type)}}),responseBody:o.response._visit({ok:a=>a._visit({body:c=>c?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:a=>a.body?.jsonExample,_other:()=>{}}),responseBodyV3:o.response._visit({ok:a=>a._visit({body:c=>c!=null?{type:"json",value:c.jsonExample}:void 0,stream:c=>({type:"stream",value:c.map(u=>u.jsonExample)}),sse:c=>({type:"sse",value:c.map(({event:u,data:l})=>({event:u,data:l.jsonExample}))}),_other:()=>{throw new Error("Unknown ExampleResponseBody: "+a.type)}}),error:a=>a.body!=null?{type:"json",value:a.body.jsonExample}:void 0,_other:()=>{throw new Error("Unknown ExampleResponse: "+o.response.type)}}),codeSamples:s?.map(a=>jG._visit(a,{language:c=>({language:c.language,code:c.code,name:c.name?.originalName,description:c.docs??void 0,install:c.install}),sdk:c=>({language:c.sdk,code:c.code,name:c.name?.originalName,description:c.docs??void 0,install:void 0}),_other:()=>{}})).filter(ru)}}function cCA(e,t){return t!=null?{type:{type:"formData",name:t.name.originalName,description:t.docs??void 0,availability:void 0,properties:t.properties.map(r=>r._visit({file:n=>{let i=n._visit({file:o=>({type:"file",key:vn.PropertyKey(o.key.wireValue),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),fileArray:o=>({type:"fileArray",key:vn.PropertyKey(o.key.wireValue),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),_other:()=>{}});if(i!=null)return{type:"file",value:i}},bodyProperty:n=>({type:"bodyProperty",key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),contentType:n.contentType,description:n.docs??void 0,availability:RP(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},description:t.docs??void 0}:uCA(e)}function uCA(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>vn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:vn.PropertyKey(t.name.wireValue),valueType:Ig(t.valueType),availability:RP(t.availability),propertyAccess:void 0})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:Ig(e.payloadType)},description:e.docs};default:Ue(e)}}function lCA(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>vn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:vn.PropertyKey(t.name.wireValue),valueType:Ig(t.valueType),availability:RP(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Ig(e.bodyType)};default:Ue(e)}}function pCA(e,t){let r=e.v2Examples?.userSpecifiedExamples,n=e.v2Examples?.autogeneratedExamples,i=e.examples;if(r!=null&&Object.keys(r).length>0)return Object.entries(r).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(n!=null&&Object.keys(n).length>0)return Object.entries(n).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(i.length>0)return i.map(s=>({name:s.name?.originalName,responseBody:{type:"json",value:s.jsonExample},description:s.docs}));let o=fCA(e,t);return o!=null?[o]:[]}function fCA(e,t){if(e.type==null||e.type.type!=="named")return;let r=e.type.typeId,n=t.types[r];if(n==null||n.shape.type!=="object")return;let i={},o=!1;for(let s of n.shape.properties){let a=s.name.wireValue,c=s.v2Examples;if(c?.userSpecifiedExamples!=null){let u=Object.values(c.userSpecifiedExamples);if(u.length>0){i[a]=u[0],o=!0;continue}}if(c?.autogeneratedExamples!=null){let u=Object.values(c.autogeneratedExamples);if(u.length>0){i[a]=u[0];continue}}}if(o)return{name:void 0,responseBody:{type:"json",value:i},description:void 0}}function VU({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:Z$s(e.rootPackage,e,n,i),apiName:s??e.apiName.originalName,auth:lkl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:fkl({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:RP(c.availability),description:c.docs??void 0,key:c.name.wireValue,type:Ig(c.valueType)})),navigation:void 0};for(let[c,u]of Object.entries(e.types))a.types[vn.TypeId(c)]={description:u.docs??void 0,name:u.name.name.originalName,shape:dkl(u.shape),availability:RP(u.availability),displayName:u.name.displayName};for(let[c,u]of Object.entries(i))a.types[vn.TypeId(c)]=u;for(let[c,u]of Object.entries(e.subpackages)){let l=u.service!=null?e.services[u.service]:void 0;a.subpackages[vn.api.v1.SubpackageId(c)]={subpackageId:vn.api.v1.SubpackageId(c),displayName:l?.displayName??u.displayName,name:u.name.originalName,description:u.docs??void 0,...Z$s(u,e)}}return a}_w();async function eKs({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Nw({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1},readme:void 0,version:void 0,packageName:void 0,context:r,sourceResolver:new bE(r,t)}),p=uG({token:n.value}),m=VU({ir:l,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a,graphqlTypes:c,context:r});if(u){let g=t.getSources().filter(y=>y.type==="openapi").map(y=>({absoluteFilePath:y.absoluteFilePath,absoluteFilePathToOverrides:y.absoluteFilePathToOverrides}));m=await J3t(m,u,r,n,e,g.length>0?g:void 0,l.apiName.originalName)}let f=await p.api.v1.register.registerApiDefinition({orgId:vn.OrgId(e),apiId:vn.ApiId(l.apiName.originalName),definition:m});if(f.ok)return r.logger.debug(`Registered API Definition ${f.body.apiDefinitionId}`),{id:f.body.apiDefinitionId,ir:l};switch(f.error.error){case"UnauthorizedError":case"UserNotInOrgError":return r.failAndThrow("You do not have permissions to register the docs. Reach out to support@buildwithfern.com");default:return r.failAndThrow("Failed to register API",f.error)}}var mCA=new cHr({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function SRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return uHr(sHr(VU({ir:e,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:r,graphqlOperations:i,graphqlTypes:o,context:n}),vP.ApiDefinitionId(t),mCA))}var ykl=He(require("path"),1);async function h7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&ykl.default.isAbsolute(e)&&t.add(e)}async function Akl({parsedDocsConfig:e}){let t=new Set;return e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.navigation.type==="productgroup"&&e.navigation.products.forEach(n=>{n.image!=null&&t.add(n.image)}),(await tKs({navigation:e.navigation})).forEach(n=>{t.add(n)}),e.navbarLinks&&await Promise.all(e.navbarLinks.map(async n=>{n.type==="dropdown"&&n.links.map(async i=>{i.icon&&await h7({iconPath:i.icon,filepaths:t}),i.rightIcon&&await h7({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await h7({iconPath:n.icon,filepaths:t}),n.rightIcon&&await h7({iconPath:n.rightIcon,filepaths:t}))})),e.js!=null&&e.js.files.forEach(n=>{t.add(n.absolutePath)}),e.pageActions?.options?.custom!=null&&await Promise.all(e.pageActions.options.custom.map(async n=>{n.icon!=null&&await h7({iconPath:n.icon,filepaths:t})})),t}async function tKs({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>X3t({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await h7({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>X3t({item:n,filepaths:t}))):r.child.type==="variants"&&r.child.variants!=null&&await Promise.all(r.child.variants.flatMap(n=>{let i=[];return n.icon!=null&&i.push(h7({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>X3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await X3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await h7({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await X3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function X3t({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>X3t({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await h7({iconPath:e.icon,filepaths:t});break}}function dCA(e,t,r){return e.replace(/\[([^\]]*)\]\(([^)]+\.mdx?(?:#[^)]*)?)\)/g,(n,i,o)=>{let s=o.indexOf("#"),a=s>=0?o.substring(0,s):o,c=s>=0?o.substring(s):"",u=_He({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function zNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)zNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=dCA(o,t,r):typeof o=="object"&&zNn(o,t,r)}function QNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)QNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&QNn(i,t,r)}pr();async function bkl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){gCA(e)?await Promise.all(e.map(async i=>{yCA(i)?await Promise.all(i.layout.map(async o=>{await MNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):ACA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await MNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await MNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function MNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await $ce(e,{alphabetized:Ut,api:Ut,apiName:Ut,audiences:Ut,displayErrors:Ut,tagDescriptionPages:Ut,snippets:Ut,summary:Ut,title:Ut,layout:Ut,collapsed:Ut,icon:Ut,slug:Ut,hidden:Ut,skipSlug:Ut,paginated:Ut,playground:Ut,flattened:Ut,path:Ut,page:Ut,featureFlag:Ut,openrpc:Ut,postman:Ut,contents:async i=>{i!=null&&await Promise.all(i.map(async o=>{await MNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),hCA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function hCA(e){return e.api!=null}function gCA(e){return e[0]?.tab!=null}function yCA(e){return"layout"in e&&Array.isArray(e.layout)}function ACA(e){return"variants"in e&&Array.isArray(e.variants)}function UU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}vkl.default.extend(Okl.default);var bCA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),_kl=0,_CA=async({ir:e})=>(_kl++,`${e.apiName.snakeCase.unsafeName}-${_kl}`),jle=class{domain;docsWorkspace;ossWorkspaces;apiWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;targetAudiences;constructor({domain:t,docsWorkspace:r,ossWorkspaces:n,apiWorkspaces:i,taskContext:o,editThisPage:s,uploadFiles:a=bCA,registerApi:c=_CA,targetAudiences:u}){this.domain=t,this.docsWorkspace=r,this.ossWorkspaces=n,this.apiWorkspaces=i,this.taskContext=o,this.editThisPage=s,this.uploadFiles=a,this.registerApi=c,this.targetAudiences=u}#e=SNn.init();shouldIncludeByAudience(t){return!t||t.length===0||!this.targetAudiences||this.targetAudiences.length===0?!0:t.some(r=>this.targetAudiences?.includes(r))}applyAudienceFiltering(t){let r=this.filterNavigationByAudience(t.navigation);return{...t,navigation:r}}filterNavigationByAudience(t){return t.type==="untabbed"||t.type==="tabbed"?t:t.type==="versioned"?{...t,versions:t.versions.filter(r=>this.shouldIncludeByAudience(this.getRawVersionAudiences(r.version)))}:t.type==="productgroup"?{...t,products:t.products.filter(r=>{let n=this.getRawProductAudiences(r.product);return this.shouldIncludeByAudience(n)})}:t}getRawProductAudiences(t){let n=this.docsWorkspace.config.products?.find(i=>i.displayName===t);return PTr(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return PTr(n?.audiences)}_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new Error("parsedDocsConfig is not set");return this._parsedDocsConfig}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;markdownFilesToSidebarTitle=new Map;markdownFilesToNoIndex=new Map;markdownFilesToTags=new Map;markdownFilesToAvailability=new Map;rawMarkdownFiles={};referencedMarkdownFiles=[];pendingApiRegistrations=[];pendingApiCounter=0;async resolve(){let t=performance.now(),r=process.memoryUsage();this.referencedMarkdownFiles=[],this.taskContext.logger.debug("Parsing docs configuration...");let n=performance.now();this._parsedDocsConfig=await X3s({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[Xe.of(X)]=Ne;let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let X=performance.now();await bkl({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:Se})=>{(await Se.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(Ye=>{let _e=dl(this.docsWorkspace.absoluteFilePath,Ye.absoluteFilepath);this.parsedDocsConfig.pages[_e]=Ye.contents,this.rawMarkdownFiles[Xe.of(_e)]=Ye.contents})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ne=performance.now()-X;this.taskContext.logger.debug(`Visited navigation AST in ${Ne.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages)){let Se=await vHe({markdown:Ne,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext});for(let _e of Se.referencedFiles)p.has(_e.absoluteFilePath)||(p.add(_e.absoluteFilePath),this.referencedMarkdownFiles.push(_e));let Je=await wRr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=xRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Xe.of(X)]=Ye}let m=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${m.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),h=await Akl({parsedDocsConfig:this.parsedDocsConfig}),g=performance.now()-f;this.taskContext.logger.debug(`Collected ${h.size} files in ${g.toFixed(0)}ms`),this.taskContext.logger.debug("Parsing image paths from markdown files...");let y=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))try{let{filepaths:Se,markdown:Je}=GVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Xe.of(X)]=Je;for(let Ye of Se)h.add(Ye)}catch(Se){throw this.taskContext.logger.error(`Failed to parse ${X}: ${Se instanceof Error?Se.message:String(Se)}`),Se}let A=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${A.toFixed(0)}ms`);let b=Array.from(h).map(X=>({absoluteFilePath:X,relativeFilePath:this.toRelativeFilepath(X)}));this.taskContext.logger.info(`Uploading ${b.length} files...`);let v=performance.now(),_=await this.uploadFiles(b),O=performance.now()-v;this.taskContext.logger.info(`Uploaded ${_.length} files in ${O.toFixed(0)}ms`),_.forEach(X=>{this.collectedFileIds.set(X.absoluteFilePath,X.fileId)}),this.taskContext.logger.debug("Building navigation tree...");let E=performance.now(),P=await this.toRootNode(),x=performance.now()-E;this.taskContext.logger.debug(`Built navigation tree in ${x.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let I=performance.now(),F=await this.getMarkdownFilesToFullyQualifiedPathNames(P),q=performance.now()-I;if(this.taskContext.logger.debug(`Got path names in ${q.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let X=performance.now();for(let Se of this.pendingApiRegistrations){this.resolveLinksInIrDocs(Se.ir,F);let Je=await this.registerApi({ir:Se.ir,snippetsConfig:Se.snippetsConfig,playgroundConfig:Se.playgroundConfig,apiName:Se.apiName,workspace:Se.workspace,graphqlOperations:Se.graphqlOperations,graphqlTypes:Se.graphqlTypes});QNn(Se.apiReferenceNode,Se.tempApiDefinitionId,Je)}let Ne=performance.now()-X;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ne.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let W=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Xe.of(X)]=ERr(Ne,this.collectedFileIds,F,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);let $=performance.now()-W;this.taskContext.logger.debug(`Replaced image paths in ${$.toFixed(0)}ms`),this.taskContext.logger.debug("Building page content...");let re={};Object.entries(this.parsedDocsConfig.pages).forEach(([X,Ne])=>{let{url:Se,launch:Je}=vCA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Xe.of(X)];re[FV.PageId(X)]={markdown:Ne,editThisPageUrl:Se?FV.Url(Se):void 0,editThisPageLaunch:Je,rawMarkdown:Ye}}),this.taskContext.logger.debug("Converting docs configuration...");let ce=performance.now(),G=await this.convertDocsConfiguration(P),ee=performance.now()-ce;this.taskContext.logger.debug(`Converted docs configuration in ${ee.toFixed(0)}ms`);let We={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){this.taskContext.logger.debug("Processing MDX components...");let X=performance.now(),Ne=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async Je=>{let Ye=aa(this.docsWorkspace.absoluteFilePath,Je);(await(0,wHe.stat)(Ye)).isDirectory()?(await iR(Ye,"{js,ts,jsx,tsx,md,mdx}")).forEach(dt=>{Ne.add(dt)}):Ye.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ne.add(Ye)})),We=Object.fromEntries(await Promise.all([...Ne].map(async Je=>{let Ye=this.toRelativeFilepath(Je),_e=(await(0,wHe.readFile)(Je)).toString();return[Ye,_e]})));let Se=performance.now()-X;this.taskContext.logger.debug(`Processed ${Ne.size} MDX component files in ${Se.toFixed(0)}ms`)}if(this.referencedMarkdownFiles.length>0){this.taskContext.logger.debug(`Adding ${this.referencedMarkdownFiles.length} referenced markdown files to jsFiles...`);for(let X of this.referencedMarkdownFiles)We[X.relativeFilePath]=X.content}if(this._parsedDocsConfig.header!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.header),Ne=(await(0,wHe.readFile)(this._parsedDocsConfig.header)).toString();We[X]=Ne,this.taskContext.logger.debug(`Added custom header component: ${X}`)}if(this._parsedDocsConfig.footer!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.footer),Ne=(await(0,wHe.readFile)(this._parsedDocsConfig.footer)).toString();We[X]=Ne,this.taskContext.logger.debug(`Added custom footer component: ${X}`)}let $e=performance.now()-t,Z=process.memoryUsage();return this.taskContext.logger.debug(`Total resolve time: ${$e.toFixed(0)}ms, Memory delta: RSS=${((Z.rss-r.rss)/1024/1024).toFixed(2)}MB`),{config:G,pages:re,jsFiles:We}}resolveFilepath(t){if(t!=null)return aa(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return dl(this.docsWorkspace.absoluteFilePath,t)}extractAllFrontmatterData(t){for(let[r,n]of Object.entries(t)){let i=(0,Ekl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();ORr(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=nr.migrate.FernNavigationV1ToLatest.create().root(t);return nr.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!nr.isPage(o))return;let a=nr.getPageId(o);if(a==null)return;let c=Pt(this.docsWorkspace.absoluteFilePath,Xe.of(a));r[c]??=s}),r}getDocsBasePath(){return new URL(UU(this.domain)).pathname}async convertDocsConfiguration(t){return{aiChatConfig:this.parsedDocsConfig.aiChatConfig!=null?{model:this.parsedDocsConfig.aiChatConfig.model,systemPrompt:this.parsedDocsConfig.aiChatConfig.systemPrompt,location:this.parsedDocsConfig.aiChatConfig.location,datasources:this.parsedDocsConfig.aiChatConfig.datasources?.map(n=>({url:n.url,title:n.title}))}:void 0,hideNavLinks:void 0,title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?FV.Url(this.parsedDocsConfig.logo?.href):void 0,logoRightText:this.parsedDocsConfig.logo?.rightText,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(n=>n.type==="dropdown"?{...n,links:n.links?.map(i=>({...i,url:FV.Url(i.url),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)})),icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon)}:n.type==="github"?{...n,url:FV.Url(n.url)}:{...n,url:FV.Url(n.url),icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon)}),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,settings:this.parsedDocsConfig.settings,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:this.parsedDocsConfig.integrations,footerLinks:this.parsedDocsConfig.footerLinks?.map(n=>({...n,value:FV.Url(n.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,languages:this.parsedDocsConfig.languages,analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:this.parsedDocsConfig.analyticsConfig?.gtm?{containerId:this.parsedDocsConfig.analyticsConfig.gtm.containerId}:void 0,ga4:this.parsedDocsConfig.analyticsConfig?.ga4?{measurementId:this.parsedDocsConfig.analyticsConfig.ga4.measurementId}:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,editThisPageLaunch:this.editThisPage?.launch??"github",pageActions:this.convertPageActions(),theme:this.parsedDocsConfig.theme!=null?{sidebar:this.parsedDocsConfig.theme.sidebar,body:this.parsedDocsConfig.theme.body,tabs:this.parsedDocsConfig.theme.tabs,"page-actions":this.parsedDocsConfig.theme.pageActions,footerNav:this.parsedDocsConfig.theme.footerNav,"language-switcher":this.parsedDocsConfig.theme.languageSwitcher,"product-switcher":this.parsedDocsConfig.theme.productSwitcher}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0,header:this.parsedDocsConfig.header?this.toRelativeFilepath(this.parsedDocsConfig.header):void 0,footer:this.parsedDocsConfig.footer?this.toRelativeFilepath(this.parsedDocsConfig.footer):void 0}}getFernWorkspaceForApiSection(t){if(t.apiName!=null){let n=this.apiWorkspaces.find(i=>i.workspaceName===t.apiName);if(n!=null)return n}else if(this.apiWorkspaces.length===1&&this.apiWorkspaces[0]!=null)return this.apiWorkspaces[0];let r=t.apiName?`Failed to load API Definition '${t.apiName}' referenced in docs.
2117
2117
  A valid API configuration was not found at the path: fern/apis/${t.apiName}.
2118
2118
  Learn more about project structure:
2119
2119
  https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`:`Failed to load API Definition referenced in docs.
@@ -2125,7 +2125,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
2125
2125
  Learn more about project structure:
2126
2126
  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 wB(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?OCA(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 wB(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 wB(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=ikl(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(_){u=_}let m;if(t.tagDescriptionPages&&p)try{let O=await(c??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});O.tags.tagsById&&(m=Object.fromEntries(Object.entries(O.tags.tagsById).filter(([E,P])=>P.description&&P.description.trim().length>0).map(([E,P])=>[ao(E),{id:String(P.id),description:P.description}])))}catch(_){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(_))}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(_){this.taskContext.logger.debug(`Could not load workspace: ${_}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=rj(s,{onError:_=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${_}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),h=t.apiName??a?.workspaceName??c?.workspaceName,g=`__pending_api_${this.pendingApiCounter++}__`,y=SRr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new CNn(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[_,O]of b.entries()){let E=_.split("/").pop()||_,P=Xe.of(E),x=O;this.docsWorkspace.config.settings?.substituteEnvVars&&(x=rj(O,{onError:I=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${I}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[P]=x,this.parsedDocsConfig.pages[P]=x}let v=A.get();return this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:h,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types,tempApiDefinitionId:g,apiReferenceNode:v}),v}async toChangelogNode(t,r,n){return new EEt(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 O3t({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=Pt(r,Xe.of("_navigation.yml"));if(!(0,rKs.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,wHe.readFile)(n,"utf-8")).split(`
2127
2127
  `).filter(s=>!s.startsWith("#")).join(`
2128
- `);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=Pt(t,Xe.of(r));if(!(0,rKs.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,wHe.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 wB(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 EEt(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(ru),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 wB(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")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};zNn(t,r,n)}};function vCA(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 OCA(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(ru)}async function nKs(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:()=>wkl,ApiDefinitionId:()=>Wkl,ApiId:()=>Kkl,Availability:()=>lzl,DocsConfigId:()=>Jkl,EndpointId:()=>Xkl,EndpointPathLiteral:()=>czl,EnvironmentId:()=>Ykl,FileId:()=>nzl,HttpMethod:()=>uzl,IndexSegmentId:()=>xkl,JqString:()=>ozl,OrgId:()=>Hkl,PageId:()=>rzl,PayloadLocation:()=>kzl,PropertyKey:()=>szl,PullRequestState:()=>Tzl,RoleId:()=>azl,TokenId:()=>$kl,TypeId:()=>tzl,Url:()=>izl,VersionId:()=>Gkl,WebSocketId:()=>Zkl,WebhookId:()=>ezl,algolia:()=>iKs,api:()=>dKs,commons:()=>hKs,diff:()=>pzl,docs:()=>wKs,generators:()=>PKs,git:()=>IKs,navigation:()=>jKs,sdks:()=>TKs,snippets:()=>Fzl,snippetsFactory:()=>Nzl,templates:()=>DKs,tokens:()=>zzl});var iKs={};D(iKs,{AlgoliaSearchIndex:()=>wkl,IndexSegmentId:()=>xkl});function wkl(e){return e}function xkl(e){return e}var dKs={};D(dKs,{latest:()=>aKs,v1:()=>mKs});var aKs={};D(aKs,{AuthSchemeId:()=>Pkl,WebhookHttpMethod:()=>jkl,auth:()=>oKs,commons:()=>Ikl,endpoint:()=>Ckl,type_:()=>Skl,webhook:()=>sKs,websocket:()=>Bkl});var oKs={};D(oKs,{AuthSchemeId:()=>Pkl});function Pkl(e){return e}var Ikl={};var Ckl={};var Skl={};var sKs={};D(sKs,{WebhookHttpMethod:()=>jkl});var jkl={Get:"GET",Post:"POST"};var Bkl={};var mKs={};D(mKs,{SubpackageId:()=>Vkl,WebSocketMessageId:()=>Ukl,WebSocketMessageOrigin:()=>Lkl,WebhookHttpMethod:()=>qkl,commons:()=>fKs,db:()=>cKs,read:()=>lKs,register:()=>pKs});var cKs={};D(cKs,{endpoint:()=>Tkl});var Tkl={};var lKs={};D(lKs,{SupportedLanguage:()=>Dkl,endpoint:()=>uKs,type_:()=>Rkl,webhook:()=>Fkl,websocket:()=>Nkl});var uKs={};D(uKs,{SupportedLanguage:()=>Dkl});var Dkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Rkl={};var Fkl={};var Nkl={};var pKs={};D(pKs,{SourceId:()=>ECA,endpoint:()=>kkl,type_:()=>zkl,webhook:()=>Qkl,websocket:()=>Mkl});var kkl={};var zkl={};var Qkl={};var Mkl={};function ECA(e){return e}var fKs={};D(fKs,{SubpackageId:()=>Vkl,WebSocketMessageId:()=>Ukl,WebSocketMessageOrigin:()=>Lkl,WebhookHttpMethod:()=>qkl});function Vkl(e){return e}function Ukl(e){return e}var Lkl={Client:"client",Server:"server"};var qkl={Get:"GET",Post:"POST"};var hKs={};D(hKs,{ApiDefinitionId:()=>Wkl,ApiId:()=>Kkl,Availability:()=>lzl,DocsConfigId:()=>Jkl,EndpointId:()=>Xkl,EndpointPathLiteral:()=>czl,EnvironmentId:()=>Ykl,FileId:()=>nzl,HttpMethod:()=>uzl,JqString:()=>ozl,OrgId:()=>Hkl,PageId:()=>rzl,PropertyKey:()=>szl,RoleId:()=>azl,TokenId:()=>$kl,TypeId:()=>tzl,Url:()=>izl,VersionId:()=>Gkl,WebSocketId:()=>Zkl,WebhookId:()=>ezl});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}function Xkl(e){return e}function Zkl(e){return e}function ezl(e){return e}function tzl(e){return e}function rzl(e){return e}function nzl(e){return e}function izl(e){return e}function ozl(e){return e}function szl(e){return e}function azl(e){return e}function czl(e){return e}var uzl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var lzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var pzl={};var wKs={};D(wKs,{latest:()=>AKs,v1:()=>OKs,v2:()=>EKs});var AKs={};D(AKs,{Layout:()=>mzl,MdxEngine:()=>wCA,TwitterCardSetting:()=>dzl,commons:()=>fzl,frontmatter:()=>gKs,seo:()=>yKs});var wCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var fzl={};var gKs={};D(gKs,{Layout:()=>mzl});var mzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var yKs={};D(yKs,{TwitterCardSetting:()=>dzl});var dzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var OKs={};D(OKs,{commons:()=>vKs,db:()=>hzl,read:()=>gzl,write:()=>bKs});var hzl={};var gzl={};var bKs={};D(bKs,{DocsRegistrationId:()=>PCA,FilePath:()=>xCA});function xCA(e){return e}function PCA(e){return e}var vKs={};D(vKs,{ContentAlignment:()=>_zl,FontDisplay:()=>xzl,FontStyle:()=>wzl,HeaderPosition:()=>vzl,JsScriptStrategy:()=>Ezl,ProgrammingLanguage:()=>yzl,SearchbarPlacement:()=>Azl,TabsPlacement:()=>bzl,TwitterCardSetting:()=>Ozl,commons:()=>_Ks});var _Ks={};D(_Ks,{ContentAlignment:()=>_zl,FontDisplay:()=>xzl,FontStyle:()=>wzl,HeaderPosition:()=>vzl,JsScriptStrategy:()=>Ezl,ProgrammingLanguage:()=>yzl,SearchbarPlacement:()=>Azl,TabsPlacement:()=>bzl,TwitterCardSetting:()=>Ozl});var yzl={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 bzl={Header:"HEADER",Sidebar:"SIDEBAR"};var _zl={Center:"CENTER",Left:"LEFT"};var vzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var Ozl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ezl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var wzl={Normal:"normal",Italic:"italic"};var xzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var EKs={};D(EKs,{read:()=>Pzl,write:()=>Izl});var Pzl={};var Izl={};var PKs={};D(PKs,{ChangelogEntryType:()=>Szl,GeneratorId:()=>ICA,GeneratorLanguage:()=>CCA,ReleaseType:()=>jzl,cli:()=>Czl,commons:()=>xKs,versions:()=>Bzl});var Czl={};var xKs={};D(xKs,{ChangelogEntryType:()=>Szl,ReleaseType:()=>jzl});var Szl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var jzl={Ga:"GA",Rc:"RC"};var Bzl={};function ICA(e){return e}var CCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var IKs={};D(IKs,{PullRequestState:()=>Tzl});var Tzl={Open:"open",Closed:"closed",Merged:"merged"};var jKs={};D(jKs,{latest:()=>CKs,v1:()=>SKs});var CKs={};D(CKs,{NodeId:()=>BCA,ProductId:()=>TCA,Slug:()=>SCA,TabId:()=>jCA});function SCA(e){return e}function jCA(e){return e}function BCA(e){return e}function TCA(e){return e}var SKs={};D(SKs,{NavigationV1Availability:()=>kCA,NodeId:()=>FCA,ProductId:()=>NCA,Slug:()=>DCA,TabId:()=>RCA});function DCA(e){return e}function RCA(e){return e}function FCA(e){return e}function NCA(e){return e}var kCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var TKs={};D(TKs,{Language:()=>Dzl,VersionBump:()=>Rzl,versions:()=>BKs});var BKs={};D(BKs,{Language:()=>Dzl,VersionBump:()=>Rzl});var Dzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Rzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Fzl={};var Nzl={};var DKs={};D(DKs,{PayloadLocation:()=>kzl});var kzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var zzl={};var VNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Qzl({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 UNn=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 Mzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends UNn{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 ${Mzl(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})}}},wj=class extends sa{},F5=class extends wj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Vzl="x-fern-base-path",Uzl="x-fern-availability",LNn="x-fern-sdk-group-name",Lzl="x-fern-global-headers",qzl="x-fern-sdk-method-name";var Wzl="x-fern-webhook",Gzl="x-fern-access-token-locator",Hzl="x-fern-basic",$zl="x-fern-username-variable-name",Kzl="x-fern-password-variable-name",Jzl="x-fern-bearer",Yzl="x-fern-token-variable-name",Xzl="x-fern-header",Zzl="x-fern-header-variable-name",e2l="x-fern-server-name",t2l="x-fern-examples";var qNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[e2l]}convert(){if(this.serverName!=null)return this.serverName}};var WNn=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 qNn({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 xHe(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 WNn({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 GNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var v2l=He(oI());var HNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Hzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var $Nn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Kzl]}convert(){return this.passwordVariableName}};var KNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[$zl]}convert(){return this.usernameVariableName}};var JNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Jzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var YNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Yzl]}convert(){return this.tokenVariableName}};function r2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var n2l="x-bearer-format",i2l="x-code-samples",o2l="x-codeSamples";var XNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[n2l]}convert(){return this.bearerFormat}};var ZNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Xzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var ekn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Zzl]}convert(){return this.headerVariableName}};function s2l(e){return e.type==="apiKey"}var Z3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){s2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new ZNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new XNn({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()}}};eis();jDc();function tkn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function e5t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function wEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(wEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function rkn(e){if(Array.isArray(e))return e.map(e5t);if(typeof e=="symbol")return[e];e=wEt(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 jRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Z6r(t))return r;let n=e[t];return n===void 0?tkn(t)?jRr(e,rkn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=e5t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return zCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Z6r(t))return r;let n=e[t];return n===void 0?r:n}}}function zCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Z6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function a2l(e){return function(t){return jRr(t,e)}}function c2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Brs();function RKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function NKs(e,t,r){return typeof r!="function"?NKs(e,t,()=>{}):FKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:FKs(i,o,n,u)},new Map)}function FKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return QCA(e,t,r,n);case"function":return Object.keys(t).length>0?FKs(e,{...t},r,n):RKs(e,t);default:return c2l(e)?typeof t=="string"?t==="":!0:RKs(e,t)}}function QCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return u2l(e,t,r,n);if(t instanceof Map)return MCA(e,t,r,n);if(t instanceof Set)return VCA(e,t,r,n);let i=Object.keys(t);if(e==null||g_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(!g_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 MCA(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 u2l(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 VCA(e,t,r,n){return t.size===0?!0:e instanceof Set?u2l([...e],[...t],r,n):!1}function nkn(e,t){return NKs(e,t,()=>{})}SDc();function l2l(e){return e=CDc(e),t=>nkn(t,e)}Drs();H6r();Trs();function p2l(e,t){return IDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(FDt(e)===X6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case K6r:case $6r:case J6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case Y6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function f2l(e){return p2l(e)}var UCA=/^(?:0|[1-9]\d*)$/;function m2l(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 UCA.test(e)}}H6r();function d2l(e){return e!==null&&typeof e=="object"&&FDt(e)==="[object Arguments]"}function h2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&tkn(t)&&e?.[t]==null?r=rkn(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)||d2l(n))&&m2l(o)&&o<n.length))return!1;n=n[o]}return!0}function g2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=e5t(e);break}}return t=f2l(t),function(r){let n=jRr(r,e);return n===void 0?h2l(r,e):t===void 0?n===void 0:nkn(n,t)}}function y2l(e){if(e==null)return m9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?g2l(e[0],e[1]):l2l(e);case"string":case"symbol":case"number":return a2l(e)}}eis();Rrs();function ikn(e,t=m9r){return e==null?{}:jk(e,y2l(t))}Z2c();function A2l(e){return X2c(wEt(e))}RDc();function b2l(e){return typeof e!="string"&&(e=wEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return DDc(b2l(A2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function okn({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`${LCA(s)}${qCA(e)}.${WCA(n,i,o,a)}`}function LCA(e){return e?"webhook_":"endpoint_"}function qCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function WCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function _2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var skn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Gzl],this.accessTokenLocator!=null&&(_2l(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 akn=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 Z3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new skn({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=okn({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 t5t=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 HNn({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 $Nn({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 JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new YNn({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":{r2l(this.input)?(this.authScheme="header",this.headerAuthNode=new Z3t({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 akn({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 v2l.UnreachableCaseError(this.authScheme);return}}};var r5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=GNn(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 t5t({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 ckn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Vzl],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 O2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function E2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function n5t(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&&!O2l(i))&&(s=E2l(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 ukn(e,t){return Sy(e)?Hz(e,t,void 0):e}function PHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function w2l(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 x2l(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 P2l=He(oI());var kKs=["decimal","decimal128","double-int","double","float","sf-decimal"],zKs=["int16","int32","int64","int8","sf-integer","uint8"],QKs=["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"],MKs=["beta","pre-release","in-development","generally-available","deprecated"];function xj(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var SY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(xj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Uzl];r!=null&&(MKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${MKs.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 P2l.UnreachableCaseError(this.availability);return}}};var pkn=He(oI());function I2l(e){return typeof e=="object"&&e!=null&&"language"in e}function C2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function S2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function j2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function lkn(e){return typeof e=="object"&&e!=null&&"event"in e}function VKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(lkn)}function IHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function B2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var fkn=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[t2l]}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 IHe(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=>IHe(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 pkn.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=B2l(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 pkn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{S2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{VKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!VKs(r.response)&&j2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new pkn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{I2l(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})):C2l(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 BRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[LNn]}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(Ble(r)))}};var mkn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[qzl]}convert(){return this.sdkMethodName}};var dkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Wzl]}convert(){return this.isWebhook}};var hkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[i2l]??[],...this.input[o2l]??[]],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 xEt=He(oI());function UKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function T2l(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 rF="",Fve=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&&(IHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>IHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new xEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=UKs(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=UKs(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 xEt.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(lkn)){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 xEt.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 IHe(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=>IHe(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 xEt.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 xEt.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 xEt.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:T2l(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 D2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var G2l=He(oI());var R2l="#/components/schemas/";function i5t(e){if(e.$ref.startsWith(R2l))return e.$ref.replace(R2l,"")}function KVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function CHe(e){return typeof e.type=="string"&&e.type==="array"}function F2l(e){return e.type==="boolean"}function N2l(e){return e.type==="integer"}function SHe(e){return!Array.isArray(e.type)&&!CHe(e)}function k2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||SHe(t)||CHe(t))}function z2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function Q2l(e){return e.type==="null"}function M2l(e){return e.type==="number"}function LKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function V2l(e){return e.type==="string"}var gkn=class extends F5{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 ykn=class extends wj{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 SY({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 Akn=class extends F5{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(KVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function bkn(e){return e!=null&&e.length>0?e:[void 0]}var o5t=class extends F5{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 i5t(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 n5t(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=>bkn(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=xj(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 _kn=class extends F5{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=>xj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>xj(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=xj({$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(KVe).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?KVe(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 vkn=class extends wj{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 jHe=class extends wj{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=xj(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 U2l=He(oI());function GCA(e){return zKs.includes(e)}var Okn=class extends wj{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&&(GCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${zKs.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 U2l.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 Ekn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return KVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var L2l=He(oI());function HCA(e){return kKs.includes(e)}var wkn=class extends wj{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&&(HCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${kKs.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 L2l.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 q2l=He(oI());function $CA(e){return QKs.includes(e)}var xkn=class extends wj{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 q2l.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&&($CA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${QKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new jHe({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 W2l=He(oI());var Pkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,W2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var PEt=class extends F5{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=i5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&SHe(t)&&(this.maybeEnumConverterNode=new jHe({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=xj(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 F5{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 SY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),SHe(this.input)&&z2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=i5t(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 PEt({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 ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(k2l(this.input))this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(SHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(LKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new o5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(SHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new jHe({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":LKs(this.input)&&(this.typeShapeNode=new o5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":CHe(this.input)&&(this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":F2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":N2l(this.input)&&(this.typeShapeNode=new Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":M2l(this.input)&&(this.typeShapeNode=new wkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":V2l(this.input)&&(this.typeShapeNode=new xkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":Q2l(this.input)&&(this.typeShapeNode=new Ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new G2l.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 o5t({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 Pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!CHe(this.input)&&this.input==null||CHe(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?KVe(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 BHe(e){if(e!=null)return n5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Nve=class extends wj{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 SY({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=D2l(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 H2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var qKs=He(oI());function Ikn(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 $2l=He(HAs(),1),s5t=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=$2l.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 KCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var Ckn=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})]))),KCA(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=GNn(r.$ref,this.context.document):i=r,i!=null)return[t,new t5t({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 Skn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=xj(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=xj(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 jkn=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=xj(this.input.schema,this.context.document);this.availability=new SY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new PEt({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=s5t.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 Skn({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?{[rF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[rF]:{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=Ble([this.method,this.path,this.contentType,"request"].join("_"));return Ikn({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 qKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof PEt)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 qKs.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=H2l(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 jkn({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 K2l={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 J2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Tkn=He(oI());var Y2l="application/json";var X2l="application/octet-stream";function Z2l(e,t){return e===t||t===rF||e===rF}var TRr=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)Z2l(a,o)&&(n.add(a),this.examples?.push(new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,PHe(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[rF];if(o!=null)for(let s of o)this.examples?.push(new Fve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,PHe(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=s5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=Y2l,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=X2l,this.contentSubtype=xj(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=ikn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]=[{value:this.input.example}]);let n=xj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=ikn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[rF]??=[],r[rF]?.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!==rF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==rF);Object.keys(r).every(a=>a===rF)||this.matchExamplesByIndex(o,s),!i.has(rF)&&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 Tkn.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=Ble([this.method,this.path,this.statusCode,"response"].join("_"));return Ikn({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 Tkn.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 Tkn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var DRr=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=J2l(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 Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new TRr({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 TRr({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 Dkn=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 DRr({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 DRr({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 bkn(BHe(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??K2l[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 THe=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 Fve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,PHe(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 SY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=xHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new dkn({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=ukn(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 Nve({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 Nve({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 Nve({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 hkn({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 Dkn({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 r5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new BRr({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 BRr({input:{[LNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>okn({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 fkn({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=x2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:w2l(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:BHe(this.queryParameters)?.flat(),headers:BHe(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:BHe(this.pathParameters)?.flat(),queryParameters:BHe(this.queryParameters)?.flat(),requestHeaders:BHe(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 a5t=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=xHe(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 THe({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 THe({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 THe({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 THe({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 THe({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 Rkn(e){return"payloads"in e}var Fkn=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 a5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:xHe(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=>{Rkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Nkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Lzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||ukn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return n5t(this.globalHeaders,this.requiredProperties)?.flat()}};function eQl(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var kkn=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=eQl(o,this.context.document);if(s!=null)return new a5t({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=>{Rkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var zkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=xHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new r5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ckn({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 Fkn({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 kkn({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 Ckn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=dR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Qzl({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 WKs(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 hle(e.absoluteFilePath),n=await dY({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 VNn,generatedTypes:{}},c=new zkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=jkt(o,c.convert())}return o}_w();Ir();var f9l=He($Ks(),1),m9l=He(wzn(),1),aQn=require("fs/promises"),d9l=He(require("http"),1),h9l=He(require("path"),1);var X4l=require("events"),Szn=He(require("fs"),1),NEt=He(require("path"),1);var R4l=He(require("os"),1),F4l=300,QHe=20,iFr=1e7,N4l=R4l.default.platform();var lFA=N4l==="darwin",mYs=N4l==="win32",MHe=lFA||mYs,k4l=3e3,z4l=2e4,dYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var FEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(FEt||(FEt={}));var oFr;(function(e){e.CHANGE="change",e.ERROR="error"})(oFr||(oFr={}));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 pFA=(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},xzn=pFA;var AYs=He(require("fs"),1),Izn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var YVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Vve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var hYs=He(require("process"),1),Q4l=hYs.default.getuid?!hYs.default.getuid():!1,M4l=1e4,Q5=()=>{};var sFr={isChangeErrorOk:e=>{if(!sFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Q4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!sFr.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(!sFr.isNodeError(e))throw e;if(!sFr.isChangeErrorOk(e))throw e}},Pj=sFr;var gYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=M4l,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()}}}}},V4l=new gYs;var XVe=(e,t)=>function(n){return function i(...o){return V4l.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)})}},ZVe=(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 fFA={attempt:{chmod:YVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:YVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:YVe((0,$z.promisify)(Ab.default.close),Q5),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:YVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:YVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:YVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:YVe((0,$z.promisify)(Ab.default.unlink),Q5),chmodSync:Vve(Ab.default.chmodSync,Pj.onChangeError),chownSync:Vve(Ab.default.chownSync,Pj.onChangeError),closeSync:Vve(Ab.default.closeSync,Q5),existsSync:Vve(Ab.default.existsSync,Q5),fsyncSync:Vve(Ab.default.fsync,Q5),mkdirSync:Vve(Ab.default.mkdirSync,Q5),realpathSync:Vve(Ab.default.realpathSync,Q5),statSync:Vve(Ab.default.statSync,Q5),unlinkSync:Vve(Ab.default.unlinkSync,Q5)},retry:{close:XVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:XVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:XVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:XVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:XVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:XVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:XVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:XVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:ZVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:ZVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:ZVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:ZVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:ZVe(Ab.default.renameSync,Pj.isRetriableError),statSync:ZVe(Ab.default.statSync,Pj.isRetriableError),writeSync:ZVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:ZVe(Ab.default.writeFileSync,Pj.isRetriableError)}},U4l=fFA;var Pzn=He(require("fs"),1),aFr=He(require("path"),1);var yYs=()=>{};var mFA=()=>{let e=yYs,t=yYs,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}},L4l=mFA;var dFA=()=>{let{promise:e,resolve:t,isPending:r}=L4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},q4l=dFA;var W4l={then:e=>{e()}};var G4l=e=>Array.isArray(e)?e:[e],H4l=e=>typeof e=="function";var hFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=G4l(o).map(Z=>H4l(Z)?Z:X=>Z.test(X)),a=Z=>s.some(X=>X(Z)),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}=q4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===aFr.default.sep?"":aFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),Pzn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||W4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),Pzn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Pzn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=aFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=aFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},$4l=hFA;var Uve={lang:{debounce:xzn,attempt:e=>{try{return e()}catch(t){return Uve.lang.castError(t)}},castArray:e=>Uve.lang.isArray(e)?e:[e],castError:e=>Uve.lang.isError(e)?e:Uve.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(Uve.lang.isNaN(e))return Uve.lang.isNaN(t);if(Uve.lang.isPrimitive(e)||Uve.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(Izn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?AYs.default.realpathSync.native(e):AYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Izn.default.sep&&t.length-e.length>Izn.default.sep.length,poll:(e,t=z4l)=>U4l.retry.stat(t)(e,{bigint:!0}).catch(Uve.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 $4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var Czn=He(require("path"),1);var bYs=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=F4l){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??QHe:Math.min(1,this.options.depth??QHe),s=this.options.limit??iFr,[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&&!MHe&&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(Czn.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(Czn.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=FEt.CHANGE,r){if(this.watcher.isClosed())return;let n=Czn.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){mYs&&t.code==="EPERM"?this.onWatcherChange(FEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(oFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(oFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(FEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&MHe&&this.options.native!==!1?this.options.depth??QHe:Math.min(1,this.options.depth??QHe),n=this.options.limit??iFr,[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(FEt.CHANGE,a,t)}))}}},K4l=bYs;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())}},cFr=GU;var uFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=dYs){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),cFr.remove(u)},u=()=>{c(),a()};cFr.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=dYs){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),cFr.remove(u)},u=()=>{c(),a()};cFr.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,Mve.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,Mve.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,Mve.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,Mve.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}}};uFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};uFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var J4l=uFr;var _Ys=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}},vYs=_Ys;var OYs=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}},Y4l=OYs;var EYs=class{constructor(){this.inos={},this.paths=new vYs,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 Y4l(n)}reset(){this.inos={},this.paths=new vYs,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()?Mve.FILE:Mve.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)}}},wYs=EYs;var xYs=class e extends X4l.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 J4l(this),this._roots=new Set,this._poller=new wYs,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 K4l(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=NEt.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??QHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&MHe&&l.options.native!==!1)))return!0;if(!MHe)break;let u=NEt.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||MHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Szn.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=NEt.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||MHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??QHe,a=r.limit??iFr,[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=NEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new wYs,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??k4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),Szn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),Szn.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=NEt.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=NEt.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())}},jzn=xYs;qzn();Ir();var B5t=require("fs/promises"),iql=require("os"),oql=He(require("path"),1),zNA=".fern",QNA="logs";function MNA(){return"cli@3.92.0"}var UEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Pt(vr.of((0,iql.homedir)()),Xe.of(zNA)),r=Pt(t,Xe.of(QNA));await qr(r)||await(0,B5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Pt(r,Xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${oql.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2128
+ `);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=Pt(t,Xe.of(r));if(!(0,rKs.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,wHe.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 wB(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 EEt(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(ru),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 wB(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")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};zNn(t,r,n)}};function vCA(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 OCA(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(ru)}async function nKs(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:()=>wkl,ApiDefinitionId:()=>Wkl,ApiId:()=>Kkl,Availability:()=>lzl,DocsConfigId:()=>Jkl,EndpointId:()=>Xkl,EndpointPathLiteral:()=>czl,EnvironmentId:()=>Ykl,FileId:()=>nzl,HttpMethod:()=>uzl,IndexSegmentId:()=>xkl,JqString:()=>ozl,OrgId:()=>Hkl,PageId:()=>rzl,PayloadLocation:()=>kzl,PropertyKey:()=>szl,PullRequestState:()=>Tzl,RoleId:()=>azl,TokenId:()=>$kl,TypeId:()=>tzl,Url:()=>izl,VersionId:()=>Gkl,WebSocketId:()=>Zkl,WebhookId:()=>ezl,algolia:()=>iKs,api:()=>dKs,commons:()=>hKs,diff:()=>pzl,docs:()=>wKs,generators:()=>PKs,git:()=>IKs,navigation:()=>jKs,sdks:()=>TKs,snippets:()=>Fzl,snippetsFactory:()=>Nzl,templates:()=>DKs,tokens:()=>zzl});var iKs={};D(iKs,{AlgoliaSearchIndex:()=>wkl,IndexSegmentId:()=>xkl});function wkl(e){return e}function xkl(e){return e}var dKs={};D(dKs,{latest:()=>aKs,v1:()=>mKs});var aKs={};D(aKs,{AuthSchemeId:()=>Pkl,WebhookHttpMethod:()=>jkl,auth:()=>oKs,commons:()=>Ikl,endpoint:()=>Ckl,type_:()=>Skl,webhook:()=>sKs,websocket:()=>Bkl});var oKs={};D(oKs,{AuthSchemeId:()=>Pkl});function Pkl(e){return e}var Ikl={};var Ckl={};var Skl={};var sKs={};D(sKs,{WebhookHttpMethod:()=>jkl});var jkl={Get:"GET",Post:"POST"};var Bkl={};var mKs={};D(mKs,{SubpackageId:()=>Vkl,WebSocketMessageId:()=>Ukl,WebSocketMessageOrigin:()=>Lkl,WebhookHttpMethod:()=>qkl,commons:()=>fKs,db:()=>cKs,read:()=>lKs,register:()=>pKs});var cKs={};D(cKs,{endpoint:()=>Tkl});var Tkl={};var lKs={};D(lKs,{SupportedLanguage:()=>Dkl,endpoint:()=>uKs,type_:()=>Rkl,webhook:()=>Fkl,websocket:()=>Nkl});var uKs={};D(uKs,{SupportedLanguage:()=>Dkl});var Dkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Rkl={};var Fkl={};var Nkl={};var pKs={};D(pKs,{SourceId:()=>ECA,endpoint:()=>kkl,type_:()=>zkl,webhook:()=>Qkl,websocket:()=>Mkl});var kkl={};var zkl={};var Qkl={};var Mkl={};function ECA(e){return e}var fKs={};D(fKs,{SubpackageId:()=>Vkl,WebSocketMessageId:()=>Ukl,WebSocketMessageOrigin:()=>Lkl,WebhookHttpMethod:()=>qkl});function Vkl(e){return e}function Ukl(e){return e}var Lkl={Client:"client",Server:"server"};var qkl={Get:"GET",Post:"POST"};var hKs={};D(hKs,{ApiDefinitionId:()=>Wkl,ApiId:()=>Kkl,Availability:()=>lzl,DocsConfigId:()=>Jkl,EndpointId:()=>Xkl,EndpointPathLiteral:()=>czl,EnvironmentId:()=>Ykl,FileId:()=>nzl,HttpMethod:()=>uzl,JqString:()=>ozl,OrgId:()=>Hkl,PageId:()=>rzl,PropertyKey:()=>szl,RoleId:()=>azl,TokenId:()=>$kl,TypeId:()=>tzl,Url:()=>izl,VersionId:()=>Gkl,WebSocketId:()=>Zkl,WebhookId:()=>ezl});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}function Xkl(e){return e}function Zkl(e){return e}function ezl(e){return e}function tzl(e){return e}function rzl(e){return e}function nzl(e){return e}function izl(e){return e}function ozl(e){return e}function szl(e){return e}function azl(e){return e}function czl(e){return e}var uzl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var lzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var pzl={};var wKs={};D(wKs,{latest:()=>AKs,v1:()=>OKs,v2:()=>EKs});var AKs={};D(AKs,{Layout:()=>mzl,MdxEngine:()=>wCA,TwitterCardSetting:()=>dzl,commons:()=>fzl,frontmatter:()=>gKs,seo:()=>yKs});var wCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var fzl={};var gKs={};D(gKs,{Layout:()=>mzl});var mzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var yKs={};D(yKs,{TwitterCardSetting:()=>dzl});var dzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var OKs={};D(OKs,{commons:()=>vKs,db:()=>hzl,read:()=>gzl,write:()=>bKs});var hzl={};var gzl={};var bKs={};D(bKs,{DocsRegistrationId:()=>PCA,FilePath:()=>xCA});function xCA(e){return e}function PCA(e){return e}var vKs={};D(vKs,{ContentAlignment:()=>_zl,FontDisplay:()=>xzl,FontStyle:()=>wzl,HeaderPosition:()=>vzl,JsScriptStrategy:()=>Ezl,ProgrammingLanguage:()=>yzl,SearchbarPlacement:()=>Azl,TabsPlacement:()=>bzl,TwitterCardSetting:()=>Ozl,commons:()=>_Ks});var _Ks={};D(_Ks,{ContentAlignment:()=>_zl,FontDisplay:()=>xzl,FontStyle:()=>wzl,HeaderPosition:()=>vzl,JsScriptStrategy:()=>Ezl,ProgrammingLanguage:()=>yzl,SearchbarPlacement:()=>Azl,TabsPlacement:()=>bzl,TwitterCardSetting:()=>Ozl});var yzl={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 bzl={Header:"HEADER",Sidebar:"SIDEBAR"};var _zl={Center:"CENTER",Left:"LEFT"};var vzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var Ozl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ezl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var wzl={Normal:"normal",Italic:"italic"};var xzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var EKs={};D(EKs,{read:()=>Pzl,write:()=>Izl});var Pzl={};var Izl={};var PKs={};D(PKs,{ChangelogEntryType:()=>Szl,GeneratorId:()=>ICA,GeneratorLanguage:()=>CCA,ReleaseType:()=>jzl,cli:()=>Czl,commons:()=>xKs,versions:()=>Bzl});var Czl={};var xKs={};D(xKs,{ChangelogEntryType:()=>Szl,ReleaseType:()=>jzl});var Szl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var jzl={Ga:"GA",Rc:"RC"};var Bzl={};function ICA(e){return e}var CCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var IKs={};D(IKs,{PullRequestState:()=>Tzl});var Tzl={Open:"open",Closed:"closed",Merged:"merged"};var jKs={};D(jKs,{latest:()=>CKs,v1:()=>SKs});var CKs={};D(CKs,{NodeId:()=>BCA,ProductId:()=>TCA,Slug:()=>SCA,TabId:()=>jCA});function SCA(e){return e}function jCA(e){return e}function BCA(e){return e}function TCA(e){return e}var SKs={};D(SKs,{NavigationV1Availability:()=>kCA,NodeId:()=>FCA,ProductId:()=>NCA,Slug:()=>DCA,TabId:()=>RCA});function DCA(e){return e}function RCA(e){return e}function FCA(e){return e}function NCA(e){return e}var kCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var TKs={};D(TKs,{Language:()=>Dzl,VersionBump:()=>Rzl,versions:()=>BKs});var BKs={};D(BKs,{Language:()=>Dzl,VersionBump:()=>Rzl});var Dzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Rzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Fzl={};var Nzl={};var DKs={};D(DKs,{PayloadLocation:()=>kzl});var kzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var zzl={};var VNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Qzl({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 UNn=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 Mzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends UNn{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 ${Mzl(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})}}},wj=class extends sa{},F5=class extends wj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Vzl="x-fern-base-path",Uzl="x-fern-availability",LNn="x-fern-sdk-group-name",Lzl="x-fern-global-headers",qzl="x-fern-sdk-method-name";var Wzl="x-fern-webhook",Gzl="x-fern-access-token-locator",Hzl="x-fern-basic",$zl="x-fern-username-variable-name",Kzl="x-fern-password-variable-name",Jzl="x-fern-bearer",Yzl="x-fern-token-variable-name",Xzl="x-fern-header",Zzl="x-fern-header-variable-name",e2l="x-fern-server-name",t2l="x-fern-examples";var qNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[e2l]}convert(){if(this.serverName!=null)return this.serverName}};var WNn=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 qNn({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 xHe(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 WNn({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 GNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var v2l=He(oI());var HNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Hzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var $Nn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Kzl]}convert(){return this.passwordVariableName}};var KNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[$zl]}convert(){return this.usernameVariableName}};var JNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Jzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var YNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Yzl]}convert(){return this.tokenVariableName}};function r2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var n2l="x-bearer-format",i2l="x-code-samples",o2l="x-codeSamples";var XNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[n2l]}convert(){return this.bearerFormat}};var ZNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Xzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var ekn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Zzl]}convert(){return this.headerVariableName}};function s2l(e){return e.type==="apiKey"}var Z3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){s2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new ZNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new XNn({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()}}};eis();jDc();function tkn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function e5t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function wEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(wEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function rkn(e){if(Array.isArray(e))return e.map(e5t);if(typeof e=="symbol")return[e];e=wEt(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 jRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Z6r(t))return r;let n=e[t];return n===void 0?tkn(t)?jRr(e,rkn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=e5t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return zCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Z6r(t))return r;let n=e[t];return n===void 0?r:n}}}function zCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Z6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function a2l(e){return function(t){return jRr(t,e)}}function c2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Brs();function RKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function NKs(e,t,r){return typeof r!="function"?NKs(e,t,()=>{}):FKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:FKs(i,o,n,u)},new Map)}function FKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return QCA(e,t,r,n);case"function":return Object.keys(t).length>0?FKs(e,{...t},r,n):RKs(e,t);default:return c2l(e)?typeof t=="string"?t==="":!0:RKs(e,t)}}function QCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return u2l(e,t,r,n);if(t instanceof Map)return MCA(e,t,r,n);if(t instanceof Set)return VCA(e,t,r,n);let i=Object.keys(t);if(e==null||g_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(!g_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 MCA(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 u2l(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 VCA(e,t,r,n){return t.size===0?!0:e instanceof Set?u2l([...e],[...t],r,n):!1}function nkn(e,t){return NKs(e,t,()=>{})}SDc();function l2l(e){return e=CDc(e),t=>nkn(t,e)}Drs();H6r();Trs();function p2l(e,t){return IDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(FDt(e)===X6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case K6r:case $6r:case J6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case Y6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function f2l(e){return p2l(e)}var UCA=/^(?:0|[1-9]\d*)$/;function m2l(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 UCA.test(e)}}H6r();function d2l(e){return e!==null&&typeof e=="object"&&FDt(e)==="[object Arguments]"}function h2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&tkn(t)&&e?.[t]==null?r=rkn(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)||d2l(n))&&m2l(o)&&o<n.length))return!1;n=n[o]}return!0}function g2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=e5t(e);break}}return t=f2l(t),function(r){let n=jRr(r,e);return n===void 0?h2l(r,e):t===void 0?n===void 0:nkn(n,t)}}function y2l(e){if(e==null)return m9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?g2l(e[0],e[1]):l2l(e);case"string":case"symbol":case"number":return a2l(e)}}eis();Rrs();function ikn(e,t=m9r){return e==null?{}:jk(e,y2l(t))}Z2c();function A2l(e){return X2c(wEt(e))}RDc();function b2l(e){return typeof e!="string"&&(e=wEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return DDc(b2l(A2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function okn({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`${LCA(s)}${qCA(e)}.${WCA(n,i,o,a)}`}function LCA(e){return e?"webhook_":"endpoint_"}function qCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function WCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function _2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var skn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Gzl],this.accessTokenLocator!=null&&(_2l(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 akn=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 Z3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new skn({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=okn({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 t5t=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 HNn({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 $Nn({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 JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new YNn({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":{r2l(this.input)?(this.authScheme="header",this.headerAuthNode=new Z3t({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 akn({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 v2l.UnreachableCaseError(this.authScheme);return}}};var r5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=GNn(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 t5t({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 ckn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Vzl],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 O2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function E2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function n5t(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&&!O2l(i))&&(s=E2l(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 ukn(e,t){return Sy(e)?Hz(e,t,void 0):e}function PHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function w2l(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 x2l(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 P2l=He(oI());var kKs=["decimal","decimal128","double-int","double","float","sf-decimal"],zKs=["int16","int32","int64","int8","sf-integer","uint8"],QKs=["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"],MKs=["beta","pre-release","in-development","generally-available","deprecated"];function xj(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var SY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(xj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Uzl];r!=null&&(MKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${MKs.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 P2l.UnreachableCaseError(this.availability);return}}};var pkn=He(oI());function I2l(e){return typeof e=="object"&&e!=null&&"language"in e}function C2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function S2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function j2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function lkn(e){return typeof e=="object"&&e!=null&&"event"in e}function VKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(lkn)}function IHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function B2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var fkn=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[t2l]}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 IHe(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=>IHe(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 pkn.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=B2l(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 pkn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{S2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{VKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!VKs(r.response)&&j2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new pkn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{I2l(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})):C2l(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 BRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[LNn]}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(Ble(r)))}};var mkn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[qzl]}convert(){return this.sdkMethodName}};var dkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Wzl]}convert(){return this.isWebhook}};var hkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[i2l]??[],...this.input[o2l]??[]],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 xEt=He(oI());function UKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function T2l(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 rF="",Fve=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&&(IHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>IHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new xEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=UKs(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=UKs(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 xEt.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(lkn)){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 xEt.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 IHe(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=>IHe(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 xEt.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 xEt.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 xEt.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:T2l(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 D2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var G2l=He(oI());var R2l="#/components/schemas/";function i5t(e){if(e.$ref.startsWith(R2l))return e.$ref.replace(R2l,"")}function KVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function CHe(e){return typeof e.type=="string"&&e.type==="array"}function F2l(e){return e.type==="boolean"}function N2l(e){return e.type==="integer"}function SHe(e){return!Array.isArray(e.type)&&!CHe(e)}function k2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||SHe(t)||CHe(t))}function z2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function Q2l(e){return e.type==="null"}function M2l(e){return e.type==="number"}function LKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function V2l(e){return e.type==="string"}var gkn=class extends F5{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 ykn=class extends wj{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 SY({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 Akn=class extends F5{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(KVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function bkn(e){return e!=null&&e.length>0?e:[void 0]}var o5t=class extends F5{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 i5t(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 n5t(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=>bkn(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=xj(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 _kn=class extends F5{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=>xj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>xj(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=xj({$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(KVe).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?KVe(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 vkn=class extends wj{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 jHe=class extends wj{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=xj(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 U2l=He(oI());function GCA(e){return zKs.includes(e)}var Okn=class extends wj{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&&(GCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${zKs.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 U2l.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 Ekn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return KVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var L2l=He(oI());function HCA(e){return kKs.includes(e)}var wkn=class extends wj{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&&(HCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${kKs.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 L2l.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 q2l=He(oI());function $CA(e){return QKs.includes(e)}var xkn=class extends wj{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 q2l.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&&($CA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${QKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new jHe({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 W2l=He(oI());var Pkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,W2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var PEt=class extends F5{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=i5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&SHe(t)&&(this.maybeEnumConverterNode=new jHe({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=xj(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 F5{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 SY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),SHe(this.input)&&z2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=i5t(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 PEt({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 ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(k2l(this.input))this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(SHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(LKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new o5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(SHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new jHe({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":LKs(this.input)&&(this.typeShapeNode=new o5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":CHe(this.input)&&(this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":F2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":N2l(this.input)&&(this.typeShapeNode=new Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":M2l(this.input)&&(this.typeShapeNode=new wkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":V2l(this.input)&&(this.typeShapeNode=new xkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":Q2l(this.input)&&(this.typeShapeNode=new Ekn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new G2l.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 o5t({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 Pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!CHe(this.input)&&this.input==null||CHe(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?KVe(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 BHe(e){if(e!=null)return n5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Nve=class extends wj{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 SY({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=D2l(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 H2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var qKs=He(oI());function Ikn(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 $2l=He(HAs(),1),s5t=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=$2l.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 KCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var Ckn=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})]))),KCA(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=GNn(r.$ref,this.context.document):i=r,i!=null)return[t,new t5t({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 Skn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=xj(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=xj(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 jkn=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=xj(this.input.schema,this.context.document);this.availability=new SY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new PEt({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=s5t.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 Skn({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?{[rF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[rF]:{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=Ble([this.method,this.path,this.contentType,"request"].join("_"));return Ikn({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 qKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof PEt)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 qKs.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=H2l(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 jkn({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 K2l={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 J2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Tkn=He(oI());var Y2l="application/json";var X2l="application/octet-stream";function Z2l(e,t){return e===t||t===rF||e===rF}var TRr=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)Z2l(a,o)&&(n.add(a),this.examples?.push(new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,PHe(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 Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,PHe(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[rF];if(o!=null)for(let s of o)this.examples?.push(new Fve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,PHe(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=s5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=Y2l,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=X2l,this.contentSubtype=xj(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=ikn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]=[{value:this.input.example}]);let n=xj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=ikn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[rF]??=[],r[rF]?.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!==rF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==rF);Object.keys(r).every(a=>a===rF)||this.matchExamplesByIndex(o,s),!i.has(rF)&&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 Tkn.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=Ble([this.method,this.path,this.statusCode,"response"].join("_"));return Ikn({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 Tkn.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 Tkn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var DRr=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=J2l(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 Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new TRr({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 TRr({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 Dkn=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 DRr({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 DRr({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 bkn(BHe(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??K2l[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 THe=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 Fve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,PHe(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 SY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=xHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new dkn({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=ukn(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 Nve({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 Nve({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 Nve({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 hkn({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 Dkn({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 r5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new BRr({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 BRr({input:{[LNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>okn({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 fkn({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=x2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:w2l(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:BHe(this.queryParameters)?.flat(),headers:BHe(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:BHe(this.pathParameters)?.flat(),queryParameters:BHe(this.queryParameters)?.flat(),requestHeaders:BHe(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 a5t=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=xHe(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 THe({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 THe({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 THe({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 THe({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 THe({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 Rkn(e){return"payloads"in e}var Fkn=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 a5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:xHe(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=>{Rkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Nkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Lzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||ukn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return n5t(this.globalHeaders,this.requiredProperties)?.flat()}};function eQl(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var kkn=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=eQl(o,this.context.document);if(s!=null)return new a5t({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=>{Rkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var zkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=xHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new r5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ckn({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 Fkn({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 kkn({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 Ckn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=dR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Qzl({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 WKs(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 hle(e.absoluteFilePath),n=await dY({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 VNn,generatedTypes:{}},c=new zkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=jkt(o,c.convert())}return o}_w();Ir();var f9l=He($Ks(),1),m9l=He(wzn(),1),aQn=require("fs/promises"),d9l=He(require("http"),1),h9l=He(require("path"),1);var X4l=require("events"),Szn=He(require("fs"),1),NEt=He(require("path"),1);var R4l=He(require("os"),1),F4l=300,QHe=20,iFr=1e7,N4l=R4l.default.platform();var lFA=N4l==="darwin",mYs=N4l==="win32",MHe=lFA||mYs,k4l=3e3,z4l=2e4,dYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var FEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(FEt||(FEt={}));var oFr;(function(e){e.CHANGE="change",e.ERROR="error"})(oFr||(oFr={}));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 pFA=(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},xzn=pFA;var AYs=He(require("fs"),1),Izn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var YVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Vve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var hYs=He(require("process"),1),Q4l=hYs.default.getuid?!hYs.default.getuid():!1,M4l=1e4,Q5=()=>{};var sFr={isChangeErrorOk:e=>{if(!sFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Q4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!sFr.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(!sFr.isNodeError(e))throw e;if(!sFr.isChangeErrorOk(e))throw e}},Pj=sFr;var gYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=M4l,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()}}}}},V4l=new gYs;var XVe=(e,t)=>function(n){return function i(...o){return V4l.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)})}},ZVe=(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 fFA={attempt:{chmod:YVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:YVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:YVe((0,$z.promisify)(Ab.default.close),Q5),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:YVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:YVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:YVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:YVe((0,$z.promisify)(Ab.default.unlink),Q5),chmodSync:Vve(Ab.default.chmodSync,Pj.onChangeError),chownSync:Vve(Ab.default.chownSync,Pj.onChangeError),closeSync:Vve(Ab.default.closeSync,Q5),existsSync:Vve(Ab.default.existsSync,Q5),fsyncSync:Vve(Ab.default.fsync,Q5),mkdirSync:Vve(Ab.default.mkdirSync,Q5),realpathSync:Vve(Ab.default.realpathSync,Q5),statSync:Vve(Ab.default.statSync,Q5),unlinkSync:Vve(Ab.default.unlinkSync,Q5)},retry:{close:XVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:XVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:XVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:XVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:XVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:XVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:XVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:XVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:ZVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:ZVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:ZVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:ZVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:ZVe(Ab.default.renameSync,Pj.isRetriableError),statSync:ZVe(Ab.default.statSync,Pj.isRetriableError),writeSync:ZVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:ZVe(Ab.default.writeFileSync,Pj.isRetriableError)}},U4l=fFA;var Pzn=He(require("fs"),1),aFr=He(require("path"),1);var yYs=()=>{};var mFA=()=>{let e=yYs,t=yYs,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}},L4l=mFA;var dFA=()=>{let{promise:e,resolve:t,isPending:r}=L4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},q4l=dFA;var W4l={then:e=>{e()}};var G4l=e=>Array.isArray(e)?e:[e],H4l=e=>typeof e=="function";var hFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=G4l(o).map(Z=>H4l(Z)?Z:X=>Z.test(X)),a=Z=>s.some(X=>X(Z)),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}=q4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===aFr.default.sep?"":aFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),Pzn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||W4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),Pzn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Pzn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=aFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=aFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},$4l=hFA;var Uve={lang:{debounce:xzn,attempt:e=>{try{return e()}catch(t){return Uve.lang.castError(t)}},castArray:e=>Uve.lang.isArray(e)?e:[e],castError:e=>Uve.lang.isError(e)?e:Uve.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(Uve.lang.isNaN(e))return Uve.lang.isNaN(t);if(Uve.lang.isPrimitive(e)||Uve.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(Izn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?AYs.default.realpathSync.native(e):AYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Izn.default.sep&&t.length-e.length>Izn.default.sep.length,poll:(e,t=z4l)=>U4l.retry.stat(t)(e,{bigint:!0}).catch(Uve.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 $4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var Czn=He(require("path"),1);var bYs=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=F4l){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??QHe:Math.min(1,this.options.depth??QHe),s=this.options.limit??iFr,[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&&!MHe&&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(Czn.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(Czn.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=FEt.CHANGE,r){if(this.watcher.isClosed())return;let n=Czn.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){mYs&&t.code==="EPERM"?this.onWatcherChange(FEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(oFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(oFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(FEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&MHe&&this.options.native!==!1?this.options.depth??QHe:Math.min(1,this.options.depth??QHe),n=this.options.limit??iFr,[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(FEt.CHANGE,a,t)}))}}},K4l=bYs;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())}},cFr=GU;var uFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=dYs){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),cFr.remove(u)},u=()=>{c(),a()};cFr.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=dYs){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),cFr.remove(u)},u=()=>{c(),a()};cFr.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,Mve.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,Mve.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,Mve.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,Mve.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}}};uFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};uFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var J4l=uFr;var _Ys=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}},vYs=_Ys;var OYs=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}},Y4l=OYs;var EYs=class{constructor(){this.inos={},this.paths=new vYs,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 Y4l(n)}reset(){this.inos={},this.paths=new vYs,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()?Mve.FILE:Mve.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)}}},wYs=EYs;var xYs=class e extends X4l.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 J4l(this),this._roots=new Set,this._poller=new wYs,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 K4l(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=NEt.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??QHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&MHe&&l.options.native!==!1)))return!0;if(!MHe)break;let u=NEt.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||MHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Szn.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=NEt.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||MHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??QHe,a=r.limit??iFr,[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=NEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new wYs,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??k4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),Szn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),Szn.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=NEt.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=NEt.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())}},jzn=xYs;qzn();Ir();var B5t=require("fs/promises"),iql=require("os"),oql=He(require("path"),1),zNA=".fern",QNA="logs";function MNA(){return"cli@3.92.1"}var UEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Pt(vr.of((0,iql.homedir)()),Xe.of(zNA)),r=Pt(t,Xe.of(QNA));await qr(r)||await(0,B5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Pt(r,Xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${oql.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2129
2129
  `);await(0,B5t.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)+`
2130
2130
  `;try{await(0,B5t.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:MNA(),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 HYs={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function sql(e){let t=VNA();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:HYs});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",...HYs}});let p=/^\/_local\/(.*)/.exec(l.pathname);return c.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:HYs}):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 UEt.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 VNA(){return globalThis.Bun}Ir();var SZs=He(rXs(),1),i9l=He(yZs(),1),M5=require("fs/promises"),o9l=require("os"),s9l=He(sR(),1),a9l=He(r9l(),1),tQn=process.platform==="win32",CZs=at.cyan("[docs]:"),yMA="etag",AMA=23,n9l=e=>e.padEnd(AMA," "),bMA="preview",_MA="app-preview",vMA="bundle",OMA=".next",EMA="standalone",wMA=".fern",xMA="packages/fern-docs/bundle/.next/server/instrumentation.js",PMA=".npmrc",IMA=".pnpmfile.cjs",CMA="pnpm-workspace.yaml",SMA='Cannot find matching keyid: {"signatures":';function jMA(){return Pt(vr.of((0,o9l.homedir)()),Xe.of(wMA))}function K5t({app:e=!1}){return Pt(jMA(),Xe.of(e?_MA:bMA))}function XHe({app:e=!1}){return Pt(K5t({app:e}),Xe.of(e?OMA:vMA))}function UFr({app:e=!1}){return Pt(XHe({app:e}),Xe.of(EMA))}function BMA({app:e=!1}){return Pt(UFr({app:e}),Xe.of(xMA))}function TMA({app:e=!1}){return Pt(UFr({app:e}),Xe.of(CMA))}function DMA({app:e=!1}){return Pt(UFr({app:e}),Xe.of(IMA))}function RMA({app:e=!1}){return Pt(UFr({app:e}),Xe.of(PMA))}function YEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function FMA({app:e=!1}){return Pt(K5t({app:e}),Xe.of(yMA))}var NMA=`module.exports = {
2131
2131
  hooks: {
@@ -2926,7 +2926,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
2926
2926
  Run ${at.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
2927
2927
  Run ${at.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),Z2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function rOc({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!SMd(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+=`
2928
2928
  ${await nPx(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+at.dim(a.currentVersion)+at.reset(" \u2192 ")+at.green(a.latestVersion);return i+=`
2929
- `,n?Z2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function nPx(e){let r=await new CMd.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 iPx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await BMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=H0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VG({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 BMd({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=H0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await VG({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 BMd({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 GG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?qR(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 TMd(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=_5(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 TJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await iPx({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(...TMd(u,c,t.logger));else s.push(...TMd(a.versions,void 0,t.logger))}return s}async function Yht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:JSr(e.packageName,{version:t?"prerelease":"latest"})}var DMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],DJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new j_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.92.0"}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,hIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await U2t()).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 jMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2929
+ `,n?Z2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function nPx(e){let r=await new CMd.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 iPx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await BMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=H0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VG({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 BMd({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=H0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await VG({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 BMd({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 GG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?qR(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 TMd(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=_5(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 TJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await iPx({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(...TMd(u,c,t.logger));else s.push(...TMd(a.versions,void 0,t.logger))}return s}async function Yht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:JSr(e.packageName,{version:t?"prerelease":"latest"})}var DMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],DJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new j_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.92.1"}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,hIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await U2t()).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 jMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2930
2930
  `)||(r+=`
2931
2931
  `),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=NAs(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 l5r(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 U2t()).sendEvent(t)}logger=XV((t,...r)=>this.log(t,...r));stderr=XV((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=RMd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?RMd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=DMd[this.numTasks++%DMd.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 Yht({cliEnvironment:this.environment,includePreReleases:t}),n=_5(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await TJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await eOc({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(`
2932
2932
  Cancelled by user.`),new nx):n}}async getInput(t){return await Y0c({message:t.message,default:t.default})}};function RMd(e){return`[${e}]:`}Ir();var FMd=require("fs/promises");async function nOc({context:e,nameOverride:t,...r}){let n=await TP(t);return n==null?e.failAndThrow(`Directory "${t??Bw}" not found.`):await NMd({absolutePathToFernDirectory:n,context:e,nameOverride:t,...r})}async function NMd({absolutePathToFernDirectory:e,cliName:t,cliVersion:r,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i,context:o}){let s=[],[a,c,u,l,p,m]=await Promise.all([qr(Pt(e,Xe.of(pU))),qr(Pt(e,Xe.of(SP))),qr(Pt(e,Xe.of(Tw))),qr(Pt(e,Xe.of(eUt))),qr(Pt(e,Xe.of(pjr))),qr(Pt(e,Xe.of(j2s)))]);(a||c||u||l||p||m)&&(s=await kMd({cliName:t,fernDirectory:e,cliVersion:r,context:o,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i}));let f=await jpc({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: