fern-api 3.95.2 → 3.95.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +4 -4
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1450,7 +1450,7 @@ ${pVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Dxs(th
|
|
|
1450
1450
|
`+c_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?c_t.default.cyan(_Vu(t,this.opt.mask)):c_t.default.italic(c_t.default.dim("[hidden]")):this.opt.mask?_Vu(t,this.opt.mask):c_t.default.italic(c_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 don=Ge(k1(),1);var bUu=Ge(dPs(),1),fon=require("child_process"),P2t=require("fs"),pon=Ge(require("path"),1),_Uu=Ge(require("os"),1),vUu=require("crypto"),XPs=Ge(yUu(),1);var con=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var PPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var uon=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var lon=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function mon(e="",t,r){let n=new ZPs(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 AUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function Uuy(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 ZPs=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=Uuy(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??_Uu.default.tmpdir(),r=(0,vUu.randomUUID)(),n=AUu(this.fileOptions.prefix),i=AUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=pon.default.resolve(t,o),a=pon.default.resolve(t)+pon.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,P2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new con(t)}}readTemporaryFile(){try{let t=(0,P2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,bUu.detect)(t)??"utf8";XPs.default.encodingExists(r)||(r="utf8"),this.text=XPs.default.decode(t,r)}}catch(t){throw new uon(t)}}removeTemporaryFile(){try{(0,P2t.unlinkSync)(this.tempFile)}catch(t){throw new lon(t)}}launchEditor(){try{let t=(0,fon.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new PPr(t)}}launchEditorAsync(t){try{(0,fon.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new PPr(r)}}};var OUu=Ge(vG(),1);var IPr=class extends z1{_run(t){this.done=t,this.editorResult=new OUu.Subject;let r=uz(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"?don.default.dim("Received"):don.default.dim("Press <enter> to launch your preferred editor."),t&&(r=don.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),mon(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 IUu=require("stream");var xUu=Ge(require("readline"),1),PUu=Ge(wUu(),1),f_t=class{constructor(t){this.rl||=xUu.default.createInterface(quy(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 quy(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 PUu.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var CPr=class extends f_t{constructor(t={}){super(t),this.log=new IUu.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return pPr(this.rl,this.bottomBar.split(`
|
|
1451
1451
|
`).length),this}updateBottomBar(t){return pPr(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&&Nin(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=Ge(vG(),1),jUu=Ge(Txr(),1);var hon=Ge(vG(),1),CUu=Ge(Txr(),1),gon=function(e,t,r){return typeof e[t]!="function"?(0,hon.of)(e):(0,hon.from)((0,CUu.default)(e[t])(r).then(n=>(e[t]=n,e)))};var SUu={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}},I2t=class extends f_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)=>(SUu.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)(()=>gon(t,"message",this.answers)),(0,cb.concatMap)(()=>gon(t,"default",this.answers)),(0,cb.concatMap)(()=>gon(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&&SUu.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,jUu.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function BUu(e){let t=function(r,n){let i;try{i=new I2t(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",mPr),this.registerPrompt("input",a_t),this.registerPrompt("number",dPr),this.registerPrompt("confirm",hPr),this.registerPrompt("rawlist",gPr),this.registerPrompt("expand",yPr),this.registerPrompt("checkbox",APr),this.registerPrompt("password",bPr),this.registerPrompt("editor",IPr)},t.restoreDefaultPrompts(),t}var tIs=BUu();function Guy(e,t){tIs.registerPrompt(e,t)}function Huy(){tIs.restoreDefaultPrompts()}var $uy={prompt:tIs,ui:{BottomBar:CPr,Prompt:I2t},createPromptModule:BUu,registerPrompt:Guy,restoreDefaultPrompts:Huy,Separator:x3},ub=$uy;var C2t=require("path");function DUu(){let e=Kuy();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function Kuy(e=process.argv[1]?(0,C2t.dirname)(process.argv[1]):process.cwd(),t=C2t.sep==="\\"){let r=t?TUu(e):e;return n=>{if(!n)return;let i=t?TUu(n):n,{dir:o,base:s,ext:a}=C2t.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 TUu(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var rIs=e=>{if("flags"in e){let t=RUu(e.flags),r=FUu(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,NUu(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,Juy(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function Juy(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 RUu=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,SPr(r)]).filter(([,t])=>t!==void 0)),FUu=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?NUu(n):void 0]}))};var SPr=e=>e===void 0?void 0:e.variant??e.enabled,NUu=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var yon="0123456789abcdef",Aon=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+=yon.charAt(this.bytes[r]>>>4),t+=yon.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+=yon.charAt(this.bytes[r]>>>4),t+=yon.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}},nIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??Yuy()}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 Aon.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,Aon.ofInner(t)}},Yuy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),kUu,$be=()=>Xuy().toString(),Xuy=()=>(kUu||(kUu=new nIs)).generate();var Zuy=["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"],zUu=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return Zuy.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var I3=(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 tly=Array.isArray,QUu=Object.prototype,DYP=QUu.hasOwnProperty,iIs=QUu.toString,oIs=tly||function(e){return iIs.call(e)==="[object Array]"};var MUu=e=>e===Object(e)&&!oIs(e);var S2t=e=>e===void 0,jPr=e=>iIs.call(e)=="[object String]",VUu=e=>jPr(e)&&e.trim().length===0;var UUu=e=>iIs.call(e)=="[object Number]"&&e===e;var sIs=e=>e instanceof Error;function BPr(e){return e===null||typeof e!="object"}function m_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function LUu(e){return m_t(e,"ErrorEvent")}function bon(e){return!S2t(Event)&&rly(e,Event)}function qUu(e){return m_t(e,"Object")}function rly(e,t){try{return e instanceof t}catch{return!1}}function TPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),UUu(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),TPr(i||r,t,r,n))}var nly=864e5,_on=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=TPr(t.bucketSize,0,100,t._logger),this._refillRate=TPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=TPr(t.refillInterval,0,nly,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 von=class{add(t){let r=$be();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 ily(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var WUu=(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=>WUu(`${e} ${o}`,t,r)}},oly=e=>e();function GUu(e,t=oly){return WUu(e,t,ily())}var B2t="Mobile",Eon="iOS",j2t="Android",HUu="Tablet",WYP=j2t+" "+HUu;var sly="Apple",GYP=sly+" Watch",$Uu="Safari",won="BlackBerry",KUu="Samsung",aly=KUu+"Browser",cly=KUu+" Internet",xon="Chrome",uly=xon+" OS",lly=xon+" "+Eon,JUu="Internet Explorer",ply=JUu+" "+B2t,cIs="Opera",HYP=cIs+" Mini",YUu="Edge",fly="Microsoft "+YUu,uIs="Firefox",mly=uIs+" "+Eon,lIs="Nintendo",pIs="PlayStation",Oon="Xbox",dly=j2t+" "+B2t,hly=B2t+" "+$Uu,DPr="Windows",gly=DPr+" Phone";var XUu="Generic",$YP=XUu+" "+B2t.toLowerCase(),KYP=XUu+" "+HUu.toLowerCase(),yly="Konqueror",XV="(\\d+(\\.\\d+)?)",aIs=new RegExp("Version/"+XV),JYP=new RegExp(Oon,"i"),YYP=new RegExp(pIs+" \\w+","i"),XYP=new RegExp(lIs+" \\w+","i"),Aly=new RegExp(won+"|PlayBook|BB10","i"),bly={"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 ZYP={[ply]:[new RegExp("rv:"+XV)],[fly]:[new RegExp(YUu+"?\\/"+XV)],[xon]:[new RegExp("("+xon+"|CrMo)\\/"+XV)],[lly]:[new RegExp("CriOS\\/"+XV)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+XV)],[$Uu]:[aIs],[hly]:[aIs],[cIs]:[new RegExp("("+cIs+"|OPR)\\/"+XV)],[uIs]:[new RegExp(uIs+"\\/"+XV)],[mly]:[new RegExp("FxiOS\\/"+XV)],[yly]:[new RegExp("Konqueror[:/]?"+XV,"i")],[won]:[new RegExp(won+" "+XV),aIs],[dly]:[new RegExp("android\\s"+XV,"i")],[cly]:[new RegExp(aly+"\\/"+XV)],[JUu]:[new RegExp("(rv:|MSIE )"+XV)],Mozilla:[new RegExp("rv:"+XV)]};var eXP=[[new RegExp(Oon+"; "+Oon+" (.*?)[);]","i"),e=>[Oon,e&&e[1]||""]],[new RegExp(lIs,"i"),[lIs,""]],[new RegExp(pIs,"i"),[pIs,""]],[Aly,[won,""]],[new RegExp(DPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[gly,""];if(new RegExp(B2t).test(t)&&!/IEMobile\b/.test(t))return[DPr+" "+B2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=bly[n]||"";return/arm/i.test(t)&&(i="RT"),[DPr,i]}return[DPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Eon,t.join(".")]}return[Eon,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=S2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+j2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+j2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[j2t,t.join(".")]}return[j2t,""]}],[/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/,[uly,""]],[/Linux|debian/i,["Linux",""]]];var ZUu="utf8";function e4u(e,t){if(!e||typeof e!="string"||_ly(e))throw new Error(t)}function _ly(e){return e.trim().length===0}function t4u(e){return e?.replace(/\/+$/,"")}async function r4u(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 Pon(){return new Date().toISOString()}function d_t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var n4u=e=>e instanceof Error;function fIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Ion=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 i4u(){return"CompressionStream"in globalThis}async function mIs(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 h_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()}},T2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function o4u(e){if(e instanceof h_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 dIs(e){return typeof e=="object"&&(e instanceof h_t||e instanceof T2t)}function s4u(e){return typeof e=="object"&&e instanceof h_t&&e.status===413}var RPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new von,this._events=new Ion,this._isInitialized=!1,e4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=t4u(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:dIs},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=GUu("[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=!i4u()||(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(I3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(I3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(I3.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:rIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof h_t)return{type:"api_error",statusCode:t.status};if(t instanceof T2t){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=SPr(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(I3.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(I3.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(I3.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(I3.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(I3.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=d_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:Pon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await mIs(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:Pon(),uuid:n?.uuid?n.uuid:$be()};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 o4u(t)})}async flush(){let t=fIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),fIs([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(I3.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(I3.Queue)||[]).slice(i.length);this.setPersistedProperty(I3.Queue,h),t=h},a={api_key:this.apiKey,batch:o,sent_at:Pon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await mIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>s4u(f)?!1:dIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(s4u(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 T2t||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,ZUu)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await r4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new T2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new h_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(I3.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!dIs(i))throw i;await o4u(i)}};return Promise.race([new Promise((i,o)=>{d_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 C3={};D(C3,{DOMExceptionCoercer:()=>AIs,ErrorCoercer:()=>bIs,ErrorEventCoercer:()=>_Is,ErrorPropertiesBuilder:()=>hIs,EventCoercer:()=>EIs,ObjectCoercer:()=>OIs,PrimitiveCoercer:()=>wIs,PromiseRejectionEventCoercer:()=>xIs,ReduceableCache:()=>PIs,StringCoercer:()=>vIs,chromeStackLineParser:()=>gIs,createDefaultStackParser:()=>Fly,createStackParser:()=>y4u,geckoStackLineParser:()=>yIs,nodeStackLineParser:()=>m4u,opera10StackLineParser:()=>l4u,opera11StackLineParser:()=>p4u,reverseAndStripFrames:()=>g4u,winjsStackLineParser:()=>u4u});var Con,a4u,Son;function c4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Son&&r.length===a4u||(a4u=r.length,Son=r.reduce((n,i)=>{Con||(Con={});let o=Con[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,Con[i]=[u,l];break}}}return n},{})),Son}var Oly=4,hIs=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&&oIs(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:c4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=Oly){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 pz="?";function Kbe(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?pz:r,in_app:!0};return S2t(n)||(o.lineno=n),S2t(i)||(o.colno=i),o}var jon=(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]:pz,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var Ely=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,wly=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,xly=/\((\S*)(?::(\d+))(?::(\d+))\)/,gIs=(e,t)=>{let r=Ely.exec(e);if(r){let[,i,o,s]=r;return Kbe(t,i,pz,+o,+s)}let n=wly.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=xly.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=jon(n[1]||pz,n[2]);return Kbe(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var Ply=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Ily=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,yIs=(e,t)=>{let r=Ply.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=Ily.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]||pz;return[o,i]=jon(o,i),Kbe(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Cly=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,u4u=(e,t)=>{let r=Cly.exec(e);return r?Kbe(t,r[2],r[1]||pz,+r[3],r[4]?+r[4]:void 0):void 0};var Sly=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,l4u=(e,t)=>{let r=Sly.exec(e);return r?Kbe(t,r[2],r[3]||pz,+r[1]):void 0},jly=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,p4u=(e,t)=>{let r=jly.exec(e);return r?Kbe(t,r[5],r[3]||r[4]||pz,+r[1],+r[2]):void 0};var Bly=/^\s*[-]{4,}$/,Tly=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,m4u=(e,t)=>{let r=e.match(Tly);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||pz,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:f4u(r[3]),colno:f4u(r[4]),in_app:Dly(c||"",u),platform:t}}if(e.match(Bly))return{filename:e,platform:t}};function Dly(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 f4u(e){return parseInt(e||"",10)||void 0}var d4u=/\(error: (.*)\)/,h4u=50;function g4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,h4u).map(r=>({...r,filename:r.filename||Rly(t).filename,function:r.function||pz}))}function Rly(e){return e[e.length-1]||{}}function Fly(){return y4u("web:javascript",gIs,yIs)}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=d4u.test(a)?a.replace(d4u,"$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>=h4u)break}}return g4u(i)}}var AIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=jPr(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 m_t(t,"DOMException")}isDOMError(t){return m_t(t,"DOMError")}};var bIs=class{match(t){return sIs(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 _Is=class{constructor(){}match(t){return LUu(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 Nly=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,vIs=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(Nly);return i&&(r=i[1],n=i[2]),[r,n]}};var A4u=["fatal","error","warning","log","info","debug"];function Bon(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 OIs=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 bon(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=Bon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return jPr(t)&&!VUu(t)&&A4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(n4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var EIs=class{match(t){return bon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Bon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var wIs=class{match(t){return BPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var xIs=class{match(t){return m_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return BPr(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(BPr(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 PIs=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 v4u=require("fs"),O4u=require("readline"),Ton=new C3.ReduceableCache(25),E4u=new C3.ReduceableCache(20),IIs=7,kly=1e3,zly=1e4;async function w4u(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"||Uly(s)||Lly(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(E4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Wly(o);if(s.every(c=>qly(i,c)))continue;let a=Gly(Ton,i,{});n.push(Qly(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Mly(e,Ton),Ton.reduce(),e}function Qly(e,t,r){return new Promise(n=>{let i=(0,v4u.createReadStream)(e),o=(0,O4u.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(){E4u.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]=Hly(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 Mly(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;Vly(r.lineno,r,n)}}function Vly(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=x4u(e);i<e;i++){let o=r[i];if(o===void 0)return void b4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void b4u(t);t.context_line=r[e];let n=P4u(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 b4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Uly(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Lly(e){return e.lineno!==void 0&&e.lineno>zly||e.colno!==void 0&&e.colno>kly}function qly(e,t){let r=Ton.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 Wly(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=_4u(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+IIs:(i.push(n),n=_4u(o)),t++}return i}function _4u(e){return[x4u(e),P4u(e)]}function x4u(e){return Math.max(1,e-IIs)}function P4u(e){return e+IIs}function Gly(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Hly(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 $ly(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 I4u(e,t){globalThis.process?.on("uncaughtException",$ly(e,t))}function C4u(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Kly=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new _on({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return MUu(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||$be(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(I4u(this.onException.bind(this),this.onFatalError.bind(this)),C4u(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(Kly),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var S4u="5.24.7";var FPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function j4u(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 Jly=6e4,Yly=1152921504606847e3,Xly=["is_not"],D2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},JE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Jbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Don=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 Jbe||c instanceof JE?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 Jbe||m instanceof JE?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 JE("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 JE("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 JE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new JE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new JE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new JE(`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 JE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new JE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new JE(`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 Jbe)throw l;if(l instanceof JE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new JE("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"?F4u(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):R4u(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await B4u(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await B4u(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(Jly,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 D2t(`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 D2t(`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 D2t(`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 D2t&&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=d_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 B4u(e,t,r=""){let n=await j4u(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/Yly}function R4u(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 JE("Operator is_not_set is not supported")}else throw new JE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!Xly.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 T4u(String(i))&&String(s).match(String(i))!==null;case"not_regex":return T4u(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 JE("Date operations cannot be performed on boolean values");let u=epy(String(i));if(u==null&&(u=D4u(i)),u==null)throw new JE(`Invalid date: ${i}`);let l=D4u(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new JE(`Unknown operator: ${o}`)}}function Zly(e,t){if(!(e in t))throw new Jbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function F4u(e,t,r,n=!1){let i=String(e.value);Zly(i,r);let o=r[i];return N4u(o,t,r,n)}function N4u(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=N4u(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof JE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new JE("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=F4u(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=R4u(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 Jbe)throw c;if(c instanceof JE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new JE("can't match cohort without a given cohort property value");return i==="AND"}function T4u(e){try{return new RegExp(e),!0}catch{return!1}}function D4u(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 JE(`${e} is in an invalid date format`)}throw new JE(`The date provided ${e} must be a string, number, or date object`)}function epy(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 Ron=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var tpy=100,k4u=3e4,rpy=5e4,Fon=class extends RPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Ron,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,tpy):k4u,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 Don({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||rpy}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 S4u}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=k4u){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 Jbe||E instanceof JE)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=FPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(FPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(FPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(FPr.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=d_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(qUu(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=$be(),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"&&zUu(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 z4u=require("async_hooks"),Non=class{constructor(){this.storage=new z4u.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 Q4u="posthog-node";function npy(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[CIs.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 CIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=Q4u,this.name=Q4u,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(npy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new C3.ErrorPropertiesBuilder([new C3.EventCoercer,new C3.ErrorCoercer,new C3.ObjectCoercer,new C3.StringCoercer,new C3.PrimitiveCoercer],C3.createStackParser("node:javascript",C3.nodeStackLineParser),[DUu(),w4u]);var XWe=class extends Fon{getLibraryId(){return"posthog-node"}initializeContext(){return new Non}};var kon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new XWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.95.2",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var NPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var R2t=require("fs/promises"),q4u=require("os"),W4u=require("path");var M4u=Ge(require("crypto")),Qon=new Uint8Array(256),zon=Qon.length;function SIs(){return zon>Qon.length-16&&(M4u.default.randomFillSync(Qon),zon=0),Qon.slice(zon,zon+=16)}var V4u=/^(?:[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 ipy(e){return typeof e=="string"&&V4u.test(e)}var jIs=ipy;var fz=[];for(let e=0;e<256;++e)fz.push((e+256).toString(16).slice(1));function U4u(e,t=0){return fz[e[t+0]]+fz[e[t+1]]+fz[e[t+2]]+fz[e[t+3]]+"-"+fz[e[t+4]]+fz[e[t+5]]+"-"+fz[e[t+6]]+fz[e[t+7]]+"-"+fz[e[t+8]]+fz[e[t+9]]+"-"+fz[e[t+10]]+fz[e[t+11]]+fz[e[t+12]]+fz[e[t+13]]+fz[e[t+14]]+fz[e[t+15]]}var L4u=Ge(require("crypto")),BIs={randomUUID:L4u.default.randomUUID};function opy(e,t,r){if(BIs.randomUUID&&!t&&!e)return BIs.randomUUID();e=e||{};let n=e.random||(e.rng||SIs)();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 U4u(n)}var fR=opy;var spy="id",apy=".fern",kPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new XWe(r),this.userId=t==null?void 0:mvs(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.95.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=Pt(vr.of((0,q4u.homedir)()),Xe.of(apy),Xe.of(spy));await qr(t)||(await(0,R2t.mkdir)((0,W4u.dirname)(t),{recursive:!0}),await(0,R2t.writeFile)(t,fR())),this.persistedDistinctId=(await(0,R2t.readFile)(t)).toString()}return this.persistedDistinctId}};var TIs;async function F2t(){return TIs==null&&(TIs=await cpy()),TIs}async function cpy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new NPr;let r=await rZr();return r!=null?new kPr({token:r,posthogApiKey:e}):await Sbe()!=null?new kon({posthogApiKey:e}):new kPr({token:void 0,posthogApiKey:e})}catch{return new NPr}}var G4u=(e=0)=>t=>`\x1B[${t+e}m`,H4u=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,$4u=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,pI={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]}},ntI=Object.keys(pI.modifier),upy=Object.keys(pI.color),lpy=Object.keys(pI.bgColor),itI=[...upy,...lpy];function ppy(){let e=new Map;for(let[t,r]of Object.entries(pI)){for(let[n,i]of Object.entries(r))pI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=pI[n],e.set(i[0],i[1]);Object.defineProperty(pI,t,{value:r,enumerable:!1})}return Object.defineProperty(pI,"codes",{value:e,enumerable:!1}),pI.color.close="\x1B[39m",pI.bgColor.close="\x1B[49m",pI.color.ansi=G4u(),pI.color.ansi256=H4u(),pI.color.ansi16m=$4u(),pI.bgColor.ansi=G4u(10),pI.bgColor.ansi256=H4u(10),pI.bgColor.ansi16m=$4u(10),Object.defineProperties(pI,{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=>pI.rgbToAnsi256(...pI.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)=>pI.ansi256ToAnsi(pI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>pI.ansi256ToAnsi(pI.hexToAnsi256(t)),enumerable:!1}}),pI}var fpy=ppy(),fue=fpy;var Von=Ge(require("process"),1),J4u=Ge(require("os"),1),DIs=Ge(require("tty"),1);function oJ(e,t=globalThis.Deno?globalThis.Deno.args:Von.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:fI}=Von.default,Mon;oJ("no-color")||oJ("no-colors")||oJ("color=false")||oJ("color=never")?Mon=0:(oJ("color")||oJ("colors")||oJ("color=true")||oJ("color=always"))&&(Mon=1);function mpy(){if("FORCE_COLOR"in fI)return fI.FORCE_COLOR==="true"?1:fI.FORCE_COLOR==="false"?0:fI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(fI.FORCE_COLOR,10),3)}function dpy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function hpy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=mpy();n!==void 0&&(Mon=n);let i=r?Mon:n;if(i===0)return 0;if(r){if(oJ("color=16m")||oJ("color=full")||oJ("color=truecolor"))return 3;if(oJ("color=256"))return 2}if("TF_BUILD"in fI&&"AGENT_NAME"in fI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(fI.TERM==="dumb")return o;if(Von.default.platform==="win32"){let s=J4u.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in fI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in fI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in fI)||fI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in fI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(fI.TEAMCITY_VERSION)?1:0;if(fI.COLORTERM==="truecolor"||fI.TERM==="xterm-kitty"||fI.TERM==="xterm-ghostty"||fI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in fI){let s=Number.parseInt((fI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(fI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(fI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(fI.TERM)||"COLORTERM"in fI?1:o}function K4u(e,t={}){let r=hpy(e,{streamIsTTY:e&&e.isTTY,...t});return dpy(r)}var gpy={stdout:K4u({isTTY:DIs.default.isatty(1)}),stderr:K4u({isTTY:DIs.default.isatty(2)})},Y4u=gpy;function X4u(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 Z4u(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=d4u.test(a)?a.replace(d4u,"$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>=h4u)break}}return g4u(i)}}var AIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=jPr(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 m_t(t,"DOMException")}isDOMError(t){return m_t(t,"DOMError")}};var bIs=class{match(t){return sIs(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 _Is=class{constructor(){}match(t){return LUu(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 Nly=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,vIs=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(Nly);return i&&(r=i[1],n=i[2]),[r,n]}};var A4u=["fatal","error","warning","log","info","debug"];function Bon(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 OIs=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 bon(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=Bon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return jPr(t)&&!VUu(t)&&A4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(n4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var EIs=class{match(t){return bon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Bon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var wIs=class{match(t){return BPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var xIs=class{match(t){return m_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return BPr(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(BPr(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 PIs=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 v4u=require("fs"),O4u=require("readline"),Ton=new C3.ReduceableCache(25),E4u=new C3.ReduceableCache(20),IIs=7,kly=1e3,zly=1e4;async function w4u(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"||Uly(s)||Lly(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(E4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Wly(o);if(s.every(c=>qly(i,c)))continue;let a=Gly(Ton,i,{});n.push(Qly(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Mly(e,Ton),Ton.reduce(),e}function Qly(e,t,r){return new Promise(n=>{let i=(0,v4u.createReadStream)(e),o=(0,O4u.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(){E4u.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]=Hly(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 Mly(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;Vly(r.lineno,r,n)}}function Vly(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=x4u(e);i<e;i++){let o=r[i];if(o===void 0)return void b4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void b4u(t);t.context_line=r[e];let n=P4u(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 b4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Uly(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Lly(e){return e.lineno!==void 0&&e.lineno>zly||e.colno!==void 0&&e.colno>kly}function qly(e,t){let r=Ton.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 Wly(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=_4u(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+IIs:(i.push(n),n=_4u(o)),t++}return i}function _4u(e){return[x4u(e),P4u(e)]}function x4u(e){return Math.max(1,e-IIs)}function P4u(e){return e+IIs}function Gly(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Hly(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 $ly(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 I4u(e,t){globalThis.process?.on("uncaughtException",$ly(e,t))}function C4u(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Kly=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new _on({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return MUu(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||$be(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(I4u(this.onException.bind(this),this.onFatalError.bind(this)),C4u(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(Kly),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var S4u="5.24.7";var FPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function j4u(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 Jly=6e4,Yly=1152921504606847e3,Xly=["is_not"],D2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},JE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Jbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Don=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 Jbe||c instanceof JE?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 Jbe||m instanceof JE?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 JE("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 JE("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 JE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new JE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new JE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new JE(`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 JE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new JE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new JE(`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 Jbe)throw l;if(l instanceof JE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new JE("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"?F4u(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):R4u(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await B4u(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await B4u(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(Jly,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 D2t(`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 D2t(`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 D2t(`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 D2t&&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=d_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 B4u(e,t,r=""){let n=await j4u(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/Yly}function R4u(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 JE("Operator is_not_set is not supported")}else throw new JE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!Xly.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 T4u(String(i))&&String(s).match(String(i))!==null;case"not_regex":return T4u(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 JE("Date operations cannot be performed on boolean values");let u=epy(String(i));if(u==null&&(u=D4u(i)),u==null)throw new JE(`Invalid date: ${i}`);let l=D4u(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new JE(`Unknown operator: ${o}`)}}function Zly(e,t){if(!(e in t))throw new Jbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function F4u(e,t,r,n=!1){let i=String(e.value);Zly(i,r);let o=r[i];return N4u(o,t,r,n)}function N4u(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=N4u(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof JE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new JE("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=F4u(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=R4u(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 Jbe)throw c;if(c instanceof JE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new JE("can't match cohort without a given cohort property value");return i==="AND"}function T4u(e){try{return new RegExp(e),!0}catch{return!1}}function D4u(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 JE(`${e} is in an invalid date format`)}throw new JE(`The date provided ${e} must be a string, number, or date object`)}function epy(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 Ron=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var tpy=100,k4u=3e4,rpy=5e4,Fon=class extends RPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Ron,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,tpy):k4u,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 Don({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||rpy}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 S4u}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=k4u){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 Jbe||E instanceof JE)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=FPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(FPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(FPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(FPr.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=d_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(qUu(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=$be(),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"&&zUu(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 z4u=require("async_hooks"),Non=class{constructor(){this.storage=new z4u.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 Q4u="posthog-node";function npy(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[CIs.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 CIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=Q4u,this.name=Q4u,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(npy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new C3.ErrorPropertiesBuilder([new C3.EventCoercer,new C3.ErrorCoercer,new C3.ObjectCoercer,new C3.StringCoercer,new C3.PrimitiveCoercer],C3.createStackParser("node:javascript",C3.nodeStackLineParser),[DUu(),w4u]);var XWe=class extends Fon{getLibraryId(){return"posthog-node"}initializeContext(){return new Non}};var kon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new XWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.95.3",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var NPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var R2t=require("fs/promises"),q4u=require("os"),W4u=require("path");var M4u=Ge(require("crypto")),Qon=new Uint8Array(256),zon=Qon.length;function SIs(){return zon>Qon.length-16&&(M4u.default.randomFillSync(Qon),zon=0),Qon.slice(zon,zon+=16)}var V4u=/^(?:[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 ipy(e){return typeof e=="string"&&V4u.test(e)}var jIs=ipy;var fz=[];for(let e=0;e<256;++e)fz.push((e+256).toString(16).slice(1));function U4u(e,t=0){return fz[e[t+0]]+fz[e[t+1]]+fz[e[t+2]]+fz[e[t+3]]+"-"+fz[e[t+4]]+fz[e[t+5]]+"-"+fz[e[t+6]]+fz[e[t+7]]+"-"+fz[e[t+8]]+fz[e[t+9]]+"-"+fz[e[t+10]]+fz[e[t+11]]+fz[e[t+12]]+fz[e[t+13]]+fz[e[t+14]]+fz[e[t+15]]}var L4u=Ge(require("crypto")),BIs={randomUUID:L4u.default.randomUUID};function opy(e,t,r){if(BIs.randomUUID&&!t&&!e)return BIs.randomUUID();e=e||{};let n=e.random||(e.rng||SIs)();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 U4u(n)}var fR=opy;var spy="id",apy=".fern",kPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new XWe(r),this.userId=t==null?void 0:mvs(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.95.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await 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=Pt(vr.of((0,q4u.homedir)()),Xe.of(apy),Xe.of(spy));await qr(t)||(await(0,R2t.mkdir)((0,W4u.dirname)(t),{recursive:!0}),await(0,R2t.writeFile)(t,fR())),this.persistedDistinctId=(await(0,R2t.readFile)(t)).toString()}return this.persistedDistinctId}};var TIs;async function F2t(){return TIs==null&&(TIs=await cpy()),TIs}async function cpy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new NPr;let r=await rZr();return r!=null?new kPr({token:r,posthogApiKey:e}):await Sbe()!=null?new kon({posthogApiKey:e}):new kPr({token:void 0,posthogApiKey:e})}catch{return new NPr}}var G4u=(e=0)=>t=>`\x1B[${t+e}m`,H4u=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,$4u=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,pI={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]}},ntI=Object.keys(pI.modifier),upy=Object.keys(pI.color),lpy=Object.keys(pI.bgColor),itI=[...upy,...lpy];function ppy(){let e=new Map;for(let[t,r]of Object.entries(pI)){for(let[n,i]of Object.entries(r))pI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=pI[n],e.set(i[0],i[1]);Object.defineProperty(pI,t,{value:r,enumerable:!1})}return Object.defineProperty(pI,"codes",{value:e,enumerable:!1}),pI.color.close="\x1B[39m",pI.bgColor.close="\x1B[49m",pI.color.ansi=G4u(),pI.color.ansi256=H4u(),pI.color.ansi16m=$4u(),pI.bgColor.ansi=G4u(10),pI.bgColor.ansi256=H4u(10),pI.bgColor.ansi16m=$4u(10),Object.defineProperties(pI,{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=>pI.rgbToAnsi256(...pI.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)=>pI.ansi256ToAnsi(pI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>pI.ansi256ToAnsi(pI.hexToAnsi256(t)),enumerable:!1}}),pI}var fpy=ppy(),fue=fpy;var Von=Ge(require("process"),1),J4u=Ge(require("os"),1),DIs=Ge(require("tty"),1);function oJ(e,t=globalThis.Deno?globalThis.Deno.args:Von.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:fI}=Von.default,Mon;oJ("no-color")||oJ("no-colors")||oJ("color=false")||oJ("color=never")?Mon=0:(oJ("color")||oJ("colors")||oJ("color=true")||oJ("color=always"))&&(Mon=1);function mpy(){if("FORCE_COLOR"in fI)return fI.FORCE_COLOR==="true"?1:fI.FORCE_COLOR==="false"?0:fI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(fI.FORCE_COLOR,10),3)}function dpy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function hpy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=mpy();n!==void 0&&(Mon=n);let i=r?Mon:n;if(i===0)return 0;if(r){if(oJ("color=16m")||oJ("color=full")||oJ("color=truecolor"))return 3;if(oJ("color=256"))return 2}if("TF_BUILD"in fI&&"AGENT_NAME"in fI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(fI.TERM==="dumb")return o;if(Von.default.platform==="win32"){let s=J4u.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in fI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in fI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in fI)||fI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in fI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(fI.TEAMCITY_VERSION)?1:0;if(fI.COLORTERM==="truecolor"||fI.TERM==="xterm-kitty"||fI.TERM==="xterm-ghostty"||fI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in fI){let s=Number.parseInt((fI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(fI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(fI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(fI.TERM)||"COLORTERM"in fI?1:o}function K4u(e,t={}){let r=hpy(e,{streamIsTTY:e&&e.isTTY,...t});return dpy(r)}var gpy={stdout:K4u({isTTY:DIs.default.isatty(1)}),stderr:K4u({isTTY:DIs.default.isatty(2)})},Y4u=gpy;function X4u(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 Z4u(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:eLu,stderr:tLu}=Y4u,RIs=Symbol("GENERATOR"),N2t=Symbol("STYLER"),zPr=Symbol("IS_EMPTY"),rLu=["ansi","ansi","ansi256","ansi16m"],k2t=Object.create(null),ypy=(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=eLu?eLu.level:0;e.level=t.level===void 0?r:t.level};var Apy=e=>{let t=(...r)=>r.join(" ");return ypy(t,e),Object.setPrototypeOf(t,QPr.prototype),t};function QPr(e){return Apy(e)}Object.setPrototypeOf(QPr.prototype,Function.prototype);for(let[e,t]of Object.entries(fue))k2t[e]={get(){let r=Uon(this,NIs(t.open,t.close,this[N2t]),this[zPr]);return Object.defineProperty(this,e,{value:r}),r}};k2t.visible={get(){let e=Uon(this,this[N2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var FIs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?fue[r].ansi16m(...n):t==="ansi256"?fue[r].ansi256(fue.rgbToAnsi256(...n)):fue[r].ansi(fue.rgbToAnsi(...n)):e==="hex"?FIs("rgb",t,r,...fue.hexToRgb(...n)):fue[r][e](...n),bpy=["rgb","hex","ansi256"];for(let e of bpy){k2t[e]={get(){let{level:r}=this;return function(...n){let i=NIs(FIs(e,rLu[r],"color",...n),fue.color.close,this[N2t]);return Uon(this,i,this[zPr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);k2t[t]={get(){let{level:r}=this;return function(...n){let i=NIs(FIs(e,rLu[r],"bgColor",...n),fue.bgColor.close,this[N2t]);return Uon(this,i,this[zPr])}}}}var _py=Object.defineProperties(()=>{},{...k2t,level:{enumerable:!0,get(){return this[RIs].level},set(e){this[RIs].level=e}}}),NIs=(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}},Uon=(e,t,r)=>{let n=(...i)=>vpy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,_py),n[RIs]=e,n[N2t]=t,n[zPr]=r,n},vpy=(e,t)=>{if(e.level<=0||!t)return e[zPr]?"":t;let r=e[N2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=X4u(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
|
|
@@ -2102,7 +2102,7 @@ ${n.map(o=>` ${o}`).join(`,
|
|
|
2102
2102
|
`)}
|
|
2103
2103
|
]`;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 HFn(e){return`API section ${e} is specified multiple times, however will be only rendered once.`}function owA(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}Aw();function $Fn({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 qRl({left:e,right:t,findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}){return $Fn({children:[...e,...t],findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}).filter(s=>s.type==="apiPackage"?s.children.length>0||s.overviewPageId!=null:!0)}Aw();Ni();Ir();function N3t(e,t){if(t!=null)return dl(e.absoluteFilePath,t)}function WRl({docsWorkspace:e,page:t,parentSlug:r,idgen:n,markdownFilesToFullSlugs:i,markdownFilesToNoIndex:o,hideChildren:s,resolveIconFileId:a}){let c=nr.V1.PageId(N3t(e,t.absolutePath)),u=r.apply({fullSlug:i.get(t.absolutePath)?.split("/"),urlSlug:t.slug??z0(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 KFn=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=yHe.create(r,o),this.collectedFileIds=l,this.#p=u,this.#u=this.apiSection.overviewAbsolutePath!=null?nr.V1.PageId(N3t(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??z0(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 fEt(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=xle(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,"<").replace(/>/g,">"),c=`# ${Uz(n.id.replace(/[_-]/g," "))}
|
|
2104
2104
|
|
|
2105
|
-
${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?yHe.getSubpackageId(r):void 0;return t.map(s=>WHs(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 WRl({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(N3t(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=yHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(HFn(t.package)),this.#s.add(c),this.#a.set(u,[c]);let l=t.slug??(xle(a)?a.urlSlug:this.apiSection.slug??z0(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??(xle(a)?a.displayName??Uz(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(GFn(t.package,this.#e.subpackageLocators));let c=t.slug??z0(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}:${z0(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(N3t(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?yHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(GFn(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(HFn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??z0(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=yHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(HFn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=xle(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",children:[],title:xle(o)?o.displayName??Uz(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(_P.SubpackageId(r))?.endpoints.get(_P.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: ${WFn(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??QQ(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(_P.SubpackageId(r))?.webSockets.get(_P.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??QQ(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(_P.SubpackageId(r))?.webhooks.get(_P.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,GRl.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=_P.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:_P.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=_P.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:_P.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 qRl({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>QQ(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#E(t,r){return $Hs({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: ${WFn(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??QQ(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: ${WFn(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??QQ(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??QQ(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??Uz(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=xle(s)?r.apply(s):r,c=this.#y(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(_P.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:xle(s)?s.displayName??Uz(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=_P.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(z0(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(z0(y)),b=g.map(_=>{let O=A.append(_.name??_.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${_.id}`),type:"graphql",operationType:_.operationType,graphqlOperationId:_P.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:Uz(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(z0(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:_P.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(GFn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return FRl(t)}mergeEndpointPairs(t){return $Fn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>QQ(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}};Aw();var HRl=Ge(require("crypto"),1);function swA(e){return HRl.default.createHash("sha256").update(e).digest("hex")}var JFn=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),swA(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 $Rl(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}}Aw();pr();var YFn=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 XFn=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 oRr=class{matcher;document;constructor(t){this.matcher=new YFn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new XFn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let m=c[p];m&&this.matcher.matches(a,p)&&(u[p]=m,r.collectFromOperation(m))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let m of p.tags)a.add(m)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}};var nNn=require("fs/promises");function JHs(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 AHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(AHe);if(typeof e!="object")return e;let t=e;if(JHs(t))return"value"in t?AHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=AHe(i);o!==void 0&&(r[n]=o)}return r}function YHs(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function ZFn(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 awA=0,cwA=15e3,eNn=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??awA,requestTimeoutMs:t.requestTimeoutMs??cwA,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 Y1r(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 k3t=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 tNn=require("fs/promises");async function uwA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,tNn.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 XHs({sourceFilePath:e,context:t}){let r=await uwA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,tNn.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 lY({logger:t.logger}),o=new OVe({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 NOt({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 KRl({sourceFilePath:e,context:t}){let r=await XHs({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,tNn.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 sRr=require("fs/promises");async function ZHs(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,sRr.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 rNn({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=AHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=ZFn(P,O,_,v);x=F;for(let[ie,ce]of Object.entries(q))ce!=null&&ce!==""&&(y[ie]=ce);for(let[ie,ce]of Object.entries(W))ce!=null&&ce!==""&&(A[ie]=ce);for(let[ie,ce]of Object.entries($))ce!=null&&ce!==""&&(b[ie]=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&&!YHs(x)&&(g.request=x);let I=AHe(f.responseBody);return I!==void 0&&!YHs(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,sRr.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,sRr.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 e$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}},t$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 lwA(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=rMe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function pwA(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 XRl(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 r$s(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=XRl(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 fwA(e,t,r){return r$s(e,t,r,"header")}function mwA(e,t,r){return r$s(e,t,r,"query")}function dwA(e,t,r){return r$s(e,t,r,"path")}async function hwA(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=rMe(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=XRl(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 oRr({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 Q3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await gwA(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 gwA(e,t,r,n,i,o,s){let a=new eNn(t,r,n,i),c=new e$s,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let A=[];for(let b of o)try{let v=await(0,nNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null){let O=Array.isArray(b.absoluteFilePathToOverrides)?b.absoluteFilePathToOverrides:[b.absoluteFilePathToOverrides];try{let E;try{E=JSON.parse(v)}catch{E=rMe(v,{json:!0})}for(let P of O){let x=await(0,nNn.readFile)(P,"utf-8"),I;try{I=JSON.parse(x)}catch{I=rMe(x,{json:!0})}E=hwr({data:E,overrides:I})}v=_9e(E),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(E){r.logger.debug(`Failed to apply overrides to spec: ${E}. Using raw spec.`)}}if(!lwA(v)){r.logger.debug(`Non-OpenAPI spec detected at ${b.absoluteFilePath}, skipping`);continue}let _;try{_=JSON.parse(v)}catch{_=rMe(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=pwA(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 ZHs(b.absoluteFilePath,r),_=await XHs({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 KRl({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 ZHs(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 ywA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await rNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ZRl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function ywA(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=JRl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=JRl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ZRl(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=k3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await AwA(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=YRl(E,b);v[O]=P}let _=YRl(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 ZRl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function JRl(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(!vwA(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&&!_wA(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=z3t(l.requestBodyV3),h=z3t(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 AwA(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&&k3t.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&&(rNn({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 bwA(_,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 t$s(p,g),b=await A.processAll(y);if(a&&o.length>0)try{await rNn({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 bwA(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 hwA(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:z3t(e.example.requestBodyV3),originalResponseExample:z3t(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?fwA(f,e.example.path,e.endpoint.method):[],v=f?mwA(f,e.example.path,e.endpoint.method):[],_=f?dwA(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=AHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=ZFn(x,P,E,O),$={...e.example.headers??{}};for(let[ee,He]of Object.entries(W))He!=null&&He!==""&&($[ee]=He);let ie={...e.example.pathParameters??{}};for(let[ee,He]of Object.entries(F))He!=null&&He!==""&&(ie[ee]=He);let ce={...e.example.queryParameters??{}};for(let[ee,He]of Object.entries(q))He!=null&&He!==""&&(ce[ee]=He);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&&k3t.getInstance().update(c,u.count),{endpointKey:m,enhancedReq:I,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys($).length>0?$:void 0,extractedPathParams:Object.keys(ie).length>0?ie: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 YRl(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=>JHs(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 _wA(e,t,r){let i=z3t(e.requestBodyV3),o=z3t(e.responseBodyV3),s=iNn(i,t,`${r}:request`),a=iNn(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 iNn(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=iNn(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=iNn(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 vwA(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 z3t(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}Aw();pr();Aw();function eFl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return tFl({scheme:n,playgroundConfig:t,context:r})}}function tFl({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 rFl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=tFl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();Aw();Ni();Aw();function iFl(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:DP(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:DP(r.availability),propertyAccess:r.propertyAccess})),extraProperties:IwA(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:DP(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?DP(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:()=>EwA(t.v2),float:()=>nFl(t.v2),double:()=>nFl(t.v2),string:()=>OwA(t.v2),long:()=>wwA(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:()=>xwA(t.v2),uint64:()=>PwA(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 OwA(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 EwA(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 nFl(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 wwA(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 xwA(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 PwA(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 IwA(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 o$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?SwA(i,t):[],webhooks:o!=null?CwA(o):[],websockets:s!=null?[jwA(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 CwA(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:DP(t.availability),id:vn.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??gbt(t.name.originalName),headers:t.headers.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:DP(n.availability)})),payload:QwA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(i$s).filter(ru)}})}function SwA(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=sFl({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=sFl({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=>n$s({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(ru));else if(i!=null){let a=n$s({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=tqt({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=n$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:DP(n.availability??e.availability),auth:n.auth,authV2:BwA(n.security),multiAuth:TwA(n.security,t.auth),description:n.docs??void 0,method:NwA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?DwA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??gbt(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:[...M3t(n.basePath),...M3t(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?M3t(t.basePath):[],...M3t(e.basePath),...M3t(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:DP(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:DP(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:DP(a.availability)})),request:n.requestBody!=null?oFl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(oFl).filter(ru)},response:n.response!=null?i$s(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map(i$s).filter(ru)},errors:void 0,errorsV2:kwA(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 jwA(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:DP(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?RwA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??gbt(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:M3t(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:Ig(n.valueType),description:n.docs,availability:DP(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:DP(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:vn.api.v1.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:VwA(n.body),description:n.docs,availability:DP(n.availability)})),examples:r}}function BwA(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 TwA(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 DP(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 DwA({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 RwA({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:FwA(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 FwA(e,t){return e.replace(/^[^:]+/,t)}function NwA(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 M3t(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 oFl(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:DP(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:DP(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 i$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 kwA(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:UwA(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:DP(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:DP(s.availability)})):void 0})}}return r}function sFl({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:u3})}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(zwA)?{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 zwA(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function n$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:u3})}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=>IG._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 QwA(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:DP(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},description:t.docs??void 0}:MwA(e)}function MwA(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:DP(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 VwA(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:DP(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Ig(e.bodyType)};default:Ue(e)}}function UwA(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=LwA(e,t);return o!=null?[o]:[]}function LwA(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 kU({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:o$s(e.rootPackage,e,n,i),apiName:s??e.apiName.originalName,auth:eFl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:rFl({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:DP(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:iFl(u.shape),availability:DP(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,...o$s(u,e)}}return a}Aw();async function s$s({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Rw({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 yE(r,t)}),p=sG({token:n.value}),m=kU({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 Q3t(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 qwA=new q7r({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function aRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return W7r(U7r(kU({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}),_P.ApiDefinitionId(t),qwA))}var aFl=Ge(require("path"),1);async function f7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&aFl.default.isAbsolute(e)&&t.add(e)}async function cFl({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 a$s({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 f7({iconPath:i.icon,filepaths:t}),i.rightIcon&&await f7({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await f7({iconPath:n.icon,filepaths:t}),n.rightIcon&&await f7({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 f7({iconPath:n.icon,filepaths:t})})),t}async function a$s({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>V3t({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await f7({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>V3t({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(f7({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>V3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await V3t({item:r.landingPage,filepaths:t}),(await a$s({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await f7({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await V3t({item:r.landingPage,filepaths:t}),(await a$s({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function V3t({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>V3t({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break}}function WwA(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=hHe({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function oNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)oNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=WwA(o,t,r):typeof o=="object"&&oNn(o,t,r)}function sNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)sNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&sNn(i,t,r)}pr();async function uFl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){HwA(e)?await Promise.all(e.map(async i=>{$wA(i)?await Promise.all(i.layout.map(async o=>{await aNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):KwA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await aNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await aNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function aNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Wce(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 aNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),GwA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function GwA(e){return e.api!=null}function HwA(e){return e[0]?.tab!=null}function $wA(e){return"layout"in e&&Array.isArray(e.layout)}function KwA(e){return"variants"in e&&Array.isArray(e.variants)}function zU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}pFl.default.extend(fFl.default);var JwA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),lFl=0,YwA=async({ir:e})=>(lFl++,`${e.apiName.snakeCase.unsafeName}-${lFl}`),Ple=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=JwA,registerApi:c=YwA,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=JFn.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 E5s({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[Xe.of(X)]=Ne;let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let X=performance.now();await uFl({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:Se})=>{(await Se.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(Ye=>{let _e=dl(this.docsWorkspace.absoluteFilePath,Ye.absoluteFilepath);this.parsedDocsConfig.pages[_e]=Ye.contents,this.rawMarkdownFiles[Xe.of(_e)]=Ye.contents})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ne=performance.now()-X;this.taskContext.logger.debug(`Visited navigation AST in ${Ne.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages)){let Se=await gHe({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 rRr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=nRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Xe.of(X)]=Ye}let m=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${m.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),h=await cFl({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}=UVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Xe.of(X)]=Je;for(let Ye of Se)h.add(Ye)}catch(Se){throw this.taskContext.logger.error(`Failed to parse ${X}: ${Se instanceof Error?Se.message:String(Se)}`),Se}let A=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${A.toFixed(0)}ms`);let b=Array.from(h).map(X=>({absoluteFilePath:X,relativeFilePath:this.toRelativeFilepath(X)}));this.taskContext.logger.info(`Uploading ${b.length} files...`);let v=performance.now(),_=await this.uploadFiles(b),O=performance.now()-v;this.taskContext.logger.info(`Uploaded ${_.length} files in ${O.toFixed(0)}ms`),_.forEach(X=>{this.collectedFileIds.set(X.absoluteFilePath,X.fileId)}),this.taskContext.logger.debug("Building navigation tree...");let E=performance.now(),P=await this.toRootNode(),x=performance.now()-E;this.taskContext.logger.debug(`Built navigation tree in ${x.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let I=performance.now(),F=await this.getMarkdownFilesToFullyQualifiedPathNames(P),q=performance.now()-I;if(this.taskContext.logger.debug(`Got path names in ${q.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let X=performance.now();for(let Se of this.pendingApiRegistrations){this.resolveLinksInIrDocs(Se.ir,F);let Je=await this.registerApi({ir:Se.ir,snippetsConfig:Se.snippetsConfig,playgroundConfig:Se.playgroundConfig,apiName:Se.apiName,workspace:Se.workspace,graphqlOperations:Se.graphqlOperations,graphqlTypes:Se.graphqlTypes});sNn(Se.apiReferenceNode,Se.tempApiDefinitionId,Je)}let Ne=performance.now()-X;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ne.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let W=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Xe.of(X)]=tRr(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 ie={};Object.entries(this.parsedDocsConfig.pages).forEach(([X,Ne])=>{let{url:Se,launch:Je}=XwA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Xe.of(X)];ie[BV.PageId(X)]={markdown:Ne,editThisPageUrl:Se?BV.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 He={};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,bHe.stat)(Ye)).isDirectory()?(await rR(Ye,"{js,ts,jsx,tsx,md,mdx}")).forEach(dt=>{Ne.add(dt)}):Ye.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ne.add(Ye)})),He=Object.fromEntries(await Promise.all([...Ne].map(async Je=>{let Ye=this.toRelativeFilepath(Je),_e=(await(0,bHe.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)He[X.relativeFilePath]=X.content}if(this._parsedDocsConfig.header!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.header),Ne=(await(0,bHe.readFile)(this._parsedDocsConfig.header)).toString();He[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,bHe.readFile)(this._parsedDocsConfig.footer)).toString();He[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:ie,jsFiles:He}}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,mFl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();eRr(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=nr.migrate.FernNavigationV1ToLatest.create().root(t);return nr.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!nr.isPage(o))return;let a=nr.getPageId(o);if(a==null)return;let c=Pt(this.docsWorkspace.absoluteFilePath,Xe.of(a));r[c]??=s}),r}getDocsBasePath(){return new URL(zU(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?BV.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:BV.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:BV.Url(n.url)}:{...n,url:BV.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:BV.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.
|
|
2105
|
+
${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?yHe.getSubpackageId(r):void 0;return t.map(s=>WHs(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 WRl({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(N3t(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=yHe.getSubpackageId(a),u=this.#p.get(i??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(HFn(t.package)),this.#s.add(c),this.#a.set(u,[c]);let l=t.slug??(xle(a)?a.urlSlug:this.apiSection.slug??z0(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??(xle(a)?a.displayName??Uz(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(GFn(t.package,this.#e.subpackageLocators));let c=t.slug??z0(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}:${z0(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(N3t(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?yHe.getSubpackageId(h):void 0;if(g===void 0){this.taskContext.logger.error(GFn(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(HFn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??z0(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=yHe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(HFn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=xle(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",children:[],title:xle(o)?o.displayName??Uz(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(_P.SubpackageId(r))?.endpoints.get(_P.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: ${WFn(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??QQ(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(_P.SubpackageId(r))?.webSockets.get(_P.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??QQ(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(_P.SubpackageId(r))?.webhooks.get(_P.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,GRl.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=_P.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:_P.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=_P.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:_P.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 qRl({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>QQ(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#E(t,r){return $Hs({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: ${WFn(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??QQ(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: ${WFn(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??QQ(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??QQ(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??Uz(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=xle(s)?r.apply(s):r,c=this.#y(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(_P.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:xle(s)?s.displayName??Uz(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=_P.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(z0(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(z0(y)),b=g.map(_=>{let O=A.append(_.name??_.id);return{id:nr.V1.NodeId(`${this.apiDefinitionId}:${_.id}`),type:"graphql",operationType:_.operationType,graphqlOperationId:_P.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:Uz(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(z0(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:_P.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(GFn(t||"unknown",[])),[]):this.#w(i,r,n)}#x(t){return FRl(t)}mergeEndpointPairs(t){return $Fn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>QQ(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}};Aw();var HRl=Ge(require("crypto"),1);function swA(e){return HRl.default.createHash("sha256").update(e).digest("hex")}var JFn=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),swA(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 $Rl(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}}Aw();pr();var YFn=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 XFn=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 oRr=class{matcher;document;constructor(t){this.matcher=new YFn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new XFn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let m=c[p];m&&this.matcher.matches(a,p)&&(u[p]=m,r.collectFromOperation(m))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let m of p.tags)a.add(m)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}};var nNn=require("fs/promises");function JHs(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 AHe(e){if(e==null)return e;if(Array.isArray(e))return e.map(AHe);if(typeof e!="object")return e;let t=e;if(JHs(t))return"value"in t?AHe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=AHe(i);o!==void 0&&(r[n]=o)}return r}function YHs(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function ZFn(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 awA=0,cwA=15e3,eNn=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??awA,requestTimeoutMs:t.requestTimeoutMs??cwA,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 Y1r(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 k3t=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 tNn=require("fs/promises");async function uwA(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,tNn.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 XHs({sourceFilePath:e,context:t}){let r=await uwA(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,tNn.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 lY({logger:t.logger}),o=new OVe({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 NOt({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 KRl({sourceFilePath:e,context:t}){let r=await XHs({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,tNn.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 sRr=require("fs/promises");async function ZHs(e,t){let r=vr.of(`${ji(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,sRr.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 rNn({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=AHe(E),x=P;if(P!==void 0){let{filteredBody:F,extractedPathParams:q,extractedQueryParams:W,extractedHeaders:$}=ZFn(P,O,_,v);x=F;for(let[ie,ce]of Object.entries(q))ce!=null&&ce!==""&&(y[ie]=ce);for(let[ie,ce]of Object.entries(W))ce!=null&&ce!==""&&(A[ie]=ce);for(let[ie,ce]of Object.entries($))ce!=null&&ce!==""&&(b[ie]=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&&!YHs(x)&&(g.request=x);let I=AHe(f.responseBody);return I!==void 0&&!YHs(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,sRr.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,sRr.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 e$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}},t$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 lwA(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=rMe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function pwA(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 XRl(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 r$s(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=XRl(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 fwA(e,t,r){return r$s(e,t,r,"header")}function mwA(e,t,r){return r$s(e,t,r,"query")}function dwA(e,t,r){return r$s(e,t,r,"path")}async function hwA(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=rMe(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=XRl(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 oRr({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 Q3t(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await gwA(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 gwA(e,t,r,n,i,o,s){let a=new eNn(t,r,n,i),c=new e$s,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let A=[];for(let b of o)try{let v=await(0,nNn.readFile)(b.absoluteFilePath,"utf-8");if(b.absoluteFilePathToOverrides!=null){let O=Array.isArray(b.absoluteFilePathToOverrides)?b.absoluteFilePathToOverrides:[b.absoluteFilePathToOverrides];try{let E;try{E=JSON.parse(v)}catch{E=rMe(v,{json:!0})}for(let P of O){let x=await(0,nNn.readFile)(P,"utf-8"),I;try{I=JSON.parse(x)}catch{I=rMe(x,{json:!0})}E=hwr({data:E,overrides:I})}v=_9e(E),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(E){r.logger.debug(`Failed to apply overrides to spec: ${E}. Using raw spec.`)}}if(!lwA(v)){r.logger.debug(`Non-OpenAPI spec detected at ${b.absoluteFilePath}, skipping`);continue}let _;try{_=JSON.parse(v)}catch{_=rMe(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=pwA(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 ZHs(b.absoluteFilePath,r),_=await XHs({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 KRl({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 ZHs(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 ywA(e,a,r,i,f,h,m,l,u,p,s,c);if(h.length>0&&p!=null)try{await rNn({enhancedExamples:h,sourceFilePath:p,context:r})}catch(A){r.logger.debug(`Failed to write AI examples override file: ${A}`)}let y=ZRl(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${y}, Enhanced: ${f.count}/${f.total}, Covered: ${m.size}`),g}async function ywA(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=JRl(E,s,a,r);m.push(...P.map(x=>({...x,packageId:O})))}let f=JRl(e.rootPackage,s,a,r);m.push(...f.map(O=>({...O,packageId:"root"})));let h=ZRl(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=k3t.getInstance(),y=g.create(l||"API",m.length),A={count:0,total:m.length},b=await AwA(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=YRl(E,b);v[O]=P}let _=YRl(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 ZRl(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function JRl(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(!vwA(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&&!_wA(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=z3t(l.requestBodyV3),h=z3t(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 AwA(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&&k3t.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&&(rNn({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 bwA(_,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 t$s(p,g),b=await A.processAll(y);if(a&&o.length>0)try{await rNn({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 bwA(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 hwA(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:z3t(e.example.requestBodyV3),originalResponseExample:z3t(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?fwA(f,e.example.path,e.endpoint.method):[],v=f?mwA(f,e.example.path,e.endpoint.method):[],_=f?dwA(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=AHe(g.enhancedRequestExample),{filteredBody:I,extractedPathParams:F,extractedQueryParams:q,extractedHeaders:W}=ZFn(x,P,E,O),$={...e.example.headers??{}};for(let[ee,He]of Object.entries(W))He!=null&&He!==""&&($[ee]=He);let ie={...e.example.pathParameters??{}};for(let[ee,He]of Object.entries(F))He!=null&&He!==""&&(ie[ee]=He);let ce={...e.example.queryParameters??{}};for(let[ee,He]of Object.entries(q))He!=null&&He!==""&&(ce[ee]=He);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&&k3t.getInstance().update(c,u.count),{endpointKey:m,enhancedReq:I,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys($).length>0?$:void 0,extractedPathParams:Object.keys(ie).length>0?ie: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 YRl(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=>JHs(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 _wA(e,t,r){let i=z3t(e.requestBodyV3),o=z3t(e.responseBodyV3),s=iNn(i,t,`${r}:request`),a=iNn(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 iNn(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=iNn(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=iNn(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 vwA(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 z3t(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}Aw();pr();Aw();function eFl({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return tFl({scheme:n,playgroundConfig:t,context:r})}}function tFl({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 rFl({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=tFl({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[vn.AuthSchemeId(i.key)]=o)}return n}pr();Aw();Ni();Aw();function iFl(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:DP(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:DP(r.availability),propertyAccess:r.propertyAccess})),extraProperties:IwA(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:vn.PropertyKey(n.name.wireValue),valueType:Ig(n.valueType),availability:DP(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?DP(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:()=>EwA(t.v2),float:()=>nFl(t.v2),double:()=>nFl(t.v2),string:()=>OwA(t.v2),long:()=>wwA(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:()=>xwA(t.v2),uint64:()=>PwA(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 OwA(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 EwA(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 nFl(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 wwA(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 xwA(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 PwA(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 IwA(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 o$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?SwA(i,t):[],webhooks:o!=null?CwA(o):[],websockets:s!=null?[jwA(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 CwA(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:DP(t.availability),id:vn.WebhookId(t.name.originalName),path:[],method:t.method,name:t.displayName??gbt(t.name.originalName),headers:t.headers.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:DP(n.availability)})),payload:QwA(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map(i$s).filter(ru)}})}function SwA(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=sFl({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=sFl({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=>n$s({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(ru));else if(i!=null){let a=n$s({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=tqt({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=n$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:DP(n.availability??e.availability),auth:n.auth,authV2:BwA(n.security),multiAuth:TwA(n.security,t.auth),description:n.docs??void 0,method:NwA(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?DwA({environmentsConfig:t.environments,endpoint:n}):void 0,id:vn.EndpointId(n.name.originalName),originalEndpointId:n.id,name:n.displayName??gbt(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:[...M3t(n.basePath),...M3t(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?M3t(t.basePath):[],...M3t(e.basePath),...M3t(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:DP(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:DP(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:a.name.wireValue,type:Ig(a.valueType),availability:DP(a.availability)})),request:n.requestBody!=null?oFl(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(oFl).filter(ru)},response:n.response!=null?i$s(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map(i$s).filter(ru)},errors:void 0,errorsV2:kwA(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 jwA(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:DP(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?vn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?RwA({environmentsConfig:t.environments,channel:e}):[],id:vn.WebSocketId(e.name.originalName),name:e.displayName??gbt(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:M3t(e.path)},headers:e.headers.map(n=>({key:n.name.wireValue,type:Ig(n.valueType),description:n.docs,availability:DP(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:n.name.wireValue,type:Ig(n.valueType),availability:DP(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:vn.api.v1.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:VwA(n.body),description:n.docs,availability:DP(n.availability)})),examples:r}}function BwA(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 TwA(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 DP(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 DwA({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 RwA({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:FwA(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 FwA(e,t){return e.replace(/^[^:]+/,t)}function NwA(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 M3t(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 oFl(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:DP(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:DP(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 i$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 kwA(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:UwA(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:DP(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:DP(s.availability)})):void 0})}}return r}function sFl({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:u3})}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(zwA)?{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 zwA(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function n$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:u3})}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=>IG._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 QwA(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:DP(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(ru)},description:t.docs??void 0}:MwA(e)}function MwA(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:DP(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 VwA(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:DP(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Ig(e.bodyType)};default:Ue(e)}}function UwA(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=LwA(e,t);return o!=null?[o]:[]}function LwA(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 kU({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:o$s(e.rootPackage,e,n,i),apiName:s??e.apiName.originalName,auth:eFl({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:rFl({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:DP(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:iFl(u.shape),availability:DP(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,...o$s(u,e)}}return a}Aw();async function s$s({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Rw({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 yE(r,t)}),p=sG({token:n.value}),m=kU({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 Q3t(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 qwA=new q7r({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}});function aRr({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return W7r(U7r(kU({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}),_P.ApiDefinitionId(t),qwA))}var aFl=Ge(require("path"),1);async function f7({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&aFl.default.isAbsolute(e)&&t.add(e)}async function cFl({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 a$s({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 f7({iconPath:i.icon,filepaths:t}),i.rightIcon&&await f7({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await f7({iconPath:n.icon,filepaths:t}),n.rightIcon&&await f7({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 f7({iconPath:n.icon,filepaths:t})})),t}async function a$s({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>V3t({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await f7({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>V3t({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(f7({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>V3t({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await V3t({item:r.landingPage,filepaths:t}),(await a$s({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await f7({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await V3t({item:r.landingPage,filepaths:t}),(await a$s({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function V3t({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>V3t({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await f7({iconPath:e.icon,filepaths:t});break}}function WwA(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=hHe({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function oNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)oNn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=WwA(o,t,r):typeof o=="object"&&oNn(o,t,r)}function sNn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)sNn(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&sNn(i,t,r)}pr();async function uFl({navigation:e,apiWorkspaces:t,visitor:r,context:n}){HwA(e)?await Promise.all(e.map(async i=>{$wA(i)?await Promise.all(i.layout.map(async o=>{await aNn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):KwA(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await aNn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await aNn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function aNn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Wce(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 aNn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:Ut,orphaned:Ut,availability:Ut}),GwA(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function GwA(e){return e.api!=null}function HwA(e){return e[0]?.tab!=null}function $wA(e){return"layout"in e&&Array.isArray(e.layout)}function KwA(e){return"variants"in e&&Array.isArray(e.variants)}function zU(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}pFl.default.extend(fFl.default);var JwA=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),lFl=0,YwA=async({ir:e})=>(lFl++,`${e.apiName.snakeCase.unsafeName}-${lFl}`),Ple=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=JwA,registerApi:c=YwA,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=JFn.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 E5s({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[Xe.of(X)]=Ne;let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let X=performance.now();await uFl({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:Se})=>{(await Se.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(Ye=>{let _e=dl(this.docsWorkspace.absoluteFilePath,Ye.absoluteFilepath);this.parsedDocsConfig.pages[_e]=Ye.contents,this.rawMarkdownFiles[Xe.of(_e)]=Ye.contents})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ne=performance.now()-X;this.taskContext.logger.debug(`Visited navigation AST in ${Ne.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages)){let Se=await gHe({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 rRr({markdown:Se.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X),context:this.taskContext}),Ye=nRr({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(X)});this.parsedDocsConfig.pages[Xe.of(X)]=Ye}let m=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${m.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),h=await cFl({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}=UVe(Ne,{absolutePathToMarkdownFile:this.resolveFilepath(X),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[Xe.of(X)]=Je;for(let Ye of Se)h.add(Ye)}catch(Se){throw this.taskContext.logger.error(`Failed to parse ${X}: ${Se instanceof Error?Se.message:String(Se)}`),Se}let A=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${A.toFixed(0)}ms`);let b=Array.from(h).map(X=>({absoluteFilePath:X,relativeFilePath:this.toRelativeFilepath(X)}));this.taskContext.logger.info(`Uploading ${b.length} files...`);let v=performance.now(),_=await this.uploadFiles(b),O=performance.now()-v;this.taskContext.logger.info(`Uploaded ${_.length} files in ${O.toFixed(0)}ms`),_.forEach(X=>{this.collectedFileIds.set(X.absoluteFilePath,X.fileId)}),this.taskContext.logger.debug("Building navigation tree...");let E=performance.now(),P=await this.toRootNode(),x=performance.now()-E;this.taskContext.logger.debug(`Built navigation tree in ${x.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let I=performance.now(),F=await this.getMarkdownFilesToFullyQualifiedPathNames(P),q=performance.now()-I;if(this.taskContext.logger.debug(`Got path names in ${q.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let X=performance.now();for(let Se of this.pendingApiRegistrations){this.resolveLinksInIrDocs(Se.ir,F);let Je=await this.registerApi({ir:Se.ir,snippetsConfig:Se.snippetsConfig,playgroundConfig:Se.playgroundConfig,apiName:Se.apiName,workspace:Se.workspace,graphqlOperations:Se.graphqlOperations,graphqlTypes:Se.graphqlTypes});sNn(Se.apiReferenceNode,Se.tempApiDefinitionId,Je)}let Ne=performance.now()-X;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ne.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let W=performance.now();for(let[X,Ne]of Object.entries(this.parsedDocsConfig.pages))this.parsedDocsConfig.pages[Xe.of(X)]=tRr(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 ie={};Object.entries(this.parsedDocsConfig.pages).forEach(([X,Ne])=>{let{url:Se,launch:Je}=XwA(this.editThisPage,X),Ye=this.rawMarkdownFiles[Xe.of(X)];ie[BV.PageId(X)]={markdown:Ne,editThisPageUrl:Se?BV.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 He={};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,bHe.stat)(Ye)).isDirectory()?(await rR(Ye,"{js,ts,jsx,tsx,md,mdx}")).forEach(dt=>{Ne.add(dt)}):Ye.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ne.add(Ye)})),He=Object.fromEntries(await Promise.all([...Ne].map(async Je=>{let Ye=this.toRelativeFilepath(Je),_e=(await(0,bHe.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)He[X.relativeFilePath]=X.content}if(this._parsedDocsConfig.header!=null){let X=this.toRelativeFilepath(this._parsedDocsConfig.header),Ne=(await(0,bHe.readFile)(this._parsedDocsConfig.header)).toString();He[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,bHe.readFile)(this._parsedDocsConfig.footer)).toString();He[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:ie,jsFiles:He}}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,mFl.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();eRr(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=nr.migrate.FernNavigationV1ToLatest.create().root(t);return nr.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!nr.isPage(o))return;let a=nr.getPageId(o);if(a==null)return;let c=Pt(this.docsWorkspace.absoluteFilePath,Xe.of(a));r[c]??=s}),r}getDocsBasePath(){return new URL(zU(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?BV.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:BV.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:BV.Url(n.url)}:{...n,url:BV.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:BV.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.
|
|
2106
2106
|
A valid API configuration was not found at the path: fern/apis/${t.apiName}.
|
|
2107
2107
|
Learn more about project structure:
|
|
2108
2108
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`:`Failed to load API Definition referenced in docs.
|
|
@@ -2114,7 +2114,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
|
|
|
2114
2114
|
Learn more about project structure:
|
|
2115
2115
|
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 EB(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??z0(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??z0(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:BV.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??z0(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?ZwA(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??z0(t.title)}`),o=n.apply({urlSlug:t.slug??z0(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 EB(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 EB(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=$Rl(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=Rw({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 yE(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=tj(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=aRr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new KFn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,m,f.namespacesByOperationId),b=A.getTagDescriptionContent();for(let[_,O]of b.entries()){let E=_.split("/").pop()||_,P=Xe.of(E),x=O;this.docsWorkspace.config.settings?.substituteEnvVars&&(x=tj(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 fEt(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 p3t({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??z0(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=Pt(r,Xe.of("_navigation.yml"));if(!(0,c$s.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,bHe.readFile)(n,"utf-8")).split(`
|
|
2116
2116
|
`).filter(s=>!s.startsWith("#")).join(`
|
|
2117
|
-
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=Pt(t,Xe.of(r));if(!(0,c$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,bHe.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:z0(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:z0(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??z0(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??z0(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 EB(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 fEt(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??z0(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??z0(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):BV.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:BV.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 EB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:BV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};oNn(t,r,n)}};function XwA(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:`${zU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function ZwA(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 Lz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof tA?t:null))).filter(ru)}async function u$s(e,t,r){if(e instanceof IQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof tA))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return kU({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:()=>dFl,ApiDefinitionId:()=>FFl,ApiId:()=>QFl,Availability:()=>eNl,DocsConfigId:()=>MFl,EndpointId:()=>UFl,EndpointPathLiteral:()=>XFl,EnvironmentId:()=>VFl,FileId:()=>HFl,HttpMethod:()=>ZFl,IndexSegmentId:()=>hFl,JqString:()=>KFl,OrgId:()=>kFl,PageId:()=>GFl,PayloadLocation:()=>INl,PropertyKey:()=>JFl,PullRequestState:()=>ONl,RoleId:()=>YFl,TokenId:()=>zFl,TypeId:()=>WFl,Url:()=>$Fl,VersionId:()=>NFl,WebSocketId:()=>LFl,WebhookId:()=>qFl,algolia:()=>l$s,api:()=>_$s,commons:()=>v$s,diff:()=>tNl,docs:()=>j$s,generators:()=>T$s,git:()=>D$s,navigation:()=>N$s,sdks:()=>z$s,snippets:()=>xNl,snippetsFactory:()=>PNl,templates:()=>Q$s,tokens:()=>CNl});var l$s={};D(l$s,{AlgoliaSearchIndex:()=>dFl,IndexSegmentId:()=>hFl});function dFl(e){return e}function hFl(e){return e}var _$s={};D(_$s,{latest:()=>m$s,v1:()=>b$s});var m$s={};D(m$s,{AuthSchemeId:()=>gFl,WebhookHttpMethod:()=>_Fl,auth:()=>p$s,commons:()=>yFl,endpoint:()=>AFl,type_:()=>bFl,webhook:()=>f$s,websocket:()=>vFl});var p$s={};D(p$s,{AuthSchemeId:()=>gFl});function gFl(e){return e}var yFl={};var AFl={};var bFl={};var f$s={};D(f$s,{WebhookHttpMethod:()=>_Fl});var _Fl={Get:"GET",Post:"POST"};var vFl={};var b$s={};D(b$s,{SubpackageId:()=>BFl,WebSocketMessageId:()=>TFl,WebSocketMessageOrigin:()=>DFl,WebhookHttpMethod:()=>RFl,commons:()=>A$s,db:()=>d$s,read:()=>g$s,register:()=>y$s});var d$s={};D(d$s,{endpoint:()=>OFl});var OFl={};var g$s={};D(g$s,{SupportedLanguage:()=>EFl,endpoint:()=>h$s,type_:()=>wFl,webhook:()=>xFl,websocket:()=>PFl});var h$s={};D(h$s,{SupportedLanguage:()=>EFl});var EFl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var wFl={};var xFl={};var PFl={};var y$s={};D(y$s,{SourceId:()=>exA,endpoint:()=>IFl,type_:()=>CFl,webhook:()=>SFl,websocket:()=>jFl});var IFl={};var CFl={};var SFl={};var jFl={};function exA(e){return e}var A$s={};D(A$s,{SubpackageId:()=>BFl,WebSocketMessageId:()=>TFl,WebSocketMessageOrigin:()=>DFl,WebhookHttpMethod:()=>RFl});function BFl(e){return e}function TFl(e){return e}var DFl={Client:"client",Server:"server"};var RFl={Get:"GET",Post:"POST"};var v$s={};D(v$s,{ApiDefinitionId:()=>FFl,ApiId:()=>QFl,Availability:()=>eNl,DocsConfigId:()=>MFl,EndpointId:()=>UFl,EndpointPathLiteral:()=>XFl,EnvironmentId:()=>VFl,FileId:()=>HFl,HttpMethod:()=>ZFl,JqString:()=>KFl,OrgId:()=>kFl,PageId:()=>GFl,PropertyKey:()=>JFl,RoleId:()=>YFl,TokenId:()=>zFl,TypeId:()=>WFl,Url:()=>$Fl,VersionId:()=>NFl,WebSocketId:()=>LFl,WebhookId:()=>qFl});function FFl(e){return e}function NFl(e){return e}function kFl(e){return e}function zFl(e){return e}function QFl(e){return e}function MFl(e){return e}function VFl(e){return e}function UFl(e){return e}function LFl(e){return e}function qFl(e){return e}function WFl(e){return e}function GFl(e){return e}function HFl(e){return e}function $Fl(e){return e}function KFl(e){return e}function JFl(e){return e}function YFl(e){return e}function XFl(e){return e}var ZFl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var eNl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var tNl={};var j$s={};D(j$s,{latest:()=>w$s,v1:()=>C$s,v2:()=>S$s});var w$s={};D(w$s,{Layout:()=>nNl,MdxEngine:()=>txA,TwitterCardSetting:()=>iNl,commons:()=>rNl,frontmatter:()=>O$s,seo:()=>E$s});var txA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var rNl={};var O$s={};D(O$s,{Layout:()=>nNl});var nNl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var E$s={};D(E$s,{TwitterCardSetting:()=>iNl});var iNl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var C$s={};D(C$s,{commons:()=>I$s,db:()=>oNl,read:()=>sNl,write:()=>x$s});var oNl={};var sNl={};var x$s={};D(x$s,{DocsRegistrationId:()=>nxA,FilePath:()=>rxA});function rxA(e){return e}function nxA(e){return e}var I$s={};D(I$s,{ContentAlignment:()=>lNl,FontDisplay:()=>hNl,FontStyle:()=>dNl,HeaderPosition:()=>pNl,JsScriptStrategy:()=>mNl,ProgrammingLanguage:()=>aNl,SearchbarPlacement:()=>cNl,TabsPlacement:()=>uNl,TwitterCardSetting:()=>fNl,commons:()=>P$s});var P$s={};D(P$s,{ContentAlignment:()=>lNl,FontDisplay:()=>hNl,FontStyle:()=>dNl,HeaderPosition:()=>pNl,JsScriptStrategy:()=>mNl,ProgrammingLanguage:()=>aNl,SearchbarPlacement:()=>cNl,TabsPlacement:()=>uNl,TwitterCardSetting:()=>fNl});var aNl={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 cNl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var uNl={Header:"HEADER",Sidebar:"SIDEBAR"};var lNl={Center:"CENTER",Left:"LEFT"};var pNl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var fNl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var mNl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var dNl={Normal:"normal",Italic:"italic"};var hNl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var S$s={};D(S$s,{read:()=>gNl,write:()=>yNl});var gNl={};var yNl={};var T$s={};D(T$s,{ChangelogEntryType:()=>bNl,GeneratorId:()=>ixA,GeneratorLanguage:()=>oxA,ReleaseType:()=>_Nl,cli:()=>ANl,commons:()=>B$s,versions:()=>vNl});var ANl={};var B$s={};D(B$s,{ChangelogEntryType:()=>bNl,ReleaseType:()=>_Nl});var bNl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var _Nl={Ga:"GA",Rc:"RC"};var vNl={};function ixA(e){return e}var oxA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var D$s={};D(D$s,{PullRequestState:()=>ONl});var ONl={Open:"open",Closed:"closed",Merged:"merged"};var N$s={};D(N$s,{latest:()=>R$s,v1:()=>F$s});var R$s={};D(R$s,{NodeId:()=>cxA,ProductId:()=>uxA,Slug:()=>sxA,TabId:()=>axA});function sxA(e){return e}function axA(e){return e}function cxA(e){return e}function uxA(e){return e}var F$s={};D(F$s,{NavigationV1Availability:()=>dxA,NodeId:()=>fxA,ProductId:()=>mxA,Slug:()=>lxA,TabId:()=>pxA});function lxA(e){return e}function pxA(e){return e}function fxA(e){return e}function mxA(e){return e}var dxA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var z$s={};D(z$s,{Language:()=>ENl,VersionBump:()=>wNl,versions:()=>k$s});var k$s={};D(k$s,{Language:()=>ENl,VersionBump:()=>wNl});var ENl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var wNl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var xNl={};var PNl={};var Q$s={};D(Q$s,{PayloadLocation:()=>INl});var INl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var CNl={};var cNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function SNl({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:Uz(o)},i.push(o)})}),r}var uNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function jNl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends uNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${jNl(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})}}},Ej=class extends sa{},T5=class extends Ej{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var BNl="x-fern-base-path",TNl="x-fern-availability",lNn="x-fern-sdk-group-name",DNl="x-fern-global-headers",RNl="x-fern-sdk-method-name";var FNl="x-fern-webhook",NNl="x-fern-access-token-locator",kNl="x-fern-basic",zNl="x-fern-username-variable-name",QNl="x-fern-password-variable-name",MNl="x-fern-bearer",VNl="x-fern-token-variable-name",UNl="x-fern-header",LNl="x-fern-header-variable-name",qNl="x-fern-server-name",WNl="x-fern-examples";var pNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[qNl]}convert(){if(this.serverName!=null)return this.serverName}};var fNn=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 pNn({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 _He(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 fNn({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 qz(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=qz(i,t,r)),i)}function mNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?qz(r,t,void 0):r}var pkl=Ge(iI());var dNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[kNl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var hNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[QNl]}convert(){return this.passwordVariableName}};var gNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[zNl]}convert(){return this.usernameVariableName}};var yNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[MNl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var ANn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[VNl]}convert(){return this.tokenVariableName}};function GNl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var HNl="x-bearer-format",$Nl="x-code-samples",KNl="x-codeSamples";var bNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[HNl]}convert(){return this.bearerFormat}};var _Nn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[UNl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var vNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[LNl]}convert(){return this.headerVariableName}};function JNl(e){return e.type==="apiKey"}var U3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){JNl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new _Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new vNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new bNn({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()}}};Cns();K1c();function ONn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function L3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function mEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(mEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function ENn(e){if(Array.isArray(e))return e.map(L3t);if(typeof e=="symbol")return[e];e=mEt(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 cRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(F6r(t))return r;let n=e[t];return n===void 0?ONn(t)?cRr(e,ENn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=L3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return hxA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),F6r(t))return r;let n=e[t];return n===void 0?r:n}}}function hxA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||F6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function YNl(e){return function(t){return cRr(t,e)}}function XNl(e){return e!==null&&(typeof e=="object"||typeof e=="function")}ors();function M$s(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function U$s(e,t,r){return typeof r!="function"?U$s(e,t,()=>{}):V$s(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:V$s(i,o,n,u)},new Map)}function V$s(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return gxA(e,t,r,n);case"function":return Object.keys(t).length>0?V$s(e,{...t},r,n):M$s(e,t);default:return XNl(e)?typeof t=="string"?t==="":!0:M$s(e,t)}}function gxA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return ZNl(e,t,r,n);if(t instanceof Map)return yxA(e,t,r,n);if(t instanceof Set)return AxA(e,t,r,n);let i=Object.keys(t);if(e==null||s_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(!s_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 yxA(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 ZNl(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 AxA(e,t,r,n){return t.size===0?!0:e instanceof Set?ZNl([...e],[...t],r,n):!1}function wNn(e,t){return U$s(e,t,()=>{})}$1c();function ekl(e){return e=H1c(e),t=>wNn(t,e)}ars();S6r();srs();function tkl(e,t){return G1c(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(CDt(e)===R6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),O$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case B6r:case j6r:case T6r:{let a=new e.constructor(e?.valueOf());return O$(a,e),a}case D6r:{let a={};return O$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function rkl(e){return tkl(e)}var bxA=/^(?:0|[1-9]\d*)$/;function nkl(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 bxA.test(e)}}S6r();function ikl(e){return e!==null&&typeof e=="object"&&CDt(e)==="[object Arguments]"}function okl(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&ONn(t)&&e?.[t]==null?r=ENn(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)||ikl(n))&&nkl(o)&&o<n.length))return!1;n=n[o]}return!0}function skl(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=L3t(e);break}}return t=rkl(t),function(r){let n=cRr(r,e);return n===void 0?okl(r,e):t===void 0?n===void 0:wNn(n,t)}}function akl(e){if(e==null)return KWr;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?skl(e[0],e[1]):ekl(e);case"string":case"symbol":case"number":return YNl(e)}}Cns();crs();function xNn(e,t=KWr){return e==null?{}:Ck(e,akl(t))}A2c();function ckl(e){return y2c(mEt(e))}Z1c();function ukl(e){return typeof e!="string"&&(e=mEt(e)),e.replace(/['\u2019]/g,"")}function Ile(e){return X1c(ukl(ckl(e)))}function AO(e){if(e!=null)return Array.isArray(e)?e:[e]}function PNn({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`${_xA(s)}${vxA(e)}.${OxA(n,i,o,a)}`}function _xA(e){return e?"webhook_":"endpoint_"}function vxA(e){return e!=null?AO(e)?.map(t=>Ile(t)).join("/"):""}function OxA(e,t,r,n){return e||t||Ile(r??"")||Ile(n??"")}function lkl(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var INn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[NNl],this.accessTokenLocator!=null&&(lkl(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 CNn=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 U3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new INn({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=PNn({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 q3t=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 dNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new gNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new hNn({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 yNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new ANn({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":{GNl(this.input)?(this.authScheme="header",this.headerAuthNode=new U3t({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 CNn({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 pkl.UnreachableCaseError(this.authScheme);return}}};var W3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=mNn(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 q3t({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 SNn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[BNl],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 fkl(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function mkl(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function G3t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>AO(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!fkl(i))&&(s=mkl(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 jNn(e,t){return Sy(e)?qz(e,t,void 0):e}function vHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function dkl(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 hkl(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 gkl=Ge(iI());var L$s=["decimal","decimal128","double-int","double","float","sf-decimal"],q$s=["int16","int32","int64","int8","sf-integer","uint8"],W$s=["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"],G$s=["beta","pre-release","in-development","generally-available","deprecated"];function wj(e,t){return Sy(e)?qz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(wj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[TNl];r!=null&&(G$s.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${G$s.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 gkl.UnreachableCaseError(this.availability);return}}};var TNn=Ge(iI());function ykl(e){return typeof e=="object"&&e!=null&&"language"in e}function Akl(e){return typeof e=="object"&&e!=null&&"sdk"in e}function bkl(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function _kl(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function BNn(e){return typeof e=="object"&&e!=null&&"event"in e}function H$s(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(BNn)}function OHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function vkl(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var DNn=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[WNl]}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 OHe(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=>OHe(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 TNn.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=vkl(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 TNn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{bkl(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{H$s(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!H$s(r.response)&&_kl(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new TNn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{ykl(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})):Akl(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 uRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[lNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ile(r)))}};var RNn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[RNl]}convert(){return this.sdkMethodName}};var FNn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[FNl]}convert(){return this.isWebhook}};var NNn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[$Nl]??[],...this.input[KNl]??[]],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 dEt=Ge(iI());function $$s(e,t){return Sy(e)?qz(e,t,void 0):e}function Okl(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 eF="",Bve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(OHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>OHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new dEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=$$s(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=$$s(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 dEt.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(BNn)){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 dEt.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 OHe(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=>OHe(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 dEt.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 dEt.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 dEt.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:Okl(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Uz(this.name):this.summary!=null?Uz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function Ekl(e,t){return Sy(e)?qz(e,t,void 0):e}var Nkl=Ge(iI());var wkl="#/components/schemas/";function H3t(e){if(e.$ref.startsWith(wkl))return e.$ref.replace(wkl,"")}function WVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function EHe(e){return typeof e.type=="string"&&e.type==="array"}function xkl(e){return e.type==="boolean"}function Pkl(e){return e.type==="integer"}function wHe(e){return!Array.isArray(e.type)&&!EHe(e)}function Ikl(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||wHe(t)||EHe(t))}function Ckl(e){return"nullable"in e&&typeof e.nullable=="boolean"}function Skl(e){return e.type==="null"}function jkl(e){return e.type==="number"}function K$s(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function Bkl(e){return e.type==="string"}var kNn=class extends T5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new zw({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 AO(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 zNn=class extends Ej{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var QNn=class extends T5{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 zw({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=>AO(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(WVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function MNn(e){return e!=null&&e.length>0?e:[void 0]}var $3t=class extends T5{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 zw({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 zw({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 H3t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new zw({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 G3t(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}}}]:AO(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=>MNn(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=wj(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new zw({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 VNn=class extends T5{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=>wj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>wj(t,this.context.document)?.type!=="null"?new zw({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=wj({$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 zw({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(WVe).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])=>AO(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Uz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>AO(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Uz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Uz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?WVe(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 UNn=class extends Ej{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 xHe=class extends Ej{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=wj(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 Tkl=Ge(iI());function ExA(e){return q$s.includes(e)}var LNn=class extends Ej{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&&(ExA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${q$s.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 Tkl.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 qNn=class extends Ej{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return WVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var Dkl=Ge(iI());function wxA(e){return L$s.includes(e)}var WNn=class extends Ej{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&&(wxA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${L$s.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 Dkl.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 Rkl=Ge(iI());function xxA(e){return W$s.includes(e)}var GNn=class extends Ej{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 Rkl.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&&(xxA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${W$s.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new xHe({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 Fkl=Ge(iI());var HNn=class extends Ej{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,Fkl.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var hEt=class extends T5{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=H3t(this.input);let t=wj(this.input,this.context.document);t?.enum!=null&&wHe(t)&&(this.maybeEnumConverterNode=new xHe({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=wj(this.input,this.context.document);if(r!=null)return new zw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var zw=class e extends T5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),wHe(this.input)&&Ckl(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=H3t(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 hEt({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 zNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(Ikl(this.input))this.typeShapeNode=new QNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new VNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(K$s(this.input)&&this.input.allOf!=null)this.typeShapeNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new xHe({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":K$s(this.input)&&(this.typeShapeNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":EHe(this.input)&&(this.typeShapeNode=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":xkl(this.input)&&(this.typeShapeNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":Pkl(this.input)&&(this.typeShapeNode=new LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":jkl(this.input)&&(this.typeShapeNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":Bkl(this.input)&&(this.typeShapeNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":Skl(this.input)&&(this.typeShapeNode=new qNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new Nkl.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 $3t({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 HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!EHe(this.input)&&this.input==null||EHe(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=AO(t)?.map(n=>this.nullable?WVe(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 PHe(e){if(e!=null)return G3t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Tve=class extends Ej{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new zw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=Ekl(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 kkl(e,t){return Sy(e)?qz(e,t,void 0):e}var J$s=Ge(iI());function $Nn(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 zkl=Ge(vAs(),1),K3t=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=zkl.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 PxA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var KNn=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 zw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),PxA(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=mNn(r.$ref,this.context.document):i=r,i!=null)return[t,new q3t({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=AO(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 JNn=class extends zw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=wj(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=wj(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 YNn=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=wj(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new hEt({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=K3t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new zw({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 JNn({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?{[eF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[eF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:AO(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ile([this.method,this.path,this.contentType,"request"].join("_"));return $Nn({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 J$s.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof hEt)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=AO(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 J$s.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 XNn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=kkl(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 YNn({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])=>AO(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>AO(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 Qkl={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 Mkl(e,t){if(Sy(e)){let r=qz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ZNn=Ge(iI());var Vkl="application/json";var Ukl="application/octet-stream";function Lkl(e,t){return e===t||t===eF||e===eF}var lRr=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)Lkl(a,o)&&(n.add(a),this.examples?.push(new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,vHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Bve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,vHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Bve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,vHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,vHe(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[eF];if(o!=null)for(let s of o)this.examples?.push(new Bve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,vHe(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=K3t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=Vkl,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 zw({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=Ukl,this.contentSubtype=wj(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 zw({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=xNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[eF]??=[],r[eF]=[{value:this.input.example}]);let n=wj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=xNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[eF]??=[],r[eF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[eF]??=[],r[eF]?.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!==eF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==eF);Object.keys(r).every(a=>a===eF)||this.matchExamplesByIndex(o,s),!i.has(eF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return AO(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new ZNn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return AO(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ile([this.method,this.path,this.statusCode,"response"].join("_"));return $Nn({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 ZNn.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 ZNn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var pRr=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=Mkl(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new lRr({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 lRr({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 ekn=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 pRr({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 pRr({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 MNn(PHe(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=AO(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??Qkl[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 IHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Bve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,vHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=_He(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new FNn({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=jNn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new NNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new XNn({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 ekn({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 W3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new uRr({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 uRr({input:{[lNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new RNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>PNn({namespace:AO(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 DNn({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=hkl(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:dkl(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:PHe(this.queryParameters)?.flat(),headers:PHe(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:PHe(this.pathParameters)?.flat(),queryParameters:PHe(this.queryParameters)?.flat(),requestHeaders:PHe(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 J3t=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=_He(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 IHe({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 IHe({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 IHe({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 IHe({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 IHe({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 tkn(e){return"payloads"in e}var rkn=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 J3t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:_He(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=>{tkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var nkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[DNl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||jNn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return G3t(this.globalHeaders,this.requiredProperties)?.flat()}};function qkl(e,t){if(Sy(e)){let r=qz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ikn=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=qkl(o,this.context.document);if(s!=null)return new J3t({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=>{tkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var okn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=_He(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new W3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new SNn({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 rkn({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 ikn({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 KNn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=fR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=SNl({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 Y$s(e,t){if(e instanceof IQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof tA))return;let r=new ple(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new cNn,generatedTypes:{}},c=new okn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Ekt(o,c.convert())}return o}Aw();Ir();var r6l=Ge(eKs(),1),n6l=Ge(Wkn(),1),C2n=require("fs/promises"),i6l=Ge(require("http"),1),o6l=Ge(require("path"),1);var UVl=require("events"),Jkn=Ge(require("fs"),1),xEt=Ge(require("path"),1);var wVl=Ge(require("os"),1),xVl=300,RHe=20,NRr=1e7,PVl=wVl.default.platform();var VTA=PVl==="darwin",bJs=PVl==="win32",FHe=VTA||bJs,IVl=3e3,CVl=2e4,_Js=1250;var Nve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Nve||(Nve={}));var wEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(wEt||(wEt={}));var kRr;(function(e){e.CHANGE="change",e.ERROR="error"})(kRr||(kRr={}));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 VU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(VU||(VU={}));var UTA=(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},Gkn=UTA;var wJs=Ge(require("fs"),1),$kn=Ge(require("path"),1);var yb=Ge(require("fs"),1),Wz=require("util");var HVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},kve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var vJs=Ge(require("process"),1),SVl=vJs.default.getuid?!vJs.default.getuid():!1,jVl=1e4,N5=()=>{};var zRr={isChangeErrorOk:e=>{if(!zRr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!SVl&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!zRr.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(!zRr.isNodeError(e))throw e;if(!zRr.isChangeErrorOk(e))throw e}},xj=zRr;var OJs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=jVl,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()}}}}},BVl=new OJs;var $Ve=(e,t)=>function(n){return function i(...o){return BVl.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)})}},KVe=(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 LTA={attempt:{chmod:HVe((0,Wz.promisify)(yb.default.chmod),xj.onChangeError),chown:HVe((0,Wz.promisify)(yb.default.chown),xj.onChangeError),close:HVe((0,Wz.promisify)(yb.default.close),N5),fsync:HVe((0,Wz.promisify)(yb.default.fsync),N5),mkdir:HVe((0,Wz.promisify)(yb.default.mkdir),N5),realpath:HVe((0,Wz.promisify)(yb.default.realpath),N5),stat:HVe((0,Wz.promisify)(yb.default.stat),N5),unlink:HVe((0,Wz.promisify)(yb.default.unlink),N5),chmodSync:kve(yb.default.chmodSync,xj.onChangeError),chownSync:kve(yb.default.chownSync,xj.onChangeError),closeSync:kve(yb.default.closeSync,N5),existsSync:kve(yb.default.existsSync,N5),fsyncSync:kve(yb.default.fsync,N5),mkdirSync:kve(yb.default.mkdirSync,N5),realpathSync:kve(yb.default.realpathSync,N5),statSync:kve(yb.default.statSync,N5),unlinkSync:kve(yb.default.unlinkSync,N5)},retry:{close:$Ve((0,Wz.promisify)(yb.default.close),xj.isRetriableError),fsync:$Ve((0,Wz.promisify)(yb.default.fsync),xj.isRetriableError),open:$Ve((0,Wz.promisify)(yb.default.open),xj.isRetriableError),readFile:$Ve((0,Wz.promisify)(yb.default.readFile),xj.isRetriableError),rename:$Ve((0,Wz.promisify)(yb.default.rename),xj.isRetriableError),stat:$Ve((0,Wz.promisify)(yb.default.stat),xj.isRetriableError),write:$Ve((0,Wz.promisify)(yb.default.write),xj.isRetriableError),writeFile:$Ve((0,Wz.promisify)(yb.default.writeFile),xj.isRetriableError),closeSync:KVe(yb.default.closeSync,xj.isRetriableError),fsyncSync:KVe(yb.default.fsyncSync,xj.isRetriableError),openSync:KVe(yb.default.openSync,xj.isRetriableError),readFileSync:KVe(yb.default.readFileSync,xj.isRetriableError),renameSync:KVe(yb.default.renameSync,xj.isRetriableError),statSync:KVe(yb.default.statSync,xj.isRetriableError),writeSync:KVe(yb.default.writeSync,xj.isRetriableError),writeFileSync:KVe(yb.default.writeFileSync,xj.isRetriableError)}},TVl=LTA;var Hkn=Ge(require("fs"),1),QRr=Ge(require("path"),1);var EJs=()=>{};var qTA=()=>{let e=EJs,t=EJs,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}},DVl=qTA;var WTA=()=>{let{promise:e,resolve:t,isPending:r}=DVl(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},RVl=WTA;var FVl={then:e=>{e()}};var NVl=e=>Array.isArray(e)?e:[e],kVl=e=>typeof e=="function";var GTA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=NVl(o).map(Z=>kVl(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}=RVl(),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||He(X,Se+1)))},ie=(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===QRr.default.sep?"":QRr.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(),Hkn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||FVl).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()})}))},He=(Z,X)=>{x(),Hkn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Hkn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=QRr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ie(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=QRr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},zVl=GTA;var zve={lang:{debounce:Gkn,attempt:e=>{try{return e()}catch(t){return zve.lang.castError(t)}},castArray:e=>zve.lang.isArray(e)?e:[e],castError:e=>zve.lang.isError(e)?e:zve.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(zve.lang.isNaN(e))return zve.lang.isNaN(t);if(zve.lang.isPrimitive(e)||zve.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split($kn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?wJs.default.realpathSync.native(e):wJs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===$kn.default.sep&&t.length-e.length>$kn.default.sep.length,poll:(e,t=CVl)=>TVl.retry.stat(t)(e,{bigint:!0}).catch(zve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await zVl(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=zve;var Kkn=Ge(require("path"),1);var xJs=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=xVl){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??RHe:Math.min(1,this.options.depth??RHe),s=this.options.limit??NRr,[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&&!FHe&&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(Kkn.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(Kkn.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=wEt.CHANGE,r){if(this.watcher.isClosed())return;let n=Kkn.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){bJs&&t.code==="EPERM"?this.onWatcherChange(wEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(kRr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(kRr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(wEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&FHe&&this.options.native!==!1?this.options.depth??RHe:Math.min(1,this.options.depth??RHe),n=this.options.limit??NRr,[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(wEt.CHANGE,a,t)}))}}},QVl=xJs;var UU={interval:100,intervalId:void 0,fns:new Map,init:()=>{UU.intervalId||(UU.intervalId=setInterval(UU.resolve,UU.interval))},reset:()=>{UU.intervalId&&(clearInterval(UU.intervalId),delete UU.intervalId)},add:(e,t)=>{UU.fns.set(e,Date.now()+t),UU.init()},remove:e=>{UU.fns.delete(e)},resolve:()=>{if(!UU.fns.size)return UU.reset();let e=Date.now();for(let[t,r]of UU.fns)r>=e||(UU.remove(t),t())}},MRr=UU;var VRr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=_Js){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),MRr.remove(u)},u=()=>{c(),a()};MRr.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=_Js){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),MRr.remove(u)},u=()=>{c(),a()};MRr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Nve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Nve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Nve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Nve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};VRr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};VRr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var MVl=VRr;var PJs=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}},IJs=PJs;var CJs=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}},VVl=CJs;var SJs=class{constructor(){this.inos={},this.paths=new IJs,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 VVl(n)}reset(){this.inos={},this.paths=new IJs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Nve.FILE:Nve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},jJs=SJs;var BJs=class e extends UVl.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(VU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(VU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(VU.READY,i)),this._locker=new MVl(this),this._roots=new Set,this._poller=new jJs,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(VU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(VU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(VU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(VU.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 QVl(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=xEt.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??RHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&FHe&&l.options.native!==!1)))return!0;if(!FHe)break;let u=xEt.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||FHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Jkn.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=xEt.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||FHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??RHe,a=r.limit??NRr,[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(VU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(VU.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=xEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new jJs,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??IVl},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(VU.CLOSE,a),Jkn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(VU.CLOSE,a),Jkn.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=xEt.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=xEt.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(VU.ALL,n),r.readdirMap=void 0,this.ready())}},Ykn=BJs;pzn();Ir();var _5t=require("fs/promises"),$Ul=require("os"),KUl=Ge(require("path"),1),hDA=".fern",gDA="logs";function yDA(){return"cli@3.95.2"}var BEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Pt(vr.of((0,$Ul.homedir)()),Xe.of(hDA)),r=Pt(t,Xe.of(gDA));await qr(r)||await(0,_5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Pt(r,Xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${KUl.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2117
|
+
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=Pt(t,Xe.of(r));if(!(0,c$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,bHe.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:z0(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:z0(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??z0(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??z0(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 EB(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 fEt(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??z0(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??z0(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):BV.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:BV.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 EB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:BV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};oNn(t,r,n)}};function XwA(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:`${zU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function ZwA(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 Lz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof tA?t:null))).filter(ru)}async function u$s(e,t,r){if(e instanceof IQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof tA))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return kU({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:()=>dFl,ApiDefinitionId:()=>FFl,ApiId:()=>QFl,Availability:()=>eNl,DocsConfigId:()=>MFl,EndpointId:()=>UFl,EndpointPathLiteral:()=>XFl,EnvironmentId:()=>VFl,FileId:()=>HFl,HttpMethod:()=>ZFl,IndexSegmentId:()=>hFl,JqString:()=>KFl,OrgId:()=>kFl,PageId:()=>GFl,PayloadLocation:()=>INl,PropertyKey:()=>JFl,PullRequestState:()=>ONl,RoleId:()=>YFl,TokenId:()=>zFl,TypeId:()=>WFl,Url:()=>$Fl,VersionId:()=>NFl,WebSocketId:()=>LFl,WebhookId:()=>qFl,algolia:()=>l$s,api:()=>_$s,commons:()=>v$s,diff:()=>tNl,docs:()=>j$s,generators:()=>T$s,git:()=>D$s,navigation:()=>N$s,sdks:()=>z$s,snippets:()=>xNl,snippetsFactory:()=>PNl,templates:()=>Q$s,tokens:()=>CNl});var l$s={};D(l$s,{AlgoliaSearchIndex:()=>dFl,IndexSegmentId:()=>hFl});function dFl(e){return e}function hFl(e){return e}var _$s={};D(_$s,{latest:()=>m$s,v1:()=>b$s});var m$s={};D(m$s,{AuthSchemeId:()=>gFl,WebhookHttpMethod:()=>_Fl,auth:()=>p$s,commons:()=>yFl,endpoint:()=>AFl,type_:()=>bFl,webhook:()=>f$s,websocket:()=>vFl});var p$s={};D(p$s,{AuthSchemeId:()=>gFl});function gFl(e){return e}var yFl={};var AFl={};var bFl={};var f$s={};D(f$s,{WebhookHttpMethod:()=>_Fl});var _Fl={Get:"GET",Post:"POST"};var vFl={};var b$s={};D(b$s,{SubpackageId:()=>BFl,WebSocketMessageId:()=>TFl,WebSocketMessageOrigin:()=>DFl,WebhookHttpMethod:()=>RFl,commons:()=>A$s,db:()=>d$s,read:()=>g$s,register:()=>y$s});var d$s={};D(d$s,{endpoint:()=>OFl});var OFl={};var g$s={};D(g$s,{SupportedLanguage:()=>EFl,endpoint:()=>h$s,type_:()=>wFl,webhook:()=>xFl,websocket:()=>PFl});var h$s={};D(h$s,{SupportedLanguage:()=>EFl});var EFl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var wFl={};var xFl={};var PFl={};var y$s={};D(y$s,{SourceId:()=>exA,endpoint:()=>IFl,type_:()=>CFl,webhook:()=>SFl,websocket:()=>jFl});var IFl={};var CFl={};var SFl={};var jFl={};function exA(e){return e}var A$s={};D(A$s,{SubpackageId:()=>BFl,WebSocketMessageId:()=>TFl,WebSocketMessageOrigin:()=>DFl,WebhookHttpMethod:()=>RFl});function BFl(e){return e}function TFl(e){return e}var DFl={Client:"client",Server:"server"};var RFl={Get:"GET",Post:"POST"};var v$s={};D(v$s,{ApiDefinitionId:()=>FFl,ApiId:()=>QFl,Availability:()=>eNl,DocsConfigId:()=>MFl,EndpointId:()=>UFl,EndpointPathLiteral:()=>XFl,EnvironmentId:()=>VFl,FileId:()=>HFl,HttpMethod:()=>ZFl,JqString:()=>KFl,OrgId:()=>kFl,PageId:()=>GFl,PropertyKey:()=>JFl,RoleId:()=>YFl,TokenId:()=>zFl,TypeId:()=>WFl,Url:()=>$Fl,VersionId:()=>NFl,WebSocketId:()=>LFl,WebhookId:()=>qFl});function FFl(e){return e}function NFl(e){return e}function kFl(e){return e}function zFl(e){return e}function QFl(e){return e}function MFl(e){return e}function VFl(e){return e}function UFl(e){return e}function LFl(e){return e}function qFl(e){return e}function WFl(e){return e}function GFl(e){return e}function HFl(e){return e}function $Fl(e){return e}function KFl(e){return e}function JFl(e){return e}function YFl(e){return e}function XFl(e){return e}var ZFl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var eNl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var tNl={};var j$s={};D(j$s,{latest:()=>w$s,v1:()=>C$s,v2:()=>S$s});var w$s={};D(w$s,{Layout:()=>nNl,MdxEngine:()=>txA,TwitterCardSetting:()=>iNl,commons:()=>rNl,frontmatter:()=>O$s,seo:()=>E$s});var txA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var rNl={};var O$s={};D(O$s,{Layout:()=>nNl});var nNl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var E$s={};D(E$s,{TwitterCardSetting:()=>iNl});var iNl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var C$s={};D(C$s,{commons:()=>I$s,db:()=>oNl,read:()=>sNl,write:()=>x$s});var oNl={};var sNl={};var x$s={};D(x$s,{DocsRegistrationId:()=>nxA,FilePath:()=>rxA});function rxA(e){return e}function nxA(e){return e}var I$s={};D(I$s,{ContentAlignment:()=>lNl,FontDisplay:()=>hNl,FontStyle:()=>dNl,HeaderPosition:()=>pNl,JsScriptStrategy:()=>mNl,ProgrammingLanguage:()=>aNl,SearchbarPlacement:()=>cNl,TabsPlacement:()=>uNl,TwitterCardSetting:()=>fNl,commons:()=>P$s});var P$s={};D(P$s,{ContentAlignment:()=>lNl,FontDisplay:()=>hNl,FontStyle:()=>dNl,HeaderPosition:()=>pNl,JsScriptStrategy:()=>mNl,ProgrammingLanguage:()=>aNl,SearchbarPlacement:()=>cNl,TabsPlacement:()=>uNl,TwitterCardSetting:()=>fNl});var aNl={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 cNl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var uNl={Header:"HEADER",Sidebar:"SIDEBAR"};var lNl={Center:"CENTER",Left:"LEFT"};var pNl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var fNl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var mNl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var dNl={Normal:"normal",Italic:"italic"};var hNl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var S$s={};D(S$s,{read:()=>gNl,write:()=>yNl});var gNl={};var yNl={};var T$s={};D(T$s,{ChangelogEntryType:()=>bNl,GeneratorId:()=>ixA,GeneratorLanguage:()=>oxA,ReleaseType:()=>_Nl,cli:()=>ANl,commons:()=>B$s,versions:()=>vNl});var ANl={};var B$s={};D(B$s,{ChangelogEntryType:()=>bNl,ReleaseType:()=>_Nl});var bNl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var _Nl={Ga:"GA",Rc:"RC"};var vNl={};function ixA(e){return e}var oxA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var D$s={};D(D$s,{PullRequestState:()=>ONl});var ONl={Open:"open",Closed:"closed",Merged:"merged"};var N$s={};D(N$s,{latest:()=>R$s,v1:()=>F$s});var R$s={};D(R$s,{NodeId:()=>cxA,ProductId:()=>uxA,Slug:()=>sxA,TabId:()=>axA});function sxA(e){return e}function axA(e){return e}function cxA(e){return e}function uxA(e){return e}var F$s={};D(F$s,{NavigationV1Availability:()=>dxA,NodeId:()=>fxA,ProductId:()=>mxA,Slug:()=>lxA,TabId:()=>pxA});function lxA(e){return e}function pxA(e){return e}function fxA(e){return e}function mxA(e){return e}var dxA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var z$s={};D(z$s,{Language:()=>ENl,VersionBump:()=>wNl,versions:()=>k$s});var k$s={};D(k$s,{Language:()=>ENl,VersionBump:()=>wNl});var ENl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var wNl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var xNl={};var PNl={};var Q$s={};D(Q$s,{PayloadLocation:()=>INl});var INl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var CNl={};var cNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function SNl({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:Uz(o)},i.push(o)})}),r}var uNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function jNl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends uNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${jNl(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})}}},Ej=class extends sa{},T5=class extends Ej{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var BNl="x-fern-base-path",TNl="x-fern-availability",lNn="x-fern-sdk-group-name",DNl="x-fern-global-headers",RNl="x-fern-sdk-method-name";var FNl="x-fern-webhook",NNl="x-fern-access-token-locator",kNl="x-fern-basic",zNl="x-fern-username-variable-name",QNl="x-fern-password-variable-name",MNl="x-fern-bearer",VNl="x-fern-token-variable-name",UNl="x-fern-header",LNl="x-fern-header-variable-name",qNl="x-fern-server-name",WNl="x-fern-examples";var pNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[qNl]}convert(){if(this.serverName!=null)return this.serverName}};var fNn=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 pNn({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 _He(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 fNn({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 qz(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=qz(i,t,r)),i)}function mNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?qz(r,t,void 0):r}var pkl=Ge(iI());var dNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[kNl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var hNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[QNl]}convert(){return this.passwordVariableName}};var gNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[zNl]}convert(){return this.usernameVariableName}};var yNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[MNl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var ANn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[VNl]}convert(){return this.tokenVariableName}};function GNl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var HNl="x-bearer-format",$Nl="x-code-samples",KNl="x-codeSamples";var bNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[HNl]}convert(){return this.bearerFormat}};var _Nn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[UNl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var vNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[LNl]}convert(){return this.headerVariableName}};function JNl(e){return e.type==="apiKey"}var U3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){JNl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new _Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new vNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new bNn({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()}}};Cns();K1c();function ONn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function L3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function mEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(mEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function ENn(e){if(Array.isArray(e))return e.map(L3t);if(typeof e=="symbol")return[e];e=mEt(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 cRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(F6r(t))return r;let n=e[t];return n===void 0?ONn(t)?cRr(e,ENn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=L3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return hxA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),F6r(t))return r;let n=e[t];return n===void 0?r:n}}}function hxA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||F6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function YNl(e){return function(t){return cRr(t,e)}}function XNl(e){return e!==null&&(typeof e=="object"||typeof e=="function")}ors();function M$s(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function U$s(e,t,r){return typeof r!="function"?U$s(e,t,()=>{}):V$s(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:V$s(i,o,n,u)},new Map)}function V$s(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return gxA(e,t,r,n);case"function":return Object.keys(t).length>0?V$s(e,{...t},r,n):M$s(e,t);default:return XNl(e)?typeof t=="string"?t==="":!0:M$s(e,t)}}function gxA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return ZNl(e,t,r,n);if(t instanceof Map)return yxA(e,t,r,n);if(t instanceof Set)return AxA(e,t,r,n);let i=Object.keys(t);if(e==null||s_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(!s_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 yxA(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 ZNl(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 AxA(e,t,r,n){return t.size===0?!0:e instanceof Set?ZNl([...e],[...t],r,n):!1}function wNn(e,t){return U$s(e,t,()=>{})}$1c();function ekl(e){return e=H1c(e),t=>wNn(t,e)}ars();S6r();srs();function tkl(e,t){return G1c(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(CDt(e)===R6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),O$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case B6r:case j6r:case T6r:{let a=new e.constructor(e?.valueOf());return O$(a,e),a}case D6r:{let a={};return O$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function rkl(e){return tkl(e)}var bxA=/^(?:0|[1-9]\d*)$/;function nkl(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 bxA.test(e)}}S6r();function ikl(e){return e!==null&&typeof e=="object"&&CDt(e)==="[object Arguments]"}function okl(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&ONn(t)&&e?.[t]==null?r=ENn(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)||ikl(n))&&nkl(o)&&o<n.length))return!1;n=n[o]}return!0}function skl(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=L3t(e);break}}return t=rkl(t),function(r){let n=cRr(r,e);return n===void 0?okl(r,e):t===void 0?n===void 0:wNn(n,t)}}function akl(e){if(e==null)return KWr;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?skl(e[0],e[1]):ekl(e);case"string":case"symbol":case"number":return YNl(e)}}Cns();crs();function xNn(e,t=KWr){return e==null?{}:Ck(e,akl(t))}A2c();function ckl(e){return y2c(mEt(e))}Z1c();function ukl(e){return typeof e!="string"&&(e=mEt(e)),e.replace(/['\u2019]/g,"")}function Ile(e){return X1c(ukl(ckl(e)))}function AO(e){if(e!=null)return Array.isArray(e)?e:[e]}function PNn({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`${_xA(s)}${vxA(e)}.${OxA(n,i,o,a)}`}function _xA(e){return e?"webhook_":"endpoint_"}function vxA(e){return e!=null?AO(e)?.map(t=>Ile(t)).join("/"):""}function OxA(e,t,r,n){return e||t||Ile(r??"")||Ile(n??"")}function lkl(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var INn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[NNl],this.accessTokenLocator!=null&&(lkl(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 CNn=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 U3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new INn({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=PNn({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 q3t=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 dNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new gNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new hNn({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 yNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new ANn({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":{GNl(this.input)?(this.authScheme="header",this.headerAuthNode=new U3t({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 CNn({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 pkl.UnreachableCaseError(this.authScheme);return}}};var W3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=mNn(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 q3t({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 SNn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[BNl],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 fkl(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function mkl(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function G3t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>AO(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!fkl(i))&&(s=mkl(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 jNn(e,t){return Sy(e)?qz(e,t,void 0):e}function vHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function dkl(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 hkl(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 gkl=Ge(iI());var L$s=["decimal","decimal128","double-int","double","float","sf-decimal"],q$s=["int16","int32","int64","int8","sf-integer","uint8"],W$s=["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"],G$s=["beta","pre-release","in-development","generally-available","deprecated"];function wj(e,t){return Sy(e)?qz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(wj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[TNl];r!=null&&(G$s.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${G$s.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 gkl.UnreachableCaseError(this.availability);return}}};var TNn=Ge(iI());function ykl(e){return typeof e=="object"&&e!=null&&"language"in e}function Akl(e){return typeof e=="object"&&e!=null&&"sdk"in e}function bkl(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function _kl(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function BNn(e){return typeof e=="object"&&e!=null&&"event"in e}function H$s(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(BNn)}function OHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function vkl(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var DNn=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[WNl]}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 OHe(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=>OHe(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 TNn.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=vkl(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 TNn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{bkl(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{H$s(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!H$s(r.response)&&_kl(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new TNn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{ykl(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})):Akl(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 uRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[lNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ile(r)))}};var RNn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[RNl]}convert(){return this.sdkMethodName}};var FNn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[FNl]}convert(){return this.isWebhook}};var NNn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[$Nl]??[],...this.input[KNl]??[]],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 dEt=Ge(iI());function $$s(e,t){return Sy(e)?qz(e,t,void 0):e}function Okl(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 eF="",Bve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(OHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>OHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new dEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=$$s(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=$$s(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 dEt.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(BNn)){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 dEt.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 OHe(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=>OHe(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 dEt.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 dEt.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 dEt.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:Okl(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Uz(this.name):this.summary!=null?Uz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function Ekl(e,t){return Sy(e)?qz(e,t,void 0):e}var Nkl=Ge(iI());var wkl="#/components/schemas/";function H3t(e){if(e.$ref.startsWith(wkl))return e.$ref.replace(wkl,"")}function WVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function EHe(e){return typeof e.type=="string"&&e.type==="array"}function xkl(e){return e.type==="boolean"}function Pkl(e){return e.type==="integer"}function wHe(e){return!Array.isArray(e.type)&&!EHe(e)}function Ikl(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||wHe(t)||EHe(t))}function Ckl(e){return"nullable"in e&&typeof e.nullable=="boolean"}function Skl(e){return e.type==="null"}function jkl(e){return e.type==="number"}function K$s(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function Bkl(e){return e.type==="string"}var kNn=class extends T5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new zw({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 AO(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 zNn=class extends Ej{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var QNn=class extends T5{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 zw({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=>AO(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(WVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function MNn(e){return e!=null&&e.length>0?e:[void 0]}var $3t=class extends T5{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 zw({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 zw({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 H3t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new zw({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 G3t(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}}}]:AO(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=>MNn(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=wj(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new zw({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 VNn=class extends T5{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=>wj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>wj(t,this.context.document)?.type!=="null"?new zw({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=wj({$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 zw({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(WVe).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])=>AO(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Uz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>AO(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Uz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Uz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?WVe(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 UNn=class extends Ej{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 xHe=class extends Ej{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=wj(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 Tkl=Ge(iI());function ExA(e){return q$s.includes(e)}var LNn=class extends Ej{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&&(ExA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${q$s.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 Tkl.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 qNn=class extends Ej{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return WVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var Dkl=Ge(iI());function wxA(e){return L$s.includes(e)}var WNn=class extends Ej{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&&(wxA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${L$s.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 Dkl.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 Rkl=Ge(iI());function xxA(e){return W$s.includes(e)}var GNn=class extends Ej{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 Rkl.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&&(xxA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${W$s.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new xHe({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 Fkl=Ge(iI());var HNn=class extends Ej{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,Fkl.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var hEt=class extends T5{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=H3t(this.input);let t=wj(this.input,this.context.document);t?.enum!=null&&wHe(t)&&(this.maybeEnumConverterNode=new xHe({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=wj(this.input,this.context.document);if(r!=null)return new zw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var zw=class e extends T5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),wHe(this.input)&&Ckl(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=H3t(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 hEt({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 zNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(Ikl(this.input))this.typeShapeNode=new QNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new VNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(K$s(this.input)&&this.input.allOf!=null)this.typeShapeNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new xHe({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":K$s(this.input)&&(this.typeShapeNode=new $3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":EHe(this.input)&&(this.typeShapeNode=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":xkl(this.input)&&(this.typeShapeNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":Pkl(this.input)&&(this.typeShapeNode=new LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":jkl(this.input)&&(this.typeShapeNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":Bkl(this.input)&&(this.typeShapeNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":Skl(this.input)&&(this.typeShapeNode=new qNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new Nkl.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 $3t({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 HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!EHe(this.input)&&this.input==null||EHe(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=AO(t)?.map(n=>this.nullable?WVe(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 PHe(e){if(e!=null)return G3t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Tve=class extends Ej{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new zw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=Ekl(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 kkl(e,t){return Sy(e)?qz(e,t,void 0):e}var J$s=Ge(iI());function $Nn(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 zkl=Ge(vAs(),1),K3t=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=zkl.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 PxA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var KNn=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 zw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),PxA(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=mNn(r.$ref,this.context.document):i=r,i!=null)return[t,new q3t({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=AO(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 JNn=class extends zw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=wj(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=wj(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 YNn=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=wj(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new hEt({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=K3t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new zw({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 JNn({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?{[eF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[eF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:AO(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ile([this.method,this.path,this.contentType,"request"].join("_"));return $Nn({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 J$s.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof hEt)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=AO(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 J$s.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 XNn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=kkl(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 YNn({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])=>AO(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>AO(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 Qkl={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 Mkl(e,t){if(Sy(e)){let r=qz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ZNn=Ge(iI());var Vkl="application/json";var Ukl="application/octet-stream";function Lkl(e,t){return e===t||t===eF||e===eF}var lRr=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)Lkl(a,o)&&(n.add(a),this.examples?.push(new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,vHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Bve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,vHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Bve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,vHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Bve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,vHe(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[eF];if(o!=null)for(let s of o)this.examples?.push(new Bve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,vHe(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=K3t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=Vkl,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 zw({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=Ukl,this.contentSubtype=wj(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 zw({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=xNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[eF]??=[],r[eF]=[{value:this.input.example}]);let n=wj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=xNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[eF]??=[],r[eF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[eF]??=[],r[eF]?.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!==eF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==eF);Object.keys(r).every(a=>a===eF)||this.matchExamplesByIndex(o,s),!i.has(eF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return AO(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new ZNn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return AO(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ile([this.method,this.path,this.statusCode,"response"].join("_"));return $Nn({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 ZNn.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 ZNn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var pRr=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=Mkl(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new lRr({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 lRr({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 ekn=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 pRr({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 pRr({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 MNn(PHe(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=AO(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??Qkl[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 IHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Bve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,vHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=_He(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new FNn({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=jNn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Tve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new NNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new XNn({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 ekn({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 W3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new uRr({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 uRr({input:{[lNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new RNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>PNn({namespace:AO(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 DNn({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=hkl(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:dkl(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:PHe(this.queryParameters)?.flat(),headers:PHe(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:PHe(this.pathParameters)?.flat(),queryParameters:PHe(this.queryParameters)?.flat(),requestHeaders:PHe(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 J3t=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=_He(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 IHe({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 IHe({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 IHe({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 IHe({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 IHe({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 tkn(e){return"payloads"in e}var rkn=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 J3t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:_He(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=>{tkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var nkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[DNl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||jNn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Tve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return G3t(this.globalHeaders,this.requiredProperties)?.flat()}};function qkl(e,t){if(Sy(e)){let r=qz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ikn=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=qkl(o,this.context.document);if(s!=null)return new J3t({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=>{tkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var okn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=_He(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new W3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new SNn({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 rkn({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 ikn({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 KNn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=fR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=SNl({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 Y$s(e,t){if(e instanceof IQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof tA))return;let r=new ple(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new cNn,generatedTypes:{}},c=new okn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Ekt(o,c.convert())}return o}Aw();Ir();var r6l=Ge(eKs(),1),n6l=Ge(Wkn(),1),C2n=require("fs/promises"),i6l=Ge(require("http"),1),o6l=Ge(require("path"),1);var UVl=require("events"),Jkn=Ge(require("fs"),1),xEt=Ge(require("path"),1);var wVl=Ge(require("os"),1),xVl=300,RHe=20,NRr=1e7,PVl=wVl.default.platform();var VTA=PVl==="darwin",bJs=PVl==="win32",FHe=VTA||bJs,IVl=3e3,CVl=2e4,_Js=1250;var Nve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Nve||(Nve={}));var wEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(wEt||(wEt={}));var kRr;(function(e){e.CHANGE="change",e.ERROR="error"})(kRr||(kRr={}));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 VU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(VU||(VU={}));var UTA=(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},Gkn=UTA;var wJs=Ge(require("fs"),1),$kn=Ge(require("path"),1);var yb=Ge(require("fs"),1),Wz=require("util");var HVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},kve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var vJs=Ge(require("process"),1),SVl=vJs.default.getuid?!vJs.default.getuid():!1,jVl=1e4,N5=()=>{};var zRr={isChangeErrorOk:e=>{if(!zRr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!SVl&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!zRr.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(!zRr.isNodeError(e))throw e;if(!zRr.isChangeErrorOk(e))throw e}},xj=zRr;var OJs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=jVl,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()}}}}},BVl=new OJs;var $Ve=(e,t)=>function(n){return function i(...o){return BVl.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)})}},KVe=(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 LTA={attempt:{chmod:HVe((0,Wz.promisify)(yb.default.chmod),xj.onChangeError),chown:HVe((0,Wz.promisify)(yb.default.chown),xj.onChangeError),close:HVe((0,Wz.promisify)(yb.default.close),N5),fsync:HVe((0,Wz.promisify)(yb.default.fsync),N5),mkdir:HVe((0,Wz.promisify)(yb.default.mkdir),N5),realpath:HVe((0,Wz.promisify)(yb.default.realpath),N5),stat:HVe((0,Wz.promisify)(yb.default.stat),N5),unlink:HVe((0,Wz.promisify)(yb.default.unlink),N5),chmodSync:kve(yb.default.chmodSync,xj.onChangeError),chownSync:kve(yb.default.chownSync,xj.onChangeError),closeSync:kve(yb.default.closeSync,N5),existsSync:kve(yb.default.existsSync,N5),fsyncSync:kve(yb.default.fsync,N5),mkdirSync:kve(yb.default.mkdirSync,N5),realpathSync:kve(yb.default.realpathSync,N5),statSync:kve(yb.default.statSync,N5),unlinkSync:kve(yb.default.unlinkSync,N5)},retry:{close:$Ve((0,Wz.promisify)(yb.default.close),xj.isRetriableError),fsync:$Ve((0,Wz.promisify)(yb.default.fsync),xj.isRetriableError),open:$Ve((0,Wz.promisify)(yb.default.open),xj.isRetriableError),readFile:$Ve((0,Wz.promisify)(yb.default.readFile),xj.isRetriableError),rename:$Ve((0,Wz.promisify)(yb.default.rename),xj.isRetriableError),stat:$Ve((0,Wz.promisify)(yb.default.stat),xj.isRetriableError),write:$Ve((0,Wz.promisify)(yb.default.write),xj.isRetriableError),writeFile:$Ve((0,Wz.promisify)(yb.default.writeFile),xj.isRetriableError),closeSync:KVe(yb.default.closeSync,xj.isRetriableError),fsyncSync:KVe(yb.default.fsyncSync,xj.isRetriableError),openSync:KVe(yb.default.openSync,xj.isRetriableError),readFileSync:KVe(yb.default.readFileSync,xj.isRetriableError),renameSync:KVe(yb.default.renameSync,xj.isRetriableError),statSync:KVe(yb.default.statSync,xj.isRetriableError),writeSync:KVe(yb.default.writeSync,xj.isRetriableError),writeFileSync:KVe(yb.default.writeFileSync,xj.isRetriableError)}},TVl=LTA;var Hkn=Ge(require("fs"),1),QRr=Ge(require("path"),1);var EJs=()=>{};var qTA=()=>{let e=EJs,t=EJs,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}},DVl=qTA;var WTA=()=>{let{promise:e,resolve:t,isPending:r}=DVl(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},RVl=WTA;var FVl={then:e=>{e()}};var NVl=e=>Array.isArray(e)?e:[e],kVl=e=>typeof e=="function";var GTA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=NVl(o).map(Z=>kVl(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}=RVl(),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||He(X,Se+1)))},ie=(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===QRr.default.sep?"":QRr.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(),Hkn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||FVl).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()})}))},He=(Z,X)=>{x(),Hkn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Hkn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=QRr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ie(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=QRr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},zVl=GTA;var zve={lang:{debounce:Gkn,attempt:e=>{try{return e()}catch(t){return zve.lang.castError(t)}},castArray:e=>zve.lang.isArray(e)?e:[e],castError:e=>zve.lang.isError(e)?e:zve.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(zve.lang.isNaN(e))return zve.lang.isNaN(t);if(zve.lang.isPrimitive(e)||zve.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split($kn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?wJs.default.realpathSync.native(e):wJs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===$kn.default.sep&&t.length-e.length>$kn.default.sep.length,poll:(e,t=CVl)=>TVl.retry.stat(t)(e,{bigint:!0}).catch(zve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await zVl(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=zve;var Kkn=Ge(require("path"),1);var xJs=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=xVl){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??RHe:Math.min(1,this.options.depth??RHe),s=this.options.limit??NRr,[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&&!FHe&&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(Kkn.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(Kkn.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=wEt.CHANGE,r){if(this.watcher.isClosed())return;let n=Kkn.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){bJs&&t.code==="EPERM"?this.onWatcherChange(wEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(kRr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(kRr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(wEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&FHe&&this.options.native!==!1?this.options.depth??RHe:Math.min(1,this.options.depth??RHe),n=this.options.limit??NRr,[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(wEt.CHANGE,a,t)}))}}},QVl=xJs;var UU={interval:100,intervalId:void 0,fns:new Map,init:()=>{UU.intervalId||(UU.intervalId=setInterval(UU.resolve,UU.interval))},reset:()=>{UU.intervalId&&(clearInterval(UU.intervalId),delete UU.intervalId)},add:(e,t)=>{UU.fns.set(e,Date.now()+t),UU.init()},remove:e=>{UU.fns.delete(e)},resolve:()=>{if(!UU.fns.size)return UU.reset();let e=Date.now();for(let[t,r]of UU.fns)r>=e||(UU.remove(t),t())}},MRr=UU;var VRr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=_Js){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),MRr.remove(u)},u=()=>{c(),a()};MRr.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=_Js){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),MRr.remove(u)},u=()=>{c(),a()};MRr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Nve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Nve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Nve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Nve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};VRr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};VRr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var MVl=VRr;var PJs=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}},IJs=PJs;var CJs=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}},VVl=CJs;var SJs=class{constructor(){this.inos={},this.paths=new IJs,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 VVl(n)}reset(){this.inos={},this.paths=new IJs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Nve.FILE:Nve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},jJs=SJs;var BJs=class e extends UVl.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(VU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(VU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(VU.READY,i)),this._locker=new MVl(this),this._roots=new Set,this._poller=new jJs,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(VU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(VU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(VU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(VU.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 QVl(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=xEt.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??RHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&FHe&&l.options.native!==!1)))return!0;if(!FHe)break;let u=xEt.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||FHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Jkn.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=xEt.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||FHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??RHe,a=r.limit??NRr,[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(VU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(VU.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=xEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new jJs,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??IVl},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(VU.CLOSE,a),Jkn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(VU.CLOSE,a),Jkn.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=xEt.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=xEt.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(VU.ALL,n),r.readdirMap=void 0,this.ready())}},Ykn=BJs;pzn();Ir();var _5t=require("fs/promises"),$Ul=require("os"),KUl=Ge(require("path"),1),hDA=".fern",gDA="logs";function yDA(){return"cli@3.95.3"}var BEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Pt(vr.of((0,$Ul.homedir)()),Xe.of(hDA)),r=Pt(t,Xe.of(gDA));await qr(r)||await(0,_5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Pt(r,Xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${KUl.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2118
2118
|
`);await(0,_5t.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)+`
|
|
2119
2119
|
`;try{await(0,_5t.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:yDA(),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 ZJs={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function JUl(e){let t=ADA();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:ZJs});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",...ZJs}});let p=/^\/_local\/(.*)/.exec(l.pathname);return c.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:ZJs}):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 BEt.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 ADA(){return globalThis.Bun}Ir();var FXs=Ge(cYs(),1),$8l=Ge(EXs(),1),k5=require("fs/promises"),K8l=require("os"),J8l=Ge(iR(),1),Y8l=Ge(G8l(),1),O2n=process.platform==="win32",RXs=at.cyan("[docs]:"),$kA="etag",KkA=23,H8l=e=>e.padEnd(KkA," "),JkA="preview",YkA="app-preview",XkA="bundle",ZkA=".next",ezA="standalone",tzA=".fern",rzA="packages/fern-docs/bundle/.next/server/instrumentation.js",nzA=".npmrc",izA=".pnpmfile.cjs",ozA="pnpm-workspace.yaml",szA='Cannot find matching keyid: {"signatures":';function azA(){return Pt(vr.of((0,K8l.homedir)()),Xe.of(tzA))}function z5t({app:e=!1}){return Pt(azA(),Xe.of(e?YkA:JkA))}function HHe({app:e=!1}){return Pt(z5t({app:e}),Xe.of(e?ZkA:XkA))}function _Fr({app:e=!1}){return Pt(HHe({app:e}),Xe.of(ezA))}function czA({app:e=!1}){return Pt(_Fr({app:e}),Xe.of(rzA))}function uzA({app:e=!1}){return Pt(_Fr({app:e}),Xe.of(ozA))}function lzA({app:e=!1}){return Pt(_Fr({app:e}),Xe.of(izA))}function pzA({app:e=!1}){return Pt(_Fr({app:e}),Xe.of(nzA))}function MEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function fzA({app:e=!1}){return Pt(z5t({app:e}),Xe.of($kA))}var mzA=`module.exports = {
|
|
2120
2120
|
hooks: {
|
|
@@ -2917,7 +2917,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
2917
2917
|
Run ${at.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
2918
2918
|
Run ${at.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),G2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function w0c({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!yQd(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+=`
|
|
2919
2919
|
${await REx(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+at.dim(a.currentVersion)+at.reset(" \u2192 ")+at.green(a.latestVersion);return i+=`
|
|
2920
|
-
`,n?G2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function REx(e){let r=await new gQd.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 FEx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await bQd({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 UG({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 bQd({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 UG({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 bQd({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 LG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function _Qd(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=y5(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 aJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await FEx({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(..._Qd(u,c,t.logger));else s.push(..._Qd(a.versions,void 0,t.logger))}return s}async function Ght({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:cjr(e.packageName,{version:t?"prerelease":"latest"})}var vQd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],cJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;stdoutRedirector=new sJo;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new w_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.95.
|
|
2920
|
+
`,n?G2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function REx(e){let r=await new gQd.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 FEx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await bQd({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 UG({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 bQd({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 UG({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 bQd({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 LG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function _Qd(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=y5(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 aJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await FEx({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(..._Qd(u,c,t.logger));else s.push(..._Qd(a.versions,void 0,t.logger))}return s}async function Ght({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:cjr(e.packageName,{version:t?"prerelease":"latest"})}var vQd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],cJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;stdoutRedirector=new sJo;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new w_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.95.3"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new tx}failWithoutThrowing(t,r){this.didSucceed=!1,oIr({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)+`
|
|
2921
2921
|
`),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await F2t()).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 AQd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
2922
2922
|
`)||(r+=`
|
|
2923
2923
|
`),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=lAs(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 H3r(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 tx}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await F2t()).sendEvent(t)}logger=$V((t,...r)=>this.log(t,...r));stderr=$V((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=OQd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?OQd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=vQd[this.numTasks++%vQd.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=>oz.indexOf(i.level)>=oz.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 Ght({cliEnvironment:this.environment,includePreReleases:t}),n=y5(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await aJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await O0c({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(`
|