fern-api 4.4.3 → 4.4.4

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 +5 -5
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -1442,7 +1442,7 @@ ${$ea.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Fbi(th
1442
1442
  `+YNe.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?YNe.default.cyan(rta(t,this.opt.mask)):YNe.default.italic(YNe.default.dim("[hidden]")):this.opt.mask?rta(t,this.opt.mask):YNe.default.italic(YNe.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 ior=we(iw(),1);var tra=we(h0i(),1),ror=require("child_process"),cHe=require("fs"),tor=we(require("path"),1),rra=we(require("os"),1),nra=require("crypto"),Z0i=we(Zta(),1);var Xir=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var WOt=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var Zir=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var eor=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function nor(e="",t,r){let n=new evi(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 era(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function T7p(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 evi=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=T7p(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??rra.default.tmpdir(),r=(0,nra.randomUUID)(),n=era(this.fileOptions.prefix),i=era(this.fileOptions.postfix),o=`${n}${r}${i}`,s=tor.default.resolve(t,o),a=tor.default.resolve(t)+tor.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,cHe.writeFileSync)(this.tempFile,this.text,u)}catch(t){throw new Xir(t)}}readTemporaryFile(){try{let t=(0,cHe.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,tra.detect)(t)??"utf8";Z0i.default.encodingExists(r)||(r="utf8"),this.text=Z0i.default.decode(t,r)}}catch(t){throw new Zir(t)}}removeTemporaryFile(){try{(0,cHe.unlinkSync)(this.tempFile)}catch(t){throw new eor(t)}}launchEditor(){try{let t=(0,ror.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new WOt(t)}}launchEditorAsync(t){try{(0,ror.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new WOt(r)}}};var ira=we(i2(),1);var $Ot=class extends ow{_run(t){this.done=t,this.editorResult=new ira.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"?ior.default.dim("Received"):ior.default.dim("Press <enter> to launch your preferred editor."),t&&(r=ior.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),nor(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 cra=require("stream");var ara=we(require("readline"),1),ura=we(sra(),1),t2e=class{constructor(t){this.rl||=ara.default.createInterface(R7p(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 R7p(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 ura.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var HOt=class extends t2e{constructor(t={}){super(t),this.log=new cra.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return TOt(this.rl,this.bottomBar.split(`
1443
1443
  `).length),this}updateBottomBar(t){return TOt(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+`
1444
1444
  `}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&&xir(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Bf=we(i2(),1),fra=we(X1t(),1);var oor=we(i2(),1),lra=we(X1t(),1),sor=function(e,t,r){return typeof e[t]!="function"?(0,oor.of)(e):(0,oor.from)((0,lra.default)(e[t])(r).then(n=>(e[t]=n,e)))};var pra={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}},lHe=class extends t2e{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)=>(pra.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)(()=>sor(t,"message",this.answers)),(0,Bf.concatMap)(()=>sor(t,"default",this.answers)),(0,Bf.concatMap)(()=>sor(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&&pra.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,fra.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Bf.filter)(n=>n!=null)))}};function dra(e){let t=function(r,n){let i;try{i=new lHe(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",ROt),this.registerPrompt("input",JNe),this.registerPrompt("number",FOt),this.registerPrompt("confirm",jOt),this.registerPrompt("rawlist",QOt),this.registerPrompt("expand",NOt),this.registerPrompt("checkbox",kOt),this.registerPrompt("password",MOt),this.registerPrompt("editor",$Ot)},t.restoreDefaultPrompts(),t}var rvi=dra();function j7p(e,t){rvi.registerPrompt(e,t)}function Q7p(){rvi.restoreDefaultPrompts()}var N7p={prompt:rvi,ui:{BottomBar:HOt,Prompt:lHe},createPromptModule:dra,registerPrompt:j7p,restoreDefaultPrompts:Q7p,Separator:lF},Hp=N7p;var pHe=require("path");function hra(){let e=k7p();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function k7p(e=process.argv[1]?(0,pHe.dirname)(process.argv[1]):process.cwd(),t=pHe.sep==="\\"){let r=t?mra(e):e;return n=>{if(!n)return;let i=t?mra(n):n,{dir:o,base:s,ext:a}=pHe.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 mra(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var nvi=e=>{if("flags"in e){let t=gra(e.flags),r=Ara(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,ivi(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,M7p(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function M7p(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 gra=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,KOt(r)]).filter(([,t])=>t!==void 0)),Ara=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?ivi(n):void 0]}))};var KOt=e=>e===void 0?void 0:e.variant??e.enabled,ivi=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var aor="0123456789abcdef",uor=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+=aor.charAt(this.bytes[r]>>>4),t+=aor.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+=aor.charAt(this.bytes[r]>>>4),t+=aor.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}},ovi=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??L7p()}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 uor.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,uor.ofInner(t)}},L7p=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),yra,AJ=()=>U7p().toString(),U7p=()=>(yra||(yra=new ovi)).generate();var fF=(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 z7p=["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"],bra=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return z7p.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var q7p=Array.isArray,vra=Object.prototype,__A=vra.hasOwnProperty,svi=vra.toString,avi=q7p||function(e){return svi.call(e)==="[object Array]"};var uvi=e=>e===Object(e)&&!avi(e);var fHe=e=>e===void 0,JOt=e=>svi.call(e)=="[object String]",Era=e=>JOt(e)&&e.trim().length===0;var Ira=e=>svi.call(e)=="[object Number]"&&e===e;var cvi=e=>e instanceof Error;function YOt(e){return e===null||typeof e!="object"}function r2e(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function wra(e){return r2e(e,"ErrorEvent")}function cor(e){return!fHe(Event)&&G7p(e,Event)}function Cra(e){return r2e(e,"Object")}function G7p(e,t){try{return e instanceof t}catch{return!1}}function XOt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),Ira(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),XOt(i||r,t,r,n))}var W7p=864e5,lor=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=XOt(t.bucketSize,0,100,t._logger),this._refillRate=XOt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=XOt(t.refillInterval,0,W7p,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 por=class{add(t){let r=AJ();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 $7p(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var _ra=(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=>_ra(`${e} ${o}`,t,r)}},H7p=e=>e();function xra(e,t=H7p){return _ra(e,t,$7p())}var mHe="Mobile",mor="iOS",dHe="Android",Sra="Tablet",N_A=dHe+" "+Sra;var K7p="Apple",k_A=K7p+" Watch",Ora="Safari",hor="BlackBerry",Bra="Samsung",J7p=Bra+"Browser",Y7p=Bra+" Internet",gor="Chrome",X7p=gor+" OS",Z7p=gor+" "+mor,Pra="Internet Explorer",eWp=Pra+" "+mHe,pvi="Opera",M_A=pvi+" Mini",Tra="Edge",tWp="Microsoft "+Tra,fvi="Firefox",rWp=fvi+" "+mor,dvi="Nintendo",mvi="PlayStation",dor="Xbox",nWp=dHe+" "+mHe,iWp=mHe+" "+Ora,ZOt="Windows",oWp=ZOt+" Phone";var Dra="Generic",L_A=Dra+" "+mHe.toLowerCase(),U_A=Dra+" "+Sra.toLowerCase(),sWp="Konqueror",UP="(\\d+(\\.\\d+)?)",lvi=new RegExp("Version/"+UP),z_A=new RegExp(dor,"i"),V_A=new RegExp(mvi+" \\w+","i"),q_A=new RegExp(dvi+" \\w+","i"),aWp=new RegExp(hor+"|PlayBook|BB10","i"),uWp={"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 G_A={[eWp]:[new RegExp("rv:"+UP)],[tWp]:[new RegExp(Tra+"?\\/"+UP)],[gor]:[new RegExp("("+gor+"|CrMo)\\/"+UP)],[Z7p]:[new RegExp("CriOS\\/"+UP)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+UP)],[Ora]:[lvi],[iWp]:[lvi],[pvi]:[new RegExp("("+pvi+"|OPR)\\/"+UP)],[fvi]:[new RegExp(fvi+"\\/"+UP)],[rWp]:[new RegExp("FxiOS\\/"+UP)],[sWp]:[new RegExp("Konqueror[:/]?"+UP,"i")],[hor]:[new RegExp(hor+" "+UP),lvi],[nWp]:[new RegExp("android\\s"+UP,"i")],[Y7p]:[new RegExp(J7p+"\\/"+UP)],[Pra]:[new RegExp("(rv:|MSIE )"+UP)],Mozilla:[new RegExp("rv:"+UP)]};var W_A=[[new RegExp(dor+"; "+dor+" (.*?)[);]","i"),e=>[dor,e&&e[1]||""]],[new RegExp(dvi,"i"),[dvi,""]],[new RegExp(mvi,"i"),[mvi,""]],[aWp,[hor,""]],[new RegExp(ZOt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[oWp,""];if(new RegExp(mHe).test(t)&&!/IEMobile\b/.test(t))return[ZOt+" "+mHe,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=uWp[n]||"";return/arm/i.test(t)&&(i="RT"),[ZOt,i]}return[ZOt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[mor,t.join(".")]}return[mor,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=fHe(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+dHe+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+dHe+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[dHe,t.join(".")]}return[dHe,""]}],[/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/,[X7p,""]],[/Linux|debian/i,["Linux",""]]];var Rra="utf8";function Fra(e,t){if(!e||typeof e!="string"||cWp(e))throw new Error(t)}function cWp(e){return e.trim().length===0}function jra(e){return e?.replace(/\/+$/,"")}async function Qra(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 Aor(){return new Date().toISOString()}function n2e(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Nra=e=>e instanceof Error;function hvi(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var yor=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 kra(){return"CompressionStream"in globalThis}async function gvi(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 i2e=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()}},hHe=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function Mra(e){if(e instanceof i2e){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 Avi(e){return typeof e=="object"&&(e instanceof i2e||e instanceof hHe)}function Lra(e){return typeof e=="object"&&e instanceof i2e&&e.status===413}var eBt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new por,this._events=new yor,this._isInitialized=!1,Fra(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=jra(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:Avi},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=xra("[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=!kra()||(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(fF.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(fF.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(fF.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:nvi(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof i2e)return{type:"api_error",statusCode:t.status};if(t instanceof hHe){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=KOt(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(fF.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(fF.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(fF.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(fF.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(fF.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=n2e(()=>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:Aor()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,u=this.disableCompression?null:await gvi(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:Aor(),uuid:n?.uuid?n.uuid:AJ()};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 Mra(t)})}async flush(){let t=hvi([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),hvi([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(fF.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(fF.Queue)||[]).slice(i.length);this.setPersistedProperty(fF.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:Aor()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),c=`${this.host}/batch/`,l=this.disableCompression?null:await gvi(u,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||u},d={retryCheck:f=>Lra(f)?!1:Avi(f)};try{await this.fetchWithRetry(c,p,d)}catch(f){if(Lra(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 hHe||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,Rra)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await Qra(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(c){throw new hHe(c)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new i2e(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(fF.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!Avi(i))throw i;await Mra(i)}};return Promise.race([new Promise((i,o)=>{n2e(()=>{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 dF={};X(dF,{DOMExceptionCoercer:()=>Evi,ErrorCoercer:()=>Ivi,ErrorEventCoercer:()=>wvi,ErrorPropertiesBuilder:()=>yvi,EventCoercer:()=>xvi,ObjectCoercer:()=>_vi,PrimitiveCoercer:()=>Svi,PromiseRejectionEventCoercer:()=>Ovi,ReduceableCache:()=>Bvi,StringCoercer:()=>Cvi,chromeStackLineParser:()=>bvi,createDefaultStackParser:()=>CWp,createStackParser:()=>Yra,geckoStackLineParser:()=>vvi,nodeStackLineParser:()=>$ra,opera10StackLineParser:()=>qra,opera11StackLineParser:()=>Gra,reverseAndStripFrames:()=>Jra,winjsStackLineParser:()=>Vra});var bor,Ura,vor;function zra(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return vor&&r.length===Ura||(Ura=r.length,vor=r.reduce((n,i)=>{bor||(bor={});let o=bor[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,bor[i]=[c,l];break}}}return n},{})),vor}var pWp=4,yvi=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&&avi(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:zra(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=pWp){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 yJ(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?pS:r,in_app:!0};return fHe(n)||(o.lineno=n),fHe(i)||(o.colno=i),o}var Eor=(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 fWp=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,dWp=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,mWp=/\((\S*)(?::(\d+))(?::(\d+))\)/,bvi=(e,t)=>{let r=fWp.exec(e);if(r){let[,i,o,s]=r;return yJ(t,i,pS,+o,+s)}let n=dWp.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=mWp.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Eor(n[1]||pS,n[2]);return yJ(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var hWp=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,gWp=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,vvi=(e,t)=>{let r=hWp.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=gWp.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]=Eor(o,i),yJ(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var AWp=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Vra=(e,t)=>{let r=AWp.exec(e);return r?yJ(t,r[2],r[1]||pS,+r[3],r[4]?+r[4]:void 0):void 0};var yWp=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,qra=(e,t)=>{let r=yWp.exec(e);return r?yJ(t,r[2],r[3]||pS,+r[1]):void 0},bWp=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Gra=(e,t)=>{let r=bWp.exec(e);return r?yJ(t,r[5],r[3]||r[4]||pS,+r[1],+r[2]):void 0};var vWp=/^\s*[-]{4,}$/,EWp=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,$ra=(e,t)=>{let r=e.match(EWp);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:Wra(r[3]),colno:Wra(r[4]),in_app:IWp(u||"",c),platform:t}}if(e.match(vWp))return{filename:e,platform:t}};function IWp(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 Wra(e){return parseInt(e||"",10)||void 0}var Hra=/\(error: (.*)\)/,Kra=50;function Jra(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,Kra).map(r=>({...r,filename:r.filename||wWp(t).filename,function:r.function||pS}))}function wWp(e){return e[e.length-1]||{}}function CWp(){return Yra("web:javascript",bvi,vvi)}function Yra(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1445
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=Hra.test(a)?a.replace(Hra,"$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>=Kra)break}}return Jra(i)}}var Evi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=JOt(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 r2e(t,"DOMException")}isDOMError(t){return r2e(t,"DOMError")}};var Ivi=class{match(t){return cvi(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 wvi=class{constructor(){}match(t){return wra(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 _Wp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Cvi=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(_Wp);return i&&(r=i[1],n=i[2]),[r,n]}};var Xra=["fatal","error","warning","log","info","debug"];function Ior(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 _vi=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 cor(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=Ior(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return JOt(t)&&!Era(t)&&Xra.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Nra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var xvi=class{match(t){return cor(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Ior(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Svi=class{match(t){return YOt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Ovi=class{match(t){return r2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return YOt(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(YOt(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 Bvi=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 tna=require("fs"),rna=require("readline"),wor=new dF.ReduceableCache(25),nna=new dF.ReduceableCache(20),Pvi=7,xWp=1e3,SWp=1e4;async function ina(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"||TWp(s)||DWp(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(nna.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=FWp(o);if(s.every(u=>RWp(i,u)))continue;let a=jWp(wor,i,{});n.push(OWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&BWp(e,wor),wor.reduce(),e}function OWp(e,t,r){return new Promise(n=>{let i=(0,tna.createReadStream)(e),o=(0,rna.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(){nna.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 BWp(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;PWp(r.lineno,r,n)}}function PWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=ona(e);i<e;i++){let o=r[i];if(o===void 0)return void Zra(t);t.pre_context.push(o)}if(r[e]===void 0)return void Zra(t);t.context_line=r[e];let n=sna(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 Zra(e){delete e.pre_context,delete e.context_line,delete e.post_context}function TWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function DWp(e){return e.lineno!==void 0&&e.lineno>SWp||e.colno!==void 0&&e.colno>xWp}function RWp(e,t){let r=wor.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 FWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=ena(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+Pvi:(i.push(n),n=ena(o)),t++}return i}function ena(e){return[ona(e),sna(e)]}function ona(e){return Math.max(1,e-Pvi)}function sna(e){return e+Pvi}function jWp(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 NWp(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 ana(e,t){globalThis.process?.on("uncaughtException",NWp(e,t))}function una(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var kWp=2e3,Sq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new lor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return uvi(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||AJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(ana(this.onException.bind(this),this.onFatalError.bind(this)),una(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(kWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var cna="5.26.2";var tBt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function lna(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 MWp=6e4,LWp=1152921504606847e3,UWp=["is_not"],gHe=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)}},bJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Cor=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 bJ||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 bJ||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 bJ)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"?hna(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):mna(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await pna(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await pna(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(MWp,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 gHe(`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 gHe(`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 gHe(`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 gHe&&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=n2e(()=>{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 pna(e,t,r=""){let n=await lna(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/LWp}function mna(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&&!UWp.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 fna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return fna(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=VWp(String(i));if(c==null&&(c=dna(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=dna(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function zWp(e,t){if(!(e in t))throw new bJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function hna(e,t,r,n=!1){let i=String(e.value);zWp(i,r);let o=r[i];return gna(o,t,r,n)}function gna(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=gna(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof bJ)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=hna(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=mna(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 bJ)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 fna(e){try{return new RegExp(e),!0}catch{return!1}}function dna(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 VWp(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 _or=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var qWp=100,Ana=3e4,GWp=5e4,xor=class extends eBt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new _or,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,qWp):Ana,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 Cor({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 Sq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||GWp}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 cna}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=Ana){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 bJ||_ 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=tBt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(tBt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(tBt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(tBt.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=n2e(()=>{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(Cra(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(!Sq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Sq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Sq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Sq.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=AJ(),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"&&bra(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 yna=require("async_hooks"),Sor=class{constructor(){this.storage=new yna.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 bna="posthog-node";function WWp(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[Tvi.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 Tvi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=bna,this.name=bna,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(WWp(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Sq.errorPropertiesBuilder=new dF.ErrorPropertiesBuilder([new dF.EventCoercer,new dF.ErrorCoercer,new dF.ObjectCoercer,new dF.StringCoercer,new dF.PrimitiveCoercer],dF.createStackParser("node:javascript",dF.nodeStackLineParser),[hra(),ina]);var AHe=class extends xor{getLibraryId(){return"posthog-node"}initializeContext(){return new Sor}};var Oor=class{posthog;constructor({posthogApiKey:t}){this.posthog=new AHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.4.3",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var rBt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var yHe=require("fs/promises"),Cna=require("os"),_na=require("path");var vna=we(require("crypto")),Por=new Uint8Array(256),Bor=Por.length;function Dvi(){return Bor>Por.length-16&&(vna.default.randomFillSync(Por),Bor=0),Por.slice(Bor,Bor+=16)}var Ena=/^(?:[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 $Wp(e){return typeof e=="string"&&Ena.test(e)}var Rvi=$Wp;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function Ina(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 wna=we(require("crypto")),Fvi={randomUUID:wna.default.randomUUID};function HWp(e,t,r){if(Fvi.randomUUID&&!t&&!e)return Fvi.randomUUID();e=e||{};let n=e.random||(e.rng||Dvi)();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 Ina(n)}var vC=HWp;var KWp="id",JWp=".fern",nBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new AHe(r),this.userId=t==null?void 0:mmi(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.4.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await 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,Cna.homedir)()),Se.of(JWp),Se.of(KWp));await nr(t)||(await(0,yHe.mkdir)((0,_na.dirname)(t),{recursive:!0}),await(0,yHe.writeFile)(t,vC())),this.persistedDistinctId=(await(0,yHe.readFile)(t)).toString()}return this.persistedDistinctId}};var jvi;async function bHe(){return jvi==null&&(jvi=await YWp()),jvi}async function YWp(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rBt;let r=await GXt();return r!=null?new nBt({token:r,posthogApiKey:e}):await XK()!=null?new Oor({posthogApiKey:e}):new nBt({token:void 0,posthogApiKey:e})}catch{return new rBt}}var xna=(e=0)=>t=>`\x1B[${t+e}m`,Sna=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Ona=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Qy={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]}},iOA=Object.keys(Qy.modifier),XWp=Object.keys(Qy.color),ZWp=Object.keys(Qy.bgColor),oOA=[...XWp,...ZWp];function e$p(){let e=new Map;for(let[t,r]of Object.entries(Qy)){for(let[n,i]of Object.entries(r))Qy[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Qy[n],e.set(i[0],i[1]);Object.defineProperty(Qy,t,{value:r,enumerable:!1})}return Object.defineProperty(Qy,"codes",{value:e,enumerable:!1}),Qy.color.close="\x1B[39m",Qy.bgColor.close="\x1B[49m",Qy.color.ansi=xna(),Qy.color.ansi256=Sna(),Qy.color.ansi16m=Ona(),Qy.bgColor.ansi=xna(10),Qy.bgColor.ansi256=Sna(10),Qy.bgColor.ansi16m=Ona(10),Object.defineProperties(Qy,{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=>Qy.rgbToAnsi256(...Qy.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)=>Qy.ansi256ToAnsi(Qy.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Qy.ansi256ToAnsi(Qy.hexToAnsi256(t)),enumerable:!1}}),Qy}var t$p=e$p(),Oq=t$p;var Dor=we(require("process"),1),Pna=we(require("os"),1),Qvi=we(require("tty"),1);function iL(e,t=globalThis.Deno?globalThis.Deno.args:Dor.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:Ny}=Dor.default,Tor;iL("no-color")||iL("no-colors")||iL("color=false")||iL("color=never")?Tor=0:(iL("color")||iL("colors")||iL("color=true")||iL("color=always"))&&(Tor=1);function r$p(){if("FORCE_COLOR"in Ny)return Ny.FORCE_COLOR==="true"?1:Ny.FORCE_COLOR==="false"?0:Ny.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ny.FORCE_COLOR,10),3)}function n$p(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function i$p(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=r$p();n!==void 0&&(Tor=n);let i=r?Tor:n;if(i===0)return 0;if(r){if(iL("color=16m")||iL("color=full")||iL("color=truecolor"))return 3;if(iL("color=256"))return 2}if("TF_BUILD"in Ny&&"AGENT_NAME"in Ny)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Ny.TERM==="dumb")return o;if(Dor.default.platform==="win32"){let s=Pna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ny)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Ny)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ny)||Ny.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Ny)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ny.TEAMCITY_VERSION)?1:0;if(Ny.COLORTERM==="truecolor"||Ny.TERM==="xterm-kitty"||Ny.TERM==="xterm-ghostty"||Ny.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Ny){let s=Number.parseInt((Ny.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ny.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ny.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ny.TERM)||"COLORTERM"in Ny?1:o}function Bna(e,t={}){let r=i$p(e,{streamIsTTY:e&&e.isTTY,...t});return n$p(r)}var o$p={stdout:Bna({isTTY:Qvi.default.isatty(1)}),stderr:Bna({isTTY:Qvi.default.isatty(2)})},Tna=o$p;function Dna(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 Rna(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
1445
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=Hra.test(a)?a.replace(Hra,"$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>=Kra)break}}return Jra(i)}}var Evi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=JOt(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 r2e(t,"DOMException")}isDOMError(t){return r2e(t,"DOMError")}};var Ivi=class{match(t){return cvi(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 wvi=class{constructor(){}match(t){return wra(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 _Wp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Cvi=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(_Wp);return i&&(r=i[1],n=i[2]),[r,n]}};var Xra=["fatal","error","warning","log","info","debug"];function Ior(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 _vi=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 cor(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=Ior(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return JOt(t)&&!Era(t)&&Xra.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Nra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var xvi=class{match(t){return cor(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Ior(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Svi=class{match(t){return YOt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Ovi=class{match(t){return r2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return YOt(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(YOt(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 Bvi=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 tna=require("fs"),rna=require("readline"),wor=new dF.ReduceableCache(25),nna=new dF.ReduceableCache(20),Pvi=7,xWp=1e3,SWp=1e4;async function ina(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"||TWp(s)||DWp(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(nna.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=FWp(o);if(s.every(u=>RWp(i,u)))continue;let a=jWp(wor,i,{});n.push(OWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&BWp(e,wor),wor.reduce(),e}function OWp(e,t,r){return new Promise(n=>{let i=(0,tna.createReadStream)(e),o=(0,rna.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(){nna.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 BWp(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;PWp(r.lineno,r,n)}}function PWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=ona(e);i<e;i++){let o=r[i];if(o===void 0)return void Zra(t);t.pre_context.push(o)}if(r[e]===void 0)return void Zra(t);t.context_line=r[e];let n=sna(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 Zra(e){delete e.pre_context,delete e.context_line,delete e.post_context}function TWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function DWp(e){return e.lineno!==void 0&&e.lineno>SWp||e.colno!==void 0&&e.colno>xWp}function RWp(e,t){let r=wor.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 FWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=ena(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+Pvi:(i.push(n),n=ena(o)),t++}return i}function ena(e){return[ona(e),sna(e)]}function ona(e){return Math.max(1,e-Pvi)}function sna(e){return e+Pvi}function jWp(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 NWp(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 ana(e,t){globalThis.process?.on("uncaughtException",NWp(e,t))}function una(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var kWp=2e3,Sq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new lor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return uvi(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||AJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(ana(this.onException.bind(this),this.onFatalError.bind(this)),una(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(kWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var cna="5.26.2";var tBt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function lna(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 MWp=6e4,LWp=1152921504606847e3,UWp=["is_not"],gHe=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)}},bJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Cor=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 bJ||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 bJ||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 bJ)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"?hna(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):mna(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await pna(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await pna(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(MWp,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 gHe(`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 gHe(`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 gHe(`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 gHe&&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=n2e(()=>{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 pna(e,t,r=""){let n=await lna(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/LWp}function mna(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&&!UWp.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 fna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return fna(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=VWp(String(i));if(c==null&&(c=dna(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=dna(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function zWp(e,t){if(!(e in t))throw new bJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function hna(e,t,r,n=!1){let i=String(e.value);zWp(i,r);let o=r[i];return gna(o,t,r,n)}function gna(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=gna(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof bJ)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=hna(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=mna(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 bJ)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 fna(e){try{return new RegExp(e),!0}catch{return!1}}function dna(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 VWp(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 _or=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var qWp=100,Ana=3e4,GWp=5e4,xor=class extends eBt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new _or,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,qWp):Ana,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 Cor({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 Sq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||GWp}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 cna}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=Ana){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 bJ||_ 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=tBt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(tBt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(tBt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(tBt.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=n2e(()=>{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(Cra(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(!Sq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Sq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Sq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Sq.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=AJ(),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"&&bra(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 yna=require("async_hooks"),Sor=class{constructor(){this.storage=new yna.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 bna="posthog-node";function WWp(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[Tvi.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 Tvi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=bna,this.name=bna,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(WWp(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Sq.errorPropertiesBuilder=new dF.ErrorPropertiesBuilder([new dF.EventCoercer,new dF.ErrorCoercer,new dF.ObjectCoercer,new dF.StringCoercer,new dF.PrimitiveCoercer],dF.createStackParser("node:javascript",dF.nodeStackLineParser),[hra(),ina]);var AHe=class extends xor{getLibraryId(){return"posthog-node"}initializeContext(){return new Sor}};var Oor=class{posthog;constructor({posthogApiKey:t}){this.posthog=new AHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.4.4",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var rBt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var yHe=require("fs/promises"),Cna=require("os"),_na=require("path");var vna=we(require("crypto")),Por=new Uint8Array(256),Bor=Por.length;function Dvi(){return Bor>Por.length-16&&(vna.default.randomFillSync(Por),Bor=0),Por.slice(Bor,Bor+=16)}var Ena=/^(?:[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 $Wp(e){return typeof e=="string"&&Ena.test(e)}var Rvi=$Wp;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function Ina(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 wna=we(require("crypto")),Fvi={randomUUID:wna.default.randomUUID};function HWp(e,t,r){if(Fvi.randomUUID&&!t&&!e)return Fvi.randomUUID();e=e||{};let n=e.random||(e.rng||Dvi)();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 Ina(n)}var vC=HWp;var KWp="id",JWp=".fern",nBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new AHe(r),this.userId=t==null?void 0:mmi(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.4.4",...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,Cna.homedir)()),Se.of(JWp),Se.of(KWp));await nr(t)||(await(0,yHe.mkdir)((0,_na.dirname)(t),{recursive:!0}),await(0,yHe.writeFile)(t,vC())),this.persistedDistinctId=(await(0,yHe.readFile)(t)).toString()}return this.persistedDistinctId}};var jvi;async function bHe(){return jvi==null&&(jvi=await YWp()),jvi}async function YWp(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rBt;let r=await GXt();return r!=null?new nBt({token:r,posthogApiKey:e}):await XK()!=null?new Oor({posthogApiKey:e}):new nBt({token:void 0,posthogApiKey:e})}catch{return new rBt}}var xna=(e=0)=>t=>`\x1B[${t+e}m`,Sna=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Ona=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Qy={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]}},iOA=Object.keys(Qy.modifier),XWp=Object.keys(Qy.color),ZWp=Object.keys(Qy.bgColor),oOA=[...XWp,...ZWp];function e$p(){let e=new Map;for(let[t,r]of Object.entries(Qy)){for(let[n,i]of Object.entries(r))Qy[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Qy[n],e.set(i[0],i[1]);Object.defineProperty(Qy,t,{value:r,enumerable:!1})}return Object.defineProperty(Qy,"codes",{value:e,enumerable:!1}),Qy.color.close="\x1B[39m",Qy.bgColor.close="\x1B[49m",Qy.color.ansi=xna(),Qy.color.ansi256=Sna(),Qy.color.ansi16m=Ona(),Qy.bgColor.ansi=xna(10),Qy.bgColor.ansi256=Sna(10),Qy.bgColor.ansi16m=Ona(10),Object.defineProperties(Qy,{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=>Qy.rgbToAnsi256(...Qy.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)=>Qy.ansi256ToAnsi(Qy.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Qy.ansi256ToAnsi(Qy.hexToAnsi256(t)),enumerable:!1}}),Qy}var t$p=e$p(),Oq=t$p;var Dor=we(require("process"),1),Pna=we(require("os"),1),Qvi=we(require("tty"),1);function iL(e,t=globalThis.Deno?globalThis.Deno.args:Dor.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:Ny}=Dor.default,Tor;iL("no-color")||iL("no-colors")||iL("color=false")||iL("color=never")?Tor=0:(iL("color")||iL("colors")||iL("color=true")||iL("color=always"))&&(Tor=1);function r$p(){if("FORCE_COLOR"in Ny)return Ny.FORCE_COLOR==="true"?1:Ny.FORCE_COLOR==="false"?0:Ny.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ny.FORCE_COLOR,10),3)}function n$p(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function i$p(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=r$p();n!==void 0&&(Tor=n);let i=r?Tor:n;if(i===0)return 0;if(r){if(iL("color=16m")||iL("color=full")||iL("color=truecolor"))return 3;if(iL("color=256"))return 2}if("TF_BUILD"in Ny&&"AGENT_NAME"in Ny)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Ny.TERM==="dumb")return o;if(Dor.default.platform==="win32"){let s=Pna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ny)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Ny)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ny)||Ny.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Ny)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ny.TEAMCITY_VERSION)?1:0;if(Ny.COLORTERM==="truecolor"||Ny.TERM==="xterm-kitty"||Ny.TERM==="xterm-ghostty"||Ny.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Ny){let s=Number.parseInt((Ny.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ny.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ny.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ny.TERM)||"COLORTERM"in Ny?1:o}function Bna(e,t={}){let r=i$p(e,{streamIsTTY:e&&e.isTTY,...t});return n$p(r)}var o$p={stdout:Bna({isTTY:Qvi.default.isatty(1)}),stderr:Bna({isTTY:Qvi.default.isatty(2)})},Tna=o$p;function Dna(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 Rna(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
1446
1446
  `:`
1447
1447
  `)+r,i=n+1,n=e.indexOf(`
1448
1448
  `,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:Fna,stderr:jna}=Tna,Nvi=Symbol("GENERATOR"),vHe=Symbol("STYLER"),iBt=Symbol("IS_EMPTY"),Qna=["ansi","ansi","ansi256","ansi16m"],EHe=Object.create(null),s$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=Fna?Fna.level:0;e.level=t.level===void 0?r:t.level};var a$p=e=>{let t=(...r)=>r.join(" ");return s$p(t,e),Object.setPrototypeOf(t,oBt.prototype),t};function oBt(e){return a$p(e)}Object.setPrototypeOf(oBt.prototype,Function.prototype);for(let[e,t]of Object.entries(Oq))EHe[e]={get(){let r=Ror(this,Mvi(t.open,t.close,this[vHe]),this[iBt]);return Object.defineProperty(this,e,{value:r}),r}};EHe.visible={get(){let e=Ror(this,this[vHe],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var kvi=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?Oq[r].ansi16m(...n):t==="ansi256"?Oq[r].ansi256(Oq.rgbToAnsi256(...n)):Oq[r].ansi(Oq.rgbToAnsi(...n)):e==="hex"?kvi("rgb",t,r,...Oq.hexToRgb(...n)):Oq[r][e](...n),u$p=["rgb","hex","ansi256"];for(let e of u$p){EHe[e]={get(){let{level:r}=this;return function(...n){let i=Mvi(kvi(e,Qna[r],"color",...n),Oq.color.close,this[vHe]);return Ror(this,i,this[iBt])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);EHe[t]={get(){let{level:r}=this;return function(...n){let i=Mvi(kvi(e,Qna[r],"bgColor",...n),Oq.bgColor.close,this[vHe]);return Ror(this,i,this[iBt])}}}}var c$p=Object.defineProperties(()=>{},{...EHe,level:{enumerable:!0,get(){return this[Nvi].level},set(e){this[Nvi].level=e}}}),Mvi=(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}},Ror=(e,t,r)=>{let n=(...i)=>l$p(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,c$p),n[Nvi]=e,n[vHe]=t,n[iBt]=r,n},l$p=(e,t)=>{if(e.level<=0||!t)return e[iBt]?"":t;let r=e[vHe];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Dna(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
@@ -2096,7 +2096,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
2096
2096
  Learn more about project structure:
2097
2097
  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?_cd(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=YHa(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=FNt({ir:s,apiDefinitionId:h,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),y=new lQr(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,_=Se.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 nLe(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 urt({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,Se.of("_navigation.yml"));if(!(0,GVi.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,O_e.readFile)(n,"utf-8")).split(`
2098
2098
  `).filter(s=>!s.startsWith("#")).join(`
2099
- `);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,Se.of(r));if(!(0,GVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Ra(this.docsWorkspace.absoluteFilePath,n),o=await(0,O_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 nLe(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};vQr(t,r,n)}};function Ccd(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:`${ST(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function _cd(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)}}Nt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(Ca)}async function WVi(e,t,r){if(e instanceof OO){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 xT({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:()=>AKa,ApiDefinitionId:()=>kKa,ApiId:()=>zKa,Availability:()=>nJa,DocsConfigId:()=>VKa,EndpointId:()=>GKa,EndpointPathLiteral:()=>tJa,EnvironmentId:()=>qKa,FileId:()=>JKa,HttpMethod:()=>rJa,IndexSegmentId:()=>yKa,JqString:()=>XKa,OrgId:()=>LKa,PageId:()=>KKa,PayloadLocation:()=>PJa,PropertyKey:()=>ZKa,PullRequestState:()=>_Ja,RoleId:()=>eJa,TokenId:()=>UKa,TypeId:()=>HKa,Url:()=>YKa,VersionId:()=>MKa,WebSocketId:()=>WKa,WebhookId:()=>$Ka,algolia:()=>$Vi,api:()=>nqi,commons:()=>iqi,diff:()=>iJa,docs:()=>dqi,generators:()=>hqi,git:()=>gqi,navigation:()=>bqi,sdks:()=>Eqi,snippets:()=>OJa,snippetsFactory:()=>BJa,templates:()=>Iqi,tokens:()=>TJa});var $Vi={};X($Vi,{AlgoliaSearchIndex:()=>AKa,IndexSegmentId:()=>yKa});function AKa(e){return e}function yKa(e){return e}var nqi={};X(nqi,{latest:()=>JVi,v1:()=>rqi});var JVi={};X(JVi,{AuthSchemeId:()=>bKa,WebhookHttpMethod:()=>wKa,auth:()=>HVi,commons:()=>vKa,endpoint:()=>EKa,type_:()=>IKa,webhook:()=>KVi,websocket:()=>CKa});var HVi={};X(HVi,{AuthSchemeId:()=>bKa});function bKa(e){return e}var vKa={};var EKa={};var IKa={};var KVi={};X(KVi,{WebhookHttpMethod:()=>wKa});var wKa={Get:"GET",Post:"POST"};var CKa={};var rqi={};X(rqi,{SubpackageId:()=>FKa,WebSocketMessageId:()=>jKa,WebSocketMessageOrigin:()=>QKa,WebhookHttpMethod:()=>NKa,commons:()=>tqi,db:()=>YVi,read:()=>ZVi,register:()=>eqi});var YVi={};X(YVi,{endpoint:()=>_Ka});var _Ka={};var ZVi={};X(ZVi,{SupportedLanguage:()=>xKa,endpoint:()=>XVi,type_:()=>SKa,webhook:()=>OKa,websocket:()=>BKa});var XVi={};X(XVi,{SupportedLanguage:()=>xKa});var xKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var SKa={};var OKa={};var BKa={};var eqi={};X(eqi,{SourceId:()=>xcd,endpoint:()=>PKa,type_:()=>TKa,webhook:()=>DKa,websocket:()=>RKa});var PKa={};var TKa={};var DKa={};var RKa={};function xcd(e){return e}var tqi={};X(tqi,{SubpackageId:()=>FKa,WebSocketMessageId:()=>jKa,WebSocketMessageOrigin:()=>QKa,WebhookHttpMethod:()=>NKa});function FKa(e){return e}function jKa(e){return e}var QKa={Client:"client",Server:"server"};var NKa={Get:"GET",Post:"POST"};var iqi={};X(iqi,{ApiDefinitionId:()=>kKa,ApiId:()=>zKa,Availability:()=>nJa,DocsConfigId:()=>VKa,EndpointId:()=>GKa,EndpointPathLiteral:()=>tJa,EnvironmentId:()=>qKa,FileId:()=>JKa,HttpMethod:()=>rJa,JqString:()=>XKa,OrgId:()=>LKa,PageId:()=>KKa,PropertyKey:()=>ZKa,RoleId:()=>eJa,TokenId:()=>UKa,TypeId:()=>HKa,Url:()=>YKa,VersionId:()=>MKa,WebSocketId:()=>WKa,WebhookId:()=>$Ka});function kKa(e){return e}function MKa(e){return e}function LKa(e){return e}function UKa(e){return e}function zKa(e){return e}function VKa(e){return e}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}var rJa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var nJa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var iJa={};var dqi={};X(dqi,{latest:()=>aqi,v1:()=>pqi,v2:()=>fqi});var aqi={};X(aqi,{Layout:()=>sJa,MdxEngine:()=>Scd,TwitterCardSetting:()=>aJa,commons:()=>oJa,frontmatter:()=>oqi,seo:()=>sqi});var Scd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var oJa={};var oqi={};X(oqi,{Layout:()=>sJa});var sJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var sqi={};X(sqi,{TwitterCardSetting:()=>aJa});var aJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var pqi={};X(pqi,{commons:()=>lqi,db:()=>uJa,read:()=>cJa,write:()=>uqi});var uJa={};var cJa={};var uqi={};X(uqi,{DocsRegistrationId:()=>Bcd,FilePath:()=>Ocd});function Ocd(e){return e}function Bcd(e){return e}var lqi={};X(lqi,{ContentAlignment:()=>dJa,FontDisplay:()=>yJa,FontStyle:()=>AJa,HeaderPosition:()=>mJa,JsScriptStrategy:()=>gJa,ProgrammingLanguage:()=>lJa,SearchbarPlacement:()=>pJa,TabsPlacement:()=>fJa,TwitterCardSetting:()=>hJa,commons:()=>cqi});var cqi={};X(cqi,{ContentAlignment:()=>dJa,FontDisplay:()=>yJa,FontStyle:()=>AJa,HeaderPosition:()=>mJa,JsScriptStrategy:()=>gJa,ProgrammingLanguage:()=>lJa,SearchbarPlacement:()=>pJa,TabsPlacement:()=>fJa,TwitterCardSetting:()=>hJa});var lJa={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 pJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var fJa={Header:"HEADER",Sidebar:"SIDEBAR"};var dJa={Center:"CENTER",Left:"LEFT"};var mJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var hJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var gJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var AJa={Normal:"normal",Italic:"italic"};var yJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var fqi={};X(fqi,{read:()=>bJa,write:()=>vJa});var bJa={};var vJa={};var hqi={};X(hqi,{ChangelogEntryType:()=>IJa,GeneratorId:()=>Pcd,GeneratorLanguage:()=>Tcd,ReleaseType:()=>wJa,cli:()=>EJa,commons:()=>mqi,versions:()=>CJa});var EJa={};var mqi={};X(mqi,{ChangelogEntryType:()=>IJa,ReleaseType:()=>wJa});var IJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var wJa={Ga:"GA",Rc:"RC"};var CJa={};function Pcd(e){return e}var Tcd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var gqi={};X(gqi,{PullRequestState:()=>_Ja});var _Ja={Open:"open",Closed:"closed",Merged:"merged"};var bqi={};X(bqi,{latest:()=>Aqi,v1:()=>yqi});var Aqi={};X(Aqi,{NodeId:()=>Fcd,ProductId:()=>jcd,Slug:()=>Dcd,TabId:()=>Rcd});function Dcd(e){return e}function Rcd(e){return e}function Fcd(e){return e}function jcd(e){return e}var yqi={};X(yqi,{NavigationV1Availability:()=>Lcd,NodeId:()=>kcd,ProductId:()=>Mcd,Slug:()=>Qcd,TabId:()=>Ncd});function Qcd(e){return e}function Ncd(e){return e}function kcd(e){return e}function Mcd(e){return e}var Lcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var Eqi={};X(Eqi,{Language:()=>xJa,VersionBump:()=>SJa,versions:()=>vqi});var vqi={};X(vqi,{Language:()=>xJa,VersionBump:()=>SJa});var xJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var SJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var OJa={};var BJa={};var Iqi={};X(Iqi,{PayloadLocation:()=>PJa});var PJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var TJa={};var wQr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function DJa({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 CQr=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 RJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends CQr{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 ${RJa(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{},bj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var FJa="x-fern-base-path",jJa="x-fern-availability",_Qr="x-fern-sdk-group-name",QJa="x-fern-global-headers",NJa="x-fern-sdk-method-name";var kJa="x-fern-webhook",MJa="x-fern-access-token-locator",LJa="x-fern-basic",UJa="x-fern-username-variable-name",zJa="x-fern-password-variable-name",VJa="x-fern-bearer",qJa="x-fern-token-variable-name",GJa="x-fern-header",WJa="x-fern-header-variable-name",$Ja="x-fern-server-name",HJa="x-fern-examples";var xQr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[$Ja]}convert(){if(this.serverName!=null)return this.serverName}};var SQr=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 xQr({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 B_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 SQr({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 OQr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var mYa=we(By());var BQr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[LJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var PQr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[zJa]}convert(){return this.passwordVariableName}};var TQr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[UJa]}convert(){return this.usernameVariableName}};var DQr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[VJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var RQr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[qJa]}convert(){return this.tokenVariableName}};function KJa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var JJa="x-bearer-format",YJa="x-code-samples",XJa="x-codeSamples";var FQr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[JJa]}convert(){return this.bearerFormat}};var jQr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[GJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var QQr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[WJa]}convert(){return this.headerVariableName}};function ZJa(e){return e.type==="apiKey"}var Mrt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){ZJa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new jQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new QQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new FQr({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()}}};BJn();T7o();function NQr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Lrt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function iLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(iLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function kQr(e){if(Array.isArray(e))return e.map(Lrt);if(typeof e=="symbol")return[e];e=iLe(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 jNt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Cqt(t))return r;let n=e[t];return n===void 0?NQr(t)?jNt(e,kQr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Lrt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Ucd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Cqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Ucd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Cqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function eYa(e){return function(t){return jNt(t,e)}}function tYa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}sKn();function wqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function _qi(e,t,r){return typeof r!="function"?_qi(e,t,()=>{}):Cqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:Cqi(i,o,n,c)},new Map)}function Cqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return zcd(e,t,r,n);case"function":return Object.keys(t).length>0?Cqi(e,{...t},r,n):wqi(e,t);default:return tYa(e)?typeof t=="string"?t==="":!0:wqi(e,t)}}function zcd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return rYa(e,t,r,n);if(t instanceof Map)return Vcd(e,t,r,n);if(t instanceof Set)return qcd(e,t,r,n);let i=Object.keys(t);if(e==null||SIt(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(!SIt(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 Vcd(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 rYa(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 qcd(e,t,r,n){return t.size===0?!0:e instanceof Set?rYa([...e],[...t],r,n):!1}function MQr(e,t){return _qi(e,t,()=>{})}P7o();function nYa(e){return e=B7o(e),t=>MQr(t,e)}uKn();yqt();aKn();function iYa(e,t){return O7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(lqe(e)===wqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),EM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case vqt:case bqt:case Eqt:{let a=new e.constructor(e?.valueOf());return EM(a,e),a}case Iqt:{let a={};return EM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function oYa(e){return iYa(e)}var Gcd=/^(?:0|[1-9]\d*)$/;function sYa(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 Gcd.test(e)}}yqt();function aYa(e){return e!==null&&typeof e=="object"&&lqe(e)==="[object Arguments]"}function uYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&NQr(t)&&e?.[t]==null?r=kQr(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)||aYa(n))&&sYa(o)&&o<n.length))return!1;n=n[o]}return!0}function cYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Lrt(e);break}}return t=oYa(t),function(r){let n=jNt(r,e);return n===void 0?uYa(r,e):t===void 0?n===void 0:MQr(n,t)}}function lYa(e){if(e==null)return k9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?cYa(e[0],e[1]):nYa(e);case"string":case"symbol":case"number":return eYa(e)}}BJn();cKn();function LQr(e,t=k9t){return e==null?{}:Ox(e,lYa(t))}eXo();function pYa(e){return ZYo(iLe(e))}j7o();function fYa(e){return typeof e!="string"&&(e=iLe(e)),e.replace(/['\u2019]/g,"")}function q9(e){return F7o(fYa(pYa(e)))}function Nm(e){if(e!=null)return Array.isArray(e)?e:[e]}function UQr({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`${Wcd(s)}${$cd(e)}.${Hcd(n,i,o,a)}`}function Wcd(e){return e?"webhook_":"endpoint_"}function $cd(e){return e!=null?Nm(e)?.map(t=>q9(t)).join("/"):""}function Hcd(e,t,r,n){return e||t||q9(r??"")||q9(n??"")}function dYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var zQr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[MJa],this.accessTokenLocator!=null&&(dYa(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 VQr=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 Mrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new zQr({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=UQr({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 Urt=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 BQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new TQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new PQr({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 DQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new RQr({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":{KJa(this.input)?(this.authScheme="header",this.headerAuthNode=new Mrt({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 VQr({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 mYa.UnreachableCaseError(this.authScheme);return}}};var zrt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=OQr(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 Urt({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 qQr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[FJa],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 hYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function gYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function Vrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Nm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!hYa(i))&&(s=gYa(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 GQr(e,t){return Lp(e)?WS(e,t,void 0):e}function P_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function AYa(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 yYa(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 bYa=we(By());var xqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Sqi=["int16","int32","int64","int8","sf-integer","uint8"],Oqi=["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"],Bqi=["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 SU=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[jJa];r!=null&&(Bqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${Bqi.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 bYa.UnreachableCaseError(this.availability);return}}};var $Qr=we(By());function vYa(e){return typeof e=="object"&&e!=null&&"language"in e}function EYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function IYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function wYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function WQr(e){return typeof e=="object"&&e!=null&&"event"in e}function Pqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(WQr)}function T_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function CYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var HQr=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[HJa]}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 T_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=>T_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 $Qr.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=CYa(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 $Qr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{IYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Pqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Pqi(r.response)&&wYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new $Qr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{vYa(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})):EYa(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 QNt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[_Qr]}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(q9(r)))}};var KQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[NJa]}convert(){return this.sdkMethodName}};var JQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[kJa]}convert(){return this.isWebhook}};var YQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[YJa]??[],...this.input[XJa]??[]],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 oLe=we(By());function Tqi(e,t){return Lp(e)?WS(e,t,void 0):e}function _Ya(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 a_="",rX=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&&(T_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>T_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new oLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=Tqi(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=Tqi(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 oLe.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(WQr)){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 oLe.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 T_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=>T_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 oLe.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 oLe.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 oLe.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:_Ya(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 xYa(e,t){return Lp(e)?WS(e,t,void 0):e}var MYa=we(By());var SYa="#/components/schemas/";function qrt(e){if(e.$ref.startsWith(SYa))return e.$ref.replace(SYa,"")}function nAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function D_e(e){return typeof e.type=="string"&&e.type==="array"}function OYa(e){return e.type==="boolean"}function BYa(e){return e.type==="integer"}function R_e(e){return!Array.isArray(e.type)&&!D_e(e)}function PYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||R_e(t)||D_e(t))}function TYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function DYa(e){return e.type==="null"}function RYa(e){return e.type==="number"}function Dqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function FYa(e){return e.type==="string"}var XQr=class extends bj{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 Nm(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 ZQr=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 SU({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 eNr=class extends bj{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=>Nm(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 tNr(e){return e!=null&&e.length>0?e:[void 0]}var Grt=class extends bj{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 qrt(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 Vrt(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}}}]:Nm(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=>tNr(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 rNr=class extends bj{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])=>Nm(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=>Nm(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 nNr=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 F_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 jYa=we(By());function Kcd(e){return Sqi.includes(e)}var iNr=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&&(Kcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Sqi.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 jYa.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 oNr=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 QYa=we(By());function Jcd(e){return xqi.includes(e)}var sNr=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&&(Jcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${xqi.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 QYa.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 NYa=we(By());function Ycd(e){return Oqi.includes(e)}var aNr=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 NYa.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&&(Ycd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Oqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new F_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 kYa=we(By());var uNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,kYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var sLe=class extends bj{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=qrt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&R_e(t)&&(this.maybeEnumConverterNode=new F_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 bj{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 SU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),R_e(this.input)&&TYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=qrt(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 sLe({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 ZQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(PYa(this.input))this.typeShapeNode=new eNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(R_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new rNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(Dqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new Grt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(R_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new F_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":Dqi(this.input)&&(this.typeShapeNode=new Grt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":D_e(this.input)&&(this.typeShapeNode=new XQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":OYa(this.input)&&(this.typeShapeNode=new nNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":BYa(this.input)&&(this.typeShapeNode=new iNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":RYa(this.input)&&(this.typeShapeNode=new sNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":FYa(this.input)&&(this.typeShapeNode=new aNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":DYa(this.input)&&(this.typeShapeNode=new oNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new MYa.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 Grt({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 uNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!D_e(this.input)&&this.input==null||D_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=Nm(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 j_e(e){if(e!=null)return Vrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var nX=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 SU({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=xYa(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 LYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Rqi=we(By());function cNr(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 UYa=we(Ipi(),1),Wrt=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=UYa.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 Xcd(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var lNr=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})]))),Xcd(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=OQr(r.$ref,this.context.document):i=r,i!=null)return[t,new Urt({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=Nm(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 pNr=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 fNr=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 SU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new sLe({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=Wrt.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 pNr({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?{[a_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[a_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Nm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=q9([this.method,this.path,this.contentType,"request"].join("_"));return cNr({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 Rqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof sLe)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=Nm(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 Rqi.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 dNr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=LYa(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 fNr({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])=>Nm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Nm(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 zYa={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 VYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mNr=we(By());var qYa="application/json";var GYa="application/octet-stream";function WYa(e,t){return e===t||t===a_||e===a_}var NNt=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)WYa(a,o)&&(n.add(a),this.examples?.push(new rX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,P_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[a_];if(o!=null)for(let s of o)this.examples?.push(new rX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,P_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=Wrt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=qYa,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=GYa,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=LQr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]=[{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=LQr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[a_]??=[],r[a_]?.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!==a_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==a_);Object.keys(r).every(a=>a===a_)||this.matchExamplesByIndex(o,s),!i.has(a_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Nm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new mNr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Nm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=q9([this.method,this.path,this.statusCode,"response"].join("_"));return cNr({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 mNr.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 mNr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var kNt=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=VYa(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 nX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new NNt({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 NNt({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 hNr=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 kNt({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 kNt({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 tNr(j_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=Nm(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??zYa[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 rX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,P_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 SU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=B_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new JQr({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=GQr(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 nX({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 nX({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 nX({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 YQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new dNr({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 hNr({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 zrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new QNt({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 QNt({input:{[_Qr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new KQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>UQr({namespace:Nm(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 HQr({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=yYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:AYa(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:j_e(this.queryParameters)?.flat(),headers:j_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:j_e(this.pathParameters)?.flat(),queryParameters:j_e(this.queryParameters)?.flat(),requestHeaders:j_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 $rt=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=B_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 gNr(e){return"payloads"in e}var ANr=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 $rt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:B_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=>{gNr(o)?r[Ea.WebhookId(o.id)]=o:t[Ea.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var yNr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[QJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||GQr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new nX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return Vrt(this.globalHeaders,this.requiredProperties)?.flat()}};function $Ya(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var bNr=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=$Ya(o,this.context.document);if(s!=null)return new $rt({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=>{gNr(n)&&(t[Ea.WebhookId(n.id)]=n)}),t),{})}};var vNr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=B_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new zrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new qQr({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 ANr({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 bNr({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 lNr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new yNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=vC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=DJa({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 Fqi(e,t){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new O9(e.absoluteFilePath),n=await pU({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 wQr,generatedTypes:{}},u=new vNr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=sWe(o,u.convert())}return o}dg();Wt();var olu=we(Nqi(),1),slu=we(s2r(),1),Vkr=require("fs/promises"),alu=we(require("http"),1),ulu=we(require("path"),1);var Gru=require("events"),p2r=we(require("fs"),1),gLe=we(require("path"),1);var Sru=we(require("os"),1),Oru=300,V_e=20,c2t=1e7,Bru=Sru.default.platform();var dAd=Bru==="darwin",rGi=Bru==="win32",q_e=dAd||rGi,Pru=3e3,Tru=2e4,nGi=1250;var aX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(aX||(aX={}));var hLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(hLe||(hLe={}));var l2t;(function(e){e.CHANGE="change",e.ERROR="error"})(l2t||(l2t={}));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 PT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(PT||(PT={}));var mAd=(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},a2r=mAd;var aGi=we(require("fs"),1),c2r=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)},uX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var iGi=we(require("process"),1),Dru=iGi.default.getuid?!iGi.default.getuid():!1,Rru=1e4,wj=()=>{};var p2t={isChangeErrorOk:e=>{if(!p2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Dru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!p2t.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(!p2t.isNodeError(e))throw e;if(!p2t.isChangeErrorOk(e))throw e}},Gv=p2t;var oGi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Rru,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()}}}}},Fru=new oGi;var sAe=(e,t)=>function(n){return function i(...o){return Fru.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 hAd={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),wj),fsync:oAe((0,$S.promisify)(jf.default.fsync),wj),mkdir:oAe((0,$S.promisify)(jf.default.mkdir),wj),realpath:oAe((0,$S.promisify)(jf.default.realpath),wj),stat:oAe((0,$S.promisify)(jf.default.stat),wj),unlink:oAe((0,$S.promisify)(jf.default.unlink),wj),chmodSync:uX(jf.default.chmodSync,Gv.onChangeError),chownSync:uX(jf.default.chownSync,Gv.onChangeError),closeSync:uX(jf.default.closeSync,wj),existsSync:uX(jf.default.existsSync,wj),fsyncSync:uX(jf.default.fsync,wj),mkdirSync:uX(jf.default.mkdirSync,wj),realpathSync:uX(jf.default.realpathSync,wj),statSync:uX(jf.default.statSync,wj),unlinkSync:uX(jf.default.unlinkSync,wj)},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)}},jru=hAd;var u2r=we(require("fs"),1),f2t=we(require("path"),1);var sGi=()=>{};var gAd=()=>{let e=sGi,t=sGi,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}},Qru=gAd;var AAd=()=>{let{promise:e,resolve:t,isPending:r}=Qru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Nru=AAd;var kru={then:e=>{e()}};var Mru=e=>Array.isArray(e)?e:[e],Lru=e=>typeof e=="function";var yAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Mru(o).map(H=>Lru(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}=Nru(),R=0,z=(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)))},U=(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))},q=(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,Ce)=>{u.aborted||a(J)||(ge.isDirectory()?z(H,J,Ae,Ce):ge.isFile()?U(H,J,Ae):ge.isSymbolicLink()&&q(H,J,Ae,Ce))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Ce=J===f2t.default.sep?"":f2t.default.sep,xe=Ae.name,pe=`${J}${Ce}${xe}`;a(pe)||(Ae.isDirectory()?z(H,pe,xe,ge):Ae.isFile()?U(H,pe,xe):Ae.isSymbolicLink()&&q(H,pe,xe,ge))},V=(H,J,Ae,ge)=>{for(let Ce=0,xe=Ae.length;Ce<xe;Ce++)ie(H,J,Ae[Ce],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),u2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||kru).then(()=>{let xe=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(xe,H,ge,J),x()})}))},Ee=(H,J)=>{C(),u2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();u2r.default.stat(ge,(Ce,xe)=>{if(Ce||u.aborted)return x();let pe=f2t.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,xe,J),x()})})};return(async(H,J=1)=>(H=f2t.default.normalize(H),v.add(H),K(H,J),await _,u.aborted?I:w))(e)},Uru=yAd;var cX={lang:{debounce:a2r,attempt:e=>{try{return e()}catch(t){return cX.lang.castError(t)}},castArray:e=>cX.lang.isArray(e)?e:[e],castError:e=>cX.lang.isError(e)?e:cX.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(cX.lang.isNaN(e))return cX.lang.isNaN(t);if(cX.lang.isPrimitive(e)||cX.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(c2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?aGi.default.realpathSync.native(e):aGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===c2r.default.sep&&t.length-e.length>c2r.default.sep.length,poll:(e,t=Tru)=>jru.retry.stat(t)(e,{bigint:!0}).catch(cX.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 Uru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=cX;var l2r=we(require("path"),1);var uGi=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=Oru){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??V_e:Math.min(1,this.options.depth??V_e),s=this.options.limit??c2t,[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&&!q_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(l2r.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(l2r.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=hLe.CHANGE,r){if(this.watcher.isClosed())return;let n=l2r.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){rGi&&t.code==="EPERM"?this.onWatcherChange(hLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(l2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(l2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(hLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&q_e&&this.options.native!==!1?this.options.depth??V_e:Math.min(1,this.options.depth??V_e),n=this.options.limit??c2t,[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(hLe.CHANGE,a,t)}))}}},zru=uGi;var TT={interval:100,intervalId:void 0,fns:new Map,init:()=>{TT.intervalId||(TT.intervalId=setInterval(TT.resolve,TT.interval))},reset:()=>{TT.intervalId&&(clearInterval(TT.intervalId),delete TT.intervalId)},add:(e,t)=>{TT.fns.set(e,Date.now()+t),TT.init()},remove:e=>{TT.fns.delete(e)},resolve:()=>{if(!TT.fns.size)return TT.reset();let e=Date.now();for(let[t,r]of TT.fns)r>=e||(TT.remove(t),t())}},d2t=TT;var m2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=nGi){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),d2t.remove(c)},c=()=>{u(),a()};d2t.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=nGi){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),d2t.remove(c)},c=()=>{u(),a()};d2t.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,aX.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,aX.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,aX.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,aX.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}}};m2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};m2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Vru=m2t;var cGi=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}},lGi=cGi;var pGi=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}},qru=pGi;var fGi=class{constructor(){this.inos={},this.paths=new lGi,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 qru(n)}reset(){this.inos={},this.paths=new lGi,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()?aX.FILE:aX.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)}}},dGi=fGi;var mGi=class e extends Gru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(PT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(PT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(PT.READY,i)),this._locker=new Vru(this),this._roots=new Set,this._poller=new dGi,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(PT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(PT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(PT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(PT.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 zru(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=gLe.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??V_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&q_e&&l.options.native!==!1)))return!0;if(!q_e)break;let c=gLe.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||q_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:p2r.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=gLe.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||q_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??V_e,a=r.limit??c2t,[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(PT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(PT.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=gLe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new dGi,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??Pru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(PT.CLOSE,a),p2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(PT.CLOSE,a),p2r.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=gLe.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=gLe.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(PT.ALL,n),r.readdirMap=void 0,this.ready())}},f2r=mGi;x2r();Wt();var Ant=require("fs/promises"),Ynu=require("os"),Xnu=we(require("path"),1),Uyd=".fern",zyd="logs";function Vyd(){return"cli@4.4.3"}var ILe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,Ynu.homedir)()),Se.of(Uyd)),r=We(t,Se.of(zyd));await nr(r)||await(0,Ant.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,Se.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Xnu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2099
+ `);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,Se.of(r));if(!(0,GVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Ra(this.docsWorkspace.absoluteFilePath,n),o=await(0,O_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 nLe(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};vQr(t,r,n)}};function Ccd(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:`${ST(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function _cd(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)}}Nt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(Ca)}async function WVi(e,t,r){if(e instanceof OO){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 xT({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:()=>AKa,ApiDefinitionId:()=>kKa,ApiId:()=>zKa,Availability:()=>nJa,DocsConfigId:()=>VKa,EndpointId:()=>GKa,EndpointPathLiteral:()=>tJa,EnvironmentId:()=>qKa,FileId:()=>JKa,HttpMethod:()=>rJa,IndexSegmentId:()=>yKa,JqString:()=>XKa,OrgId:()=>LKa,PageId:()=>KKa,PayloadLocation:()=>PJa,PropertyKey:()=>ZKa,PullRequestState:()=>_Ja,RoleId:()=>eJa,TokenId:()=>UKa,TypeId:()=>HKa,Url:()=>YKa,VersionId:()=>MKa,WebSocketId:()=>WKa,WebhookId:()=>$Ka,algolia:()=>$Vi,api:()=>nqi,commons:()=>iqi,diff:()=>iJa,docs:()=>dqi,generators:()=>hqi,git:()=>gqi,navigation:()=>bqi,sdks:()=>Eqi,snippets:()=>OJa,snippetsFactory:()=>BJa,templates:()=>Iqi,tokens:()=>TJa});var $Vi={};X($Vi,{AlgoliaSearchIndex:()=>AKa,IndexSegmentId:()=>yKa});function AKa(e){return e}function yKa(e){return e}var nqi={};X(nqi,{latest:()=>JVi,v1:()=>rqi});var JVi={};X(JVi,{AuthSchemeId:()=>bKa,WebhookHttpMethod:()=>wKa,auth:()=>HVi,commons:()=>vKa,endpoint:()=>EKa,type_:()=>IKa,webhook:()=>KVi,websocket:()=>CKa});var HVi={};X(HVi,{AuthSchemeId:()=>bKa});function bKa(e){return e}var vKa={};var EKa={};var IKa={};var KVi={};X(KVi,{WebhookHttpMethod:()=>wKa});var wKa={Get:"GET",Post:"POST"};var CKa={};var rqi={};X(rqi,{SubpackageId:()=>FKa,WebSocketMessageId:()=>jKa,WebSocketMessageOrigin:()=>QKa,WebhookHttpMethod:()=>NKa,commons:()=>tqi,db:()=>YVi,read:()=>ZVi,register:()=>eqi});var YVi={};X(YVi,{endpoint:()=>_Ka});var _Ka={};var ZVi={};X(ZVi,{SupportedLanguage:()=>xKa,endpoint:()=>XVi,type_:()=>SKa,webhook:()=>OKa,websocket:()=>BKa});var XVi={};X(XVi,{SupportedLanguage:()=>xKa});var xKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var SKa={};var OKa={};var BKa={};var eqi={};X(eqi,{SourceId:()=>xcd,endpoint:()=>PKa,type_:()=>TKa,webhook:()=>DKa,websocket:()=>RKa});var PKa={};var TKa={};var DKa={};var RKa={};function xcd(e){return e}var tqi={};X(tqi,{SubpackageId:()=>FKa,WebSocketMessageId:()=>jKa,WebSocketMessageOrigin:()=>QKa,WebhookHttpMethod:()=>NKa});function FKa(e){return e}function jKa(e){return e}var QKa={Client:"client",Server:"server"};var NKa={Get:"GET",Post:"POST"};var iqi={};X(iqi,{ApiDefinitionId:()=>kKa,ApiId:()=>zKa,Availability:()=>nJa,DocsConfigId:()=>VKa,EndpointId:()=>GKa,EndpointPathLiteral:()=>tJa,EnvironmentId:()=>qKa,FileId:()=>JKa,HttpMethod:()=>rJa,JqString:()=>XKa,OrgId:()=>LKa,PageId:()=>KKa,PropertyKey:()=>ZKa,RoleId:()=>eJa,TokenId:()=>UKa,TypeId:()=>HKa,Url:()=>YKa,VersionId:()=>MKa,WebSocketId:()=>WKa,WebhookId:()=>$Ka});function kKa(e){return e}function MKa(e){return e}function LKa(e){return e}function UKa(e){return e}function zKa(e){return e}function VKa(e){return e}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}var rJa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var nJa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var iJa={};var dqi={};X(dqi,{latest:()=>aqi,v1:()=>pqi,v2:()=>fqi});var aqi={};X(aqi,{Layout:()=>sJa,MdxEngine:()=>Scd,TwitterCardSetting:()=>aJa,commons:()=>oJa,frontmatter:()=>oqi,seo:()=>sqi});var Scd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var oJa={};var oqi={};X(oqi,{Layout:()=>sJa});var sJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var sqi={};X(sqi,{TwitterCardSetting:()=>aJa});var aJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var pqi={};X(pqi,{commons:()=>lqi,db:()=>uJa,read:()=>cJa,write:()=>uqi});var uJa={};var cJa={};var uqi={};X(uqi,{DocsRegistrationId:()=>Bcd,FilePath:()=>Ocd});function Ocd(e){return e}function Bcd(e){return e}var lqi={};X(lqi,{ContentAlignment:()=>dJa,FontDisplay:()=>yJa,FontStyle:()=>AJa,HeaderPosition:()=>mJa,JsScriptStrategy:()=>gJa,ProgrammingLanguage:()=>lJa,SearchbarPlacement:()=>pJa,TabsPlacement:()=>fJa,TwitterCardSetting:()=>hJa,commons:()=>cqi});var cqi={};X(cqi,{ContentAlignment:()=>dJa,FontDisplay:()=>yJa,FontStyle:()=>AJa,HeaderPosition:()=>mJa,JsScriptStrategy:()=>gJa,ProgrammingLanguage:()=>lJa,SearchbarPlacement:()=>pJa,TabsPlacement:()=>fJa,TwitterCardSetting:()=>hJa});var lJa={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 pJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var fJa={Header:"HEADER",Sidebar:"SIDEBAR"};var dJa={Center:"CENTER",Left:"LEFT"};var mJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var hJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var gJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var AJa={Normal:"normal",Italic:"italic"};var yJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var fqi={};X(fqi,{read:()=>bJa,write:()=>vJa});var bJa={};var vJa={};var hqi={};X(hqi,{ChangelogEntryType:()=>IJa,GeneratorId:()=>Pcd,GeneratorLanguage:()=>Tcd,ReleaseType:()=>wJa,cli:()=>EJa,commons:()=>mqi,versions:()=>CJa});var EJa={};var mqi={};X(mqi,{ChangelogEntryType:()=>IJa,ReleaseType:()=>wJa});var IJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var wJa={Ga:"GA",Rc:"RC"};var CJa={};function Pcd(e){return e}var Tcd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var gqi={};X(gqi,{PullRequestState:()=>_Ja});var _Ja={Open:"open",Closed:"closed",Merged:"merged"};var bqi={};X(bqi,{latest:()=>Aqi,v1:()=>yqi});var Aqi={};X(Aqi,{NodeId:()=>Fcd,ProductId:()=>jcd,Slug:()=>Dcd,TabId:()=>Rcd});function Dcd(e){return e}function Rcd(e){return e}function Fcd(e){return e}function jcd(e){return e}var yqi={};X(yqi,{NavigationV1Availability:()=>Lcd,NodeId:()=>kcd,ProductId:()=>Mcd,Slug:()=>Qcd,TabId:()=>Ncd});function Qcd(e){return e}function Ncd(e){return e}function kcd(e){return e}function Mcd(e){return e}var Lcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var Eqi={};X(Eqi,{Language:()=>xJa,VersionBump:()=>SJa,versions:()=>vqi});var vqi={};X(vqi,{Language:()=>xJa,VersionBump:()=>SJa});var xJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var SJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var OJa={};var BJa={};var Iqi={};X(Iqi,{PayloadLocation:()=>PJa});var PJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var TJa={};var wQr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function DJa({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 CQr=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 RJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends CQr{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 ${RJa(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{},bj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var FJa="x-fern-base-path",jJa="x-fern-availability",_Qr="x-fern-sdk-group-name",QJa="x-fern-global-headers",NJa="x-fern-sdk-method-name";var kJa="x-fern-webhook",MJa="x-fern-access-token-locator",LJa="x-fern-basic",UJa="x-fern-username-variable-name",zJa="x-fern-password-variable-name",VJa="x-fern-bearer",qJa="x-fern-token-variable-name",GJa="x-fern-header",WJa="x-fern-header-variable-name",$Ja="x-fern-server-name",HJa="x-fern-examples";var xQr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[$Ja]}convert(){if(this.serverName!=null)return this.serverName}};var SQr=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 xQr({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 B_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 SQr({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 OQr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var mYa=we(By());var BQr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[LJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var PQr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[zJa]}convert(){return this.passwordVariableName}};var TQr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[UJa]}convert(){return this.usernameVariableName}};var DQr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[VJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var RQr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[qJa]}convert(){return this.tokenVariableName}};function KJa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var JJa="x-bearer-format",YJa="x-code-samples",XJa="x-codeSamples";var FQr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[JJa]}convert(){return this.bearerFormat}};var jQr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[GJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var QQr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[WJa]}convert(){return this.headerVariableName}};function ZJa(e){return e.type==="apiKey"}var Mrt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){ZJa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new jQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new QQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new FQr({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()}}};BJn();T7o();function NQr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Lrt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function iLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(iLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function kQr(e){if(Array.isArray(e))return e.map(Lrt);if(typeof e=="symbol")return[e];e=iLe(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 jNt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Cqt(t))return r;let n=e[t];return n===void 0?NQr(t)?jNt(e,kQr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Lrt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Ucd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Cqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Ucd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Cqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function eYa(e){return function(t){return jNt(t,e)}}function tYa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}sKn();function wqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function _qi(e,t,r){return typeof r!="function"?_qi(e,t,()=>{}):Cqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:Cqi(i,o,n,c)},new Map)}function Cqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return zcd(e,t,r,n);case"function":return Object.keys(t).length>0?Cqi(e,{...t},r,n):wqi(e,t);default:return tYa(e)?typeof t=="string"?t==="":!0:wqi(e,t)}}function zcd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return rYa(e,t,r,n);if(t instanceof Map)return Vcd(e,t,r,n);if(t instanceof Set)return qcd(e,t,r,n);let i=Object.keys(t);if(e==null||SIt(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(!SIt(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 Vcd(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 rYa(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 qcd(e,t,r,n){return t.size===0?!0:e instanceof Set?rYa([...e],[...t],r,n):!1}function MQr(e,t){return _qi(e,t,()=>{})}P7o();function nYa(e){return e=B7o(e),t=>MQr(t,e)}uKn();yqt();aKn();function iYa(e,t){return O7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(lqe(e)===wqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),EM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case vqt:case bqt:case Eqt:{let a=new e.constructor(e?.valueOf());return EM(a,e),a}case Iqt:{let a={};return EM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function oYa(e){return iYa(e)}var Gcd=/^(?:0|[1-9]\d*)$/;function sYa(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 Gcd.test(e)}}yqt();function aYa(e){return e!==null&&typeof e=="object"&&lqe(e)==="[object Arguments]"}function uYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&NQr(t)&&e?.[t]==null?r=kQr(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)||aYa(n))&&sYa(o)&&o<n.length))return!1;n=n[o]}return!0}function cYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Lrt(e);break}}return t=oYa(t),function(r){let n=jNt(r,e);return n===void 0?uYa(r,e):t===void 0?n===void 0:MQr(n,t)}}function lYa(e){if(e==null)return k9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?cYa(e[0],e[1]):nYa(e);case"string":case"symbol":case"number":return eYa(e)}}BJn();cKn();function LQr(e,t=k9t){return e==null?{}:Ox(e,lYa(t))}eXo();function pYa(e){return ZYo(iLe(e))}j7o();function fYa(e){return typeof e!="string"&&(e=iLe(e)),e.replace(/['\u2019]/g,"")}function q9(e){return F7o(fYa(pYa(e)))}function Nm(e){if(e!=null)return Array.isArray(e)?e:[e]}function UQr({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`${Wcd(s)}${$cd(e)}.${Hcd(n,i,o,a)}`}function Wcd(e){return e?"webhook_":"endpoint_"}function $cd(e){return e!=null?Nm(e)?.map(t=>q9(t)).join("/"):""}function Hcd(e,t,r,n){return e||t||q9(r??"")||q9(n??"")}function dYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var zQr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[MJa],this.accessTokenLocator!=null&&(dYa(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 VQr=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 Mrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new zQr({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=UQr({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 Urt=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 BQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new TQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new PQr({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 DQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new RQr({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":{KJa(this.input)?(this.authScheme="header",this.headerAuthNode=new Mrt({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 VQr({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 mYa.UnreachableCaseError(this.authScheme);return}}};var zrt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=OQr(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 Urt({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 qQr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[FJa],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 hYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function gYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function Vrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Nm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!hYa(i))&&(s=gYa(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 GQr(e,t){return Lp(e)?WS(e,t,void 0):e}function P_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function AYa(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 yYa(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 bYa=we(By());var xqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Sqi=["int16","int32","int64","int8","sf-integer","uint8"],Oqi=["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"],Bqi=["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 SU=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[jJa];r!=null&&(Bqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${Bqi.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 bYa.UnreachableCaseError(this.availability);return}}};var $Qr=we(By());function vYa(e){return typeof e=="object"&&e!=null&&"language"in e}function EYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function IYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function wYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function WQr(e){return typeof e=="object"&&e!=null&&"event"in e}function Pqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(WQr)}function T_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function CYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var HQr=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[HJa]}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 T_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=>T_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 $Qr.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=CYa(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 $Qr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{IYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Pqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Pqi(r.response)&&wYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new $Qr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{vYa(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})):EYa(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 QNt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[_Qr]}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(q9(r)))}};var KQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[NJa]}convert(){return this.sdkMethodName}};var JQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[kJa]}convert(){return this.isWebhook}};var YQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[YJa]??[],...this.input[XJa]??[]],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 oLe=we(By());function Tqi(e,t){return Lp(e)?WS(e,t,void 0):e}function _Ya(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 a_="",rX=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&&(T_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>T_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new oLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=Tqi(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=Tqi(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 oLe.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(WQr)){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 oLe.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 T_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=>T_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 oLe.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 oLe.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 oLe.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:_Ya(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 xYa(e,t){return Lp(e)?WS(e,t,void 0):e}var MYa=we(By());var SYa="#/components/schemas/";function qrt(e){if(e.$ref.startsWith(SYa))return e.$ref.replace(SYa,"")}function nAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function D_e(e){return typeof e.type=="string"&&e.type==="array"}function OYa(e){return e.type==="boolean"}function BYa(e){return e.type==="integer"}function R_e(e){return!Array.isArray(e.type)&&!D_e(e)}function PYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||R_e(t)||D_e(t))}function TYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function DYa(e){return e.type==="null"}function RYa(e){return e.type==="number"}function Dqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function FYa(e){return e.type==="string"}var XQr=class extends bj{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 Nm(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 ZQr=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 SU({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 eNr=class extends bj{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=>Nm(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 tNr(e){return e!=null&&e.length>0?e:[void 0]}var Grt=class extends bj{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 qrt(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 Vrt(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}}}]:Nm(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=>tNr(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 rNr=class extends bj{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])=>Nm(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=>Nm(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 nNr=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 F_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 jYa=we(By());function Kcd(e){return Sqi.includes(e)}var iNr=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&&(Kcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Sqi.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 jYa.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 oNr=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 QYa=we(By());function Jcd(e){return xqi.includes(e)}var sNr=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&&(Jcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${xqi.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 QYa.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 NYa=we(By());function Ycd(e){return Oqi.includes(e)}var aNr=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 NYa.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&&(Ycd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Oqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new F_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 kYa=we(By());var uNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,kYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var sLe=class extends bj{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=qrt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&R_e(t)&&(this.maybeEnumConverterNode=new F_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 bj{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 SU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),R_e(this.input)&&TYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=qrt(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 sLe({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 ZQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(PYa(this.input))this.typeShapeNode=new eNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(R_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new rNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(Dqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new Grt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(R_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new F_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":Dqi(this.input)&&(this.typeShapeNode=new Grt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":D_e(this.input)&&(this.typeShapeNode=new XQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":OYa(this.input)&&(this.typeShapeNode=new nNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":BYa(this.input)&&(this.typeShapeNode=new iNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":RYa(this.input)&&(this.typeShapeNode=new sNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":FYa(this.input)&&(this.typeShapeNode=new aNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":DYa(this.input)&&(this.typeShapeNode=new oNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new MYa.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 Grt({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 uNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!D_e(this.input)&&this.input==null||D_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=Nm(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 j_e(e){if(e!=null)return Vrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var nX=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 SU({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=xYa(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 LYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Rqi=we(By());function cNr(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 UYa=we(Ipi(),1),Wrt=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=UYa.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 Xcd(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var lNr=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})]))),Xcd(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=OQr(r.$ref,this.context.document):i=r,i!=null)return[t,new Urt({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=Nm(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 pNr=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 fNr=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 SU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new sLe({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=Wrt.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 pNr({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?{[a_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[a_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Nm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=q9([this.method,this.path,this.contentType,"request"].join("_"));return cNr({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 Rqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof sLe)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=Nm(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 Rqi.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 dNr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=LYa(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 fNr({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])=>Nm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Nm(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 zYa={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 VYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mNr=we(By());var qYa="application/json";var GYa="application/octet-stream";function WYa(e,t){return e===t||t===a_||e===a_}var NNt=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)WYa(a,o)&&(n.add(a),this.examples?.push(new rX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,P_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 rX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,P_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[a_];if(o!=null)for(let s of o)this.examples?.push(new rX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,P_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=Wrt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=qYa,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=GYa,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=LQr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]=[{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=LQr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[a_]??=[],r[a_]?.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!==a_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==a_);Object.keys(r).every(a=>a===a_)||this.matchExamplesByIndex(o,s),!i.has(a_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Nm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new mNr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Nm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=q9([this.method,this.path,this.statusCode,"response"].join("_"));return cNr({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 mNr.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 mNr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var kNt=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=VYa(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 nX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new NNt({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 NNt({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 hNr=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 kNt({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 kNt({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 tNr(j_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=Nm(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??zYa[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 rX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,P_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 SU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=B_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new JQr({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=GQr(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 nX({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 nX({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 nX({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 YQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new dNr({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 hNr({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 zrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new QNt({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 QNt({input:{[_Qr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new KQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>UQr({namespace:Nm(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 HQr({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=yYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:AYa(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:j_e(this.queryParameters)?.flat(),headers:j_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:j_e(this.pathParameters)?.flat(),queryParameters:j_e(this.queryParameters)?.flat(),requestHeaders:j_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 $rt=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=B_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 gNr(e){return"payloads"in e}var ANr=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 $rt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:B_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=>{gNr(o)?r[Ea.WebhookId(o.id)]=o:t[Ea.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var yNr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[QJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||GQr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new nX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return Vrt(this.globalHeaders,this.requiredProperties)?.flat()}};function $Ya(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var bNr=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=$Ya(o,this.context.document);if(s!=null)return new $rt({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=>{gNr(n)&&(t[Ea.WebhookId(n.id)]=n)}),t),{})}};var vNr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=B_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new zrt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new qQr({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 ANr({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 bNr({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 lNr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new yNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=vC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=DJa({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 Fqi(e,t){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new O9(e.absoluteFilePath),n=await pU({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 wQr,generatedTypes:{}},u=new vNr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=sWe(o,u.convert())}return o}dg();Wt();var olu=we(Nqi(),1),slu=we(s2r(),1),Vkr=require("fs/promises"),alu=we(require("http"),1),ulu=we(require("path"),1);var Gru=require("events"),p2r=we(require("fs"),1),gLe=we(require("path"),1);var Sru=we(require("os"),1),Oru=300,V_e=20,c2t=1e7,Bru=Sru.default.platform();var dAd=Bru==="darwin",rGi=Bru==="win32",q_e=dAd||rGi,Pru=3e3,Tru=2e4,nGi=1250;var aX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(aX||(aX={}));var hLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(hLe||(hLe={}));var l2t;(function(e){e.CHANGE="change",e.ERROR="error"})(l2t||(l2t={}));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 PT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(PT||(PT={}));var mAd=(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},a2r=mAd;var aGi=we(require("fs"),1),c2r=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)},uX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var iGi=we(require("process"),1),Dru=iGi.default.getuid?!iGi.default.getuid():!1,Rru=1e4,wj=()=>{};var p2t={isChangeErrorOk:e=>{if(!p2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Dru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!p2t.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(!p2t.isNodeError(e))throw e;if(!p2t.isChangeErrorOk(e))throw e}},Gv=p2t;var oGi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Rru,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()}}}}},Fru=new oGi;var sAe=(e,t)=>function(n){return function i(...o){return Fru.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 hAd={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),wj),fsync:oAe((0,$S.promisify)(jf.default.fsync),wj),mkdir:oAe((0,$S.promisify)(jf.default.mkdir),wj),realpath:oAe((0,$S.promisify)(jf.default.realpath),wj),stat:oAe((0,$S.promisify)(jf.default.stat),wj),unlink:oAe((0,$S.promisify)(jf.default.unlink),wj),chmodSync:uX(jf.default.chmodSync,Gv.onChangeError),chownSync:uX(jf.default.chownSync,Gv.onChangeError),closeSync:uX(jf.default.closeSync,wj),existsSync:uX(jf.default.existsSync,wj),fsyncSync:uX(jf.default.fsync,wj),mkdirSync:uX(jf.default.mkdirSync,wj),realpathSync:uX(jf.default.realpathSync,wj),statSync:uX(jf.default.statSync,wj),unlinkSync:uX(jf.default.unlinkSync,wj)},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)}},jru=hAd;var u2r=we(require("fs"),1),f2t=we(require("path"),1);var sGi=()=>{};var gAd=()=>{let e=sGi,t=sGi,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}},Qru=gAd;var AAd=()=>{let{promise:e,resolve:t,isPending:r}=Qru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Nru=AAd;var kru={then:e=>{e()}};var Mru=e=>Array.isArray(e)?e:[e],Lru=e=>typeof e=="function";var yAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Mru(o).map(H=>Lru(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}=Nru(),R=0,z=(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)))},U=(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))},q=(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,Ce)=>{u.aborted||a(J)||(ge.isDirectory()?z(H,J,Ae,Ce):ge.isFile()?U(H,J,Ae):ge.isSymbolicLink()&&q(H,J,Ae,Ce))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Ce=J===f2t.default.sep?"":f2t.default.sep,xe=Ae.name,pe=`${J}${Ce}${xe}`;a(pe)||(Ae.isDirectory()?z(H,pe,xe,ge):Ae.isFile()?U(H,pe,xe):Ae.isSymbolicLink()&&q(H,pe,xe,ge))},V=(H,J,Ae,ge)=>{for(let Ce=0,xe=Ae.length;Ce<xe;Ce++)ie(H,J,Ae[Ce],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),u2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||kru).then(()=>{let xe=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(xe,H,ge,J),x()})}))},Ee=(H,J)=>{C(),u2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();u2r.default.stat(ge,(Ce,xe)=>{if(Ce||u.aborted)return x();let pe=f2t.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,xe,J),x()})})};return(async(H,J=1)=>(H=f2t.default.normalize(H),v.add(H),K(H,J),await _,u.aborted?I:w))(e)},Uru=yAd;var cX={lang:{debounce:a2r,attempt:e=>{try{return e()}catch(t){return cX.lang.castError(t)}},castArray:e=>cX.lang.isArray(e)?e:[e],castError:e=>cX.lang.isError(e)?e:cX.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(cX.lang.isNaN(e))return cX.lang.isNaN(t);if(cX.lang.isPrimitive(e)||cX.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(c2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?aGi.default.realpathSync.native(e):aGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===c2r.default.sep&&t.length-e.length>c2r.default.sep.length,poll:(e,t=Tru)=>jru.retry.stat(t)(e,{bigint:!0}).catch(cX.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 Uru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=cX;var l2r=we(require("path"),1);var uGi=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=Oru){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??V_e:Math.min(1,this.options.depth??V_e),s=this.options.limit??c2t,[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&&!q_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(l2r.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(l2r.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=hLe.CHANGE,r){if(this.watcher.isClosed())return;let n=l2r.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){rGi&&t.code==="EPERM"?this.onWatcherChange(hLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(l2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(l2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(hLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&q_e&&this.options.native!==!1?this.options.depth??V_e:Math.min(1,this.options.depth??V_e),n=this.options.limit??c2t,[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(hLe.CHANGE,a,t)}))}}},zru=uGi;var TT={interval:100,intervalId:void 0,fns:new Map,init:()=>{TT.intervalId||(TT.intervalId=setInterval(TT.resolve,TT.interval))},reset:()=>{TT.intervalId&&(clearInterval(TT.intervalId),delete TT.intervalId)},add:(e,t)=>{TT.fns.set(e,Date.now()+t),TT.init()},remove:e=>{TT.fns.delete(e)},resolve:()=>{if(!TT.fns.size)return TT.reset();let e=Date.now();for(let[t,r]of TT.fns)r>=e||(TT.remove(t),t())}},d2t=TT;var m2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=nGi){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),d2t.remove(c)},c=()=>{u(),a()};d2t.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=nGi){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),d2t.remove(c)},c=()=>{u(),a()};d2t.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,aX.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,aX.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,aX.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,aX.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}}};m2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};m2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Vru=m2t;var cGi=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}},lGi=cGi;var pGi=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}},qru=pGi;var fGi=class{constructor(){this.inos={},this.paths=new lGi,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 qru(n)}reset(){this.inos={},this.paths=new lGi,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()?aX.FILE:aX.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)}}},dGi=fGi;var mGi=class e extends Gru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(PT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(PT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(PT.READY,i)),this._locker=new Vru(this),this._roots=new Set,this._poller=new dGi,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(PT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(PT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(PT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(PT.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 zru(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=gLe.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??V_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&q_e&&l.options.native!==!1)))return!0;if(!q_e)break;let c=gLe.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||q_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:p2r.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=gLe.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||q_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??V_e,a=r.limit??c2t,[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(PT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(PT.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=gLe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new dGi,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??Pru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(PT.CLOSE,a),p2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(PT.CLOSE,a),p2r.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=gLe.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=gLe.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(PT.ALL,n),r.readdirMap=void 0,this.ready())}},f2r=mGi;x2r();Wt();var Ant=require("fs/promises"),Ynu=require("os"),Xnu=we(require("path"),1),Uyd=".fern",zyd="logs";function Vyd(){return"cli@4.4.4"}var ILe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,Ynu.homedir)()),Se.of(Uyd)),r=We(t,Se.of(zyd));await nr(r)||await(0,Ant.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,Se.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Xnu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2100
2100
  `);await(0,Ant.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)+`
2101
2101
  `;try{await(0,Ant.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:Vyd(),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 QGi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function Znu(e){let t=qyd();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:QGi});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",...QGi}});let p=/^\/_local\/(.*)/.exec(l.pathname);return u.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:QGi}):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 ILe.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 qyd(){return globalThis.Bun}Wt();var yWi=we(GGi(),1),Ycu=we(sWi(),1),Cj=require("fs/promises"),Xcu=require("os"),Zcu=we(fC(),1),elu=we(Kcu(),1),Nkr=process.platform==="win32",AWi=Oe.cyan("[docs]:"),vId="etag",EId=23,Jcu=e=>e.padEnd(EId," "),IId="preview",wId="app-preview",CId="bundle",_Id=".next",xId="standalone",SId=".fern",OId="packages/fern-docs/bundle/.next/server/instrumentation.js",BId=".npmrc",PId=".pnpmfile.cjs",TId="pnpm-workspace.yaml",DId='Cannot find matching keyid: {"signatures":';function RId(){return We(Vt.of((0,Xcu.homedir)()),Se.of(SId))}function jnt({app:e=!1}){return We(RId(),Se.of(e?wId:IId))}function rxe({app:e=!1}){return We(jnt({app:e}),Se.of(e?_Id:CId))}function $2t({app:e=!1}){return We(rxe({app:e}),Se.of(xId))}function FId({app:e=!1}){return We($2t({app:e}),Se.of(OId))}function jId({app:e=!1}){return We($2t({app:e}),Se.of(TId))}function QId({app:e=!1}){return We($2t({app:e}),Se.of(PId))}function NId({app:e=!1}){return We($2t({app:e}),Se.of(BId))}function TLe(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function kId({app:e=!1}){return We(jnt({app:e}),Se.of(vId))}var MId=`module.exports = {
2102
2102
  hooks: {
@@ -2883,7 +2883,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
2883
2883
  Run ${Oe.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
2884
2884
  Run ${Oe.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),PHe(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function s4o({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!owc(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+=`
2885
2885
  ${await E9h(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+Oe.dim(a.currentVersion)+Oe.reset(" \u2192 ")+Oe.green(a.latestVersion);return i+=`
2886
- `,n?PHe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function E9h(e){let r=await new iwc.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 I9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await awc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=MMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _O({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 awc({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=MMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _O({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 awc({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?YC(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 uwc(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=ij(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 c9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await I9h({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(...uwc(c,u,t.logger));else s.push(...uwc(a.versions,void 0,t.logger))}return s}async function jRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:jDt(e.packageName,{version:t?"prerelease":"latest"})}var cwc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],l9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new u9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new d2e(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.4.3"}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,_Bt({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)+`
2886
+ `,n?PHe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function E9h(e){let r=await new iwc.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 I9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await awc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=MMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _O({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 awc({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=MMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _O({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 awc({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?YC(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 uwc(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=ij(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 c9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await I9h({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(...uwc(c,u,t.logger));else s.push(...uwc(a.versions,void 0,t.logger))}return s}async function jRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:jDt(e.packageName,{version:t?"prerelease":"latest"})}var cwc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],l9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new u9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new d2e(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.4.4"}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,_Bt({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)+`
2887
2887
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await bHe()).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 swc({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2888
2888
  `)||(r+=`
2889
2889
  `),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=ppi(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 N8t(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 bHe()).sendEvent(t)}logger=NP((t,...r)=>this.log(t,...r));stderr=NP((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=lwc(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?lwc(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=cwc[this.numTasks++%cwc.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 jRe({cliEnvironment:this.environment,includePreReleases:t}),n=ij(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await c9n({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await i4o({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(`
@@ -2946,12 +2946,12 @@ ${n?`
2946
2946
  `:""}
2947
2947
  More information: https://mdxjs.com/docs/troubleshooting-mdx`);return i.stack="",i}function z4o(e,t,r){let n=fj(r||t),i=!0;t&&typeof t=="object"&&"cascade"in t&&typeof t.cascade=="boolean"&&(i=t.cascade),o(e);function o(s,a,u){if(s!==e&&n(s,a,u))return!1;if("children"in s&&Array.isArray(s.children)){let c=s,l=c.children,p=-1,d=0;if(l.length>0){for(;++p<l.length;)o(l[p],p,c)&&(l[d++]=l[p]);if(s!==e&&i&&!d)return!1;l.length=d}}return!0}}function L_c(){return e=>z4o(e,"mdxjsEsm")}var U_c=()=>e=>{In(e,(t,r,n)=>{if((t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")&&n&&typeof r=="number")return n.children.splice(r,1),[yT,r];(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")&&t.attributes&&(t.attributes=t.attributes.filter(i=>i.type==="mdxJsxAttribute"?i.value===null||typeof i.value=="string"||i.value&&i.value.type!=="mdxJsxAttributeValueExpression":i.type!=="mdxJsxExpressionAttribute"))})};var iWh=["eval","Function","AsyncFunction","GeneratorFunction","FunctionConstructor","require","process","global","globalThis","module","exports","__dirname","__filename","child_process","fs","net","http","https","vm","worker_threads","Reflect"],oWh=["Object","Array","String","Number","Boolean","Symbol","Error","Date","RegExp","Promise","Proxy","Reflect","WeakMap","WeakSet","Map","Set"],sWh=["constructor","prototype","__proto__","eval","Reflect","Function","AsyncFunction","GeneratorFunction","FunctionConstructor","require"],z_c=(e,t)=>function(){return function(r){return V4o(r,e??iWh,t??sWh),r}};function V4o(e,t,r){if(!(!e||typeof e!="object")){if(e.type==="Identifier"&&t.includes(e.name)){let n=e.parent,i=n?.type==="MemberExpression"&&n.property===e&&!n.computed,o=n?.type==="FunctionDeclaration"||n?.type==="FunctionExpression";if(!i&&!o)throw new Error(`Security: Access to '${e.name}' is not allowed`)}if(e.type==="CallExpression"&&e.callee?.type==="Identifier"&&t.includes(e.callee.name))throw new Error(`Security: ${e.callee.name}() calls are not allowed`);if(e.type==="CallExpression"&&e.callee?.type==="MemberExpression"&&e.callee.computed&&e.callee.object?.type==="Identifier"&&t.includes(e.callee.object.name))throw new Error(`Security: Function calls on computed properties of '${e.callee.object.name}' are not allowed`);if(e.type==="CallExpression"&&e.callee?.type==="MemberExpression"&&e.callee.computed&&e.callee.object?.type==="Identifier"&&oWh.includes(e.callee.object.name))throw new Error(`Security: Function calls on computed properties of '${e.callee.object.name}' are not allowed`);if(e.type==="MemberExpression"){let n=e.property;if(n?.type==="Identifier"&&!e.computed&&r.includes(n.name))throw new Error(`Security: .${n.name} access is not allowed`);if(n?.type==="Literal"&&r.includes(String(n.value)))throw new Error(`Security: ["${n.value}"] access is not allowed`);if(e.computed&&e.object?.type==="Identifier"&&t.includes(e.object.name))throw new Error(`Security: Computed property access on '${e.object.name}' is not allowed`);if(e.object?.type==="Identifier"&&t.includes(e.object.name))throw new Error(`Security: Access to '${e.object.name}' properties is not allowed`)}if(e.type==="NewExpression"&&e.callee?.type==="Identifier"&&t.includes(e.callee.name))throw new Error(`Security: new ${e.callee.name}() is not allowed`);for(let n in e){if(n==="parent"||n==="position")continue;let i=e[n];Array.isArray(i)?i.forEach(o=>{o&&typeof o=="object"&&V4o(o,t,r)}):i&&typeof i=="object"&&V4o(i,t,r)}}}function aWh(e={},t=!1,r=!0,n=!0){let i=e.useDynamicImport??!1,o=[...e.remarkPlugins||[],...i?[]:[L_c],...r?[U_c]:[],...!r&&n?[z_c()]:[]];return{...e,remarkPlugins:o,outputFormat:"function-body",providerImportSource:t?void 0:"@mdx-js/react",development:process.env.NODE_ENV!=="production"}}async function q4o(e,{scope:t={},mdxOptions:r={},parseFrontmatter:n=!1,blockJS:i=!0,blockDangerousJS:o=!0}={},s=!1){let a=new l6(e);n&&U4o(a,{strip:!0});let u;try{u=await L4o(a,aWh(r,s,i,o))}catch(l){throw M_c(l,String(a))}return{compiledSource:String(u),frontmatter:a.data.matter??{},scope:t}}function G4o(e,t){let n=(t||{}).force||!1;In(e,i);function i(o){n?delete o.position:o.position=void 0}}function W4o(e,t){let r=b3t(e,t);return G4o(r,{force:!0}),delete r.data,r}var uWh={},cWh=[];function q9n(e){let t=e||uWh;return function(r,n){U4e(r,"element",function(i,o){let s=Array.isArray(i.properties.className)?i.properties.className:cWh,a=s.includes("language-math"),u=s.includes("math-display"),c=s.includes("math-inline"),l=u;if(!a&&!u&&!c)return;let p=o[o.length-1],d=i;if(i.tagName==="code"&&a&&p&&p.type==="element"&&p.tagName==="pre"&&(d=p,p=o[o.length-2],l=!0),!p)return;let f=Tk(d,{whitespace:"pre"}),m;try{m=rVi.renderToString(f,{...t,displayMode:l,throwOnError:!0})}catch(A){let y=A,b=y.name.toLowerCase();n.message("Could not render math with KaTeX",{ancestors:[...o,i],cause:y,place:i.position,ruleId:b,source:"rehype-katex"});try{m=rVi.renderToString(f,{...t,displayMode:l,strict:"ignore",throwOnError:!1})}catch{m=[{type:"element",tagName:"span",properties:{className:["katex-error"],style:"color:"+(t.errorColor||"#cc0000"),title:String(A)},children:[{type:"text",value:f}]}]}}typeof m=="string"&&(m=W4o(m,{fragment:!0}).children);let h=p.children.indexOf(d);return p.children.splice(h,1,...m),yT})}}var lWh={};function G9n(e){let t=this,r=e||lWh,n=t.data(),i=n.micromarkExtensions||(n.micromarkExtensions=[]),o=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),s=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);i.push(uNt(r)),o.push(sNt()),s.push(K8i(r))}var V_c={name:"valid-markdown",create:({logger:e,workspace:t})=>({markdownPage:async({content:r,absoluteFilepath:n})=>{let i;try{i=r8i(n)}catch(s){return[{severity:"error",message:`Markdown file does not have a valid extension: ${String(s)}`}]}let o=await mWh({markdown:r,absoluteFilepath:n,absolutePathToFernFolder:wn(t.absoluteFilepathToDocsConfig),logger:e});return o.type==="failure"?[{severity:"fatal",message:o.message!=null?`Markdown failed to parse: ${o.message}`:"Markdown failed to parse"}]:[]}})},pWh=[Qyt,G9n],fWh=[q9n],dWh=ht.object({title:ht.optional(ht.string(),{description:"Renders as the page title."}),"og:title":ht.optional(ht.string(),{description:"Renders as the og:title tag."}),"og:description":ht.optional(ht.string(),{description:"Renders as the og:description tag."}),subtitle:ht.optional(ht.string(),{description:"Renders as a subtitle on the page, and is also used in the meta description tag if description is not set."}),description:ht.optional(ht.string(),{description:"Renders as the meta description tag."}),image:ht.optional(ht.string(),{description:"Renders as the og:image tag."}),slug:ht.optional(ht.string(),{description:"The full slug path for the page, starting from root `/` (or basepath)."}),redirects:ht.optional(ht.array(ht.string()),{description:"A list of URLs to redirect to this page."}),editThisPageUrl:ht.optional(ht.string()),excerpt:ht.optional(ht.string(),{description:"Deprecated. Use `subtitle` instead."})});async function mWh({markdown:e,absoluteFilepath:t,absolutePathToFernFolder:r,logger:n}){try{n.trace(`Starting markdown parse for file: ${t}`),eAe(e,{absolutePathToMarkdownFile:t,absolutePathToFernFolder:r}),n.trace("Serializing markdown with MDX");let i=await q4o(e,{scope:{},mdxOptions:{remarkPlugins:pWh,rehypePlugins:fWh,format:"detect"},parseFrontmatter:!0});n.trace("Validating frontmatter");let o=dWh.safeParse(i.frontmatter);return o.success?(n.trace("Markdown parse completed successfully"),{type:"success"}):(n.trace(`Frontmatter validation failed: ${o.error.errors.map(s=>s.message).join(", ")}`),{type:"failure",message:`Failed to parse frontmatter: ${o.error.errors.map(s=>s.message).join(`
2948
2948
  `)}`})}catch(i){return n.trace(`Markdown parse failed with error: ${i instanceof Error?i.message:String(i)}`),{type:"failure",message:i instanceof Error?i.message:void 0}}}Wt();var q_c=require("fs/promises"),G_c=we(BY(),1);var W_c={name:"valid-markdown-file-references",create:e=>({filepath:async({absoluteFilepath:t})=>{if(!t.endsWith(".md")&&!t.endsWith(".mdx"))return[];try{let r=await(0,q_c.readFile)(t,"utf-8"),{content:n}=(0,G_c.default)(r,{}),i=I_e(n),o=[];return In(i,s=>{if(s.type==="link"){let a=C_e({href:zv(s.url),metadata:{absolutePathToFernFolder:t,absolutePathToMarkdownFile:t},markdownFilesToPathName:{}});if(a?.type==="missing-reference")try{let u=QK(Vt.of(a.path));o.push({severity:"error",message:u?`File ${a.href} does not exit`:`File ${a.href} exists but is not specified in docs.yml`})}catch{}}}),o}catch{return[]}}})};Nt();dg();Wt();var axc=require("crypto"),tLo=we(require("path"),1);Wt();function hWh(e){for(var t=[],r=0;r<e.length;){var n=e[r];if(n==="*"||n==="+"||n==="?"){t.push({type:"MODIFIER",index:r,value:e[r++]});continue}if(n==="\\"){t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});continue}if(n==="{"){t.push({type:"OPEN",index:r,value:e[r++]});continue}if(n==="}"){t.push({type:"CLOSE",index:r,value:e[r++]});continue}if(n===":"){for(var i="",o=r+1;o<e.length;){var s=e.charCodeAt(o);if(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||s===95){i+=e[o++];continue}break}if(!i)throw new TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:i}),r=o;continue}if(n==="("){var a=1,u="",o=r+1;if(e[o]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(o));for(;o<e.length;){if(e[o]==="\\"){u+=e[o++]+e[o++];continue}if(e[o]===")"){if(a--,a===0){o++;break}}else if(e[o]==="("&&(a++,e[o+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(o));u+=e[o++]}if(a)throw new TypeError("Unbalanced pattern at ".concat(r));if(!u)throw new TypeError("Missing pattern at ".concat(r));t.push({type:"PATTERN",index:r,value:u}),r=o;continue}t.push({type:"CHAR",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}function $_c(e,t){t===void 0&&(t={});for(var r=hWh(e),n=t.prefixes,i=n===void 0?"./":n,o=t.delimiter,s=o===void 0?"/#?":o,a=[],u=0,c=0,l="",p=function(x){if(c<r.length&&r[c].type===x)return r[c++].value},d=function(x){var R=p(x);if(R!==void 0)return R;var z=r[c],U=z.type,q=z.index;throw new TypeError("Unexpected ".concat(U," at ").concat(q,", expected ").concat(x))},f=function(){for(var x="",R;R=p("CHAR")||p("ESCAPED_CHAR");)x+=R;return x},m=function(x){for(var R=0,z=s;R<z.length;R++){var U=z[R];if(x.indexOf(U)>-1)return!0}return!1},h=function(x){var R=a[a.length-1],z=x||(R&&typeof R=="string"?R:"");if(R&&!z)throw new TypeError('Must have text between two parameters, missing text after "'.concat(R.name,'"'));return!z||m(z)?"[^".concat(NRe(s),"]+?"):"(?:(?!".concat(NRe(z),")[^").concat(NRe(s),"])+?")};c<r.length;){var A=p("CHAR"),y=p("NAME"),b=p("PATTERN");if(y||b){var E=A||"";i.indexOf(E)===-1&&(l+=E,E=""),l&&(a.push(l),l=""),a.push({name:y||u++,prefix:E,suffix:"",pattern:b||h(E),modifier:p("MODIFIER")||""});continue}var v=A||p("ESCAPED_CHAR");if(v){l+=v;continue}l&&(a.push(l),l="");var I=p("OPEN");if(I){var E=f(),w=p("NAME")||"",_=p("PATTERN")||"",C=f();d("CLOSE"),a.push({name:w||(_?u++:""),pattern:w&&!_?h(E):_,prefix:E,suffix:C,modifier:p("MODIFIER")||""});continue}d("END")}return a}function H_c(e,t){return gWh($_c(e,t),t)}function gWh(e,t){t===void 0&&(t={});var r=$4o(t),n=t.encode,i=n===void 0?function(u){return u}:n,o=t.validate,s=o===void 0?!0:o,a=e.map(function(u){if(typeof u=="object")return new RegExp("^(?:".concat(u.pattern,")$"),r)});return function(u){for(var c="",l=0;l<e.length;l++){var p=e[l];if(typeof p=="string"){c+=p;continue}var d=u?u[p.name]:void 0,f=p.modifier==="?"||p.modifier==="*",m=p.modifier==="*"||p.modifier==="+";if(Array.isArray(d)){if(!m)throw new TypeError('Expected "'.concat(p.name,'" to not repeat, but got an array'));if(d.length===0){if(f)continue;throw new TypeError('Expected "'.concat(p.name,'" to not be empty'))}for(var h=0;h<d.length;h++){var A=i(d[h],p);if(s&&!a[l].test(A))throw new TypeError('Expected all "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(A,'"'));c+=p.prefix+A+p.suffix}continue}if(typeof d=="string"||typeof d=="number"){var A=i(String(d),p);if(s&&!a[l].test(A))throw new TypeError('Expected "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(A,'"'));c+=p.prefix+A+p.suffix;continue}if(!f){var y=m?"an array":"a string";throw new TypeError('Expected "'.concat(p.name,'" to be ').concat(y))}}return c}}function K_c(e,t){var r=[],n=J_c(e,r,t);return AWh(n,r,t)}function AWh(e,t,r){r===void 0&&(r={});var n=r.decode,i=n===void 0?function(o){return o}:n;return function(o){var s=e.exec(o);if(!s)return!1;for(var a=s[0],u=s.index,c=Object.create(null),l=function(d){if(s[d]===void 0)return"continue";var f=t[d-1];f.modifier==="*"||f.modifier==="+"?c[f.name]=s[d].split(f.prefix+f.suffix).map(function(m){return i(m,f)}):c[f.name]=i(s[d],f)},p=1;p<s.length;p++)l(p);return{path:a,index:u,params:c}}}function NRe(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function $4o(e){return e&&e.sensitive?"":"i"}function yWh(e,t){if(!t)return e;for(var r=/\((?:\?<(.*?)>)?(?!\?)/g,n=0,i=r.exec(e.source);i;)t.push({name:i[1]||n++,prefix:"",suffix:"",modifier:"",pattern:""}),i=r.exec(e.source);return e}function bWh(e,t,r){var n=e.map(function(i){return J_c(i,t,r).source});return new RegExp("(?:".concat(n.join("|"),")"),$4o(r))}function vWh(e,t,r){return EWh($_c(e,r),t,r)}function EWh(e,t,r){r===void 0&&(r={});for(var n=r.strict,i=n===void 0?!1:n,o=r.start,s=o===void 0?!0:o,a=r.end,u=a===void 0?!0:a,c=r.encode,l=c===void 0?function(R){return R}:c,p=r.delimiter,d=p===void 0?"/#?":p,f=r.endsWith,m=f===void 0?"":f,h="[".concat(NRe(m),"]|$"),A="[".concat(NRe(d),"]"),y=s?"^":"",b=0,E=e;b<E.length;b++){var v=E[b];if(typeof v=="string")y+=NRe(l(v));else{var I=NRe(l(v.prefix)),w=NRe(l(v.suffix));if(v.pattern)if(t&&t.push(v),I||w)if(v.modifier==="+"||v.modifier==="*"){var _=v.modifier==="*"?"?":"";y+="(?:".concat(I,"((?:").concat(v.pattern,")(?:").concat(w).concat(I,"(?:").concat(v.pattern,"))*)").concat(w,")").concat(_)}else y+="(?:".concat(I,"(").concat(v.pattern,")").concat(w,")").concat(v.modifier);else{if(v.modifier==="+"||v.modifier==="*")throw new TypeError('Can not repeat "'.concat(v.name,'" without a prefix and suffix'));y+="(".concat(v.pattern,")").concat(v.modifier)}else y+="(?:".concat(I).concat(w,")").concat(v.modifier)}}if(u)i||(y+="".concat(A,"?")),y+=r.endsWith?"(?=".concat(h,")"):"$";else{var C=e[e.length-1],x=typeof C=="string"?A.indexOf(C[C.length-1])>-1:C===void 0;i||(y+="(?:".concat(A,"(?=").concat(h,"))?")),x||(y+="(?=".concat(A,"|").concat(h,")"))}return new RegExp(y,$4o(r))}function J_c(e,t,r){return e instanceof RegExp?yWh(e,t):Array.isArray(e)?bWh(e,t,r):vWh(e,t,r)}var exc=we(Gp(),1);function Y_c(e){return e.split(/[?#]/)[0]??""}function tVe(e){return e.startsWith("/")?e.slice(1):e}function H4o(e){return e.startsWith("/")?e:`/${e}`}function W9n(e){return e.endsWith("/")?e.slice(0,-1):e}function X_c(e){let t=[];return e.config.instances.forEach(r=>{t.push(r.url),typeof r.customDomain=="string"?t.push(r.customDomain):Array.isArray(r.customDomain)&&t.push(...r.customDomain)}),t}function K4o(e){let t=new URL(ST(e));return{domain:t.host,basePath:t.pathname==="/"||t.pathname===""?void 0:t.pathname}}function Z_c(e,t){return t.some(r=>{try{let n=K4o(r);return e.host!==n.domain?!1:n.basePath!=null?e.pathname.startsWith(n.basePath):!0}catch{return!1}})}function IWh(e,t){if(e===t)return{params:{},path:t,index:0};try{return K_c(e)(t)}catch(r){return console.error(r,{pattern:e,path:t}),!1}}function wWh(e,t){try{return H_c(e)(t.params)}catch(r){return console.error(r,{match:t,destination:e}),e}}function txc(e,t,r=[]){for(let n of r){let i=W9n(CWh(n.source,t.basePath)),o=IWh(i,e);if(o){let s=wWh(n.destination,o);if(!s.startsWith("/"))try{new URL(s)}catch{console.error("Invalid redirect destination:",s);return}return{redirect:{destination:encodeURI(s),permanent:n.permanent??!1}}}}}function CWh(e,t){return t==null||e.startsWith(t)?e:(0,exc.default)(t,e)}async function X4o({pathname:e,markdown:t,absoluteFilepath:r,workspaceAbsoluteFilePath:n,pageSlugs:i,absoluteFilePathsToSlugs:o,redirects:s=[],baseUrl:a}){e=W9n(e);let u=r!=null?o.get(r)??[]:[];if(e.trim()==="")return!0;if(e=Y4o(e),e.startsWith("/")){let l=Y4o(J4o(e,a,s));for(let d=0;d<5;++d){let f=Y4o(J4o(l,a,s));if(l===f)break;l=f}if(rxc(l)||t&&i.has(tVe(l)))return!0;let p=We(n,Se.of(tVe(e)));return await nr(p,"file")?!0:u.map(d=>H4o(d))}if(r!=null){if(e==="."){let p=wn(r);if(await nr(p,"directory"))return!0}let l=We(wn(r),Se.of(e));if(await nr(l,"file"))return!0}if(!t)return u.map(l=>H4o(l));let c=[];for(let l of u){let p=new URL(`/${l}`,ST(a.domain)),d=J4o(new URL(e,p).pathname,a,s);rxc(d)||i.has(tVe(d))||c.push(l)}return c.length>0?c:!0}function J4o(e,t,r){let n=txc(e,t,r);return n==null?e:n.redirect.destination}function Y4o(e){let t=e.indexOf("#");return t===-1?e:e.substring(0,t)}function rxc(e){return e.startsWith("http://")||e.startsWith("https://")}var nxc=require("fs");Wt();var _Wh=["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"];function xWh({readFile:e=r=>(0,nxc.readFileSync)(r,"utf-8"),...t}){let r=new Set,n=[t],i=[],o=[],s=1e3,a=0;do{if(a++,a>s)throw new Error("Infinite loop detected while collecting links and sources");let u=n.shift();if(u==null)break;let{content:c,absoluteFilepath:l}=u;if(l!=null){if(r.has(l))throw new Error(`Circular import detected: ${l}`);r.add(l)}let p=I_e(c),d=Fvt(p,{allowDangerousHtml:!0,passThrough:[..._Wh]});In(d,f=>{if(f.type==="mdxjsEsm"&&l!=null)return f.data?.estree&&jO(f.data.estree,{enter:h=>{if(h.type==="ImportDeclaration"&&h.source.type==="Literal"&&typeof h.source.value=="string"){let A=Se.of(h.source.value),y=qo(wn(l),A);(y.endsWith(".mdx")||y.endsWith(".md"))&&n.push({content:e(y),absoluteFilepath:y})}}}),"skip";if(f.type==="element"){let h=f.properties.href;typeof h=="string"&&i.push({href:h,sourceFilepath:l,position:f.position});let A=f.properties.src;typeof A=="string"&&o.push({src:A,sourceFilepath:l,position:f.position})}function m(h,A){Trt(h,{src:y=>{let b=N9(y.value);typeof b=="string"&&o.push({src:b,sourceFilepath:l,position:A})},href:y=>{let b=N9(y.value);typeof b=="string"&&i.push({href:b,sourceFilepath:l,position:A})}})}if(f.type==="mdxJsxFlowElement"||f.type==="mdxJsxTextElement"){let h=qY(f.attributes.filter(k9).find(y=>y.name==="href")?.value),A=qY(f.attributes.filter(k9).find(y=>y.name==="src")?.value);if(f.name==="Markdown"){if(l&&typeof A=="string"){let y=qo(wn(l),A);n.push({content:e(y),absoluteFilepath:y})}return"skip"}typeof h=="string"&&i.push({href:h,sourceFilepath:l,position:f.position}),typeof A=="string"&&o.push({src:A,sourceFilepath:l,position:f.position}),f.attributes.forEach(y=>{y.type==="mdxJsxAttribute"&&typeof y.value!="string"&&y.value!=null&&y.value.data?.estree?m(y.value.data.estree,y.position):y.type==="mdxJsxExpressionAttribute"&&y.data?.estree&&m(y.data.estree,y.position)})}(f.type==="mdxFlowExpression"||f.type==="mdxTextExpression")&&f.data?.estree&&m(f.data.estree,f.position)})}while(n.length>0);return{links:i,sources:o}}function ixc({content:e,absoluteFilepath:t}){try{return xWh({content:e,absoluteFilepath:t})}catch{return{links:[],sources:[]}}}var oxc=/^(?:[a-z+]+:)/gi;function SWh(e){let t=/^---\n([\s\S]*?)\n---/,r=e.match(t);return r?(r[0].match(/\n/g)||[]).length+1:0}function Z4o(e,t){return e&&{...e,start:{...e.start,line:e.start.line+t},end:{...e.end,line:e.end.line+t}}}function eLo(e,{absoluteFilepath:t,instanceUrls:r}){let n=[],i=[],o=SWh(e),{links:s,sources:a}=ixc({content:e,absoluteFilepath:t});return s.forEach(u=>{if(u.href.trimStart().match(oxc)){if(!u.href.trimStart().startsWith("http"))return;try{let l=new URL(u.href);if(!Z_c(l,r))return;i.push({pathname:l.pathname,sourceFilepath:u.sourceFilepath,position:Z4o(u.position,o),markdown:!0})}catch{n.push({severity:"warning",message:`Invalid URL: ${u.href}`})}return}let c=Y_c(u.href);c.trim()!==""&&i.push({pathname:c,sourceFilepath:u.sourceFilepath,position:Z4o(u.position,o),markdown:!0})}),a.forEach(u=>{if(u.src.match(oxc))try{new URL(u.src)}catch{n.push({severity:"warning",message:`Invalid URL: ${u.src}`});return}else i.push({pathname:u.src,sourceFilepath:u.sourceFilepath,position:Z4o(u.position,o),markdown:!1})}),{pathnamesToCheck:i,violations:n}}var Nvt=ZEi({logger:NP(pt)}),kRe={name:"valid-markdown-links",create:async({workspace:e,apiWorkspaces:t,ossWorkspaces:r})=>{let n=X_c(e),i=n[0]??"http://localhost",o=K4o(n[0]??"http://localhost"),a=await new V9({domain:i,docsWorkspace:e,ossWorkspaces:r,apiWorkspaces:t,taskContext:Nvt,editThisPage:void 0,uploadFiles:void 0,registerApi:void 0,targetAudiences:void 0}).resolve();if(!a.config.root)throw new Error("Root node not found");let u=_t.migrate.FernNavigationV1ToLatest.create().root(a.config.root),c=_t.NodeCollector.collect(u),l=new Set,p=new Map,d=[];c.slugMap.forEach((m,h)=>{if(l.add(h),m==null||!_t.isPage(m))return;_t.isApiLeaf(m)&&d.push(m);let A=_t.getPageId(m);if(A==null)return;let y=We(e.absoluteFilePath,Se.of(A)),b=p.get(y)??[];b.push(h),p.set(y,b)});let f=["/llms-full.txt","/llms.txt"];for(let m of f){let h=o.basePath?`${tVe(o.basePath)}${m}`:tVe(m);l.add(h)}return{markdownPage:async({content:m,absoluteFilepath:h})=>{let A=p.get(h);if(!A||A.length===0)return[];let{markdown:y}=await __e({markdown:m,absolutePathToFernFolder:e.absoluteFilePath,absolutePathToMarkdownFile:h,context:Nvt}),{pathnamesToCheck:b,violations:E}=eLo(y,{absoluteFilepath:h,instanceUrls:n}),v=await Promise.all(b.map(async I=>{let w=await X4o({pathname:I.pathname,markdown:I.markdown,absoluteFilepath:h,workspaceAbsoluteFilePath:e.absoluteFilePath,pageSlugs:l,absoluteFilePathsToSlugs:p,redirects:e.config.redirects,baseUrl:o});return w===!0?[]:w.map(_=>{let[C,x]=sxc({pathnameToCheck:I,targetPathname:_,absoluteFilepathToWorkspace:e.absoluteFilePath});return{name:kRe.name,severity:"error",message:C,relativeFilepath:x}})}));return[...E,...v.flat()]},apiSection:async({workspace:m,config:h})=>{let A=await m.toFernWorkspace({context:Nvt},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}),y=Pg({workspace:A,audiences:h.audiences?{type:"select",audiences:Array.isArray(h.audiences)?h.audiences:[h.audiences]}:{type:"all"},generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1},readme:void 0,version:void 0,packageName:void 0,context:Nvt,sourceResolver:new Sh(Nvt,A)}),b=OWh(FNt({ir:y,apiDefinitionId:(0,axc.randomUUID)(),context:Nvt})),E=[];for(let v of d){let I=await BWh(R9e.prune(b,v));for(let w of I){let{pathnamesToCheck:_,violations:C}=eLo(w,{instanceUrls:n});E.push(...C);let x=await Promise.all(_.map(async R=>{let z=await X4o({pathname:R.pathname,markdown:R.markdown,workspaceAbsoluteFilePath:e.absoluteFilePath,pageSlugs:l,absoluteFilePathsToSlugs:p,redirects:e.config.redirects,baseUrl:o});return z===!0?[]:z.map(U=>{let[q,te]=sxc({pathnameToCheck:R,targetPathname:U,absoluteFilepathToWorkspace:e.absoluteFilePath});return{name:kRe.name,severity:"error",message:q,relFilepath:te}})}));E.push(...x.flat())}}return E}}}};function sxc({pathnameToCheck:e,targetPathname:t,absoluteFilepathToWorkspace:r}){let n=`${t} links to non-existent page ${Oe.bold(e.pathname)}`,{position:i,sourceFilepath:o}=e;if(o==null||i==null)return[n,Se.of("")];n=`broken link to ${Oe.bold(e.pathname)}`,e.pathname.length>0&&!tLo.default.isAbsolute(e.pathname)&&(n+=` (resolved path: ${tLo.default.join(t,e.pathname)})`);let s=Ra(r,o);return n+=`
2949
- fix here: ${s}:${i.start.line}:${i.start.column}`,[n,s]}function OWh(e){return R9e.ApiDefinitionV1ToLatest.from(e).migrate()}async function BWh(e){let t=[];return R9e.Transformer.descriptions(r=>(typeof r=="string"&&t.push(r),r)).apiDefinition(e),t}var $9n={name:"validate-product-file",create:()=>({productFile:async({path:e,content:t})=>{let r=await h9n({value:t});return r.type==="success"?[]:[{severity:"fatal",message:`${r.message}`}]}})};var H9n={name:"validate-version-file",create:()=>({versionFile:async({path:e,content:t})=>{let r=await m9n({value:t});return r.type==="success"?[]:[{severity:"fatal",message:`${r.message}`}]}})};Wt();Wt();function uxc({relativeFilepath:e,allRuleVisitors:t,addViolations:r}){function n(i){let o=async(s,a)=>{for(let u of t){let c=u[i];if(c!=null){let l=await c(s);r(l.map(p=>({name:p.name,severity:p.severity,relativeFilepath:p.relativeFilepath??Se.of(""),nodePath:a,message:p.message})))}}};return{[i]:o}}return{...n("file"),...n("filepath"),...n("markdownPage"),...n("versionFile"),...n("apiSection"),...n("permissions"),...n("productFile")}}Wt();var cxc=require("fs/promises"),rLo={name:"no-non-component-refs",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,cxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath);if(a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0"))||a.includes("asyncapi:")||a.includes('"asyncapi":'))continue;let p=a.matchAll(/["']?\$ref["']?\s*:\s*["']([^"']+)["']/g);for(let d of p){let f=d[1];f&&f.startsWith("#/")&&!f.startsWith("#/components/")&&n.push({severity:"error",name:"Invalid OpenAPI reference",message:`Reference "${f}" points to a non-component location. OpenAPI references should point to reusable components under #/components/ (e.g., #/components/schemas/MySchema, #/components/responses/MyResponse). Direct references to paths, operations, or other spec sections are not supported.`,relativeFilepath:u})}}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};Wt();var lxc=require("fs/promises"),nLo={name:"no-openapi-v2-in-docs",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,lxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath);a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0"))&&n.push({severity:"error",name:"OpenAPI v2.0 not supported",message:"OpenAPI version 2.0 (Swagger) is not supported in docs generation. Please upgrade to OpenAPI 3.0 or later.",relativeFilepath:u})}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};var pxc=["docs.buildwithfern.com","docs.dev.buildwithfern.com"];function PWh(e){return e.includes(".")?{valid:!1,error:`Subdomain "${e}" contains a '.' character, which is not allowed`,suggestion:e.replace(/\./g,"-")}:e.length>62?{valid:!1,error:`Subdomain "${e}" is ${e.length} characters long, which exceeds the maximum of 62 characters`}:/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)?{valid:!0}:{valid:!1,error:`Subdomain "${e}" contains invalid characters. Subdomains must contain only alphanumeric characters and hyphens, and cannot start or end with a hyphen`}}function TWh(e){let t;try{let s=e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`;t=new URL(s).hostname.toLowerCase()}catch{return{severity:"fatal",message:`Invalid URL format: "${e}". Expected format: <subdomain>.docs.buildwithfern.com`}}let r=pxc.find(s=>t.endsWith(s));if(!r)return{severity:"fatal",message:`Invalid domain in URL "${e}". The URL must end with one of: ${pxc.join(", ")}`};let n="."+r;if(!t.endsWith(n))return{severity:"fatal",message:`Invalid URL "${e}". A subdomain is required before ${r}`};let i=t.slice(0,t.length-n.length);if(!i||i.length===0)return{severity:"fatal",message:`Invalid URL "${e}". A subdomain is required before ${r}`};let o=PWh(i);if(!o.valid){let s=`Invalid instance URL "${e}": ${o.error}`;return o.suggestion&&(s+=`. Suggestion: ${o.suggestion}.${r}`),{severity:"fatal",message:s}}return null}var iLo={name:"valid-instance-url",create:()=>({file:async({config:e})=>{let t=[];if(!e.instances||e.instances.length===0)return t;for(let r=0;r<e.instances.length;r++){let n=e.instances[r];if(n?.url){let i=TWh(n.url);i&&t.push({...i,message:`instances[${r}].url: ${i.message}`})}}return t}})};Wt();var fxc=require("fs/promises");function DWh(e,t){let r=e.replace(/^#\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~")),n=t;for(let i of r)if(n==null||typeof n!="object"||(n=n[i],n===void 0))return!1;return n!=null}function RWh(e){let t=new Map;for(let n of e){let i=n.replace(/^#\//,"").split("/"),o="Other";i.length>=2&&(i[0]==="components"?o=`components/${i[1]??"unknown"}`:o=i[0]??"unknown"),t.has(o)||t.set(o,[]);let s=t.get(o);s&&s.push(n)}let r=`Found ${e.length} invalid OpenAPI reference${e.length===1?"":"s"}:
2949
+ fix here: ${s}:${i.start.line}:${i.start.column}`,[n,s]}function OWh(e){return R9e.ApiDefinitionV1ToLatest.from(e).migrate()}async function BWh(e){let t=[];return R9e.Transformer.descriptions(r=>(typeof r=="string"&&t.push(r),r)).apiDefinition(e),t}var $9n={name:"validate-product-file",create:()=>({productFile:async({path:e,content:t})=>{let r=await h9n({value:t});return r.type==="success"?[]:[{severity:"fatal",message:`${r.message}`}]}})};var H9n={name:"validate-version-file",create:()=>({versionFile:async({path:e,content:t})=>{let r=await m9n({value:t});return r.type==="success"?[]:[{severity:"fatal",message:`${r.message}`}]}})};Wt();Wt();function uxc({relativeFilepath:e,allRuleVisitors:t,addViolations:r}){function n(i){let o=async(s,a)=>{for(let u of t){let c=u[i];if(c!=null){let l=await c(s);r(l.map(p=>({name:p.name,severity:p.severity,relativeFilepath:p.relativeFilepath??Se.of(""),nodePath:a,message:p.message})))}}};return{[i]:o}}return{...n("file"),...n("filepath"),...n("markdownPage"),...n("versionFile"),...n("apiSection"),...n("permissions"),...n("productFile")}}Wt();var cxc=require("fs/promises"),rLo={name:"no-non-component-refs",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,cxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath),c=a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0")),l=a.includes('"swagger":')&&(a.includes('"swagger":"2.0"')||a.includes('"swagger": "2.0"'));if(c||l||a.includes("asyncapi:")||a.includes('"asyncapi":'))continue;let d=a.matchAll(/["']?\$ref["']?\s*:\s*["']([^"']+)["']/g);for(let f of d){let m=f[1];m&&m.startsWith("#/")&&!m.startsWith("#/components/")&&n.push({severity:"error",name:"Invalid OpenAPI reference",message:`Reference "${m}" points to a non-component location. OpenAPI references should point to reusable components under #/components/ (e.g., #/components/schemas/MySchema, #/components/responses/MyResponse). Direct references to paths, operations, or other spec sections are not supported.`,relativeFilepath:u})}}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};Wt();var lxc=require("fs/promises"),nLo={name:"no-openapi-v2-in-docs",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,lxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath),c=a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0")),l=a.includes('"swagger":')&&(a.includes('"swagger":"2.0"')||a.includes('"swagger": "2.0"'));(c||l)&&n.push({severity:"error",name:"OpenAPI v2.0 not supported",message:"OpenAPI version 2.0 (Swagger) is not supported in docs generation. Please upgrade to OpenAPI 3.0 or later.",relativeFilepath:u})}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};var pxc=["docs.buildwithfern.com","docs.dev.buildwithfern.com"];function PWh(e){return e.includes(".")?{valid:!1,error:`Subdomain "${e}" contains a '.' character, which is not allowed`,suggestion:e.replace(/\./g,"-")}:e.length>62?{valid:!1,error:`Subdomain "${e}" is ${e.length} characters long, which exceeds the maximum of 62 characters`}:/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)?{valid:!0}:{valid:!1,error:`Subdomain "${e}" contains invalid characters. Subdomains must contain only alphanumeric characters and hyphens, and cannot start or end with a hyphen`}}function TWh(e){let t;try{let s=e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`;t=new URL(s).hostname.toLowerCase()}catch{return{severity:"fatal",message:`Invalid URL format: "${e}". Expected format: <subdomain>.docs.buildwithfern.com`}}let r=pxc.find(s=>t.endsWith(s));if(!r)return{severity:"fatal",message:`Invalid domain in URL "${e}". The URL must end with one of: ${pxc.join(", ")}`};let n="."+r;if(!t.endsWith(n))return{severity:"fatal",message:`Invalid URL "${e}". A subdomain is required before ${r}`};let i=t.slice(0,t.length-n.length);if(!i||i.length===0)return{severity:"fatal",message:`Invalid URL "${e}". A subdomain is required before ${r}`};let o=PWh(i);if(!o.valid){let s=`Invalid instance URL "${e}": ${o.error}`;return o.suggestion&&(s+=`. Suggestion: ${o.suggestion}.${r}`),{severity:"fatal",message:s}}return null}var iLo={name:"valid-instance-url",create:()=>({file:async({config:e})=>{let t=[];if(!e.instances||e.instances.length===0)return t;for(let r=0;r<e.instances.length;r++){let n=e.instances[r];if(n?.url){let i=TWh(n.url);i&&t.push({...i,message:`instances[${r}].url: ${i.message}`})}}return t}})};Wt();var fxc=require("fs/promises");function DWh(e,t){let r=e.replace(/^#\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~")),n=t;for(let i of r)if(n==null||typeof n!="object"||(n=n[i],n===void 0))return!1;return n!=null}function RWh(e){let t=new Map;for(let n of e){let i=n.replace(/^#\//,"").split("/"),o="Other";i.length>=2&&(i[0]==="components"?o=`components/${i[1]??"unknown"}`:o=i[0]??"unknown"),t.has(o)||t.set(o,[]);let s=t.get(o);s&&s.push(n)}let r=`Found ${e.length} invalid OpenAPI reference${e.length===1?"":"s"}:
2950
2950
 
2951
2951
  `;for(let[n,i]of t){r+=`${n}:
2952
2952
  `;for(let o of i)r+=` ${o}
2953
2953
  `;r+=`
2954
- `}return r+="These references point to locations that don't exist in the OpenAPI specification. ",r+="Please ensure all referenced components are defined or remove the invalid references.",r}var oLo={name:"valid-local-references",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,fxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath);if(a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0")))continue;let l;try{l=xr.load(a)}catch{t.debug(`Could not parse OpenAPI spec file: ${s.absoluteFilepath}`);continue}if(!l||typeof l!="object")continue;let p=a.matchAll(/["']?\$ref["']?\s*:\s*["']([^"']+)["']/g),d=new Set;for(let m of p){let h=m[1];h&&h.startsWith("#/")&&d.add(h)}let f=[];for(let m of d)DWh(m,l)||f.push(m);if(f.length>0){let m=RWh(f);n.push({severity:"warning",name:"Invalid OpenAPI References",message:m,relativeFilepath:u})}}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};Wt();var dxc=require("fs/promises");var sLo={name:"valid-openapi-examples",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)if(o instanceof Yp){for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=await FWh({specPath:s.absoluteFilepath,logger:t});if(a){let u=Ra(r.absoluteFilePath,s.absoluteFilepath),c=new Map;for(let d of a.invalidHumanExamples){let f=`${d.method.toUpperCase()} ${d.endpointPath}`;c.has(f)||c.set(f,[]);let m=c.get(f);m&&m.push({exampleName:d.exampleName,errors:d.errors})}let l=0,p=c.size;for(let[d,f]of c){let m=`Errors for ${d}:
2954
+ `}return r+="These references point to locations that don't exist in the OpenAPI specification. ",r+="Please ensure all referenced components are defined or remove the invalid references.",r}var oLo={name:"valid-local-references",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=(await(0,fxc.readFile)(s.absoluteFilepath)).toString(),u=Ra(r.absoluteFilePath,s.absoluteFilepath),c=a.includes("swagger:")&&(a.includes('swagger: "2.0"')||a.includes("swagger: '2.0'")||a.includes("swagger: 2.0")),l=a.includes('"swagger":')&&(a.includes('"swagger":"2.0"')||a.includes('"swagger": "2.0"'));if(c||l)continue;let p;try{p=xr.load(a)}catch{t.debug(`Could not parse OpenAPI spec file: ${s.absoluteFilepath}`);continue}if(!p||typeof p!="object")continue;let d=a.matchAll(/["']?\$ref["']?\s*:\s*["']([^"']+)["']/g),f=new Set;for(let h of d){let A=h[1];A&&A.startsWith("#/")&&f.add(A)}let m=[];for(let h of f)DWh(h,p)||m.push(h);if(m.length>0){let h=RWh(m);n.push({severity:"warning",name:"Invalid OpenAPI References",message:h,relativeFilepath:u})}}catch{t.warn(`Could not read OpenAPI spec file: ${s.absoluteFilepath}`);continue}}return n}})};Wt();var dxc=require("fs/promises");var sLo={name:"valid-openapi-examples",create:({ossWorkspaces:e,logger:t,workspace:r})=>({file:async()=>{let n=[],i=new Set;for(let o of e)if(o instanceof Yp){for(let s of o.specs)if(s.type==="openapi"&&!i.has(s.absoluteFilepath)){i.add(s.absoluteFilepath);try{let a=await FWh({specPath:s.absoluteFilepath,logger:t});if(a){let u=Ra(r.absoluteFilePath,s.absoluteFilepath),c=new Map;for(let d of a.invalidHumanExamples){let f=`${d.method.toUpperCase()} ${d.endpointPath}`;c.has(f)||c.set(f,[]);let m=c.get(f);m&&m.push({exampleName:d.exampleName,errors:d.errors})}let l=0,p=c.size;for(let[d,f]of c){let m=`Errors for ${d}:
2955
2955
  `,h=0;for(let A of f){let y=A.exampleName?` (example: "${A.exampleName}")`:"";y&&(m+=`
2956
2956
  Example "${A.exampleName}":
2957
2957
  `);for(let b of A.errors){h++;let E=QWh(b),v=y?" ":" ",I=jWh(`${h}. ${E}`,v,90);m+=`${I}