fern-api 3.93.1 → 3.93.2

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 @@ ${WVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&iPs(th
1450
1450
  `+m_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?m_t.default.cyan(eUu(t,this.opt.mask)):m_t.default.italic(m_t.default.dim("[hidden]")):this.opt.mask?eUu(t,this.opt.mask):m_t.default.italic(m_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 jon=He(z1(),1);var ZUu=He(QPs(),1),Con=require("child_process"),T2t=require("fs"),Ion=He(require("path"),1),e4u=He(require("os"),1),t4u=require("crypto"),EIs=He(YUu(),1);var won=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var FPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var xon=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Pon=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Son(e="",t,r){let n=new wIs(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 XUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function opy(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 wIs=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=opy(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??e4u.default.tmpdir(),r=(0,t4u.randomUUID)(),n=XUu(this.fileOptions.prefix),i=XUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Ion.default.resolve(t,o),a=Ion.default.resolve(t)+Ion.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,T2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new won(t)}}readTemporaryFile(){try{let t=(0,T2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,ZUu.detect)(t)??"utf8";EIs.default.encodingExists(r)||(r="utf8"),this.text=EIs.default.decode(t,r)}}catch(t){throw new xon(t)}}removeTemporaryFile(){try{(0,T2t.unlinkSync)(this.tempFile)}catch(t){throw new Pon(t)}}launchEditor(){try{let t=(0,Con.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new FPr(t)}}launchEditorAsync(t){try{(0,Con.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new FPr(r)}}};var r4u=He(wG(),1);var NPr=class extends Q1{_run(t){this.done=t,this.editorResult=new r4u.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"?jon.default.dim("Received"):jon.default.dim("Press <enter> to launch your preferred editor."),t&&(r=jon.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Son(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 a4u=require("stream");var o4u=He(require("readline"),1),s4u=He(i4u(),1),y_t=class{constructor(t){this.rl||=o4u.default.createInterface(apy(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 apy(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 s4u.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var kPr=class extends y_t{constructor(t={}){super(t),this.log=new a4u.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return _Pr(this.rl,this.bottomBar.split(`
1451
1451
  `).length),this}updateBottomBar(t){return _Pr(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&&Xin(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=He(wG(),1),l4u=He(Vxr(),1);var Bon=He(wG(),1),c4u=He(Vxr(),1),Ton=function(e,t,r){return typeof e[t]!="function"?(0,Bon.of)(e):(0,Bon.from)((0,c4u.default)(e[t])(r).then(n=>(e[t]=n,e)))};var u4u={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}},D2t=class extends y_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)=>(u4u.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)(()=>Ton(t,"message",this.answers)),(0,cb.concatMap)(()=>Ton(t,"default",this.answers)),(0,cb.concatMap)(()=>Ton(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&&u4u.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,l4u.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function p4u(e){let t=function(r,n){let i;try{i=new D2t(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",OPr),this.registerPrompt("input",f_t),this.registerPrompt("number",EPr),this.registerPrompt("confirm",wPr),this.registerPrompt("rawlist",xPr),this.registerPrompt("expand",PPr),this.registerPrompt("checkbox",IPr),this.registerPrompt("password",CPr),this.registerPrompt("editor",NPr)},t.restoreDefaultPrompts(),t}var PIs=p4u();function upy(e,t){PIs.registerPrompt(e,t)}function lpy(){PIs.restoreDefaultPrompts()}var ppy={prompt:PIs,ui:{BottomBar:kPr,Prompt:D2t},createPromptModule:p4u,registerPrompt:upy,restoreDefaultPrompts:lpy,Separator:S3},ub=ppy;var R2t=require("path");function m4u(){let e=fpy();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function fpy(e=process.argv[1]?(0,R2t.dirname)(process.argv[1]):process.cwd(),t=R2t.sep==="\\"){let r=t?f4u(e):e;return n=>{if(!n)return;let i=t?f4u(n):n,{dir:o,base:s,ext:a}=R2t.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 f4u(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var IIs=e=>{if("flags"in e){let t=d4u(e.flags),r=h4u(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,g4u(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,mpy(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function mpy(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 d4u=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,zPr(r)]).filter(([,t])=>t!==void 0)),h4u=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?g4u(n):void 0]}))};var zPr=e=>e===void 0?void 0:e.variant??e.enabled,g4u=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Don="0123456789abcdef",Ron=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+=Don.charAt(this.bytes[r]>>>4),t+=Don.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+=Don.charAt(this.bytes[r]>>>4),t+=Don.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}},CIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??dpy()}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 Ron.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,Ron.ofInner(t)}},dpy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),y4u,Ybe=()=>hpy().toString(),hpy=()=>(y4u||(y4u=new CIs)).generate();var gpy=["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"],A4u=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return gpy.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 Apy=Array.isArray,b4u=Object.prototype,geI=b4u.hasOwnProperty,SIs=b4u.toString,jIs=Apy||function(e){return SIs.call(e)==="[object Array]"};var _4u=e=>e===Object(e)&&!jIs(e);var F2t=e=>e===void 0,QPr=e=>SIs.call(e)=="[object String]",v4u=e=>QPr(e)&&e.trim().length===0;var O4u=e=>SIs.call(e)=="[object Number]"&&e===e;var BIs=e=>e instanceof Error;function MPr(e){return e===null||typeof e!="object"}function A_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function E4u(e){return A_t(e,"ErrorEvent")}function Fon(e){return!F2t(Event)&&bpy(e,Event)}function w4u(e){return A_t(e,"Object")}function bpy(e,t){try{return e instanceof t}catch{return!1}}function VPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),O4u(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),VPr(i||r,t,r,n))}var _py=864e5,Non=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=VPr(t.bucketSize,0,100,t._logger),this._refillRate=VPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=VPr(t.refillInterval,0,_py,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 kon=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 vpy(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var x4u=(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=>x4u(`${e} ${o}`,t,r)}},Opy=e=>e();function P4u(e,t=Opy){return x4u(e,t,vpy())}var k2t="Mobile",Qon="iOS",N2t="Android",I4u="Tablet",CeI=N2t+" "+I4u;var Epy="Apple",SeI=Epy+" Watch",C4u="Safari",Mon="BlackBerry",S4u="Samsung",wpy=S4u+"Browser",xpy=S4u+" Internet",Von="Chrome",Ppy=Von+" OS",Ipy=Von+" "+Qon,j4u="Internet Explorer",Cpy=j4u+" "+k2t,DIs="Opera",jeI=DIs+" Mini",B4u="Edge",Spy="Microsoft "+B4u,RIs="Firefox",jpy=RIs+" "+Qon,FIs="Nintendo",NIs="PlayStation",zon="Xbox",Bpy=N2t+" "+k2t,Tpy=k2t+" "+C4u,UPr="Windows",Dpy=UPr+" Phone";var T4u="Generic",BeI=T4u+" "+k2t.toLowerCase(),TeI=T4u+" "+I4u.toLowerCase(),Rpy="Konqueror",rU="(\\d+(\\.\\d+)?)",TIs=new RegExp("Version/"+rU),DeI=new RegExp(zon,"i"),ReI=new RegExp(NIs+" \\w+","i"),FeI=new RegExp(FIs+" \\w+","i"),Fpy=new RegExp(Mon+"|PlayBook|BB10","i"),Npy={"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 NeI={[Cpy]:[new RegExp("rv:"+rU)],[Spy]:[new RegExp(B4u+"?\\/"+rU)],[Von]:[new RegExp("("+Von+"|CrMo)\\/"+rU)],[Ipy]:[new RegExp("CriOS\\/"+rU)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+rU)],[C4u]:[TIs],[Tpy]:[TIs],[DIs]:[new RegExp("("+DIs+"|OPR)\\/"+rU)],[RIs]:[new RegExp(RIs+"\\/"+rU)],[jpy]:[new RegExp("FxiOS\\/"+rU)],[Rpy]:[new RegExp("Konqueror[:/]?"+rU,"i")],[Mon]:[new RegExp(Mon+" "+rU),TIs],[Bpy]:[new RegExp("android\\s"+rU,"i")],[xpy]:[new RegExp(wpy+"\\/"+rU)],[j4u]:[new RegExp("(rv:|MSIE )"+rU)],Mozilla:[new RegExp("rv:"+rU)]};var keI=[[new RegExp(zon+"; "+zon+" (.*?)[);]","i"),e=>[zon,e&&e[1]||""]],[new RegExp(FIs,"i"),[FIs,""]],[new RegExp(NIs,"i"),[NIs,""]],[Fpy,[Mon,""]],[new RegExp(UPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[Dpy,""];if(new RegExp(k2t).test(t)&&!/IEMobile\b/.test(t))return[UPr+" "+k2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=Npy[n]||"";return/arm/i.test(t)&&(i="RT"),[UPr,i]}return[UPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Qon,t.join(".")]}return[Qon,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=F2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+N2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+N2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[N2t,t.join(".")]}return[N2t,""]}],[/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/,[Ppy,""]],[/Linux|debian/i,["Linux",""]]];var D4u="utf8";function R4u(e,t){if(!e||typeof e!="string"||kpy(e))throw new Error(t)}function kpy(e){return e.trim().length===0}function F4u(e){return e?.replace(/\/+$/,"")}async function N4u(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 Uon(){return new Date().toISOString()}function b_t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var k4u=e=>e instanceof Error;function kIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Lon=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 z4u(){return"CompressionStream"in globalThis}async function zIs(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 __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()}},z2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function Q4u(e){if(e instanceof __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 QIs(e){return typeof e=="object"&&(e instanceof __t||e instanceof z2t)}function M4u(e){return typeof e=="object"&&e instanceof __t&&e.status===413}var LPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new kon,this._events=new Lon,this._isInitialized=!1,R4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=F4u(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:QIs},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=P4u("[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=!z4u()||(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:IIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof __t)return{type:"api_error",statusCode:t.status};if(t instanceof z2t){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=zPr(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=b_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:Uon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await zIs(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:Uon(),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 Q4u(t)})}async flush(){let t=kIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),kIs([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:Uon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await zIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>M4u(f)?!1:QIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(M4u(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 z2t||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,D4u)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await N4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new z2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new __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(!QIs(i))throw i;await Q4u(i)}};return Promise.race([new Promise((i,o)=>{b_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:()=>LIs,ErrorCoercer:()=>qIs,ErrorEventCoercer:()=>WIs,ErrorPropertiesBuilder:()=>MIs,EventCoercer:()=>$Is,ObjectCoercer:()=>HIs,PrimitiveCoercer:()=>KIs,PromiseRejectionEventCoercer:()=>JIs,ReduceableCache:()=>YIs,StringCoercer:()=>GIs,chromeStackLineParser:()=>VIs,createDefaultStackParser:()=>Xpy,createStackParser:()=>Y4u,geckoStackLineParser:()=>UIs,nodeStackLineParser:()=>H4u,opera10StackLineParser:()=>q4u,opera11StackLineParser:()=>W4u,reverseAndStripFrames:()=>J4u,winjsStackLineParser:()=>L4u});var qon,V4u,Won;function U4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Won&&r.length===V4u||(V4u=r.length,Won=r.reduce((n,i)=>{qon||(qon={});let o=qon[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let u=s[a]?.filename,l=t[i];if(u&&l){n[u]=l,qon[i]=[u,l];break}}}return n},{})),Won}var Qpy=4,MIs=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&&jIs(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:U4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=Qpy){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 F2t(n)||(o.lineno=n),F2t(i)||(o.colno=i),o}var Gon=(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 Mpy=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Vpy=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Upy=/\((\S*)(?::(\d+))(?::(\d+))\)/,VIs=(e,t)=>{let r=Mpy.exec(e);if(r){let[,i,o,s]=r;return Xbe(t,i,mz,+o,+s)}let n=Vpy.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Upy.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Gon(n[1]||mz,n[2]);return Xbe(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var Lpy=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,qpy=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,UIs=(e,t)=>{let r=Lpy.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=qpy.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]=Gon(o,i),Xbe(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Wpy=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,L4u=(e,t)=>{let r=Wpy.exec(e);return r?Xbe(t,r[2],r[1]||mz,+r[3],r[4]?+r[4]:void 0):void 0};var Gpy=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,q4u=(e,t)=>{let r=Gpy.exec(e);return r?Xbe(t,r[2],r[3]||mz,+r[1]):void 0},Hpy=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,W4u=(e,t)=>{let r=Hpy.exec(e);return r?Xbe(t,r[5],r[3]||r[4]||mz,+r[1],+r[2]):void 0};var $py=/^\s*[-]{4,}$/,Kpy=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,H4u=(e,t)=>{let r=e.match(Kpy);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:G4u(r[3]),colno:G4u(r[4]),in_app:Jpy(c||"",u),platform:t}}if(e.match($py))return{filename:e,platform:t}};function Jpy(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 G4u(e){return parseInt(e||"",10)||void 0}var $4u=/\(error: (.*)\)/,K4u=50;function J4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,K4u).map(r=>({...r,filename:r.filename||Ypy(t).filename,function:r.function||mz}))}function Ypy(e){return e[e.length-1]||{}}function Xpy(){return Y4u("web:javascript",VIs,UIs)}function Y4u(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=$4u.test(a)?a.replace($4u,"$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>=K4u)break}}return J4u(i)}}var LIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=QPr(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 A_t(t,"DOMException")}isDOMError(t){return A_t(t,"DOMError")}};var qIs=class{match(t){return BIs(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 WIs=class{constructor(){}match(t){return E4u(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 Zpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,GIs=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(Zpy);return i&&(r=i[1],n=i[2]),[r,n]}};var X4u=["fatal","error","warning","log","info","debug"];function Hon(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 HIs=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 Fon(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=Hon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return QPr(t)&&!v4u(t)&&X4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(k4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var $Is=class{match(t){return Fon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Hon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var KIs=class{match(t){return MPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var JIs=class{match(t){return A_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return MPr(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(MPr(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 YIs=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 tLu=require("fs"),rLu=require("readline"),$on=new T3.ReduceableCache(25),nLu=new T3.ReduceableCache(20),XIs=7,efy=1e3,tfy=1e4;async function iLu(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"||ofy(s)||sfy(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(nLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=cfy(o);if(s.every(c=>afy(i,c)))continue;let a=ufy($on,i,{});n.push(rfy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&nfy(e,$on),$on.reduce(),e}function rfy(e,t,r){return new Promise(n=>{let i=(0,tLu.createReadStream)(e),o=(0,rLu.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(){nLu.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]=lfy(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 nfy(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;ify(r.lineno,r,n)}}function ify(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=oLu(e);i<e;i++){let o=r[i];if(o===void 0)return void Z4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void Z4u(t);t.context_line=r[e];let n=sLu(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 Z4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function ofy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function sfy(e){return e.lineno!==void 0&&e.lineno>tfy||e.colno!==void 0&&e.colno>efy}function afy(e,t){let r=$on.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 cfy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=eLu(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+XIs:(i.push(n),n=eLu(o)),t++}return i}function eLu(e){return[oLu(e),sLu(e)]}function oLu(e){return Math.max(1,e-XIs)}function sLu(e){return e+XIs}function ufy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function lfy(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 pfy(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 aLu(e,t){globalThis.process?.on("uncaughtException",pfy(e,t))}function cLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var ffy=2e3,mue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Non({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return _4u(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()&&(aLu(this.onException.bind(this),this.onFatalError.bind(this)),cLu(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(ffy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var uLu="5.24.7";var qPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function lLu(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 mfy=6e4,dfy=1152921504606847e3,hfy=["is_not"],Q2t=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)}},Kon=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"?hLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):dLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await pLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await pLu(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(mfy,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 Q2t(`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 Q2t(`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 Q2t(`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 Q2t&&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=b_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 pLu(e,t,r=""){let n=await lLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/dfy}function dLu(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&&!hfy.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 fLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return fLu(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=yfy(String(i));if(u==null&&(u=mLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=mLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function gfy(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 hLu(e,t,r,n=!1){let i=String(e.value);gfy(i,r);let o=r[i];return gLu(o,t,r,n)}function gLu(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=gLu(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=hLu(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=dLu(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 fLu(e){try{return new RegExp(e),!0}catch{return!1}}function mLu(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 yfy(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 Jon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var Afy=100,yLu=3e4,bfy=5e4,Yon=class extends LPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Jon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,Afy):yLu,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 Kon({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 mue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||bfy}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 uLu}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=yLu){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=qPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(qPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(qPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(qPr.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=b_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(w4u(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(!mue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!mue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(mue.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"&&A4u(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 ALu=require("async_hooks"),Xon=class{constructor(){this.storage=new ALu.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 bLu="posthog-node";function _fy(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[ZIs.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 ZIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=bLu,this.name=bLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(_fy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};mue.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),[m4u(),iLu]);var t9e=class extends Yon{getLibraryId(){return"posthog-node"}initializeContext(){return new Xon}};var Zon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new t9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.93.1",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var WPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var M2t=require("fs/promises"),wLu=require("os"),xLu=require("path");var _Lu=He(require("crypto")),tsn=new Uint8Array(256),esn=tsn.length;function eCs(){return esn>tsn.length-16&&(_Lu.default.randomFillSync(tsn),esn=0),tsn.slice(esn,esn+=16)}var vLu=/^(?:[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 vfy(e){return typeof e=="string"&&vLu.test(e)}var tCs=vfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function OLu(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 ELu=He(require("crypto")),rCs={randomUUID:ELu.default.randomUUID};function Ofy(e,t,r){if(rCs.randomUUID&&!t&&!e)return rCs.randomUUID();e=e||{};let n=e.random||(e.rng||eCs)();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 OLu(n)}var dR=Ofy;var Efy="id",wfy=".fern",GPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new t9e(r),this.userId=t==null?void 0:zvs(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.93.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 rC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,wLu.homedir)()),Ze.of(wfy),Ze.of(Efy));await qr(t)||(await(0,M2t.mkdir)((0,xLu.dirname)(t),{recursive:!0}),await(0,M2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,M2t.readFile)(t)).toString()}return this.persistedDistinctId}};var nCs;async function V2t(){return nCs==null&&(nCs=await xfy()),nCs}async function xfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new WPr;let r=await AZr();return r!=null?new GPr({token:r,posthogApiKey:e}):await Tbe()!=null?new Zon({posthogApiKey:e}):new GPr({token:void 0,posthogApiKey:e})}catch{return new WPr}}var PLu=(e=0)=>t=>`\x1B[${t+e}m`,ILu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,CLu=(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]}},MnI=Object.keys(fI.modifier),Pfy=Object.keys(fI.color),Ify=Object.keys(fI.bgColor),VnI=[...Pfy,...Ify];function Cfy(){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=PLu(),fI.color.ansi256=ILu(),fI.color.ansi16m=CLu(),fI.bgColor.ansi=PLu(10),fI.bgColor.ansi256=ILu(10),fI.bgColor.ansi16m=CLu(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 Sfy=Cfy(),due=Sfy;var nsn=He(require("process"),1),jLu=He(require("os"),1),iCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:nsn.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}=nsn.default,rsn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?rsn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(rsn=1);function jfy(){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 Bfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Tfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=jfy();n!==void 0&&(rsn=n);let i=r?rsn: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(nsn.default.platform==="win32"){let s=jLu.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 SLu(e,t={}){let r=Tfy(e,{streamIsTTY:e&&e.isTTY,...t});return Bfy(r)}var Dfy={stdout:SLu({isTTY:iCs.default.isatty(1)}),stderr:SLu({isTTY:iCs.default.isatty(2)})},BLu=Dfy;function TLu(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 DLu(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=$4u.test(a)?a.replace($4u,"$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>=K4u)break}}return J4u(i)}}var LIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=QPr(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 A_t(t,"DOMException")}isDOMError(t){return A_t(t,"DOMError")}};var qIs=class{match(t){return BIs(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 WIs=class{constructor(){}match(t){return E4u(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 Zpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,GIs=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(Zpy);return i&&(r=i[1],n=i[2]),[r,n]}};var X4u=["fatal","error","warning","log","info","debug"];function Hon(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 HIs=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 Fon(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=Hon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return QPr(t)&&!v4u(t)&&X4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(k4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var $Is=class{match(t){return Fon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Hon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var KIs=class{match(t){return MPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var JIs=class{match(t){return A_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return MPr(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(MPr(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 YIs=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 tLu=require("fs"),rLu=require("readline"),$on=new T3.ReduceableCache(25),nLu=new T3.ReduceableCache(20),XIs=7,efy=1e3,tfy=1e4;async function iLu(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"||ofy(s)||sfy(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(nLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=cfy(o);if(s.every(c=>afy(i,c)))continue;let a=ufy($on,i,{});n.push(rfy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&nfy(e,$on),$on.reduce(),e}function rfy(e,t,r){return new Promise(n=>{let i=(0,tLu.createReadStream)(e),o=(0,rLu.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(){nLu.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]=lfy(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 nfy(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;ify(r.lineno,r,n)}}function ify(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=oLu(e);i<e;i++){let o=r[i];if(o===void 0)return void Z4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void Z4u(t);t.context_line=r[e];let n=sLu(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 Z4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function ofy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function sfy(e){return e.lineno!==void 0&&e.lineno>tfy||e.colno!==void 0&&e.colno>efy}function afy(e,t){let r=$on.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 cfy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=eLu(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+XIs:(i.push(n),n=eLu(o)),t++}return i}function eLu(e){return[oLu(e),sLu(e)]}function oLu(e){return Math.max(1,e-XIs)}function sLu(e){return e+XIs}function ufy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function lfy(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 pfy(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 aLu(e,t){globalThis.process?.on("uncaughtException",pfy(e,t))}function cLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var ffy=2e3,mue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Non({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return _4u(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()&&(aLu(this.onException.bind(this),this.onFatalError.bind(this)),cLu(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(ffy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var uLu="5.24.7";var qPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function lLu(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 mfy=6e4,dfy=1152921504606847e3,hfy=["is_not"],Q2t=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)}},Kon=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"?hLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):dLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await pLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await pLu(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(mfy,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 Q2t(`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 Q2t(`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 Q2t(`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 Q2t&&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=b_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 pLu(e,t,r=""){let n=await lLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/dfy}function dLu(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&&!hfy.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 fLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return fLu(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=yfy(String(i));if(u==null&&(u=mLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=mLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function gfy(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 hLu(e,t,r,n=!1){let i=String(e.value);gfy(i,r);let o=r[i];return gLu(o,t,r,n)}function gLu(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=gLu(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=hLu(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=dLu(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 fLu(e){try{return new RegExp(e),!0}catch{return!1}}function mLu(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 yfy(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 Jon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var Afy=100,yLu=3e4,bfy=5e4,Yon=class extends LPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Jon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,Afy):yLu,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 Kon({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 mue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||bfy}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 uLu}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=yLu){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=qPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(qPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(qPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(qPr.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=b_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(w4u(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(!mue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!mue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(mue.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"&&A4u(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 ALu=require("async_hooks"),Xon=class{constructor(){this.storage=new ALu.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 bLu="posthog-node";function _fy(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[ZIs.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 ZIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=bLu,this.name=bLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(_fy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};mue.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),[m4u(),iLu]);var t9e=class extends Yon{getLibraryId(){return"posthog-node"}initializeContext(){return new Xon}};var Zon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new t9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.93.2",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var WPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var M2t=require("fs/promises"),wLu=require("os"),xLu=require("path");var _Lu=He(require("crypto")),tsn=new Uint8Array(256),esn=tsn.length;function eCs(){return esn>tsn.length-16&&(_Lu.default.randomFillSync(tsn),esn=0),tsn.slice(esn,esn+=16)}var vLu=/^(?:[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 vfy(e){return typeof e=="string"&&vLu.test(e)}var tCs=vfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function OLu(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 ELu=He(require("crypto")),rCs={randomUUID:ELu.default.randomUUID};function Ofy(e,t,r){if(rCs.randomUUID&&!t&&!e)return rCs.randomUUID();e=e||{};let n=e.random||(e.rng||eCs)();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 OLu(n)}var dR=Ofy;var Efy="id",wfy=".fern",GPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new t9e(r),this.userId=t==null?void 0:zvs(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.93.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await rC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,wLu.homedir)()),Ze.of(wfy),Ze.of(Efy));await qr(t)||(await(0,M2t.mkdir)((0,xLu.dirname)(t),{recursive:!0}),await(0,M2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,M2t.readFile)(t)).toString()}return this.persistedDistinctId}};var nCs;async function V2t(){return nCs==null&&(nCs=await xfy()),nCs}async function xfy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new WPr;let r=await AZr();return r!=null?new GPr({token:r,posthogApiKey:e}):await Tbe()!=null?new Zon({posthogApiKey:e}):new GPr({token:void 0,posthogApiKey:e})}catch{return new WPr}}var PLu=(e=0)=>t=>`\x1B[${t+e}m`,ILu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,CLu=(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]}},MnI=Object.keys(fI.modifier),Pfy=Object.keys(fI.color),Ify=Object.keys(fI.bgColor),VnI=[...Pfy,...Ify];function Cfy(){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=PLu(),fI.color.ansi256=ILu(),fI.color.ansi16m=CLu(),fI.bgColor.ansi=PLu(10),fI.bgColor.ansi256=ILu(10),fI.bgColor.ansi16m=CLu(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 Sfy=Cfy(),due=Sfy;var nsn=He(require("process"),1),jLu=He(require("os"),1),iCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:nsn.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}=nsn.default,rsn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?rsn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(rsn=1);function jfy(){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 Bfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Tfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=jfy();n!==void 0&&(rsn=n);let i=r?rsn: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(nsn.default.platform==="win32"){let s=jLu.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 SLu(e,t={}){let r=Tfy(e,{streamIsTTY:e&&e.isTTY,...t});return Bfy(r)}var Dfy={stdout:SLu({isTTY:iCs.default.isatty(1)}),stderr:SLu({isTTY:iCs.default.isatty(2)})},BLu=Dfy;function TLu(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 DLu(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:RLu,stderr:FLu}=BLu,oCs=Symbol("GENERATOR"),U2t=Symbol("STYLER"),HPr=Symbol("IS_EMPTY"),NLu=["ansi","ansi","ansi256","ansi16m"],L2t=Object.create(null),Rfy=(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=RLu?RLu.level:0;e.level=t.level===void 0?r:t.level};var Ffy=e=>{let t=(...r)=>r.join(" ");return Rfy(t,e),Object.setPrototypeOf(t,$Pr.prototype),t};function $Pr(e){return Ffy(e)}Object.setPrototypeOf($Pr.prototype,Function.prototype);for(let[e,t]of Object.entries(due))L2t[e]={get(){let r=isn(this,aCs(t.open,t.close,this[U2t]),this[HPr]);return Object.defineProperty(this,e,{value:r}),r}};L2t.visible={get(){let e=isn(this,this[U2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var sCs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?due[r].ansi16m(...n):t==="ansi256"?due[r].ansi256(due.rgbToAnsi256(...n)):due[r].ansi(due.rgbToAnsi(...n)):e==="hex"?sCs("rgb",t,r,...due.hexToRgb(...n)):due[r][e](...n),Nfy=["rgb","hex","ansi256"];for(let e of Nfy){L2t[e]={get(){let{level:r}=this;return function(...n){let i=aCs(sCs(e,NLu[r],"color",...n),due.color.close,this[U2t]);return isn(this,i,this[HPr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);L2t[t]={get(){let{level:r}=this;return function(...n){let i=aCs(sCs(e,NLu[r],"bgColor",...n),due.bgColor.close,this[U2t]);return isn(this,i,this[HPr])}}}}var kfy=Object.defineProperties(()=>{},{...L2t,level:{enumerable:!0,get(){return this[oCs].level},set(e){this[oCs].level=e}}}),aCs=(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}},isn=(e,t,r)=>{let n=(...i)=>zfy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,kfy),n[oCs]=e,n[U2t]=t,n[HPr]=r,n},zfy=(e,t)=>{if(e.level<=0||!t)return e[HPr]?"":t;let r=e[U2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=TLu(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 ONn(e){return`API section ${e} is specified multiple times, however will be only rendered once.`}function PIA(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}_w();function ENn({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 ZNl({left:e,right:t,findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}){return ENn({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 G3t(e,t){if(t!=null)return dl(e.absoluteFilePath,t)}function ekl({docsWorkspace:e,page:t,parentSlug:r,idgen:n,markdownFilesToFullSlugs:i,markdownFilesToNoIndex:o,hideChildren:s,resolveIconFileId:a}){let c=nr.V1.PageId(G3t(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 wNn=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=vHe.create(r,o),this.collectedFileIds=l,this.#p=u,this.#u=this.apiSection.overviewAbsolutePath!=null?nr.V1.PageId(G3t(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 OEt(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?vHe.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 ekl({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(G3t(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=vHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(ONn(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(vNn(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(G3t(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?vHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(vNn(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(ONn(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=vHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(ONn(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: ${_Nn(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,tkl.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 ZNl({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: ${_Nn(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: ${_Nn(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(vNn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return qNl(t)}mergeEndpointPairs(t){return ENn({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 rkl=He(require("crypto"),1);function IIA(e){return rkl.default.createHash("sha256").update(e).digest("hex")}var xNn=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),IIA(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 nkl(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 PNn=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 INn=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 PRr=class{matcher;document;constructor(t){this.matcher=new PNn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new INn(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 TNn=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 OHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(OHe);if(typeof e!="object")return e;let t=e;if(q$s(t))return"value"in t?OHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=OHe(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 CNn(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 CIA=0,SIA=15e3,SNn=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??CIA,requestTimeoutMs:t.requestTimeoutMs??SIA,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 ADr(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 H3t=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 jNn=require("fs/promises");async function jIA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,jNn.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 jIA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,jNn.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 fY({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:Xue()}),s=new GOt({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 ikl({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,jNn.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 IRr=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,IRr.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 BNn({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=OHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=CNn(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=OHe(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,IRr.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,IRr.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 BIA(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 TIA(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 akl(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=akl(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 DIA(e,t,r){return J$s(e,t,r,"header")}function RIA(e,t,r){return J$s(e,t,r,"query")}function FIA(e,t,r){return J$s(e,t,r,"path")}async function NIA(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=akl(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 PRr({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 K3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await kIA(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 kIA(e,t,r,n,i,o,s){let a=new SNn(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,TNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null)try{let O;try{O=JSON.parse(v)}catch{O=sMe(v,{json:!0})}let E=await(0,TNn.readFile)(b.absoluteFilePathToOverrides,"utf-8"),P;try{P=JSON.parse(E)}catch{P=sMe(E,{json:!0})}let x=wwr({data:O,overrides:P});v=E9e(x),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(O){r.logger.debug(`Failed to apply overrides to spec: ${O}. Using raw spec.`)}if(!BIA(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=TIA(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 ikl({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 zIA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await BNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ckl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function zIA(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=okl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=okl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ckl(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=H3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await QIA(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=skl(E,b);v[O]=P}let _=skl(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 ckl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function okl(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(!UIA(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&&!VIA(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=$3t(l.requestBodyV3),h=$3t(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 QIA(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&&H3t.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&&(BNn({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 MIA(_,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 BNn({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 MIA(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 NIA(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:$3t(e.example.requestBodyV3),originalResponseExample:$3t(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?DIA(f,e.example.path,e.endpoint.method):[],v=f?RIA(f,e.example.path,e.endpoint.method):[],_=f?FIA(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=OHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=CNn(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&&H3t.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 skl(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 VIA(e,t,r){let i=$3t(e.requestBodyV3),o=$3t(e.responseBodyV3),s=DNn(i,t,`${r}:request`),a=DNn(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 DNn(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=DNn(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=DNn(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 UIA(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 $3t(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 ukl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return lkl({scheme:n,playgroundConfig:t,context:r})}}function lkl({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 pkl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=lkl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();_w();Ni();_w();function mkl(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:$IA(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:()=>qIA(t.v2),float:()=>fkl(t.v2),double:()=>fkl(t.v2),string:()=>LIA(t.v2),long:()=>WIA(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:()=>GIA(t.v2),uint64:()=>HIA(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 LIA(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 qIA(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 fkl(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 WIA(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 GIA(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 HIA(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 $IA(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?JIA(i,t):[],webhooks:o!=null?KIA(o):[],websockets:s!=null?[YIA(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 KIA(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??vbt(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:sCA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(X$s).filter(ru)}})}function JIA(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=hkl({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=hkl({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=pqt({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:XIA(n.security),multiAuth:ZIA(n.security,t.auth),description:n.docs??void 0,method:nCA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?eCA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??vbt(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:[...J3t(n.basePath),...J3t(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?J3t(t.basePath):[],...J3t(e.basePath),...J3t(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?dkl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(dkl).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:iCA(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 YIA(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?tCA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??vbt(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:J3t(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:cCA(n.body),description:n.docs,availability:RP(n.availability)})),examples:r}}function XIA(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 ZIA(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 eCA({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 tCA({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:rCA(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 rCA(e,t){return e.replace(/^[^:]+/,t)}function nCA(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 J3t(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 dkl(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 iCA(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:uCA(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 hkl({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(oCA)?{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 oCA(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 sCA(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}:aCA(e)}function aCA(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 cCA(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 uCA(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=lCA(e,t);return o!=null?[o]:[]}function lCA(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:ukl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:pkl({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:mkl(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 K3t(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 pCA=new sHr({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function CRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return aHr(iHr(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),pCA))}var gkl=He(require("path"),1);async function h7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&gkl.default.isAbsolute(e)&&t.add(e)}async function ykl({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=>Y3t({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=>Y3t({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=>Y3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await Y3t({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 Y3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function Y3t({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=>Y3t({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 fCA(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=bHe({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function RNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)RNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=fCA(o,t,r):typeof o=="object"&&RNn(o,t,r)}function FNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)FNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&FNn(i,t,r)}pr();async function Akl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){dCA(e)?await Promise.all(e.map(async i=>{hCA(i)?await Promise.all(i.layout.map(async o=>{await NNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):gCA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await NNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await NNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function NNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Hce(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 NNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),mCA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function mCA(e){return e.api!=null}function dCA(e){return e[0]?.tab!=null}function hCA(e){return"layout"in e&&Array.isArray(e.layout)}function gCA(e){return"variants"in e&&Array.isArray(e.variants)}function UU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}_kl.default.extend(vkl.default);var yCA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),bkl=0,ACA=async({ir:e})=>(bkl++,`${e.apiName.snakeCase.unsafeName}-${bkl}`),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=yCA,registerApi:c=ACA,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=xNn.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 xTr(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return xTr(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 Y3s({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[Ze.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 Akl({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[Ze.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 _He({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 ERr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=wRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Ze.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 ykl({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}=WVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Ze.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});FNn(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[Ze.of(X)]=ORr(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}=bCA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Ze.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,EHe.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,EHe.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,EHe.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,EHe.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,Okl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();vRr(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=It(this.docsWorkspace.absoluteFilePath,Ze.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?vHe.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 ekl({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(G3t(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=vHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(ONn(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(vNn(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(G3t(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?vHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(vNn(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(ONn(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=vHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(ONn(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: ${_Nn(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,tkl.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 ZNl({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: ${_Nn(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: ${_Nn(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(vNn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return qNl(t)}mergeEndpointPairs(t){return ENn({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 rkl=He(require("crypto"),1);function IIA(e){return rkl.default.createHash("sha256").update(e).digest("hex")}var xNn=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),IIA(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 nkl(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 PNn=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 INn=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 PRr=class{matcher;document;constructor(t){this.matcher=new PNn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new INn(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 TNn=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 OHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(OHe);if(typeof e!="object")return e;let t=e;if(q$s(t))return"value"in t?OHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=OHe(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 CNn(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 CIA=0,SIA=15e3,SNn=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??CIA,requestTimeoutMs:t.requestTimeoutMs??SIA,styleInstructions:t.styleInstructions},this.context=r;let o="https://registry-v2.buildwithfern.com";if(!o)throw new Error("DEFAULT_FDR_LAMBDA_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 ADr(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 H3t=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 jNn=require("fs/promises");async function jIA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,jNn.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 jIA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,jNn.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 fY({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:Xue()}),s=new GOt({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 ikl({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,jNn.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 IRr=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,IRr.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 BNn({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=OHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=CNn(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=OHe(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,IRr.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,IRr.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 BIA(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 TIA(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 akl(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=akl(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 DIA(e,t,r){return J$s(e,t,r,"header")}function RIA(e,t,r){return J$s(e,t,r,"query")}function FIA(e,t,r){return J$s(e,t,r,"path")}async function NIA(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=akl(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 PRr({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 K3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await kIA(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 kIA(e,t,r,n,i,o,s){let a=new SNn(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,TNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null)try{let O;try{O=JSON.parse(v)}catch{O=sMe(v,{json:!0})}let E=await(0,TNn.readFile)(b.absoluteFilePathToOverrides,"utf-8"),P;try{P=JSON.parse(E)}catch{P=sMe(E,{json:!0})}let x=wwr({data:O,overrides:P});v=E9e(x),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(O){r.logger.debug(`Failed to apply overrides to spec: ${O}. Using raw spec.`)}if(!BIA(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=TIA(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 ikl({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 zIA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await BNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ckl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function zIA(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=okl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=okl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ckl(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=H3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await QIA(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=skl(E,b);v[O]=P}let _=skl(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 ckl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function okl(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(!UIA(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&&!VIA(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=$3t(l.requestBodyV3),h=$3t(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 QIA(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&&H3t.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&&(BNn({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 MIA(_,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 BNn({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 MIA(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 NIA(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:$3t(e.example.requestBodyV3),originalResponseExample:$3t(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?DIA(f,e.example.path,e.endpoint.method):[],v=f?RIA(f,e.example.path,e.endpoint.method):[],_=f?FIA(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=OHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=CNn(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&&H3t.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 skl(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 VIA(e,t,r){let i=$3t(e.requestBodyV3),o=$3t(e.responseBodyV3),s=DNn(i,t,`${r}:request`),a=DNn(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 DNn(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=DNn(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=DNn(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 UIA(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 $3t(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 ukl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return lkl({scheme:n,playgroundConfig:t,context:r})}}function lkl({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 pkl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=lkl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();_w();Ni();_w();function mkl(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:$IA(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:()=>qIA(t.v2),float:()=>fkl(t.v2),double:()=>fkl(t.v2),string:()=>LIA(t.v2),long:()=>WIA(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:()=>GIA(t.v2),uint64:()=>HIA(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 LIA(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 qIA(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 fkl(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 WIA(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 GIA(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 HIA(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 $IA(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?JIA(i,t):[],webhooks:o!=null?KIA(o):[],websockets:s!=null?[YIA(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 KIA(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??vbt(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:sCA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(X$s).filter(ru)}})}function JIA(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=hkl({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=hkl({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=pqt({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:XIA(n.security),multiAuth:ZIA(n.security,t.auth),description:n.docs??void 0,method:nCA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?eCA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??vbt(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:[...J3t(n.basePath),...J3t(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?J3t(t.basePath):[],...J3t(e.basePath),...J3t(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?dkl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(dkl).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:iCA(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 YIA(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?tCA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??vbt(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:J3t(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:cCA(n.body),description:n.docs,availability:RP(n.availability)})),examples:r}}function XIA(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 ZIA(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 eCA({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 tCA({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:rCA(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 rCA(e,t){return e.replace(/^[^:]+/,t)}function nCA(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 J3t(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 dkl(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 iCA(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:uCA(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 hkl({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(oCA)?{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 oCA(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 sCA(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}:aCA(e)}function aCA(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 cCA(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 uCA(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=lCA(e,t);return o!=null?[o]:[]}function lCA(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:ukl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:pkl({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:mkl(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 K3t(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 pCA=new sHr({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function CRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return aHr(iHr(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),pCA))}var gkl=He(require("path"),1);async function h7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&gkl.default.isAbsolute(e)&&t.add(e)}async function ykl({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=>Y3t({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=>Y3t({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=>Y3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await Y3t({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 Y3t({item:r.landingPage,filepaths:t}),(await tKs({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function Y3t({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=>Y3t({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 fCA(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=bHe({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function RNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)RNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=fCA(o,t,r):typeof o=="object"&&RNn(o,t,r)}function FNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)FNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&FNn(i,t,r)}pr();async function Akl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){dCA(e)?await Promise.all(e.map(async i=>{hCA(i)?await Promise.all(i.layout.map(async o=>{await NNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):gCA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await NNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await NNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function NNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Hce(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 NNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),mCA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function mCA(e){return e.api!=null}function dCA(e){return e[0]?.tab!=null}function hCA(e){return"layout"in e&&Array.isArray(e.layout)}function gCA(e){return"variants"in e&&Array.isArray(e.variants)}function UU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}_kl.default.extend(vkl.default);var yCA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),bkl=0,ACA=async({ir:e})=>(bkl++,`${e.apiName.snakeCase.unsafeName}-${bkl}`),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=yCA,registerApi:c=ACA,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=xNn.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 xTr(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return xTr(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 Y3s({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[Ze.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 Akl({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[Ze.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 _He({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 ERr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=wRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Ze.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 ykl({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}=WVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Ze.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});FNn(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[Ze.of(X)]=ORr(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}=bCA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Ze.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,EHe.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,EHe.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,EHe.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,EHe.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,Okl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();vRr(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=It(this.docsWorkspace.absoluteFilePath,Ze.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?_CA(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=nkl(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=CRr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new wNn(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=Ze.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 OEt(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 v3t({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,c.graphqlOperations),Object.assign(r,c.types),s.namespace)for(let u of Object.keys(c.graphqlOperations))n.set(vn.GraphQlOperationId(u),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}}return{operations:t,types:r,namespacesByOperationId:n}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=aa(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??M0(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=It(r,Ze.of("_navigation.yml"));if(!(0,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,EHe.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=It(t,Ze.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,EHe.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 OEt(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};RNn(t,r,n)}};function bCA(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 _CA(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:()=>Ekl,ApiDefinitionId:()=>qkl,ApiId:()=>$kl,Availability:()=>uzl,DocsConfigId:()=>Kkl,EndpointId:()=>Ykl,EndpointPathLiteral:()=>azl,EnvironmentId:()=>Jkl,FileId:()=>rzl,HttpMethod:()=>czl,IndexSegmentId:()=>wkl,JqString:()=>izl,OrgId:()=>Gkl,PageId:()=>tzl,PayloadLocation:()=>Nzl,PropertyKey:()=>ozl,PullRequestState:()=>Bzl,RoleId:()=>szl,TokenId:()=>Hkl,TypeId:()=>ezl,Url:()=>nzl,VersionId:()=>Wkl,WebSocketId:()=>Xkl,WebhookId:()=>Zkl,algolia:()=>iKs,api:()=>dKs,commons:()=>hKs,diff:()=>lzl,docs:()=>wKs,generators:()=>PKs,git:()=>IKs,navigation:()=>jKs,sdks:()=>TKs,snippets:()=>Rzl,snippetsFactory:()=>Fzl,templates:()=>DKs,tokens:()=>kzl});var iKs={};D(iKs,{AlgoliaSearchIndex:()=>Ekl,IndexSegmentId:()=>wkl});function Ekl(e){return e}function wkl(e){return e}var dKs={};D(dKs,{latest:()=>aKs,v1:()=>mKs});var aKs={};D(aKs,{AuthSchemeId:()=>xkl,WebhookHttpMethod:()=>Skl,auth:()=>oKs,commons:()=>Pkl,endpoint:()=>Ikl,type_:()=>Ckl,webhook:()=>sKs,websocket:()=>jkl});var oKs={};D(oKs,{AuthSchemeId:()=>xkl});function xkl(e){return e}var Pkl={};var Ikl={};var Ckl={};var sKs={};D(sKs,{WebhookHttpMethod:()=>Skl});var Skl={Get:"GET",Post:"POST"};var jkl={};var mKs={};D(mKs,{SubpackageId:()=>Mkl,WebSocketMessageId:()=>Vkl,WebSocketMessageOrigin:()=>Ukl,WebhookHttpMethod:()=>Lkl,commons:()=>fKs,db:()=>cKs,read:()=>lKs,register:()=>pKs});var cKs={};D(cKs,{endpoint:()=>Bkl});var Bkl={};var lKs={};D(lKs,{SupportedLanguage:()=>Tkl,endpoint:()=>uKs,type_:()=>Dkl,webhook:()=>Rkl,websocket:()=>Fkl});var uKs={};D(uKs,{SupportedLanguage:()=>Tkl});var Tkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Dkl={};var Rkl={};var Fkl={};var pKs={};D(pKs,{SourceId:()=>vCA,endpoint:()=>Nkl,type_:()=>kkl,webhook:()=>zkl,websocket:()=>Qkl});var Nkl={};var kkl={};var zkl={};var Qkl={};function vCA(e){return e}var fKs={};D(fKs,{SubpackageId:()=>Mkl,WebSocketMessageId:()=>Vkl,WebSocketMessageOrigin:()=>Ukl,WebhookHttpMethod:()=>Lkl});function Mkl(e){return e}function Vkl(e){return e}var Ukl={Client:"client",Server:"server"};var Lkl={Get:"GET",Post:"POST"};var hKs={};D(hKs,{ApiDefinitionId:()=>qkl,ApiId:()=>$kl,Availability:()=>uzl,DocsConfigId:()=>Kkl,EndpointId:()=>Ykl,EndpointPathLiteral:()=>azl,EnvironmentId:()=>Jkl,FileId:()=>rzl,HttpMethod:()=>czl,JqString:()=>izl,OrgId:()=>Gkl,PageId:()=>tzl,PropertyKey:()=>ozl,RoleId:()=>szl,TokenId:()=>Hkl,TypeId:()=>ezl,Url:()=>nzl,VersionId:()=>Wkl,WebSocketId:()=>Xkl,WebhookId:()=>Zkl});function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}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}var czl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var uzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var lzl={};var wKs={};D(wKs,{latest:()=>AKs,v1:()=>OKs,v2:()=>EKs});var AKs={};D(AKs,{Layout:()=>fzl,MdxEngine:()=>OCA,TwitterCardSetting:()=>mzl,commons:()=>pzl,frontmatter:()=>gKs,seo:()=>yKs});var OCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var pzl={};var gKs={};D(gKs,{Layout:()=>fzl});var fzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var yKs={};D(yKs,{TwitterCardSetting:()=>mzl});var mzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var OKs={};D(OKs,{commons:()=>vKs,db:()=>dzl,read:()=>hzl,write:()=>bKs});var dzl={};var hzl={};var bKs={};D(bKs,{DocsRegistrationId:()=>wCA,FilePath:()=>ECA});function ECA(e){return e}function wCA(e){return e}var vKs={};D(vKs,{ContentAlignment:()=>bzl,FontDisplay:()=>wzl,FontStyle:()=>Ezl,HeaderPosition:()=>_zl,JsScriptStrategy:()=>Ozl,ProgrammingLanguage:()=>gzl,SearchbarPlacement:()=>yzl,TabsPlacement:()=>Azl,TwitterCardSetting:()=>vzl,commons:()=>_Ks});var _Ks={};D(_Ks,{ContentAlignment:()=>bzl,FontDisplay:()=>wzl,FontStyle:()=>Ezl,HeaderPosition:()=>_zl,JsScriptStrategy:()=>Ozl,ProgrammingLanguage:()=>gzl,SearchbarPlacement:()=>yzl,TabsPlacement:()=>Azl,TwitterCardSetting:()=>vzl});var gzl={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 yzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var Azl={Header:"HEADER",Sidebar:"SIDEBAR"};var bzl={Center:"CENTER",Left:"LEFT"};var _zl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var vzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ozl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var Ezl={Normal:"normal",Italic:"italic"};var wzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var EKs={};D(EKs,{read:()=>xzl,write:()=>Pzl});var xzl={};var Pzl={};var PKs={};D(PKs,{ChangelogEntryType:()=>Czl,GeneratorId:()=>xCA,GeneratorLanguage:()=>PCA,ReleaseType:()=>Szl,cli:()=>Izl,commons:()=>xKs,versions:()=>jzl});var Izl={};var xKs={};D(xKs,{ChangelogEntryType:()=>Czl,ReleaseType:()=>Szl});var Czl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Szl={Ga:"GA",Rc:"RC"};var jzl={};function xCA(e){return e}var PCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var IKs={};D(IKs,{PullRequestState:()=>Bzl});var Bzl={Open:"open",Closed:"closed",Merged:"merged"};var jKs={};D(jKs,{latest:()=>CKs,v1:()=>SKs});var CKs={};D(CKs,{NodeId:()=>SCA,ProductId:()=>jCA,Slug:()=>ICA,TabId:()=>CCA});function ICA(e){return e}function CCA(e){return e}function SCA(e){return e}function jCA(e){return e}var SKs={};D(SKs,{NavigationV1Availability:()=>FCA,NodeId:()=>DCA,ProductId:()=>RCA,Slug:()=>BCA,TabId:()=>TCA});function BCA(e){return e}function TCA(e){return e}function DCA(e){return e}function RCA(e){return e}var FCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var TKs={};D(TKs,{Language:()=>Tzl,VersionBump:()=>Dzl,versions:()=>BKs});var BKs={};D(BKs,{Language:()=>Tzl,VersionBump:()=>Dzl});var Tzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Dzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Rzl={};var Fzl={};var DKs={};D(DKs,{PayloadLocation:()=>Nzl});var Nzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var kzl={};var kNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function zzl({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 zNn=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 Qzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends zNn{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 ${Qzl(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 Mzl="x-fern-base-path",Vzl="x-fern-availability",QNn="x-fern-sdk-group-name",Uzl="x-fern-global-headers",Lzl="x-fern-sdk-method-name";var qzl="x-fern-webhook",Wzl="x-fern-access-token-locator",Gzl="x-fern-basic",Hzl="x-fern-username-variable-name",$zl="x-fern-password-variable-name",Kzl="x-fern-bearer",Jzl="x-fern-token-variable-name",Yzl="x-fern-header",Xzl="x-fern-header-variable-name",Zzl="x-fern-server-name",e2l="x-fern-examples";var MNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Zzl]}convert(){if(this.serverName!=null)return this.serverName}};var VNn=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 MNn({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 wHe(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 VNn({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 UNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var _2l=He(oI());var LNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Gzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var qNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[$zl]}convert(){return this.passwordVariableName}};var WNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Hzl]}convert(){return this.usernameVariableName}};var GNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Kzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var HNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Jzl]}convert(){return this.tokenVariableName}};function t2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var r2l="x-bearer-format",n2l="x-code-samples",i2l="x-codeSamples";var $Nn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[r2l]}convert(){return this.bearerFormat}};var KNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Yzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var JNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Xzl]}convert(){return this.headerVariableName}};function o2l(e){return e.type==="apiKey"}var X3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){o2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new $Nn({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()}}};Zns();SDc();function YNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Z3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function EEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(EEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function XNn(e){if(Array.isArray(e))return e.map(Z3t);if(typeof e=="symbol")return[e];e=EEt(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 SRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Y6r(t))return r;let n=e[t];return n===void 0?YNn(t)?SRr(e,XNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Z3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return NCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Y6r(t))return r;let n=e[t];return n===void 0?r:n}}}function NCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Y6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function s2l(e){return function(t){return SRr(t,e)}}function a2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}jrs();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 kCA(e,t,r,n);case"function":return Object.keys(t).length>0?FKs(e,{...t},r,n):RKs(e,t);default:return a2l(e)?typeof t=="string"?t==="":!0:RKs(e,t)}}function kCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return c2l(e,t,r,n);if(t instanceof Map)return zCA(e,t,r,n);if(t instanceof Set)return QCA(e,t,r,n);let i=Object.keys(t);if(e==null||h_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(!h_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 zCA(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 c2l(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 QCA(e,t,r,n){return t.size===0?!0:e instanceof Set?c2l([...e],[...t],r,n):!1}function ZNn(e,t){return NKs(e,t,()=>{})}CDc();function u2l(e){return e=IDc(e),t=>ZNn(t,e)}Trs();W6r();Brs();function l2l(e,t){return PDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(RDt(e)===J6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case H6r:case G6r:case $6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case K6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function p2l(e){return l2l(e)}var MCA=/^(?:0|[1-9]\d*)$/;function f2l(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 MCA.test(e)}}W6r();function m2l(e){return e!==null&&typeof e=="object"&&RDt(e)==="[object Arguments]"}function d2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&YNn(t)&&e?.[t]==null?r=XNn(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)||m2l(n))&&f2l(o)&&o<n.length))return!1;n=n[o]}return!0}function h2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Z3t(e);break}}return t=p2l(t),function(r){let n=SRr(r,e);return n===void 0?d2l(r,e):t===void 0?n===void 0:ZNn(n,t)}}function g2l(e){if(e==null)return p9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?h2l(e[0],e[1]):u2l(e);case"string":case"symbol":case"number":return s2l(e)}}Zns();Drs();function ekn(e,t=p9r){return e==null?{}:jk(e,g2l(t))}X2c();function y2l(e){return Y2c(EEt(e))}DDc();function A2l(e){return typeof e!="string"&&(e=EEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return TDc(A2l(y2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function tkn({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`${VCA(s)}${UCA(e)}.${LCA(n,i,o,a)}`}function VCA(e){return e?"webhook_":"endpoint_"}function UCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function LCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function b2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var rkn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Wzl],this.accessTokenLocator!=null&&(b2l(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 nkn=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 X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new rkn({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=tkn({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 e5t=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 LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new qNn({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 GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new HNn({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":{t2l(this.input)?(this.authScheme="header",this.headerAuthNode=new X3t({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 nkn({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 _2l.UnreachableCaseError(this.authScheme);return}}};var t5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=UNn(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 e5t({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 ikn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Mzl],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 v2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function O2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function r5t(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&&!v2l(i))&&(s=O2l(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 okn(e,t){return Sy(e)?Hz(e,t,void 0):e}function xHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function E2l(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 w2l(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 x2l=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 CY=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[Vzl];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 x2l.UnreachableCaseError(this.availability);return}}};var akn=He(oI());function P2l(e){return typeof e=="object"&&e!=null&&"language"in e}function I2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function C2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function S2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function skn(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(skn)}function PHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function j2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ckn=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[e2l]}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 PHe(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=>PHe(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 akn.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=j2l(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 akn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{C2l(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)&&S2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new akn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{P2l(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})):I2l(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 jRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[QNn]}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 ukn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Lzl]}convert(){return this.sdkMethodName}};var lkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[qzl]}convert(){return this.isWebhook}};var pkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[n2l]??[],...this.input[i2l]??[]],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 wEt=He(oI());function UKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function B2l(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&&(PHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>PHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new wEt.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 wEt.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(skn)){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 wEt.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 PHe(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=>PHe(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 wEt.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 wEt.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 wEt.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:B2l(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 T2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var W2l=He(oI());var D2l="#/components/schemas/";function n5t(e){if(e.$ref.startsWith(D2l))return e.$ref.replace(D2l,"")}function $Ve(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function IHe(e){return typeof e.type=="string"&&e.type==="array"}function R2l(e){return e.type==="boolean"}function F2l(e){return e.type==="integer"}function CHe(e){return!Array.isArray(e.type)&&!IHe(e)}function N2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||CHe(t)||IHe(t))}function k2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function z2l(e){return e.type==="null"}function Q2l(e){return e.type==="number"}function LKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function M2l(e){return e.type==="string"}var fkn=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 mkn=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 CY({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 dkn=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($Ve).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function hkn(e){return e!=null&&e.length>0?e:[void 0]}var i5t=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 n5t(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 r5t(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=>hkn(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 gkn=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($Ve).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?$Ve(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 ykn=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 SHe=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 V2l=He(oI());function qCA(e){return zKs.includes(e)}var Akn=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&&(qCA(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 V2l.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 bkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return $Ve({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var U2l=He(oI());function WCA(e){return kKs.includes(e)}var _kn=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&&(WCA(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 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 L2l=He(oI());function GCA(e){return QKs.includes(e)}var vkn=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 L2l.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&&(GCA(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 SHe({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 q2l=He(oI());var Okn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,q2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var xEt=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=n5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&CHe(t)&&(this.maybeEnumConverterNode=new SHe({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 CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),CHe(this.input)&&k2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=n5t(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 xEt({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 mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(N2l(this.input))this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new gkn({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 i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new SHe({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 i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":IHe(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":R2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":F2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":Q2l(this.input)&&(this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":M2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":z2l(this.input)&&(this.typeShapeNode=new bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new W2l.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 i5t({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 Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!IHe(this.input)&&this.input==null||IHe(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?$Ve(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 jHe(e){if(e!=null)return r5t(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 CY({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=T2l(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 G2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var qKs=He(oI());function Ekn(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 H2l=He(GAs(),1),o5t=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=H2l.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 HCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var wkn=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})]))),HCA(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=UNn(r.$ref,this.context.document):i=r,i!=null)return[t,new e5t({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 xkn=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 Pkn=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 CY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new xEt({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=o5t.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 xkn({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 Ekn({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 xEt)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 Ikn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=G2l(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 Pkn({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 $2l={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 K2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Ckn=He(oI());var J2l="application/json";var Y2l="application/octet-stream";function X2l(e,t){return e===t||t===rF||e===rF}var BRr=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)X2l(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,xHe(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,xHe(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,xHe(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,xHe(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,xHe(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=o5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=J2l,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=Y2l,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=ekn(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=ekn(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 Ckn.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 Ekn({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 Ckn.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 Ckn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var TRr=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=K2l(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 BRr({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 BRr({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 Skn=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 TRr({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 TRr({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 hkn(jHe(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??$2l[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 BHe=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,xHe(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 CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=wHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new lkn({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=okn(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 pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new Ikn({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 Skn({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 t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new jRr({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 jRr({input:{[QNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>tkn({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 ckn({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=w2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:E2l(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:jHe(this.queryParameters)?.flat(),headers:jHe(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:jHe(this.pathParameters)?.flat(),queryParameters:jHe(this.queryParameters)?.flat(),requestHeaders:jHe(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 s5t=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=wHe(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 BHe({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 BHe({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 BHe({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 BHe({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 BHe({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 jkn(e){return"payloads"in e}var Bkn=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 s5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:wHe(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=>{jkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Tkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Uzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||okn(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 r5t(this.globalHeaders,this.requiredProperties)?.flat()}};function Z2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Dkn=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=Z2l(o,this.context.document);if(s!=null)return new s5t({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=>{jkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Rkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=wHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ikn({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 Bkn({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 Dkn({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 wkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Tkn({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=zzl({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 dle(e.absoluteFilePath),n=await mY({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 kNn,generatedTypes:{}},c=new Rkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Skt(o,c.convert())}return o}_w();Ir();var p9l=He($Ks(),1),f9l=He(_zn(),1),nQn=require("fs/promises"),m9l=He(require("http"),1),d9l=He(require("path"),1);var Y4l=require("events"),xzn=He(require("fs"),1),FEt=He(require("path"),1);var D4l=He(require("os"),1),R4l=300,zHe=20,nFr=1e7,F4l=D4l.default.platform();var cFA=F4l==="darwin",mYs=F4l==="win32",QHe=cFA||mYs,N4l=3e3,k4l=2e4,dYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var REt;(function(e){e.CHANGE="change",e.RENAME="rename"})(REt||(REt={}));var iFr;(function(e){e.CHANGE="change",e.ERROR="error"})(iFr||(iFr={}));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 uFA=(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},vzn=uFA;var AYs=He(require("fs"),1),Ezn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var JVe=(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),z4l=hYs.default.getuid?!hYs.default.getuid():!1,Q4l=1e4,Q5=()=>{};var oFr={isChangeErrorOk:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!z4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!oFr.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(!oFr.isNodeError(e))throw e;if(!oFr.isChangeErrorOk(e))throw e}},Pj=oFr;var gYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Q4l,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()}}}}},M4l=new gYs;var YVe=(e,t)=>function(n){return function i(...o){return M4l.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)})}},XVe=(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 lFA={attempt:{chmod:JVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:JVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:JVe((0,$z.promisify)(Ab.default.close),Q5),fsync:JVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:JVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:JVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:JVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:JVe((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:YVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:YVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:YVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:YVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:YVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:YVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:YVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:XVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:XVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:XVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:XVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:XVe(Ab.default.renameSync,Pj.isRetriableError),statSync:XVe(Ab.default.statSync,Pj.isRetriableError),writeSync:XVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:XVe(Ab.default.writeFileSync,Pj.isRetriableError)}},V4l=lFA;var Ozn=He(require("fs"),1),sFr=He(require("path"),1);var yYs=()=>{};var pFA=()=>{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}},U4l=pFA;var fFA=()=>{let{promise:e,resolve:t,isPending:r}=U4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},L4l=fFA;var q4l={then:e=>{e()}};var W4l=e=>Array.isArray(e)?e:[e],G4l=e=>typeof e=="function";var mFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=W4l(o).map(Z=>G4l(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}=L4l(),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===sFr.default.sep?"":sFr.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(),Ozn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||q4l).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(),Ozn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Ozn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=sFr.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=sFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},H4l=mFA;var Uve={lang:{debounce:vzn,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(Ezn.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]===Ezn.default.sep&&t.length-e.length>Ezn.default.sep.length,poll:(e,t=k4l)=>V4l.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 H4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var wzn=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=R4l){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??zHe:Math.min(1,this.options.depth??zHe),s=this.options.limit??nFr,[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&&!QHe&&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(wzn.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(wzn.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=REt.CHANGE,r){if(this.watcher.isClosed())return;let n=wzn.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(REt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(iFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(iFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(REt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&QHe&&this.options.native!==!1?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),n=this.options.limit??nFr,[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(REt.CHANGE,a,t)}))}}},$4l=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())}},aFr=GU;var cFr=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),aFr.remove(u)},u=()=>{c(),a()};aFr.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),aFr.remove(u)},u=()=>{c(),a()};aFr.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}}};cFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};cFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var K4l=cFr;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}},J4l=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 J4l(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 Y4l.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 K4l(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 $4l(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=FEt.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??zHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&QHe&&l.options.native!==!1)))return!0;if(!QHe)break;let u=FEt.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||QHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:xzn.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=FEt.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||QHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zHe,a=r.limit??nFr,[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=FEt.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??N4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),xzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),xzn.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=FEt.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=FEt.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())}},Pzn=xYs;Mzn();Ir();var j5t=require("fs/promises"),nql=require("os"),iql=He(require("path"),1),NNA=".fern",kNA="logs";function zNA(){return"cli@3.93.1"}var VEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,nql.homedir)()),Ze.of(NNA)),r=It(t,Ze.of(kNA));await qr(r)||await(0,j5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${iql.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=It(t,Ze.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,EHe.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 OEt(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};RNn(t,r,n)}};function bCA(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 _CA(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:()=>Ekl,ApiDefinitionId:()=>qkl,ApiId:()=>$kl,Availability:()=>uzl,DocsConfigId:()=>Kkl,EndpointId:()=>Ykl,EndpointPathLiteral:()=>azl,EnvironmentId:()=>Jkl,FileId:()=>rzl,HttpMethod:()=>czl,IndexSegmentId:()=>wkl,JqString:()=>izl,OrgId:()=>Gkl,PageId:()=>tzl,PayloadLocation:()=>Nzl,PropertyKey:()=>ozl,PullRequestState:()=>Bzl,RoleId:()=>szl,TokenId:()=>Hkl,TypeId:()=>ezl,Url:()=>nzl,VersionId:()=>Wkl,WebSocketId:()=>Xkl,WebhookId:()=>Zkl,algolia:()=>iKs,api:()=>dKs,commons:()=>hKs,diff:()=>lzl,docs:()=>wKs,generators:()=>PKs,git:()=>IKs,navigation:()=>jKs,sdks:()=>TKs,snippets:()=>Rzl,snippetsFactory:()=>Fzl,templates:()=>DKs,tokens:()=>kzl});var iKs={};D(iKs,{AlgoliaSearchIndex:()=>Ekl,IndexSegmentId:()=>wkl});function Ekl(e){return e}function wkl(e){return e}var dKs={};D(dKs,{latest:()=>aKs,v1:()=>mKs});var aKs={};D(aKs,{AuthSchemeId:()=>xkl,WebhookHttpMethod:()=>Skl,auth:()=>oKs,commons:()=>Pkl,endpoint:()=>Ikl,type_:()=>Ckl,webhook:()=>sKs,websocket:()=>jkl});var oKs={};D(oKs,{AuthSchemeId:()=>xkl});function xkl(e){return e}var Pkl={};var Ikl={};var Ckl={};var sKs={};D(sKs,{WebhookHttpMethod:()=>Skl});var Skl={Get:"GET",Post:"POST"};var jkl={};var mKs={};D(mKs,{SubpackageId:()=>Mkl,WebSocketMessageId:()=>Vkl,WebSocketMessageOrigin:()=>Ukl,WebhookHttpMethod:()=>Lkl,commons:()=>fKs,db:()=>cKs,read:()=>lKs,register:()=>pKs});var cKs={};D(cKs,{endpoint:()=>Bkl});var Bkl={};var lKs={};D(lKs,{SupportedLanguage:()=>Tkl,endpoint:()=>uKs,type_:()=>Dkl,webhook:()=>Rkl,websocket:()=>Fkl});var uKs={};D(uKs,{SupportedLanguage:()=>Tkl});var Tkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Dkl={};var Rkl={};var Fkl={};var pKs={};D(pKs,{SourceId:()=>vCA,endpoint:()=>Nkl,type_:()=>kkl,webhook:()=>zkl,websocket:()=>Qkl});var Nkl={};var kkl={};var zkl={};var Qkl={};function vCA(e){return e}var fKs={};D(fKs,{SubpackageId:()=>Mkl,WebSocketMessageId:()=>Vkl,WebSocketMessageOrigin:()=>Ukl,WebhookHttpMethod:()=>Lkl});function Mkl(e){return e}function Vkl(e){return e}var Ukl={Client:"client",Server:"server"};var Lkl={Get:"GET",Post:"POST"};var hKs={};D(hKs,{ApiDefinitionId:()=>qkl,ApiId:()=>$kl,Availability:()=>uzl,DocsConfigId:()=>Kkl,EndpointId:()=>Ykl,EndpointPathLiteral:()=>azl,EnvironmentId:()=>Jkl,FileId:()=>rzl,HttpMethod:()=>czl,JqString:()=>izl,OrgId:()=>Gkl,PageId:()=>tzl,PropertyKey:()=>ozl,RoleId:()=>szl,TokenId:()=>Hkl,TypeId:()=>ezl,Url:()=>nzl,VersionId:()=>Wkl,WebSocketId:()=>Xkl,WebhookId:()=>Zkl});function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}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}var czl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var uzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var lzl={};var wKs={};D(wKs,{latest:()=>AKs,v1:()=>OKs,v2:()=>EKs});var AKs={};D(AKs,{Layout:()=>fzl,MdxEngine:()=>OCA,TwitterCardSetting:()=>mzl,commons:()=>pzl,frontmatter:()=>gKs,seo:()=>yKs});var OCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var pzl={};var gKs={};D(gKs,{Layout:()=>fzl});var fzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var yKs={};D(yKs,{TwitterCardSetting:()=>mzl});var mzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var OKs={};D(OKs,{commons:()=>vKs,db:()=>dzl,read:()=>hzl,write:()=>bKs});var dzl={};var hzl={};var bKs={};D(bKs,{DocsRegistrationId:()=>wCA,FilePath:()=>ECA});function ECA(e){return e}function wCA(e){return e}var vKs={};D(vKs,{ContentAlignment:()=>bzl,FontDisplay:()=>wzl,FontStyle:()=>Ezl,HeaderPosition:()=>_zl,JsScriptStrategy:()=>Ozl,ProgrammingLanguage:()=>gzl,SearchbarPlacement:()=>yzl,TabsPlacement:()=>Azl,TwitterCardSetting:()=>vzl,commons:()=>_Ks});var _Ks={};D(_Ks,{ContentAlignment:()=>bzl,FontDisplay:()=>wzl,FontStyle:()=>Ezl,HeaderPosition:()=>_zl,JsScriptStrategy:()=>Ozl,ProgrammingLanguage:()=>gzl,SearchbarPlacement:()=>yzl,TabsPlacement:()=>Azl,TwitterCardSetting:()=>vzl});var gzl={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 yzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var Azl={Header:"HEADER",Sidebar:"SIDEBAR"};var bzl={Center:"CENTER",Left:"LEFT"};var _zl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var vzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ozl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var Ezl={Normal:"normal",Italic:"italic"};var wzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var EKs={};D(EKs,{read:()=>xzl,write:()=>Pzl});var xzl={};var Pzl={};var PKs={};D(PKs,{ChangelogEntryType:()=>Czl,GeneratorId:()=>xCA,GeneratorLanguage:()=>PCA,ReleaseType:()=>Szl,cli:()=>Izl,commons:()=>xKs,versions:()=>jzl});var Izl={};var xKs={};D(xKs,{ChangelogEntryType:()=>Czl,ReleaseType:()=>Szl});var Czl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Szl={Ga:"GA",Rc:"RC"};var jzl={};function xCA(e){return e}var PCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var IKs={};D(IKs,{PullRequestState:()=>Bzl});var Bzl={Open:"open",Closed:"closed",Merged:"merged"};var jKs={};D(jKs,{latest:()=>CKs,v1:()=>SKs});var CKs={};D(CKs,{NodeId:()=>SCA,ProductId:()=>jCA,Slug:()=>ICA,TabId:()=>CCA});function ICA(e){return e}function CCA(e){return e}function SCA(e){return e}function jCA(e){return e}var SKs={};D(SKs,{NavigationV1Availability:()=>FCA,NodeId:()=>DCA,ProductId:()=>RCA,Slug:()=>BCA,TabId:()=>TCA});function BCA(e){return e}function TCA(e){return e}function DCA(e){return e}function RCA(e){return e}var FCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var TKs={};D(TKs,{Language:()=>Tzl,VersionBump:()=>Dzl,versions:()=>BKs});var BKs={};D(BKs,{Language:()=>Tzl,VersionBump:()=>Dzl});var Tzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Dzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Rzl={};var Fzl={};var DKs={};D(DKs,{PayloadLocation:()=>Nzl});var Nzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var kzl={};var kNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function zzl({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 zNn=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 Qzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends zNn{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 ${Qzl(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 Mzl="x-fern-base-path",Vzl="x-fern-availability",QNn="x-fern-sdk-group-name",Uzl="x-fern-global-headers",Lzl="x-fern-sdk-method-name";var qzl="x-fern-webhook",Wzl="x-fern-access-token-locator",Gzl="x-fern-basic",Hzl="x-fern-username-variable-name",$zl="x-fern-password-variable-name",Kzl="x-fern-bearer",Jzl="x-fern-token-variable-name",Yzl="x-fern-header",Xzl="x-fern-header-variable-name",Zzl="x-fern-server-name",e2l="x-fern-examples";var MNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Zzl]}convert(){if(this.serverName!=null)return this.serverName}};var VNn=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 MNn({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 wHe(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 VNn({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 UNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var _2l=He(oI());var LNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Gzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var qNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[$zl]}convert(){return this.passwordVariableName}};var WNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Hzl]}convert(){return this.usernameVariableName}};var GNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Kzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var HNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Jzl]}convert(){return this.tokenVariableName}};function t2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var r2l="x-bearer-format",n2l="x-code-samples",i2l="x-codeSamples";var $Nn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[r2l]}convert(){return this.bearerFormat}};var KNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Yzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var JNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Xzl]}convert(){return this.headerVariableName}};function o2l(e){return e.type==="apiKey"}var X3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){o2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new $Nn({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()}}};Zns();SDc();function YNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Z3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function EEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(EEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function XNn(e){if(Array.isArray(e))return e.map(Z3t);if(typeof e=="symbol")return[e];e=EEt(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 SRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Y6r(t))return r;let n=e[t];return n===void 0?YNn(t)?SRr(e,XNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Z3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return NCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Y6r(t))return r;let n=e[t];return n===void 0?r:n}}}function NCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Y6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function s2l(e){return function(t){return SRr(t,e)}}function a2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}jrs();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 kCA(e,t,r,n);case"function":return Object.keys(t).length>0?FKs(e,{...t},r,n):RKs(e,t);default:return a2l(e)?typeof t=="string"?t==="":!0:RKs(e,t)}}function kCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return c2l(e,t,r,n);if(t instanceof Map)return zCA(e,t,r,n);if(t instanceof Set)return QCA(e,t,r,n);let i=Object.keys(t);if(e==null||h_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(!h_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 zCA(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 c2l(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 QCA(e,t,r,n){return t.size===0?!0:e instanceof Set?c2l([...e],[...t],r,n):!1}function ZNn(e,t){return NKs(e,t,()=>{})}CDc();function u2l(e){return e=IDc(e),t=>ZNn(t,e)}Trs();W6r();Brs();function l2l(e,t){return PDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(RDt(e)===J6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case H6r:case G6r:case $6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case K6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function p2l(e){return l2l(e)}var MCA=/^(?:0|[1-9]\d*)$/;function f2l(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 MCA.test(e)}}W6r();function m2l(e){return e!==null&&typeof e=="object"&&RDt(e)==="[object Arguments]"}function d2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&YNn(t)&&e?.[t]==null?r=XNn(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)||m2l(n))&&f2l(o)&&o<n.length))return!1;n=n[o]}return!0}function h2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Z3t(e);break}}return t=p2l(t),function(r){let n=SRr(r,e);return n===void 0?d2l(r,e):t===void 0?n===void 0:ZNn(n,t)}}function g2l(e){if(e==null)return p9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?h2l(e[0],e[1]):u2l(e);case"string":case"symbol":case"number":return s2l(e)}}Zns();Drs();function ekn(e,t=p9r){return e==null?{}:jk(e,g2l(t))}X2c();function y2l(e){return Y2c(EEt(e))}DDc();function A2l(e){return typeof e!="string"&&(e=EEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return TDc(A2l(y2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function tkn({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`${VCA(s)}${UCA(e)}.${LCA(n,i,o,a)}`}function VCA(e){return e?"webhook_":"endpoint_"}function UCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function LCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function b2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var rkn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[Wzl],this.accessTokenLocator!=null&&(b2l(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 nkn=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 X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new rkn({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=tkn({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 e5t=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 LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new qNn({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 GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new HNn({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":{t2l(this.input)?(this.authScheme="header",this.headerAuthNode=new X3t({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 nkn({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 _2l.UnreachableCaseError(this.authScheme);return}}};var t5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=UNn(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 e5t({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 ikn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Mzl],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 v2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function O2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function r5t(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&&!v2l(i))&&(s=O2l(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 okn(e,t){return Sy(e)?Hz(e,t,void 0):e}function xHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function E2l(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 w2l(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 x2l=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 CY=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[Vzl];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 x2l.UnreachableCaseError(this.availability);return}}};var akn=He(oI());function P2l(e){return typeof e=="object"&&e!=null&&"language"in e}function I2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function C2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function S2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function skn(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(skn)}function PHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function j2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ckn=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[e2l]}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 PHe(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=>PHe(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 akn.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=j2l(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 akn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{C2l(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)&&S2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new akn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{P2l(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})):I2l(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 jRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[QNn]}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 ukn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Lzl]}convert(){return this.sdkMethodName}};var lkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[qzl]}convert(){return this.isWebhook}};var pkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[n2l]??[],...this.input[i2l]??[]],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 wEt=He(oI());function UKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function B2l(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&&(PHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>PHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new wEt.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 wEt.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(skn)){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 wEt.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 PHe(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=>PHe(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 wEt.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 wEt.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 wEt.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:B2l(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 T2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var W2l=He(oI());var D2l="#/components/schemas/";function n5t(e){if(e.$ref.startsWith(D2l))return e.$ref.replace(D2l,"")}function $Ve(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function IHe(e){return typeof e.type=="string"&&e.type==="array"}function R2l(e){return e.type==="boolean"}function F2l(e){return e.type==="integer"}function CHe(e){return!Array.isArray(e.type)&&!IHe(e)}function N2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||CHe(t)||IHe(t))}function k2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function z2l(e){return e.type==="null"}function Q2l(e){return e.type==="number"}function LKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function M2l(e){return e.type==="string"}var fkn=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 mkn=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 CY({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 dkn=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($Ve).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function hkn(e){return e!=null&&e.length>0?e:[void 0]}var i5t=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 n5t(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 r5t(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=>hkn(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 gkn=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($Ve).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?$Ve(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 ykn=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 SHe=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 V2l=He(oI());function qCA(e){return zKs.includes(e)}var Akn=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&&(qCA(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 V2l.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 bkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return $Ve({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var U2l=He(oI());function WCA(e){return kKs.includes(e)}var _kn=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&&(WCA(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 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 L2l=He(oI());function GCA(e){return QKs.includes(e)}var vkn=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 L2l.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&&(GCA(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 SHe({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 q2l=He(oI());var Okn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,q2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var xEt=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=n5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&CHe(t)&&(this.maybeEnumConverterNode=new SHe({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 CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),CHe(this.input)&&k2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=n5t(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 xEt({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 mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(N2l(this.input))this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new gkn({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 i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new SHe({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 i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":IHe(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":R2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":F2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":Q2l(this.input)&&(this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":M2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":z2l(this.input)&&(this.typeShapeNode=new bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new W2l.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 i5t({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 Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!IHe(this.input)&&this.input==null||IHe(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?$Ve(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 jHe(e){if(e!=null)return r5t(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 CY({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=T2l(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 G2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var qKs=He(oI());function Ekn(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 H2l=He(GAs(),1),o5t=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=H2l.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 HCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var wkn=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})]))),HCA(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=UNn(r.$ref,this.context.document):i=r,i!=null)return[t,new e5t({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 xkn=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 Pkn=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 CY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new xEt({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=o5t.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 xkn({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 Ekn({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 xEt)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 Ikn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=G2l(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 Pkn({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 $2l={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 K2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Ckn=He(oI());var J2l="application/json";var Y2l="application/octet-stream";function X2l(e,t){return e===t||t===rF||e===rF}var BRr=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)X2l(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,xHe(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,xHe(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,xHe(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,xHe(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,xHe(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=o5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=J2l,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=Y2l,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=ekn(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=ekn(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 Ckn.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 Ekn({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 Ckn.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 Ckn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var TRr=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=K2l(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 BRr({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 BRr({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 Skn=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 TRr({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 TRr({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 hkn(jHe(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??$2l[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 BHe=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,xHe(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 CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=wHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new lkn({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=okn(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 pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new Ikn({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 Skn({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 t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new jRr({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 jRr({input:{[QNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>tkn({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 ckn({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=w2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:E2l(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:jHe(this.queryParameters)?.flat(),headers:jHe(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:jHe(this.pathParameters)?.flat(),queryParameters:jHe(this.queryParameters)?.flat(),requestHeaders:jHe(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 s5t=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=wHe(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 BHe({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 BHe({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 BHe({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 BHe({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 BHe({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 jkn(e){return"payloads"in e}var Bkn=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 s5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:wHe(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=>{jkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Tkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Uzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||okn(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 r5t(this.globalHeaders,this.requiredProperties)?.flat()}};function Z2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Dkn=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=Z2l(o,this.context.document);if(s!=null)return new s5t({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=>{jkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Rkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=wHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ikn({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 Bkn({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 Dkn({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 wkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Tkn({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=zzl({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 dle(e.absoluteFilePath),n=await mY({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 kNn,generatedTypes:{}},c=new Rkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Skt(o,c.convert())}return o}_w();Ir();var p9l=He($Ks(),1),f9l=He(_zn(),1),nQn=require("fs/promises"),m9l=He(require("http"),1),d9l=He(require("path"),1);var Y4l=require("events"),xzn=He(require("fs"),1),FEt=He(require("path"),1);var D4l=He(require("os"),1),R4l=300,zHe=20,nFr=1e7,F4l=D4l.default.platform();var cFA=F4l==="darwin",mYs=F4l==="win32",QHe=cFA||mYs,N4l=3e3,k4l=2e4,dYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var REt;(function(e){e.CHANGE="change",e.RENAME="rename"})(REt||(REt={}));var iFr;(function(e){e.CHANGE="change",e.ERROR="error"})(iFr||(iFr={}));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 uFA=(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},vzn=uFA;var AYs=He(require("fs"),1),Ezn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var JVe=(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),z4l=hYs.default.getuid?!hYs.default.getuid():!1,Q4l=1e4,Q5=()=>{};var oFr={isChangeErrorOk:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!z4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!oFr.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(!oFr.isNodeError(e))throw e;if(!oFr.isChangeErrorOk(e))throw e}},Pj=oFr;var gYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Q4l,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()}}}}},M4l=new gYs;var YVe=(e,t)=>function(n){return function i(...o){return M4l.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)})}},XVe=(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 lFA={attempt:{chmod:JVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:JVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:JVe((0,$z.promisify)(Ab.default.close),Q5),fsync:JVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:JVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:JVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:JVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:JVe((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:YVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:YVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:YVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:YVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:YVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:YVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:YVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:XVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:XVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:XVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:XVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:XVe(Ab.default.renameSync,Pj.isRetriableError),statSync:XVe(Ab.default.statSync,Pj.isRetriableError),writeSync:XVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:XVe(Ab.default.writeFileSync,Pj.isRetriableError)}},V4l=lFA;var Ozn=He(require("fs"),1),sFr=He(require("path"),1);var yYs=()=>{};var pFA=()=>{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}},U4l=pFA;var fFA=()=>{let{promise:e,resolve:t,isPending:r}=U4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},L4l=fFA;var q4l={then:e=>{e()}};var W4l=e=>Array.isArray(e)?e:[e],G4l=e=>typeof e=="function";var mFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=W4l(o).map(Z=>G4l(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}=L4l(),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===sFr.default.sep?"":sFr.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(),Ozn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||q4l).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(),Ozn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Ozn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=sFr.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=sFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},H4l=mFA;var Uve={lang:{debounce:vzn,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(Ezn.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]===Ezn.default.sep&&t.length-e.length>Ezn.default.sep.length,poll:(e,t=k4l)=>V4l.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 H4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var wzn=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=R4l){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??zHe:Math.min(1,this.options.depth??zHe),s=this.options.limit??nFr,[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&&!QHe&&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(wzn.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(wzn.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=REt.CHANGE,r){if(this.watcher.isClosed())return;let n=wzn.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(REt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(iFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(iFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(REt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&QHe&&this.options.native!==!1?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),n=this.options.limit??nFr,[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(REt.CHANGE,a,t)}))}}},$4l=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())}},aFr=GU;var cFr=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),aFr.remove(u)},u=()=>{c(),a()};aFr.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),aFr.remove(u)},u=()=>{c(),a()};aFr.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}}};cFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};cFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var K4l=cFr;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}},J4l=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 J4l(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 Y4l.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 K4l(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 $4l(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=FEt.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??zHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&QHe&&l.options.native!==!1)))return!0;if(!QHe)break;let u=FEt.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||QHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:xzn.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=FEt.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||QHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zHe,a=r.limit??nFr,[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=FEt.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??N4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),xzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),xzn.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=FEt.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=FEt.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())}},Pzn=xYs;Mzn();Ir();var j5t=require("fs/promises"),nql=require("os"),iql=He(require("path"),1),NNA=".fern",kNA="logs";function zNA(){return"cli@3.93.2"}var VEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,nql.homedir)()),Ze.of(NNA)),r=It(t,Ze.of(kNA));await qr(r)||await(0,j5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${iql.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2129
2129
  `);await(0,j5t.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,j5t.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:zNA(),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 oql(e){let t=QNA();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 VEt.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 QNA(){return globalThis.Bun}Ir();var SZs=He(rXs(),1),n9l=He(yZs(),1),M5=require("fs/promises"),i9l=require("os"),o9l=He(sR(),1),s9l=He(t9l(),1),Y2n=process.platform==="win32",CZs=at.cyan("[docs]:"),hMA="etag",gMA=23,r9l=e=>e.padEnd(gMA," "),yMA="preview",AMA="app-preview",bMA="bundle",_MA=".next",vMA="standalone",OMA=".fern",EMA="packages/fern-docs/bundle/.next/server/instrumentation.js",wMA=".npmrc",xMA=".pnpmfile.cjs",PMA="pnpm-workspace.yaml",IMA='Cannot find matching keyid: {"signatures":';function CMA(){return It(vr.of((0,i9l.homedir)()),Ze.of(OMA))}function $5t({app:e=!1}){return It(CMA(),Ze.of(e?AMA:yMA))}function YHe({app:e=!1}){return It($5t({app:e}),Ze.of(e?_MA:bMA))}function VFr({app:e=!1}){return It(YHe({app:e}),Ze.of(vMA))}function SMA({app:e=!1}){return It(VFr({app:e}),Ze.of(EMA))}function jMA({app:e=!1}){return It(VFr({app:e}),Ze.of(PMA))}function BMA({app:e=!1}){return It(VFr({app:e}),Ze.of(xMA))}function TMA({app:e=!1}){return It(VFr({app:e}),Ze.of(wMA))}function JEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function DMA({app:e=!1}){return It($5t({app:e}),Ze.of(hMA))}var RMA=`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.`),X2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function tOc({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!CMd(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 ePx(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?X2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function ePx(e){let r=await new IMd.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 tPx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await jMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=G0t(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 jMd({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=G0t(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 jMd({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 BMd(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 jJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await tPx({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(...BMd(u,c,t.logger));else s.push(...BMd(a.versions,void 0,t.logger))}return s}async function Jht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:KSr(e.packageName,{version:t?"prerelease":"latest"})}var TMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],BJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;stdoutRedirector=new SJo;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new S_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.93.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,dIr({message:t,error:r,logger:this.logger})}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
2929
+ `,n?X2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function ePx(e){let r=await new IMd.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 tPx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await jMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=G0t(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 jMd({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=G0t(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 jMd({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 BMd(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 jJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await tPx({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(...BMd(u,c,t.logger));else s.push(...BMd(a.versions,void 0,t.logger))}return s}async function Jht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:KSr(e.packageName,{version:t?"prerelease":"latest"})}var TMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],BJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;stdoutRedirector=new SJo;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new S_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.93.2"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new nx}failWithoutThrowing(t,r){this.didSucceed=!1,dIr({message:t,error:r,logger:this.logger})}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
2930
2930
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await V2t()).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 SMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2931
2931
  `)||(r+=`
2932
2932
  `),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=FAs(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 u5r(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 V2t()).sendEvent(t)}logger=XV((t,...r)=>this.log(t,...r));stderr=XV((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=DMd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?DMd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=TMd[this.numTasks++%TMd.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||this.jsonMode})}_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 Jht({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 jJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await Z0c({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(`