fern-api 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.cjs +30 -23
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1440,7 +1440,7 @@ ${Zea.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Lbi(th
1440
1440
  `+XQe.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?XQe.default.cyan(uta(t,this.opt.mask)):XQe.default.italic(XQe.default.dim("[hidden]")):this.opt.mask?uta(t,this.opt.mask):XQe.default.italic(XQe.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 lor=we(ow(),1);var ara=we(E0i(),1),uor=require("child_process"),lHe=require("fs"),aor=we(require("path"),1),ura=we(require("os"),1),cra=require("crypto"),ovi=we(ora(),1);var ior=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var K1t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var oor=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var sor=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function cor(e="",t,r){let n=new svi(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 sra(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function M7p(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 svi=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=M7p(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??ura.default.tmpdir(),r=(0,cra.randomUUID)(),n=sra(this.fileOptions.prefix),i=sra(this.fileOptions.postfix),o=`${n}${r}${i}`,s=aor.default.resolve(t,o),a=aor.default.resolve(t)+aor.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let u={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(u.mode=this.fileOptions.mode),(0,lHe.writeFileSync)(this.tempFile,this.text,u)}catch(t){throw new ior(t)}}readTemporaryFile(){try{let t=(0,lHe.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,ara.detect)(t)??"utf8";ovi.default.encodingExists(r)||(r="utf8"),this.text=ovi.default.decode(t,r)}}catch(t){throw new oor(t)}}removeTemporaryFile(){try{(0,lHe.unlinkSync)(this.tempFile)}catch(t){throw new sor(t)}}launchEditor(){try{let t=(0,uor.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new K1t(t)}}launchEditorAsync(t){try{(0,uor.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new K1t(r)}}};var lra=we(o2(),1);var J1t=class extends sw{_run(t){this.done=t,this.editorResult=new lra.Subject;let r=cS(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"?lor.default.dim("Received"):lor.default.dim("Press <enter> to launch your preferred editor."),t&&(r=lor.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),cor(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 hra=require("stream");var dra=we(require("readline"),1),mra=we(fra(),1),r2e=class{constructor(t){this.rl||=dra.default.createInterface(U7p(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 U7p(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 mra.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var Y1t=class extends r2e{constructor(t={}){super(t),this.log=new hra.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return F1t(this.rl,this.bottomBar.split(`
1441
1441
  `).length),this}updateBottomBar(t){return F1t(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+`
1442
1442
  `}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&&Dir(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Bf=we(o2(),1),yra=we(t1t(),1);var por=we(o2(),1),gra=we(t1t(),1),dor=function(e,t,r){return typeof e[t]!="function"?(0,por.of)(e):(0,por.from)((0,gra.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Ara={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}},pHe=class extends r2e{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,Bf.from)(t):(0,Bf.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,Bf.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,Bf.from)([t]),this.process=n.pipe((0,Bf.concatMap)(this.processQuestion.bind(this)),(0,Bf.publish)()),this.process.connect(),this.process.pipe((0,Bf.reduce)((i,o)=>(Ara.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,Bf.defer)(()=>(0,Bf.of)(t).pipe((0,Bf.concatMap)(this.setDefaultType.bind(this)),(0,Bf.concatMap)(this.filterIfRunnable.bind(this)),(0,Bf.concatMap)(()=>dor(t,"message",this.answers)),(0,Bf.concatMap)(()=>dor(t,"default",this.answers)),(0,Bf.concatMap)(()=>dor(t,"choices",this.answers)),(0,Bf.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Bf.defer)(()=>(0,Bf.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Bf.defer)(()=>(0,Bf.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Ara.get(this.answers,t.name)!==void 0)return Bf.EMPTY;if(t.when===!1)return Bf.EMPTY;if(typeof t.when!="function")return(0,Bf.of)(t);let{answers:r}=this;return(0,Bf.defer)(()=>(0,Bf.from)((0,yra.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Bf.filter)(n=>n!=null)))}};function bra(e){let t=function(r,n){let i;try{i=new pHe(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",N1t),this.registerPrompt("input",YQe),this.registerPrompt("number",Q1t),this.registerPrompt("confirm",k1t),this.registerPrompt("rawlist",M1t),this.registerPrompt("expand",L1t),this.registerPrompt("checkbox",U1t),this.registerPrompt("password",z1t),this.registerPrompt("editor",J1t)},t.restoreDefaultPrompts(),t}var uvi=bra();function V7p(e,t){uvi.registerPrompt(e,t)}function q7p(){uvi.restoreDefaultPrompts()}var G7p={prompt:uvi,ui:{BottomBar:Y1t,Prompt:pHe},createPromptModule:bra,registerPrompt:V7p,restoreDefaultPrompts:q7p,Separator:pF},Hp=G7p;var fHe=require("path");function Era(){let e=W7p();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function W7p(e=process.argv[1]?(0,fHe.dirname)(process.argv[1]):process.cwd(),t=fHe.sep==="\\"){let r=t?vra(e):e;return n=>{if(!n)return;let i=t?vra(n):n,{dir:o,base:s,ext:a}=fHe.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let u=decodeURIComponent(s);o||(o=".");let c=o.lastIndexOf("/node_modules");if(c>-1)return`${o.slice(c+14).replace(/\//g,".")}:${u}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${u}`:u}return u}}function vra(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var cvi=e=>{if("flags"in e){let t=Ira(e.flags),r=wra(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,lvi(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,$7p(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function $7p(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 Ira=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,X1t(r)]).filter(([,t])=>t!==void 0)),wra=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?lvi(n):void 0]}))};var X1t=e=>e===void 0?void 0:e.variant??e.enabled,lvi=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var mor="0123456789abcdef",hor=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+=mor.charAt(this.bytes[r]>>>4),t+=mor.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+=mor.charAt(this.bytes[r]>>>4),t+=mor.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}},pvi=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??H7p()}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 hor.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,hor.ofInner(t)}},H7p=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),Cra,yJ=()=>K7p().toString(),K7p=()=>(Cra||(Cra=new pvi)).generate();var dF=(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 J7p=["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"],_ra=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return J7p.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var X7p=Array.isArray,xra=Object.prototype,j_A=xra.hasOwnProperty,fvi=xra.toString,dvi=X7p||function(e){return fvi.call(e)==="[object Array]"};var mvi=e=>e===Object(e)&&!dvi(e);var dHe=e=>e===void 0,Z1t=e=>fvi.call(e)=="[object String]",Sra=e=>Z1t(e)&&e.trim().length===0;var Ora=e=>fvi.call(e)=="[object Number]"&&e===e;var hvi=e=>e instanceof Error;function eBt(e){return e===null||typeof e!="object"}function n2e(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function Bra(e){return n2e(e,"ErrorEvent")}function gor(e){return!dHe(Event)&&Z7p(e,Event)}function Pra(e){return n2e(e,"Object")}function Z7p(e,t){try{return e instanceof t}catch{return!1}}function tBt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),Ora(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),tBt(i||r,t,r,n))}var eWp=864e5,Aor=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=tBt(t.bucketSize,0,100,t._logger),this._refillRate=tBt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=tBt(t.refillInterval,0,eWp,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 yor=class{add(t){let r=yJ();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 tWp(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var Tra=(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=>Tra(`${e} ${o}`,t,r)}},rWp=e=>e();function Dra(e,t=rWp){return Tra(e,t,tWp())}var hHe="Mobile",vor="iOS",mHe="Android",Rra="Tablet",$_A=mHe+" "+Rra;var nWp="Apple",H_A=nWp+" Watch",Fra="Safari",Eor="BlackBerry",jra="Samsung",iWp=jra+"Browser",oWp=jra+" Internet",Ior="Chrome",sWp=Ior+" OS",aWp=Ior+" "+vor,Nra="Internet Explorer",uWp=Nra+" "+hHe,Avi="Opera",K_A=Avi+" Mini",Qra="Edge",cWp="Microsoft "+Qra,yvi="Firefox",lWp=yvi+" "+vor,bvi="Nintendo",vvi="PlayStation",bor="Xbox",pWp=mHe+" "+hHe,fWp=hHe+" "+Fra,rBt="Windows",dWp=rBt+" Phone";var kra="Generic",J_A=kra+" "+hHe.toLowerCase(),Y_A=kra+" "+Rra.toLowerCase(),mWp="Konqueror",UP="(\\d+(\\.\\d+)?)",gvi=new RegExp("Version/"+UP),X_A=new RegExp(bor,"i"),Z_A=new RegExp(vvi+" \\w+","i"),exA=new RegExp(bvi+" \\w+","i"),hWp=new RegExp(Eor+"|PlayBook|BB10","i"),gWp={"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 txA={[uWp]:[new RegExp("rv:"+UP)],[cWp]:[new RegExp(Qra+"?\\/"+UP)],[Ior]:[new RegExp("("+Ior+"|CrMo)\\/"+UP)],[aWp]:[new RegExp("CriOS\\/"+UP)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+UP)],[Fra]:[gvi],[fWp]:[gvi],[Avi]:[new RegExp("("+Avi+"|OPR)\\/"+UP)],[yvi]:[new RegExp(yvi+"\\/"+UP)],[lWp]:[new RegExp("FxiOS\\/"+UP)],[mWp]:[new RegExp("Konqueror[:/]?"+UP,"i")],[Eor]:[new RegExp(Eor+" "+UP),gvi],[pWp]:[new RegExp("android\\s"+UP,"i")],[oWp]:[new RegExp(iWp+"\\/"+UP)],[Nra]:[new RegExp("(rv:|MSIE )"+UP)],Mozilla:[new RegExp("rv:"+UP)]};var rxA=[[new RegExp(bor+"; "+bor+" (.*?)[);]","i"),e=>[bor,e&&e[1]||""]],[new RegExp(bvi,"i"),[bvi,""]],[new RegExp(vvi,"i"),[vvi,""]],[hWp,[Eor,""]],[new RegExp(rBt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[dWp,""];if(new RegExp(hHe).test(t)&&!/IEMobile\b/.test(t))return[rBt+" "+hHe,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=gWp[n]||"";return/arm/i.test(t)&&(i="RT"),[rBt,i]}return[rBt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[vor,t.join(".")]}return[vor,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=dHe(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+mHe+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+mHe+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[mHe,t.join(".")]}return[mHe,""]}],[/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/,[sWp,""]],[/Linux|debian/i,["Linux",""]]];var Mra="utf8";function Lra(e,t){if(!e||typeof e!="string"||AWp(e))throw new Error(t)}function AWp(e){return e.trim().length===0}function Ura(e){return e?.replace(/\/+$/,"")}async function zra(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 wor(){return new Date().toISOString()}function i2e(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Vra=e=>e instanceof Error;function Evi(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Cor=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 qra(){return"CompressionStream"in globalThis}async function Ivi(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 o2e=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()}},gHe=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function Gra(e){if(e instanceof o2e){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 wvi(e){return typeof e=="object"&&(e instanceof o2e||e instanceof gHe)}function Wra(e){return typeof e=="object"&&e instanceof o2e&&e.status===413}var nBt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new yor,this._events=new Cor,this._isInitialized=!1,Lra(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Ura(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:wvi},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=Dra("[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=!qra()||(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(dF.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(dF.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(dF.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":"",u=`${this.host}/flags/?v=2${a}`,c={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(c.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(c)};return this._logger.info("Flags URL",u),this.fetchWithRetry(u,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:cvi(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof o2e)return{type:"api_error",statusCode:t.status};if(t instanceof gHe){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 u=X1t(a.response);return u===void 0&&(u=!1),{response:u,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 u=a[t];return u===void 0?null:u}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 u=await this.getFlags(t,r,n,i,a);if(!u.success)return;let c=u.response;return c.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"),c.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:c?.requestId,quotaLimited:c.quotaLimited}):c}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(dF.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(dF.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(dF.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}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(dF.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(dF.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=i2e(()=>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:wor()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,u=this.disableCompression?null:await Ivi(s,this.isDebug),c={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...u!==null&&{"Content-Encoding":"gzip"}},body:u||s};try{await this.fetchWithRetry(a,c)}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:wor(),uuid:n?.uuid?n.uuid:yJ()};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 Gra(t)})}async flush(){let t=Evi([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),Evi([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(dF.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=async()=>{let m=(this.getPersistedProperty(dF.Queue)||[]).slice(i.length);this.setPersistedProperty(dF.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:wor()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),c=`${this.host}/batch/`,l=this.disableCompression?null:await Ivi(u,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||u},d={retryCheck:f=>Wra(f)?!1:wvi(f)};try{await this.fetchWithRetry(c,p,d)}catch(f){if(Wra(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 gHe||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let u=new AbortController;return setTimeout(()=>u.abort(),a),u.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,Mra)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await zra(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(c){throw new gHe(c)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new o2e(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(dF.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!wvi(i))throw i;await Gra(i)}};return Promise.race([new Promise((i,o)=>{i2e(()=>{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 mF={};X(mF,{DOMExceptionCoercer:()=>Svi,ErrorCoercer:()=>Ovi,ErrorEventCoercer:()=>Bvi,ErrorPropertiesBuilder:()=>Cvi,EventCoercer:()=>Dvi,ObjectCoercer:()=>Tvi,PrimitiveCoercer:()=>Rvi,PromiseRejectionEventCoercer:()=>Fvi,ReduceableCache:()=>jvi,StringCoercer:()=>Pvi,chromeStackLineParser:()=>_vi,createDefaultStackParser:()=>DWp,createStackParser:()=>nna,geckoStackLineParser:()=>xvi,nodeStackLineParser:()=>Zra,opera10StackLineParser:()=>Jra,opera11StackLineParser:()=>Yra,reverseAndStripFrames:()=>rna,winjsStackLineParser:()=>Kra});var _or,$ra,xor;function Hra(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return xor&&r.length===$ra||($ra=r.length,xor=r.reduce((n,i)=>{_or||(_or={});let o=_or[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let c=s[a]?.filename,l=t[i];if(c&&l){n[c]=l,_or[i]=[c,l];break}}}return n},{})),xor}var bWp=4,Cvi=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(r),u=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(u,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&dvi(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?r.skipFirstLines: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(t){return{chunkIdMap:Hra(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=bWp){let u=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,u)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var pS="?";function bJ(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?pS:r,in_app:!0};return dHe(n)||(o.lineno=n),dHe(i)||(o.colno=i),o}var Sor=(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]:pS,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var vWp=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,EWp=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,IWp=/\((\S*)(?::(\d+))(?::(\d+))\)/,_vi=(e,t)=>{let r=vWp.exec(e);if(r){let[,i,o,s]=r;return bJ(t,i,pS,+o,+s)}let n=EWp.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=IWp.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Sor(n[1]||pS,n[2]);return bJ(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var wWp=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,CWp=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,xvi=(e,t)=>{let r=wWp.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=CWp.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]||pS;return[o,i]=Sor(o,i),bJ(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var _Wp=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Kra=(e,t)=>{let r=_Wp.exec(e);return r?bJ(t,r[2],r[1]||pS,+r[3],r[4]?+r[4]:void 0):void 0};var xWp=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,Jra=(e,t)=>{let r=xWp.exec(e);return r?bJ(t,r[2],r[3]||pS,+r[1]):void 0},SWp=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Yra=(e,t)=>{let r=SWp.exec(e);return r?bJ(t,r[5],r[3]||r[4]||pS,+r[1],+r[2]):void 0};var OWp=/^\s*[-]{4,}$/,BWp=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,Zra=(e,t)=>{let r=e.match(BWp);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||pS,o=s?`${s}.${a}`:a);let u=r[2]?.startsWith("file://")?r[2].slice(7):r[2],c=r[5]==="native";return u?.match(/\/[A-Z]:/)&&(u=u.slice(1)),!u&&r[5]&&!c&&(u=r[5]),{filename:u?decodeURI(u):void 0,module:void 0,function:o,lineno:Xra(r[3]),colno:Xra(r[4]),in_app:PWp(u||"",c),platform:t}}if(e.match(OWp))return{filename:e,platform:t}};function PWp(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 Xra(e){return parseInt(e||"",10)||void 0}var ena=/\(error: (.*)\)/,tna=50;function rna(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,tna).map(r=>({...r,filename:r.filename||TWp(t).filename,function:r.function||pS}))}function TWp(e){return e[e.length-1]||{}}function DWp(){return nna("web:javascript",_vi,xvi)}function nna(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1443
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=ena.test(a)?a.replace(ena,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=tna)break}}return rna(i)}}var Svi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Z1t(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 n2e(t,"DOMException")}isDOMError(t){return n2e(t,"DOMError")}};var Ovi=class{match(t){return hvi(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 Bvi=class{constructor(){}match(t){return Bra(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 RWp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Pvi=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(RWp);return i&&(r=i[1],n=i[2]),[r,n]}};var ina=["fatal","error","warning","log","info","debug"];function Oor(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 Tvi=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 gor(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=Oor(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Z1t(t)&&!Sra(t)&&ina.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Vra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Dvi=class{match(t){return gor(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Oor(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Rvi=class{match(t){return eBt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Fvi=class{match(t){return n2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return eBt(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(eBt(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 jvi=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 ana=require("fs"),una=require("readline"),Bor=new mF.ReduceableCache(25),cna=new mF.ReduceableCache(20),Nvi=7,FWp=1e3,jWp=1e4;async function lna(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"||MWp(s)||LWp(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(cna.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=zWp(o);if(s.every(u=>UWp(i,u)))continue;let a=VWp(Bor,i,{});n.push(NWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&QWp(e,Bor),Bor.reduce(),e}function NWp(e,t,r){return new Promise(n=>{let i=(0,ana.createReadStream)(e),o=(0,una.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){cna.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=qWp(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function QWp(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;kWp(r.lineno,r,n)}}function kWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=pna(e);i<e;i++){let o=r[i];if(o===void 0)return void ona(t);t.pre_context.push(o)}if(r[e]===void 0)return void ona(t);t.context_line=r[e];let n=fna(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 ona(e){delete e.pre_context,delete e.context_line,delete e.post_context}function MWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function LWp(e){return e.lineno!==void 0&&e.lineno>jWp||e.colno!==void 0&&e.colno>FWp}function UWp(e,t){let r=Bor.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 zWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=sna(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+Nvi:(i.push(n),n=sna(o)),t++}return i}function sna(e){return[pna(e),fna(e)]}function pna(e){return Math.max(1,e-Nvi)}function fna(e){return e+Nvi}function VWp(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function qWp(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 GWp(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 dna(e,t){globalThis.process?.on("uncaughtException",GWp(e,t))}function mna(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var WWp=2e3,Oq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Aor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return mvi(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||yJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(dna(this.onException.bind(this),this.onFatalError.bind(this)),mna(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(WWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var hna="5.26.2";var iBt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function gna(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 $Wp=6e4,HWp=1152921504606847e3,KWp=["is_not"],AHe=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},vh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},vJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Por=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()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}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){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof vJ||c instanceof vh?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){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new vh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new vh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new vh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}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){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new vh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new vh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new vh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new vh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new vh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new vh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new vh(`Dependency '${u}' 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,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof vJ)throw l;if(l instanceof vh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new vh("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=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?Ena(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):vna(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await Ana(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await Ana(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}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min($Wp,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 AHe(`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 AHe(`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 AHe(`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.flagDefinitionsLoadedAt=Date.now(),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 AHe&&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=i2e(()=>{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 Ana(e,t,r=""){let n=await gna(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/HWp}function vna(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 vh("Operator is_not_set is not supported")}else throw new vh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!KWp.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=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 yna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return yna(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new vh("Date operations cannot be performed on boolean values");let c=YWp(String(i));if(c==null&&(c=bna(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=bna(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function JWp(e,t){if(!(e in t))throw new vJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function Ena(e,t,r,n=!1){let i=String(e.value);JWp(i,r);let o=r[i];return Ina(o,t,r,n)}function Ina(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 u=Ina(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=Ena(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 u=vna(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("can't match cohort without a given cohort property value");return i==="AND"}function yna(e){try{return new RegExp(e),!0}catch{return!1}}function bna(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 vh(`${e} is in an invalid date format`)}throw new vh(`The date provided ${e} must be a string, number, or date object`)}function YWp(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 Tor=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var XWp=100,wna=3e4,ZWp=5e4,Dor=class extends nBt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Tor,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,XWp):wna,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 Por({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 Oq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||ZWp}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 hna}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."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),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."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),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=wna){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)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let _=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:_}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,b,E,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let _=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(_){m=!0;let C=_.value;b=w.id,v="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:_.payload??void 0}}}catch(_){if(_ instanceof vJ||_ instanceof vh)this._logger?.info(`${_.name} when computing flag locally: ${t}: ${_.message}`);else throw _}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=iBt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(iBt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(iBt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(iBt.FLAG_MISSING);else{b=C.metadata?.id,E=C.metadata?.version,v=C.reason?.description??C.reason?.code;let x;if(C.metadata?.payload!==void 0)try{x=JSON.parse(C.metadata.payload)}catch{x=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:x}}_.length>0&&(y=_.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,_=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(_)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(_):this.distinctIdHasSentFlagCalls[r]=[_];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:E,$feature_flag_reason:v,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let x=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();x!==void 0&&(C.$feature_flag_definitions_loaded_at=x)}y&&(C.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}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){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}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){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!u){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}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()}enterContext(t,r){this.context?.enter(t,r)}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=i2e(()=>{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(Pra(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);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 c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,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}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!Oq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Oq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Oq.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:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=yJ(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[b,E]of Object.entries(h))A[`$feature/${b}`]=E;let y=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&_ra(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,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 Cna=require("async_hooks"),Ror=class{constructor(){this.storage=new Cna.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var _na="posthog-node";function e$p(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 u=s.tags[Qvi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$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:u,properties:f}),s}}var Qvi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=_na,this.name=_na,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(e$p(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Oq.errorPropertiesBuilder=new mF.ErrorPropertiesBuilder([new mF.EventCoercer,new mF.ErrorCoercer,new mF.ObjectCoercer,new mF.StringCoercer,new mF.PrimitiveCoercer],mF.createStackParser("node:javascript",mF.nodeStackLineParser),[Era(),lna]);var yHe=class extends Dor{getLibraryId(){return"posthog-node"}initializeContext(){return new Ror}};var For=class{posthog;constructor({posthogApiKey:t}){this.posthog=new yHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.13.0",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var oBt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var bHe=require("fs/promises"),Pna=require("os"),Tna=require("path");var xna=we(require("crypto")),Nor=new Uint8Array(256),jor=Nor.length;function kvi(){return jor>Nor.length-16&&(xna.default.randomFillSync(Nor),jor=0),Nor.slice(jor,jor+=16)}var Sna=/^(?:[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 t$p(e){return typeof e=="string"&&Sna.test(e)}var Mvi=t$p;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function Ona(e,t=0){return fS[e[t+0]]+fS[e[t+1]]+fS[e[t+2]]+fS[e[t+3]]+"-"+fS[e[t+4]]+fS[e[t+5]]+"-"+fS[e[t+6]]+fS[e[t+7]]+"-"+fS[e[t+8]]+fS[e[t+9]]+"-"+fS[e[t+10]]+fS[e[t+11]]+fS[e[t+12]]+fS[e[t+13]]+fS[e[t+14]]+fS[e[t+15]]}var Bna=we(require("crypto")),Lvi={randomUUID:Bna.default.randomUUID};function r$p(e,t,r){if(Lvi.randomUUID&&!t&&!e)return Lvi.randomUUID();e=e||{};let n=e.random||(e.rng||kvi)();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 Ona(n)}var EC=r$p;var n$p="id",i$p=".fern",sBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new yHe(r),this.userId=t==null?void 0:vmi(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:"4.13.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Ib({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=We(Vt.of((0,Pna.homedir)()),xe.of(i$p),xe.of(n$p));await nr(t)||(await(0,bHe.mkdir)((0,Tna.dirname)(t),{recursive:!0}),await(0,bHe.writeFile)(t,EC())),this.persistedDistinctId=(await(0,bHe.readFile)(t)).toString()}return this.persistedDistinctId}};var Uvi;async function vHe(){return Uvi==null&&(Uvi=await o$p()),Uvi}async function o$p(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new oBt;let r=await YXt();return r!=null?new sBt({token:r,posthogApiKey:e}):await ZK()!=null?new For({posthogApiKey:e}):new sBt({token:void 0,posthogApiKey:e})}catch{return new oBt}}var Dna=(e=0)=>t=>`\x1B[${t+e}m`,Rna=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Fna=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Ny={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]}},m1A=Object.keys(Ny.modifier),s$p=Object.keys(Ny.color),a$p=Object.keys(Ny.bgColor),h1A=[...s$p,...a$p];function u$p(){let e=new Map;for(let[t,r]of Object.entries(Ny)){for(let[n,i]of Object.entries(r))Ny[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Ny[n],e.set(i[0],i[1]);Object.defineProperty(Ny,t,{value:r,enumerable:!1})}return Object.defineProperty(Ny,"codes",{value:e,enumerable:!1}),Ny.color.close="\x1B[39m",Ny.bgColor.close="\x1B[49m",Ny.color.ansi=Dna(),Ny.color.ansi256=Rna(),Ny.color.ansi16m=Fna(),Ny.bgColor.ansi=Dna(10),Ny.bgColor.ansi256=Rna(10),Ny.bgColor.ansi16m=Fna(10),Object.defineProperties(Ny,{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=>Ny.rgbToAnsi256(...Ny.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)=>Ny.ansi256ToAnsi(Ny.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Ny.ansi256ToAnsi(Ny.hexToAnsi256(t)),enumerable:!1}}),Ny}var c$p=u$p(),Bq=c$p;var kor=we(require("process"),1),Nna=we(require("os"),1),zvi=we(require("tty"),1);function oL(e,t=globalThis.Deno?globalThis.Deno.args:kor.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:Qy}=kor.default,Qor;oL("no-color")||oL("no-colors")||oL("color=false")||oL("color=never")?Qor=0:(oL("color")||oL("colors")||oL("color=true")||oL("color=always"))&&(Qor=1);function l$p(){if("FORCE_COLOR"in Qy)return Qy.FORCE_COLOR==="true"?1:Qy.FORCE_COLOR==="false"?0:Qy.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Qy.FORCE_COLOR,10),3)}function p$p(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function f$p(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=l$p();n!==void 0&&(Qor=n);let i=r?Qor:n;if(i===0)return 0;if(r){if(oL("color=16m")||oL("color=full")||oL("color=truecolor"))return 3;if(oL("color=256"))return 2}if("TF_BUILD"in Qy&&"AGENT_NAME"in Qy)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Qy.TERM==="dumb")return o;if(kor.default.platform==="win32"){let s=Nna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Qy)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Qy)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Qy)||Qy.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Qy)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Qy.TEAMCITY_VERSION)?1:0;if(Qy.COLORTERM==="truecolor"||Qy.TERM==="xterm-kitty"||Qy.TERM==="xterm-ghostty"||Qy.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Qy){let s=Number.parseInt((Qy.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Qy.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Qy.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Qy.TERM)||"COLORTERM"in Qy?1:o}function jna(e,t={}){let r=f$p(e,{streamIsTTY:e&&e.isTTY,...t});return p$p(r)}var d$p={stdout:jna({isTTY:zvi.default.isatty(1)}),stderr:jna({isTTY:zvi.default.isatty(2)})},Qna=d$p;function kna(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 Mna(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
1443
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=ena.test(a)?a.replace(ena,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=tna)break}}return rna(i)}}var Svi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Z1t(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 n2e(t,"DOMException")}isDOMError(t){return n2e(t,"DOMError")}};var Ovi=class{match(t){return hvi(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 Bvi=class{constructor(){}match(t){return Bra(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 RWp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Pvi=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(RWp);return i&&(r=i[1],n=i[2]),[r,n]}};var ina=["fatal","error","warning","log","info","debug"];function Oor(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 Tvi=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 gor(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=Oor(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Z1t(t)&&!Sra(t)&&ina.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Vra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Dvi=class{match(t){return gor(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Oor(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Rvi=class{match(t){return eBt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Fvi=class{match(t){return n2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return eBt(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(eBt(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 jvi=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 ana=require("fs"),una=require("readline"),Bor=new mF.ReduceableCache(25),cna=new mF.ReduceableCache(20),Nvi=7,FWp=1e3,jWp=1e4;async function lna(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"||MWp(s)||LWp(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(cna.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=zWp(o);if(s.every(u=>UWp(i,u)))continue;let a=VWp(Bor,i,{});n.push(NWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&QWp(e,Bor),Bor.reduce(),e}function NWp(e,t,r){return new Promise(n=>{let i=(0,ana.createReadStream)(e),o=(0,una.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){cna.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=qWp(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function QWp(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;kWp(r.lineno,r,n)}}function kWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=pna(e);i<e;i++){let o=r[i];if(o===void 0)return void ona(t);t.pre_context.push(o)}if(r[e]===void 0)return void ona(t);t.context_line=r[e];let n=fna(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 ona(e){delete e.pre_context,delete e.context_line,delete e.post_context}function MWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function LWp(e){return e.lineno!==void 0&&e.lineno>jWp||e.colno!==void 0&&e.colno>FWp}function UWp(e,t){let r=Bor.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 zWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=sna(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+Nvi:(i.push(n),n=sna(o)),t++}return i}function sna(e){return[pna(e),fna(e)]}function pna(e){return Math.max(1,e-Nvi)}function fna(e){return e+Nvi}function VWp(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function qWp(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 GWp(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 dna(e,t){globalThis.process?.on("uncaughtException",GWp(e,t))}function mna(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var WWp=2e3,Oq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Aor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return mvi(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||yJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(dna(this.onException.bind(this),this.onFatalError.bind(this)),mna(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(WWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var hna="5.26.2";var iBt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function gna(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 $Wp=6e4,HWp=1152921504606847e3,KWp=["is_not"],AHe=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},vh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},vJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Por=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()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}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){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof vJ||c instanceof vh?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){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new vh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new vh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new vh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}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){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new vh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new vh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new vh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new vh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new vh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new vh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new vh(`Dependency '${u}' 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,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof vJ)throw l;if(l instanceof vh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new vh("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=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?Ena(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):vna(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await Ana(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await Ana(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}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min($Wp,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 AHe(`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 AHe(`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 AHe(`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.flagDefinitionsLoadedAt=Date.now(),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 AHe&&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=i2e(()=>{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 Ana(e,t,r=""){let n=await gna(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/HWp}function vna(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 vh("Operator is_not_set is not supported")}else throw new vh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!KWp.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=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 yna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return yna(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new vh("Date operations cannot be performed on boolean values");let c=YWp(String(i));if(c==null&&(c=bna(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=bna(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function JWp(e,t){if(!(e in t))throw new vJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function Ena(e,t,r,n=!1){let i=String(e.value);JWp(i,r);let o=r[i];return Ina(o,t,r,n)}function Ina(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 u=Ina(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=Ena(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 u=vna(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("can't match cohort without a given cohort property value");return i==="AND"}function yna(e){try{return new RegExp(e),!0}catch{return!1}}function bna(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 vh(`${e} is in an invalid date format`)}throw new vh(`The date provided ${e} must be a string, number, or date object`)}function YWp(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 Tor=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var XWp=100,wna=3e4,ZWp=5e4,Dor=class extends nBt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Tor,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,XWp):wna,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 Por({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 Oq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||ZWp}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 hna}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."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),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."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),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=wna){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)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let _=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:_}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,b,E,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let _=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(_){m=!0;let C=_.value;b=w.id,v="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:_.payload??void 0}}}catch(_){if(_ instanceof vJ||_ instanceof vh)this._logger?.info(`${_.name} when computing flag locally: ${t}: ${_.message}`);else throw _}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=iBt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(iBt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(iBt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(iBt.FLAG_MISSING);else{b=C.metadata?.id,E=C.metadata?.version,v=C.reason?.description??C.reason?.code;let x;if(C.metadata?.payload!==void 0)try{x=JSON.parse(C.metadata.payload)}catch{x=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:x}}_.length>0&&(y=_.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,_=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(_)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(_):this.distinctIdHasSentFlagCalls[r]=[_];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:E,$feature_flag_reason:v,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let x=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();x!==void 0&&(C.$feature_flag_definitions_loaded_at=x)}y&&(C.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}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){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}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){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!u){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}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()}enterContext(t,r){this.context?.enter(t,r)}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=i2e(()=>{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(Pra(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);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 c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,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}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!Oq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Oq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Oq.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:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=yJ(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[b,E]of Object.entries(h))A[`$feature/${b}`]=E;let y=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&_ra(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,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 Cna=require("async_hooks"),Ror=class{constructor(){this.storage=new Cna.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var _na="posthog-node";function e$p(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 u=s.tags[Qvi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$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:u,properties:f}),s}}var Qvi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=_na,this.name=_na,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(e$p(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Oq.errorPropertiesBuilder=new mF.ErrorPropertiesBuilder([new mF.EventCoercer,new mF.ErrorCoercer,new mF.ObjectCoercer,new mF.StringCoercer,new mF.PrimitiveCoercer],mF.createStackParser("node:javascript",mF.nodeStackLineParser),[Era(),lna]);var yHe=class extends Dor{getLibraryId(){return"posthog-node"}initializeContext(){return new Ror}};var For=class{posthog;constructor({posthogApiKey:t}){this.posthog=new yHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.14.0",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var oBt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var bHe=require("fs/promises"),Pna=require("os"),Tna=require("path");var xna=we(require("crypto")),Nor=new Uint8Array(256),jor=Nor.length;function kvi(){return jor>Nor.length-16&&(xna.default.randomFillSync(Nor),jor=0),Nor.slice(jor,jor+=16)}var Sna=/^(?:[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 t$p(e){return typeof e=="string"&&Sna.test(e)}var Mvi=t$p;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function Ona(e,t=0){return fS[e[t+0]]+fS[e[t+1]]+fS[e[t+2]]+fS[e[t+3]]+"-"+fS[e[t+4]]+fS[e[t+5]]+"-"+fS[e[t+6]]+fS[e[t+7]]+"-"+fS[e[t+8]]+fS[e[t+9]]+"-"+fS[e[t+10]]+fS[e[t+11]]+fS[e[t+12]]+fS[e[t+13]]+fS[e[t+14]]+fS[e[t+15]]}var Bna=we(require("crypto")),Lvi={randomUUID:Bna.default.randomUUID};function r$p(e,t,r){if(Lvi.randomUUID&&!t&&!e)return Lvi.randomUUID();e=e||{};let n=e.random||(e.rng||kvi)();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 Ona(n)}var EC=r$p;var n$p="id",i$p=".fern",sBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new yHe(r),this.userId=t==null?void 0:vmi(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:"4.14.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Ib({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=We(Vt.of((0,Pna.homedir)()),xe.of(i$p),xe.of(n$p));await nr(t)||(await(0,bHe.mkdir)((0,Tna.dirname)(t),{recursive:!0}),await(0,bHe.writeFile)(t,EC())),this.persistedDistinctId=(await(0,bHe.readFile)(t)).toString()}return this.persistedDistinctId}};var Uvi;async function vHe(){return Uvi==null&&(Uvi=await o$p()),Uvi}async function o$p(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new oBt;let r=await YXt();return r!=null?new sBt({token:r,posthogApiKey:e}):await ZK()!=null?new For({posthogApiKey:e}):new sBt({token:void 0,posthogApiKey:e})}catch{return new oBt}}var Dna=(e=0)=>t=>`\x1B[${t+e}m`,Rna=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Fna=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Ny={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]}},m1A=Object.keys(Ny.modifier),s$p=Object.keys(Ny.color),a$p=Object.keys(Ny.bgColor),h1A=[...s$p,...a$p];function u$p(){let e=new Map;for(let[t,r]of Object.entries(Ny)){for(let[n,i]of Object.entries(r))Ny[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Ny[n],e.set(i[0],i[1]);Object.defineProperty(Ny,t,{value:r,enumerable:!1})}return Object.defineProperty(Ny,"codes",{value:e,enumerable:!1}),Ny.color.close="\x1B[39m",Ny.bgColor.close="\x1B[49m",Ny.color.ansi=Dna(),Ny.color.ansi256=Rna(),Ny.color.ansi16m=Fna(),Ny.bgColor.ansi=Dna(10),Ny.bgColor.ansi256=Rna(10),Ny.bgColor.ansi16m=Fna(10),Object.defineProperties(Ny,{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=>Ny.rgbToAnsi256(...Ny.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)=>Ny.ansi256ToAnsi(Ny.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Ny.ansi256ToAnsi(Ny.hexToAnsi256(t)),enumerable:!1}}),Ny}var c$p=u$p(),Bq=c$p;var kor=we(require("process"),1),Nna=we(require("os"),1),zvi=we(require("tty"),1);function oL(e,t=globalThis.Deno?globalThis.Deno.args:kor.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:Qy}=kor.default,Qor;oL("no-color")||oL("no-colors")||oL("color=false")||oL("color=never")?Qor=0:(oL("color")||oL("colors")||oL("color=true")||oL("color=always"))&&(Qor=1);function l$p(){if("FORCE_COLOR"in Qy)return Qy.FORCE_COLOR==="true"?1:Qy.FORCE_COLOR==="false"?0:Qy.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Qy.FORCE_COLOR,10),3)}function p$p(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function f$p(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=l$p();n!==void 0&&(Qor=n);let i=r?Qor:n;if(i===0)return 0;if(r){if(oL("color=16m")||oL("color=full")||oL("color=truecolor"))return 3;if(oL("color=256"))return 2}if("TF_BUILD"in Qy&&"AGENT_NAME"in Qy)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Qy.TERM==="dumb")return o;if(kor.default.platform==="win32"){let s=Nna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Qy)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Qy)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Qy)||Qy.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Qy)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Qy.TEAMCITY_VERSION)?1:0;if(Qy.COLORTERM==="truecolor"||Qy.TERM==="xterm-kitty"||Qy.TERM==="xterm-ghostty"||Qy.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Qy){let s=Number.parseInt((Qy.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Qy.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Qy.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Qy.TERM)||"COLORTERM"in Qy?1:o}function jna(e,t={}){let r=f$p(e,{streamIsTTY:e&&e.isTTY,...t});return p$p(r)}var d$p={stdout:jna({isTTY:zvi.default.isatty(1)}),stderr:jna({isTTY:zvi.default.isatty(2)})},Qna=d$p;function kna(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 Mna(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
1444
1444
  `:`
1445
1445
  `)+r,i=n+1,n=e.indexOf(`
1446
1446
  `,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:Lna,stderr:Una}=Qna,Vvi=Symbol("GENERATOR"),EHe=Symbol("STYLER"),aBt=Symbol("IS_EMPTY"),zna=["ansi","ansi","ansi256","ansi16m"],IHe=Object.create(null),m$p=(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=Lna?Lna.level:0;e.level=t.level===void 0?r:t.level};var h$p=e=>{let t=(...r)=>r.join(" ");return m$p(t,e),Object.setPrototypeOf(t,uBt.prototype),t};function uBt(e){return h$p(e)}Object.setPrototypeOf(uBt.prototype,Function.prototype);for(let[e,t]of Object.entries(Bq))IHe[e]={get(){let r=Mor(this,Gvi(t.open,t.close,this[EHe]),this[aBt]);return Object.defineProperty(this,e,{value:r}),r}};IHe.visible={get(){let e=Mor(this,this[EHe],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var qvi=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?Bq[r].ansi16m(...n):t==="ansi256"?Bq[r].ansi256(Bq.rgbToAnsi256(...n)):Bq[r].ansi(Bq.rgbToAnsi(...n)):e==="hex"?qvi("rgb",t,r,...Bq.hexToRgb(...n)):Bq[r][e](...n),g$p=["rgb","hex","ansi256"];for(let e of g$p){IHe[e]={get(){let{level:r}=this;return function(...n){let i=Gvi(qvi(e,zna[r],"color",...n),Bq.color.close,this[EHe]);return Mor(this,i,this[aBt])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);IHe[t]={get(){let{level:r}=this;return function(...n){let i=Gvi(qvi(e,zna[r],"bgColor",...n),Bq.bgColor.close,this[EHe]);return Mor(this,i,this[aBt])}}}}var A$p=Object.defineProperties(()=>{},{...IHe,level:{enumerable:!0,get(){return this[Vvi].level},set(e){this[Vvi].level=e}}}),Gvi=(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}},Mor=(e,t,r)=>{let n=(...i)=>y$p(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,A$p),n[Vvi]=e,n[EHe]=t,n[aBt]=r,n},y$p=(e,t)=>{if(e.level<=0||!t)return e[aBt]?"":t;let r=e[EHe];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=kna(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
@@ -2092,7 +2092,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
2092
2092
  Learn more about project structure:
2093
2093
  https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=_t.V1.SlugGenerator.init(_t.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=>_t.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return ME(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=_t.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??fm(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 u=t.versions.slice(a,a+o),c=await Promise.all(u.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...c)}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??fm(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:_e(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:_t.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:_t.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:vP.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??fm(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:_t.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?Fcd(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(u=>this.toNavigationChild({prefix:i,item:u,parentSlug:n})))).filter(u=>u!=null),a=[];return s.forEach(u=>{if(u.type==="apiReference"){a.push(u);return}let c=u.type==="section"&&(u.collapsible===!0||u.collapsible==null&&u.collapsed===!0);if(u.type==="section"&&!c){a.push(u);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(u)}),{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??fm(t.title)}`),o=n.apply({urlSlug:t.slug??fm(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(u=>this.toVariantChild(u,i,o)))).filter(u=>u!=null);return{type:"variant",id:i,variantId:_t.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 ME(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 ME(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=nKa(t.snippetsConfiguration),s,a,u,c,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{u=this.getOpenApiWorkspaceForApiSection(t),s=await u.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(v){c=v}let d;if(t.tagDescriptionPages&&p)try{let I=await(u??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});I.tags.tagsById&&(d=Object.fromEntries(Object.entries(I.tags.tagsById).filter(([w,_])=>_.description&&_.description.trim().length>0).map(([w,_])=>[$n(w),{id:String(_.id),description:_.description}])))}catch(v){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(v))}if(s==null){if(this.apiWorkspaces.length===0&&c!=null)throw c;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Pg({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 Sh(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(v){this.taskContext.logger.debug(`Could not load workspace: ${v}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=bv(s,{onError:v=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${v}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),m=t.apiName??a?.workspaceName??u?.workspaceName,h=`__pending_api_${this.pendingApiCounter++}__`,A=QQt({ir:s,apiDefinitionId:h,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),y=new gNr(t,A,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,d,f.namespacesByOperationId),b=y.getTagDescriptionContent();for(let[v,I]of b.entries()){let w=v.split("/").pop()||v,_=xe.of(w),C=I;this.docsWorkspace.config.settings?.substituteEnvVars&&(C=bv(I,{onError:x=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${x}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[_]=C,this.parsedDocsConfig.pages[_]=C}let E=y.get();return this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:m,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types,tempApiDefinitionId:h,apiReferenceNode:E}),E}async toChangelogNode(t,r,n){return new iLe(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:_t.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 u=await new crt({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,u.graphqlOperations),Object.assign(r,u.types),s.namespace)for(let c of Object.keys(u.graphqlOperations))n.set(wr.GraphQlOperationId(c),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=qo(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??fm(s)}),u=this.#e.get(`library/${t.libraryName}`),c;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(c=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:u,type:"section",overviewPageId:c,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=We(r,xe.of("_navigation.yml"));if(!(0,XVi.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,B_e.readFile)(n,"utf-8")).split(`
2094
2094
  `).filter(s=>!s.startsWith("#")).join(`
2095
- `);try{return xr.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=We(t,xe.of(r));if(!(0,XVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Ra(this.docsWorkspace.absoluteFilePath,n),o=await(0,B_e.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,_t.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:fm(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:fm(o.title)}),a=this.#e.get(`library-section/${o.slug}`),u=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),c=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(c,r,s);i.push({id:a,type:"section",overviewPageId:u,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=_t.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??fm(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),u=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:u??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?_t.PageId(s):void 0,u=this.#e.get(a??`${t}/section`),c=n.apply({urlSlug:r.slug??fm(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,d=i||r.hidden,m=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:u,item:h,parentSlug:c,hideChildren:d,parentAvailability:r.availability??o})))).filter(h=>h!=null);if(a==null){let h=m.find(A=>A.type==="apiReference"&&A.hideTitle===!0&&A.overviewPageId!=null);h!=null&&(a=h.overviewPageId)}return{id:u,type:"section",overviewPageId:a,slug:c.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:d,viewers:r.viewers,orphaned:r.orphaned,children:m,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 ME(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 iLe(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:_t.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??fm(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??fm(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):vP.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(Ca),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:vP.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,"og:background-image":i,...o}=this.parsedDocsConfig.metadata;return{...o,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n),"og:background-image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return ME(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:vP.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};xNr(t,r,n)}};function Rcd(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:`${OT(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function Fcd(e){switch(e){case"beta":return _t.V1.NavigationV1Availability.Beta;case"deprecated":return _t.V1.NavigationV1Availability.Deprecated;case"ga":return _t.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return _t.V1.NavigationV1Availability.Stable;default:_e(e)}}Qt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(Ca)}async function ZVi(e,t,r){if(e instanceof O1){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return ST({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 Ea={};X(Ea,{AlgoliaSearchIndex:()=>wKa,ApiDefinitionId:()=>qKa,ApiId:()=>HKa,Availability:()=>cJa,DocsConfigId:()=>KKa,EndpointId:()=>YKa,EndpointPathLiteral:()=>aJa,EnvironmentId:()=>JKa,FileId:()=>rJa,HttpMethod:()=>uJa,IndexSegmentId:()=>CKa,JqString:()=>iJa,OrgId:()=>WKa,PageId:()=>tJa,PayloadLocation:()=>NJa,PropertyKey:()=>oJa,PullRequestState:()=>TJa,RoleId:()=>sJa,TokenId:()=>$Ka,TypeId:()=>eJa,Url:()=>nJa,VersionId:()=>GKa,WebSocketId:()=>XKa,WebhookId:()=>ZKa,algolia:()=>eqi,api:()=>lqi,commons:()=>pqi,diff:()=>lJa,docs:()=>vqi,generators:()=>Iqi,git:()=>wqi,navigation:()=>xqi,sdks:()=>Oqi,snippets:()=>FJa,snippetsFactory:()=>jJa,templates:()=>Bqi,tokens:()=>QJa});var eqi={};X(eqi,{AlgoliaSearchIndex:()=>wKa,IndexSegmentId:()=>CKa});function wKa(e){return e}function CKa(e){return e}var lqi={};X(lqi,{latest:()=>nqi,v1:()=>cqi});var nqi={};X(nqi,{AuthSchemeId:()=>_Ka,WebhookHttpMethod:()=>BKa,auth:()=>tqi,commons:()=>xKa,endpoint:()=>SKa,type_:()=>OKa,webhook:()=>rqi,websocket:()=>PKa});var tqi={};X(tqi,{AuthSchemeId:()=>_Ka});function _Ka(e){return e}var xKa={};var SKa={};var OKa={};var rqi={};X(rqi,{WebhookHttpMethod:()=>BKa});var BKa={Get:"GET",Post:"POST"};var PKa={};var cqi={};X(cqi,{SubpackageId:()=>LKa,WebSocketMessageId:()=>UKa,WebSocketMessageOrigin:()=>zKa,WebhookHttpMethod:()=>VKa,commons:()=>uqi,db:()=>iqi,read:()=>sqi,register:()=>aqi});var iqi={};X(iqi,{endpoint:()=>TKa});var TKa={};var sqi={};X(sqi,{SupportedLanguage:()=>DKa,endpoint:()=>oqi,type_:()=>RKa,webhook:()=>FKa,websocket:()=>jKa});var oqi={};X(oqi,{SupportedLanguage:()=>DKa});var DKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var RKa={};var FKa={};var jKa={};var aqi={};X(aqi,{SourceId:()=>jcd,endpoint:()=>NKa,type_:()=>QKa,webhook:()=>kKa,websocket:()=>MKa});var NKa={};var QKa={};var kKa={};var MKa={};function jcd(e){return e}var uqi={};X(uqi,{SubpackageId:()=>LKa,WebSocketMessageId:()=>UKa,WebSocketMessageOrigin:()=>zKa,WebhookHttpMethod:()=>VKa});function LKa(e){return e}function UKa(e){return e}var zKa={Client:"client",Server:"server"};var VKa={Get:"GET",Post:"POST"};var pqi={};X(pqi,{ApiDefinitionId:()=>qKa,ApiId:()=>HKa,Availability:()=>cJa,DocsConfigId:()=>KKa,EndpointId:()=>YKa,EndpointPathLiteral:()=>aJa,EnvironmentId:()=>JKa,FileId:()=>rJa,HttpMethod:()=>uJa,JqString:()=>iJa,OrgId:()=>WKa,PageId:()=>tJa,PropertyKey:()=>oJa,RoleId:()=>sJa,TokenId:()=>$Ka,TypeId:()=>eJa,Url:()=>nJa,VersionId:()=>GKa,WebSocketId:()=>XKa,WebhookId:()=>ZKa});function qKa(e){return e}function GKa(e){return e}function WKa(e){return e}function $Ka(e){return e}function HKa(e){return e}function KKa(e){return e}function JKa(e){return e}function YKa(e){return e}function XKa(e){return e}function ZKa(e){return e}function eJa(e){return e}function tJa(e){return e}function rJa(e){return e}function nJa(e){return e}function iJa(e){return e}function oJa(e){return e}function sJa(e){return e}function aJa(e){return e}var uJa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var cJa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var lJa={};var vqi={};X(vqi,{latest:()=>mqi,v1:()=>yqi,v2:()=>bqi});var mqi={};X(mqi,{Layout:()=>fJa,MdxEngine:()=>Ncd,TwitterCardSetting:()=>dJa,commons:()=>pJa,frontmatter:()=>fqi,seo:()=>dqi});var Ncd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var pJa={};var fqi={};X(fqi,{Layout:()=>fJa});var fJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var dqi={};X(dqi,{TwitterCardSetting:()=>dJa});var dJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var yqi={};X(yqi,{commons:()=>Aqi,db:()=>mJa,read:()=>hJa,write:()=>hqi});var mJa={};var hJa={};var hqi={};X(hqi,{DocsRegistrationId:()=>kcd,FilePath:()=>Qcd});function Qcd(e){return e}function kcd(e){return e}var Aqi={};X(Aqi,{ContentAlignment:()=>bJa,FontDisplay:()=>CJa,FontStyle:()=>wJa,HeaderPosition:()=>vJa,JsScriptStrategy:()=>IJa,ProgrammingLanguage:()=>gJa,SearchbarPlacement:()=>AJa,TabsPlacement:()=>yJa,TwitterCardSetting:()=>EJa,commons:()=>gqi});var gqi={};X(gqi,{ContentAlignment:()=>bJa,FontDisplay:()=>CJa,FontStyle:()=>wJa,HeaderPosition:()=>vJa,JsScriptStrategy:()=>IJa,ProgrammingLanguage:()=>gJa,SearchbarPlacement:()=>AJa,TabsPlacement:()=>yJa,TwitterCardSetting:()=>EJa});var gJa={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 AJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var yJa={Header:"HEADER",Sidebar:"SIDEBAR"};var bJa={Center:"CENTER",Left:"LEFT"};var vJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var EJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var IJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var wJa={Normal:"normal",Italic:"italic"};var CJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var bqi={};X(bqi,{read:()=>_Ja,write:()=>xJa});var _Ja={};var xJa={};var Iqi={};X(Iqi,{ChangelogEntryType:()=>OJa,GeneratorId:()=>Mcd,GeneratorLanguage:()=>Lcd,ReleaseType:()=>BJa,cli:()=>SJa,commons:()=>Eqi,versions:()=>PJa});var SJa={};var Eqi={};X(Eqi,{ChangelogEntryType:()=>OJa,ReleaseType:()=>BJa});var OJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var BJa={Ga:"GA",Rc:"RC"};var PJa={};function Mcd(e){return e}var Lcd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var wqi={};X(wqi,{PullRequestState:()=>TJa});var TJa={Open:"open",Closed:"closed",Merged:"merged"};var xqi={};X(xqi,{latest:()=>Cqi,v1:()=>_qi});var Cqi={};X(Cqi,{NodeId:()=>Vcd,ProductId:()=>qcd,Slug:()=>Ucd,TabId:()=>zcd});function Ucd(e){return e}function zcd(e){return e}function Vcd(e){return e}function qcd(e){return e}var _qi={};X(_qi,{NavigationV1Availability:()=>Kcd,NodeId:()=>$cd,ProductId:()=>Hcd,Slug:()=>Gcd,TabId:()=>Wcd});function Gcd(e){return e}function Wcd(e){return e}function $cd(e){return e}function Hcd(e){return e}var Kcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var Oqi={};X(Oqi,{Language:()=>DJa,VersionBump:()=>RJa,versions:()=>Sqi});var Sqi={};X(Sqi,{Language:()=>DJa,VersionBump:()=>RJa});var DJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var RJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var FJa={};var jJa={};var Bqi={};X(Bqi,{PayloadLocation:()=>NJa});var NJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var QJa={};var BNr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function kJa({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=Ea.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:qS(o)},i.push(o)})}),r}var PNr=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 MJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends PNr{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 ${MJa(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})}}},Vv=class extends Wo{},vj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var LJa="x-fern-base-path",UJa="x-fern-availability",TNr="x-fern-sdk-group-name",zJa="x-fern-global-headers",VJa="x-fern-sdk-method-name";var qJa="x-fern-webhook",GJa="x-fern-access-token-locator",WJa="x-fern-basic",$Ja="x-fern-username-variable-name",HJa="x-fern-password-variable-name",KJa="x-fern-bearer",JJa="x-fern-token-variable-name",YJa="x-fern-header",XJa="x-fern-header-variable-name",ZJa="x-fern-server-name",eYa="x-fern-examples";var DNr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[ZJa]}convert(){if(this.serverName!=null)return this.serverName}};var RNr=class extends Wo{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 DNr({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:Ea.EnvironmentId(t),baseUrl:this.url}}};function P_e(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,u)=>new RNr({input:a,context:r,accessPath:n,pathId:["servers",`${u}`]}));return[...i,...s]}function Lp(e){return typeof e=="object"&&Xo(e)&&"$ref"in e&&typeof e.$ref=="string"}function WS(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:(Lp(i)&&(i=WS(i,t,r)),i)}function FNr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var vYa=we(By());var jNr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[WJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var NNr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[HJa]}convert(){return this.passwordVariableName}};var QNr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[$Ja]}convert(){return this.usernameVariableName}};var kNr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[KJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var MNr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[JJa]}convert(){return this.tokenVariableName}};function tYa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var rYa="x-bearer-format",nYa="x-code-samples",iYa="x-codeSamples";var LNr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[rYa]}convert(){return this.bearerFormat}};var UNr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[YJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var zNr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[XJa]}convert(){return this.headerVariableName}};function oYa(e){return e.type==="apiKey"}var Lrt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){oYa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new UNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new zNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new LNr({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()}}};jJn();Q7o();function VNr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Urt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function oLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(oLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function qNr(e){if(Array.isArray(e))return e.map(Urt);if(typeof e=="symbol")return[e];e=oLe(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 kQt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Pqt(t))return r;let n=e[t];return n===void 0?VNr(t)?kQt(e,qNr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Urt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Jcd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Pqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Jcd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Pqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function sYa(e){return function(t){return kQt(t,e)}}function aYa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}fKn();function Pqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Dqi(e,t,r){return typeof r!="function"?Dqi(e,t,()=>{}):Tqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:Tqi(i,o,n,c)},new Map)}function Tqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return Ycd(e,t,r,n);case"function":return Object.keys(t).length>0?Tqi(e,{...t},r,n):Pqi(e,t);default:return aYa(e)?typeof t=="string"?t==="":!0:Pqi(e,t)}}function Ycd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return uYa(e,t,r,n);if(t instanceof Map)return Xcd(e,t,r,n);if(t instanceof Set)return Zcd(e,t,r,n);let i=Object.keys(t);if(e==null||PIt(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(!PIt(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 Xcd(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 uYa(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 u=0;u<e.length;u++){if(i.has(u))continue;let c=e[u],l=!1;if(r(c,s,o,e,t,n)&&(l=!0),l){i.add(u),a=!0;break}}if(!a)return!1}return!0}function Zcd(e,t,r,n){return t.size===0?!0:e instanceof Set?uYa([...e],[...t],r,n):!1}function GNr(e,t){return Dqi(e,t,()=>{})}N7o();function cYa(e){return e=j7o(e),t=>GNr(t,e)}mKn();Cqt();dKn();function lYa(e,t){return F7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(pqe(e)===Bqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),IM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case xqt:case _qt:case Sqt:{let a=new e.constructor(e?.valueOf());return IM(a,e),a}case Oqt:{let a={};return IM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function pYa(e){return lYa(e)}var eld=/^(?:0|[1-9]\d*)$/;function fYa(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 eld.test(e)}}Cqt();function dYa(e){return e!==null&&typeof e=="object"&&pqe(e)==="[object Arguments]"}function mYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&VNr(t)&&e?.[t]==null?r=qNr(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)||dYa(n))&&fYa(o)&&o<n.length))return!1;n=n[o]}return!0}function hYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Urt(e);break}}return t=pYa(t),function(r){let n=kQt(r,e);return n===void 0?mYa(r,e):t===void 0?n===void 0:GNr(n,t)}}function gYa(e){if(e==null)return q9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?hYa(e[0],e[1]):cYa(e);case"string":case"symbol":case"number":return sYa(e)}}jJn();hKn();function WNr(e,t=q9t){return e==null?{}:Ox(e,gYa(t))}sXo();function AYa(e){return oXo(oLe(e))}U7o();function yYa(e){return typeof e!="string"&&(e=oLe(e)),e.replace(/['\u2019]/g,"")}function G9(e){return L7o(yYa(AYa(e)))}function Qm(e){if(e!=null)return Array.isArray(e)?e:[e]}function $Nr({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`${tld(s)}${rld(e)}.${nld(n,i,o,a)}`}function tld(e){return e?"webhook_":"endpoint_"}function rld(e){return e!=null?Qm(e)?.map(t=>G9(t)).join("/"):""}function nld(e,t,r,n){return e||t||G9(r??"")||G9(n??"")}function bYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var HNr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[GJa],this.accessTokenLocator!=null&&(bYa(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 KNr=class extends Wo{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 Lrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new HNr({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=$Nr({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:Ea.EndpointId(r),accessTokenLocator:Ea.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var zrt=class extends Wo{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 jNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new QNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new NNr({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 kNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new MNr({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":{tYa(this.input)?(this.authScheme="header",this.headerAuthNode=new Lrt({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 KNr({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 vYa.UnreachableCaseError(this.authScheme);return}}};var Vrt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=FNr(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 zrt({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(Xo))}};var JNr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[LJa],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 EYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function IYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function qrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Qm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!EYa(i))&&(s=IYa(s,s.type==="enum"?s.default:void 0)),{key:Ea.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(Xo)).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function YNr(e,t){return Lp(e)?WS(e,t,void 0):e}function T_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function wYa(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 CYa(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 _Ya=we(By());var Rqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Fqi=["int16","int32","int64","int8","sf-integer","uint8"],jqi=["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"],Nqi=["beta","pre-release","in-development","generally-available","deprecated"];function qv(e,t){return Lp(e)?WS(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var OU=class extends Wo{availability;constructor(t){super(t),this.safeParse()}parse(){if(qv(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[UJa];r!=null&&(Nqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${Nqi.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return Ea.Availability.Beta;case"in-development":return Ea.Availability.InDevelopment;case"generally-available":return Ea.Availability.GenerallyAvailable;case"deprecated":return Ea.Availability.Deprecated;case void 0:return;default:new _Ya.UnreachableCaseError(this.availability);return}}};var ZNr=we(By());function xYa(e){return typeof e=="object"&&e!=null&&"language"in e}function SYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function OYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function BYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function XNr(e){return typeof e=="object"&&e!=null&&"event"in e}function Qqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(XNr)}function D_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function PYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var eQr=class extends Wo{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[eYa]}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 D_e(s)?[i,{type:"filenameWithData",filename:s.filename,data:Ea.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>D_e(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:Ea.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 ZNr.UnreachableCaseError(o.multipartType);return}}).filter(Xo))};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=PYa(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 ZNr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{OYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Qqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Qqi(r.response)&&BYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ZNr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{xYa(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})):SYa(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 u=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,d])=>[Ea.PropertyKey(p),d])),c=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,d])=>[Ea.PropertyKey(p),d])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,d])=>[Ea.PropertyKey(p),d]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(u).length>0?u:void 0,queryParameters:Object.keys(c).length>0?c:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var MQt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[TNr]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>Ea.api.v1.SubpackageId(G9(r)))}};var tQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[VJa]}convert(){return this.sdkMethodName}};var rQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[qJa]}convert(){return this.isWebhook}};var nQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[nYa]??[],...this.input[iYa]??[]],this.codeSamples.forEach(t=>{[...Object.values(Ea.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 sLe=we(By());function kqi(e,t){return Lp(e)?WS(e,t,void 0):e}function TYa(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 u_="",nX=class extends Wo{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&&(D_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>D_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new sLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=kqi(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=kqi(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 sLe.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(XNr)){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 sLe.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 D_e(i)?[r,{type:"filenameWithData",filename:i.filename,data:Ea.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>D_e(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:Ea.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 sLe.UnreachableCaseError(n.multipartType);return}}).filter(Xo))};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 sLe.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 sLe.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(Xo));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(Xo));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:TYa(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?qS(this.name):this.summary!=null?qS(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function DYa(e,t){return Lp(e)?WS(e,t,void 0):e}var GYa=we(By());var RYa="#/components/schemas/";function Grt(e){if(e.$ref.startsWith(RYa))return e.$ref.replace(RYa,"")}function nAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function R_e(e){return typeof e.type=="string"&&e.type==="array"}function FYa(e){return e.type==="boolean"}function jYa(e){return e.type==="integer"}function F_e(e){return!Array.isArray(e.type)&&!R_e(e)}function NYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||F_e(t)||R_e(t))}function QYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function kYa(e){return e.type==="null"}function MYa(e){return e.type==="number"}function Mqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function LYa(e){return e.type==="string"}var iQr=class extends vj{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Fg({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 Qm(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 oQr=class extends Vv{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 OU({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 sQr=class extends vj{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 Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Xo)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>Qm(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(Xo).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(nAe).filter(Xo):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function aQr(e){return e!=null&&e.length>0?e:[void 0]}var Wrt=class extends vj{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 Fg({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 Fg({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(Lp(t))return Grt(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Fg({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Xo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return qrt(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}}}]:Qm(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(Xo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>aQr(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=>Ea.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=qv(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Fg({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 uQr=class extends vj{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=>qv(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>qv(t,this.context.document)?.type!=="null"?new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Xo);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=qv({$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 Fg({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(Xo);return this.isNullable&&i!=null?i.map(nAe).filter(Xo):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:Ea.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>Qm(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??qS(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(Xo)).filter(Xo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>Qm(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?qS(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?qS(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(Xo)).filter(Xo)}:void 0,n=this.isNullable?nAe(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 cQr=class extends Vv{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 j_e=class extends Vv{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(Lp(r)){let i=qv(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(Xo),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 UYa=we(By());function ild(e){return Fqi.includes(e)}var lQr=class extends Vv{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&&(ild(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Fqi.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 UYa.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 pQr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return nAe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var zYa=we(By());function old(e){return Rqi.includes(e)}var fQr=class extends Vv{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&&(old(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Rqi.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 zYa.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 VYa=we(By());function sld(e){return jqi.includes(e)}var dQr=class extends Vv{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 VYa.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&&(sld(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${jqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new j_e({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 qYa=we(By());var mQr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,qYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var aLe=class extends vj{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=Grt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&F_e(t)&&(this.maybeEnumConverterNode=new j_e({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:Ea.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=qv(this.input,this.context.document);if(r!=null)return new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Fg=class e extends vj{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 OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),F_e(this.input)&&QYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=Grt(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 aLe({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 oQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(NYa(this.input))this.typeShapeNode=new sQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(F_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new uQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(Mqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new Wrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(F_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new j_e({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":Mqi(this.input)&&(this.typeShapeNode=new Wrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":R_e(this.input)&&(this.typeShapeNode=new iQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":FYa(this.input)&&(this.typeShapeNode=new cQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":jYa(this.input)&&(this.typeShapeNode=new lQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":MYa(this.input)&&(this.typeShapeNode=new fQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":LYa(this.input)&&(this.typeShapeNode=new dQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":kYa(this.input)&&(this.typeShapeNode=new pQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new GYa.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 Wrt({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 mQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!R_e(this.input)&&this.input==null||R_e(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=Qm(t)?.map(n=>this.nullable?nAe(n):n).filter(Xo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function N_e(e){if(e!=null)return qrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var iX=class extends Vv{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Lp(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 OU({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=DYa(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 WYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Lqi=we(By());function hQr(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[Ea.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var $Ya=we(Opi(),1),$rt=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=$Ya.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 ald(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var gQr=class extends Wo{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 Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),ald(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Lp(r)?i=FNr(r.$ref,this.context.document):i=r,i!=null)return[t,new zrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(Xo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[Ea.api.latest.AuthSchemeId(t),n]}).filter(Xo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=Qm(r.convert());return i==null?[t,void 0]:[Ea.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Xo(r))):void 0}}};var AQr=class extends Fg{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=qv(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Lp(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=qv(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 yQr=class extends Wo{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=qv(this.input.schema,this.context.document);this.availability=new OU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new aLe({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=$rt.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Fg({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 AQr({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(Xo))):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?{[u_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[u_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Qm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=G9([this.method,this.path,this.contentType,"request"].join("_"));return hQr({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ea.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new Lqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof aLe)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:Ea.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:Ea.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=Qm(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:Ea.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new Lqi.UnreachableCaseError(i.multipartType),[]}}).filter(Xo).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 bQr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=WYa(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 yQr({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])=>Qm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Qm(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(Xo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var HYa={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 KYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var vQr=we(By());var JYa="application/json";var YYa="application/octet-stream";function XYa(e,t){return e===t||t===u_||e===u_}var LQt=class extends Wo{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,u){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=u,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,u]of Object.entries(r))for(let c of u)XYa(a,o)&&(n.add(a),this.examples?.push(new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,T_e(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[u,c,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new nX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,T_e(c,s),{requestBody:u,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,u,c]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new nX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,T_e(u,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,u]of r.slice(t.length))this.examples?.push(...u.map(c=>new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,T_e(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[u_];if(o!=null)for(let s of o)this.examples?.push(new nX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,T_e(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=$rt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=JYa,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 Fg({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=YYa,this.contentSubtype=qv(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 Fg({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=WNr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[u_]??=[],r[u_]=[{value:this.input.example}]);let n=qv(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=WNr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[u_]??=[],r[u_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[u_]??=[],r[u_]?.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(([u])=>!i.has(u)&&u!==u_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==u_);Object.keys(r).every(a=>a===u_)||this.matchExamplesByIndex(o,s),!i.has(u_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Qm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new vQr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Qm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=G9([this.method,this.path,this.statusCode,"response"].join("_"));return hQr({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ea.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new vQr.UnreachableCaseError(n);return}}).filter(Xo)}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 vQr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var UQt=class extends Wo{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=KYa(this.input,this.context.document);if(r==null){this.context.errors.error({message:Lp(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 iX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new LQt({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 LQt({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(Xo)}};var EQr=class extends Wo{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 UQt({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 UQt({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 aQr(N_e(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(Xo))})))}).filter(Xo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=Qm(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??HYa[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let u=a.convert();if(u!=null&&u.responseBody?.type==="json")return{name:u.name,description:u.description,responseBody:u.responseBody}}).filter(Xo)})).filter(Xo)})).filter(Xo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var Q_e=class extends Wo{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 nX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,T_e(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 OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=P_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new rQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Lp(n)){let o=YNr(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 iX({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 iX({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 iX({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 nQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new bQr({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 EQr({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 Vrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new MQt({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 MQt({input:{[TNr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new tQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>$Nr({namespace:Qm(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Xo),this.xFernExamplesNode=new eQr({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(Xo)}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:Ea.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(Xo),i=CYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:wYa(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:Ea.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(d=>d.value.toString())??[],queryParameters:N_e(this.queryParameters)?.flat(),headers:N_e(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Xo)}}).filter(Xo);let o=this.servers?.map(l=>l.convert()).filter(Xo),s=this.convertPathToPathParts();if(s==null)return;let a,u=this.auth?.convert();u!=null&&(a=Object.keys(u));let c=t?.flatMap(l=>l.headers).filter(Xo);return this.endpointIds.map((l,p)=>({id:Ea.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(d=>Ea.api.v1.SubpackageId(d)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(d=>Ea.api.latest.AuthSchemeId(d)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:N_e(this.pathParameters)?.flat(),queryParameters:N_e(this.queryParameters)?.flat(),requestHeaders:N_e(this.requestHeaders)?.flat(),responseHeaders:c!=null&&c.length>0?c:void 0,requests:this.requests?.convert(),responses:t?.map(d=>d.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var Hrt=class extends Wo{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=P_e(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 Q_e({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 Q_e({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 Q_e({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 Q_e({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 Q_e({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(Xo)}};function IQr(e){return"payloads"in e}var wQr=class extends Wo{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 Hrt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:P_e(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(Xo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{IQr(o)?r[Ea.WebhookId(o.id)]=o:t[Ea.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var CQr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[zJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||YNr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return qrt(this.globalHeaders,this.requiredProperties)?.flat()}};function ZYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var _Qr=class extends Wo{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=ZYa(o,this.context.document);if(s!=null)return new Hrt({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(Xo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{IQr(n)&&(t[Ea.WebhookId(n.id)]=n)}),t),{})}};var xQr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=P_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Vrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new JNr({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 wQr({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 _Qr({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 gQr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new CQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=EC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=kJa({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:Ea.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}}};xi();async function Uqi(e,t){if(e instanceof O1){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new B9(e.absoluteFilePath),n=await fU({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 BNr,generatedTypes:{}},u=new xQr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=aWe(o,u.convert())}return o}dg();Wt();var plu=we(qqi(),1),flu=we(f2r(),1),Kkr=require("fs/promises"),dlu=we(require("http"),1),mlu=we(require("path"),1);var Yru=require("events"),A2r=we(require("fs"),1),ALe=we(require("path"),1);var Rru=we(require("os"),1),Fru=300,q_e=20,f2t=1e7,jru=Rru.default.platform();var IAd=jru==="darwin",cGi=jru==="win32",G_e=IAd||cGi,Nru=3e3,Qru=2e4,lGi=1250;var uX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(uX||(uX={}));var gLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(gLe||(gLe={}));var d2t;(function(e){e.CHANGE="change",e.ERROR="error"})(d2t||(d2t={}));var cu;(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"})(cu||(cu={}));var TT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(TT||(TT={}));var wAd=(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,u=0,c=0,l=()=>{let v=Date.now(),I=v-u,w=v-c,_=I>=t||w>=o;return[v,_]},p=v=>{if(c=v,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=v=>{if(c=v,n)return p(v)},h=v=>{if(i&&s)return p(v);s=void 0},A=()=>{a=void 0;let[v,I]=l();return I?h(v):y(v)},y=v=>{let I=v-u,w=v-c,_=t-I,C=o-w,x=Math.min(_,C);return b(x)},b=v=>{a&&clearTimeout(a),!(v<=0)&&(a=setTimeout(A,v))},E=(...v)=>{let[I,w]=l(),_=!!a;if(s=v,u=I,(w||!a)&&b(t),w)return _?p(I):m(I)};return E.cancel=d,E.flush=f,E},d2r=wAd;var mGi=we(require("fs"),1),h2r=we(require("path"),1);var jf=we(require("fs"),1),$S=require("util");var oAe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},cX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var pGi=we(require("process"),1),kru=pGi.default.getuid?!pGi.default.getuid():!1,Mru=1e4,Cj=()=>{};var m2t={isChangeErrorOk:e=>{if(!m2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!kru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!m2t.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(!m2t.isNodeError(e))throw e;if(!m2t.isChangeErrorOk(e))throw e}},Gv=m2t;var fGi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Mru,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()}}}}},Lru=new fGi;var sAe=(e,t)=>function(n){return function i(...o){return Lru.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},aAe=(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 CAd={attempt:{chmod:oAe((0,$S.promisify)(jf.default.chmod),Gv.onChangeError),chown:oAe((0,$S.promisify)(jf.default.chown),Gv.onChangeError),close:oAe((0,$S.promisify)(jf.default.close),Cj),fsync:oAe((0,$S.promisify)(jf.default.fsync),Cj),mkdir:oAe((0,$S.promisify)(jf.default.mkdir),Cj),realpath:oAe((0,$S.promisify)(jf.default.realpath),Cj),stat:oAe((0,$S.promisify)(jf.default.stat),Cj),unlink:oAe((0,$S.promisify)(jf.default.unlink),Cj),chmodSync:cX(jf.default.chmodSync,Gv.onChangeError),chownSync:cX(jf.default.chownSync,Gv.onChangeError),closeSync:cX(jf.default.closeSync,Cj),existsSync:cX(jf.default.existsSync,Cj),fsyncSync:cX(jf.default.fsync,Cj),mkdirSync:cX(jf.default.mkdirSync,Cj),realpathSync:cX(jf.default.realpathSync,Cj),statSync:cX(jf.default.statSync,Cj),unlinkSync:cX(jf.default.unlinkSync,Cj)},retry:{close:sAe((0,$S.promisify)(jf.default.close),Gv.isRetriableError),fsync:sAe((0,$S.promisify)(jf.default.fsync),Gv.isRetriableError),open:sAe((0,$S.promisify)(jf.default.open),Gv.isRetriableError),readFile:sAe((0,$S.promisify)(jf.default.readFile),Gv.isRetriableError),rename:sAe((0,$S.promisify)(jf.default.rename),Gv.isRetriableError),stat:sAe((0,$S.promisify)(jf.default.stat),Gv.isRetriableError),write:sAe((0,$S.promisify)(jf.default.write),Gv.isRetriableError),writeFile:sAe((0,$S.promisify)(jf.default.writeFile),Gv.isRetriableError),closeSync:aAe(jf.default.closeSync,Gv.isRetriableError),fsyncSync:aAe(jf.default.fsyncSync,Gv.isRetriableError),openSync:aAe(jf.default.openSync,Gv.isRetriableError),readFileSync:aAe(jf.default.readFileSync,Gv.isRetriableError),renameSync:aAe(jf.default.renameSync,Gv.isRetriableError),statSync:aAe(jf.default.statSync,Gv.isRetriableError),writeSync:aAe(jf.default.writeSync,Gv.isRetriableError),writeFileSync:aAe(jf.default.writeFileSync,Gv.isRetriableError)}},Uru=CAd;var m2r=we(require("fs"),1),h2t=we(require("path"),1);var dGi=()=>{};var _Ad=()=>{let e=dGi,t=dGi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},zru=_Ad;var xAd=()=>{let{promise:e,resolve:t,isPending:r}=zru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Vru=xAd;var qru={then:e=>{e()}};var Gru=e=>Array.isArray(e)?e:[e],Wru=e=>typeof e=="function";var SAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Gru(o).map(H=>Wru(H)?H:J=>H.test(J)),a=H=>s.some(J=>J(H)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,b={},E={},v=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:b,map:E},{promise:_,increment:C,decrement:x}=Vru(),R=0,U=(H,J,Ae,ge)=>{v.has(J)||R>=i||(R+=1,H.directories.push(J),H.directoriesNames.add(Ae),l.push(J),p.add(Ae),d.propertyIsEnumerable(Ae)||(d[Ae]=[]),d[Ae].push(J),v.add(J),!(ge>=n)&&(R>=i||K(J,ge+1)))},z=(H,J,Ae)=>{v.has(J)||R>=i||(R+=1,H.files.push(J),H.filesNames.add(Ae),f.push(J),m.add(Ae),h.propertyIsEnumerable(Ae)||(h[Ae]=[]),h[Ae].push(J),v.add(J))},V=(H,J,Ae,ge)=>{v.has(J)||R>=i||(R+=1,H.symlinks.push(J),H.symlinksNames.add(Ae),A.push(J),y.add(Ae),b.propertyIsEnumerable(Ae)||(b[Ae]=[]),b[Ae].push(J),v.add(J),r&&(ge>=n||R>=i||Ee(J,ge+1)))},te=(H,J,Ae,ge,Se)=>{u.aborted||a(J)||(ge.isDirectory()?U(H,J,Ae,Se):ge.isFile()?z(H,J,Ae):ge.isSymbolicLink()&&V(H,J,Ae,Se))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Se=J===h2t.default.sep?"":h2t.default.sep,Ce=Ae.name,pe=`${J}${Se}${Ce}`;a(pe)||(Ae.isDirectory()?U(H,pe,Ce,ge):Ae.isFile()?z(H,pe,Ce):Ae.isSymbolicLink()&&V(H,pe,Ce,ge))},q=(H,J,Ae,ge)=>{for(let Se=0,Ce=Ae.length;Se<Ce;Se++)ie(H,J,Ae[Se],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),m2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||qru).then(()=>{let Ce=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};q(Ce,H,ge,J),x()})}))},Ee=(H,J)=>{C(),m2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();m2r.default.stat(ge,(Se,Ce)=>{if(Se||u.aborted)return x();let pe=h2t.default.basename(ge),le=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};te(le,ge,pe,Ce,J),x()})})};return(async(H,J=1)=>(H=h2t.default.normalize(H),v.add(H),K(H,J),await _,u.aborted?I:w))(e)},$ru=SAd;var lX={lang:{debounce:d2r,attempt:e=>{try{return e()}catch(t){return lX.lang.castError(t)}},castArray:e=>lX.lang.isArray(e)?e:[e],castError:e=>lX.lang.isError(e)?e:lX.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(lX.lang.isNaN(e))return lX.lang.isNaN(t);if(lX.lang.isPrimitive(e)||lX.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(h2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?mGi.default.realpathSync.native(e):mGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===h2r.default.sep&&t.length-e.length>h2r.default.sep.length,poll:(e,t=Qru)=>Uru.retry.stat(t)(e,{bigint:!0}).catch(lX.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 $ru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=lX;var g2r=we(require("path"),1);var hGi=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||bl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Fru){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=bl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),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===cu.CHANGE&&a===cu.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===cu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===cu.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??q_e:Math.min(1,this.options.depth??q_e),s=this.options.limit??f2t,[a,u]=await bl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.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())bl.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(cu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!G_e&&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(cu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(cu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(g2r.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(g2r.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(cu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===cu.ADD?this.onTargetAdd(n):r===cu.ADD_DIR?this.onTargetAddDir(n):r===cu.CHANGE?this.onTargetChange(n):r===cu.UNLINK?this.onTargetUnlink(n):r===cu.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=gLe.CHANGE,r){if(this.watcher.isClosed())return;let n=g2r.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){cGi&&t.code==="EPERM"?this.onWatcherChange(gLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(d2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(d2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&G_e&&this.options.native!==!1?this.options.depth??q_e:Math.min(1,this.options.depth??q_e),n=this.options.limit??f2t,[i,o]=await bl.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(gLe.CHANGE,a,t)}))}}},Hru=hGi;var DT={interval:100,intervalId:void 0,fns:new Map,init:()=>{DT.intervalId||(DT.intervalId=setInterval(DT.resolve,DT.interval))},reset:()=>{DT.intervalId&&(clearInterval(DT.intervalId),delete DT.intervalId)},add:(e,t)=>{DT.fns.set(e,Date.now()+t),DT.init()},remove:e=>{DT.fns.delete(e)},resolve:()=>{if(!DT.fns.size)return DT.reset();let e=Date.now();for(let[t,r]of DT.fns)r>=e||(DT.remove(t),t())}},g2t=DT;var A2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=lGi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(bl.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 u=()=>{s.add.delete(n),g2t.remove(c)},c=()=>{u(),a()};g2t.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=lGi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),g2t.remove(c)},c=()=>{u(),a()};g2t.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,cu.ADD,uX.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,cu.ADD_DIR,uX.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,cu.UNLINK,uX.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,cu.UNLINK_DIR,uX.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}}};A2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};A2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Kru=A2t;var gGi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(bl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(bl.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(bl.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(bl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return bl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);bl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},AGi=gGi;var yGi=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}},Jru=yGi;var bGi=class{constructor(){this.inos={},this.paths=new AGi,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 bl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Jru(n)}reset(){this.inos={},this.paths=new AGi,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,cu.ADD,i),[cu.ADD];if(i.isDirectory())return this.updateIno(t,cu.ADD_DIR,i),[cu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,cu.UNLINK,n),[cu.UNLINK];if(n.isDirectory())return this.updateIno(t,cu.UNLINK_DIR,n),[cu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,cu.CHANGE,i),[cu.CHANGE]);if(i.isDirectory())return this.updateIno(t,cu.UNLINK,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK,cu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD,i),[cu.UNLINK_DIR,cu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK_DIR,cu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?uX.FILE:uX.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)}}},vGi=bGi;var EGi=class e extends Yru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(TT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(TT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(TT.READY,i)),this._locker=new Kru(this),this._roots=new Set,this._poller=new vGi,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&&(bl.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(TT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(TT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(TT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(TT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&bl.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)bl.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 Hru(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=bl.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=ALe.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??q_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&G_e&&l.options.native!==!1)))return!0;if(!G_e)break;let c=ALe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=bl.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 u=!r.recursive||G_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:A2r.default.watch(a,u),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},m=ALe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||G_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??q_e,a=r.limit??f2t,[u]=await bl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=bl.fs.getDepth(t);for(let p of u){let d=bl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(TT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(TT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=ALe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new vGi,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 bl.lang.noop;if(this.pollerExists(t,r))return bl.lang.noop;let i={...r,interval:r.pollingInterval??Nru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(TT.CLOSE,a),A2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(TT.CLOSE,a),A2r.default.unwatchFile(t,n)};return bl.lang.attempt(s),()=>bl.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=bl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!bl.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=ALe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await bl.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=ALe.default.dirname(t);return(await bl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=bl.lang.noop){if(bl.lang.isFunction(t))return this.watch([],{},t);if(bl.lang.isUndefined(t))return this.watch([],r,n);if(bl.lang.isFunction(r))return this.watch(t,{},r);if(bl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=bl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==bl.lang.noop&&this.on(TT.ALL,n),r.readdirMap=void 0,this.ready())}},y2r=EGi;D2r();Wt();var ynt=require("fs/promises"),niu=require("os"),iiu=we(require("path"),1),Jyd=".fern",Yyd="logs";function Xyd(){return"cli@4.13.0"}var wLe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,niu.homedir)()),xe.of(Jyd)),r=We(t,xe.of(Yyd));await nr(r)||await(0,ynt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${iiu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2095
+ `);try{return xr.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=We(t,xe.of(r));if(!(0,XVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Ra(this.docsWorkspace.absoluteFilePath,n),o=await(0,B_e.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,_t.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:fm(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:fm(o.title)}),a=this.#e.get(`library-section/${o.slug}`),u=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),c=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(c,r,s);i.push({id:a,type:"section",overviewPageId:u,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=_t.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??fm(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),u=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:u??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?_t.PageId(s):void 0,u=this.#e.get(a??`${t}/section`),c=n.apply({urlSlug:r.slug??fm(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,d=i||r.hidden,m=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:u,item:h,parentSlug:c,hideChildren:d,parentAvailability:r.availability??o})))).filter(h=>h!=null);if(a==null){let h=m.find(A=>A.type==="apiReference"&&A.hideTitle===!0&&A.overviewPageId!=null);h!=null&&(a=h.overviewPageId)}return{id:u,type:"section",overviewPageId:a,slug:c.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:d,viewers:r.viewers,orphaned:r.orphaned,children:m,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 ME(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 iLe(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:_t.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??fm(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??fm(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):vP.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(Ca),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:vP.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,"og:background-image":i,...o}=this.parsedDocsConfig.metadata;return{...o,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n),"og:background-image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return ME(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:vP.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};xNr(t,r,n)}};function Rcd(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:`${OT(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function Fcd(e){switch(e){case"beta":return _t.V1.NavigationV1Availability.Beta;case"deprecated":return _t.V1.NavigationV1Availability.Deprecated;case"ga":return _t.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return _t.V1.NavigationV1Availability.Stable;default:_e(e)}}Qt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(Ca)}async function ZVi(e,t,r){if(e instanceof O1){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return ST({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 Ea={};X(Ea,{AlgoliaSearchIndex:()=>wKa,ApiDefinitionId:()=>qKa,ApiId:()=>HKa,Availability:()=>cJa,DocsConfigId:()=>KKa,EndpointId:()=>YKa,EndpointPathLiteral:()=>aJa,EnvironmentId:()=>JKa,FileId:()=>rJa,HttpMethod:()=>uJa,IndexSegmentId:()=>CKa,JqString:()=>iJa,OrgId:()=>WKa,PageId:()=>tJa,PayloadLocation:()=>NJa,PropertyKey:()=>oJa,PullRequestState:()=>TJa,RoleId:()=>sJa,TokenId:()=>$Ka,TypeId:()=>eJa,Url:()=>nJa,VersionId:()=>GKa,WebSocketId:()=>XKa,WebhookId:()=>ZKa,algolia:()=>eqi,api:()=>lqi,commons:()=>pqi,diff:()=>lJa,docs:()=>vqi,generators:()=>Iqi,git:()=>wqi,navigation:()=>xqi,sdks:()=>Oqi,snippets:()=>FJa,snippetsFactory:()=>jJa,templates:()=>Bqi,tokens:()=>QJa});var eqi={};X(eqi,{AlgoliaSearchIndex:()=>wKa,IndexSegmentId:()=>CKa});function wKa(e){return e}function CKa(e){return e}var lqi={};X(lqi,{latest:()=>nqi,v1:()=>cqi});var nqi={};X(nqi,{AuthSchemeId:()=>_Ka,WebhookHttpMethod:()=>BKa,auth:()=>tqi,commons:()=>xKa,endpoint:()=>SKa,type_:()=>OKa,webhook:()=>rqi,websocket:()=>PKa});var tqi={};X(tqi,{AuthSchemeId:()=>_Ka});function _Ka(e){return e}var xKa={};var SKa={};var OKa={};var rqi={};X(rqi,{WebhookHttpMethod:()=>BKa});var BKa={Get:"GET",Post:"POST"};var PKa={};var cqi={};X(cqi,{SubpackageId:()=>LKa,WebSocketMessageId:()=>UKa,WebSocketMessageOrigin:()=>zKa,WebhookHttpMethod:()=>VKa,commons:()=>uqi,db:()=>iqi,read:()=>sqi,register:()=>aqi});var iqi={};X(iqi,{endpoint:()=>TKa});var TKa={};var sqi={};X(sqi,{SupportedLanguage:()=>DKa,endpoint:()=>oqi,type_:()=>RKa,webhook:()=>FKa,websocket:()=>jKa});var oqi={};X(oqi,{SupportedLanguage:()=>DKa});var DKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var RKa={};var FKa={};var jKa={};var aqi={};X(aqi,{SourceId:()=>jcd,endpoint:()=>NKa,type_:()=>QKa,webhook:()=>kKa,websocket:()=>MKa});var NKa={};var QKa={};var kKa={};var MKa={};function jcd(e){return e}var uqi={};X(uqi,{SubpackageId:()=>LKa,WebSocketMessageId:()=>UKa,WebSocketMessageOrigin:()=>zKa,WebhookHttpMethod:()=>VKa});function LKa(e){return e}function UKa(e){return e}var zKa={Client:"client",Server:"server"};var VKa={Get:"GET",Post:"POST"};var pqi={};X(pqi,{ApiDefinitionId:()=>qKa,ApiId:()=>HKa,Availability:()=>cJa,DocsConfigId:()=>KKa,EndpointId:()=>YKa,EndpointPathLiteral:()=>aJa,EnvironmentId:()=>JKa,FileId:()=>rJa,HttpMethod:()=>uJa,JqString:()=>iJa,OrgId:()=>WKa,PageId:()=>tJa,PropertyKey:()=>oJa,RoleId:()=>sJa,TokenId:()=>$Ka,TypeId:()=>eJa,Url:()=>nJa,VersionId:()=>GKa,WebSocketId:()=>XKa,WebhookId:()=>ZKa});function qKa(e){return e}function GKa(e){return e}function WKa(e){return e}function $Ka(e){return e}function HKa(e){return e}function KKa(e){return e}function JKa(e){return e}function YKa(e){return e}function XKa(e){return e}function ZKa(e){return e}function eJa(e){return e}function tJa(e){return e}function rJa(e){return e}function nJa(e){return e}function iJa(e){return e}function oJa(e){return e}function sJa(e){return e}function aJa(e){return e}var uJa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var cJa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var lJa={};var vqi={};X(vqi,{latest:()=>mqi,v1:()=>yqi,v2:()=>bqi});var mqi={};X(mqi,{Layout:()=>fJa,MdxEngine:()=>Ncd,TwitterCardSetting:()=>dJa,commons:()=>pJa,frontmatter:()=>fqi,seo:()=>dqi});var Ncd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var pJa={};var fqi={};X(fqi,{Layout:()=>fJa});var fJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var dqi={};X(dqi,{TwitterCardSetting:()=>dJa});var dJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var yqi={};X(yqi,{commons:()=>Aqi,db:()=>mJa,read:()=>hJa,write:()=>hqi});var mJa={};var hJa={};var hqi={};X(hqi,{DocsRegistrationId:()=>kcd,FilePath:()=>Qcd});function Qcd(e){return e}function kcd(e){return e}var Aqi={};X(Aqi,{ContentAlignment:()=>bJa,FontDisplay:()=>CJa,FontStyle:()=>wJa,HeaderPosition:()=>vJa,JsScriptStrategy:()=>IJa,ProgrammingLanguage:()=>gJa,SearchbarPlacement:()=>AJa,TabsPlacement:()=>yJa,TwitterCardSetting:()=>EJa,commons:()=>gqi});var gqi={};X(gqi,{ContentAlignment:()=>bJa,FontDisplay:()=>CJa,FontStyle:()=>wJa,HeaderPosition:()=>vJa,JsScriptStrategy:()=>IJa,ProgrammingLanguage:()=>gJa,SearchbarPlacement:()=>AJa,TabsPlacement:()=>yJa,TwitterCardSetting:()=>EJa});var gJa={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 AJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var yJa={Header:"HEADER",Sidebar:"SIDEBAR"};var bJa={Center:"CENTER",Left:"LEFT"};var vJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var EJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var IJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var wJa={Normal:"normal",Italic:"italic"};var CJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var bqi={};X(bqi,{read:()=>_Ja,write:()=>xJa});var _Ja={};var xJa={};var Iqi={};X(Iqi,{ChangelogEntryType:()=>OJa,GeneratorId:()=>Mcd,GeneratorLanguage:()=>Lcd,ReleaseType:()=>BJa,cli:()=>SJa,commons:()=>Eqi,versions:()=>PJa});var SJa={};var Eqi={};X(Eqi,{ChangelogEntryType:()=>OJa,ReleaseType:()=>BJa});var OJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var BJa={Ga:"GA",Rc:"RC"};var PJa={};function Mcd(e){return e}var Lcd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var wqi={};X(wqi,{PullRequestState:()=>TJa});var TJa={Open:"open",Closed:"closed",Merged:"merged"};var xqi={};X(xqi,{latest:()=>Cqi,v1:()=>_qi});var Cqi={};X(Cqi,{NodeId:()=>Vcd,ProductId:()=>qcd,Slug:()=>Ucd,TabId:()=>zcd});function Ucd(e){return e}function zcd(e){return e}function Vcd(e){return e}function qcd(e){return e}var _qi={};X(_qi,{NavigationV1Availability:()=>Kcd,NodeId:()=>$cd,ProductId:()=>Hcd,Slug:()=>Gcd,TabId:()=>Wcd});function Gcd(e){return e}function Wcd(e){return e}function $cd(e){return e}function Hcd(e){return e}var Kcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var Oqi={};X(Oqi,{Language:()=>DJa,VersionBump:()=>RJa,versions:()=>Sqi});var Sqi={};X(Sqi,{Language:()=>DJa,VersionBump:()=>RJa});var DJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var RJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var FJa={};var jJa={};var Bqi={};X(Bqi,{PayloadLocation:()=>NJa});var NJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var QJa={};var BNr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function kJa({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=Ea.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:qS(o)},i.push(o)})}),r}var PNr=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 MJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends PNr{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 ${MJa(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})}}},Vv=class extends Wo{},vj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var LJa="x-fern-base-path",UJa="x-fern-availability",TNr="x-fern-sdk-group-name",zJa="x-fern-global-headers",VJa="x-fern-sdk-method-name";var qJa="x-fern-webhook",GJa="x-fern-access-token-locator",WJa="x-fern-basic",$Ja="x-fern-username-variable-name",HJa="x-fern-password-variable-name",KJa="x-fern-bearer",JJa="x-fern-token-variable-name",YJa="x-fern-header",XJa="x-fern-header-variable-name",ZJa="x-fern-server-name",eYa="x-fern-examples";var DNr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[ZJa]}convert(){if(this.serverName!=null)return this.serverName}};var RNr=class extends Wo{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 DNr({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:Ea.EnvironmentId(t),baseUrl:this.url}}};function P_e(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,u)=>new RNr({input:a,context:r,accessPath:n,pathId:["servers",`${u}`]}));return[...i,...s]}function Lp(e){return typeof e=="object"&&Xo(e)&&"$ref"in e&&typeof e.$ref=="string"}function WS(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:(Lp(i)&&(i=WS(i,t,r)),i)}function FNr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var vYa=we(By());var jNr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[WJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var NNr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[HJa]}convert(){return this.passwordVariableName}};var QNr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[$Ja]}convert(){return this.usernameVariableName}};var kNr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[KJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var MNr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[JJa]}convert(){return this.tokenVariableName}};function tYa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var rYa="x-bearer-format",nYa="x-code-samples",iYa="x-codeSamples";var LNr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[rYa]}convert(){return this.bearerFormat}};var UNr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[YJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var zNr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[XJa]}convert(){return this.headerVariableName}};function oYa(e){return e.type==="apiKey"}var Lrt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){oYa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new UNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new zNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new LNr({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()}}};jJn();Q7o();function VNr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Urt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function oLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(oLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function qNr(e){if(Array.isArray(e))return e.map(Urt);if(typeof e=="symbol")return[e];e=oLe(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 kQt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Pqt(t))return r;let n=e[t];return n===void 0?VNr(t)?kQt(e,qNr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Urt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Jcd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Pqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Jcd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Pqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function sYa(e){return function(t){return kQt(t,e)}}function aYa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}fKn();function Pqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Dqi(e,t,r){return typeof r!="function"?Dqi(e,t,()=>{}):Tqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:Tqi(i,o,n,c)},new Map)}function Tqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return Ycd(e,t,r,n);case"function":return Object.keys(t).length>0?Tqi(e,{...t},r,n):Pqi(e,t);default:return aYa(e)?typeof t=="string"?t==="":!0:Pqi(e,t)}}function Ycd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return uYa(e,t,r,n);if(t instanceof Map)return Xcd(e,t,r,n);if(t instanceof Set)return Zcd(e,t,r,n);let i=Object.keys(t);if(e==null||PIt(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(!PIt(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 Xcd(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 uYa(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 u=0;u<e.length;u++){if(i.has(u))continue;let c=e[u],l=!1;if(r(c,s,o,e,t,n)&&(l=!0),l){i.add(u),a=!0;break}}if(!a)return!1}return!0}function Zcd(e,t,r,n){return t.size===0?!0:e instanceof Set?uYa([...e],[...t],r,n):!1}function GNr(e,t){return Dqi(e,t,()=>{})}N7o();function cYa(e){return e=j7o(e),t=>GNr(t,e)}mKn();Cqt();dKn();function lYa(e,t){return F7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(pqe(e)===Bqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),IM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case xqt:case _qt:case Sqt:{let a=new e.constructor(e?.valueOf());return IM(a,e),a}case Oqt:{let a={};return IM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function pYa(e){return lYa(e)}var eld=/^(?:0|[1-9]\d*)$/;function fYa(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 eld.test(e)}}Cqt();function dYa(e){return e!==null&&typeof e=="object"&&pqe(e)==="[object Arguments]"}function mYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&VNr(t)&&e?.[t]==null?r=qNr(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)||dYa(n))&&fYa(o)&&o<n.length))return!1;n=n[o]}return!0}function hYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Urt(e);break}}return t=pYa(t),function(r){let n=kQt(r,e);return n===void 0?mYa(r,e):t===void 0?n===void 0:GNr(n,t)}}function gYa(e){if(e==null)return q9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?hYa(e[0],e[1]):cYa(e);case"string":case"symbol":case"number":return sYa(e)}}jJn();hKn();function WNr(e,t=q9t){return e==null?{}:Ox(e,gYa(t))}sXo();function AYa(e){return oXo(oLe(e))}U7o();function yYa(e){return typeof e!="string"&&(e=oLe(e)),e.replace(/['\u2019]/g,"")}function G9(e){return L7o(yYa(AYa(e)))}function Qm(e){if(e!=null)return Array.isArray(e)?e:[e]}function $Nr({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`${tld(s)}${rld(e)}.${nld(n,i,o,a)}`}function tld(e){return e?"webhook_":"endpoint_"}function rld(e){return e!=null?Qm(e)?.map(t=>G9(t)).join("/"):""}function nld(e,t,r,n){return e||t||G9(r??"")||G9(n??"")}function bYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var HNr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[GJa],this.accessTokenLocator!=null&&(bYa(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 KNr=class extends Wo{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 Lrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new HNr({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=$Nr({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:Ea.EndpointId(r),accessTokenLocator:Ea.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var zrt=class extends Wo{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 jNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new QNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new NNr({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 kNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new MNr({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":{tYa(this.input)?(this.authScheme="header",this.headerAuthNode=new Lrt({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 KNr({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 vYa.UnreachableCaseError(this.authScheme);return}}};var Vrt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=FNr(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 zrt({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(Xo))}};var JNr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[LJa],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 EYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function IYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function qrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Qm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!EYa(i))&&(s=IYa(s,s.type==="enum"?s.default:void 0)),{key:Ea.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(Xo)).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function YNr(e,t){return Lp(e)?WS(e,t,void 0):e}function T_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function wYa(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 CYa(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 _Ya=we(By());var Rqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Fqi=["int16","int32","int64","int8","sf-integer","uint8"],jqi=["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"],Nqi=["beta","pre-release","in-development","generally-available","deprecated"];function qv(e,t){return Lp(e)?WS(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var OU=class extends Wo{availability;constructor(t){super(t),this.safeParse()}parse(){if(qv(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[UJa];r!=null&&(Nqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${Nqi.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return Ea.Availability.Beta;case"in-development":return Ea.Availability.InDevelopment;case"generally-available":return Ea.Availability.GenerallyAvailable;case"deprecated":return Ea.Availability.Deprecated;case void 0:return;default:new _Ya.UnreachableCaseError(this.availability);return}}};var ZNr=we(By());function xYa(e){return typeof e=="object"&&e!=null&&"language"in e}function SYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function OYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function BYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function XNr(e){return typeof e=="object"&&e!=null&&"event"in e}function Qqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(XNr)}function D_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function PYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var eQr=class extends Wo{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[eYa]}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 D_e(s)?[i,{type:"filenameWithData",filename:s.filename,data:Ea.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>D_e(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:Ea.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 ZNr.UnreachableCaseError(o.multipartType);return}}).filter(Xo))};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=PYa(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 ZNr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{OYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Qqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Qqi(r.response)&&BYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ZNr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{xYa(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})):SYa(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 u=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,d])=>[Ea.PropertyKey(p),d])),c=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,d])=>[Ea.PropertyKey(p),d])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,d])=>[Ea.PropertyKey(p),d]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(u).length>0?u:void 0,queryParameters:Object.keys(c).length>0?c:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var MQt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[TNr]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>Ea.api.v1.SubpackageId(G9(r)))}};var tQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[VJa]}convert(){return this.sdkMethodName}};var rQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[qJa]}convert(){return this.isWebhook}};var nQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[nYa]??[],...this.input[iYa]??[]],this.codeSamples.forEach(t=>{[...Object.values(Ea.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 sLe=we(By());function kqi(e,t){return Lp(e)?WS(e,t,void 0):e}function TYa(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 u_="",nX=class extends Wo{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&&(D_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>D_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new sLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=kqi(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=kqi(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 sLe.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(XNr)){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 sLe.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 D_e(i)?[r,{type:"filenameWithData",filename:i.filename,data:Ea.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>D_e(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:Ea.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 sLe.UnreachableCaseError(n.multipartType);return}}).filter(Xo))};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 sLe.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 sLe.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(Xo));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(Xo));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:TYa(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?qS(this.name):this.summary!=null?qS(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function DYa(e,t){return Lp(e)?WS(e,t,void 0):e}var GYa=we(By());var RYa="#/components/schemas/";function Grt(e){if(e.$ref.startsWith(RYa))return e.$ref.replace(RYa,"")}function nAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function R_e(e){return typeof e.type=="string"&&e.type==="array"}function FYa(e){return e.type==="boolean"}function jYa(e){return e.type==="integer"}function F_e(e){return!Array.isArray(e.type)&&!R_e(e)}function NYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||F_e(t)||R_e(t))}function QYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function kYa(e){return e.type==="null"}function MYa(e){return e.type==="number"}function Mqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function LYa(e){return e.type==="string"}var iQr=class extends vj{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Fg({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 Qm(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 oQr=class extends Vv{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 OU({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 sQr=class extends vj{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 Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Xo)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>Qm(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(Xo).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(nAe).filter(Xo):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function aQr(e){return e!=null&&e.length>0?e:[void 0]}var Wrt=class extends vj{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 Fg({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 Fg({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(Lp(t))return Grt(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Fg({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Xo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return qrt(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}}}]:Qm(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(Xo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>aQr(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=>Ea.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=qv(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Fg({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 uQr=class extends vj{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=>qv(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>qv(t,this.context.document)?.type!=="null"?new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Xo);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=qv({$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 Fg({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(Xo);return this.isNullable&&i!=null?i.map(nAe).filter(Xo):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:Ea.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>Qm(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??qS(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(Xo)).filter(Xo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>Qm(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?qS(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?qS(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(Xo)).filter(Xo)}:void 0,n=this.isNullable?nAe(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 cQr=class extends Vv{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 j_e=class extends Vv{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(Lp(r)){let i=qv(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(Xo),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 UYa=we(By());function ild(e){return Fqi.includes(e)}var lQr=class extends Vv{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&&(ild(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Fqi.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 UYa.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 pQr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return nAe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var zYa=we(By());function old(e){return Rqi.includes(e)}var fQr=class extends Vv{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&&(old(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Rqi.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 zYa.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 VYa=we(By());function sld(e){return jqi.includes(e)}var dQr=class extends Vv{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 VYa.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&&(sld(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${jqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new j_e({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 qYa=we(By());var mQr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,qYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var aLe=class extends vj{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=Grt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&F_e(t)&&(this.maybeEnumConverterNode=new j_e({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:Ea.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=qv(this.input,this.context.document);if(r!=null)return new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Fg=class e extends vj{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 OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),F_e(this.input)&&QYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=Grt(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 aLe({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 oQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(NYa(this.input))this.typeShapeNode=new sQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(F_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new uQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(Mqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new Wrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(F_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new j_e({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":Mqi(this.input)&&(this.typeShapeNode=new Wrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":R_e(this.input)&&(this.typeShapeNode=new iQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":FYa(this.input)&&(this.typeShapeNode=new cQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":jYa(this.input)&&(this.typeShapeNode=new lQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":MYa(this.input)&&(this.typeShapeNode=new fQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":LYa(this.input)&&(this.typeShapeNode=new dQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":kYa(this.input)&&(this.typeShapeNode=new pQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new GYa.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 Wrt({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 mQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!R_e(this.input)&&this.input==null||R_e(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=Qm(t)?.map(n=>this.nullable?nAe(n):n).filter(Xo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function N_e(e){if(e!=null)return qrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var iX=class extends Vv{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Lp(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 OU({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=DYa(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 WYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Lqi=we(By());function hQr(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[Ea.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var $Ya=we(Opi(),1),$rt=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=$Ya.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 ald(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var gQr=class extends Wo{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 Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),ald(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Lp(r)?i=FNr(r.$ref,this.context.document):i=r,i!=null)return[t,new zrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(Xo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[Ea.api.latest.AuthSchemeId(t),n]}).filter(Xo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=Qm(r.convert());return i==null?[t,void 0]:[Ea.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Xo(r))):void 0}}};var AQr=class extends Fg{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=qv(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Lp(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=qv(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 yQr=class extends Wo{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=qv(this.input.schema,this.context.document);this.availability=new OU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new aLe({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=$rt.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Fg({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 AQr({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(Xo))):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?{[u_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[u_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Qm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=G9([this.method,this.path,this.contentType,"request"].join("_"));return hQr({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ea.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new Lqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof aLe)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:Ea.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:Ea.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=Qm(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:Ea.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new Lqi.UnreachableCaseError(i.multipartType),[]}}).filter(Xo).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 bQr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=WYa(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 yQr({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])=>Qm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Qm(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(Xo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var HYa={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 KYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var vQr=we(By());var JYa="application/json";var YYa="application/octet-stream";function XYa(e,t){return e===t||t===u_||e===u_}var LQt=class extends Wo{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,u){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=u,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,u]of Object.entries(r))for(let c of u)XYa(a,o)&&(n.add(a),this.examples?.push(new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,T_e(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[u,c,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new nX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,T_e(c,s),{requestBody:u,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,u,c]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new nX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,T_e(u,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,u]of r.slice(t.length))this.examples?.push(...u.map(c=>new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,T_e(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[u_];if(o!=null)for(let s of o)this.examples?.push(new nX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,T_e(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=$rt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=JYa,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 Fg({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=YYa,this.contentSubtype=qv(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 Fg({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=WNr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[u_]??=[],r[u_]=[{value:this.input.example}]);let n=qv(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=WNr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[u_]??=[],r[u_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[u_]??=[],r[u_]?.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(([u])=>!i.has(u)&&u!==u_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==u_);Object.keys(r).every(a=>a===u_)||this.matchExamplesByIndex(o,s),!i.has(u_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Qm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new vQr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Qm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=G9([this.method,this.path,this.statusCode,"response"].join("_"));return hQr({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ea.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new vQr.UnreachableCaseError(n);return}}).filter(Xo)}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 vQr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var UQt=class extends Wo{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=KYa(this.input,this.context.document);if(r==null){this.context.errors.error({message:Lp(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 iX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new LQt({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 LQt({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(Xo)}};var EQr=class extends Wo{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 UQt({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 UQt({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 aQr(N_e(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(Xo))})))}).filter(Xo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=Qm(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??HYa[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let u=a.convert();if(u!=null&&u.responseBody?.type==="json")return{name:u.name,description:u.description,responseBody:u.responseBody}}).filter(Xo)})).filter(Xo)})).filter(Xo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var Q_e=class extends Wo{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 nX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,T_e(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 OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=P_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new rQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Lp(n)){let o=YNr(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 iX({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 iX({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 iX({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 nQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new bQr({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 EQr({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 Vrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new MQt({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 MQt({input:{[TNr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new tQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>$Nr({namespace:Qm(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Xo),this.xFernExamplesNode=new eQr({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(Xo)}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:Ea.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(Xo),i=CYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:wYa(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:Ea.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(d=>d.value.toString())??[],queryParameters:N_e(this.queryParameters)?.flat(),headers:N_e(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Xo)}}).filter(Xo);let o=this.servers?.map(l=>l.convert()).filter(Xo),s=this.convertPathToPathParts();if(s==null)return;let a,u=this.auth?.convert();u!=null&&(a=Object.keys(u));let c=t?.flatMap(l=>l.headers).filter(Xo);return this.endpointIds.map((l,p)=>({id:Ea.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(d=>Ea.api.v1.SubpackageId(d)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(d=>Ea.api.latest.AuthSchemeId(d)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:N_e(this.pathParameters)?.flat(),queryParameters:N_e(this.queryParameters)?.flat(),requestHeaders:N_e(this.requestHeaders)?.flat(),responseHeaders:c!=null&&c.length>0?c:void 0,requests:this.requests?.convert(),responses:t?.map(d=>d.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var Hrt=class extends Wo{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=P_e(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 Q_e({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 Q_e({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 Q_e({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 Q_e({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 Q_e({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(Xo)}};function IQr(e){return"payloads"in e}var wQr=class extends Wo{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 Hrt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:P_e(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(Xo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{IQr(o)?r[Ea.WebhookId(o.id)]=o:t[Ea.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var CQr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[zJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||YNr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return qrt(this.globalHeaders,this.requiredProperties)?.flat()}};function ZYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var _Qr=class extends Wo{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=ZYa(o,this.context.document);if(s!=null)return new Hrt({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(Xo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{IQr(n)&&(t[Ea.WebhookId(n.id)]=n)}),t),{})}};var xQr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=P_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Vrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new JNr({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 wQr({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 _Qr({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 gQr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new CQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=EC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=kJa({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:Ea.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}}};xi();async function Uqi(e,t){if(e instanceof O1){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new B9(e.absoluteFilePath),n=await fU({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 BNr,generatedTypes:{}},u=new xQr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=aWe(o,u.convert())}return o}dg();Wt();var plu=we(qqi(),1),flu=we(f2r(),1),Kkr=require("fs/promises"),dlu=we(require("http"),1),mlu=we(require("path"),1);var Yru=require("events"),A2r=we(require("fs"),1),ALe=we(require("path"),1);var Rru=we(require("os"),1),Fru=300,q_e=20,f2t=1e7,jru=Rru.default.platform();var IAd=jru==="darwin",cGi=jru==="win32",G_e=IAd||cGi,Nru=3e3,Qru=2e4,lGi=1250;var uX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(uX||(uX={}));var gLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(gLe||(gLe={}));var d2t;(function(e){e.CHANGE="change",e.ERROR="error"})(d2t||(d2t={}));var cu;(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"})(cu||(cu={}));var TT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(TT||(TT={}));var wAd=(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,u=0,c=0,l=()=>{let v=Date.now(),I=v-u,w=v-c,_=I>=t||w>=o;return[v,_]},p=v=>{if(c=v,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=v=>{if(c=v,n)return p(v)},h=v=>{if(i&&s)return p(v);s=void 0},A=()=>{a=void 0;let[v,I]=l();return I?h(v):y(v)},y=v=>{let I=v-u,w=v-c,_=t-I,C=o-w,x=Math.min(_,C);return b(x)},b=v=>{a&&clearTimeout(a),!(v<=0)&&(a=setTimeout(A,v))},E=(...v)=>{let[I,w]=l(),_=!!a;if(s=v,u=I,(w||!a)&&b(t),w)return _?p(I):m(I)};return E.cancel=d,E.flush=f,E},d2r=wAd;var mGi=we(require("fs"),1),h2r=we(require("path"),1);var jf=we(require("fs"),1),$S=require("util");var oAe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},cX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var pGi=we(require("process"),1),kru=pGi.default.getuid?!pGi.default.getuid():!1,Mru=1e4,Cj=()=>{};var m2t={isChangeErrorOk:e=>{if(!m2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!kru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!m2t.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(!m2t.isNodeError(e))throw e;if(!m2t.isChangeErrorOk(e))throw e}},Gv=m2t;var fGi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Mru,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()}}}}},Lru=new fGi;var sAe=(e,t)=>function(n){return function i(...o){return Lru.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},aAe=(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 CAd={attempt:{chmod:oAe((0,$S.promisify)(jf.default.chmod),Gv.onChangeError),chown:oAe((0,$S.promisify)(jf.default.chown),Gv.onChangeError),close:oAe((0,$S.promisify)(jf.default.close),Cj),fsync:oAe((0,$S.promisify)(jf.default.fsync),Cj),mkdir:oAe((0,$S.promisify)(jf.default.mkdir),Cj),realpath:oAe((0,$S.promisify)(jf.default.realpath),Cj),stat:oAe((0,$S.promisify)(jf.default.stat),Cj),unlink:oAe((0,$S.promisify)(jf.default.unlink),Cj),chmodSync:cX(jf.default.chmodSync,Gv.onChangeError),chownSync:cX(jf.default.chownSync,Gv.onChangeError),closeSync:cX(jf.default.closeSync,Cj),existsSync:cX(jf.default.existsSync,Cj),fsyncSync:cX(jf.default.fsync,Cj),mkdirSync:cX(jf.default.mkdirSync,Cj),realpathSync:cX(jf.default.realpathSync,Cj),statSync:cX(jf.default.statSync,Cj),unlinkSync:cX(jf.default.unlinkSync,Cj)},retry:{close:sAe((0,$S.promisify)(jf.default.close),Gv.isRetriableError),fsync:sAe((0,$S.promisify)(jf.default.fsync),Gv.isRetriableError),open:sAe((0,$S.promisify)(jf.default.open),Gv.isRetriableError),readFile:sAe((0,$S.promisify)(jf.default.readFile),Gv.isRetriableError),rename:sAe((0,$S.promisify)(jf.default.rename),Gv.isRetriableError),stat:sAe((0,$S.promisify)(jf.default.stat),Gv.isRetriableError),write:sAe((0,$S.promisify)(jf.default.write),Gv.isRetriableError),writeFile:sAe((0,$S.promisify)(jf.default.writeFile),Gv.isRetriableError),closeSync:aAe(jf.default.closeSync,Gv.isRetriableError),fsyncSync:aAe(jf.default.fsyncSync,Gv.isRetriableError),openSync:aAe(jf.default.openSync,Gv.isRetriableError),readFileSync:aAe(jf.default.readFileSync,Gv.isRetriableError),renameSync:aAe(jf.default.renameSync,Gv.isRetriableError),statSync:aAe(jf.default.statSync,Gv.isRetriableError),writeSync:aAe(jf.default.writeSync,Gv.isRetriableError),writeFileSync:aAe(jf.default.writeFileSync,Gv.isRetriableError)}},Uru=CAd;var m2r=we(require("fs"),1),h2t=we(require("path"),1);var dGi=()=>{};var _Ad=()=>{let e=dGi,t=dGi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},zru=_Ad;var xAd=()=>{let{promise:e,resolve:t,isPending:r}=zru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Vru=xAd;var qru={then:e=>{e()}};var Gru=e=>Array.isArray(e)?e:[e],Wru=e=>typeof e=="function";var SAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Gru(o).map(H=>Wru(H)?H:J=>H.test(J)),a=H=>s.some(J=>J(H)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,b={},E={},v=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:b,map:E},{promise:_,increment:C,decrement:x}=Vru(),R=0,U=(H,J,Ae,ge)=>{v.has(J)||R>=i||(R+=1,H.directories.push(J),H.directoriesNames.add(Ae),l.push(J),p.add(Ae),d.propertyIsEnumerable(Ae)||(d[Ae]=[]),d[Ae].push(J),v.add(J),!(ge>=n)&&(R>=i||K(J,ge+1)))},z=(H,J,Ae)=>{v.has(J)||R>=i||(R+=1,H.files.push(J),H.filesNames.add(Ae),f.push(J),m.add(Ae),h.propertyIsEnumerable(Ae)||(h[Ae]=[]),h[Ae].push(J),v.add(J))},V=(H,J,Ae,ge)=>{v.has(J)||R>=i||(R+=1,H.symlinks.push(J),H.symlinksNames.add(Ae),A.push(J),y.add(Ae),b.propertyIsEnumerable(Ae)||(b[Ae]=[]),b[Ae].push(J),v.add(J),r&&(ge>=n||R>=i||Ee(J,ge+1)))},te=(H,J,Ae,ge,Se)=>{u.aborted||a(J)||(ge.isDirectory()?U(H,J,Ae,Se):ge.isFile()?z(H,J,Ae):ge.isSymbolicLink()&&V(H,J,Ae,Se))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Se=J===h2t.default.sep?"":h2t.default.sep,Ce=Ae.name,pe=`${J}${Se}${Ce}`;a(pe)||(Ae.isDirectory()?U(H,pe,Ce,ge):Ae.isFile()?z(H,pe,Ce):Ae.isSymbolicLink()&&V(H,pe,Ce,ge))},q=(H,J,Ae,ge)=>{for(let Se=0,Ce=Ae.length;Se<Ce;Se++)ie(H,J,Ae[Se],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),m2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||qru).then(()=>{let Ce=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};q(Ce,H,ge,J),x()})}))},Ee=(H,J)=>{C(),m2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();m2r.default.stat(ge,(Se,Ce)=>{if(Se||u.aborted)return x();let pe=h2t.default.basename(ge),le=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};te(le,ge,pe,Ce,J),x()})})};return(async(H,J=1)=>(H=h2t.default.normalize(H),v.add(H),K(H,J),await _,u.aborted?I:w))(e)},$ru=SAd;var lX={lang:{debounce:d2r,attempt:e=>{try{return e()}catch(t){return lX.lang.castError(t)}},castArray:e=>lX.lang.isArray(e)?e:[e],castError:e=>lX.lang.isError(e)?e:lX.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(lX.lang.isNaN(e))return lX.lang.isNaN(t);if(lX.lang.isPrimitive(e)||lX.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(h2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?mGi.default.realpathSync.native(e):mGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===h2r.default.sep&&t.length-e.length>h2r.default.sep.length,poll:(e,t=Qru)=>Uru.retry.stat(t)(e,{bigint:!0}).catch(lX.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 $ru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=lX;var g2r=we(require("path"),1);var hGi=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||bl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Fru){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=bl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),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===cu.CHANGE&&a===cu.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===cu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===cu.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??q_e:Math.min(1,this.options.depth??q_e),s=this.options.limit??f2t,[a,u]=await bl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.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())bl.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(cu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!G_e&&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(cu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(cu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(g2r.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(g2r.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(cu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===cu.ADD?this.onTargetAdd(n):r===cu.ADD_DIR?this.onTargetAddDir(n):r===cu.CHANGE?this.onTargetChange(n):r===cu.UNLINK?this.onTargetUnlink(n):r===cu.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=gLe.CHANGE,r){if(this.watcher.isClosed())return;let n=g2r.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){cGi&&t.code==="EPERM"?this.onWatcherChange(gLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(d2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(d2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&G_e&&this.options.native!==!1?this.options.depth??q_e:Math.min(1,this.options.depth??q_e),n=this.options.limit??f2t,[i,o]=await bl.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(gLe.CHANGE,a,t)}))}}},Hru=hGi;var DT={interval:100,intervalId:void 0,fns:new Map,init:()=>{DT.intervalId||(DT.intervalId=setInterval(DT.resolve,DT.interval))},reset:()=>{DT.intervalId&&(clearInterval(DT.intervalId),delete DT.intervalId)},add:(e,t)=>{DT.fns.set(e,Date.now()+t),DT.init()},remove:e=>{DT.fns.delete(e)},resolve:()=>{if(!DT.fns.size)return DT.reset();let e=Date.now();for(let[t,r]of DT.fns)r>=e||(DT.remove(t),t())}},g2t=DT;var A2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=lGi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(bl.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 u=()=>{s.add.delete(n),g2t.remove(c)},c=()=>{u(),a()};g2t.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=lGi){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),g2t.remove(c)},c=()=>{u(),a()};g2t.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,cu.ADD,uX.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,cu.ADD_DIR,uX.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,cu.UNLINK,uX.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,cu.UNLINK_DIR,uX.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}}};A2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};A2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Kru=A2t;var gGi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(bl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(bl.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(bl.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(bl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return bl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);bl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},AGi=gGi;var yGi=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}},Jru=yGi;var bGi=class{constructor(){this.inos={},this.paths=new AGi,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 bl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Jru(n)}reset(){this.inos={},this.paths=new AGi,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,cu.ADD,i),[cu.ADD];if(i.isDirectory())return this.updateIno(t,cu.ADD_DIR,i),[cu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,cu.UNLINK,n),[cu.UNLINK];if(n.isDirectory())return this.updateIno(t,cu.UNLINK_DIR,n),[cu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,cu.CHANGE,i),[cu.CHANGE]);if(i.isDirectory())return this.updateIno(t,cu.UNLINK,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK,cu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD,i),[cu.UNLINK_DIR,cu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK_DIR,cu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?uX.FILE:uX.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)}}},vGi=bGi;var EGi=class e extends Yru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(TT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(TT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(TT.READY,i)),this._locker=new Kru(this),this._roots=new Set,this._poller=new vGi,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&&(bl.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(TT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(TT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(TT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(TT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&bl.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)bl.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 Hru(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=bl.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=ALe.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??q_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&G_e&&l.options.native!==!1)))return!0;if(!G_e)break;let c=ALe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=bl.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 u=!r.recursive||G_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:A2r.default.watch(a,u),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},m=ALe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||G_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??q_e,a=r.limit??f2t,[u]=await bl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=bl.fs.getDepth(t);for(let p of u){let d=bl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(TT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(TT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=ALe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new vGi,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 bl.lang.noop;if(this.pollerExists(t,r))return bl.lang.noop;let i={...r,interval:r.pollingInterval??Nru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(TT.CLOSE,a),A2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(TT.CLOSE,a),A2r.default.unwatchFile(t,n)};return bl.lang.attempt(s),()=>bl.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=bl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!bl.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=ALe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await bl.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=ALe.default.dirname(t);return(await bl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=bl.lang.noop){if(bl.lang.isFunction(t))return this.watch([],{},t);if(bl.lang.isUndefined(t))return this.watch([],r,n);if(bl.lang.isFunction(r))return this.watch(t,{},r);if(bl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=bl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==bl.lang.noop&&this.on(TT.ALL,n),r.readdirMap=void 0,this.ready())}},y2r=EGi;D2r();Wt();var ynt=require("fs/promises"),niu=require("os"),iiu=we(require("path"),1),Jyd=".fern",Yyd="logs";function Xyd(){return"cli@4.14.0"}var wLe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,niu.homedir)()),xe.of(Jyd)),r=We(t,xe.of(Yyd));await nr(r)||await(0,ynt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${iiu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2096
2096
  `);await(0,ynt.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)+`
2097
2097
  `;try{await(0,ynt.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:Xyd(),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 VGi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function oiu(e){let t=Zyd();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i}=e,o=new Map;function s(u){let c=JSON.stringify(u),l=[];for(let[p]of o)try{p.send(c)}catch{l.push(p)}for(let p of l){let d=o.get(p);d&&(clearInterval(d.pingInterval),o.delete(p))}}let a=t.serve({port:r,fetch(u,c){if(u.method==="OPTIONS")return new Response(null,{status:204,headers:VGi});let l=new URL(u.url);if(u.headers.get("upgrade")?.toLowerCase()==="websocket"){c.upgrade(u,{data:{connectionId:`${Date.now()}`}});return}if(u.method==="POST"&&l.pathname==="/v2/registry/docs/load-with-url")return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...VGi}});let p=/^\/_local\/(.*)/.exec(l.pathname);return u.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:VGi}):new Response("Not Found",{status:404})},websocket:{open(u){let{connectionId:c}=u.data,l=setInterval(()=>{let p=o.get(u);if(!p)return;let d=Date.now();if(d-p.lastPong>9e4){u.close();return}try{u.send(JSON.stringify({type:"ping",timestamp:d}))}catch{u.close()}},3e4);o.set(u,{pingInterval:l,lastPong:Date.now()});try{u.send(JSON.stringify({type:"connected",connectionId:c}))}catch{}},message(u,c){try{let l=JSON.parse(c.toString());if(l.type==="pong"){let p=o.get(u);p&&(p.lastPong=Date.now())}else wLe.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(u){let c=o.get(u);c&&(clearInterval(c.pingInterval),o.delete(u))}}});return{sendData:s,stop:u=>a.stop(u)}}function Zyd(){return globalThis.Bun}Wt();var _Wi=we(XGi(),1),nlu=we(dWi(),1),_j=require("fs/promises"),ilu=require("os"),olu=we(dC(),1),slu=we(tlu(),1),Vkr=process.platform==="win32",CWi=Oe.cyan("[docs]:"),BId="etag",PId=23,rlu=e=>e.padEnd(PId," "),TId="preview",DId="app-preview",RId="bundle",FId=".next",jId="standalone",NId=".fern",QId="packages/fern-docs/bundle/.next/server/instrumentation.js",kId=".npmrc",MId=".pnpmfile.cjs",LId="pnpm-workspace.yaml",UId='Cannot find matching keyid: {"signatures":';function zId(){return We(Vt.of((0,ilu.homedir)()),xe.of(NId))}function Nnt({app:e=!1}){return We(zId(),xe.of(e?DId:TId))}function nxe({app:e=!1}){return We(Nnt({app:e}),xe.of(e?FId:RId))}function J2t({app:e=!1}){return We(nxe({app:e}),xe.of(jId))}function VId({app:e=!1}){return We(J2t({app:e}),xe.of(QId))}function qId({app:e=!1}){return We(J2t({app:e}),xe.of(LId))}function GId({app:e=!1}){return We(J2t({app:e}),xe.of(MId))}function WId({app:e=!1}){return We(J2t({app:e}),xe.of(kId))}function DLe(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function $Id({app:e=!1}){return We(Nnt({app:e}),xe.of(BId))}var HId=`module.exports = {
2098
2098
  hooks: {
@@ -2465,8 +2465,15 @@ function AnalyzeSdkDiff(
2465
2465
 
2466
2466
  Version Bump Guidelines:
2467
2467
  - MAJOR: Breaking changes (removed/renamed functions, changed signatures, removed parameters)
2468
- - MINOR: New features that are backward compatible (new functions, new optional parameters)
2469
- - PATCH: Bug fixes, documentation, internal refactoring, or other changes that don't affect the public API
2468
+ - MINOR: New features that are backward compatible (new functions, new optional parameters).
2469
+ Also MINOR: behavioral changes invisible to the public API surface that still affect consumers:
2470
+ - Changed HTTP status code handling (e.g. 404 now throws instead of returning null)
2471
+ - Changed default parameter values (timeout, retry count, page size, base URL)
2472
+ - Changed serialization behavior (date formats, null handling, field ordering)
2473
+ - Changed error message text that consumers may depend on
2474
+ - Changed HTTP header names or values sent to the server
2475
+ - Changed retry or backoff behavior (different retry counts, delay strategies)
2476
+ - PATCH: Bug fixes, documentation, internal refactoring with no observable behavioral change
2470
2477
  - NO_CHANGE: The diff is empty
2471
2478
 
2472
2479
  --- Examples ---
@@ -2503,12 +2510,12 @@ function AnalyzeSdkDiff(
2503
2510
  version_bump: MINOR
2504
2511
  reason: New capability added, nothing removed or changed.
2505
2512
 
2506
- --- PATCH: internal retry constant ---
2513
+ --- MINOR: changed default retry count ---
2507
2514
  diff --git a/src/core/http_client.py b/src/core/http_client.py
2508
2515
  -MAX_RETRIES = 3
2509
2516
  +MAX_RETRIES = 5
2510
- version_bump: PATCH
2511
- reason: Implementation detail \u2014 public API surface unchanged.
2517
+ version_bump: MINOR
2518
+ reason: Changed default retry count \u2014 existing consumers will experience different retry behavior.
2512
2519
 
2513
2520
  --- PATCH: Go import reorganization ---
2514
2521
  diff --git a/client.go b/client.go
@@ -2561,7 +2568,7 @@ function AnalyzeSdkDiff(
2561
2568
  - Changes to internal/private modules (core/, _internal/, utils/) are PATCH
2562
2569
  - Reordering imports, formatting, or comment changes are PATCH
2563
2570
  - Updating SDK version headers (X-Fern-SDK-Version, User-Agent) is PATCH
2564
- - Changing retry logic, timeout defaults, or HTTP client internals is PATCH
2571
+ - Refactoring HTTP client internals without changing observable defaults or behavior is PATCH
2565
2572
  - Updating dependency versions in package.json is PATCH
2566
2573
  - Adding or modifying JSDoc/TSDoc comments is PATCH
2567
2574
  - Refactoring internal implementation without changing public signatures is PATCH
@@ -2604,7 +2611,7 @@ function AnalyzeSdkDiff(
2604
2611
  - Changes to type hints only (no runtime effect) are PATCH
2605
2612
  - Reformatting, docstring updates, or comment changes are PATCH
2606
2613
  - Updating SDK version headers (X-Fern-SDK-Version, User-Agent) are PATCH
2607
- - Changing retry logic, timeout defaults, or httpx/requests client internals is PATCH
2614
+ - Refactoring httpx/requests client internals without changing observable defaults or behavior is PATCH
2608
2615
  - Updating dependency versions in pyproject.toml/setup.py is PATCH
2609
2616
  - Updating serialization/deserialization logic that preserves the same public types is PATCH
2610
2617
  - Refactoring internal implementation without changing public signatures is PATCH
@@ -2650,7 +2657,7 @@ function AnalyzeSdkDiff(
2650
2657
  - Changes to package-private or private methods are PATCH
2651
2658
  - Changes to annotations (other than public API annotations), Javadoc, or formatting are PATCH
2652
2659
  - Updating SDK version headers (X-Fern-SDK-Version, User-Agent) is PATCH
2653
- - Changing retry logic, timeout defaults, or OkHttp/HttpClient internals is PATCH
2660
+ - Refactoring OkHttp/HttpClient internals without changing observable defaults or behavior is PATCH
2654
2661
  - Updating dependency versions in build.gradle/pom.xml is PATCH
2655
2662
  - Refactoring internal implementation without changing public signatures is PATCH
2656
2663
  - Updating serialization/deserialization logic (Jackson/Gson config) that preserves public types is PATCH
@@ -2692,8 +2699,8 @@ function AnalyzeSdkDiff(
2692
2699
  - Changes to unexported (lowercase) functions or types are PATCH
2693
2700
  - Changes to go.mod dependencies, import reordering, or formatting are PATCH
2694
2701
  - Updating SDK version headers (X-Fern-SDK-Version, User-Agent) is PATCH
2695
- - Changing retry logic, timeout defaults, or http.Client internals is PATCH
2696
- - Updating serialization/deserialization logic (JSON tags, encoding) that preserves public types is PATCH
2702
+ - Refactoring http.Client internals without changing observable defaults or behavior is PATCH
2703
+ - Updating serialization/deserialization logic (JSON tags, encoding) that preserves identical output is PATCH
2697
2704
  - Refactoring internal implementation without changing exported signatures is PATCH
2698
2705
  - Changes to *_test.go files, Makefile, or CI configuration are PATCH
2699
2706
  - Updating comments, godoc, or code formatting (gofmt) is PATCH
@@ -2729,7 +2736,7 @@ function AnalyzeSdkDiff(
2729
2736
  - Changes to private methods are PATCH
2730
2737
  - Gemspec metadata, comment, or formatting changes are PATCH
2731
2738
  - Updating SDK version headers is PATCH
2732
- - Changing retry logic, timeout defaults, or Faraday/Net::HTTP internals is PATCH
2739
+ - Refactoring Faraday/Net::HTTP internals without changing observable defaults or behavior is PATCH
2733
2740
  - Updating dependency versions in Gemfile/gemspec is PATCH
2734
2741
  - Refactoring internal implementation without changing public signatures is PATCH
2735
2742
  - Changes to test files, Rakefile, or CI configuration are PATCH
@@ -2769,7 +2776,7 @@ function AnalyzeSdkDiff(
2769
2776
  - Changes to internal or private members are PATCH
2770
2777
  - XML doc comments, formatting, or namespace reorganization are PATCH
2771
2778
  - Updating SDK version headers is PATCH
2772
- - Changing retry logic, timeout defaults, or HttpClient internals is PATCH
2779
+ - Refactoring HttpClient internals without changing observable defaults or behavior is PATCH
2773
2780
  - Updating dependency versions in .csproj is PATCH
2774
2781
  - Refactoring internal implementation without changing public signatures is PATCH
2775
2782
  - Updating serialization/deserialization (System.Text.Json/Newtonsoft) config that preserves public types is PATCH
@@ -2807,7 +2814,7 @@ function AnalyzeSdkDiff(
2807
2814
  - Changes to private/protected methods are PATCH
2808
2815
  - PHPDoc, formatting, or composer.json metadata changes are PATCH
2809
2816
  - Updating SDK version headers is PATCH
2810
- - Changing retry logic, timeout defaults, or Guzzle/cURL internals is PATCH
2817
+ - Refactoring Guzzle/cURL internals without changing observable defaults or behavior is PATCH
2811
2818
  - Updating dependency versions in composer.json is PATCH
2812
2819
  - Refactoring internal implementation without changing public signatures is PATCH
2813
2820
  - Changes to test files, phpunit.xml, or CI configuration are PATCH
@@ -2846,7 +2853,7 @@ function AnalyzeSdkDiff(
2846
2853
  - Changes to internal or private members are PATCH
2847
2854
  - Formatting, comments, or documentation changes are PATCH
2848
2855
  - Updating SDK version headers is PATCH
2849
- - Changing retry logic, timeout defaults, or URLSession internals is PATCH
2856
+ - Refactoring URLSession internals without changing observable defaults or behavior is PATCH
2850
2857
  - Updating dependency versions in Package.swift is PATCH
2851
2858
  - Refactoring internal implementation without changing public signatures is PATCH
2852
2859
  - Changes to test files, xcconfig, or CI configuration are PATCH
@@ -2888,7 +2895,7 @@ function AnalyzeSdkDiff(
2888
2895
  - Changes to pub(crate) or private items are PATCH
2889
2896
  - Cargo.toml metadata, formatting, or comment changes are PATCH
2890
2897
  - Updating SDK version headers is PATCH
2891
- - Changing retry logic, timeout defaults, or reqwest/hyper internals is PATCH
2898
+ - Refactoring reqwest/hyper internals without changing observable defaults or behavior is PATCH
2892
2899
  - Updating dependency versions in Cargo.toml is PATCH
2893
2900
  - Refactoring internal implementation without changing public signatures is PATCH
2894
2901
  - Updating serialization/deserialization (serde) config that preserves public types is PATCH
@@ -2929,7 +2936,7 @@ function AnalyzeSdkDiff(
2929
2936
  - Changes to internal or private members are PATCH
2930
2937
  - KDoc, formatting, or build.gradle changes are PATCH
2931
2938
  - Updating SDK version headers is PATCH
2932
- - Changing retry logic, timeout defaults, or OkHttp internals is PATCH
2939
+ - Refactoring OkHttp internals without changing observable defaults or behavior is PATCH
2933
2940
  - Updating dependency versions in build.gradle.kts is PATCH
2934
2941
  - Refactoring internal implementation without changing public signatures is PATCH
2935
2942
  - Updating serialization/deserialization (kotlinx.serialization/Moshi) config that preserves public types is PATCH
@@ -2960,7 +2967,7 @@ function AnalyzeSdkDiff(
2960
2967
  - Formatting, documentation, or comment changes are PATCH
2961
2968
  - Dependency version updates are PATCH
2962
2969
  - SDK version header updates are PATCH
2963
- - Retry logic or timeout changes are PATCH
2970
+ - Refactoring retry/timeout internals without changing observable defaults or behavior is PATCH
2964
2971
  - Refactoring internals without changing public signatures is PATCH
2965
2972
  {% endif %}
2966
2973
 
@@ -3083,11 +3090,11 @@ client<llm> DefaultClient {
3083
3090
  ]
3084
3091
  }
3085
3092
  }
3086
- `},NGu=()=>L4m;var U4m={...process.env},tho=Bkn.BamlRuntime.fromFiles("baml_src",NGu(),U4m),QGu=new Bkn.BamlCtxManager(tho);var rho=class e{runtime;ctxManager;streamClient;httpRequest;httpStreamRequest;llmResponseParser;llmStreamParser;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.streamClient=new nho(t,r,n),this.httpRequest=new _kn(t,r),this.httpStreamRequest=new xkn(t,r),this.llmResponseParser=new Skn(t,r),this.llmStreamParser=new Okn(t,r),this.bamlOptions=n||{}}withOptions(t){return new e(this.runtime,this.ctxManager,t)}get stream(){return this.streamClient}get request(){return this.httpRequest}get streamRequest(){return this.httpStreamRequest}get parse(){return this.llmResponseParser}get parseStream(){return this.llmStreamParser}async AnalyzeSdkDiff(t,r,n,i,o,s){try{let a={...this.bamlOptions,...s||{}},u=a.signal;if(u?.aborted)throw new _k.BamlAbortError("Operation was aborted",u.reason);if(a.onTick)return await this.stream.AnalyzeSdkDiff(t,r,n,i,o,s).getFinalResponse();let c=a.collector?Array.isArray(a.collector)?a.collector:[a.collector]:[],l=s?.env?{...process.env,...s.env}:{...process.env},p=Object.fromEntries(Object.entries(l).filter(([m,h])=>h!==void 0)),d=a.clientRegistry;return a.client&&(d=d||new _k.ClientRegistry,d.setPrimary(a.client)),(await this.runtime.callFunction("AnalyzeSdkDiff",{diff:t,language:r,previous_version:n,prior_changelog:i,spec_commit_message:o},this.ctxManager.cloneContext(),a.tb?.__tb(),d,c,a.tags||{},p,u,a.watchers)).parsed(!1)}catch(a){throw(0,_k.toBamlError)(a)}}},nho=class{runtime;ctxManager;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.bamlOptions=n||{}}AnalyzeSdkDiff(t,r,n,i,o,s){try{let a={...this.bamlOptions,...s||{}},u=a.signal;if(u?.aborted)throw new _k.BamlAbortError("Operation was aborted",u.reason);let c=a.collector?Array.isArray(a.collector)?a.collector:[a.collector]:[],l;if(a.onTick){let h=new _k.Collector("on-tick-collector");c=[...c,h],l=()=>{let A=h.last;if(A)try{a.onTick("Unknown",A)}catch(y){console.error("Error in onTick callback for AnalyzeSdkDiff",y)}}}let p=s?.env?{...process.env,...s.env}:{...process.env},d=Object.fromEntries(Object.entries(p).filter(([h,A])=>A!==void 0)),f=a.clientRegistry;a.client&&(f=f||new _k.ClientRegistry,f.setPrimary(a.client));let m=this.runtime.streamFunction("AnalyzeSdkDiff",{diff:t,language:r,previous_version:n,prior_changelog:i,spec_commit_message:o},void 0,this.ctxManager.cloneContext(),a.tb?.__tb(),f,c,a.tags||{},d,u,l);return new _k.BamlStream(m,h=>h,h=>h,this.ctxManager.cloneContext(),a.signal)}catch(a){throw(0,_k.toBamlError)(a)}}},SUt=new rho(tho,QGu);var ble;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(ble||(ble={}));var iho=require("@boundaryml/baml"),z4m="0.219.0";(0,kGu.ThrowIfVersionMismatch)(z4m);var GAt=require("@boundaryml/baml");function Pkn(e){let t=new GAt.ClientRegistry,r={model:e.model};return t.addLlmClient("ConfiguredClient",e.provider,r),t.setPrimary("ConfiguredClient"),(0,GAt.getLogLevel)()!=="ERROR"&&(0,GAt.setLogLevel)("ERROR"),t}Wt();var UGu=we(dWi(),1),DI=require("fs/promises"),zGu=require("os"),VGu=require("path"),oho=we(GO(),1),qGu=we(dC(),1);function LGu(e){let t=e.toLowerCase();return t.includes("typescript")||t.includes("ts-sdk")||t.includes("node-sdk")?"typescript":t.includes("python")?"python":t.includes("java")&&!t.includes("javascript")?"java":/\bgo\b/.test(t)?"go":t.includes("ruby")?"ruby":t.includes("csharp")||t.includes("dotnet")||t.includes("c-sharp")?"csharp":t.includes("php")?"php":t.includes("swift")?"swift":t.includes("rust")?"rust":t.includes("kotlin")?"kotlin":"unknown"}var V4m="AUTO";var MGu;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(MGu||(MGu={}));function OUt(e){return V4m.toLowerCase()===e.toLowerCase()}var Tkn=class{context;absolutePathToTmpOutputDirectory;absolutePathToTmpSnippetJSON;absolutePathToTmpSnippetTemplatesJSON;absolutePathToLocalSnippetTemplateJSON;absolutePathToLocalOutput;absolutePathToLocalSnippetJSON;version;ai;isWhitelabel;autoVersioningCache;generatorLanguage;absolutePathToSpecRepo;constructor({context:t,absolutePathToTmpOutputDirectory:r,absolutePathToTmpSnippetJSON:n,absolutePathToLocalSnippetTemplateJSON:i,absolutePathToLocalOutput:o,absolutePathToLocalSnippetJSON:s,absolutePathToTmpSnippetTemplatesJSON:a,version:u,ai:c,isWhitelabel:l,autoVersioningCache:p,generatorLanguage:d,absolutePathToSpecRepo:f}){this.context=t,this.absolutePathToLocalOutput=o,this.absolutePathToTmpOutputDirectory=r,this.absolutePathToTmpSnippetJSON=n,this.absolutePathToLocalSnippetJSON=s,this.absolutePathToLocalSnippetTemplateJSON=i,this.absolutePathToTmpSnippetTemplatesJSON=a,this.version=u,this.ai=c,this.isWhitelabel=l,this.autoVersioningCache=p,this.generatorLanguage=d,this.absolutePathToSpecRepo=f}async copyGeneratedFiles(){let t=await this.isFernIgnorePresent(),r=await this.isGitRepository(),n=this.version!=null&&OUt(this.version)?await this.readPriorChangelog(3):"";if(t&&r?await this.copyGeneratedFilesWithFernIgnoreInExistingRepo():t&&!r?await this.copyGeneratedFilesWithFernIgnoreInTempRepo():!t&&r?await this.copyGeneratedFilesNoFernIgnorePreservingGit():await this.copyGeneratedFilesNoFernIgnoreDeleteAll(),this.absolutePathToTmpSnippetJSON!=null&&this.absolutePathToLocalSnippetJSON!=null&&await nr(this.absolutePathToTmpSnippetJSON)&&await this.copySnippetJSON({absolutePathToTmpSnippetJSON:this.absolutePathToTmpSnippetJSON,absolutePathToLocalSnippetJSON:this.absolutePathToLocalSnippetJSON}),this.version!=null&&OUt(this.version)){let i=new ikt({logger:this.context.logger}),o=await this.handleAutoVersioning(n);return o==null?(this.context.logger.info("No semantic changes detected. Skipping GitHub operations."),{shouldCommit:!1,autoVersioningCommitMessage:void 0,autoVersioningChangelogEntry:void 0}):(await i.replaceMagicVersion(this.absolutePathToLocalOutput,this.version,o.version),{shouldCommit:!0,autoVersioningCommitMessage:o.commitMessage,autoVersioningChangelogEntry:o.changelogEntry})}return{shouldCommit:!0,autoVersioningCommitMessage:void 0}}async handleAutoVersioning(t){let r=new ikt({logger:this.context.logger}),n;try{this.context.logger.info("Analyzing SDK changes for automatic semantic versioning"),n=await this.generateDiffFile();let i=await(0,DI.readFile)(n,"utf-8");if(i.trim().length===0)return this.context.logger.info("No changes detected in generated SDK"),null;if(!this.version)throw new Error("Version is required for auto versioning");let o=r.extractPreviousVersion(i,this.version),s=r.cleanDiffForAI(i,this.version),a=skt(i.length),u=skt(s.length),c=okt(i),l=okt(s);if(this.context.logger.debug(`Generated diff size: ${a}KB (${i.length} chars), ${c} files changed. Cleaned diff size: ${u}KB (${s.length} chars), ${l} files remaining`),o==null){this.context.logger.info("No previous version found (new SDK repository). Using 0.0.1 as initial version.");let A=this.version?.startsWith("v")?"v0.0.1":"0.0.1",y=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
3093
+ `},NGu=()=>L4m;var U4m={...process.env},tho=Bkn.BamlRuntime.fromFiles("baml_src",NGu(),U4m),QGu=new Bkn.BamlCtxManager(tho);var rho=class e{runtime;ctxManager;streamClient;httpRequest;httpStreamRequest;llmResponseParser;llmStreamParser;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.streamClient=new nho(t,r,n),this.httpRequest=new _kn(t,r),this.httpStreamRequest=new xkn(t,r),this.llmResponseParser=new Skn(t,r),this.llmStreamParser=new Okn(t,r),this.bamlOptions=n||{}}withOptions(t){return new e(this.runtime,this.ctxManager,t)}get stream(){return this.streamClient}get request(){return this.httpRequest}get streamRequest(){return this.httpStreamRequest}get parse(){return this.llmResponseParser}get parseStream(){return this.llmStreamParser}async AnalyzeSdkDiff(t,r,n,i,o,s){try{let a={...this.bamlOptions,...s||{}},u=a.signal;if(u?.aborted)throw new _k.BamlAbortError("Operation was aborted",u.reason);if(a.onTick)return await this.stream.AnalyzeSdkDiff(t,r,n,i,o,s).getFinalResponse();let c=a.collector?Array.isArray(a.collector)?a.collector:[a.collector]:[],l=s?.env?{...process.env,...s.env}:{...process.env},p=Object.fromEntries(Object.entries(l).filter(([m,h])=>h!==void 0)),d=a.clientRegistry;return a.client&&(d=d||new _k.ClientRegistry,d.setPrimary(a.client)),(await this.runtime.callFunction("AnalyzeSdkDiff",{diff:t,language:r,previous_version:n,prior_changelog:i,spec_commit_message:o},this.ctxManager.cloneContext(),a.tb?.__tb(),d,c,a.tags||{},p,u,a.watchers)).parsed(!1)}catch(a){throw(0,_k.toBamlError)(a)}}},nho=class{runtime;ctxManager;bamlOptions;constructor(t,r,n){this.runtime=t,this.ctxManager=r,this.bamlOptions=n||{}}AnalyzeSdkDiff(t,r,n,i,o,s){try{let a={...this.bamlOptions,...s||{}},u=a.signal;if(u?.aborted)throw new _k.BamlAbortError("Operation was aborted",u.reason);let c=a.collector?Array.isArray(a.collector)?a.collector:[a.collector]:[],l;if(a.onTick){let h=new _k.Collector("on-tick-collector");c=[...c,h],l=()=>{let A=h.last;if(A)try{a.onTick("Unknown",A)}catch(y){console.error("Error in onTick callback for AnalyzeSdkDiff",y)}}}let p=s?.env?{...process.env,...s.env}:{...process.env},d=Object.fromEntries(Object.entries(p).filter(([h,A])=>A!==void 0)),f=a.clientRegistry;a.client&&(f=f||new _k.ClientRegistry,f.setPrimary(a.client));let m=this.runtime.streamFunction("AnalyzeSdkDiff",{diff:t,language:r,previous_version:n,prior_changelog:i,spec_commit_message:o},void 0,this.ctxManager.cloneContext(),a.tb?.__tb(),f,c,a.tags||{},d,u,l);return new _k.BamlStream(m,h=>h,h=>h,this.ctxManager.cloneContext(),a.signal)}catch(a){throw(0,_k.toBamlError)(a)}}},SUt=new rho(tho,QGu);var ble;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(ble||(ble={}));var iho=require("@boundaryml/baml"),z4m="0.219.0";(0,kGu.ThrowIfVersionMismatch)(z4m);var GAt=require("@boundaryml/baml");function Pkn(e){let t=new GAt.ClientRegistry,r={model:e.model};return t.addLlmClient("ConfiguredClient",e.provider,r),t.setPrimary("ConfiguredClient"),(0,GAt.getLogLevel)()!=="ERROR"&&(0,GAt.setLogLevel)("ERROR"),t}Wt();var UGu=we(dWi(),1),DI=require("fs/promises"),zGu=require("os"),VGu=require("path"),oho=we(GO(),1),qGu=we(dC(),1);function LGu(e){let t=e.toLowerCase();return t.includes("typescript")||t.includes("ts-sdk")||t.includes("node-sdk")?"typescript":t.includes("python")?"python":t.includes("java")&&!t.includes("javascript")?"java":/\bgo\b/.test(t)?"go":t.includes("ruby")?"ruby":t.includes("csharp")||t.includes("dotnet")||t.includes("c-sharp")?"csharp":t.includes("php")?"php":t.includes("swift")?"swift":t.includes("rust")?"rust":t.includes("kotlin")?"kotlin":"unknown"}var V4m="AUTO";var MGu;(function(e){e.MAJOR="MAJOR",e.MINOR="MINOR",e.PATCH="PATCH",e.NO_CHANGE="NO_CHANGE"})(MGu||(MGu={}));function OUt(e){return V4m.toLowerCase()===e.toLowerCase()}var Tkn=class{context;absolutePathToTmpOutputDirectory;absolutePathToTmpSnippetJSON;absolutePathToTmpSnippetTemplatesJSON;absolutePathToLocalSnippetTemplateJSON;absolutePathToLocalOutput;absolutePathToLocalSnippetJSON;version;ai;isWhitelabel;autoVersioningCache;generatorLanguage;absolutePathToSpecRepo;constructor({context:t,absolutePathToTmpOutputDirectory:r,absolutePathToTmpSnippetJSON:n,absolutePathToLocalSnippetTemplateJSON:i,absolutePathToLocalOutput:o,absolutePathToLocalSnippetJSON:s,absolutePathToTmpSnippetTemplatesJSON:a,version:u,ai:c,isWhitelabel:l,autoVersioningCache:p,generatorLanguage:d,absolutePathToSpecRepo:f}){this.context=t,this.absolutePathToLocalOutput=o,this.absolutePathToTmpOutputDirectory=r,this.absolutePathToTmpSnippetJSON=n,this.absolutePathToLocalSnippetJSON=s,this.absolutePathToLocalSnippetTemplateJSON=i,this.absolutePathToTmpSnippetTemplatesJSON=a,this.version=u,this.ai=c,this.isWhitelabel=l,this.autoVersioningCache=p,this.generatorLanguage=d,this.absolutePathToSpecRepo=f}async copyGeneratedFiles(){let t=await this.isFernIgnorePresent(),r=await this.isGitRepository(),n=this.version!=null&&OUt(this.version)?await this.readPriorChangelog(3):"";if(t&&r?await this.copyGeneratedFilesWithFernIgnoreInExistingRepo():t&&!r?await this.copyGeneratedFilesWithFernIgnoreInTempRepo():!t&&r?await this.copyGeneratedFilesNoFernIgnorePreservingGit():await this.copyGeneratedFilesNoFernIgnoreDeleteAll(),this.absolutePathToTmpSnippetJSON!=null&&this.absolutePathToLocalSnippetJSON!=null&&await nr(this.absolutePathToTmpSnippetJSON)&&await this.copySnippetJSON({absolutePathToTmpSnippetJSON:this.absolutePathToTmpSnippetJSON,absolutePathToLocalSnippetJSON:this.absolutePathToLocalSnippetJSON}),this.version!=null&&OUt(this.version)){let i=new ikt({logger:this.context.logger}),o=await this.handleAutoVersioning(n);return o==null?(this.context.logger.info("No semantic changes detected. Skipping GitHub operations."),{shouldCommit:!1,autoVersioningCommitMessage:void 0,autoVersioningChangelogEntry:void 0}):(await i.replaceMagicVersion(this.absolutePathToLocalOutput,this.version,o.version),{shouldCommit:!0,autoVersioningCommitMessage:o.commitMessage,autoVersioningChangelogEntry:o.changelogEntry})}return{shouldCommit:!0,autoVersioningCommitMessage:void 0}}async handleAutoVersioning(t){let r=new ikt({logger:this.context.logger}),n;try{this.context.logger.info("Analyzing SDK changes for automatic semantic versioning"),n=await this.generateDiffFile();let i=await(0,DI.readFile)(n,"utf-8");if(i.trim().length===0)return this.context.logger.info("No changes detected in generated SDK"),null;if(!this.version)throw new Error("Version is required for auto versioning");let o=r.extractPreviousVersion(i,this.version),s=r.cleanDiffForAI(i,this.version),a=skt(i.length),u=skt(s.length),c=okt(i),l=okt(s);if(this.context.logger.debug(`Generated diff size: ${a}KB (${i.length} chars), ${c} files changed. Cleaned diff size: ${u}KB (${s.length} chars), ${l} files remaining`),o==null){this.context.logger.info("No previous version found (new SDK repository). Using 0.0.1 as initial version.");let E=this.version?.startsWith("v")?"v0.0.1":"0.0.1",v=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
3087
3094
 
3088
- \u{1F33F} Generated with Fern`;return{version:A,commitMessage:y}}if(this.context.logger.debug(`Previous version detected: ${o}`),s.trim().length===0)return this.context.logger.info("No actual changes detected after filtering version-only changes. Cancelling generation."),null;s.length>znt&&this.context.logger.warn(`Cleaned diff is too large for AI analysis (${s.length.toLocaleString()} chars / ${u}KB, ${l} files). The AI endpoint limit is 100,000 characters. Lock files, test files, and generated docs are already excluded. Consider splitting the SDK into smaller packages or reducing the number of endpoints.`);let p=await this.readSpecCommitMessage();p&&this.context.logger.debug(`Spec repo commit message: ${p}`);let d;try{d=await this.getAnalysis(s,this.generatorLanguage??"unknown",o??"0.0.0",t,p)}catch(A){let y=A instanceof Error?A.message:String(A);this.context.logger.warn(`AI analysis failed, falling back to PATCH increment. Diff stats: ${s.length.toLocaleString()} chars cleaned (${u}KB cleaned, ${a}KB raw), ${l} files remaining. `+(s.length>znt?"The diff exceeds the AI endpoint's 100,000 character limit. Lock files, test files, and generated docs are already excluded. Consider splitting the SDK into smaller packages or reducing the number of endpoints. ":"")+`Error: ${y}`);let b=this.incrementVersion(o,ble.PATCH),E=this.isWhitelabel?"SDK regeneration":`SDK regeneration
3095
+ \u{1F33F} Generated with Fern`;return{version:E,commitMessage:v}}if(this.context.logger.debug(`Previous version detected: ${o}`),s.trim().length===0)return this.context.logger.info("No actual changes detected after filtering version-only changes. Cancelling generation."),null;s.length>znt&&this.context.logger.warn(`Cleaned diff is too large for AI analysis (${s.length.toLocaleString()} chars / ${u}KB, ${l} files). The AI endpoint limit is 100,000 characters. Lock files, test files, and generated docs are already excluded. Consider splitting the SDK into smaller packages or reducing the number of endpoints.`);let p=await this.readSpecCommitMessage();p&&this.context.logger.debug(`Spec repo commit message: ${p}`);let d;try{d=await this.getAnalysis(s,this.generatorLanguage??"unknown",o??"0.0.0",t,p)}catch(E){let v=E instanceof Error?E.message:String(E);this.context.logger.warn(`AI analysis failed, falling back to PATCH increment. Diff stats: ${s.length.toLocaleString()} chars cleaned (${u}KB cleaned, ${a}KB raw), ${l} files remaining. `+(s.length>znt?"The diff exceeds the AI endpoint's 100,000 character limit. Lock files, test files, and generated docs are already excluded. Consider splitting the SDK into smaller packages or reducing the number of endpoints. ":"")+`Error: ${v}`);let I=this.incrementVersion(o,ble.PATCH),w=this.isWhitelabel?"SDK regeneration":`SDK regeneration
3089
3096
 
3090
- \u{1F33F} Generated with Fern`;return{version:b,commitMessage:E}}if(d==null)return this.context.logger.info("AI detected no semantic changes"),null;let f=this.incrementVersion(o,d.versionBump);this.context.logger.info(`Version bump: ${d.versionBump}, new version: ${f}`);let m=this.isWhitelabel?d.message:this.addFernBranding(d.message),h=d.changelogEntry?.trim()||void 0;return{version:f,commitMessage:m,changelogEntry:h}}catch(i){if(i instanceof nkt){this.context.logger.warn(`AUTO versioning could not extract previous version: ${i.message}. Falling back to initial version 0.0.1.`);let o=this.version?.startsWith("v")?"v0.0.1":"0.0.1",s=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
3097
+ \u{1F33F} Generated with Fern`;return{version:I,commitMessage:w}}if(d==null)return this.context.logger.info("AI detected no semantic changes"),null;let f=d.versionBump,m=d.message,h=d.changelogEntry,A=this.incrementVersion(o,f);this.context.logger.info(`Version bump: ${f}, new version: ${A}`);let y=this.isWhitelabel?m:this.addFernBranding(m),b=h?.trim()||void 0;return{version:A,commitMessage:y,changelogEntry:b}}catch(i){if(i instanceof nkt){this.context.logger.warn(`AUTO versioning could not extract previous version: ${i.message}. Falling back to initial version 0.0.1.`);let o=this.version?.startsWith("v")?"v0.0.1":"0.0.1",s=this.isWhitelabel?"Initial SDK generation":`Initial SDK generation
3091
3098
 
3092
3099
  \u{1F33F} Generated with Fern`;return{version:o,commitMessage:s}}throw this.context.logger.error(`Failed to perform automatic versioning: ${i}`),new Error(`Automatic versioning failed: ${i}`)}finally{if(n)try{await(0,DI.rm)(n)}catch(i){this.context.logger.warn(`Failed to delete temp diff file: ${n}`,String(i))}}}async getAnalysis(t,r,n,i="",o=""){let s=async()=>{let l=await this.getClientRegistry(),d=await SUt.withOptions({clientRegistry:l}).AnalyzeSdkDiff(t,r,n,i,o);return d.version_bump===ble.NO_CHANGE?null:{versionBump:d.version_bump,message:d.message,changelogEntry:d.changelog_entry}};if(this.autoVersioningCache==null)return s();let a=this.autoVersioningCache.key(t,r,n,i,o),{promise:u,isHit:c}=this.autoVersioningCache.getOrCompute(a,s);if(c){let l=await u;return this.context.logger.info(`[AutoVersioning] Cache hit \u2014 reusing result (key: ${a.slice(0,8)}\u2026) bump=${l?.versionBump??"NO_CHANGE"}`),l}return u}incrementVersion(t,r){let n=oho.default.clean(t);if(!n)throw new Error(`Invalid version format: ${t}`);let i;switch(r){case ble.MAJOR:i="major";break;case ble.MINOR:i="minor";break;case ble.PATCH:i="patch";break;default:throw new Error(`Unsupported version bump: ${r}`)}let o=oho.default.inc(n,i);if(!o)throw new Error(`Failed to increment version: ${t}`);return t.startsWith("v")?`v${o}`:o}async getClientRegistry(){if(this.ai==null)throw new Error("No AI service configuration found in generators.yml. Please add an 'ai' section with provider and model.");return this.context.logger.debug(`Using AI service: ${this.ai.provider} with model ${this.ai.model}`),Pkn(this.ai)}addFernBranding(t){return`${t.trim()}
3093
3100
 
@@ -3423,7 +3430,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
3423
3430
  Run ${Oe.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
3424
3431
  Run ${Oe.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),THe(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function f4o({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!dwc(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,u)=>a.generatorName.localeCompare(u.generatorName)||a.currentVersion.localeCompare(u.currentVersion));for(let a of s)i+=`
3425
3432
  ${await T9h(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+Oe.dim(a.currentVersion)+Oe.reset(" \u2192 ")+Oe.green(a.latestVersion);return i+=`
3426
- `,n?THe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function T9h(e){let r=await new fwc.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 D9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await hwc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=LMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await hwc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=LMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function hwc({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 _2({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?XC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function gwc(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 u=oj(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function h9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await D9h({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...gwc(c,u,t.logger));else s.push(...gwc(a.versions,void 0,t.logger))}return s}async function NRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:kDt(e.packageName,{version:t?"prerelease":"latest"})}var Awc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],g9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new m9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new m2e(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"4.13.0"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${Oe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Yg}failWithoutThrowing(t,r){this.didSucceed=!1,OBt({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)+`
3433
+ `,n?THe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function T9h(e){let r=await new fwc.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 D9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await hwc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=LMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await hwc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=LMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function hwc({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 _2({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?XC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function gwc(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 u=oj(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function h9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await D9h({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...gwc(c,u,t.logger));else s.push(...gwc(a.versions,void 0,t.logger))}return s}async function NRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:kDt(e.packageName,{version:t?"prerelease":"latest"})}var Awc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],g9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new m9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new m2e(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"4.14.0"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${Oe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Yg}failWithoutThrowing(t,r){this.didSucceed=!1,OBt({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)+`
3427
3434
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await vHe()).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 mwc({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
3428
3435
  `)||(r+=`
3429
3436
  `),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=Api(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 V8t(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 Yg}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await vHe()).sendEvent(t)}logger=QP((t,...r)=>this.log(t,...r));stderr=QP((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=ywc(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?ywc(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=Awc[this.numTasks++%Awc.length],s=Oe.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Od.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=>oS.indexOf(i.level)>=oS.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Un.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 NRe({cliEnvironment:this.environment,includePreReleases:t}),n=oj(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await h9n({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await l4o({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:Oe.yellow("?"),style:{answer:i=>Oe.cyan(i),message:i=>Oe.bold(i),highlight:i=>Oe.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`