fern-api 3.91.0 → 3.91.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +4 -4
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1454,7 +1454,7 @@ ${QVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Xxs(th
|
|
|
1454
1454
|
`+u_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?u_t.default.cyan($Vu(t,this.opt.mask)):u_t.default.italic(u_t.default.dim("[hidden]")):this.opt.mask?$Vu(t,this.opt.mask):u_t.default.italic(u_t.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var Con=He(N1(),1);var HUu=He(DPs(),1),Pon=require("child_process"),S2t=require("fs"),xon=He(require("path"),1),$Uu=He(require("os"),1),KUu=require("crypto"),yIs=He(WUu(),1);var Oon=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var DPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var Eon=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var won=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Ion(e="",t,r){let n=new AIs(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 GUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function Gly(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 AIs=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=Gly(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??$Uu.default.tmpdir(),r=(0,KUu.randomUUID)(),n=GUu(this.fileOptions.prefix),i=GUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=xon.default.resolve(t,o),a=xon.default.resolve(t)+xon.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let c={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(c.mode=this.fileOptions.mode),(0,S2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new Oon(t)}}readTemporaryFile(){try{let t=(0,S2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,HUu.detect)(t)??"utf8";yIs.default.encodingExists(r)||(r="utf8"),this.text=yIs.default.decode(t,r)}}catch(t){throw new Eon(t)}}removeTemporaryFile(){try{(0,S2t.unlinkSync)(this.tempFile)}catch(t){throw new won(t)}}launchEditor(){try{let t=(0,Pon.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new DPr(t)}}launchEditorAsync(t){try{(0,Pon.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new DPr(r)}}};var JUu=He(OG(),1);var RPr=class extends k1{_run(t){this.done=t,this.editorResult=new JUu.Subject;let r=pz(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?Con.default.dim("Received"):Con.default.dim("Press <enter> to launch your preferred editor."),t&&(r=Con.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Ion(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 t4u=require("stream");var ZUu=He(require("readline"),1),e4u=He(XUu(),1),m_t=class{constructor(t){this.rl||=ZUu.default.createInterface($ly(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 $ly(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 e4u.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var FPr=class extends m_t{constructor(t={}){super(t),this.log=new t4u.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return APr(this.rl,this.bottomBar.split(`
|
|
1455
1455
|
`).length),this}updateBottomBar(t){return APr(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+`
|
|
1456
1456
|
`}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&&Jin(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=He(OG(),1),i4u=He(Qxr(),1);var Son=He(OG(),1),r4u=He(Qxr(),1),jon=function(e,t,r){return typeof e[t]!="function"?(0,Son.of)(e):(0,Son.from)((0,r4u.default)(e[t])(r).then(n=>(e[t]=n,e)))};var n4u={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}},j2t=class extends m_t{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,cb.from)(t):(0,cb.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,cb.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,cb.from)([t]),this.process=n.pipe((0,cb.concatMap)(this.processQuestion.bind(this)),(0,cb.publish)()),this.process.connect(),this.process.pipe((0,cb.reduce)((i,o)=>(n4u.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,cb.defer)(()=>(0,cb.of)(t).pipe((0,cb.concatMap)(this.setDefaultType.bind(this)),(0,cb.concatMap)(this.filterIfRunnable.bind(this)),(0,cb.concatMap)(()=>jon(t,"message",this.answers)),(0,cb.concatMap)(()=>jon(t,"default",this.answers)),(0,cb.concatMap)(()=>jon(t,"choices",this.answers)),(0,cb.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,cb.defer)(()=>(0,cb.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,cb.defer)(()=>(0,cb.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&n4u.get(this.answers,t.name)!==void 0)return cb.EMPTY;if(t.when===!1)return cb.EMPTY;if(typeof t.when!="function")return(0,cb.of)(t);let{answers:r}=this;return(0,cb.defer)(()=>(0,cb.from)((0,i4u.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function o4u(e){let t=function(r,n){let i;try{i=new j2t(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",_Pr),this.registerPrompt("input",c_t),this.registerPrompt("number",vPr),this.registerPrompt("confirm",OPr),this.registerPrompt("rawlist",EPr),this.registerPrompt("expand",wPr),this.registerPrompt("checkbox",xPr),this.registerPrompt("password",PPr),this.registerPrompt("editor",RPr)},t.restoreDefaultPrompts(),t}var _Is=o4u();function Jly(e,t){_Is.registerPrompt(e,t)}function Yly(){_Is.restoreDefaultPrompts()}var Xly={prompt:_Is,ui:{BottomBar:FPr,Prompt:j2t},createPromptModule:o4u,registerPrompt:Jly,restoreDefaultPrompts:Yly,Separator:C3},ub=Xly;var B2t=require("path");function a4u(){let e=Zly();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function Zly(e=process.argv[1]?(0,B2t.dirname)(process.argv[1]):process.cwd(),t=B2t.sep==="\\"){let r=t?s4u(e):e;return n=>{if(!n)return;let i=t?s4u(n):n,{dir:o,base:s,ext:a}=B2t.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let c=decodeURIComponent(s);o||(o=".");let u=o.lastIndexOf("/node_modules");if(u>-1)return`${o.slice(u+14).replace(/\//g,".")}:${c}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}function s4u(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var vIs=e=>{if("flags"in e){let t=c4u(e.flags),r=u4u(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,l4u(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,epy(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function epy(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 c4u=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,NPr(r)]).filter(([,t])=>t!==void 0)),u4u=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?l4u(n):void 0]}))};var NPr=e=>e===void 0?void 0:e.variant??e.enabled,l4u=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Bon="0123456789abcdef",Ton=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+=Bon.charAt(this.bytes[r]>>>4),t+=Bon.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+=Bon.charAt(this.bytes[r]>>>4),t+=Bon.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}},OIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??tpy()}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 Ton.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,Ton.ofInner(t)}},tpy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),p4u,$be=()=>rpy().toString(),rpy=()=>(p4u||(p4u=new OIs)).generate();var npy=["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"],f4u=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return npy.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var j3=(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 opy=Array.isArray,m4u=Object.prototype,ZZP=m4u.hasOwnProperty,EIs=m4u.toString,wIs=opy||function(e){return EIs.call(e)==="[object Array]"};var d4u=e=>e===Object(e)&&!wIs(e);var T2t=e=>e===void 0,kPr=e=>EIs.call(e)=="[object String]",h4u=e=>kPr(e)&&e.trim().length===0;var g4u=e=>EIs.call(e)=="[object Number]"&&e===e;var xIs=e=>e instanceof Error;function zPr(e){return e===null||typeof e!="object"}function d_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function y4u(e){return d_t(e,"ErrorEvent")}function Don(e){return!T2t(Event)&&spy(e,Event)}function A4u(e){return d_t(e,"Object")}function spy(e,t){try{return e instanceof t}catch{return!1}}function QPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),g4u(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),QPr(i||r,t,r,n))}var apy=864e5,Ron=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=QPr(t.bucketSize,0,100,t._logger),this._refillRate=QPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=QPr(t.refillInterval,0,apy,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 Fon=class{add(t){let r=$be();return this.promiseByIds[r]=t,t.catch(()=>{}).finally(()=>{delete this.promiseByIds[r]}),t}async join(){let t=Object.values(this.promiseByIds),r=t.length;for(;r>0;)await Promise.all(t),t=Object.values(this.promiseByIds),r=t.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}};function cpy(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var b4u=(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=>b4u(`${e} ${o}`,t,r)}},upy=e=>e();function _4u(e,t=upy){return b4u(e,t,cpy())}var R2t="Mobile",kon="iOS",D2t="Android",v4u="Tablet",peI=D2t+" "+v4u;var lpy="Apple",feI=lpy+" Watch",O4u="Safari",zon="BlackBerry",E4u="Samsung",ppy=E4u+"Browser",fpy=E4u+" Internet",Qon="Chrome",mpy=Qon+" OS",dpy=Qon+" "+kon,w4u="Internet Explorer",hpy=w4u+" "+R2t,IIs="Opera",meI=IIs+" Mini",x4u="Edge",gpy="Microsoft "+x4u,CIs="Firefox",ypy=CIs+" "+kon,SIs="Nintendo",jIs="PlayStation",Non="Xbox",Apy=D2t+" "+R2t,bpy=R2t+" "+O4u,MPr="Windows",_py=MPr+" Phone";var P4u="Generic",deI=P4u+" "+R2t.toLowerCase(),heI=P4u+" "+v4u.toLowerCase(),vpy="Konqueror",rU="(\\d+(\\.\\d+)?)",PIs=new RegExp("Version/"+rU),geI=new RegExp(Non,"i"),yeI=new RegExp(jIs+" \\w+","i"),AeI=new RegExp(SIs+" \\w+","i"),Opy=new RegExp(zon+"|PlayBook|BB10","i"),Epy={"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 beI={[hpy]:[new RegExp("rv:"+rU)],[gpy]:[new RegExp(x4u+"?\\/"+rU)],[Qon]:[new RegExp("("+Qon+"|CrMo)\\/"+rU)],[dpy]:[new RegExp("CriOS\\/"+rU)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+rU)],[O4u]:[PIs],[bpy]:[PIs],[IIs]:[new RegExp("("+IIs+"|OPR)\\/"+rU)],[CIs]:[new RegExp(CIs+"\\/"+rU)],[ypy]:[new RegExp("FxiOS\\/"+rU)],[vpy]:[new RegExp("Konqueror[:/]?"+rU,"i")],[zon]:[new RegExp(zon+" "+rU),PIs],[Apy]:[new RegExp("android\\s"+rU,"i")],[fpy]:[new RegExp(ppy+"\\/"+rU)],[w4u]:[new RegExp("(rv:|MSIE )"+rU)],Mozilla:[new RegExp("rv:"+rU)]};var _eI=[[new RegExp(Non+"; "+Non+" (.*?)[);]","i"),e=>[Non,e&&e[1]||""]],[new RegExp(SIs,"i"),[SIs,""]],[new RegExp(jIs,"i"),[jIs,""]],[Opy,[zon,""]],[new RegExp(MPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[_py,""];if(new RegExp(R2t).test(t)&&!/IEMobile\b/.test(t))return[MPr+" "+R2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=Epy[n]||"";return/arm/i.test(t)&&(i="RT"),[MPr,i]}return[MPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[kon,t.join(".")]}return[kon,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=T2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+D2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+D2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[D2t,t.join(".")]}return[D2t,""]}],[/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/,[mpy,""]],[/Linux|debian/i,["Linux",""]]];var I4u="utf8";function C4u(e,t){if(!e||typeof e!="string"||wpy(e))throw new Error(t)}function wpy(e){return e.trim().length===0}function S4u(e){return e?.replace(/\/+$/,"")}async function j4u(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 Mon(){return new Date().toISOString()}function h_t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var B4u=e=>e instanceof Error;function BIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Von=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 T4u(){return"CompressionStream"in globalThis}async function TIs(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 g_t=class extends Error{constructor(t,r){super("HTTP error while fetching PostHog: status="+t.status+", reqByteLength="+r),this.response=t,this.reqByteLength=r,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}},F2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function D4u(e){if(e instanceof g_t){let t="";try{t=await e.text}catch{}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function DIs(e){return typeof e=="object"&&(e instanceof g_t||e instanceof F2t)}function R4u(e){return typeof e=="object"&&e instanceof g_t&&e.status===413}var VPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Fon,this._events=new Von,this._isInitialized=!1,C4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=S4u(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:DIs},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=_4u("[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=!T4u()||(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(j3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!0){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:vIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof g_t)return{type:"api_error",statusCode:t.status};if(t instanceof F2t){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let c=NPr(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(j3.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(j3.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(j3.Props,this.props)})}processBeforeEnqueue(t){return t}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(j3.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(j3.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=h_t(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:Mon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await TIs(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:Mon(),uuid:n?.uuid?n.uuid:$be()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await D4u(t)})}async flush(){let t=BIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),BIs([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(j3.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=()=>{let h=(this.getPersistedProperty(j3.Queue)||[]).slice(i.length);this.setPersistedProperty(j3.Queue,h),t=h},a={api_key:this.apiKey,batch:o,sent_at:Mon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await TIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>R4u(f)?!1:DIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(R4u(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 F2t||s(),this._events.emit("error",f),f}s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let c=new AbortController;return setTimeout(()=>c.abort(),a),c.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,I4u)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await j4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new F2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new g_t(a,s);return a},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(j3.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!DIs(i))throw i;await D4u(i)}};return Promise.race([new Promise((i,o)=>{h_t(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,o("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var B3={};D(B3,{DOMExceptionCoercer:()=>kIs,ErrorCoercer:()=>zIs,ErrorEventCoercer:()=>QIs,ErrorPropertiesBuilder:()=>RIs,EventCoercer:()=>UIs,ObjectCoercer:()=>VIs,PrimitiveCoercer:()=>LIs,PromiseRejectionEventCoercer:()=>qIs,ReduceableCache:()=>WIs,StringCoercer:()=>MIs,chromeStackLineParser:()=>FIs,createDefaultStackParser:()=>Qpy,createStackParser:()=>W4u,geckoStackLineParser:()=>NIs,nodeStackLineParser:()=>V4u,opera10StackLineParser:()=>z4u,opera11StackLineParser:()=>Q4u,reverseAndStripFrames:()=>q4u,winjsStackLineParser:()=>k4u});var Uon,F4u,Lon;function N4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Lon&&r.length===F4u||(F4u=r.length,Lon=r.reduce((n,i)=>{Uon||(Uon={});let o=Uon[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let u=s[a]?.filename,l=t[i];if(u&&l){n[u]=l,Uon[i]=[u,l];break}}}return n},{})),Lon}var Ppy=4,RIs=class{constructor(t,r,n=[]){this.coercers=t,this.stackParser=r,this.modifiers=n}buildFromUnknown(t,r={}){let i=r&&r.mechanism||{handled:!0,type:"generic"},s=this.buildCoercingContext(i,r,0).apply(t),a=this.buildParsingContext(),c=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(c,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&wIs(r.stacktrace.frames)&&(r.stacktrace.frames=await this.applyModifiers(r.stacktrace.frames));return t}coerceFallback(t){return{type:"Error",value:"Unknown error",stack:t.syntheticException?.stack,synthetic:!0}}parseStacktrace(t,r){let n;t.cause!=null&&(n=this.parseStacktrace(t.cause,r));let i;return t.stack!=""&&t.stack!=null&&(i=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?1:0),r.chunkIdMap)),{...t,cause:n,stack:i}}applyChunkIds(t,r){return t.map(n=>(n.filename&&r&&(n.chunk_id=r[n.filename]),n))}applyCoercers(t,r){for(let n of this.coercers)if(n.match(t))return n.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let n of this.modifiers)r=await n(r);return r}convertToExceptionList(t,r){let n={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(n.stacktrace={type:"raw",frames:t.stack});let i=[n];return t.cause!=null&&i.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),i}buildParsingContext(){return{chunkIdMap:N4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=Ppy){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var mz="?";function Kbe(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?mz:r,in_app:!0};return T2t(n)||(o.lineno=n),T2t(i)||(o.colno=i),o}var qon=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:mz,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var Ipy=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Cpy=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Spy=/\((\S*)(?::(\d+))(?::(\d+))\)/,FIs=(e,t)=>{let r=Ipy.exec(e);if(r){let[,i,o,s]=r;return Kbe(t,i,mz,+o,+s)}let n=Cpy.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Spy.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=qon(n[1]||mz,n[2]);return Kbe(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var jpy=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Bpy=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,NIs=(e,t)=>{let r=jpy.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=Bpy.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||mz;return[o,i]=qon(o,i),Kbe(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Tpy=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,k4u=(e,t)=>{let r=Tpy.exec(e);return r?Kbe(t,r[2],r[1]||mz,+r[3],r[4]?+r[4]:void 0):void 0};var Dpy=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,z4u=(e,t)=>{let r=Dpy.exec(e);return r?Kbe(t,r[2],r[3]||mz,+r[1]):void 0},Rpy=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Q4u=(e,t)=>{let r=Rpy.exec(e);return r?Kbe(t,r[5],r[3]||r[4]||mz,+r[1],+r[2]):void 0};var Fpy=/^\s*[-]{4,}$/,Npy=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,V4u=(e,t)=>{let r=e.match(Npy);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||mz,o=s?`${s}.${a}`:a);let c=r[2]?.startsWith("file://")?r[2].slice(7):r[2],u=r[5]==="native";return c?.match(/\/[A-Z]:/)&&(c=c.slice(1)),!c&&r[5]&&!u&&(c=r[5]),{filename:c?decodeURI(c):void 0,module:void 0,function:o,lineno:M4u(r[3]),colno:M4u(r[4]),in_app:kpy(c||"",u),platform:t}}if(e.match(Fpy))return{filename:e,platform:t}};function kpy(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 M4u(e){return parseInt(e||"",10)||void 0}var U4u=/\(error: (.*)\)/,L4u=50;function q4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,L4u).map(r=>({...r,filename:r.filename||zpy(t).filename,function:r.function||mz}))}function zpy(e){return e[e.length-1]||{}}function Qpy(){return W4u("web:javascript",FIs,NIs)}function W4u(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
1457
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=U4u.test(a)?a.replace(U4u,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=L4u)break}}return q4u(i)}}var kIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=kPr(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 d_t(t,"DOMException")}isDOMError(t){return d_t(t,"DOMError")}};var zIs=class{match(t){return xIs(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 QIs=class{constructor(){}match(t){return y4u(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 Mpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,MIs=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(Mpy);return i&&(r=i[1],n=i[2]),[r,n]}};var G4u=["fatal","error","warning","log","info","debug"];function Won(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 VIs=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 Don(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=Won(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return kPr(t)&&!h4u(t)&&G4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(B4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var UIs=class{match(t){return Don(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Won(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var LIs=class{match(t){return zPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var qIs=class{match(t){return d_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return zPr(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(zPr(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 WIs=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 K4u=require("fs"),J4u=require("readline"),Gon=new B3.ReduceableCache(25),Y4u=new B3.ReduceableCache(20),GIs=7,Vpy=1e3,Upy=1e4;async function X4u(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"||Gpy(s)||Hpy(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(Y4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Kpy(o);if(s.every(c=>$py(i,c)))continue;let a=Jpy(Gon,i,{});n.push(Lpy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&qpy(e,Gon),Gon.reduce(),e}function Lpy(e,t,r){return new Promise(n=>{let i=(0,K4u.createReadStream)(e),o=(0,J4u.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function m(){Y4u.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",m),o.on("error",m),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Ypy(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let h=t[c];if(h===void 0){o.close(),o.removeAllListeners();return}l=h[0],p=h[1]}})})}function qpy(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;Wpy(r.lineno,r,n)}}function Wpy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=Z4u(e);i<e;i++){let o=r[i];if(o===void 0)return void H4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void H4u(t);t.context_line=r[e];let n=eLu(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 H4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Gpy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Hpy(e){return e.lineno!==void 0&&e.lineno>Upy||e.colno!==void 0&&e.colno>Vpy}function $py(e,t){let r=Gon.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 Kpy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=$4u(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+GIs:(i.push(n),n=$4u(o)),t++}return i}function $4u(e){return[Z4u(e),eLu(e)]}function Z4u(e){return Math.max(1,e-GIs)}function eLu(e){return e+GIs}function Jpy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Ypy(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 Xpy(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 tLu(e,t){globalThis.process?.on("uncaughtException",Xpy(e,t))}function rLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Zpy=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Ron({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return d4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||$be(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(tLu(this.onException.bind(this),this.onFatalError.bind(this)),rLu(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(Zpy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var nLu="5.24.7";var UPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function iLu(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 efy=6e4,tfy=1152921504606847e3,rfy=["is_not"],N2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Jbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Hon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Jbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Jbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Jbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?uLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):cLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await oLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await oLu(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(efy,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 N2t(`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 N2t(`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 N2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof N2t&&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=h_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function oLu(e,t,r=""){let n=await iLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/tfy}function cLu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new XE("Operator is_not_set is not supported")}else throw new XE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!rfy.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return sLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return sLu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new XE("Date operations cannot be performed on boolean values");let u=ify(String(i));if(u==null&&(u=aLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=aLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function nfy(e,t){if(!(e in t))throw new Jbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function uLu(e,t,r,n=!1){let i=String(e.value);nfy(i,r);let o=r[i];return lLu(o,t,r,n)}function lLu(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=lLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=uLu(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=cLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function sLu(e){try{return new RegExp(e),!0}catch{return!1}}function aLu(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new XE(`${e} is in an invalid date format`)}throw new XE(`The date provided ${e} must be a string, number, or date object`)}function ify(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 $on=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var ofy=100,pLu=3e4,sfy=5e4,Kon=class extends VPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new $on,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,ofy):pLu,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 Hon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||sfy}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 nLu}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=pLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Jbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=UPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(UPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(UPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(UPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=h_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(A4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=$be(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&f4u(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",h.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:h,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var fLu=require("async_hooks"),Jon=class{constructor(){this.storage=new fLu.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){if(n?.fresh===!0)return this.storage.run(t,r);{let o=this.get()||{},s={distinctId:t.distinctId??o.distinctId,sessionId:t.sessionId??o.sessionId,properties:{...o.properties||{},...t.properties||{}}};return this.storage.run(s,r)}}};var mLu="posthog-node";function afy(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[HIs.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],m=p.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:m,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var HIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=mLu,this.name=mLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(afy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new B3.ErrorPropertiesBuilder([new B3.EventCoercer,new B3.ErrorCoercer,new B3.ObjectCoercer,new B3.StringCoercer,new B3.PrimitiveCoercer],B3.createStackParser("node:javascript",B3.nodeStackLineParser),[a4u(),X4u]);var XWe=class extends Kon{getLibraryId(){return"posthog-node"}initializeContext(){return new Jon}};var Yon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new XWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.91.0",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var LPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var k2t=require("fs/promises"),ALu=require("os"),bLu=require("path");var dLu=He(require("crypto")),Zon=new Uint8Array(256),Xon=Zon.length;function $Is(){return Xon>Zon.length-16&&(dLu.default.randomFillSync(Zon),Xon=0),Zon.slice(Xon,Xon+=16)}var hLu=/^(?:[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 cfy(e){return typeof e=="string"&&hLu.test(e)}var KIs=cfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function gLu(e,t=0){return dz[e[t+0]]+dz[e[t+1]]+dz[e[t+2]]+dz[e[t+3]]+"-"+dz[e[t+4]]+dz[e[t+5]]+"-"+dz[e[t+6]]+dz[e[t+7]]+"-"+dz[e[t+8]]+dz[e[t+9]]+"-"+dz[e[t+10]]+dz[e[t+11]]+dz[e[t+12]]+dz[e[t+13]]+dz[e[t+14]]+dz[e[t+15]]}var yLu=He(require("crypto")),JIs={randomUUID:yLu.default.randomUUID};function ufy(e,t,r){if(JIs.randomUUID&&!t&&!e)return JIs.randomUUID();e=e||{};let n=e.random||(e.rng||$Is)();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 gLu(n)}var mR=ufy;var lfy="id",pfy=".fern",qPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new XWe(r),this.userId=t==null?void 0:Tvs(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"3.91.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,ALu.homedir)()),Ze.of(pfy),Ze.of(lfy));await qr(t)||(await(0,k2t.mkdir)((0,bLu.dirname)(t),{recursive:!0}),await(0,k2t.writeFile)(t,mR())),this.persistedDistinctId=(await(0,k2t.readFile)(t)).toString()}return this.persistedDistinctId}};var YIs;async function z2t(){return YIs==null&&(YIs=await ffy()),YIs}async function ffy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new LPr;let r=await gZr();return r!=null?new qPr({token:r,posthogApiKey:e}):await Sbe()!=null?new Yon({posthogApiKey:e}):new qPr({token:void 0,posthogApiKey:e})}catch{return new LPr}}var _Lu=(e=0)=>t=>`\x1B[${t+e}m`,vLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,OLu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,fI={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},EnI=Object.keys(fI.modifier),mfy=Object.keys(fI.color),dfy=Object.keys(fI.bgColor),wnI=[...mfy,...dfy];function hfy(){let e=new Map;for(let[t,r]of Object.entries(fI)){for(let[n,i]of Object.entries(r))fI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=fI[n],e.set(i[0],i[1]);Object.defineProperty(fI,t,{value:r,enumerable:!1})}return Object.defineProperty(fI,"codes",{value:e,enumerable:!1}),fI.color.close="\x1B[39m",fI.bgColor.close="\x1B[49m",fI.color.ansi=_Lu(),fI.color.ansi256=vLu(),fI.color.ansi16m=OLu(),fI.bgColor.ansi=_Lu(10),fI.bgColor.ansi256=vLu(10),fI.bgColor.ansi16m=OLu(10),Object.defineProperties(fI,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>fI.rgbToAnsi256(...fI.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>fI.ansi256ToAnsi(fI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>fI.ansi256ToAnsi(fI.hexToAnsi256(t)),enumerable:!1}}),fI}var gfy=hfy(),fue=gfy;var tsn=He(require("process"),1),wLu=He(require("os"),1),XIs=He(require("tty"),1);function sJ(e,t=globalThis.Deno?globalThis.Deno.args:tsn.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=tsn.default,esn;sJ("no-color")||sJ("no-colors")||sJ("color=false")||sJ("color=never")?esn=0:(sJ("color")||sJ("colors")||sJ("color=true")||sJ("color=always"))&&(esn=1);function yfy(){if("FORCE_COLOR"in mI)return mI.FORCE_COLOR==="true"?1:mI.FORCE_COLOR==="false"?0:mI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(mI.FORCE_COLOR,10),3)}function Afy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function bfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=yfy();n!==void 0&&(esn=n);let i=r?esn:n;if(i===0)return 0;if(r){if(sJ("color=16m")||sJ("color=full")||sJ("color=truecolor"))return 3;if(sJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(tsn.default.platform==="win32"){let s=wLu.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in mI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in mI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in mI)||mI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in mI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(mI.TEAMCITY_VERSION)?1:0;if(mI.COLORTERM==="truecolor"||mI.TERM==="xterm-kitty"||mI.TERM==="xterm-ghostty"||mI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in mI){let s=Number.parseInt((mI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(mI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(mI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(mI.TERM)||"COLORTERM"in mI?1:o}function ELu(e,t={}){let r=bfy(e,{streamIsTTY:e&&e.isTTY,...t});return Afy(r)}var _fy={stdout:ELu({isTTY:XIs.default.isatty(1)}),stderr:ELu({isTTY:XIs.default.isatty(2)})},xLu=_fy;function PLu(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 ILu(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
|
|
1457
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=U4u.test(a)?a.replace(U4u,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=L4u)break}}return q4u(i)}}var kIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=kPr(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 d_t(t,"DOMException")}isDOMError(t){return d_t(t,"DOMError")}};var zIs=class{match(t){return xIs(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 QIs=class{constructor(){}match(t){return y4u(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 Mpy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,MIs=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(Mpy);return i&&(r=i[1],n=i[2]),[r,n]}};var G4u=["fatal","error","warning","log","info","debug"];function Won(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 VIs=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 Don(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=Won(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return kPr(t)&&!h4u(t)&&G4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(B4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var UIs=class{match(t){return Don(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Won(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var LIs=class{match(t){return zPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var qIs=class{match(t){return d_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return zPr(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(zPr(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 WIs=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 K4u=require("fs"),J4u=require("readline"),Gon=new B3.ReduceableCache(25),Y4u=new B3.ReduceableCache(20),GIs=7,Vpy=1e3,Upy=1e4;async function X4u(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"||Gpy(s)||Hpy(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(Y4u.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Kpy(o);if(s.every(c=>$py(i,c)))continue;let a=Jpy(Gon,i,{});n.push(Lpy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&qpy(e,Gon),Gon.reduce(),e}function Lpy(e,t,r){return new Promise(n=>{let i=(0,K4u.createReadStream)(e),o=(0,J4u.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function m(){Y4u.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",m),o.on("error",m),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=Ypy(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let h=t[c];if(h===void 0){o.close(),o.removeAllListeners();return}l=h[0],p=h[1]}})})}function qpy(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;Wpy(r.lineno,r,n)}}function Wpy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=Z4u(e);i<e;i++){let o=r[i];if(o===void 0)return void H4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void H4u(t);t.context_line=r[e];let n=eLu(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 H4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Gpy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Hpy(e){return e.lineno!==void 0&&e.lineno>Upy||e.colno!==void 0&&e.colno>Vpy}function $py(e,t){let r=Gon.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 Kpy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=$4u(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+GIs:(i.push(n),n=$4u(o)),t++}return i}function $4u(e){return[Z4u(e),eLu(e)]}function Z4u(e){return Math.max(1,e-GIs)}function eLu(e){return e+GIs}function Jpy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Ypy(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 Xpy(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 tLu(e,t){globalThis.process?.on("uncaughtException",Xpy(e,t))}function rLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Zpy=2e3,pue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Ron({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return d4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||$be(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(tLu(this.onException.bind(this),this.onFatalError.bind(this)),rLu(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(Zpy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var nLu="5.24.7";var UPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function iLu(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 efy=6e4,tfy=1152921504606847e3,rfy=["is_not"],N2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Jbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Hon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Jbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Jbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Jbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?uLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):cLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await oLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await oLu(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(efy,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 N2t(`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 N2t(`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 N2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof N2t&&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=h_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function oLu(e,t,r=""){let n=await iLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/tfy}function cLu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new XE("Operator is_not_set is not supported")}else throw new XE(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!rfy.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return sLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return sLu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new XE("Date operations cannot be performed on boolean values");let u=ify(String(i));if(u==null&&(u=aLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=aLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function nfy(e,t){if(!(e in t))throw new Jbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function uLu(e,t,r,n=!1){let i=String(e.value);nfy(i,r);let o=r[i];return lLu(o,t,r,n)}function lLu(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=lLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=uLu(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=cLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Jbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function sLu(e){try{return new RegExp(e),!0}catch{return!1}}function aLu(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new XE(`${e} is in an invalid date format`)}throw new XE(`The date provided ${e} must be a string, number, or date object`)}function ify(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 $on=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var ofy=100,pLu=3e4,sfy=5e4,Kon=class extends VPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new $on,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,ofy):pLu,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 Hon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||sfy}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 nLu}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=pLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Jbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=UPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(UPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(UPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(UPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=h_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(A4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!pue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(pue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=$be(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&f4u(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",h.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:h,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var fLu=require("async_hooks"),Jon=class{constructor(){this.storage=new fLu.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){if(n?.fresh===!0)return this.storage.run(t,r);{let o=this.get()||{},s={distinctId:t.distinctId??o.distinctId,sessionId:t.sessionId??o.sessionId,properties:{...o.properties||{},...t.properties||{}}};return this.storage.run(s,r)}}};var mLu="posthog-node";function afy(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[HIs.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],m=p.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:m,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var HIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=mLu,this.name=mLu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(afy(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pue.errorPropertiesBuilder=new B3.ErrorPropertiesBuilder([new B3.EventCoercer,new B3.ErrorCoercer,new B3.ObjectCoercer,new B3.StringCoercer,new B3.PrimitiveCoercer],B3.createStackParser("node:javascript",B3.nodeStackLineParser),[a4u(),X4u]);var XWe=class extends Kon{getLibraryId(){return"posthog-node"}initializeContext(){return new Jon}};var Yon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new XWe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.91.1",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var LPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var k2t=require("fs/promises"),ALu=require("os"),bLu=require("path");var dLu=He(require("crypto")),Zon=new Uint8Array(256),Xon=Zon.length;function $Is(){return Xon>Zon.length-16&&(dLu.default.randomFillSync(Zon),Xon=0),Zon.slice(Xon,Xon+=16)}var hLu=/^(?:[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 cfy(e){return typeof e=="string"&&hLu.test(e)}var KIs=cfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function gLu(e,t=0){return dz[e[t+0]]+dz[e[t+1]]+dz[e[t+2]]+dz[e[t+3]]+"-"+dz[e[t+4]]+dz[e[t+5]]+"-"+dz[e[t+6]]+dz[e[t+7]]+"-"+dz[e[t+8]]+dz[e[t+9]]+"-"+dz[e[t+10]]+dz[e[t+11]]+dz[e[t+12]]+dz[e[t+13]]+dz[e[t+14]]+dz[e[t+15]]}var yLu=He(require("crypto")),JIs={randomUUID:yLu.default.randomUUID};function ufy(e,t,r){if(JIs.randomUUID&&!t&&!e)return JIs.randomUUID();e=e||{};let n=e.random||(e.rng||$Is)();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 gLu(n)}var mR=ufy;var lfy="id",pfy=".fern",qPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new XWe(r),this.userId=t==null?void 0:Tvs(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"3.91.1",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tC({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=It(vr.of((0,ALu.homedir)()),Ze.of(pfy),Ze.of(lfy));await qr(t)||(await(0,k2t.mkdir)((0,bLu.dirname)(t),{recursive:!0}),await(0,k2t.writeFile)(t,mR())),this.persistedDistinctId=(await(0,k2t.readFile)(t)).toString()}return this.persistedDistinctId}};var YIs;async function z2t(){return YIs==null&&(YIs=await ffy()),YIs}async function ffy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new LPr;let r=await gZr();return r!=null?new qPr({token:r,posthogApiKey:e}):await Sbe()!=null?new Yon({posthogApiKey:e}):new qPr({token:void 0,posthogApiKey:e})}catch{return new LPr}}var _Lu=(e=0)=>t=>`\x1B[${t+e}m`,vLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,OLu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,fI={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},EnI=Object.keys(fI.modifier),mfy=Object.keys(fI.color),dfy=Object.keys(fI.bgColor),wnI=[...mfy,...dfy];function hfy(){let e=new Map;for(let[t,r]of Object.entries(fI)){for(let[n,i]of Object.entries(r))fI[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=fI[n],e.set(i[0],i[1]);Object.defineProperty(fI,t,{value:r,enumerable:!1})}return Object.defineProperty(fI,"codes",{value:e,enumerable:!1}),fI.color.close="\x1B[39m",fI.bgColor.close="\x1B[49m",fI.color.ansi=_Lu(),fI.color.ansi256=vLu(),fI.color.ansi16m=OLu(),fI.bgColor.ansi=_Lu(10),fI.bgColor.ansi256=vLu(10),fI.bgColor.ansi16m=OLu(10),Object.defineProperties(fI,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>fI.rgbToAnsi256(...fI.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>fI.ansi256ToAnsi(fI.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>fI.ansi256ToAnsi(fI.hexToAnsi256(t)),enumerable:!1}}),fI}var gfy=hfy(),fue=gfy;var tsn=He(require("process"),1),wLu=He(require("os"),1),XIs=He(require("tty"),1);function sJ(e,t=globalThis.Deno?globalThis.Deno.args:tsn.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=tsn.default,esn;sJ("no-color")||sJ("no-colors")||sJ("color=false")||sJ("color=never")?esn=0:(sJ("color")||sJ("colors")||sJ("color=true")||sJ("color=always"))&&(esn=1);function yfy(){if("FORCE_COLOR"in mI)return mI.FORCE_COLOR==="true"?1:mI.FORCE_COLOR==="false"?0:mI.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(mI.FORCE_COLOR,10),3)}function Afy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function bfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=yfy();n!==void 0&&(esn=n);let i=r?esn:n;if(i===0)return 0;if(r){if(sJ("color=16m")||sJ("color=full")||sJ("color=truecolor"))return 3;if(sJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(tsn.default.platform==="win32"){let s=wLu.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in mI)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in mI)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in mI)||mI.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in mI)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(mI.TEAMCITY_VERSION)?1:0;if(mI.COLORTERM==="truecolor"||mI.TERM==="xterm-kitty"||mI.TERM==="xterm-ghostty"||mI.TERM==="wezterm")return 3;if("TERM_PROGRAM"in mI){let s=Number.parseInt((mI.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(mI.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(mI.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(mI.TERM)||"COLORTERM"in mI?1:o}function ELu(e,t={}){let r=bfy(e,{streamIsTTY:e&&e.isTTY,...t});return Afy(r)}var _fy={stdout:ELu({isTTY:XIs.default.isatty(1)}),stderr:ELu({isTTY:XIs.default.isatty(2)})},xLu=_fy;function PLu(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 ILu(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
|
|
1458
1458
|
`:`
|
|
1459
1459
|
`)+r,i=n+1,n=e.indexOf(`
|
|
1460
1460
|
`,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:CLu,stderr:SLu}=xLu,ZIs=Symbol("GENERATOR"),Q2t=Symbol("STYLER"),WPr=Symbol("IS_EMPTY"),jLu=["ansi","ansi","ansi256","ansi16m"],M2t=Object.create(null),vfy=(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=CLu?CLu.level:0;e.level=t.level===void 0?r:t.level};var Ofy=e=>{let t=(...r)=>r.join(" ");return vfy(t,e),Object.setPrototypeOf(t,GPr.prototype),t};function GPr(e){return Ofy(e)}Object.setPrototypeOf(GPr.prototype,Function.prototype);for(let[e,t]of Object.entries(fue))M2t[e]={get(){let r=rsn(this,tCs(t.open,t.close,this[Q2t]),this[WPr]);return Object.defineProperty(this,e,{value:r}),r}};M2t.visible={get(){let e=rsn(this,this[Q2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var eCs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?fue[r].ansi16m(...n):t==="ansi256"?fue[r].ansi256(fue.rgbToAnsi256(...n)):fue[r].ansi(fue.rgbToAnsi(...n)):e==="hex"?eCs("rgb",t,r,...fue.hexToRgb(...n)):fue[r][e](...n),Efy=["rgb","hex","ansi256"];for(let e of Efy){M2t[e]={get(){let{level:r}=this;return function(...n){let i=tCs(eCs(e,jLu[r],"color",...n),fue.color.close,this[Q2t]);return rsn(this,i,this[WPr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);M2t[t]={get(){let{level:r}=this;return function(...n){let i=tCs(eCs(e,jLu[r],"bgColor",...n),fue.bgColor.close,this[Q2t]);return rsn(this,i,this[WPr])}}}}var wfy=Object.defineProperties(()=>{},{...M2t,level:{enumerable:!0,get(){return this[ZIs].level},set(e){this[ZIs].level=e}}}),tCs=(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}},rsn=(e,t,r)=>{let n=(...i)=>xfy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,wfy),n[ZIs]=e,n[Q2t]=t,n[WPr]=r,n},xfy=(e,t)=>{if(e.level<=0||!t)return e[WPr]?"":t;let r=e[Q2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=PLu(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
|
|
@@ -1692,7 +1692,7 @@ ${r}`);return i!=null?i(c):c},M$u(n))}var ONs=class{async handle(t,r){let n=r["d
|
|
|
1692
1692
|
Location: ${i.join("-> ")}`),Fn.unknown({nameOverride:p,generatedName:h,title:g,description:y,availability:A,namespace:a,groupName:f,example:void 0})}}function qDy(e){if(e!=null){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase();if(t==="true")return!0;if(t==="false")return!1}}}function BGe(e){if(e.$ref.startsWith(Jvt))return e.$ref.replace(Jvt,"")}function EMs(e,t,r,n,i){let o=Jn(e,Ii.TYPE_NAME),s=cj(t,n),a=e.description,c=yQ(e),u=BGe(e);if(u==null)throw new Error(`Invalid schema reference ${JSON.stringify(e)}`);return Du.reference({generatedName:s,nameOverride:o,title:void 0,schema:u,description:a??void 0,availability:c,namespace:i.getNamespace(u),groupName:void 0,source:r})}function WDy(e){return e.oneOf==null||e.oneOf.length===0}function zil(e){return e.allOf==null||e.allOf.length===0}function aPn(e){return e.properties==null||V0(e.properties)===0}function uPn(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function q_e(e,t,r,n){if(e.type==="reference")return Fn.reference({...e,description:t,availability:e.availability,namespace:r,groupName:n});if(e.type==="optional"){let i=q_e(e.value,t,r,n);return Fn.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:i,description:t,availability:e.availability,namespace:r,groupName:n,inline:void 0})}else if(e.type==="nullable"){let i=q_e(e.value,t,r,n);return Fn.nullable({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:i,description:t,availability:e.availability,namespace:r,groupName:n,inline:void 0})}else if(e.type==="primitive"&&t!=null&&e.description==null)return Fn.primitive({...e,description:t});return e}function cPn(e){return yo(e)||e.type==="object"||e.properties!=null?!0:e.allOf!=null?e.allOf.every(t=>cPn(t)):e.oneOf!=null?e.oneOf.every(t=>cPn(t)):e.anyOf!=null?e.anyOf.every(t=>cPn(t)):!1}function Qil({literal:e,wrapAsOptional:t,wrapAsNullable:r,namespace:n,groupName:i,description:o,availability:s,nameOverride:a,generatedName:c,title:u}){let l=Fn.literal({nameOverride:a,generatedName:c,title:u,value:e,namespace:n,groupName:i,description:o,availability:s});return r&&(l=Fn.nullable({nameOverride:a,generatedName:c,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),t&&(l=Fn.optional({nameOverride:a,generatedName:c,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),l}function Bz({primitive:e,wrapAsOptional:t,wrapAsNullable:r,namespace:n,groupName:i,description:o,availability:s,generatedName:a,nameOverride:c,title:u}){i=typeof i=="string"?[i]:i;let l=Fn.primitive({nameOverride:c,generatedName:a,title:u,schema:e,description:o,availability:s,namespace:n,groupName:i});return r&&(l=Fn.nullable({nameOverride:c,generatedName:a,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),t&&(l=Fn.optional({nameOverride:c,generatedName:a,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),l}function GDy({schemas:e}){let t=new Set;for(let r of e){if(yo(r))return;if(r.enum!=null&&uPn(r.enum))r.enum.forEach(n=>t.add(n));else return}return Array.from(t)}function Mil({schemas:e,context:t}){let r={};for(let n of e){let i=Lil({schema:n,context:t});for(let[o,s]of Object.entries(i)){let a=r[o];a!=null?a[s]=n:r[o]={[s]:n}}}for(let[n,i]of Object.entries(r))if(Object.keys(i).length===e.length)return{discriminant:n,schemas:i}}function Lil({schema:e,context:t}){let r=yo(e)?t.resolveSchemaReference(e):e;return HDy({schema:r,context:t})}function HDy({schema:e,context:t}){let r={};if(e.anyOf!=null){for(let n of e.anyOf){let i=Lil({schema:n,context:t});for(let[o,s]of Object.entries(i??{}))r[o]=s}return r}for(let[n,i]of Object.entries(e.properties??{})){let o=yo(i)?t.resolveSchemaReference(i):i;o.type==="string"&&o.enum!=null&&uPn(o.enum)&&$Dy(o.enum).length===1&&o.enum[0]!=null&&(r[n]=o.enum[0]);let s=qil(o,"const");o.type==="string"&&s!=null&&(r[n]=s),n==="type"&&o.example!=null&&(r[n]=o.example)}return r}function $Dy(e){if(!e)return[];let t=new Set;return e.forEach(r=>{typeof r=="string"?t.add(r.toLowerCase()):t.add(r)}),Array.from(t)}function qil(e,t){let r=e[t];if(r!=null)return r}function KDy({schema:e,logger:t}){let r=_il({schema:e,logger:t});if(r!=null)return Cil(r)}var B4t=class{document;taskContext;logger;DUMMY;options;namespace;static MESSAGE_REFERENCE_PREFIX="#/components/messages/";constructor({document:t,taskContext:r,options:n,namespace:i}){this.document=t,this.taskContext=r,this.logger=r.logger,this.DUMMY=this,this.options=n,this.namespace=i}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveTags(t,r){if(this.namespace==null&&t==null&&r!=null)return[r];let n=[];if(this.namespace!=null){let i={type:"namespace",name:this.namespace};n.push(i)}return n.concat(t??[])}resolveSchemaReference(t){if(!t.$ref.startsWith(Jvt))throw new Error(`Failed to resolve schema reference: ${t.$ref}`);let n=t.$ref.substring(Jvt.length).split("/"),i=this.document.components;if(i==null||i.schemas==null)throw new Error("Document does not have components.schemas.");let[o,s,a]=n;if(o==null||o==="")throw new Error(`${t.$ref} cannot be resolved. No schema key provided.`);let c=i.schemas[o];if(c==null)throw new Error(`Schema "${o}" is undefined in document.components.schemas.`);if(yo(c)&&(c=this.resolveSchemaReference(c)),s==="properties"&&a!=null){let u=c.properties?.[a];if(u==null)throw new Error(`Property "${a}" not found on "${o}". Full ref: ${t.$ref}`);yo(u)?c=this.resolveSchemaReference(u):c=u}return c}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}markReferencedByDiscriminatedUnion(t,r,n){}markSchemaWithDiscriminantValue(t,r,n){}getNamespace(t){return this.namespace}};var pPn=class extends B4t{getExampleMessageReference(t){return`#/components/messages/${t.messageId}`}resolveMessageReference(t){let r="#/components/messages/",n=this.document.components;if(n==null||n.messages==null||!t.$ref.startsWith(r))throw new Error(`Failed to resolve message reference: ${t.$ref} in v2 components`);let i=t.$ref.substring(r.length),o=n.messages[i];if(o==null)throw new Error(`${t.$ref} is undefined`);return o}};pr();function T4t(e,t){let r={};if(e!=null)return{rootSchemas:r,namespacedSchemas:{[e]:t}};let n={};for(let[i,o]of Object.entries(t))switch(o.type){case"object":case"array":case"map":case"optional":case"enum":case"literal":case"reference":case"nullable":case"primitive":{if(o.namespace==null){r[i]=o;continue}let s=o.namespace;n[s]??={},n[s][i]=o;continue}case"oneOf":case"unknown":r[i]=o;continue;default:Ue(o)}return{rootSchemas:r,namespacedSchemas:n}}pr();var D4t=He(require("fs"),1),Yvt=He(require("path"),1);pr();function DGe(e){if(typeof e=="string")return Rl.primitive(As.string(e));if(typeof e=="number")return Number.isInteger(e)?Rl.primitive(As.int(e)):Rl.primitive(As.double(e));if(typeof e=="boolean")return Rl.primitive(As.boolean(e));if(Array.isArray(e)){let t=e.map(r=>DGe(r));return t.length===0?void 0:Rl.array(t.filter(r=>r!=null))}else if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string")){let t=[];for(let[r,n]of Object.entries(e)){let i=DGe(n);i!=null&&t.push({key:As.string(r),value:i})}return Rl.map(t)}}function Hjr(e){if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string"))return e}function Wil(e){if(e!=null&&Array.isArray(e))return e}var RGe=class{schemas;nonRequestReferencedSchemas;context;constructor(t,r,n){this.schemas=t,this.nonRequestReferencedSchemas=r,this.context=n}buildExample({schema:t,exampleId:r,example:n,options:i,skipReadonly:o}){return this.buildExampleHelper({schema:t,visitedSchemaIds:new Set,exampleId:r,example:n,options:{...i,maxCheckerDepth:i.maxCheckerDepth??5},depth:0,skipReadonly:o??!1})}buildExampleHelper({exampleId:t,example:r,schema:n,depth:i,visitedSchemaIds:o,options:s,skipReadonly:a}){switch(n.type){case"enum":return typeof r=="string"&&Gil({schema:n,value:r})?Rl.enum(r):n.values[0]!=null?Rl.enum(n.values[0]?.value):void 0;case"literal":return Rl.literal(n.value);case"nullable":{if(r===null)return Rl.null({});if(r==null&&!this.hasExample(n.value,0,o,s)&&this.exceedsMaxDepth(i,s))return Rl.null({});let c=this.buildExampleHelper({schema:n.value,visitedSchemaIds:o,exampleId:t,example:r,depth:i,options:s,skipReadonly:a});return c??Rl.null({})}case"optional":{if(r==null&&!this.hasExample(n.value,0,o,s)&&(s.ignoreOptionals||this.exceedsMaxDepth(i,s))||Object.is(r,null))return;let c=this.buildExampleHelper({schema:n.value,visitedSchemaIds:o,exampleId:t,example:r,depth:i,options:s,skipReadonly:a});return c!=null&&c.type==="array"&&c.value.length===0||c!=null&&c.type==="map"&&c.value.length===0||c!=null&&c.type==="object"&&Object.keys(c.properties).length===0?void 0:c}case"primitive":{let c=this.buildExampleFromPrimitive({schema:n.schema,example:r,options:s});return Rl.primitive(c)}case"reference":{let c=this.schemas[n.schema];if(c!=null&&!o.has(n.schema)){o.add(n.schema);let u=c?.type==="object"&&!this.nonRequestReferencedSchemas.has(n.schema),l=this.buildExampleHelper({example:r,schema:c,exampleId:t,visitedSchemaIds:o,depth:i,options:s,skipReadonly:u||this.context.options.respectReadonlySchemas?a:!1});return o.delete(n.schema),l}return}case"oneOf":switch(n.value.type){case"discriminated":{let c={},u={},l={},p=Hjr(r),m=p?.[n.value.discriminantProperty],f=n.value.schemas[m],h=[],g=this.getDiscriminatedUnionVariantSchema(n.value,p);g!=null&&h.push(g),h.push(...Object.entries(n.value.schemas));for(let y of h)if(m!=null&&f!=null&&f.type==="object"){u=this.getAllProperties(f),l=this.getAllRequiredProperties(f),c[n.value.discriminantProperty]=Rl.primitive(As.string(m));break}else{let A=this.buildExampleHelper({exampleId:t,schema:y[1],example:void 0,visitedSchemaIds:o,depth:i,options:s,skipReadonly:a});if(A!=null){this.mergeExampleWith(A,c),c[n.value.discriminantProperty]=Rl.primitive(As.string(y[0]));break}}for(let y of n.value.commonProperties){u[y.key]={schema:y.schema,readonly:!1};let A=this.getResolvedSchema(y.schema);A.type!=="optional"&&A.type!=="nullable"&&(l[y.key]=y.schema)}for(let[y,A]of Object.entries(u)){let b=y in l;if(b&&p?.[y]!=null){let v=this.buildExampleHelper({schema:A.schema,exampleId:t,example:p[y],visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});if(v!=null)c[y]=v;else return}else{let v=this.buildExampleHelper({exampleId:t,schema:A.schema,example:p?.[y],visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});if(v!=null)c[y]=v;else if(b)return}}return Rl.oneOf(AGe.discriminated(c))}case"undiscriminated":{let c=this.getUnDiscriminatedUnionVariantSchema(n.value,r);if(c!=null)return this.buildExampleHelper({exampleId:t,example:r,schema:c,visitedSchemaIds:o,depth:i,options:s,skipReadonly:a});break}}return;case"unknown":if(r!=null){let c=DGe(r);if(c!=null)return Rl.unknown(c)}return s.ignoreOptionals||this.exceedsMaxDepth(i,s)?void 0:s.isParameter?Rl.primitive(As.string(s.name??"string")):Rl.map([{key:As.string("key"),value:Rl.primitive(As.string("value"))}]);case"array":{let c=Wil(r),u=[];if(c!=null&&c.length>0)for(let l of c){let p=this.buildExampleHelper({exampleId:t,example:l,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});p!=null&&u.push(p)}else if(n.example!=null&&n.example.length>0)for(let l of n.example){let p=this.buildExampleHelper({exampleId:t,example:l,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});p!=null&&u.push(p)}else{let l=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});l!=null&&u.push(l)}return Rl.array(u)}case"map":{let c=Hjr(r??n.example);if(c!=null&&Object.entries(c).length>0){let p=[];for(let[m,f]of Object.entries(c)){let h=this.buildExampleFromPrimitive({schema:n.key.schema,example:m,options:s}),g=this.buildExampleHelper({exampleId:t,example:f,schema:n.value,visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});g!=null&&p.push({key:h,value:g})}return Rl.map(p)}if(n.key.schema.type==="string"&&n.value.type==="unknown")return Rl.map([{key:As.string("key"),value:Rl.unknown(Rl.primitive(As.string("value")))}]);let u=this.buildExampleFromPrimitive({schema:n.key.schema,example:void 0,options:{...s,name:"key"}}),l=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,visitedSchemaIds:o,depth:i+1,options:{...s,name:"value"},skipReadonly:a});return l!=null&&l.type!=="null"?Rl.map([{key:u,value:l}]):Rl.map([])}case"object":{let c={},u=n.fullExamples?.find(f=>f.name===t)??n.fullExamples?.find(f=>f.name==null)??n.fullExamples?.[0],l=Hjr(r)??(u!=null?Hjr(u.value):{})??{},p=this.getAllProperties(n),m=this.getAllRequiredProperties(n);for(let[f,h]of Object.entries(p)){if(a&&h.readonly||h.schema._visit({optional:O=>typeof O.availability=="string"&&O.availability==="Deprecated",primitive:()=>!1,object:()=>!1,array:()=>!1,map:()=>!1,enum:()=>!1,reference:()=>!1,literal:()=>!1,oneOf:()=>!1,nullable:()=>!1,unknown:()=>!1,_other:()=>!1}))continue;let g=f in m,y=Object.keys(l).includes(f),A=l[f],b=this.getSchemaExample(h.schema),v=y?A:b,_=this.buildExampleHelper({schema:h.schema,exampleId:t,example:v,visitedSchemaIds:o,depth:i+1,options:{...s,name:f},skipReadonly:a});if(g&&_!=null)c[f]=_;else{if(g)return;(y&&_!=null||!s.ignoreOptionals&&_!=null)&&(c[f]=_)}}if(n.additionalProperties){for(let[f,h]of Object.entries(l))if(!(f in c)){let g=this.buildExampleHelper({schema:Fn.unknown({example:h,title:void 0,availability:void 0,description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0}),exampleId:t,example:h,visitedSchemaIds:o,depth:i+1,options:{...s,name:f},skipReadonly:a});g!=null&&(c[f]=g)}}return Rl.object({properties:c})}default:Ue(n)}}mergeExampleWith(t,r){t._visit({array:Ut,enum:Ut,literal:Ut,map:n=>{for(let i of n){let o=i.key;o.type==="string"&&(r[o.value]=i.value)}},object:n=>{for(let[i,o]of Object.entries(n.properties))r[i]=o},oneOf:n=>{if(n.type==="discriminated")for(let[i,o]of Object.entries(n.value))r[i]=o;else this.mergeExampleWith(n.value,r)},primitive:Ut,unknown:Ut,null:Ut,_other:Ut})}getObjectSchema(t){if(t.type==="object")return t;if(t.type==="reference"){let r=this.schemas[t.schema];if(r!=null)return this.getObjectSchema(r)}}getDiscriminatedUnionVariantSchema(t,r){let n=r?.[t.discriminantProperty];if(n==null||typeof n!="string")return Object.entries(t.schemas)[0];let i=t.schemas[n];return i==null?Object.entries(t.schemas)[0]:[n,i]}getUnDiscriminatedUnionVariantSchema(t,r){if(r==null){let o=t.schemas.find(a=>this.hasExample(a,0,new Set,{ignoreOptionals:!1,isParameter:!1}));if(o!=null)return o;let s=t.schemas.find(a=>this.hasInherentExample(a));return s??t.schemas[0]}return t.schemas.map(o=>({schema:o,heuristic:this.calcExampleHeuristic(o,r)})).sort((o,s)=>s.heuristic-o.heuristic)[0]?.schema}calcExampleHeuristic(t,r){switch(t.type){case"literal":return t.value.value===r?5:0;case"enum":return Gil({schema:t,value:r})?5:0;case"object":{if(!Lu(r))return 0;let n=this.getAllProperties(t),i=0;for(let[o,s]of Object.entries(n))r[o]!=null?(i++,i+=this.calcExampleHeuristic(s.schema,r[o])):i--;return i}case"array":{if(!Array.isArray(r))return 0;let n=0;for(let i of r)n+=this.calcExampleHeuristic(t.value,i);return n}case"map":{if(!Lu(r))return 0;let n=0;for(let[,i]of Object.entries(r))n+=this.calcExampleHeuristic(t.value,i);return n}case"nullable":case"optional":return this.calcExampleHeuristic(t.value,r);case"reference":{let n=this.getResolvedSchema(t);return n==null?0:this.calcExampleHeuristic(n,r)}case"oneOf":return Object.values(t.value.schemas).map(i=>this.calcExampleHeuristic(i,r)).sort((i,o)=>o-i)[0]??0;case"primitive":return r==null?0:t.schema._visit({int:()=>typeof r=="number",int64:()=>typeof r=="number",uint:()=>typeof r=="number",uint64:()=>typeof r=="number",float:()=>typeof r=="number",double:()=>typeof r=="number",string:()=>typeof r=="string",datetime:()=>typeof r=="string",datetimeRfc2822:()=>typeof r=="string",date:()=>typeof r=="string",base64:()=>typeof r=="string",boolean:()=>typeof r=="boolean",_other:()=>!0})?1:-1;default:return 0}}hasExample(t,r,n=new Set,i){if(this.exceedsMaxCheckerDepth(r,i))return!1;switch(t.type){case"array":return this.hasExample(t.value,r+1,n,i);case"enum":return t.example!=null;case"literal":return!1;case"map":return t.example!=null||t.key.schema.example!=null&&this.hasExample(t.value,r+1,n,i);case"object":{if(t.fullExamples!=null&&t.fullExamples.length>0)return!0;for(let s of t.properties)if(this.hasExample(s.schema,r+1,n,i))return!0;return!1}case"primitive":return t.schema.example!=null;case"reference":{let o=this.schemas[t.schema];if(o!=null&&!n.has(t.schema)){n.add(t.schema);let s=this.hasExample(o,r,n,i);return n.delete(t.schema),s}return!1}case"unknown":return t.example!=null;case"nullable":case"optional":return this.hasExample(t.value,r,n,i);case"oneOf":return Object.values(t.value.schemas).some(o=>this.hasExample(o,r,n,i));default:return!1}}hasInherentExample(t){switch(t.type){case"literal":return!0;case"enum":return t.values.length>0;case"optional":case"nullable":return this.hasInherentExample(t.value);case"reference":{let r=this.schemas[t.schema];return r!=null?this.hasInherentExample(r):!1}default:return!1}}exceedsMaxCheckerDepth(t,r){return t>(r.maxCheckerDepth??0)}exceedsMaxDepth(t,r){return t>(r.maxDepth??0)}getAllProperties(t){let r={};for(let n of t.properties)r[n.key]={schema:n.schema,readonly:n.readonly??!1};for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let o=this.getResolvedSchema(i);o.type==="object"&&(r={...this.getAllProperties(o),...r})}return r}getAllRequiredProperties(t){let r={};for(let n of t.properties){let i=this.getResolvedSchema(n.schema);i.type!=="optional"&&i.type!=="nullable"&&(r[n.key]=n.schema)}for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let o=this.getResolvedSchema(i);o.type==="object"&&(r={...this.getAllRequiredProperties(o),...r})}return r}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new Error(`Unexpected error: Failed to resolve schema reference: ${t.schema}`);t=r}return t}getSchemaExample(t){return t._visit({primitive:r=>r.schema.example,object:r=>r.fullExamples?.[0]?.value,array:r=>r.example,map:r=>r.example,optional:r=>this.getSchemaExample(r.value),enum:r=>r.example,reference:r=>{let n=this.schemas[r.schema];return n!=null?this.getSchemaExample(n):void 0},literal:()=>{},oneOf:()=>{},nullable:r=>this.getSchemaExample(r.value),unknown:r=>r.example,_other:()=>{}})}buildExampleFromPrimitive({example:t,schema:r,options:n}){switch(r.type){case"string":return t!=null&&typeof t=="string"?As.string(t):r.example!=null?As.string(r.example):As.string(n.name??Co.STRING);case"base64":return t!=null&&typeof t=="string"?As.base64(t):r.example!=null?As.base64(r.example):As.base64(Co.BASE64);case"boolean":return t!=null&&typeof t=="boolean"?As.boolean(t):r.example!=null?As.boolean(r.example):As.boolean(Co.BOOLEAN);case"date":return t!=null&&typeof t=="string"?As.date(t):r.example!=null?As.date(r.example):As.date(Co.DATE);case"datetime":return t!=null&&typeof t=="string"?As.datetime(t):r.example!=null?As.datetime(r.example):As.datetime(Co.DATE_TIME);case"datetimeRfc2822":return t!=null&&typeof t=="string"?As.datetimeRfc2822(t):r.example!=null?As.datetimeRfc2822(r.example):As.datetimeRfc2822(Co.DATE_TIME);case"double":return t!=null&&typeof t=="number"?As.double(t):r.example!=null?As.double(r.example):As.double(Co.DOUBLE);case"float":return t!=null&&typeof t=="number"?As.float(t):r.example!=null?As.float(r.example):As.float(Co.FLOAT);case"int":return t!=null&&typeof t=="number"?As.int(t):r.example!=null?As.int(r.example):As.int(Co.INT);case"int64":return t!=null&&typeof t=="number"?As.int64(t):r.example!=null?As.int64(r.example):As.int64(Co.INT64);case"uint":return t!=null&&typeof t=="number"?As.uint(t):r.example!=null?As.uint(r.example):As.uint(Co.UINT);case"uint64":return t!=null&&typeof t=="number"?As.uint64(t):r.example!=null?As.uint64(r.example):As.uint64(Co.UINT64);default:Ue(r)}}};function Gil({schema:e,value:t}){return e.values.map(r=>r.value).includes(t)}pr();function Vue(e){switch(e.type){case"object":return Fn.object({allOf:e.allOf,properties:e.properties.map(t=>YDy(t)),allOfPropertyConflicts:e.allOfPropertyConflicts,description:e.description,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,namespace:e.namespace,groupName:e.groupName,fullExamples:void 0,additionalProperties:e.additionalProperties,availability:e.availability,source:e.source,inline:void 0,minProperties:e.minProperties,maxProperties:e.maxProperties});case"array":return Fn.array({description:e.description,availability:e.availability,value:Vue(e.value),generatedName:e.generatedName,title:e.title,namespace:e.namespace,nameOverride:e.nameOverride,groupName:e.groupName,example:void 0,inline:void 0,minItems:e.minItems,maxItems:e.maxItems});case"enum":return Fn.enum({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,values:e.values,default:e.default,namespace:e.namespace,groupName:e.groupName,example:void 0,source:e.source,inline:void 0});case"literal":return Fn.literal({description:e.description,availability:e.availability,value:e.value,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,namespace:e.namespace,groupName:e.groupName});case"nullable":return Fn.nullable({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:Vue(e.value),namespace:e.namespace,groupName:e.groupName,inline:void 0});case"optional":return Fn.optional({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:Vue(e.value),namespace:e.namespace,groupName:e.groupName,inline:void 0});case"primitive":return Fn.primitive({description:e.description,availability:e.availability,schema:Hil(e.schema),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,namespace:e.namespace,groupName:e.groupName});case"map":return Fn.map({description:e.description,availability:e.availability,key:Fn.primitive({description:e.key.description,availability:e.key.availability,schema:Hil(e.key.schema),generatedName:e.key.generatedName,nameOverride:e.key.nameOverride,title:e.key.title,namespace:e.namespace,groupName:e.groupName}),value:Vue(e.value),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,example:void 0,inline:void 0,minProperties:e.minProperties,maxProperties:e.maxProperties});case"reference":return Fn.reference({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,schema:e.schema,namespace:e.namespace,groupName:e.groupName,source:e.source});case"oneOf":return Fn.oneOf(JDy(e.value));case"unknown":return Fn.unknown({nameOverride:e.nameOverride,generatedName:e.generatedName,title:void 0,example:void 0,namespace:void 0,groupName:void 0,description:void 0,availability:void 0});default:Ue(e)}}function JDy(e){switch(e.type){case"discriminated":return TG.discriminated({commonProperties:e.commonProperties.map(t=>({key:t.key,schema:Vue(t.schema)})),description:e.description,availability:e.availability,discriminantProperty:e.discriminantProperty,discriminantPropertyNameOverride:e.discriminantPropertyNameOverride,discriminatorContext:e.discriminatorContext,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schemas:Object.fromEntries(Object.entries(e.schemas).map(([t,r])=>[t,Vue(r)])),namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,source:e.source,inline:void 0});case"undiscriminated":return TG.undiscriminated({description:e.description,availability:e.availability,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schemas:e.schemas.map(t=>Vue(t)),namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,source:e.source,inline:void 0});default:Ue(e)}}function Hil(e){switch(e.type){case"string":return No.string({default:e.default,pattern:e.pattern,format:e.format,minLength:e.minLength,maxLength:e.maxLength,example:void 0});case"base64":return No.base64({example:void 0});case"boolean":return No.boolean({default:e.default,example:void 0});case"date":return No.date({example:void 0});case"datetime":return No.datetime({example:void 0});case"datetimeRfc2822":return No.datetimeRfc2822({example:void 0});case"double":return No.double({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"float":return No.float({example:void 0});case"int":return No.int({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"int64":return No.int64({default:e.default,example:void 0});case"uint":return No.uint({default:void 0,example:void 0});case"uint64":return No.uint64({default:void 0,example:void 0});default:Ue(e)}}function YDy(e){return{conflict:e.conflict,generatedName:e.generatedName,key:e.key,schema:Vue(e.schema),audiences:e.audiences,nameOverride:e.nameOverride,availability:e.availability,readonly:e.readonly,writeonly:e.writeonly}}function fPn(e){return e.type!=="optional"&&e.type!=="nullable"}function xMs(e){return e==="POST"||e==="PUT"||e==="PATCH"}function $jr(e){if(e.type==="full")return e.request==null&&e.response==null&&e.queryParameters==null&&e.pathParameters==null&&e.headers==null;{let t=e.value;return t.request==null&&t.response==null&&t["query-parameters"]==null&&t["path-parameters"]==null&&t.headers==null}}var mPn=class{schemas;context;globalHeaders;exampleTypeFactory;logger;missingExamples=[];constructor(t,r,n){this.schemas=t,this.context=r,this.globalHeaders=n,this.schemas=t,this.exampleTypeFactory=new RGe(t,r.nonRequestReferencedSchemas,r),this.logger=r.logger}addMissingExampleRecord(t,r,n,i,o={}){this.missingExamples.push({endpoint:t.path,method:t.method.toUpperCase(),type:r,schemaType:n,reason:i,operationSummary:t.summary,operationDescription:t.description,schemaDescription:o.schemaDescription,autoGeneratedExample:o.autoGeneratedExample})}writeMissingExamplesLog(){if(this.missingExamples.length===0)return;let t;if(this.context.source.type==="openapi"){let o=this.context.source.file,s=Yvt.dirname(o),a=s;for(;a!==Yvt.dirname(a);){let c=Yvt.join(a,"fern");if(D4t.existsSync(c)&&D4t.statSync(c).isDirectory()){t=c;break}a=Yvt.dirname(a)}t||(t=s)}else t=process.cwd();let r=t??process.cwd(),n=Yvt.join(r,"schemas_missing_examples.txt"),i=["# Schemas Missing Examples Report",`# Generated on: ${new Date().toISOString()}`,`# Total missing examples: ${this.missingExamples.length}`,"",...this.missingExamples.flatMap(o=>{let s=[];if(s.push(`${o.method} ${o.endpoint} - ${o.type.toUpperCase()} (${o.schemaType}): ${o.reason}`),o.operationSummary&&s.push(` Operation: ${o.operationSummary}`),o.operationDescription&&o.operationDescription!==o.operationSummary&&s.push(` Description: ${o.operationDescription}`),o.schemaDescription&&s.push(` ${o.type==="request"?"Request":"Response"} Schema: ${o.schemaDescription}`),o.autoGeneratedExample){s.push(" Auto-generated example:");let c=JSON.stringify(o.autoGeneratedExample,null,4).split(`
|
|
1693
1693
|
`).map(u=>` ${u}`).join(`
|
|
1694
1694
|
`);s.push(c)}return s.push(""),s}),""].join(`
|
|
1695
|
-
`);try{D4t.writeFileSync(n,i,"utf8"),this.logger.info(`Missing examples report written to: ${n}`)}catch(o){this.logger.warn(`Failed to write missing examples report to ${n}:`,String(o))}}finalize(){}convertExampleToJson(t){switch(t.type){case"primitive":return t.value;case"array":return t.value.map(r=>this.convertExampleToJson(r));case"object":{let r={};return Object.entries(t.properties).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"map":{let r={};return t.value.forEach(n=>{r[String(n.key)]=this.convertExampleToJson(n.value)}),r}case"oneOf":if(t.value.type==="undiscriminated")return this.convertExampleToJson(t.value.value);{let r={};return Object.entries(t.value.value).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"enum":return t.value;case"literal":return t.value;case"null":return null;case"unknown":return this.convertExampleToJson(t.value);default:return t}}getSchemaDescription(t){if("description"in t)return t.description}getSchemaTypeName(t){switch(t.type){case"primitive":return`primitive (${t.schema.type})`;case"object":return t.generatedName||"object";case"array":return"array";case"map":return"map";case"optional":return`optional (${this.getSchemaTypeName(t.value)})`;case"nullable":return`nullable (${this.getSchemaTypeName(t.value)})`;case"reference":return t.generatedName||"reference";case"enum":return t.generatedName||"enum";case"literal":return"literal";case"oneOf":return"oneOf";case"unknown":return"unknown";default:return"unknown"}}buildEndpointExample(t){let r=ZDy(t.request),n=eRy(t.response);if(r?.type==="unsupported"||n?.type==="unsupported")return[];let i=[];if(r!=null&&r.type==="present"){let p=this.isSchemaRequired(r.schema);if(r.examples.length===0){let m=this.exampleTypeFactory.buildExample({skipReadonly:xMs(t.method),schema:r.schema,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});m!=null?(i.push([void 0,m]),this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(r.schema),autoGeneratedExample:this.convertExampleToJson(m)})):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(r.schema)})}else for(let{name:m,value:f}of r.examples){let h=this.exampleTypeFactory.buildExample({skipReadonly:xMs(t.method),schema:r.schema,exampleId:m,example:f,options:{isParameter:!1,ignoreOptionals:!0}});h!=null?i.push([m,h]):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),`Failed to build example from provided data (example id: ${m})`,{schemaDescription:this.getSchemaDescription(r.schema)})}if(p&&i.length===0)return this.logger.trace(`Failed to generate required request example for ${t.method.toUpperCase()} ${t.path}`),[]}let o=[];if(n!=null&&n.type==="present"){let p=this.isSchemaRequired(n.schema);if(n.examples.length===0){let m=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:void 0,example:void 0,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});m!=null?(t.response?.type==="json"?o.push([void 0,LJ.withoutStreaming(m)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,LJ.withStreaming({sse:t.response?.type==="streamingSse",events:[m]})]),this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(n.schema),autoGeneratedExample:this.convertExampleToJson(m)})):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(n.schema)})}else for(let{name:m,value:f}of n.examples){let h=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:m,example:f,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});h!=null?t.response?.type==="json"?o.push([m,LJ.withoutStreaming(h)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,LJ.withStreaming({sse:t.response?.type==="streamingSse",events:[h]})]):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),`Failed to build example from provided data (example id: ${m})`,{schemaDescription:this.getSchemaDescription(n.schema)})}if(p&&o.length===0)return this.logger.trace(`Failed to generate required response example for ${t.method.toUpperCase()} ${t.path}`),[]}let s=[];for(let p of t.pathParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for path parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&s.push({name:p.name,parameterNameOverride:p.parameterNameOverride,value:f})}let a=[];for(let p of t.queryParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for query parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&a.push({name:p.name,value:f})}let c=[];for(let p of t.headers){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for header ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&c.push({name:p.name,value:f})}for(let p of this.globalHeaders){let m=p.schema!=null?Vue(p.schema):Fn.primitive({nameOverride:void 0,generatedName:"",title:void 0,description:void 0,availability:void 0,namespace:void 0,groupName:void 0,schema:No.string({default:void 0,pattern:void 0,maxLength:void 0,minLength:void 0,example:void 0,format:void 0})}),f=this.exampleTypeFactory.buildExample({schema:m,exampleId:void 0,example:void 0,options:{name:p.header,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for global header ${p.header} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),f!=null&&c.push({name:p.header,value:f})}let u=[];t.request!=null&&t.response!=null?u=XDy(i,o):t.request!=null?u=i.map(([p,m])=>({id:p,request:m,response:void 0})):t.response!=null&&(u=o.map(([p,m])=>({id:p,request:void 0,response:m})));let l=t.examples.filter(p=>$jr(p)).flatMap(p=>{if(p.type==="unknown"){if(p.value!=null){let m=p.value["code-samples"];if(m!=null)return this.convertCodeSamples(m)}return}else return p.codeSamples}).filter(p=>tu(p));return u.length===0?[UJ.full({name:void 0,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:void 0,response:void 0,codeSamples:l})]:u.map(({id:p,request:m,response:f})=>UJ.full({name:p,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:m,response:f,codeSamples:l}))}convertCodeSamples(t){return t.map(r=>"language"in r?F_e.language({name:r.name??void 0,description:r.docs??void 0,language:r.language,code:r.code,install:r.install??void 0}):F_e.sdk({name:r.name??void 0,description:r.docs??void 0,sdk:r.sdk==="c#"?FR.Csharp:r.sdk,code:r.code})).filter(tu)}isSchemaRequired(t){return fPn(this.getResolvedSchema(t))}getResolvedSchema(t){return t}};function XDy(e,t){let r=[];if(e.length<=1){let[i,o]=e[0]??[];if(t.length===0)return r.push({id:i,request:o,response:void 0}),r;for(let[s,a]of t)r.push({id:s??i,request:o,response:a});return r}if(t.length<=1){let[i,o]=t[0]??[];if(t.length===0)return r.push({id:i,request:void 0,response:o}),r;for(let[s,a]of e)r.push({id:s??i,request:a,response:o});return r}let n=new Set;for(let[i,o]of e){let s=t.find(([c])=>c==null)?.[1]??t[0]?.[1];if(i==null){if(s==null)continue;r.push({id:void 0,request:o,response:s});continue}let a=!1;for(let c=0;c<t.length;c++){let[u,l]=t[c];u==null||n.has(c)||i===u&&(r.push({id:i,request:o,response:l}),u!=null&&n.add(c),a=!0)}!a&&s!=null&&r.push({id:i,request:o,response:s})}for(let i=0;i<t.length;i++){if(n.has(i))continue;let[o,s]=t[i],a=e.find(([c])=>c==null)?.[1]??e[0]?.[1];a!=null&&r.push({id:o,request:a,response:s})}return r}function ZDy(e){if(e!=null)return e.type==="multipart"?{type:"present",schema:tRy(e),examples:[]}:e.type==="json"||e.type==="formUrlEncoded"?{type:"present",schema:e.schema,examples:e.fullExamples??[]}:{type:"unsupported"}}function eRy(e){if(e!=null)return e.type!=="json"&&e.type!=="streamingJson"&&e.type!=="streamingSse"?{type:"unsupported"}:{type:"present",schema:e.schema,examples:e.fullExamples??[]}}function Uue(e){switch(e.type){case"primitive":case"enum":case"literal":return!0;case"unknown":return Uue(e);case"array":case"object":case"map":return!1;case"oneOf":switch(e.value.type){case"discriminated":return!1;case"undiscriminated":return Uue(e.value.value);default:return!1}case"null":return!0;default:Ue(e)}}function tRy(e){return Fn.object({properties:e.properties.map(t=>t.schema.type==="file"?null:{key:t.key,schema:Vue(t.schema.value),audiences:[],conflict:{},generatedName:t.key,nameOverride:void 0,availability:void 0,readonly:void 0,writeonly:void 0,inline:void 0}).filter(tu),allOf:[],allOfPropertyConflicts:[],fullExamples:void 0,description:e.description,nameOverride:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,additionalProperties:!1,availability:void 0,source:e.source,inline:void 0,minProperties:void 0,maxProperties:void 0})}var R4t=class{exampleTypeFactory;schemas;constructor(t,r){this.exampleTypeFactory=new RGe(t,new Set,r),this.schemas=t}buildWebsocketSessionExamplesForExtension({context:t,extensionExamples:r,handshake:n,source:i,namespace:o}){let s=[];for(let a of r){let c=[];for(let p of n.queryParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.queryParameters?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(f=void 0),!(m&&f==null)&&f!=null&&c.push({name:p.name,value:f})}let u=[];for(let p of n.headers){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.headers?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(f=void 0),!(m&&f==null)&&f!=null&&u.push({name:p.name,value:f})}let l=[];for(let p of a.messages){let m=t.getExampleMessageReference(p),f=t.resolveMessageReference({$ref:m}),h=yo(f.payload)?t.resolveSchemaReference(f.payload):f.payload,g=this.exampleTypeFactory.buildExample({schema:Nl(h,!1,!1,t,[p.messageId],i,o),exampleId:void 0,example:p.value,options:{isParameter:!1,ignoreOptionals:!0}});g!=null&&l.push({messageType:p.type,payload:g,description:void 0})}s.push({name:a.summary,queryParameters:c,headers:u,description:a.description,messages:l})}return s}buildWebsocketSessionExample({handshake:t,messages:r}){let n={name:void 0,queryParameters:[],headers:[],description:void 0,messages:[]},i=[];for(let s of t.queryParameters){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!Uue(c)&&(c=void 0),a&&c==null)return;c!=null&&i.push({name:s.name,value:c})}let o=[];for(let s of t.headers){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!Uue(c)&&(c=void 0),a&&c==null)return;c!=null&&o.push({name:s.name,value:c})}for(let s of r){let a=this.exampleTypeFactory.buildExample({schema:s.payload,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});a!=null&&n.messages.push({messageType:s.type,payload:a,description:void 0})}return n}isSchemaRequired(t){return fPn(this.getResolvedSchema(t))}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new Error(`Unexpected error: Failed to resolve schema reference: ${t.schema}`);t=r}return t}};var H1={FERN_PARAMETER_OPTIONAL:"x-fern-optional",FERN_CHANNEL_ADDRESS:"x-fern-address",FERN_DISPLAY_NAME:"x-fern-display-name",FERN_SDK_GROUP_NAME:"x-fern-sdk-group-name",FERN_SDK_METHOD_NAME:"x-fern-sdk-method-name",FERN_EXAMPLES:"x-fern-examples",BASE_PATH:"x-fern-base-path",FERN_ENUM:"x-fern-enum",IGNORE:"x-fern-ignore",FERN_PARAMETER_NAME:"x-fern-parameter-name"};function dPn(e){return Jn(e,H1.FERN_EXAMPLES)??[]}function hPn(e,t){return t.includes("://")?t:`${e}://${t}`}function gPn(e){return e.startsWith("/")?e:"/"+e}function Jil({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){let o={},s={};for(let[u,l]of Object.entries(i.components?.schemas??{})){let p=Nl(l,!1,!1,e,[u],r,e.namespace);o[u]=p}let a=new R4t(o,e),c={};for(let[u,l]of Object.entries(i.servers??{}))c[u]={name:u,url:hPn(l.protocol,l.url)};for(let[u,l]of Object.entries(i.channels??{})){let p=Jn(l,H1.IGNORE);if(p!=null&&p){e.logger.debug(`Channel ${u} is marked with x-fern-ignore. Skipping.`);continue}let m=[];if(l.parameters!=null)for(let[A,b]of Object.entries(l.parameters??{})){let v=Jn(b,H1.FERN_PARAMETER_NAME);m.push({name:A,description:b.description,parameterNameOverride:v,schema:b.schema!=null?Nl(b.schema,!1,!1,e,t,r,e.namespace):Fn.primitive({schema:No.string({default:void 0,pattern:void 0,format:void 0,maxLength:void 0,minLength:void 0,example:void 0}),description:void 0,availability:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}),variableReference:void 0,availability:yQ(b),source:r,explode:void 0})}let f=[],h=[];if(l.bindings?.ws!=null){if(l.bindings.ws.headers!=null){let A=l.bindings.ws.headers.required??[];for(let[b,v]of Object.entries(l.bindings.ws.headers.properties??{})){if(yo(v)){let P=e.resolveSchemaReference(v),x=A.includes(b),[I,F]=e.options.coerceOptionalSchemasToNullable?[!1,!x]:[!x,!1];f.push({name:b,schema:Que(v,I,F,e,t,void 0,r,e.namespace),description:P.description,parameterNameOverride:void 0,env:void 0,availability:yQ(P),source:r});continue}let _=A.includes(b),[O,E]=e.options.coerceOptionalSchemasToNullable?[!1,!_]:[!_,!1];f.push({name:b,schema:Nl(v,O,E,e,[...t,b],r,e.namespace),description:v.description,parameterNameOverride:void 0,env:void 0,availability:yQ(v),source:r})}}if(l.bindings.ws.query!=null){let A=l.bindings.ws.query.required??[];for(let[b,v]of Object.entries(l.bindings.ws.query.properties??{})){if(yo(v)){let P=e.resolveSchemaReference(v),x=A.includes(b),[I,F]=e.options.coerceOptionalSchemasToNullable?[!1,!x]:[!x,!1];h.push({name:b,schema:Que(v,I,F,e,t,void 0,r,e.namespace),description:P.description,parameterNameOverride:void 0,availability:yQ(P),source:r,explode:void 0});continue}let _=A.includes(b),[O,E]=e.options.coerceOptionalSchemasToNullable?[!1,!_]:[!_,!1];h.push({name:b,schema:Nl(v,O,E,e,[...t,b],r,e.namespace),description:v.description,parameterNameOverride:void 0,availability:yQ(v),source:r,explode:void 0})}}}let g;l.publish!=null&&("oneOf"in l.publish.message?g=$il({generatedName:l.publish.operationId??"PublishEvent",event:l.publish,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):g=Kil({action:"Publish",channelPath:u,message:l.publish.message,context:e,source:r}));let y;if(l.subscribe!=null&&("oneOf"in l.subscribe.message?y=$il({generatedName:l.subscribe.operationId??"SubscribeEvent",event:l.subscribe,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):y=Kil({action:"Subscribe",channelPath:u,message:l.subscribe.message,context:e,source:r})),f.length>0||h.length>0||g!=null||y!=null){let A=dPn(l),b=[];if(A.length>0)b=a.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:A,handshake:{headers:f,queryParameters:h},source:r,namespace:e.namespace});else{let E=[];g!=null&&E.push({type:"publish",payload:g}),y!=null&&E.push({type:"subscribe",payload:y});let P=a.buildWebsocketSessionExample({handshake:{headers:f,queryParameters:h},messages:E});P!=null&&b.push(P)}let v=Jn(l,H1.FERN_CHANNEL_ADDRESS),_=v??gPn(u),O=[];g!=null&&O.push({origin:"client",name:"publish",body:hb(g),methodName:void 0}),y!=null&&O.push({origin:"server",name:"subscribe",body:hb(y),methodName:void 0}),s[u]={audiences:Jn(l,Ii.AUDIENCES)??[],handshake:{headers:f.map(E=>({...E,schema:hb(E.schema),env:E.env})),queryParameters:h.map(E=>({...E,schema:hb(E.schema)})),pathParameters:m.map(E=>({...E,schema:hb(E.schema)}))},groupName:e.resolveGroupName([Jn(l,H1.FERN_SDK_GROUP_NAME)??u]),messages:O,servers:(l.servers?.map(E=>c[E])??Object.values(c)).filter(E=>E!=null&&E.name!=null).map(E=>({...E,name:E.name})),summary:Jn(l,H1.FERN_DISPLAY_NAME),connectMethodName:Jn(l,H1.FERN_SDK_METHOD_NAME),path:_,description:l.description,examples:b,source:r}}}return{groupedSchemas:T4t(e.namespace,o),channels:s??void 0,servers:Object.values(c).map(u=>({...u,name:u.name})),basePath:Jn(i,H1.BASE_PATH)}}function $il({generatedName:e,event:t,context:r,breadcrumbs:n,source:i,options:o,asyncApiOptions:s}){if("oneOf"in t.message&&t.message.oneOf!=null){let a=[],c=[];for(let u of t.message.oneOf){let l,p={type:"notFound"};if(yo(u)){let m=r.resolveMessageReference(u);!yo(m.payload)&&s.naming==="v2"?(p=m.name?{type:"name",name:m.name}:p,l={...m.payload,title:m.name??m.payload.title,description:m.name??m.payload.description}):l=m.payload}else l=u;c.push(p),a.push(l)}return TGe({description:t.description??t.message.description,availability:yQ(t.message),subtypes:a,nameOverride:t.operationId,generatedName:e,title:t.message.title,groupName:void 0,wrapAsOptional:!1,wrapAsNullable:!1,breadcrumbs:n,context:r,encoding:void 0,source:i,namespace:r.namespace,subtypeSuffixOverrides:s.naming==="v2"?c:[]})}}function Kil({action:e,channelPath:t,message:r,context:n,source:i}){if(r.payload!=null){let o=r.payload;return yo(r.payload)&&(o=n.resolveSchemaReference(r.payload)),Nl(o,!1,!1,n,[t,e],i,n.namespace)}}var yPn=class extends B4t{getExampleMessageReference(t){let r=t.channelId??this.getDefaultChannelId();if(r==null)throw new Error("Cannot resolve example message reference: no channelId provided and no channels found in document");return`#/channels/${r}/messages/${t.messageId}`}getDefaultChannelId(){return Object.keys(this.document.channels??{})[0]}resolveParameterReference(t){let r="#/components/parameters/";if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(r))throw new Error(`Failed to resolve ${t.$ref}`);let n=t.$ref.substring(r.length),i=this.document.components.parameters[n];if(i==null)throw new Error(`${t.$ref} is undefined`);return"$ref"in i?this.resolveParameterReference(i):i}resolveMessageReference(t,r=!1){let n="#/channels/",i="#/components/messages/";if(t==null)throw new Error("Cannot resolve message reference: message is null or undefined");if(!t.$ref)throw new Error("Cannot resolve message reference: message.$ref is undefined or empty");if(t.$ref.startsWith(n)){let c=t.$ref.split("/"),u=c[2],l=c[4],p=u?.replace(/~1/g,"/").replace(/~0/g,"~");if(p==null||l==null||!this.document.channels?.[p])throw new Error(`Failed to resolve message reference ${t.$ref} in channel ${p}`);let f=this.document.channels[p].messages?.[l];if(f==null)throw new Error(`${t.$ref} is undefined`);return"$ref"in f&&!r?this.resolveMessageReference(f):{...f,name:l}}let o=this.document.components;if(!t.$ref.startsWith(i)||!o?.messages)throw new Error(`Failed to resolve message reference: ${t.$ref} in v3 components`);let s=t.$ref.substring(i.length),a=o.messages[s];if(a==null)throw new Error(`${t.$ref} is undefined`);return{...a,name:s}}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}};Ni();var Yil="#/channels/",Xil="#/servers/",PMs="$message.";function eol({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){lPn();let o={},s={},a={},c=[],u={};e.logger.debug("Parsing V3 AsyncAPI...");let l=L_e();for(let[P,x]of Object.entries(i.components?.schemas??{})){let I=l.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);o[I]=Nl(x,!1,!1,e,[I],r,e.namespace)}for(let[P,x]of Object.entries(i.channels??{}))if(s[P]||(s[P]={}),x.messages)for(let[I,F]of Object.entries(x.messages))if(a[I]||(a[I]=[]),e.isReferenceObject(F)){let q=e.resolveMessageReference(F);a[I].push({channelId:P,payload:q.payload})}else e.isMessageWithPayload(F)&&a[I].push({channelId:P,payload:F.payload});for(let[P,x]of Object.entries(a))if(x.length===1){let I=x[0],F=I.channelId;s[F]=s[F]||{},s[F][P]=Nl(I.payload,!1,!1,e,[P],r,e.namespace)}else{c.push(P);for(let{channelId:I,payload:F}of x){let q=`${I}_${P}`;s[I]||(s[I]={}),s[I][q]=Nl(F,!1,!1,e,[q],r,e.namespace)}}let p={},m=L_e();for(let[P,x]of Object.entries(s))for(let[I,F]of Object.entries(x)){let q=m.getUniqueSchemaId(I,e.logger,e.options.resolveSchemaCollisions);p[q]=F}let f=new R4t({...o,...p},e),h={};for(let[P,x]of Object.entries(i.servers??{}))h[P]={name:P,url:hPn(x.protocol,x.host)};let g={},y=Object.keys(i.channels??{});for(let[P,x]of Object.entries(i.operations??{})){if(Jn(x,H1.IGNORE))continue;let I;if(x.channel==null||!("$ref"in x.channel)||x.channel.$ref==null)if(y.length===1&&y[0]!=null)I=y[0];else continue;else I=nRy(x);g[I]||(g[I]={subscribe:[],publish:[],__parsedMessages:[]});let F=Jn(x,H1.FERN_SDK_METHOD_NAME);if(!x.messages||!Array.isArray(x.messages))continue;let q=x.messages.filter($=>$!=null&&$.$ref!=null).map($=>({ref:$,methodName:F})),W=g[I];if(W==null)throw new Error(`Internal error: channelEvents["${I}"] is unexpectedly undefined for operation ${P}`);if(x.action==="receive")W.subscribe.push(...q);else if(x.action==="send")W.publish.push(...q);else throw new Error(`Operation ${P} has an invalid action: ${x.action}`)}for(let[P,x]of Object.entries(g)){let I=[];I.push(...Zil({messages:x.subscribe,channelPath:P,origin:"server",messageSchemas:s[P]??{},duplicatedMessageIds:c,context:e})),I.push(...Zil({messages:x.publish,channelPath:P,origin:"client",messageSchemas:s[P]??{},duplicatedMessageIds:c,context:e})),g[P]!=null&&(g[P].__parsedMessages=I)}for(let[P,x]of Object.entries(i.channels??{})){if(Jn(x,H1.IGNORE))continue;let I=[],F=[],q=[];if(x.parameters!=null)for(let[W,$]of Object.entries(x.parameters)){let re=e.isReferenceObject($)?e.resolveParameterReference($):$,{type:ce,parameterKey:G}=re.location!=null?iRy(re.location):{type:x.address?.includes(`={${W}}`)?"query":"path",parameterKey:W},ee=Jn(re,H1.FERN_PARAMETER_OPTIONAL),We=wd(ao(P))+wd(ao(W)),$e=re.schema!=null?yo(re.schema)?Que(re.schema,!1,!1,e,[G],void 0,r,e.namespace):Nl(re.schema,!1,!1,e,[G],r,e.namespace):Nl({...re,type:"string",title:We,example:re.examples?.[0],default:re.default,enum:re.enum,required:void 0},!1,!1,e,[G],r,e.namespace),Z=ee?Fn.optional({value:$e,description:void 0,availability:void 0,generatedName:"",title:We,namespace:void 0,groupName:void 0,nameOverride:void 0,inline:void 0}):$e,X={name:G,description:re.description,parameterNameOverride:void 0,schema:Z,variableReference:void 0,availability:yQ($),source:r,explode:void 0};ce==="header"?I.push({...X,env:void 0}):ce==="path"?F.push(X):(ce==="payload"||ce==="query")&&q.push(X)}if(I.length>0||q.length>0||g[P]!=null&&(g[P].publish!=null||g[P].subscribe!=null)){let W=dPn(x),$=g[P]?.__parsedMessages??[],re=[];try{if(W.length>0)re=f.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:W,handshake:{headers:I,queryParameters:q},source:r,namespace:e.namespace});else{let $e=[],{examplePublishMessage:Z,exampleSubscribeMessage:X}=sRy({messages:$,messageSchemas:s[P]??{}});Z!=null&&$e.push(Z),X!=null&&$e.push(X);let Ne=f.buildWebsocketSessionExample({handshake:{headers:I,queryParameters:q},messages:$e});Ne!=null&&re.push(Ne)}}catch($e){e.logger.warn(`Failed to build examples for channel ${P}: ${$e instanceof Error?$e.message:String($e)}`)}let ce=Jn(x,H1.FERN_SDK_GROUP_NAME),G=Jn(x,H1.FERN_SDK_METHOD_NAME),ee=(x.servers?.map($e=>oRy(h,$e))??Object.values(h)).map($e=>({...$e,name:$e.name})),We=x.address?.split("?")[0]??gPn(P);u[P]={audiences:Jn(x,Ii.AUDIENCES)??[],handshake:{headers:I.map($e=>({...$e,schema:hb($e.schema),env:$e.env})),queryParameters:q.map($e=>({...$e,schema:hb($e.schema)})),pathParameters:F.map($e=>({...$e,parameterNameOverride:void 0,schema:hb($e.schema)}))},groupName:e.resolveGroupName(typeof ce=="string"?[ce]:ce??[P]),messages:$,summary:Jn(x,H1.FERN_DISPLAY_NAME),connectMethodName:G,servers:ee,path:We,description:x.description,examples:re,source:r}}else e.logger.warn(`Skipping AsyncAPI channel ${P} as it does not qualify for inclusion (no headers, query params, or operations)`)}let A={...o,...p},b={},v=L_e();for(let[P,x]of Object.entries(A)){let I=v.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);b[I]=hb(x)}let _=T4t(e.namespace,o),O=Object.values(h).map(P=>({...P,name:P.name})),E=Jn(i,H1.BASE_PATH);return{groupedSchemas:_,channels:u,servers:O,basePath:E}}function rRy(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function nRy(e){if(!e.channel)throw new Error("Operation is missing required 'channel' field");if(!e.channel.$ref)throw new Error("Operation channel is missing required '$ref' field");if(!e.channel.$ref.startsWith(Yil))throw new Error(`Failed to resolve channel path from operation ${e.channel.$ref}`);return rRy(e.channel.$ref.substring(Yil.length))}function iRy(e){try{let[t,r]=e.split("#/");if(t==null||r==null)throw new Error(`Invalid location format: ${e}; unable to parse message type and parameter key`);if(!t.startsWith(PMs))throw new Error(`Invalid location format: ${e}; expected ${PMs} prefix`);let n=t.substring(PMs.length);if(n!=="header"&&n!=="path"&&n!=="payload")throw new Error(`Invalid message type: ${n}. Must be one of: header, path, payload`);return{type:n,parameterKey:r}}catch{throw new Error(`Invalid location format: ${e}; see here for more details: https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression`)}}function oRy(e,t){if(!t.$ref.startsWith(Xil))throw new Error(`Failed to resolve server name from server ref ${t.$ref}`);let r=t.$ref.substring(Xil.length),n=e[r];if(n==null)throw new Error(`Failed to find server with name ${r}`);return n}function Zil({messages:e,channelPath:t,origin:r,messageSchemas:n,duplicatedMessageIds:i,context:o}){let s=[];return e.forEach((a,c)=>{try{let l=o.resolveMessageReference(a.ref,!0).name;i.includes(l)&&(l=`${t}_${l}`);let p=n[l];p!=null&&s.push({origin:r,name:l??`${r}Message${c+1}`,body:hb(p),methodName:a.methodName})}catch(u){o.logger.warn(`Skipping message reference ${a.ref.$ref} in channel ${t}: ${u instanceof Error?u.message:String(u)}`)}}),s}function sRy({messages:e,messageSchemas:t}){let r=e.find(s=>s.origin==="client")?.name,n=e.find(s=>s.origin==="server")?.name,i=r!=null?t[r]:void 0,o=n!=null?t[n]:void 0;return{examplePublishMessage:i!=null&&r!=null?{type:r,payload:i}:void 0,exampleSubscribeMessage:o!=null&&n!=null?{type:n,payload:o}:void 0}}function tol({document:e,taskContext:t,options:r,source:n,asyncApiOptions:i,namespace:o}){let s=[];if(o!=null&&s.push(o),parseFloat(e.asyncapi)<3){let a=e;a.tags?.[0]!=null?s.push(a.tags[0].name):i.naming!=="v2"&&s.push("websocket");let c=new pPn({document:a,taskContext:t,options:r,namespace:o});return Jil({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}else{let a=e,c=new yPn({document:a,taskContext:t,options:r,namespace:o});return eol({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}}pr();Ni();Ni();function rol(e){return Jn(e,Ii.ASYNC_CONFIG)}var nol="$request.";function iol(e){let t=Jn(e,Ii.STREAMING);if(t!=null)return typeof t=="boolean"?t?{type:"stream",format:"json",terminator:void 0}:void 0:t["stream-condition"]==null&&t.format!=null?{type:"stream",format:t.format,terminator:t.terminator}:{type:"streamCondition",format:t.format??"json",terminator:t.terminator,streamDescription:t["stream-description"],streamConditionProperty:aRy(t["stream-condition"]),responseStream:t["response-stream"],response:t.response}}function aRy(e){return e.startsWith(nol)?e.slice(nol.length):e}function ool(e){let t=e;if(t.cursor!=null)return W1.cursor({cursor:t.cursor,nextCursor:t.next_cursor,results:t.results});let r=e;if("next_uri"in r)return W1.uri({nextUri:r.next_uri,results:r.results});let n=e;if("next_path"in n)return W1.path({nextPath:n.next_path,results:n.results});if("offset"in e){let i=e;return W1.offset({offset:i.offset,results:i.results,step:i.step,hasNextPage:i["has-next-page"]})}if("type"in e&&e.type==="custom"){let i=e;return W1.custom({results:i.results})}throw new Error("Invalid pagination extension")}function sol(e,t){let r=Jn(t,Ii.PAGINATION);if(r!=null){if(typeof r=="boolean"){let n=Jn(e,Ii.PAGINATION);if(typeof n=="boolean")throw new Error("Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.");return n==null?void 0:ool(n)}return ool(r)}}function aol(e,t){for(let r of Object.keys(e))if(r.includes("text/event-stream")){let n=e[r];if(n==null)continue;let i=n,o=n.schema??i.itemSchema;return{contentType:r,schema:o??{},examples:F4t(n,t)}}}function col(e){for(let t of Object.keys(e))if(t.includes("text/event-stream")){let r=e[t];if(r==null)continue;if(r.itemSchema!=null)return!0}return!1}function cRy(e){return e.includes("json")||e==="*/*"}function IMs({content:e,context:t}){for(let[r,n]of Object.entries(e))if(APn({mediaType:r,mediaTypeObject:n,context:t})!=null)return[r,n]}function APn({mediaType:e,mediaTypeObject:t,context:r}){if(!cRy(e))return;let n=t.schema;return{contentType:e.includes("*")?void 0:e,schema:n??{},examples:F4t(t,r)}}function bPn({content:e,context:t}){let r=IMs({content:e,context:t});if(!r)return;let[n,i]=r;return APn({mediaType:n,mediaTypeObject:i,context:t})}function uol(e,t){for(let r of Object.keys(e)){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:F4t(n,t)}}}function F4t(e,t){let r=[];e.example!=null&&r.push({name:void 0,value:e.example,description:void 0});let n=Jn(e,jz.EXAMPLES);return n!=null&&Object.keys(n).length>0&&r.push(...Object.entries(n).map(([i,o])=>({name:o.summary??i,value:o.value,description:o.description}))),e.examples!=null&&Object.keys(e.examples).length>0&&r.push(...Object.entries(e.examples).map(([i,o])=>{let s=yo(o)?t.resolveExampleReference(o):o;return{name:s.summary??i,value:s.value,description:s.description}})),r}pr();pr();function lol(e){let t=uRy(e),r={};return CMs({obj:t,occurrences:r,breadcrumbs:[]}),r}function CMs({obj:e,occurrences:t,breadcrumbs:r}){if(e!=null){if(Array.isArray(e)){for(let n of e)CMs({obj:n,occurrences:t,breadcrumbs:r});return}if(typeof e=="object"){if(e.$ref!=null&&typeof e.$ref=="string"){let n=e.$ref;t[n]==null?t[n]=1:t[n]+=1;return}for(let n in e)CMs({obj:e[n],occurrences:t,breadcrumbs:[...r,n]})}}}function uRy(e){return{...e,paths:Object.fromEntries(Object.entries(e.paths??{}).map(([t,r])=>[t,{...r,get:r?.get!=null?Kjr(r.get):void 0,put:r?.put!=null?Kjr(r.put):void 0,post:r?.post!=null?Kjr(r.post):void 0,patch:r?.patch!=null?Kjr(r.patch):void 0,delete:r?.delete!=null?Kjr(r.delete):void 0}]))}}function Kjr(e){return{...e,requestBody:e.requestBody!=null?yo(e.requestBody)?e.requestBody:lRy(e.requestBody):void 0}}function lRy(e){let t,r;for(let n in e.content){let i=ib.parse(n);i!=null&&(i.isJSON()?t=e.content[n]:i.isMultipart()&&(r=e.content[n]))}return r!=null&&t!=null?{...e,content:{[ib.MULTIPART_FORM_DATA]:r}}:e}var _Pn=class{endpoints;parser=new lMe;constructor({context:t,options:r}){this.endpoints=r.filter?.endpoints?new Set(this.validateAndFilterEndpoints({context:t,endpoints:r.filter.endpoints})):void 0}skipEndpoint({method:t,path:r}){return this.endpoints!=null&&!this.endpoints.has(`${t} ${r}`)}hasEndpoints(){return this.endpoints!=null}validateAndFilterEndpoints({context:t,endpoints:r}){let n=[];for(let i of r){let o=this.parser.tryParse(i);if(o==null){t.logger.debug(`Ignoring configured filter endpoint "${i}"; expected format "POST /users/get"`);continue}n.push(`${o.method} ${o.path}`)}return n}};var pol="#/components/parameters/",fol="#/components/responses/",mol="#/components/examples/",dol="#/components/requestBodies/",hol="#/components/securitySchemes/",N4t=class{logger;document;taskContext;authHeaders;refOccurrences;DUMMY;options;source;filter;namespace;schemaNamespaceMapping;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){this.document=t,this.logger=r.logger,this.taskContext=r,this.authHeaders=n,this.refOccurrences=lol(t),this.options=i,this.source=o,this.filter=new _Pn({context:r,options:i}),this.DUMMY=this.getDummy(),this.namespace=s,this.schemaNamespaceMapping=this.buildSchemaNamespaceMapping()}getNumberOfOccurrencesForRef(t){return this.refOccurrences[t.$ref]??0}resolveTagsToTagIds(t){let r=[];return this.namespace!=null&&r.push(this.namespace),r.concat(t??[])}resolveTags(t){let r=[];if(this.namespace!=null){let n={type:"namespace",name:this.namespace};r.push(n)}return r.concat(t??[])}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveSchemaReference(t){let r=t.$ref.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return{"x-fern-type":"unknown"};if(Array.isArray(n)){let o=parseInt(i,10);if(isNaN(o)||o<0||o>=n.length)return{"x-fern-type":"unknown"};n=n[o]}else n=n[i]}return n==null?(this.logger.debug(`Encountered undefined reference: ${t.$ref}`),{"x-fern-type":"unknown"}):(yo(n)&&(n=this.resolveSchemaReference(n)),n)}resolveParameterReference(t){if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(pol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(pol.length),n=this.document.components.parameters[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveParameterReference(n):n}resolveRequestBodyReference(t){if(this.document.components==null||this.document.components.requestBodies==null||!t.$ref.startsWith(dol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(dol.length),n=this.document.components.requestBodies[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveRequestBodyReference(n):n}resolveResponseReference(t){if(this.document.components==null||this.document.components.responses==null||!t.$ref.startsWith(fol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(fol.length),n=this.document.components.responses[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveResponseReference(n):n}resolveExampleReference(t){if(this.document.components==null||this.document.components.examples==null||!t.$ref.startsWith(mol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(mol.length),n=this.document.components.examples[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveExampleReference(n):n}resolveSecuritySchemeReference(t){if(this.document.components==null||this.document.components.securitySchemes==null||!t.$ref.startsWith(hol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(hol.length),n=this.document.components.securitySchemes[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveSecuritySchemeReference(n):n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}getNamespace(t){return this.schemaNamespaceMapping?.get(t)}buildSchemaNamespaceMapping(){let t=new Map;if(!this.document.components?.schemas)return t;for(let[r,n]of Object.entries(this.document.components.schemas))!n||yo(n)||t.set(r,Jn(n,Ii.SDK_NAMESPACE)||this.namespace);return t}};var Xvt=class extends N4t{constructor({document:t,taskContext:r,options:n,source:i,namespace:o}){super({document:t,taskContext:r,authHeaders:new Set,options:n,source:i,namespace:o})}getDummy(){return this}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}getReferencedSchemas(){return new Set}markReferencedByDiscriminatedUnion(t,r,n){}getReferencesFromDiscriminatedUnion(t){}excludeSchema(t){}isSchemaExcluded(t){return!1}markSchemaWithDiscriminantValue(t,r,n){}getDiscriminatedUnionMetadata(t){}};pr();var vPn=require("fs"),OPn=require("path");var pRy=Zt.object({lang:Zt.string(),label:Zt.optional(Zt.string()),source:Zt.string()}),SMs=Zt.array(pRy);pr();var gol={README_EXT:"x-readme"};function fRy(e){if(!Array.isArray(e))return!1;for(let t of e)if(!Lu(t)||typeof t.language!="string"||typeof t.code!="string")return!1;return!0}function yol(e){let t=Jn(e,gol.README_EXT);if(!Lu(t))return[];let r=t["code-samples"];if(!fRy(r))return[];let n=[];for(let i of r)n.push({name:i.name,language:i.language,code:i.code,install:i.install,docs:void 0});return n}function mRy(e){return Lu(e)&&typeof e.$ref=="string"}function dRy(e,t){if(e!=null){if(typeof e=="string")return e;if(mRy(e)){let r=(0,OPn.resolve)(t??process.cwd(),e.$ref);if((0,vPn.existsSync)(r))try{return(0,vPn.readFileSync)(r,"utf-8")}catch{return}}}}function hRy(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!Lu(n))continue;let o=dRy(n.code,t);o!=null&&r.push({...n,code:o})}return r}function Aol(e,t,r){let n=Jn(t,Ii.EXAMPLES),i=r.source.type==="openapi"?(0,OPn.dirname)(r.source.file):void 0,s=(n??[]).map(p=>{if(!Lu(p))return p;let f=p["code-samples"];if(f!=null){let h=hRy(f,i);return{...p,"code-samples":h}}return p}).filter(p=>{let m=L0.serialization.ExampleEndpointCallSchema.parse(p);return m.ok||r.logger.error(`Failed to parse x-fern-example in ${e.path}/${e.method}`),m.ok}),a=Ljr(t,jz.REDOCLY_CODE_SAMPLES_KEBAB,SMs,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],u=[...Ljr(t,jz.REDOCLY_CODE_SAMPLES_CAMEL,SMs,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],...a];u.length>0&&s.push({"code-samples":u.map(p=>({name:p.label??p.lang,language:p.lang,code:p.source,install:void 0,docs:void 0}))});let l=yol(t);return l.length>0&&s.push({"code-samples":l}),s.map(UJ.unknown)}function bol(e){let t=Jn(e,Ii.AVAILABILITY);if(t==="ga"||t==="generally-available")return DR.GenerallyAvailable;if(t==="beta"||t==="pre-release")return DR.Beta;if(t==="deprecated")return DR.Deprecated;if(e.deprecated)return DR.Deprecated}function _ol(e){let t=Jn(e,Ii.RETRIES);if(t!=null&&t.disabled===!0)return Dw.RetriesConfiguration.disabled(t.disabled)}var gRy="x-fern-default-url";function EPn(e,t){let r=e.variables!=null&&Object.keys(e.variables).length>0,n=yRy(e);return{url:bRy({url:e.url,variables:e.variables??{}}),description:e.description,name:_Ry(e,t),audiences:Jn(e,Ii.AUDIENCES),urlTemplate:r?e.url:void 0,variables:r&&e.variables!=null?ARy(e.variables):void 0,defaultUrl:r?n:void 0}}function yRy(e){let t=e[gRy];if(typeof t=="string")return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}function ARy(e){return Object.entries(e).map(([t,r])=>({id:t,default:r.default,values:r.enum}))}function bRy({url:e,variables:t}){let r=Object.fromEntries(Object.entries(t).map(([n,i])=>[n,i.default]));for(let[n,i]of Object.entries(r))e=e.replace(`{${n}}`,encodeURIComponent(i));return e}function _Ry(e,t){let r=Jn(e,[Ii.SERVER_NAME_V1,Ii.SERVER_NAME_V2]);if(r!=null)return r;if(e.description?.toLowerCase()==="production")return"Production";if(e.description?.toLowerCase()==="sandbox")return"Sandbox";if(t?.groupMultiApiEnvironments&&e.description!=null&&e.description.trim()!==""){let n=e.description.toLowerCase();return n==="prd"?"Production":n==="sbx"?"Sandbox":n==="staging"||n==="stg"?"Staging":n==="development"||n==="dev"?"Development":e.description}}function vol(e){return Jn(e,Ii.PARAMETER_NAME)}function Ool(e){return Jn(e,Ii.SDK_VARIABLE)}function wPn({path:e,httpMethod:t,parameters:r,context:n,requestBreadcrumbs:i,source:o}){let s={pathParameters:[],queryParameters:[],headers:[]};for(let a of r){let c=yo(a)?n.resolveParameterReference(a):a,u=Jn(a,Ii.IGNORE)??Jn(c,Ii.IGNORE);if(u!=null&&u){n.logger.debug(`${t.toUpperCase()} ${e} has a parameter marked with x-fern-ignore. Skipping.`);continue}let l=c.required??!1,p=yQ(c),m=[...i,c.name],f=cj(m,n.options.preserveSchemaIds),[h,g]=n.options.coerceOptionalSchemasToNullable?[!1,!l]:[!l,!1],y=c.schema!=null?Nl(c.schema,h,g,n,m,o,n.namespace,!1,new Set,Mue({schema:c,logger:n.logger})):l?Fn.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:No.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:Mue({schema:c,logger:n.logger})}),description:void 0,availability:p,namespace:void 0,groupName:void 0}):Fn.optional({nameOverride:void 0,generatedName:f,title:void 0,value:Fn.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:No.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:Mue({schema:c,logger:n.logger})}),description:void 0,availability:void 0,namespace:void 0,groupName:void 0}),description:void 0,availability:p,namespace:void 0,groupName:void 0,inline:void 0});if(c.in==="header"&&c.schema!=null&&!yo(c.schema)&&c.schema.default!=null){let b=c.schema.default;typeof b=="string"&&b.length>0&&(y=Fn.literal({nameOverride:void 0,generatedName:f,title:void 0,value:cx.string(b),description:void 0,availability:p,namespace:void 0,groupName:void 0}))}let A={name:c.name,schema:y,description:c.description,parameterNameOverride:vol(c),availability:p,source:o};c.in==="query"?s.queryParameters.push({...A,explode:ORy(c)}):c.in==="path"?s.pathParameters.push({...A,variableReference:Ool(c),explode:ERy(c)}):c.in==="header"?!vRy.has(c.name.toLowerCase())&&!n.authHeaders.has(c.name)?s.headers.push({...A,env:void 0}):n.logger.debug(`Ignoring ${c.name} header, in ${t.toUpperCase()} ${e}`):n.logger.warn(`Skipping ${c.in} parameter, ${c.name}, in ${t.toUpperCase()} ${e}`)}return s}var vRy=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]);function ORy(e){let t=e.style??"form",r=e.explode;if(r!==void 0)return t==="form"?r===!0?void 0:r:r===!1?void 0:r}function ERy(e){let t=e.explode;if(t!==void 0)return t===!1?void 0:t}pr();function wRy({content:e,context:t}){for(let[r,n]of Object.entries(e))if(wol({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function wol({mediaType:e,mediaTypeObject:t,context:r}){if(ib.parse(e)?.isURLEncoded())return{schema:t.schema,contentType:e,examples:F4t(t,r)}}function xRy({content:e,context:t}){for(let[r,n]of Object.entries(e))if(xol({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function xol({mediaType:e,mediaTypeObject:t,context:r}){if(ib.parse(e)?.isMultipart())return{schema:t.schema,encoding:t.encoding,examples:F4t(t,r)}}function Pol({mediaType:e}){return ib.parse(e)?.isBinary()??!1}function PRy({content:e}){for(let[t,r]of Object.entries(e))if(Pol({mediaType:t}))return[t,r]}function IRy(e,t){let r=yo(e)?jMs(e,t):{id:void 0,schema:e};return Object.entries(r.schema.properties??{}).find(([n,i])=>!yo(i)&&i.type==="string"&&(i.format==="binary"||i.format==null&&i.contentMediaType==="application/octet-stream"))!=null}function PPn({content:e,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}){let a=PRy({content:e});if(a){let[m,f]=a;return W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}let c=xRy({content:e,context:n}),u=IMs({content:e,context:n}),l=CRy({json:u,multipart:c,document:r,visitor:{json:([m,f])=>W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),multipart:([m,f])=>W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),neither:()=>{}}});if(l)return l;let p=wRy({content:e,context:n});if(p){let[m,f]=p;return W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}}function CRy({json:e,multipart:t,document:r,visitor:n}){if(!e&&!t)return n.neither();let[,i]=e??[void 0,void 0],[,o]=t??[void 0,void 0];return!i?.schema&&!o?.schema?n.neither():i?.schema&&o?.schema?i.schema&&IRy(i.schema,r)?n.multipart(t):n.json(e):i?.schema?n.json(e):o?.schema?n.multipart(t):n.neither()}function W_e({mediaType:e,mediaTypeObject:t,description:r,document:n,context:i,requestBreadcrumbs:o,source:s,namespace:a}){let c=SRy({mediaTypeObject:t});if(Pol({mediaType:e}))return fU.octetStream({description:r,source:s,sdkMethodName:c,contentType:e});let u=xol({mediaType:e,mediaTypeObject:t,context:i}),l=u?.schema,p=u?.encoding,m=u?.examples;if(l){let g=yo(l)?jMs(l,n):{id:void 0,schema:l},y=Nl(g.schema,!1,!1,i,o,s,a,!1),A=[];if(y.type==="object"){let b=new Set(g.schema.required??[]);for(let v of y.properties){let _=b.has(v.key),{isFile:O,isOptional:E,isArray:P,description:x}=xPn({schema:v.schema,isOptional:!_});if(O){let I=Eol(v.key,p);A.push({key:v.key,schema:N_e.file({isOptional:E,isArray:P,description:x}),description:x,contentType:I,exploded:!1,encoding:I==null?i.options.defaultFormParameterEncoding:void 0})}else{let I=Eol(v.key,p);A.push({key:v.key,schema:N_e.json(v.schema),description:void 0,contentType:I,exploded:p?.[v.key]?.explode,encoding:I==null?i.options.defaultFormParameterEncoding:BRy(I)})}}}return fU.multipart({name:yo(l)&&i.getNumberOfOccurrencesForRef(l)===1?g.id:void 0,description:g.schema.description,properties:A,source:s,sdkMethodName:c,fullExamples:m})}let f=APn({mediaType:e,mediaTypeObject:t,context:i});if(f){let g=Nl(f.schema,!1,!1,i,o,s,a,!0);return fU.json({description:void 0,schema:g,contentType:f.contentType,fullExamples:f.examples,additionalProperties:!yo(f.schema)&&Wjr(f.schema.additionalProperties,i.options),source:s,sdkMethodName:c})}let h=wol({mediaType:e,mediaTypeObject:t,context:i});if(h!=null&&h.schema!=null){let g=Nl(h.schema,!1,!1,i,o,s,a,!1);return fU.formUrlEncoded({schema:g,description:r,contentType:h.contentType,source:s,fullExamples:h.examples,additionalProperties:!1,sdkMethodName:c})}}function SRy({mediaTypeObject:e}){return Jn(e,Ii.SDK_METHOD_NAME)}var jRy={"application/json":"json"};function BRy(e){return e?jRy[e]:void 0}function jMs(e,t){if(!e.$ref.startsWith(Jvt))throw new Error(`Failed to resolve schema reference because of unsupported prefix: ${e.$ref}`);let r=BGe(e);if(r==null)throw new Error(`Failed to resolve schema reference because missing schema id: ${e.$ref}`);let n=t.components?.schemas?.[r];if(n==null)throw new Error(`Failed to resolve schema reference because missing: ${e.$ref}`);return yo(n)?jMs(n,t):{id:r,schema:n}}function xPn({schema:e,isOptional:t,isArray:r,description:n}){return DRy(e)?xPn({schema:e.value,isOptional:!0,isArray:r,description:e.description}):RRy(e)?xPn({schema:e.value,isOptional:t,isArray:r,description:e.description}):FRy(e)?xPn({schema:e.value,isOptional:t,isArray:!0,description:e.description}):TRy(e)?{isFile:!0,isOptional:t??!1,isArray:r??!1,description:n??e.description}:{isFile:!1,isOptional:t??!1,isArray:r??!1,description:void 0}}function TRy(e){return e.type==="primitive"&&e.schema.type==="string"&&e.schema.format==="binary"}function DRy(e){return e.type==="optional"}function RRy(e){return e.type==="nullable"}function FRy(e){return e.type==="array"}function Eol(e,t){return t?.[e]?.contentType}pr();var BMs={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},Iol=new Set(Object.values(BMs));var NRy=["200","201","202","204"];function IPn({operationContext:e,responses:t,context:r,responseBreadcrumbs:n,responseStatusCode:i,streamFormat:o,streamTerminator:s,source:a}){if(t==null)return{value:void 0,errors:{}};let c=kRy({responses:t,context:r,source:a,namespace:r.namespace}),u=!1,l;for(let p of i!=null?[i]:NRy){let m=t[p];m!=null&&(u=!0,l==null&&(l=Col({operationContext:e,response:m,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,source:a,namespace:r.namespace,statusCode:typeof p=="string"?parseInt(p):p})))}if(l==null&&!u&&t.default!=null&&(l=Col({operationContext:e,response:t.default,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,source:a,namespace:r.namespace})),l!=null)switch(l.type){case"json":return{value:l,errors:c};case"streamingJson":case"streamingSse":return{value:l,errors:c};case"bytes":case"file":case"text":case"streamingText":return{value:l,errors:c};default:Ue(l)}return{value:void 0,errors:c}}function Col({operationContext:e,streamFormat:t,streamTerminator:r,response:n,context:i,responseBreadcrumbs:o,source:s,namespace:a,statusCode:c}){let u=yo(n)?i.resolveResponseReference(n):n;if(u.content!=null&&Object.entries(u.content).find(([f,h])=>{if(h.schema==null)return!1;let g=yo(h.schema)?i.resolveSchemaReference(h.schema):h.schema;return g.type==="string"&&(g.format==="binary"||g.format==null&&g.contentMediaType==="application/octet-stream")}))return i.options.useBytesForBinaryResponse&&t==null?rw.bytes({description:u.description,source:s,statusCode:c}):rw.file({description:u.description,source:s,statusCode:c});let l=aol(u.content??{},i);if(l!=null&&t!=null)switch(t){case"json":return rw.streamingJson({statusCode:c,description:u.description,responseProperty:Jn(e.operation,Ii.RESPONSE_PROPERTY),terminator:r,fullExamples:l.examples,schema:Nl(l.schema,!1,!1,i,o,s,a),source:s});case"sse":return rw.streamingSse({description:u.description,responseProperty:void 0,terminator:r,fullExamples:l.examples,schema:Nl(l.schema,!1,!1,i,o,s,a),source:s,statusCode:c})}let p=bPn({context:i,content:u.content??{}});if(p){if(t!=null)switch(t){case"json":return rw.streamingJson({description:u.description,responseProperty:void 0,terminator:r,fullExamples:p.examples,schema:Nl(p.schema,!1,!1,i,o,s,a),source:s,statusCode:c});case"sse":return rw.streamingSse({description:u.description,responseProperty:void 0,terminator:r,fullExamples:p.examples,schema:Nl(p.schema,!1,!1,i,o,s,a),source:s,statusCode:c})}return rw.json({description:u.description,schema:Nl(p.schema,!1,!1,i,o,s,a),responseProperty:Jn(e.operation,Ii.RESPONSE_PROPERTY),terminator:void 0,fullExamples:p.examples,source:s,statusCode:c})}for(let[m,f]of Object.entries(u.content??{})){let h=ib.parse(m);if(h!=null){if(h.isOctetStream()||h.isPDF()||h.isAudio()||h.isImage()||h.isVideo()||h.isMultiPartMixed())return rw.file({description:u.description,source:s,statusCode:c});if(h.isPlainText()){let g=f.schema;if(g==null)return rw.text({description:u.description,source:s,statusCode:c});let y=yo(g)?i.resolveSchemaReference(g):g;return y.type==="string"&&y.format==="byte"?rw.file({description:u.description,source:s,statusCode:c}):rw.text({description:u.description,source:s,statusCode:c})}}}}function kRy({responses:e,context:t,source:r,namespace:n}){let i={};for(let[o,s]of Object.entries(e)){if(o==="default")continue;let a=parseInt(o);if(a<400||a>600)continue;let c=yo(s)?t.resolveResponseReference(s):s,u=uol(c.content??{},t),l=BMs[a];if(l==null){t.logger.warn(`No error name found for status code ${o}`);continue}i[a]={statusCode:a,nameOverride:void 0,generatedName:l,description:c.description,schema:Nl(u?.schema??{},!1,!1,t,[l,"Body"],r,n),fullExamples:u?.examples,source:r}}return i}function FMe({operationContext:e,context:t,responseStatusCode:r,suffix:n,streamFormat:i,streamTerminator:o,source:s}){let{document:a,operation:c,path:u,method:l,baseBreadcrumbs:p}=e,m=Jn(c,Ii.IDEMPOTENT),f=Jn(c,[Ii.REQUEST_NAME_V1,Ii.REQUEST_NAME_V2]),h=[...p,"Request"],g=wPn({parameters:[...e.pathItemParameters,...e.operationParameters],context:t,requestBreadcrumbs:h,path:u,httpMethod:l,source:s}),y=/{([^}]+)}/g,A=[...u.matchAll(y)].map(q=>q[1]).filter(q=>q!==void 0),b=[...u.matchAll(y)].map(q=>q[1]);switch(t.options.pathParameterOrder){case xi.PathParameterOrder.SpecOrder:{let q=b.filter(W=>!g.pathParameters.some($=>$.name===W));if(q.length>0)for(let W of q)g.pathParameters.push({name:W??"",variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:s,schema:Fn.primitive({schema:No.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0})}break;case xi.PathParameterOrder.UrlOrder:if(A.length>0){let q=new Map(g.pathParameters.map(re=>[re.name,re])),W=[],$=new Set;for(let re of A){let ce=q.get(re);$.add(re),ce?W.push(ce):W.push({name:re,variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:s,schema:Fn.primitive({schema:No.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0})}for(let re of g.pathParameters)$.has(re.name)||W.push(re);g.pathParameters=W}break;default:Ue(t.options.pathParameterOrder)}let v=(()=>{if(e.method==="GET")return[void 0];if(!c.requestBody)return[void 0];let q=yo(c.requestBody)?t.resolveRequestBodyReference(c.requestBody):c.requestBody,W=Object.values(q.content).every(re=>QRy({mediaTypeObject:re})!=null),$=[];if(W)return $.push(...Object.entries(q.content).map(([re,ce])=>{let G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:new Xvt({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:h,source:s,namespace:t.namespace});return Sol({context:t,convertedParameters:g})&&G!=null&&(G.type==="json"||G.type==="formUrlEncoded")&&G.schema.type!=="object"&&c.requestBody!=null?G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:t,requestBreadcrumbs:[...h,"Body"],source:s,namespace:t.namespace}):c.requestBody!=null&&(G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:t,requestBreadcrumbs:[...h],source:s,namespace:t.namespace})),G}).filter(re=>re!=null)),$.length===0?[void 0]:$;{let re=PPn({content:q.content,description:q.description,document:a,context:new Xvt({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:h,source:s,namespace:t.namespace});return Sol({context:t,convertedParameters:g})&&re!=null&&(re.type==="json"||re.type==="formUrlEncoded")&&re.schema.type!=="object"&&c.requestBody!=null?re=PPn({content:q.content,description:q.description,document:a,context:t,requestBreadcrumbs:[...h,"Body"],source:s,namespace:t.namespace}):c.requestBody!=null&&(re=PPn({content:q.content,description:q.description,document:a,context:t,requestBreadcrumbs:[...h],source:s,namespace:t.namespace})),[re]}})(),_=v.length>1,O=[...p,"Response"],E=IPn({operationContext:e,streamFormat:i,streamTerminator:o,responses:c.responses,context:t,responseBreadcrumbs:O,responseStatusCode:r,source:s}),P=_ol(c),x=bol(c),I=Aol(e,c,t),F=Jn(c,Ii.SERVER_NAME_V2);return v.map(q=>({summary:c.summary,internal:Jn(c,jz.INTERNAL),idempotent:m,audiences:Jn(c,Ii.AUDIENCES)??[],operationId:c.operationId!=null&&n!=null?c.operationId+"_"+n:c.operationId,tags:t.resolveTagsToTagIds(c.tags),namespace:t.namespace,sdkName:MRy({operationContext:e,request:q}),pathParameters:g.pathParameters,queryParameters:g.queryParameters,headers:g.headers,requestNameOverride:f??void 0,generatedRequestName:cj(_?zRy({breadcrumbs:h,request:q}):h,t.options.preserveSchemaIds),request:q,response:E.value,errors:E.errors,servers:F!=null?[{name:F,url:void 0,audiences:void 0}]:(c.servers??[]).map(W=>EPn(W,{groupMultiApiEnvironments:t.options.groupMultiApiEnvironments})),description:c.description,authed:URy(c,a),security:VRy(c),availability:x,method:l,path:u,examples:I,pagination:e.pagination,source:s,retries:P}))}function zRy({breadcrumbs:e,request:t}){return t?[...e,t.type]:e}function QRy({mediaTypeObject:e}){return Jn(e,Ii.SDK_METHOD_NAME)}function MRy({operationContext:e,request:t}){return!t||!t.sdkMethodName?e.sdkMethodName:e.sdkMethodName?{groupName:[...e.sdkMethodName.groupName],methodName:t.sdkMethodName??e.sdkMethodName.methodName}:{groupName:[],methodName:t.sdkMethodName}}function VRy(e){return e.security}function URy(e,t){return e.security!=null?Object.keys(e.security).length>0:t.security!=null?Object.keys(t.security).length>0:!1}function Sol({context:e,convertedParameters:t}){return e.options.inlinePathParameters&&t.pathParameters.length>0||t.queryParameters.length>0||t.headers.length>0}function Bol({operationContext:e,context:t,asyncExtension:r,source:n}){let{operation:i,pathItemParameters:o,operationParameters:s}=e,a=r.discriminant.name,c=r.discriminant.value,u=r["response-status-code"],l=jol({context:t,headerToIgnore:a,parameters:o}),p=jol({context:t,headerToIgnore:a,parameters:s}),m=FMe({operationContext:{...e,pathItemParameters:l,operationParameters:p,operation:{...i,responses:Object.fromEntries(Object.entries(i.responses).filter(([h])=>parseInt(h)!==u))}},context:t,streamFormat:void 0,source:n}),f=FMe({operationContext:{...e,pathItemParameters:l,operationParameters:p,baseBreadcrumbs:[...e.baseBreadcrumbs,"async"]},context:t,suffix:"async",responseStatusCode:u,streamFormat:void 0,source:n});return f.forEach(h=>{h.headers.push({name:a,schema:Fn.literal({nameOverride:void 0,generatedName:cj([a],t.options.preserveSchemaIds),title:void 0,description:void 0,availability:void 0,value:cx.string(c),namespace:void 0,groupName:void 0}),description:void 0,parameterNameOverride:void 0,env:void 0,availability:void 0,source:n})}),{sync:m,async:f}}function jol({context:e,headerToIgnore:t,parameters:r}){return r.filter(n=>{let i=yo(n)?e.resolveParameterReference(n):n;return!(i.in==="header"&&i.name===t)})}pr();var TMs="stream";function Fol({operationContext:e,context:t,streamingExtension:r}){switch(r.type){case"stream":return{streaming:FMe({operationContext:e,context:t,streamFormat:r.format,streamTerminator:r.terminator,source:t.source}),nonStreaming:[]};case"streamCondition":{let n=Tol({context:t,operation:e.operation,streamingExtension:r,isStreaming:!0});if(n?.schemaReference!=null){let u=BGe(n.schemaReference);u!=null&&t.excludeSchema(u)}let i=Dol({operation:e.operation,response:r.responseStream}),o=FMe({operationContext:{...e,sdkMethodName:e.sdkMethodName!=null?{groupName:e.sdkMethodName.groupName,methodName:e.sdkMethodName.methodName+"_"+TMs}:void 0,operation:{...e.operation,description:r.streamDescription??e.operation.description,requestBody:n?.requestBody,responses:i},baseBreadcrumbs:[...e.baseBreadcrumbs,TMs]},context:t,streamFormat:r.format,streamTerminator:r.terminator,suffix:TMs,source:t.source});o.forEach(u=>{u.examples=u.examples.filter(l=>Rol(l,t)!==!1)});let s=Tol({context:t,operation:e.operation,streamingExtension:r,isStreaming:!1}),a=Dol({operation:e.operation,response:r.response}),c=FMe({streamFormat:void 0,operationContext:{...e,operation:{...e.operation,requestBody:s?.requestBody,responses:a}},context:t,source:t.source});return c.forEach(u=>{u.examples=u.examples.filter(l=>Rol(l,t)!==!0)}),{streaming:o,nonStreaming:c}}default:Ue(r)}}function Tol({context:e,operation:t,streamingExtension:r,isStreaming:n}){if(t.requestBody==null)return;let i=yo(t.requestBody)?e.resolveRequestBodyReference(t.requestBody):t.requestBody,o=bPn({content:i.content,context:e});if(o==null)return;let s=yo(o.schema)?e.resolveSchemaReference(o.schema):o.schema;if(s.allOf==null&&s.properties==null)return;let a=s.properties?.[r.streamConditionProperty];a!=null&&yo(a)&&(a=void 0);let c={...s,properties:{...s.properties,[r.streamConditionProperty]:{type:"boolean","x-fern-boolean-literal":n,...a??{}}},title:void 0,required:[...s.required??[],r.streamConditionProperty]};return{requestBody:{content:{[ib.APPLICATION_JSON]:{schema:c}}},schemaReference:yo(o.schema)?o.schema:void 0}}function Dol({operation:e,response:t}){return{...e.responses,200:{description:"",content:{[ib.APPLICATION_JSON]:{schema:t}}}}}function Rol(e,t){return e._visit({unknown:r=>{let n=L0.serialization.ExampleEndpointCallSchema.parse(r);if(n.ok&&n.value.response!=null)return n.value.response.stream!=null},full:()=>{},_other:()=>{}})}var Vol=require("crypto");function LRy(e){switch(e){case"unix-seconds":return Dw.WebhookTimestampFormat.UnixSeconds;case"unix-millis":return Dw.WebhookTimestampFormat.UnixMillis;case"iso8601":return Dw.WebhookTimestampFormat.Iso8601}}function Nol(e){if(e!=null)return{header:e.header,format:e.format!=null?LRy(e.format):void 0,tolerance:e.tolerance}}function qRy(e){if(e!=null)return{components:e.components.map(t=>{switch(t){case"body":return Dw.WebhookPayloadComponent.Body;case"timestamp":return Dw.WebhookPayloadComponent.Timestamp;case"notification-url":return Dw.WebhookPayloadComponent.NotificationUrl;case"message-id":return Dw.WebhookPayloadComponent.MessageId}}),delimiter:e.delimiter}}function WRy(e){if(e!=null)switch(e){case"sha256":return Dw.WebhookSignatureAlgorithm.Sha256;case"sha1":return Dw.WebhookSignatureAlgorithm.Sha1;case"sha384":return Dw.WebhookSignatureAlgorithm.Sha384;case"sha512":return Dw.WebhookSignatureAlgorithm.Sha512}}function kol(e){if(e!=null)switch(e){case"base64":return Dw.WebhookSignatureEncoding.Base64;case"hex":return Dw.WebhookSignatureEncoding.Hex}}function GRy(e){if(e!=null)switch(e){case"rsa-sha256":return Dw.AsymmetricAlgorithm.RsaSha256;case"rsa-sha384":return Dw.AsymmetricAlgorithm.RsaSha384;case"rsa-sha512":return Dw.AsymmetricAlgorithm.RsaSha512;case"ecdsa-sha256":return Dw.AsymmetricAlgorithm.EcdsaSha256;case"ecdsa-sha384":return Dw.AsymmetricAlgorithm.EcdsaSha384;case"ecdsa-sha512":return Dw.AsymmetricAlgorithm.EcdsaSha512;case"ed25519":return Dw.AsymmetricAlgorithm.Ed25519}}function Qol(e){if(e.type==="hmac")return Dw.WebhookSignatureVerification.hmac({header:e.header,algorithm:WRy(e.algorithm),encoding:kol(e.encoding),signaturePrefix:e["signature-prefix"],payloadFormat:qRy(e["payload-format"]),timestamp:Nol(e.timestamp)});if(e.type==="asymmetric"){let t=GRy(e["asymmetric-algorithm"]);return t==null?void 0:Dw.WebhookSignatureVerification.asymmetric({header:e.header,asymmetricAlgorithm:t,encoding:kol(e.encoding),signaturePrefix:e["signature-prefix"],jwksUrl:e["jwks-url"],keyIdHeader:e["key-id-header"],timestamp:Nol(e.timestamp)})}}function zol(e){let t=Jn(e,Ii.WEBHOOK_SIGNATURE);if(!(t==null||typeof t=="boolean"))return Qol(t)}function Mol(e,t){let r=Jn(t,Ii.WEBHOOK_SIGNATURE);return r!=null?typeof r=="boolean"?zol(e):Qol(r):zol(e)}function Uol({context:e,operationContext:t,source:r}){let{document:n,operation:i,path:o,method:s,baseBreadcrumbs:a,sdkMethodName:c}=t,u=[...a,"Payload"],l=[...a,"Response"],p=wPn({parameters:[...t.pathItemParameters,...t.operationParameters],context:e,requestBreadcrumbs:u,path:o,httpMethod:s,source:r});if(i.requestBody==null)return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Missing a request body`),[];let m=i.operationId??$Ry({path:o,method:s,sdkMethodName:c}),f=i.responses?IPn({operationContext:t,streamFormat:void 0,responses:i.responses,context:e,responseBreadcrumbs:l,source:r}):void 0;if(s!=="POST"&&s!=="GET")return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Not POST or GET`),[];let h=yo(i.requestBody)?e.resolveRequestBodyReference(i.requestBody):i.requestBody;return Object.entries(h.content).map(([g,y])=>W_e({mediaType:g,mediaTypeObject:y,description:h.description,document:n,context:e,requestBreadcrumbs:[...a,"Payload"],source:r,namespace:e.namespace})).filter(g=>g!=null).map(g=>{if(g==null||g.type!=="json"&&g.type!=="formUrlEncoded"&&g.type!=="multipart"){e.logger.error(`Skipping webhook ${o} because non-json, non-formUrlEncoded, and non-multipart request body`);return}let y,A;g.type==="multipart"?(y={name:g.name,properties:g.properties,description:g.description,source:g.source},A=Fn.unknown({nameOverride:void 0,generatedName:cj(u,e.options.preserveSchemaIds),title:void 0,description:g.description,availability:void 0,namespace:e.namespace,groupName:void 0,example:void 0})):A=g.schema;let b=Mol(n,i);return{summary:i.summary,audiences:Jn(i,Ii.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:m,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:cj(u,e.options.preserveSchemaIds),payload:A,signatureVerification:b,multipartFormData:y,response:f?.value,description:i.description,examples:HRy(g.fullExamples),source:r}}).filter(g=>g!=null)}function HRy(e){if(e==null)return[];let t=[];for(let r of e){let n=DGe(r.value);n!=null&&t.push({description:r.description,name:r.name,payload:n})}return t}function $Ry({path:e,method:t,sdkMethodName:r}){let n=r?.methodName??KRy(e),i=(0,Vol.createHash)("sha256").update(e).digest("hex").slice(0,8);return JRy(`${n}_${t.toLowerCase()}_${i}`)}function KRy(e){return e.replace(/[{$}#]/g,"").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_").toLowerCase().slice(0,64)}function JRy(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function DMs({context:e,pathItemContext:t,operation:r,convertToWebhook:n}){let i=Jn(r,Ii.IGNORE);if(i!=null&&i){e.logger.debug(`${t.method.toUpperCase()} ${t.path} is marked with x-fern-ignore. Skipping.`);return}let o=YRy(r,e),s=sol(e.document,r),a={...t,sdkMethodName:o,baseBreadcrumbs:XRy({operation:r,sdkMethodName:o,httpMethod:t.method,path:t.path,shouldUseIdiomaticRequestNames:e.options.shouldUseIdiomaticRequestNames}),operation:r,operationParameters:r.parameters??[],pagination:s};if(n)return{type:"webhook",value:Uol({context:e,operationContext:a,source:e.source})};let c=iol(r);if(c==null&&ZRy({operation:r,context:e})&&(c={type:"stream",format:"sse",terminator:void 0}),c!=null){let p=Fol({context:e,operationContext:a,streamingExtension:c});return p!=null?{type:"streaming",streaming:p.streaming,nonStreaming:p.nonStreaming}:void 0}let u=rol(r);if(u!=null){let p=Bol({context:e,operationContext:a,asyncExtension:u,source:e.source});return{type:"async",async:p.async,sync:p.sync}}return{type:"http",value:FMe({context:e,operationContext:a,streamFormat:void 0,source:e.source})}}function YRy(e,t){let r=Jn(e,Ii.SDK_METHOD_NAME),n=Jn(e,Ii.SDK_GROUP_NAME)??[];if(r!=null){let i=typeof n=="string"?[n]:n;return i=t.resolveGroupName(i),{groupName:i,methodName:r}}}function XRy({sdkMethodName:e,operation:t,httpMethod:r,path:n,shouldUseIdiomaticRequestNames:i}){let o=[];if(e!=null){if(i&&o.push(e.methodName),e.groupName.length>0){let s=e.groupName[e.groupName.length-1];s!=null&&o.push(typeof s=="string"?s:s.name)}i||o.push(e.methodName)}else t.operationId!=null?o.push(t.operationId):o.push(ao(`${r}_${n.split("/").join("_")}`));return o}function ZRy({operation:e,context:t}){if(e.responses==null)return!1;for(let r of Object.values(e.responses)){let n=yo(r)?t.resolveResponseReference(r):r;if(n.content!=null&&col(n.content))return!0}return!1}function Lol(e,t,r,n){let i=[],o=Wol(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=eFy({operation:a.operation}),u=DMs({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:c});u&&i.push(u)}return i}function qol(e,t,r,n){let i=[],o=Wol(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=DMs({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:!0});c&&i.push(c)}return i}function Wol(e){let t=[];return e.get!=null&&t.push({method:RR.Get,operation:e.get}),e.post!=null&&t.push({method:RR.Post,operation:e.post}),e.put!=null&&t.push({method:RR.Put,operation:e.put}),e.delete!=null&&t.push({method:RR.Delete,operation:e.delete}),e.patch!=null&&t.push({method:RR.Patch,operation:e.patch}),e.head!=null&&t.push({method:RR.Head,operation:e.head}),t}function eFy({operation:e}){return Jn(e,[Ii.WEBHOOK])??!1}function Gol(e){let t=Jn(e,Ii.BASIC_AUTH_USERNAME_VARIABLE_NAME),r=Jn(e,Ii.BASIC_AUTH_PASSWORD_VARIABLE_NAME);return{usernameVariable:t,passwordVariable:r}}function Hol(e){return Jn(e,Ii.FERN_BASIC_AUTH)}function Kol(e,t,r,n){if(yo(e)){if(n==null)throw new Error(`Converting referenced security schemes requires context: ${JSON.stringify(e)}`);let i=n.resolveSecuritySchemeReference(e);return $ol(i,t,r)}return $ol(e,t,r)}function $ol(e,t,r){try{if(e.type==="apiKey"&&e.in==="header"){let n=Jn(e,jz.BEARER_FORMAT),i=Jn(e,Ii.FERN_HEADER_AUTH);return TR.header({headerName:e.name,prefix:n!=null?"Bearer":i?.prefix,headerVariableName:i?.name??Jn(e,Ii.HEADER_VARIABLE_NAME),headerEnvVar:i?.env})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="bearer"){let n=Jn(e,Ii.FERN_BEARER_TOKEN);return TR.bearer({tokenVariableName:n?.name??Jn(e,Ii.BEARER_TOKEN_VARIABLE_NAME),tokenEnvVar:n?.env})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="basic"){let n=Hol(e),i=Gol(e);return TR.basic({usernameVariableName:n?.username?.name??i.usernameVariable,usernameEnvVar:n?.username?.env,passwordVariableName:n?.password?.name??i.passwordVariable,passwordEnvVar:n?.password?.env})}else{if(e.type==="openIdConnect")return TR.bearer({tokenVariableName:void 0,tokenEnvVar:void 0});if(e.type==="oauth2")return TR.oauth({scopesEnum:tFy(e,t)})}}catch(n){r.logger.debug(`Error converting security scheme: ${n?.message}`)}r.logger.debug(`Skipping security scheme: ${JSON.stringify(e,null)} - not currently supported. Please reach out to Fern support team!`)}function tFy(e,t){let r=e.flows.authorizationCode?.scopes??e.flows.clientCredentials?.scopes??e.flows.implicit?.scopes??e.flows.password?.scopes;if(r!=null){let n=jGe({nameOverride:void 0,generatedName:"OauthScope",title:void 0,enumValues:Object.keys(r),fernEnum:Object.fromEntries(Object.entries(r).map(([o,s])=>[o,{description:s}])),_default:void 0,description:void 0,availability:void 0,enumVarNames:void 0,wrapAsOptional:!1,wrapAsNullable:!1,namespace:void 0,groupName:void 0,context:void 0,source:t,inline:void 0}),i=hb(n);if(i.type==="enum")return i}}function Jol(e){return Jn(e,Ii.BASE_PATH)}var rFy=Zt.record(Zt.string(),Zt.object({summary:Zt.string().optional(),description:Zt.string().optional()}));function Yol({document:e,context:t}){return Ljr(e,Ii.GROUPS,rFy,t.logger)}function Xol({context:e,document:t}){return Jn(t,Ii.FERN_VERSION)??void 0}function Zol(e){let t=Jn(e,Ii.FERN_GLOBAL_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?qjr({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function esl(e){let t=Jn(e,Ii.FERN_IDEMPOTENCY_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?qjr({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function tsl(e,t){let r=Jn(e,Ii.SDK_VARIABLES);return r==null?{}:Object.fromEntries(Object.entries(r).map(([n,i])=>{if(i.type==="string")return[n,{nameOverride:void 0,generatedName:cj([n],t),title:i.title,schema:xd.string({default:j4t(i),pattern:i.pattern,format:i.format,minLength:i.minLength,maxLength:i.maxLength}),description:i.description,availability:void 0,namespace:void 0,groupName:void 0}];throw new Error(`Variable ${n} has unsupported schema ${JSON.stringify(i)}`)}))}var nFy="webhooks";function rsl(e){return Jn(e,nFy)??{}}var Jjr=class extends N4t{nonRequestReferencedSchemas=new Set;twoOrMoreRequestsReferencedSchemas=new Set;singleRequestReferencedSchemas=new Set;discriminatedUnionReferences={};discriminatedUnionMetadata={};schemasToExclude=new Set;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){super({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s})}getDummy(){return new Xvt({document:this.document,taskContext:this.taskContext,options:this.options,source:this.source,namespace:this.namespace})}markSchemaAsReferencedByNonRequest(t){this.nonRequestReferencedSchemas.add(t)}markSchemaAsReferencedByRequest(t){this.singleRequestReferencedSchemas.has(t)?this.twoOrMoreRequestsReferencedSchemas.add(t):this.singleRequestReferencedSchemas.add(t)}getReferencedSchemas(){return new Set([...this.nonRequestReferencedSchemas,...this.twoOrMoreRequestsReferencedSchemas])}markReferencedByDiscriminatedUnion(t,r,n){let i=this.discriminatedUnionReferences[t.$ref];i!=null?(i.discriminants.add(r),i.numReferences+=n):this.discriminatedUnionReferences[t.$ref]={discriminants:new Set([r]),numReferences:n}}getReferencesFromDiscriminatedUnion(t){return this.discriminatedUnionReferences[t.$ref]}markSchemaWithDiscriminantValue(t,r,n){let i=this.discriminatedUnionMetadata[t.$ref];i!=null?i.discriminants.set(r,n):this.discriminatedUnionMetadata[t.$ref]={discriminants:new Map([[r,n]])}}getDiscriminatedUnionMetadata(t){return this.discriminatedUnionMetadata[t.$ref]}excludeSchema(t){this.schemasToExclude.add(t)}isSchemaExcluded(t){return this.schemasToExclude.has(t)}};function nsl(e){return Jn(e,Ii.RESOLUTIONS)}function isl({openapi:e}){let t=nsl(e);if(t==null)return e;let r={};for(let n of t){let i=`#/components/schemas/${n.name}`;for(let o of n.resolutions)e=iFy({openapi:e,schemaReference:o,schemaName:n.name}),e=osl({openapi:e,replaceReference:o,schemaReference:i,replacedReferences:r}),r={...r,...Object.fromEntries(n.resolutions.map(s=>[i,s]))}}return e}function iFy({openapi:e,schemaReference:t,schemaName:r}){let n=t.replace("#/","").split("/").map(o=>o.replaceAll("~1","/")),i=e;for(let o of n){let s=i[o];if(s==null)return e;i=s}return e.components==null&&(e.components={}),e.components.schemas==null&&(e.components.schemas={}),e.components.schemas[r]=i,e}function osl({openapi:e,replaceReference:t,schemaReference:r,replacedReferences:n}){let i=Object.keys(n).filter(c=>t.startsWith(c)).sort((c,u)=>u.length-c.length)[0];if(i!=null){let c=n[i];if(c!=null){let u=r.replace(i,c);return osl({openapi:e,replaceReference:t,schemaReference:u,replacedReferences:{}})}}let o=t.replace("#/","").split("/").map(c=>c.replaceAll("~1","/")),s=e;for(let c of o.slice(0,-1)){let u=s[c];if(u==null)return e;s=u}let a=o[o.length-1];return a==null||(s[a]={$ref:r}),e}function asl({openApi:e,taskContext:t,options:r,source:n,namespace:i}){e=isl({openapi:e}),lPn();let o=new Jjr({document:e,taskContext:t,authHeaders:new Set,options:r,source:n,namespace:i}),s=Object.fromEntries(Object.entries(e.components?.securitySchemes??{}).map(([q,W])=>{let $=Kol(W,n,t,o);return $==null?null:[q,$]}).filter(q=>q!==null)),a=e.security?.filter(q=>q!=null),c=new Set(...Object.entries(s).map(([q,W])=>W.type==="basic"||W.type==="bearer"?"Authorization":W.type==="header"?W.headerName:null)),u=tsl(e,r.preserveSchemaIds),l=Zol(e),p=esl(e),m=r.audiences??[],f=[],h=[],g=new Jjr({document:e,taskContext:t,authHeaders:c,options:r,source:n,namespace:i});g.filter.hasEndpoints()&&t.logger.debug("Endpoint filter applied..."),Object.entries(e.paths??{}).forEach(([q,W])=>{if(W==null)return;let $=Lol(q,W,e,g);for(let re of $){let ce=ssl({operation:re});if(!(m.length>0&&!m.some(G=>ce.includes(G))))switch(re.type){case"async":f.push(...re.sync),f.push(...re.async);break;case"http":f.push(...re.value);break;case"streaming":f.push(...re.streaming),re.nonStreaming&&f.push(...re.nonStreaming);break;case"webhook":h.push(...re.value);break;default:Ue(re)}}}),Object.entries(rsl(e)).forEach(([q,W])=>{if(W==null)return;t.logger.debug(`Converting path ${q}`);let $=qol(q,W,e,g);for(let re of $){let ce=ssl({operation:re});m.length>0&&!m.some(G=>ce.includes(G))||h.push(...re.value)}});let y=Object.fromEntries(Object.entries(e.components?.schemas??{}).map(([q,W])=>{let $=Jn(W,Ii.SDK_NAMESPACE);if(!yo(W)){let re=Jn(W,Ii.IGNORE);if(re!=null&&re)return[];if(Iol.has(q))return[q,Nl({...W,"x-fern-type-name":`${q}Body`},!1,!1,g,[q],n,$??i)]}return[q,Nl(W,!1,!1,g,[q],n,$??i)]}).filter(q=>q.length>0)),A=oFy(y,g,n),b=sFy(A,g),v=L_e(),_={};for(let[q,W]of Object.entries(b)){let $=hb(W);if(g.isSchemaExcluded(q))continue;let re=v.getUniqueSchemaId(q,g.logger,r.resolveSchemaCollisions);_[re]=$}let O=new RGe(b,g.nonRequestReferencedSchemas,g),E=h.map(q=>{let $=q.examples;if(!r.disableExamples&&$.length===0){let re=O.buildExample({schema:q.payload,exampleId:void 0,example:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});re!=null&&($=[{name:void 0,description:void 0,payload:re}])}return{...q,payload:hb(q.payload),examples:$}}),P=new mPn(b,g,l),x=f.map(q=>{let W=q.examples,$=W;if(!r.disableExamples&&(W.length===0||W.every($jr))){let G=P.buildEndpointExample(q);G.length>0&&($=[...G,...W.filter(ee=>!$jr(ee))])}let re=q.request,ce=q.response;return{...q,request:re?.type==="json"||re?.type==="formUrlEncoded"?{...re,schema:hb(re.schema)}:re,response:ce?.type==="json"?{...ce,schema:hb(ce.schema)}:ce,queryParameters:q.queryParameters.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,explode:G.explode,availability:G.availability,source:G.source})),pathParameters:q.pathParameters.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,variableReference:G.variableReference,availability:G.availability,source:G.source})),headers:q.headers.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,env:G.env,availability:G.availability,source:G.source})),examples:$,errors:Li(q.errors,G=>{let ee=G.fullExamples?.map(We=>{let $e=DGe(We.value);if($e!=null)return{name:We.name,description:We.description,example:$e}}).filter(tu);if(ee?.length===0){let We=O.buildExample({schema:G.schema,example:void 0,exampleId:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});We!=null&&ee.push({name:void 0,description:void 0,example:We})}return{generatedName:G.generatedName,nameOverride:G.nameOverride,schema:hb(G.schema),description:G.description,source:G.source,examples:ee}}),retries:q.retries}});P.finalize();let I=Yol({document:e,context:g});return{apiVersion:Xol({context:g,document:e}),basePath:Jol(e),title:e.info.title??"",description:e.info.description,groups:Object.fromEntries(Object.entries(I??{}).map(([q,W])=>[q,{summary:W.summary??void 0,description:W.description??void 0}])),servers:(e.servers??[]).map(q=>EPn(q,{groupMultiApiEnvironments:r.groupMultiApiEnvironments})),websocketServers:[],tags:{tagsById:Object.fromEntries((e.tags??[]).map(q=>[q.name,{id:q.name,description:q.description}])),orderedTagIds:e.tags?.map(q=>q.name)},endpoints:x,webhooks:E,channels:{},groupedSchemas:T4t(i,_),securitySchemes:s,security:a,hasEndpointsMarkedInternal:x.some(q=>q.internal),nonRequestReferencedSchemas:g.getReferencedSchemas(),variables:u,globalHeaders:l,idempotencyHeaders:p}}function oFy(e,t,r){if(t.options.removeDiscriminantsFromSchemas===xi.RemoveDiscriminantsFromSchemas.Never)return e;let n={};for(let[i,o]of Object.entries(e)){if(o.type!=="object"){n[i]=o;continue}let s={$ref:`#/components/schemas/${i}`},a=t.getReferencesFromDiscriminatedUnion(s);if(a==null){n[i]=o;continue}if(t.getReferencedSchemas().has(i)){n[i]=o;continue}let u={...o,type:"object",properties:o.properties.filter(p=>!a.discriminants.has(p.key)),allOfPropertyConflicts:o.allOfPropertyConflicts.filter(p=>!a.discriminants.has(p.propertyKey)),source:r};n[i]=u;let l=csl({schema:o,schemas:e});for(let p of[...new Set(l)]){let m=n[p]??e[p];m==null||m.type!=="object"||(n[p]={...m,type:"object",properties:m.properties.filter(f=>!a.discriminants.has(f.key)),allOfPropertyConflicts:m.allOfPropertyConflicts.filter(f=>!a.discriminants.has(f.propertyKey))})}}return n}function sFy(e,t){let r={};for(let[n,i]of Object.entries(e)){if(i.type!=="object"){r[n]=i;continue}let o={$ref:`#/components/schemas/${n}`},s=t.getDiscriminatedUnionMetadata(o);if(s==null){r[n]=i;continue}let a=[];for(let u of i.properties)if(s.discriminants.has(u.key)){let l=s.discriminants.get(u.key);l!=null&&a.push({...u,schema:Fn.literal({nameOverride:void 0,generatedName:cj([i.generatedName,l],t.options.preserveSchemaIds),title:void 0,value:cx.string(l),namespace:void 0,groupName:void 0,description:void 0,availability:i.availability})})}else a.push(u);let c={...i,type:"object",properties:a};r[n]=c}return r}function csl({schema:e,schemas:t}){let r=[];for(let n of e.allOf){r.push(n.schema);let i=t[n.schema];i!=null&&i.type==="object"&&r.push(...csl({schema:i,schemas:t}))}return r}function CPn(e){return[...new Set(e)]}function ssl({operation:e}){let t=[];switch(e.type){case"async":t=CPn(e.async.flatMap(r=>r.audiences));break;case"http":t=CPn(e.value.flatMap(r=>r.audiences));break;case"streaming":t=CPn(e.streaming.flatMap(r=>r.audiences));break;case"webhook":t=CPn(e.value.flatMap(r=>r.audiences));break;default:Ue(e)}return t}function Zvt({context:e,documents:t,options:r}){let n={apiVersion:void 0,title:void 0,description:void 0,basePath:void 0,servers:[],websocketServers:[],tags:{tagsById:{},orderedTagIds:void 0},hasEndpointsMarkedInternal:!1,endpoints:[],webhooks:[],channels:{},groupedSchemas:{rootSchemas:{},namespacedSchemas:{}},variables:{},nonRequestReferencedSchemas:new Set,securitySchemes:{},security:void 0,globalHeaders:[],idempotencyHeaders:[],groups:{}},i=0;for(let o of t)try{let s=o.source!=null?o.source:hQ.openapi({file:"<memory>"});switch(o.type){case"openapi":{let a=asl({taskContext:e,openApi:o.value,options:WJ({options:o.settings,overrides:r}),source:s,namespace:o.namespace});n=pFy(n,a,WJ({options:o.settings,overrides:r})),i++;break}case"asyncapi":{let a=tol({document:o.value,taskContext:e,options:WJ({options:o.settings,overrides:r}),source:s,asyncApiOptions:aFy({options:o.settings}),namespace:o.namespace});a.servers!=null&&(n.websocketServers=[...n.websocketServers,...a.servers.map(c=>({...c,audiences:void 0,description:void 0,defaultUrl:void 0,urlTemplate:void 0,variables:void 0}))]),a.channels!=null&&(n.channels={...n.channels,...a.channels}),a.groupedSchemas!=null&&(n.groupedSchemas=SPn(n.groupedSchemas,a.groupedSchemas,r)),a.basePath!=null&&(n.basePath=a.basePath),i++;break}default:Ue(o)}}catch(s){e.logger.error(`Failed to parse ${o.type} document ${o.type==="openapi"?o.value.info?.title:o.source?.file}`),s instanceof Error&&e.logger.error(s.message,s.stack?`
|
|
1695
|
+
`);try{D4t.writeFileSync(n,i,"utf8"),this.logger.info(`Missing examples report written to: ${n}`)}catch(o){this.logger.warn(`Failed to write missing examples report to ${n}:`,String(o))}}finalize(){}convertExampleToJson(t){switch(t.type){case"primitive":return t.value;case"array":return t.value.map(r=>this.convertExampleToJson(r));case"object":{let r={};return Object.entries(t.properties).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"map":{let r={};return t.value.forEach(n=>{r[String(n.key)]=this.convertExampleToJson(n.value)}),r}case"oneOf":if(t.value.type==="undiscriminated")return this.convertExampleToJson(t.value.value);{let r={};return Object.entries(t.value.value).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"enum":return t.value;case"literal":return t.value;case"null":return null;case"unknown":return this.convertExampleToJson(t.value);default:return t}}getSchemaDescription(t){if("description"in t)return t.description}getSchemaTypeName(t){switch(t.type){case"primitive":return`primitive (${t.schema.type})`;case"object":return t.generatedName||"object";case"array":return"array";case"map":return"map";case"optional":return`optional (${this.getSchemaTypeName(t.value)})`;case"nullable":return`nullable (${this.getSchemaTypeName(t.value)})`;case"reference":return t.generatedName||"reference";case"enum":return t.generatedName||"enum";case"literal":return"literal";case"oneOf":return"oneOf";case"unknown":return"unknown";default:return"unknown"}}buildEndpointExample(t){let r=ZDy(t.request),n=eRy(t.response);if(r?.type==="unsupported"||n?.type==="unsupported")return[];let i=[];if(r!=null&&r.type==="present"){let p=this.isSchemaRequired(r.schema);if(r.examples.length===0){let m=this.exampleTypeFactory.buildExample({skipReadonly:xMs(t.method),schema:r.schema,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});m!=null?(i.push([void 0,m]),this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(r.schema),autoGeneratedExample:this.convertExampleToJson(m)})):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(r.schema)})}else for(let{name:m,value:f}of r.examples){let h=this.exampleTypeFactory.buildExample({skipReadonly:xMs(t.method),schema:r.schema,exampleId:m,example:f,options:{isParameter:!1,ignoreOptionals:!0}});h!=null?i.push([m,h]):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),`Failed to build example from provided data (example id: ${m})`,{schemaDescription:this.getSchemaDescription(r.schema)})}if(p&&i.length===0)return this.logger.trace(`Failed to generate required request example for ${t.method.toUpperCase()} ${t.path}`),[]}let o=[];if(n!=null&&n.type==="present"){let p=this.isSchemaRequired(n.schema);if(n.examples.length===0){let m=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:void 0,example:void 0,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});m!=null?(t.response?.type==="json"?o.push([void 0,LJ.withoutStreaming(m)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,LJ.withStreaming({sse:t.response?.type==="streamingSse",events:[m]})]),this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(n.schema),autoGeneratedExample:this.convertExampleToJson(m)})):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(n.schema)})}else for(let{name:m,value:f}of n.examples){let h=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:m,example:f,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});h!=null?t.response?.type==="json"?o.push([m,LJ.withoutStreaming(h)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,LJ.withStreaming({sse:t.response?.type==="streamingSse",events:[h]})]):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),`Failed to build example from provided data (example id: ${m})`,{schemaDescription:this.getSchemaDescription(n.schema)})}if(p&&o.length===0)return this.logger.trace(`Failed to generate required response example for ${t.method.toUpperCase()} ${t.path}`),[]}let s=[];for(let p of t.pathParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for path parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&s.push({name:p.name,parameterNameOverride:p.parameterNameOverride,value:f})}let a=[];for(let p of t.queryParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for query parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&a.push({name:p.name,value:f})}let c=[];for(let p of t.headers){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for header ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),m&&f==null)return[];f!=null&&c.push({name:p.name,value:f})}for(let p of this.globalHeaders){let m=p.schema!=null?Vue(p.schema):Fn.primitive({nameOverride:void 0,generatedName:"",title:void 0,description:void 0,availability:void 0,namespace:void 0,groupName:void 0,schema:No.string({default:void 0,pattern:void 0,maxLength:void 0,minLength:void 0,example:void 0,format:void 0})}),f=this.exampleTypeFactory.buildExample({schema:m,exampleId:void 0,example:void 0,options:{name:p.header,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for global header ${p.header} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),f!=null&&c.push({name:p.header,value:f})}let u=[];t.request!=null&&t.response!=null?u=XDy(i,o):t.request!=null?u=i.map(([p,m])=>({id:p,request:m,response:void 0})):t.response!=null&&(u=o.map(([p,m])=>({id:p,request:void 0,response:m})));let l=t.examples.filter(p=>$jr(p)).flatMap(p=>{if(p.type==="unknown"){if(p.value!=null){let m=p.value["code-samples"];if(m!=null)return this.convertCodeSamples(m)}return}else return p.codeSamples}).filter(p=>tu(p));return u.length===0?[UJ.full({name:void 0,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:void 0,response:void 0,codeSamples:l})]:u.map(({id:p,request:m,response:f})=>UJ.full({name:p,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:m,response:f,codeSamples:l}))}convertCodeSamples(t){return t.map(r=>"language"in r?F_e.language({name:r.name??void 0,description:r.docs??void 0,language:r.language,code:r.code,install:r.install??void 0}):F_e.sdk({name:r.name??void 0,description:r.docs??void 0,sdk:r.sdk==="c#"?FR.Csharp:r.sdk,code:r.code})).filter(tu)}isSchemaRequired(t){return fPn(this.getResolvedSchema(t))}getResolvedSchema(t){return t}};function XDy(e,t){let r=[];if(e.length<=1){let[i,o]=e[0]??[];if(t.length===0)return r.push({id:i,request:o,response:void 0}),r;for(let[s,a]of t)r.push({id:s??i,request:o,response:a});return r}if(t.length<=1){let[i,o]=t[0]??[];if(t.length===0)return r.push({id:i,request:void 0,response:o}),r;for(let[s,a]of e)r.push({id:s??i,request:a,response:o});return r}let n=new Set;for(let[i,o]of e){let s=t.find(([c])=>c==null)?.[1]??t[0]?.[1];if(i==null){if(s==null)continue;r.push({id:void 0,request:o,response:s});continue}let a=!1;for(let c=0;c<t.length;c++){let[u,l]=t[c];u==null||n.has(c)||i===u&&(r.push({id:i,request:o,response:l}),u!=null&&n.add(c),a=!0)}!a&&s!=null&&r.push({id:i,request:o,response:s})}for(let i=0;i<t.length;i++){if(n.has(i))continue;let[o,s]=t[i],a=e.find(([c])=>c==null)?.[1]??e[0]?.[1];a!=null&&r.push({id:o,request:a,response:s})}return r}function ZDy(e){if(e!=null)return e.type==="multipart"?{type:"present",schema:tRy(e),examples:[]}:e.type==="json"||e.type==="formUrlEncoded"?{type:"present",schema:e.schema,examples:e.fullExamples??[]}:{type:"unsupported"}}function eRy(e){if(e!=null)return e.type!=="json"&&e.type!=="streamingJson"&&e.type!=="streamingSse"?{type:"unsupported"}:{type:"present",schema:e.schema,examples:e.fullExamples??[]}}function Uue(e){switch(e.type){case"primitive":case"enum":case"literal":return!0;case"unknown":return Uue(e);case"array":case"object":case"map":return!1;case"oneOf":switch(e.value.type){case"discriminated":return!1;case"undiscriminated":return Uue(e.value.value);default:return!1}case"null":return!0;default:Ue(e)}}function tRy(e){return Fn.object({properties:e.properties.map(t=>t.schema.type==="file"?null:{key:t.key,schema:Vue(t.schema.value),audiences:[],conflict:{},generatedName:t.key,nameOverride:void 0,availability:void 0,readonly:void 0,writeonly:void 0,inline:void 0}).filter(tu),allOf:[],allOfPropertyConflicts:[],fullExamples:void 0,description:e.description,nameOverride:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,additionalProperties:!1,availability:void 0,source:e.source,inline:void 0,minProperties:void 0,maxProperties:void 0})}var R4t=class{exampleTypeFactory;schemas;constructor(t,r){this.exampleTypeFactory=new RGe(t,new Set,r),this.schemas=t}buildWebsocketSessionExamplesForExtension({context:t,extensionExamples:r,handshake:n,source:i,namespace:o}){let s=[];for(let a of r){let c=[];for(let p of n.queryParameters){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.queryParameters?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(f=void 0),!(m&&f==null)&&f!=null&&c.push({name:p.name,value:f})}let u=[];for(let p of n.headers){let m=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.headers?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!Uue(f)&&(f=void 0),!(m&&f==null)&&f!=null&&u.push({name:p.name,value:f})}let l=[];for(let p of a.messages){let m=t.getExampleMessageReference(p),f=t.resolveMessageReference({$ref:m}),h=yo(f.payload)?t.resolveSchemaReference(f.payload):f.payload,g=this.exampleTypeFactory.buildExample({schema:Nl(h,!1,!1,t,[p.messageId],i,o),exampleId:void 0,example:p.value,options:{isParameter:!1,ignoreOptionals:!0}});g!=null&&l.push({messageType:p.type,payload:g,description:void 0})}s.push({name:a.summary,queryParameters:c,headers:u,description:a.description,messages:l})}return s}buildWebsocketSessionExample({handshake:t,messages:r}){let n={name:void 0,queryParameters:[],headers:[],description:void 0,messages:[]},i=[];for(let s of t.queryParameters){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!Uue(c)&&(c=void 0),a&&c==null)return;c!=null&&i.push({name:s.name,value:c})}let o=[];for(let s of t.headers){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!Uue(c)&&(c=void 0),a&&c==null)return;c!=null&&o.push({name:s.name,value:c})}for(let s of r){let a=this.exampleTypeFactory.buildExample({schema:s.payload,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});a!=null&&n.messages.push({messageType:s.type,payload:a,description:void 0})}return n}isSchemaRequired(t){return fPn(this.getResolvedSchema(t))}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new Error(`Unexpected error: Failed to resolve schema reference: ${t.schema}`);t=r}return t}};var H1={FERN_PARAMETER_OPTIONAL:"x-fern-optional",FERN_CHANNEL_ADDRESS:"x-fern-address",FERN_DISPLAY_NAME:"x-fern-display-name",FERN_SDK_GROUP_NAME:"x-fern-sdk-group-name",FERN_SDK_METHOD_NAME:"x-fern-sdk-method-name",FERN_EXAMPLES:"x-fern-examples",BASE_PATH:"x-fern-base-path",FERN_ENUM:"x-fern-enum",IGNORE:"x-fern-ignore",FERN_PARAMETER_NAME:"x-fern-parameter-name"};function dPn(e){return Jn(e,H1.FERN_EXAMPLES)??[]}function hPn(e,t){return t.includes("://")?t:`${e}://${t}`}function gPn(e){return e.startsWith("/")?e:"/"+e}function Jil({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){let o={},s={};for(let[u,l]of Object.entries(i.components?.schemas??{})){let p=Nl(l,!1,!1,e,[u],r,e.namespace);o[u]=p}let a=new R4t(o,e),c={};for(let[u,l]of Object.entries(i.servers??{}))c[u]={name:u,url:hPn(l.protocol,l.url)};for(let[u,l]of Object.entries(i.channels??{})){let p=Jn(l,H1.IGNORE);if(p!=null&&p){e.logger.debug(`Channel ${u} is marked with x-fern-ignore. Skipping.`);continue}let m=[];if(l.parameters!=null)for(let[A,b]of Object.entries(l.parameters??{})){let v=Jn(b,H1.FERN_PARAMETER_NAME);m.push({name:A,description:b.description,parameterNameOverride:v,schema:b.schema!=null?Nl(b.schema,!1,!1,e,t,r,e.namespace):Fn.primitive({schema:No.string({default:void 0,pattern:void 0,format:void 0,maxLength:void 0,minLength:void 0,example:void 0}),description:void 0,availability:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}),variableReference:void 0,availability:yQ(b),source:r,explode:void 0})}let f=[],h=[];if(l.bindings?.ws!=null){if(l.bindings.ws.headers!=null){let A=l.bindings.ws.headers.required??[];for(let[b,v]of Object.entries(l.bindings.ws.headers.properties??{})){if(yo(v)){let P=e.resolveSchemaReference(v),x=A.includes(b),[I,F]=e.options.coerceOptionalSchemasToNullable?[!1,!x]:[!x,!1];f.push({name:b,schema:Que(v,I,F,e,t,void 0,r,e.namespace),description:P.description,parameterNameOverride:void 0,env:void 0,availability:yQ(P),source:r});continue}let _=A.includes(b),[O,E]=e.options.coerceOptionalSchemasToNullable?[!1,!_]:[!_,!1];f.push({name:b,schema:Nl(v,O,E,e,[...t,b],r,e.namespace),description:v.description,parameterNameOverride:void 0,env:void 0,availability:yQ(v),source:r})}}if(l.bindings.ws.query!=null){let A=l.bindings.ws.query.required??[];for(let[b,v]of Object.entries(l.bindings.ws.query.properties??{})){if(yo(v)){let P=e.resolveSchemaReference(v),x=A.includes(b),[I,F]=e.options.coerceOptionalSchemasToNullable?[!1,!x]:[!x,!1];h.push({name:b,schema:Que(v,I,F,e,t,void 0,r,e.namespace),description:P.description,parameterNameOverride:void 0,availability:yQ(P),source:r,explode:void 0});continue}let _=A.includes(b),[O,E]=e.options.coerceOptionalSchemasToNullable?[!1,!_]:[!_,!1];h.push({name:b,schema:Nl(v,O,E,e,[...t,b],r,e.namespace),description:v.description,parameterNameOverride:void 0,availability:yQ(v),source:r,explode:void 0})}}}let g;l.publish!=null&&("oneOf"in l.publish.message?g=$il({generatedName:l.publish.operationId??"PublishEvent",event:l.publish,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):g=Kil({action:"Publish",channelPath:u,message:l.publish.message,context:e,source:r}));let y;if(l.subscribe!=null&&("oneOf"in l.subscribe.message?y=$il({generatedName:l.subscribe.operationId??"SubscribeEvent",event:l.subscribe,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):y=Kil({action:"Subscribe",channelPath:u,message:l.subscribe.message,context:e,source:r})),f.length>0||h.length>0||g!=null||y!=null){let A=dPn(l),b=[];if(A.length>0)b=a.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:A,handshake:{headers:f,queryParameters:h},source:r,namespace:e.namespace});else{let E=[];g!=null&&E.push({type:"publish",payload:g}),y!=null&&E.push({type:"subscribe",payload:y});let P=a.buildWebsocketSessionExample({handshake:{headers:f,queryParameters:h},messages:E});P!=null&&b.push(P)}let v=Jn(l,H1.FERN_CHANNEL_ADDRESS),_=v??gPn(u),O=[];g!=null&&O.push({origin:"client",name:"publish",body:hb(g),methodName:void 0}),y!=null&&O.push({origin:"server",name:"subscribe",body:hb(y),methodName:void 0}),s[u]={audiences:Jn(l,Ii.AUDIENCES)??[],handshake:{headers:f.map(E=>({...E,schema:hb(E.schema),env:E.env})),queryParameters:h.map(E=>({...E,schema:hb(E.schema)})),pathParameters:m.map(E=>({...E,schema:hb(E.schema)}))},groupName:e.resolveGroupName([Jn(l,H1.FERN_SDK_GROUP_NAME)??u]),messages:O,servers:(l.servers?.map(E=>c[E])??Object.values(c)).filter(E=>E!=null&&E.name!=null).map(E=>({...E,name:E.name})),summary:Jn(l,H1.FERN_DISPLAY_NAME),connectMethodName:Jn(l,H1.FERN_SDK_METHOD_NAME),path:_,description:l.description,examples:b,source:r}}}return{groupedSchemas:T4t(e.namespace,o),channels:s??void 0,servers:Object.values(c).map(u=>({...u,name:u.name})),basePath:Jn(i,H1.BASE_PATH)}}function $il({generatedName:e,event:t,context:r,breadcrumbs:n,source:i,options:o,asyncApiOptions:s}){if("oneOf"in t.message&&t.message.oneOf!=null){let a=[],c=[];for(let u of t.message.oneOf){let l,p={type:"notFound"};if(yo(u)){let m=r.resolveMessageReference(u);!yo(m.payload)&&s.naming==="v2"?(p=m.name?{type:"name",name:m.name}:p,l={...m.payload,title:m.name??m.payload.title,description:m.name??m.payload.description}):l=m.payload}else l=u;c.push(p),a.push(l)}return TGe({description:t.description??t.message.description,availability:yQ(t.message),subtypes:a,nameOverride:t.operationId,generatedName:e,title:t.message.title,groupName:void 0,wrapAsOptional:!1,wrapAsNullable:!1,breadcrumbs:n,context:r,encoding:void 0,source:i,namespace:r.namespace,subtypeSuffixOverrides:s.naming==="v2"?c:[]})}}function Kil({action:e,channelPath:t,message:r,context:n,source:i}){if(r.payload!=null){let o=r.payload;return yo(r.payload)&&(o=n.resolveSchemaReference(r.payload)),Nl(o,!1,!1,n,[t,e],i,n.namespace)}}var yPn=class extends B4t{getExampleMessageReference(t){let r=t.channelId??this.getDefaultChannelId();if(r==null)throw new Error("Cannot resolve example message reference: no channelId provided and no channels found in document");return`#/channels/${r}/messages/${t.messageId}`}getDefaultChannelId(){return Object.keys(this.document.channels??{})[0]}resolveParameterReference(t){let r="#/components/parameters/";if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(r))throw new Error(`Failed to resolve ${t.$ref}`);let n=t.$ref.substring(r.length),i=this.document.components.parameters[n];if(i==null)throw new Error(`${t.$ref} is undefined`);return"$ref"in i?this.resolveParameterReference(i):i}resolveMessageReference(t,r=!1){let n="#/channels/",i="#/components/messages/";if(t==null)throw new Error("Cannot resolve message reference: message is null or undefined");if(!t.$ref)throw new Error("Cannot resolve message reference: message.$ref is undefined or empty");if(t.$ref.startsWith(n)){let c=t.$ref.split("/"),u=c[2],l=c[4],p=u?.replace(/~1/g,"/").replace(/~0/g,"~");if(p==null||l==null||!this.document.channels?.[p])throw new Error(`Failed to resolve message reference ${t.$ref} in channel ${p}`);let f=this.document.channels[p].messages?.[l];if(f==null)throw new Error(`${t.$ref} is undefined`);return"$ref"in f&&!r?this.resolveMessageReference(f):{...f,name:l}}let o=this.document.components;if(!t.$ref.startsWith(i)||!o?.messages)throw new Error(`Failed to resolve message reference: ${t.$ref} in v3 components`);let s=t.$ref.substring(i.length),a=o.messages[s];if(a==null)throw new Error(`${t.$ref} is undefined`);return{...a,name:s}}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}};Ni();var Yil="#/channels/",Xil="#/servers/",PMs="$message.";function eol({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){lPn();let o={},s={},a={},c=[],u={};e.logger.debug("Parsing V3 AsyncAPI...");let l=L_e();for(let[P,x]of Object.entries(i.components?.schemas??{})){let I=l.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);o[I]=Nl(x,!1,!1,e,[I],r,e.namespace)}for(let[P,x]of Object.entries(i.channels??{}))if(s[P]||(s[P]={}),x.messages)for(let[I,F]of Object.entries(x.messages))if(a[I]||(a[I]=[]),e.isReferenceObject(F)){let q=e.resolveMessageReference(F);a[I].push({channelId:P,payload:q.payload})}else e.isMessageWithPayload(F)&&a[I].push({channelId:P,payload:F.payload});for(let[P,x]of Object.entries(a))if(x.length===1){let I=x[0],F=I.channelId;s[F]=s[F]||{},s[F][P]=Nl(I.payload,!1,!1,e,[P],r,e.namespace)}else{c.push(P);for(let{channelId:I,payload:F}of x){let q=`${I}_${P}`;s[I]||(s[I]={}),s[I][q]=Nl(F,!1,!1,e,[q],r,e.namespace)}}let p={},m=L_e();for(let[P,x]of Object.entries(s))for(let[I,F]of Object.entries(x)){let q=m.getUniqueSchemaId(I,e.logger,e.options.resolveSchemaCollisions);p[q]=F}let f=new R4t({...o,...p},e),h={};for(let[P,x]of Object.entries(i.servers??{}))h[P]={name:P,url:hPn(x.protocol,x.host)};let g={},y=Object.keys(i.channels??{});for(let[P,x]of Object.entries(i.operations??{})){if(Jn(x,H1.IGNORE))continue;let I;if(x.channel==null||!("$ref"in x.channel)||x.channel.$ref==null)if(y.length===1&&y[0]!=null)I=y[0];else continue;else I=nRy(x);g[I]||(g[I]={subscribe:[],publish:[],__parsedMessages:[]});let F=Jn(x,H1.FERN_SDK_METHOD_NAME);if(!x.messages||!Array.isArray(x.messages))continue;let q=x.messages.filter($=>$!=null&&$.$ref!=null).map($=>({ref:$,methodName:F})),W=g[I];if(W==null)throw new Error(`Internal error: channelEvents["${I}"] is unexpectedly undefined for operation ${P}`);if(x.action==="receive")W.subscribe.push(...q);else if(x.action==="send")W.publish.push(...q);else throw new Error(`Operation ${P} has an invalid action: ${x.action}`)}for(let[P,x]of Object.entries(g)){let I=[];I.push(...Zil({messages:x.subscribe,channelPath:P,origin:"server",messageSchemas:s[P]??{},duplicatedMessageIds:c,context:e})),I.push(...Zil({messages:x.publish,channelPath:P,origin:"client",messageSchemas:s[P]??{},duplicatedMessageIds:c,context:e})),g[P]!=null&&(g[P].__parsedMessages=I)}for(let[P,x]of Object.entries(i.channels??{})){if(Jn(x,H1.IGNORE))continue;let I=[],F=[],q=[];if(x.parameters!=null)for(let[W,$]of Object.entries(x.parameters)){let re=e.isReferenceObject($)?e.resolveParameterReference($):$,{type:ce,parameterKey:G}=re.location!=null?iRy(re.location):{type:x.address?.includes(`={${W}}`)?"query":"path",parameterKey:W},ee=Jn(re,H1.FERN_PARAMETER_OPTIONAL),We=wd(ao(P))+wd(ao(W)),$e=re.schema!=null?yo(re.schema)?Que(re.schema,!1,!1,e,[G],void 0,r,e.namespace):Nl(re.schema,!1,!1,e,[G],r,e.namespace):Nl({...re,type:"string",title:We,example:re.examples?.[0],default:re.default,enum:re.enum,required:void 0},!1,!1,e,[G],r,e.namespace),Z=ee?Fn.optional({value:$e,description:void 0,availability:void 0,generatedName:"",title:We,namespace:void 0,groupName:void 0,nameOverride:void 0,inline:void 0}):$e,X={name:G,description:re.description,parameterNameOverride:void 0,schema:Z,variableReference:void 0,availability:yQ($),source:r,explode:void 0};ce==="header"?I.push({...X,env:void 0}):ce==="path"?F.push(X):(ce==="payload"||ce==="query")&&q.push(X)}if(I.length>0||q.length>0||g[P]!=null&&(g[P].publish!=null||g[P].subscribe!=null)){let W=dPn(x),$=g[P]?.__parsedMessages??[],re=[];try{if(W.length>0)re=f.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:W,handshake:{headers:I,queryParameters:q},source:r,namespace:e.namespace});else{let $e=[],{examplePublishMessage:Z,exampleSubscribeMessage:X}=sRy({messages:$,messageSchemas:s[P]??{}});Z!=null&&$e.push(Z),X!=null&&$e.push(X);let Ne=f.buildWebsocketSessionExample({handshake:{headers:I,queryParameters:q},messages:$e});Ne!=null&&re.push(Ne)}}catch($e){e.logger.warn(`Failed to build examples for channel ${P}: ${$e instanceof Error?$e.message:String($e)}`)}let ce=Jn(x,H1.FERN_SDK_GROUP_NAME),G=Jn(x,H1.FERN_SDK_METHOD_NAME),ee=(x.servers?.map($e=>oRy(h,$e))??Object.values(h)).map($e=>({...$e,name:$e.name})),We=x.address?.split("?")[0]??gPn(P);u[P]={audiences:Jn(x,Ii.AUDIENCES)??[],handshake:{headers:I.map($e=>({...$e,schema:hb($e.schema),env:$e.env})),queryParameters:q.map($e=>({...$e,schema:hb($e.schema)})),pathParameters:F.map($e=>({...$e,parameterNameOverride:void 0,schema:hb($e.schema)}))},groupName:e.resolveGroupName(typeof ce=="string"?[ce]:ce??[P]),messages:$,summary:Jn(x,H1.FERN_DISPLAY_NAME),connectMethodName:G,servers:ee,path:We,description:x.description,examples:re,source:r}}else e.logger.warn(`Skipping AsyncAPI channel ${P} as it does not qualify for inclusion (no headers, query params, or operations)`)}let A={...o,...p},b={},v=L_e();for(let[P,x]of Object.entries(A)){let I=v.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);b[I]=hb(x)}let _=T4t(e.namespace,o),O=Object.values(h).map(P=>({...P,name:P.name})),E=Jn(i,H1.BASE_PATH);return{groupedSchemas:_,channels:u,servers:O,basePath:E}}function rRy(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function nRy(e){if(!e.channel)throw new Error("Operation is missing required 'channel' field");if(!e.channel.$ref)throw new Error("Operation channel is missing required '$ref' field");if(!e.channel.$ref.startsWith(Yil))throw new Error(`Failed to resolve channel path from operation ${e.channel.$ref}`);return rRy(e.channel.$ref.substring(Yil.length))}function iRy(e){try{let[t,r]=e.split("#/");if(t==null||r==null)throw new Error(`Invalid location format: ${e}; unable to parse message type and parameter key`);if(!t.startsWith(PMs))throw new Error(`Invalid location format: ${e}; expected ${PMs} prefix`);let n=t.substring(PMs.length);if(n!=="header"&&n!=="path"&&n!=="payload")throw new Error(`Invalid message type: ${n}. Must be one of: header, path, payload`);return{type:n,parameterKey:r}}catch{throw new Error(`Invalid location format: ${e}; see here for more details: https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression`)}}function oRy(e,t){if(!t.$ref.startsWith(Xil))throw new Error(`Failed to resolve server name from server ref ${t.$ref}`);let r=t.$ref.substring(Xil.length),n=e[r];if(n==null)throw new Error(`Failed to find server with name ${r}`);return n}function Zil({messages:e,channelPath:t,origin:r,messageSchemas:n,duplicatedMessageIds:i,context:o}){let s=[];return e.forEach((a,c)=>{try{let l=o.resolveMessageReference(a.ref,!0).name;i.includes(l)&&(l=`${t}_${l}`);let p=n[l];p!=null&&s.push({origin:r,name:l??`${r}Message${c+1}`,body:hb(p),methodName:a.methodName})}catch(u){o.logger.warn(`Skipping message reference ${a.ref.$ref} in channel ${t}: ${u instanceof Error?u.message:String(u)}`)}}),s}function sRy({messages:e,messageSchemas:t}){let r=e.find(s=>s.origin==="client")?.name,n=e.find(s=>s.origin==="server")?.name,i=r!=null?t[r]:void 0,o=n!=null?t[n]:void 0;return{examplePublishMessage:i!=null&&r!=null?{type:r,payload:i}:void 0,exampleSubscribeMessage:o!=null&&n!=null?{type:n,payload:o}:void 0}}function tol({document:e,taskContext:t,options:r,source:n,asyncApiOptions:i,namespace:o}){let s=[];if(o!=null&&s.push(o),parseFloat(e.asyncapi)<3){let a=e;a.tags?.[0]!=null?s.push(a.tags[0].name):i.naming!=="v2"&&s.push("websocket");let c=new pPn({document:a,taskContext:t,options:r,namespace:o});return Jil({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}else{let a=e,c=new yPn({document:a,taskContext:t,options:r,namespace:o});return eol({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}}pr();Ni();Ni();function rol(e){return Jn(e,Ii.ASYNC_CONFIG)}var nol="$request.";function iol(e){let t=Jn(e,Ii.STREAMING);if(t!=null)return typeof t=="boolean"?t?{type:"stream",format:"json",terminator:void 0}:void 0:t["stream-condition"]==null&&t.format!=null?{type:"stream",format:t.format,terminator:t.terminator}:{type:"streamCondition",format:t.format??"json",terminator:t.terminator,streamDescription:t["stream-description"],streamConditionProperty:aRy(t["stream-condition"]),responseStream:t["response-stream"],response:t.response}}function aRy(e){return e.startsWith(nol)?e.slice(nol.length):e}function ool(e){let t=e;if(t.cursor!=null)return W1.cursor({cursor:t.cursor,nextCursor:t.next_cursor,results:t.results});let r=e;if("next_uri"in r)return W1.uri({nextUri:r.next_uri,results:r.results});let n=e;if("next_path"in n)return W1.path({nextPath:n.next_path,results:n.results});if("offset"in e){let i=e;return W1.offset({offset:i.offset,results:i.results,step:i.step,hasNextPage:i["has-next-page"]})}if("type"in e&&e.type==="custom"){let i=e;return W1.custom({results:i.results})}throw new Error("Invalid pagination extension")}function sol(e,t){let r=Jn(t,Ii.PAGINATION);if(r!=null){if(typeof r=="boolean"){let n=Jn(e,Ii.PAGINATION);if(typeof n=="boolean")throw new Error("Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.");return n==null?void 0:ool(n)}return ool(r)}}function aol(e,t){for(let r of Object.keys(e))if(r.includes("text/event-stream")){let n=e[r];if(n==null)continue;let i=n,o=n.schema??i.itemSchema;return{contentType:r,schema:o??{},examples:F4t(n,t)}}}function col(e){for(let t of Object.keys(e))if(t.includes("text/event-stream")){let r=e[t];if(r==null)continue;if(r.itemSchema!=null)return!0}return!1}function cRy(e){return e.includes("json")||e==="*/*"}function IMs({content:e,context:t}){for(let[r,n]of Object.entries(e))if(APn({mediaType:r,mediaTypeObject:n,context:t})!=null)return[r,n]}function APn({mediaType:e,mediaTypeObject:t,context:r}){if(!cRy(e))return;let n=t.schema;return{contentType:e.includes("*")?void 0:e,schema:n??{},examples:F4t(t,r)}}function bPn({content:e,context:t}){let r=IMs({content:e,context:t});if(!r)return;let[n,i]=r;return APn({mediaType:n,mediaTypeObject:i,context:t})}function uol(e,t){for(let r of Object.keys(e)){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:F4t(n,t)}}}function F4t(e,t){let r=[];e.example!=null&&r.push({name:void 0,value:e.example,description:void 0});let n=Jn(e,jz.EXAMPLES);return n!=null&&Object.keys(n).length>0&&r.push(...Object.entries(n).map(([i,o])=>({name:o.summary??i,value:o.value,description:o.description}))),e.examples!=null&&Object.keys(e.examples).length>0&&r.push(...Object.entries(e.examples).map(([i,o])=>{let s=yo(o)?t.resolveExampleReference(o):o;return{name:s.summary??i,value:s.value,description:s.description}})),r}pr();pr();function lol(e){let t=uRy(e),r={};return CMs({obj:t,occurrences:r,breadcrumbs:[]}),r}function CMs({obj:e,occurrences:t,breadcrumbs:r}){if(e!=null){if(Array.isArray(e)){for(let n of e)CMs({obj:n,occurrences:t,breadcrumbs:r});return}if(typeof e=="object"){if(e.$ref!=null&&typeof e.$ref=="string"){let n=e.$ref;t[n]==null?t[n]=1:t[n]+=1;return}for(let n in e)CMs({obj:e[n],occurrences:t,breadcrumbs:[...r,n]})}}}function uRy(e){return{...e,paths:Object.fromEntries(Object.entries(e.paths??{}).map(([t,r])=>[t,{...r,get:r?.get!=null?Kjr(r.get):void 0,put:r?.put!=null?Kjr(r.put):void 0,post:r?.post!=null?Kjr(r.post):void 0,patch:r?.patch!=null?Kjr(r.patch):void 0,delete:r?.delete!=null?Kjr(r.delete):void 0}]))}}function Kjr(e){return{...e,requestBody:e.requestBody!=null?yo(e.requestBody)?e.requestBody:lRy(e.requestBody):void 0}}function lRy(e){let t,r;for(let n in e.content){let i=ib.parse(n);i!=null&&(i.isJSON()?t=e.content[n]:i.isMultipart()&&(r=e.content[n]))}return r!=null&&t!=null?{...e,content:{[ib.MULTIPART_FORM_DATA]:r}}:e}var _Pn=class{endpoints;parser=new lMe;constructor({context:t,options:r}){this.endpoints=r.filter?.endpoints?new Set(this.validateAndFilterEndpoints({context:t,endpoints:r.filter.endpoints})):void 0}skipEndpoint({method:t,path:r}){return this.endpoints!=null&&!this.endpoints.has(`${t} ${r}`)}hasEndpoints(){return this.endpoints!=null}validateAndFilterEndpoints({context:t,endpoints:r}){let n=[];for(let i of r){let o=this.parser.tryParse(i);if(o==null){t.logger.debug(`Ignoring configured filter endpoint "${i}"; expected format "POST /users/get"`);continue}n.push(`${o.method} ${o.path}`)}return n}};var pol="#/components/parameters/",fol="#/components/responses/",mol="#/components/examples/",dol="#/components/requestBodies/",hol="#/components/securitySchemes/",N4t=class{logger;document;taskContext;authHeaders;refOccurrences;DUMMY;options;source;filter;namespace;schemaNamespaceMapping;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){this.document=t,this.logger=r.logger,this.taskContext=r,this.authHeaders=n,this.refOccurrences=lol(t),this.options=i,this.source=o,this.filter=new _Pn({context:r,options:i}),this.DUMMY=this.getDummy(),this.namespace=s,this.schemaNamespaceMapping=this.buildSchemaNamespaceMapping()}getNumberOfOccurrencesForRef(t){return this.refOccurrences[t.$ref]??0}resolveTagsToTagIds(t){let r=[];return this.namespace!=null&&r.push(this.namespace),r.concat(t??[])}resolveTags(t){let r=[];if(this.namespace!=null){let n={type:"namespace",name:this.namespace};r.push(n)}return r.concat(t??[])}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveSchemaReference(t){let r=t.$ref.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return{"x-fern-type":"unknown"};if(Array.isArray(n)){let o=parseInt(i,10);if(isNaN(o)||o<0||o>=n.length)return{"x-fern-type":"unknown"};n=n[o]}else n=n[i]}return n==null?(this.logger.debug(`Encountered undefined reference: ${t.$ref}`),{"x-fern-type":"unknown"}):(yo(n)&&(n=this.resolveSchemaReference(n)),n)}resolveParameterReference(t){if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(pol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(pol.length),n=this.document.components.parameters[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveParameterReference(n):n}resolveRequestBodyReference(t){if(this.document.components==null||this.document.components.requestBodies==null||!t.$ref.startsWith(dol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(dol.length),n=this.document.components.requestBodies[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveRequestBodyReference(n):n}resolveResponseReference(t){if(this.document.components==null||this.document.components.responses==null||!t.$ref.startsWith(fol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(fol.length),n=this.document.components.responses[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveResponseReference(n):n}resolveExampleReference(t){if(this.document.components==null||this.document.components.examples==null||!t.$ref.startsWith(mol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(mol.length),n=this.document.components.examples[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveExampleReference(n):n}resolveSecuritySchemeReference(t){if(this.document.components==null||this.document.components.securitySchemes==null||!t.$ref.startsWith(hol))throw new Error(`Failed to resolve ${t.$ref}`);let r=t.$ref.substring(hol.length),n=this.document.components.securitySchemes[r];if(n==null)throw new Error(`${t.$ref} is undefined`);return yo(n)?this.resolveSecuritySchemeReference(n):n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}getNamespace(t){return this.schemaNamespaceMapping?.get(t)}buildSchemaNamespaceMapping(){let t=new Map;if(!this.document.components?.schemas)return t;for(let[r,n]of Object.entries(this.document.components.schemas))!n||yo(n)||t.set(r,Jn(n,Ii.SDK_NAMESPACE)||this.namespace);return t}};var Xvt=class extends N4t{constructor({document:t,taskContext:r,options:n,source:i,namespace:o}){super({document:t,taskContext:r,authHeaders:new Set,options:n,source:i,namespace:o})}getDummy(){return this}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}getReferencedSchemas(){return new Set}markReferencedByDiscriminatedUnion(t,r,n){}getReferencesFromDiscriminatedUnion(t){}excludeSchema(t){}isSchemaExcluded(t){return!1}markSchemaWithDiscriminantValue(t,r,n){}getDiscriminatedUnionMetadata(t){}};pr();var vPn=require("fs"),OPn=require("path");var pRy=Zt.object({lang:Zt.string(),label:Zt.optional(Zt.string()),source:Zt.string()}),SMs=Zt.array(pRy);pr();var gol={README_EXT:"x-readme"};function fRy(e){if(!Array.isArray(e))return!1;for(let t of e)if(!Lu(t)||typeof t.language!="string"||typeof t.code!="string")return!1;return!0}function yol(e){let t=Jn(e,gol.README_EXT);if(!Lu(t))return[];let r=t["code-samples"];if(!fRy(r))return[];let n=[];for(let i of r)n.push({name:i.name,language:i.language,code:i.code,install:i.install,docs:void 0});return n}function mRy(e){return Lu(e)&&typeof e.$ref=="string"}function dRy(e,t){if(e!=null){if(typeof e=="string")return e;if(mRy(e)){let r=(0,OPn.resolve)(t??process.cwd(),e.$ref);if((0,vPn.existsSync)(r))try{return(0,vPn.readFileSync)(r,"utf-8")}catch{return}}}}function hRy(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!Lu(n))continue;let o=dRy(n.code,t);o!=null&&r.push({...n,code:o})}return r}function Aol(e,t,r){let n=Jn(t,Ii.EXAMPLES),i=r.source.type==="openapi"?(0,OPn.dirname)(r.source.file):void 0,s=(n??[]).map(p=>{if(!Lu(p))return p;let f=p["code-samples"];if(f!=null){let h=hRy(f,i);return{...p,"code-samples":h}}return p}).filter(p=>{let m=L0.serialization.ExampleEndpointCallSchema.parse(p);return m.ok||r.logger.error(`Failed to parse x-fern-example in ${e.path}/${e.method}`),m.ok}),a=Ljr(t,jz.REDOCLY_CODE_SAMPLES_KEBAB,SMs,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],u=[...Ljr(t,jz.REDOCLY_CODE_SAMPLES_CAMEL,SMs,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],...a];u.length>0&&s.push({"code-samples":u.map(p=>({name:p.label??p.lang,language:p.lang,code:p.source,install:void 0,docs:void 0}))});let l=yol(t);return l.length>0&&s.push({"code-samples":l}),s.map(UJ.unknown)}function bol(e){let t=Jn(e,Ii.AVAILABILITY);if(t==="ga"||t==="generally-available")return DR.GenerallyAvailable;if(t==="beta"||t==="pre-release")return DR.Beta;if(t==="deprecated")return DR.Deprecated;if(e.deprecated)return DR.Deprecated}function _ol(e){let t=Jn(e,Ii.RETRIES);if(t!=null&&t.disabled===!0)return Dw.RetriesConfiguration.disabled(t.disabled)}var gRy="x-fern-default-url";function EPn(e,t){let r=e.variables!=null&&Object.keys(e.variables).length>0,n=yRy(e);return{url:bRy({url:e.url,variables:e.variables??{}}),description:e.description,name:_Ry(e,t),audiences:Jn(e,Ii.AUDIENCES),urlTemplate:r?e.url:void 0,variables:r&&e.variables!=null?ARy(e.variables):void 0,defaultUrl:r?n:void 0}}function yRy(e){let t=e[gRy];if(typeof t=="string")return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}function ARy(e){return Object.entries(e).map(([t,r])=>({id:t,default:r.default,values:r.enum}))}function bRy({url:e,variables:t}){let r=Object.fromEntries(Object.entries(t).map(([n,i])=>[n,i.default]));for(let[n,i]of Object.entries(r))e=e.replace(`{${n}}`,encodeURIComponent(i));return e}function _Ry(e,t){let r=Jn(e,[Ii.SERVER_NAME_V1,Ii.SERVER_NAME_V2]);if(r!=null)return r;if(e.description?.toLowerCase()==="production")return"Production";if(e.description?.toLowerCase()==="sandbox")return"Sandbox";if(t?.groupMultiApiEnvironments&&e.description!=null&&e.description.trim()!==""){let n=e.description.toLowerCase();return n==="prd"?"Production":n==="sbx"?"Sandbox":n==="staging"||n==="stg"?"Staging":n==="development"||n==="dev"?"Development":e.description}}function vol(e){return Jn(e,Ii.PARAMETER_NAME)}function Ool(e){return Jn(e,Ii.SDK_VARIABLE)}function wPn({path:e,httpMethod:t,parameters:r,context:n,requestBreadcrumbs:i,source:o}){let s={pathParameters:[],queryParameters:[],headers:[]};for(let a of r){let c=yo(a)?n.resolveParameterReference(a):a,u=Jn(a,Ii.IGNORE)??Jn(c,Ii.IGNORE);if(u!=null&&u){n.logger.debug(`${t.toUpperCase()} ${e} has a parameter marked with x-fern-ignore. Skipping.`);continue}let l=c.required??!1,p=yQ(c),m=[...i,c.name],f=cj(m,n.options.preserveSchemaIds),h=c.in==="header",[g,y]=n.options.coerceOptionalSchemasToNullable&&!h?[!1,!l]:[!l,!1],A=c.schema!=null?Nl(c.schema,g,y,n,m,o,n.namespace,!1,new Set,Mue({schema:c,logger:n.logger})):l?Fn.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:No.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:Mue({schema:c,logger:n.logger})}),description:void 0,availability:p,namespace:void 0,groupName:void 0}):Fn.optional({nameOverride:void 0,generatedName:f,title:void 0,value:Fn.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:No.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:Mue({schema:c,logger:n.logger})}),description:void 0,availability:void 0,namespace:void 0,groupName:void 0}),description:void 0,availability:p,namespace:void 0,groupName:void 0,inline:void 0});if(c.in==="header"&&c.schema!=null&&!yo(c.schema)&&c.schema.default!=null){let v=c.schema.default;typeof v=="string"&&v.length>0&&(A=Fn.literal({nameOverride:void 0,generatedName:f,title:void 0,value:cx.string(v),description:void 0,availability:p,namespace:void 0,groupName:void 0}))}let b={name:c.name,schema:A,description:c.description,parameterNameOverride:vol(c),availability:p,source:o};c.in==="query"?s.queryParameters.push({...b,explode:ORy(c)}):c.in==="path"?s.pathParameters.push({...b,variableReference:Ool(c),explode:ERy(c)}):c.in==="header"?!vRy.has(c.name.toLowerCase())&&!n.authHeaders.has(c.name)?s.headers.push({...b,env:void 0}):n.logger.debug(`Ignoring ${c.name} header, in ${t.toUpperCase()} ${e}`):n.logger.warn(`Skipping ${c.in} parameter, ${c.name}, in ${t.toUpperCase()} ${e}`)}return s}var vRy=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]);function ORy(e){let t=e.style??"form",r=e.explode;if(r!==void 0)return t==="form"?r===!0?void 0:r:r===!1?void 0:r}function ERy(e){let t=e.explode;if(t!==void 0)return t===!1?void 0:t}pr();function wRy({content:e,context:t}){for(let[r,n]of Object.entries(e))if(wol({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function wol({mediaType:e,mediaTypeObject:t,context:r}){if(ib.parse(e)?.isURLEncoded())return{schema:t.schema,contentType:e,examples:F4t(t,r)}}function xRy({content:e,context:t}){for(let[r,n]of Object.entries(e))if(xol({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function xol({mediaType:e,mediaTypeObject:t,context:r}){if(ib.parse(e)?.isMultipart())return{schema:t.schema,encoding:t.encoding,examples:F4t(t,r)}}function Pol({mediaType:e}){return ib.parse(e)?.isBinary()??!1}function PRy({content:e}){for(let[t,r]of Object.entries(e))if(Pol({mediaType:t}))return[t,r]}function IRy(e,t){let r=yo(e)?jMs(e,t):{id:void 0,schema:e};return Object.entries(r.schema.properties??{}).find(([n,i])=>!yo(i)&&i.type==="string"&&(i.format==="binary"||i.format==null&&i.contentMediaType==="application/octet-stream"))!=null}function PPn({content:e,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}){let a=PRy({content:e});if(a){let[m,f]=a;return W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}let c=xRy({content:e,context:n}),u=IMs({content:e,context:n}),l=CRy({json:u,multipart:c,document:r,visitor:{json:([m,f])=>W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),multipart:([m,f])=>W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),neither:()=>{}}});if(l)return l;let p=wRy({content:e,context:n});if(p){let[m,f]=p;return W_e({mediaType:m,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}}function CRy({json:e,multipart:t,document:r,visitor:n}){if(!e&&!t)return n.neither();let[,i]=e??[void 0,void 0],[,o]=t??[void 0,void 0];return!i?.schema&&!o?.schema?n.neither():i?.schema&&o?.schema?i.schema&&IRy(i.schema,r)?n.multipart(t):n.json(e):i?.schema?n.json(e):o?.schema?n.multipart(t):n.neither()}function W_e({mediaType:e,mediaTypeObject:t,description:r,document:n,context:i,requestBreadcrumbs:o,source:s,namespace:a}){let c=SRy({mediaTypeObject:t});if(Pol({mediaType:e}))return fU.octetStream({description:r,source:s,sdkMethodName:c,contentType:e});let u=xol({mediaType:e,mediaTypeObject:t,context:i}),l=u?.schema,p=u?.encoding,m=u?.examples;if(l){let g=yo(l)?jMs(l,n):{id:void 0,schema:l},y=Nl(g.schema,!1,!1,i,o,s,a,!1),A=[];if(y.type==="object"){let b=new Set(g.schema.required??[]);for(let v of y.properties){let _=b.has(v.key),{isFile:O,isOptional:E,isArray:P,description:x}=xPn({schema:v.schema,isOptional:!_});if(O){let I=Eol(v.key,p);A.push({key:v.key,schema:N_e.file({isOptional:E,isArray:P,description:x}),description:x,contentType:I,exploded:!1,encoding:I==null?i.options.defaultFormParameterEncoding:void 0})}else{let I=Eol(v.key,p);A.push({key:v.key,schema:N_e.json(v.schema),description:void 0,contentType:I,exploded:p?.[v.key]?.explode,encoding:I==null?i.options.defaultFormParameterEncoding:BRy(I)})}}}return fU.multipart({name:yo(l)&&i.getNumberOfOccurrencesForRef(l)===1?g.id:void 0,description:g.schema.description,properties:A,source:s,sdkMethodName:c,fullExamples:m})}let f=APn({mediaType:e,mediaTypeObject:t,context:i});if(f){let g=Nl(f.schema,!1,!1,i,o,s,a,!0);return fU.json({description:void 0,schema:g,contentType:f.contentType,fullExamples:f.examples,additionalProperties:!yo(f.schema)&&Wjr(f.schema.additionalProperties,i.options),source:s,sdkMethodName:c})}let h=wol({mediaType:e,mediaTypeObject:t,context:i});if(h!=null&&h.schema!=null){let g=Nl(h.schema,!1,!1,i,o,s,a,!1);return fU.formUrlEncoded({schema:g,description:r,contentType:h.contentType,source:s,fullExamples:h.examples,additionalProperties:!1,sdkMethodName:c})}}function SRy({mediaTypeObject:e}){return Jn(e,Ii.SDK_METHOD_NAME)}var jRy={"application/json":"json"};function BRy(e){return e?jRy[e]:void 0}function jMs(e,t){if(!e.$ref.startsWith(Jvt))throw new Error(`Failed to resolve schema reference because of unsupported prefix: ${e.$ref}`);let r=BGe(e);if(r==null)throw new Error(`Failed to resolve schema reference because missing schema id: ${e.$ref}`);let n=t.components?.schemas?.[r];if(n==null)throw new Error(`Failed to resolve schema reference because missing: ${e.$ref}`);return yo(n)?jMs(n,t):{id:r,schema:n}}function xPn({schema:e,isOptional:t,isArray:r,description:n}){return DRy(e)?xPn({schema:e.value,isOptional:!0,isArray:r,description:e.description}):RRy(e)?xPn({schema:e.value,isOptional:t,isArray:r,description:e.description}):FRy(e)?xPn({schema:e.value,isOptional:t,isArray:!0,description:e.description}):TRy(e)?{isFile:!0,isOptional:t??!1,isArray:r??!1,description:n??e.description}:{isFile:!1,isOptional:t??!1,isArray:r??!1,description:void 0}}function TRy(e){return e.type==="primitive"&&e.schema.type==="string"&&e.schema.format==="binary"}function DRy(e){return e.type==="optional"}function RRy(e){return e.type==="nullable"}function FRy(e){return e.type==="array"}function Eol(e,t){return t?.[e]?.contentType}pr();var BMs={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},Iol=new Set(Object.values(BMs));var NRy=["200","201","202","204"];function IPn({operationContext:e,responses:t,context:r,responseBreadcrumbs:n,responseStatusCode:i,streamFormat:o,streamTerminator:s,source:a}){if(t==null)return{value:void 0,errors:{}};let c=kRy({responses:t,context:r,source:a,namespace:r.namespace}),u=!1,l;for(let p of i!=null?[i]:NRy){let m=t[p];m!=null&&(u=!0,l==null&&(l=Col({operationContext:e,response:m,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,source:a,namespace:r.namespace,statusCode:typeof p=="string"?parseInt(p):p})))}if(l==null&&!u&&t.default!=null&&(l=Col({operationContext:e,response:t.default,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,source:a,namespace:r.namespace})),l!=null)switch(l.type){case"json":return{value:l,errors:c};case"streamingJson":case"streamingSse":return{value:l,errors:c};case"bytes":case"file":case"text":case"streamingText":return{value:l,errors:c};default:Ue(l)}return{value:void 0,errors:c}}function Col({operationContext:e,streamFormat:t,streamTerminator:r,response:n,context:i,responseBreadcrumbs:o,source:s,namespace:a,statusCode:c}){let u=yo(n)?i.resolveResponseReference(n):n;if(u.content!=null&&Object.entries(u.content).find(([f,h])=>{if(h.schema==null)return!1;let g=yo(h.schema)?i.resolveSchemaReference(h.schema):h.schema;return g.type==="string"&&(g.format==="binary"||g.format==null&&g.contentMediaType==="application/octet-stream")}))return i.options.useBytesForBinaryResponse&&t==null?rw.bytes({description:u.description,source:s,statusCode:c}):rw.file({description:u.description,source:s,statusCode:c});let l=aol(u.content??{},i);if(l!=null&&t!=null)switch(t){case"json":return rw.streamingJson({statusCode:c,description:u.description,responseProperty:Jn(e.operation,Ii.RESPONSE_PROPERTY),terminator:r,fullExamples:l.examples,schema:Nl(l.schema,!1,!1,i,o,s,a),source:s});case"sse":return rw.streamingSse({description:u.description,responseProperty:void 0,terminator:r,fullExamples:l.examples,schema:Nl(l.schema,!1,!1,i,o,s,a),source:s,statusCode:c})}let p=bPn({context:i,content:u.content??{}});if(p){if(t!=null)switch(t){case"json":return rw.streamingJson({description:u.description,responseProperty:void 0,terminator:r,fullExamples:p.examples,schema:Nl(p.schema,!1,!1,i,o,s,a),source:s,statusCode:c});case"sse":return rw.streamingSse({description:u.description,responseProperty:void 0,terminator:r,fullExamples:p.examples,schema:Nl(p.schema,!1,!1,i,o,s,a),source:s,statusCode:c})}return rw.json({description:u.description,schema:Nl(p.schema,!1,!1,i,o,s,a),responseProperty:Jn(e.operation,Ii.RESPONSE_PROPERTY),terminator:void 0,fullExamples:p.examples,source:s,statusCode:c})}for(let[m,f]of Object.entries(u.content??{})){let h=ib.parse(m);if(h!=null){if(h.isOctetStream()||h.isPDF()||h.isAudio()||h.isImage()||h.isVideo()||h.isMultiPartMixed())return rw.file({description:u.description,source:s,statusCode:c});if(h.isPlainText()){let g=f.schema;if(g==null)return rw.text({description:u.description,source:s,statusCode:c});let y=yo(g)?i.resolveSchemaReference(g):g;return y.type==="string"&&y.format==="byte"?rw.file({description:u.description,source:s,statusCode:c}):rw.text({description:u.description,source:s,statusCode:c})}}}}function kRy({responses:e,context:t,source:r,namespace:n}){let i={};for(let[o,s]of Object.entries(e)){if(o==="default")continue;let a=parseInt(o);if(a<400||a>600)continue;let c=yo(s)?t.resolveResponseReference(s):s,u=uol(c.content??{},t),l=BMs[a];if(l==null){t.logger.warn(`No error name found for status code ${o}`);continue}i[a]={statusCode:a,nameOverride:void 0,generatedName:l,description:c.description,schema:Nl(u?.schema??{},!1,!1,t,[l,"Body"],r,n),fullExamples:u?.examples,source:r}}return i}function FMe({operationContext:e,context:t,responseStatusCode:r,suffix:n,streamFormat:i,streamTerminator:o,source:s}){let{document:a,operation:c,path:u,method:l,baseBreadcrumbs:p}=e,m=Jn(c,Ii.IDEMPOTENT),f=Jn(c,[Ii.REQUEST_NAME_V1,Ii.REQUEST_NAME_V2]),h=[...p,"Request"],g=wPn({parameters:[...e.pathItemParameters,...e.operationParameters],context:t,requestBreadcrumbs:h,path:u,httpMethod:l,source:s}),y=/{([^}]+)}/g,A=[...u.matchAll(y)].map(q=>q[1]).filter(q=>q!==void 0),b=[...u.matchAll(y)].map(q=>q[1]);switch(t.options.pathParameterOrder){case xi.PathParameterOrder.SpecOrder:{let q=b.filter(W=>!g.pathParameters.some($=>$.name===W));if(q.length>0)for(let W of q)g.pathParameters.push({name:W??"",variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:s,schema:Fn.primitive({schema:No.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0})}break;case xi.PathParameterOrder.UrlOrder:if(A.length>0){let q=new Map(g.pathParameters.map(re=>[re.name,re])),W=[],$=new Set;for(let re of A){let ce=q.get(re);$.add(re),ce?W.push(ce):W.push({name:re,variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:s,schema:Fn.primitive({schema:No.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0})}for(let re of g.pathParameters)$.has(re.name)||W.push(re);g.pathParameters=W}break;default:Ue(t.options.pathParameterOrder)}let v=(()=>{if(e.method==="GET")return[void 0];if(!c.requestBody)return[void 0];let q=yo(c.requestBody)?t.resolveRequestBodyReference(c.requestBody):c.requestBody,W=Object.values(q.content).every(re=>QRy({mediaTypeObject:re})!=null),$=[];if(W)return $.push(...Object.entries(q.content).map(([re,ce])=>{let G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:new Xvt({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:h,source:s,namespace:t.namespace});return Sol({context:t,convertedParameters:g})&&G!=null&&(G.type==="json"||G.type==="formUrlEncoded")&&G.schema.type!=="object"&&c.requestBody!=null?G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:t,requestBreadcrumbs:[...h,"Body"],source:s,namespace:t.namespace}):c.requestBody!=null&&(G=W_e({mediaType:re,mediaTypeObject:ce,description:q.description,document:a,context:t,requestBreadcrumbs:[...h],source:s,namespace:t.namespace})),G}).filter(re=>re!=null)),$.length===0?[void 0]:$;{let re=PPn({content:q.content,description:q.description,document:a,context:new Xvt({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:h,source:s,namespace:t.namespace});return Sol({context:t,convertedParameters:g})&&re!=null&&(re.type==="json"||re.type==="formUrlEncoded")&&re.schema.type!=="object"&&c.requestBody!=null?re=PPn({content:q.content,description:q.description,document:a,context:t,requestBreadcrumbs:[...h,"Body"],source:s,namespace:t.namespace}):c.requestBody!=null&&(re=PPn({content:q.content,description:q.description,document:a,context:t,requestBreadcrumbs:[...h],source:s,namespace:t.namespace})),[re]}})(),_=v.length>1,O=[...p,"Response"],E=IPn({operationContext:e,streamFormat:i,streamTerminator:o,responses:c.responses,context:t,responseBreadcrumbs:O,responseStatusCode:r,source:s}),P=_ol(c),x=bol(c),I=Aol(e,c,t),F=Jn(c,Ii.SERVER_NAME_V2);return v.map(q=>({summary:c.summary,internal:Jn(c,jz.INTERNAL),idempotent:m,audiences:Jn(c,Ii.AUDIENCES)??[],operationId:c.operationId!=null&&n!=null?c.operationId+"_"+n:c.operationId,tags:t.resolveTagsToTagIds(c.tags),namespace:t.namespace,sdkName:MRy({operationContext:e,request:q}),pathParameters:g.pathParameters,queryParameters:g.queryParameters,headers:g.headers,requestNameOverride:f??void 0,generatedRequestName:cj(_?zRy({breadcrumbs:h,request:q}):h,t.options.preserveSchemaIds),request:q,response:E.value,errors:E.errors,servers:F!=null?[{name:F,url:void 0,audiences:void 0}]:(c.servers??[]).map(W=>EPn(W,{groupMultiApiEnvironments:t.options.groupMultiApiEnvironments})),description:c.description,authed:URy(c,a),security:VRy(c),availability:x,method:l,path:u,examples:I,pagination:e.pagination,source:s,retries:P}))}function zRy({breadcrumbs:e,request:t}){return t?[...e,t.type]:e}function QRy({mediaTypeObject:e}){return Jn(e,Ii.SDK_METHOD_NAME)}function MRy({operationContext:e,request:t}){return!t||!t.sdkMethodName?e.sdkMethodName:e.sdkMethodName?{groupName:[...e.sdkMethodName.groupName],methodName:t.sdkMethodName??e.sdkMethodName.methodName}:{groupName:[],methodName:t.sdkMethodName}}function VRy(e){return e.security}function URy(e,t){return e.security!=null?Object.keys(e.security).length>0:t.security!=null?Object.keys(t.security).length>0:!1}function Sol({context:e,convertedParameters:t}){return e.options.inlinePathParameters&&t.pathParameters.length>0||t.queryParameters.length>0||t.headers.length>0}function Bol({operationContext:e,context:t,asyncExtension:r,source:n}){let{operation:i,pathItemParameters:o,operationParameters:s}=e,a=r.discriminant.name,c=r.discriminant.value,u=r["response-status-code"],l=jol({context:t,headerToIgnore:a,parameters:o}),p=jol({context:t,headerToIgnore:a,parameters:s}),m=FMe({operationContext:{...e,pathItemParameters:l,operationParameters:p,operation:{...i,responses:Object.fromEntries(Object.entries(i.responses).filter(([h])=>parseInt(h)!==u))}},context:t,streamFormat:void 0,source:n}),f=FMe({operationContext:{...e,pathItemParameters:l,operationParameters:p,baseBreadcrumbs:[...e.baseBreadcrumbs,"async"]},context:t,suffix:"async",responseStatusCode:u,streamFormat:void 0,source:n});return f.forEach(h=>{h.headers.push({name:a,schema:Fn.literal({nameOverride:void 0,generatedName:cj([a],t.options.preserveSchemaIds),title:void 0,description:void 0,availability:void 0,value:cx.string(c),namespace:void 0,groupName:void 0}),description:void 0,parameterNameOverride:void 0,env:void 0,availability:void 0,source:n})}),{sync:m,async:f}}function jol({context:e,headerToIgnore:t,parameters:r}){return r.filter(n=>{let i=yo(n)?e.resolveParameterReference(n):n;return!(i.in==="header"&&i.name===t)})}pr();var TMs="stream";function Fol({operationContext:e,context:t,streamingExtension:r}){switch(r.type){case"stream":return{streaming:FMe({operationContext:e,context:t,streamFormat:r.format,streamTerminator:r.terminator,source:t.source}),nonStreaming:[]};case"streamCondition":{let n=Tol({context:t,operation:e.operation,streamingExtension:r,isStreaming:!0});if(n?.schemaReference!=null){let u=BGe(n.schemaReference);u!=null&&t.excludeSchema(u)}let i=Dol({operation:e.operation,response:r.responseStream}),o=FMe({operationContext:{...e,sdkMethodName:e.sdkMethodName!=null?{groupName:e.sdkMethodName.groupName,methodName:e.sdkMethodName.methodName+"_"+TMs}:void 0,operation:{...e.operation,description:r.streamDescription??e.operation.description,requestBody:n?.requestBody,responses:i},baseBreadcrumbs:[...e.baseBreadcrumbs,TMs]},context:t,streamFormat:r.format,streamTerminator:r.terminator,suffix:TMs,source:t.source});o.forEach(u=>{u.examples=u.examples.filter(l=>Rol(l,t)!==!1)});let s=Tol({context:t,operation:e.operation,streamingExtension:r,isStreaming:!1}),a=Dol({operation:e.operation,response:r.response}),c=FMe({streamFormat:void 0,operationContext:{...e,operation:{...e.operation,requestBody:s?.requestBody,responses:a}},context:t,source:t.source});return c.forEach(u=>{u.examples=u.examples.filter(l=>Rol(l,t)!==!0)}),{streaming:o,nonStreaming:c}}default:Ue(r)}}function Tol({context:e,operation:t,streamingExtension:r,isStreaming:n}){if(t.requestBody==null)return;let i=yo(t.requestBody)?e.resolveRequestBodyReference(t.requestBody):t.requestBody,o=bPn({content:i.content,context:e});if(o==null)return;let s=yo(o.schema)?e.resolveSchemaReference(o.schema):o.schema;if(s.allOf==null&&s.properties==null)return;let a=s.properties?.[r.streamConditionProperty];a!=null&&yo(a)&&(a=void 0);let c={...s,properties:{...s.properties,[r.streamConditionProperty]:{type:"boolean","x-fern-boolean-literal":n,...a??{}}},title:void 0,required:[...s.required??[],r.streamConditionProperty]};return{requestBody:{content:{[ib.APPLICATION_JSON]:{schema:c}}},schemaReference:yo(o.schema)?o.schema:void 0}}function Dol({operation:e,response:t}){return{...e.responses,200:{description:"",content:{[ib.APPLICATION_JSON]:{schema:t}}}}}function Rol(e,t){return e._visit({unknown:r=>{let n=L0.serialization.ExampleEndpointCallSchema.parse(r);if(n.ok&&n.value.response!=null)return n.value.response.stream!=null},full:()=>{},_other:()=>{}})}var Vol=require("crypto");function LRy(e){switch(e){case"unix-seconds":return Dw.WebhookTimestampFormat.UnixSeconds;case"unix-millis":return Dw.WebhookTimestampFormat.UnixMillis;case"iso8601":return Dw.WebhookTimestampFormat.Iso8601}}function Nol(e){if(e!=null)return{header:e.header,format:e.format!=null?LRy(e.format):void 0,tolerance:e.tolerance}}function qRy(e){if(e!=null)return{components:e.components.map(t=>{switch(t){case"body":return Dw.WebhookPayloadComponent.Body;case"timestamp":return Dw.WebhookPayloadComponent.Timestamp;case"notification-url":return Dw.WebhookPayloadComponent.NotificationUrl;case"message-id":return Dw.WebhookPayloadComponent.MessageId}}),delimiter:e.delimiter}}function WRy(e){if(e!=null)switch(e){case"sha256":return Dw.WebhookSignatureAlgorithm.Sha256;case"sha1":return Dw.WebhookSignatureAlgorithm.Sha1;case"sha384":return Dw.WebhookSignatureAlgorithm.Sha384;case"sha512":return Dw.WebhookSignatureAlgorithm.Sha512}}function kol(e){if(e!=null)switch(e){case"base64":return Dw.WebhookSignatureEncoding.Base64;case"hex":return Dw.WebhookSignatureEncoding.Hex}}function GRy(e){if(e!=null)switch(e){case"rsa-sha256":return Dw.AsymmetricAlgorithm.RsaSha256;case"rsa-sha384":return Dw.AsymmetricAlgorithm.RsaSha384;case"rsa-sha512":return Dw.AsymmetricAlgorithm.RsaSha512;case"ecdsa-sha256":return Dw.AsymmetricAlgorithm.EcdsaSha256;case"ecdsa-sha384":return Dw.AsymmetricAlgorithm.EcdsaSha384;case"ecdsa-sha512":return Dw.AsymmetricAlgorithm.EcdsaSha512;case"ed25519":return Dw.AsymmetricAlgorithm.Ed25519}}function Qol(e){if(e.type==="hmac")return Dw.WebhookSignatureVerification.hmac({header:e.header,algorithm:WRy(e.algorithm),encoding:kol(e.encoding),signaturePrefix:e["signature-prefix"],payloadFormat:qRy(e["payload-format"]),timestamp:Nol(e.timestamp)});if(e.type==="asymmetric"){let t=GRy(e["asymmetric-algorithm"]);return t==null?void 0:Dw.WebhookSignatureVerification.asymmetric({header:e.header,asymmetricAlgorithm:t,encoding:kol(e.encoding),signaturePrefix:e["signature-prefix"],jwksUrl:e["jwks-url"],keyIdHeader:e["key-id-header"],timestamp:Nol(e.timestamp)})}}function zol(e){let t=Jn(e,Ii.WEBHOOK_SIGNATURE);if(!(t==null||typeof t=="boolean"))return Qol(t)}function Mol(e,t){let r=Jn(t,Ii.WEBHOOK_SIGNATURE);return r!=null?typeof r=="boolean"?zol(e):Qol(r):zol(e)}function Uol({context:e,operationContext:t,source:r}){let{document:n,operation:i,path:o,method:s,baseBreadcrumbs:a,sdkMethodName:c}=t,u=[...a,"Payload"],l=[...a,"Response"],p=wPn({parameters:[...t.pathItemParameters,...t.operationParameters],context:e,requestBreadcrumbs:u,path:o,httpMethod:s,source:r});if(i.requestBody==null)return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Missing a request body`),[];let m=i.operationId??$Ry({path:o,method:s,sdkMethodName:c}),f=i.responses?IPn({operationContext:t,streamFormat:void 0,responses:i.responses,context:e,responseBreadcrumbs:l,source:r}):void 0;if(s!=="POST"&&s!=="GET")return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Not POST or GET`),[];let h=yo(i.requestBody)?e.resolveRequestBodyReference(i.requestBody):i.requestBody;return Object.entries(h.content).map(([g,y])=>W_e({mediaType:g,mediaTypeObject:y,description:h.description,document:n,context:e,requestBreadcrumbs:[...a,"Payload"],source:r,namespace:e.namespace})).filter(g=>g!=null).map(g=>{if(g==null||g.type!=="json"&&g.type!=="formUrlEncoded"&&g.type!=="multipart"){e.logger.error(`Skipping webhook ${o} because non-json, non-formUrlEncoded, and non-multipart request body`);return}let y,A;g.type==="multipart"?(y={name:g.name,properties:g.properties,description:g.description,source:g.source},A=Fn.unknown({nameOverride:void 0,generatedName:cj(u,e.options.preserveSchemaIds),title:void 0,description:g.description,availability:void 0,namespace:e.namespace,groupName:void 0,example:void 0})):A=g.schema;let b=Mol(n,i);return{summary:i.summary,audiences:Jn(i,Ii.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:m,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:cj(u,e.options.preserveSchemaIds),payload:A,signatureVerification:b,multipartFormData:y,response:f?.value,description:i.description,examples:HRy(g.fullExamples),source:r}}).filter(g=>g!=null)}function HRy(e){if(e==null)return[];let t=[];for(let r of e){let n=DGe(r.value);n!=null&&t.push({description:r.description,name:r.name,payload:n})}return t}function $Ry({path:e,method:t,sdkMethodName:r}){let n=r?.methodName??KRy(e),i=(0,Vol.createHash)("sha256").update(e).digest("hex").slice(0,8);return JRy(`${n}_${t.toLowerCase()}_${i}`)}function KRy(e){return e.replace(/[{$}#]/g,"").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_").toLowerCase().slice(0,64)}function JRy(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function DMs({context:e,pathItemContext:t,operation:r,convertToWebhook:n}){let i=Jn(r,Ii.IGNORE);if(i!=null&&i){e.logger.debug(`${t.method.toUpperCase()} ${t.path} is marked with x-fern-ignore. Skipping.`);return}let o=YRy(r,e),s=sol(e.document,r),a={...t,sdkMethodName:o,baseBreadcrumbs:XRy({operation:r,sdkMethodName:o,httpMethod:t.method,path:t.path,shouldUseIdiomaticRequestNames:e.options.shouldUseIdiomaticRequestNames}),operation:r,operationParameters:r.parameters??[],pagination:s};if(n)return{type:"webhook",value:Uol({context:e,operationContext:a,source:e.source})};let c=iol(r);if(c==null&&ZRy({operation:r,context:e})&&(c={type:"stream",format:"sse",terminator:void 0}),c!=null){let p=Fol({context:e,operationContext:a,streamingExtension:c});return p!=null?{type:"streaming",streaming:p.streaming,nonStreaming:p.nonStreaming}:void 0}let u=rol(r);if(u!=null){let p=Bol({context:e,operationContext:a,asyncExtension:u,source:e.source});return{type:"async",async:p.async,sync:p.sync}}return{type:"http",value:FMe({context:e,operationContext:a,streamFormat:void 0,source:e.source})}}function YRy(e,t){let r=Jn(e,Ii.SDK_METHOD_NAME),n=Jn(e,Ii.SDK_GROUP_NAME)??[];if(r!=null){let i=typeof n=="string"?[n]:n;return i=t.resolveGroupName(i),{groupName:i,methodName:r}}}function XRy({sdkMethodName:e,operation:t,httpMethod:r,path:n,shouldUseIdiomaticRequestNames:i}){let o=[];if(e!=null){if(i&&o.push(e.methodName),e.groupName.length>0){let s=e.groupName[e.groupName.length-1];s!=null&&o.push(typeof s=="string"?s:s.name)}i||o.push(e.methodName)}else t.operationId!=null?o.push(t.operationId):o.push(ao(`${r}_${n.split("/").join("_")}`));return o}function ZRy({operation:e,context:t}){if(e.responses==null)return!1;for(let r of Object.values(e.responses)){let n=yo(r)?t.resolveResponseReference(r):r;if(n.content!=null&&col(n.content))return!0}return!1}function Lol(e,t,r,n){let i=[],o=Wol(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=eFy({operation:a.operation}),u=DMs({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:c});u&&i.push(u)}return i}function qol(e,t,r,n){let i=[],o=Wol(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=DMs({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:!0});c&&i.push(c)}return i}function Wol(e){let t=[];return e.get!=null&&t.push({method:RR.Get,operation:e.get}),e.post!=null&&t.push({method:RR.Post,operation:e.post}),e.put!=null&&t.push({method:RR.Put,operation:e.put}),e.delete!=null&&t.push({method:RR.Delete,operation:e.delete}),e.patch!=null&&t.push({method:RR.Patch,operation:e.patch}),e.head!=null&&t.push({method:RR.Head,operation:e.head}),t}function eFy({operation:e}){return Jn(e,[Ii.WEBHOOK])??!1}function Gol(e){let t=Jn(e,Ii.BASIC_AUTH_USERNAME_VARIABLE_NAME),r=Jn(e,Ii.BASIC_AUTH_PASSWORD_VARIABLE_NAME);return{usernameVariable:t,passwordVariable:r}}function Hol(e){return Jn(e,Ii.FERN_BASIC_AUTH)}function Kol(e,t,r,n){if(yo(e)){if(n==null)throw new Error(`Converting referenced security schemes requires context: ${JSON.stringify(e)}`);let i=n.resolveSecuritySchemeReference(e);return $ol(i,t,r)}return $ol(e,t,r)}function $ol(e,t,r){try{if(e.type==="apiKey"&&e.in==="header"){let n=Jn(e,jz.BEARER_FORMAT),i=Jn(e,Ii.FERN_HEADER_AUTH);return TR.header({headerName:e.name,prefix:n!=null?"Bearer":i?.prefix,headerVariableName:i?.name??Jn(e,Ii.HEADER_VARIABLE_NAME),headerEnvVar:i?.env})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="bearer"){let n=Jn(e,Ii.FERN_BEARER_TOKEN);return TR.bearer({tokenVariableName:n?.name??Jn(e,Ii.BEARER_TOKEN_VARIABLE_NAME),tokenEnvVar:n?.env})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="basic"){let n=Hol(e),i=Gol(e);return TR.basic({usernameVariableName:n?.username?.name??i.usernameVariable,usernameEnvVar:n?.username?.env,passwordVariableName:n?.password?.name??i.passwordVariable,passwordEnvVar:n?.password?.env})}else{if(e.type==="openIdConnect")return TR.bearer({tokenVariableName:void 0,tokenEnvVar:void 0});if(e.type==="oauth2")return TR.oauth({scopesEnum:tFy(e,t)})}}catch(n){r.logger.debug(`Error converting security scheme: ${n?.message}`)}r.logger.debug(`Skipping security scheme: ${JSON.stringify(e,null)} - not currently supported. Please reach out to Fern support team!`)}function tFy(e,t){let r=e.flows.authorizationCode?.scopes??e.flows.clientCredentials?.scopes??e.flows.implicit?.scopes??e.flows.password?.scopes;if(r!=null){let n=jGe({nameOverride:void 0,generatedName:"OauthScope",title:void 0,enumValues:Object.keys(r),fernEnum:Object.fromEntries(Object.entries(r).map(([o,s])=>[o,{description:s}])),_default:void 0,description:void 0,availability:void 0,enumVarNames:void 0,wrapAsOptional:!1,wrapAsNullable:!1,namespace:void 0,groupName:void 0,context:void 0,source:t,inline:void 0}),i=hb(n);if(i.type==="enum")return i}}function Jol(e){return Jn(e,Ii.BASE_PATH)}var rFy=Zt.record(Zt.string(),Zt.object({summary:Zt.string().optional(),description:Zt.string().optional()}));function Yol({document:e,context:t}){return Ljr(e,Ii.GROUPS,rFy,t.logger)}function Xol({context:e,document:t}){return Jn(t,Ii.FERN_VERSION)??void 0}function Zol(e){let t=Jn(e,Ii.FERN_GLOBAL_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?qjr({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function esl(e){let t=Jn(e,Ii.FERN_IDEMPOTENCY_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?qjr({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function tsl(e,t){let r=Jn(e,Ii.SDK_VARIABLES);return r==null?{}:Object.fromEntries(Object.entries(r).map(([n,i])=>{if(i.type==="string")return[n,{nameOverride:void 0,generatedName:cj([n],t),title:i.title,schema:xd.string({default:j4t(i),pattern:i.pattern,format:i.format,minLength:i.minLength,maxLength:i.maxLength}),description:i.description,availability:void 0,namespace:void 0,groupName:void 0}];throw new Error(`Variable ${n} has unsupported schema ${JSON.stringify(i)}`)}))}var nFy="webhooks";function rsl(e){return Jn(e,nFy)??{}}var Jjr=class extends N4t{nonRequestReferencedSchemas=new Set;twoOrMoreRequestsReferencedSchemas=new Set;singleRequestReferencedSchemas=new Set;discriminatedUnionReferences={};discriminatedUnionMetadata={};schemasToExclude=new Set;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){super({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s})}getDummy(){return new Xvt({document:this.document,taskContext:this.taskContext,options:this.options,source:this.source,namespace:this.namespace})}markSchemaAsReferencedByNonRequest(t){this.nonRequestReferencedSchemas.add(t)}markSchemaAsReferencedByRequest(t){this.singleRequestReferencedSchemas.has(t)?this.twoOrMoreRequestsReferencedSchemas.add(t):this.singleRequestReferencedSchemas.add(t)}getReferencedSchemas(){return new Set([...this.nonRequestReferencedSchemas,...this.twoOrMoreRequestsReferencedSchemas])}markReferencedByDiscriminatedUnion(t,r,n){let i=this.discriminatedUnionReferences[t.$ref];i!=null?(i.discriminants.add(r),i.numReferences+=n):this.discriminatedUnionReferences[t.$ref]={discriminants:new Set([r]),numReferences:n}}getReferencesFromDiscriminatedUnion(t){return this.discriminatedUnionReferences[t.$ref]}markSchemaWithDiscriminantValue(t,r,n){let i=this.discriminatedUnionMetadata[t.$ref];i!=null?i.discriminants.set(r,n):this.discriminatedUnionMetadata[t.$ref]={discriminants:new Map([[r,n]])}}getDiscriminatedUnionMetadata(t){return this.discriminatedUnionMetadata[t.$ref]}excludeSchema(t){this.schemasToExclude.add(t)}isSchemaExcluded(t){return this.schemasToExclude.has(t)}};function nsl(e){return Jn(e,Ii.RESOLUTIONS)}function isl({openapi:e}){let t=nsl(e);if(t==null)return e;let r={};for(let n of t){let i=`#/components/schemas/${n.name}`;for(let o of n.resolutions)e=iFy({openapi:e,schemaReference:o,schemaName:n.name}),e=osl({openapi:e,replaceReference:o,schemaReference:i,replacedReferences:r}),r={...r,...Object.fromEntries(n.resolutions.map(s=>[i,s]))}}return e}function iFy({openapi:e,schemaReference:t,schemaName:r}){let n=t.replace("#/","").split("/").map(o=>o.replaceAll("~1","/")),i=e;for(let o of n){let s=i[o];if(s==null)return e;i=s}return e.components==null&&(e.components={}),e.components.schemas==null&&(e.components.schemas={}),e.components.schemas[r]=i,e}function osl({openapi:e,replaceReference:t,schemaReference:r,replacedReferences:n}){let i=Object.keys(n).filter(c=>t.startsWith(c)).sort((c,u)=>u.length-c.length)[0];if(i!=null){let c=n[i];if(c!=null){let u=r.replace(i,c);return osl({openapi:e,replaceReference:t,schemaReference:u,replacedReferences:{}})}}let o=t.replace("#/","").split("/").map(c=>c.replaceAll("~1","/")),s=e;for(let c of o.slice(0,-1)){let u=s[c];if(u==null)return e;s=u}let a=o[o.length-1];return a==null||(s[a]={$ref:r}),e}function asl({openApi:e,taskContext:t,options:r,source:n,namespace:i}){e=isl({openapi:e}),lPn();let o=new Jjr({document:e,taskContext:t,authHeaders:new Set,options:r,source:n,namespace:i}),s=Object.fromEntries(Object.entries(e.components?.securitySchemes??{}).map(([q,W])=>{let $=Kol(W,n,t,o);return $==null?null:[q,$]}).filter(q=>q!==null)),a=e.security?.filter(q=>q!=null),c=new Set(...Object.entries(s).map(([q,W])=>W.type==="basic"||W.type==="bearer"?"Authorization":W.type==="header"?W.headerName:null)),u=tsl(e,r.preserveSchemaIds),l=Zol(e),p=esl(e),m=r.audiences??[],f=[],h=[],g=new Jjr({document:e,taskContext:t,authHeaders:c,options:r,source:n,namespace:i});g.filter.hasEndpoints()&&t.logger.debug("Endpoint filter applied..."),Object.entries(e.paths??{}).forEach(([q,W])=>{if(W==null)return;let $=Lol(q,W,e,g);for(let re of $){let ce=ssl({operation:re});if(!(m.length>0&&!m.some(G=>ce.includes(G))))switch(re.type){case"async":f.push(...re.sync),f.push(...re.async);break;case"http":f.push(...re.value);break;case"streaming":f.push(...re.streaming),re.nonStreaming&&f.push(...re.nonStreaming);break;case"webhook":h.push(...re.value);break;default:Ue(re)}}}),Object.entries(rsl(e)).forEach(([q,W])=>{if(W==null)return;t.logger.debug(`Converting path ${q}`);let $=qol(q,W,e,g);for(let re of $){let ce=ssl({operation:re});m.length>0&&!m.some(G=>ce.includes(G))||h.push(...re.value)}});let y=Object.fromEntries(Object.entries(e.components?.schemas??{}).map(([q,W])=>{let $=Jn(W,Ii.SDK_NAMESPACE);if(!yo(W)){let re=Jn(W,Ii.IGNORE);if(re!=null&&re)return[];if(Iol.has(q))return[q,Nl({...W,"x-fern-type-name":`${q}Body`},!1,!1,g,[q],n,$??i)]}return[q,Nl(W,!1,!1,g,[q],n,$??i)]}).filter(q=>q.length>0)),A=oFy(y,g,n),b=sFy(A,g),v=L_e(),_={};for(let[q,W]of Object.entries(b)){let $=hb(W);if(g.isSchemaExcluded(q))continue;let re=v.getUniqueSchemaId(q,g.logger,r.resolveSchemaCollisions);_[re]=$}let O=new RGe(b,g.nonRequestReferencedSchemas,g),E=h.map(q=>{let $=q.examples;if(!r.disableExamples&&$.length===0){let re=O.buildExample({schema:q.payload,exampleId:void 0,example:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});re!=null&&($=[{name:void 0,description:void 0,payload:re}])}return{...q,payload:hb(q.payload),examples:$}}),P=new mPn(b,g,l),x=f.map(q=>{let W=q.examples,$=W;if(!r.disableExamples&&(W.length===0||W.every($jr))){let G=P.buildEndpointExample(q);G.length>0&&($=[...G,...W.filter(ee=>!$jr(ee))])}let re=q.request,ce=q.response;return{...q,request:re?.type==="json"||re?.type==="formUrlEncoded"?{...re,schema:hb(re.schema)}:re,response:ce?.type==="json"?{...ce,schema:hb(ce.schema)}:ce,queryParameters:q.queryParameters.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,explode:G.explode,availability:G.availability,source:G.source})),pathParameters:q.pathParameters.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,variableReference:G.variableReference,availability:G.availability,source:G.source})),headers:q.headers.map(G=>({description:G.description,name:G.name,schema:hb(G.schema),parameterNameOverride:G.parameterNameOverride,env:G.env,availability:G.availability,source:G.source})),examples:$,errors:Li(q.errors,G=>{let ee=G.fullExamples?.map(We=>{let $e=DGe(We.value);if($e!=null)return{name:We.name,description:We.description,example:$e}}).filter(tu);if(ee?.length===0){let We=O.buildExample({schema:G.schema,example:void 0,exampleId:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});We!=null&&ee.push({name:void 0,description:void 0,example:We})}return{generatedName:G.generatedName,nameOverride:G.nameOverride,schema:hb(G.schema),description:G.description,source:G.source,examples:ee}}),retries:q.retries}});P.finalize();let I=Yol({document:e,context:g});return{apiVersion:Xol({context:g,document:e}),basePath:Jol(e),title:e.info.title??"",description:e.info.description,groups:Object.fromEntries(Object.entries(I??{}).map(([q,W])=>[q,{summary:W.summary??void 0,description:W.description??void 0}])),servers:(e.servers??[]).map(q=>EPn(q,{groupMultiApiEnvironments:r.groupMultiApiEnvironments})),websocketServers:[],tags:{tagsById:Object.fromEntries((e.tags??[]).map(q=>[q.name,{id:q.name,description:q.description}])),orderedTagIds:e.tags?.map(q=>q.name)},endpoints:x,webhooks:E,channels:{},groupedSchemas:T4t(i,_),securitySchemes:s,security:a,hasEndpointsMarkedInternal:x.some(q=>q.internal),nonRequestReferencedSchemas:g.getReferencedSchemas(),variables:u,globalHeaders:l,idempotencyHeaders:p}}function oFy(e,t,r){if(t.options.removeDiscriminantsFromSchemas===xi.RemoveDiscriminantsFromSchemas.Never)return e;let n={};for(let[i,o]of Object.entries(e)){if(o.type!=="object"){n[i]=o;continue}let s={$ref:`#/components/schemas/${i}`},a=t.getReferencesFromDiscriminatedUnion(s);if(a==null){n[i]=o;continue}if(t.getReferencedSchemas().has(i)){n[i]=o;continue}let u={...o,type:"object",properties:o.properties.filter(p=>!a.discriminants.has(p.key)),allOfPropertyConflicts:o.allOfPropertyConflicts.filter(p=>!a.discriminants.has(p.propertyKey)),source:r};n[i]=u;let l=csl({schema:o,schemas:e});for(let p of[...new Set(l)]){let m=n[p]??e[p];m==null||m.type!=="object"||(n[p]={...m,type:"object",properties:m.properties.filter(f=>!a.discriminants.has(f.key)),allOfPropertyConflicts:m.allOfPropertyConflicts.filter(f=>!a.discriminants.has(f.propertyKey))})}}return n}function sFy(e,t){let r={};for(let[n,i]of Object.entries(e)){if(i.type!=="object"){r[n]=i;continue}let o={$ref:`#/components/schemas/${n}`},s=t.getDiscriminatedUnionMetadata(o);if(s==null){r[n]=i;continue}let a=[];for(let u of i.properties)if(s.discriminants.has(u.key)){let l=s.discriminants.get(u.key);l!=null&&a.push({...u,schema:Fn.literal({nameOverride:void 0,generatedName:cj([i.generatedName,l],t.options.preserveSchemaIds),title:void 0,value:cx.string(l),namespace:void 0,groupName:void 0,description:void 0,availability:i.availability})})}else a.push(u);let c={...i,type:"object",properties:a};r[n]=c}return r}function csl({schema:e,schemas:t}){let r=[];for(let n of e.allOf){r.push(n.schema);let i=t[n.schema];i!=null&&i.type==="object"&&r.push(...csl({schema:i,schemas:t}))}return r}function CPn(e){return[...new Set(e)]}function ssl({operation:e}){let t=[];switch(e.type){case"async":t=CPn(e.async.flatMap(r=>r.audiences));break;case"http":t=CPn(e.value.flatMap(r=>r.audiences));break;case"streaming":t=CPn(e.streaming.flatMap(r=>r.audiences));break;case"webhook":t=CPn(e.value.flatMap(r=>r.audiences));break;default:Ue(e)}return t}function Zvt({context:e,documents:t,options:r}){let n={apiVersion:void 0,title:void 0,description:void 0,basePath:void 0,servers:[],websocketServers:[],tags:{tagsById:{},orderedTagIds:void 0},hasEndpointsMarkedInternal:!1,endpoints:[],webhooks:[],channels:{},groupedSchemas:{rootSchemas:{},namespacedSchemas:{}},variables:{},nonRequestReferencedSchemas:new Set,securitySchemes:{},security:void 0,globalHeaders:[],idempotencyHeaders:[],groups:{}},i=0;for(let o of t)try{let s=o.source!=null?o.source:hQ.openapi({file:"<memory>"});switch(o.type){case"openapi":{let a=asl({taskContext:e,openApi:o.value,options:WJ({options:o.settings,overrides:r}),source:s,namespace:o.namespace});n=pFy(n,a,WJ({options:o.settings,overrides:r})),i++;break}case"asyncapi":{let a=tol({document:o.value,taskContext:e,options:WJ({options:o.settings,overrides:r}),source:s,asyncApiOptions:aFy({options:o.settings}),namespace:o.namespace});a.servers!=null&&(n.websocketServers=[...n.websocketServers,...a.servers.map(c=>({...c,audiences:void 0,description:void 0,defaultUrl:void 0,urlTemplate:void 0,variables:void 0}))]),a.channels!=null&&(n.channels={...n.channels,...a.channels}),a.groupedSchemas!=null&&(n.groupedSchemas=SPn(n.groupedSchemas,a.groupedSchemas,r)),a.basePath!=null&&(n.basePath=a.basePath),i++;break}default:Ue(o)}}catch(s){e.logger.error(`Failed to parse ${o.type} document ${o.type==="openapi"?o.value.info?.title:o.source?.file}`),s instanceof Error&&e.logger.error(s.message,s.stack?`
|
|
1696
1696
|
`+s.stack:"")}return n}function aFy({options:e,overrides:t}){return{naming:t?.naming??e?.asyncApiNaming??bil.naming}}function jPn(e){let t=String(e.description||e.name||e["x-fern-server-name"]||"default").trim(),r=t.toUpperCase();return r==="PRODUCTION"||r==="PRD"||r==="PROD"?"PRD":r==="SANDBOX"||r==="SBX"?"SBX":r==="STAGING"||r==="STG"?"STG":r==="PERFORMANCE"||r==="PRF"||r==="PERF"?"PRF":r==="E2E"||r==="E_2_E"?"E2E":r==="QAL"||r==="QUALITY"?"QAL":t}function FMs(e){try{let n=new URL(e).hostname.split("."),i=new Set(["api","www","service","services","example","com","org","net","io"]);for(let s of n){let a=s.split("-")[0],c=a&&a.length>2?a:s;if(c&&!i.has(c.toLowerCase())&&c.length>2)return c.toLowerCase()}let o=n[0];return o&&o.length>0?o.toLowerCase():"api"}catch{let t=e.match(/https?:\/\/([^./-]+)/);return t&&t[1]?t[1].toLowerCase():"api"}}function RMs(e,t){let r=e??[],n=t??[];if(r.length===0&&n.length===0)return;let i=new Map;for(let o of[...r,...n]){let s=Object.keys(o).sort(),a={};for(let u of s)a[u]=o[u]??[];let c=JSON.stringify(a);i.has(c)||i.set(c,o)}return Array.from(i.values())}function cFy(e,t){if(lFy(e))return!0;if(e.length===0||t.length===0||e.length!==t.length)return!1;let r=new Map;for(let o of e){if(o.type==="grouped")continue;let s=jPn(o);r.set(s,o.url)}let n=!0,i=!0;for(let o of t){if(o.type==="grouped")continue;let s=jPn(o),a=r.get(s);a?a===o.url&&(i=!1):n=!1}return n&&i}function NMs(e){return e.defaultUrl??e.url}function uFy(e){if(e.length===0||!e[0])return"api";let t=e[0];return t.type==="grouped"?Object.keys(t.urls)[0]??"api":FMs(NMs(t))}function lFy(e){return e.some(t=>t.type==="grouped")}function pFy(e,t,r){if(!(r?.groupMultiApiEnvironments===!0))return{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:[...e.servers,...t.servers],websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:[...e.endpoints,...t.endpoints],webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:SPn(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:RMs(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}};if(cFy(e.servers,t.servers)){let o=[],s=[],a=uFy(t.servers),c=new Map;for(let p of e.servers)if(p.type==="grouped"){let m=p.name??"default";c.has(m)||c.set(m,{});let f=c.get(m);if(f)for(let[h,g]of Object.entries(p.urls))f[h]=g}else{let m=FMs(NMs(p)),f=jPn(p);c.has(f)||c.set(f,{});let h=c.get(f);h&&(h[m]={url:p.url,audiences:p.audiences,defaultUrl:p.defaultUrl,urlTemplate:p.urlTemplate,variables:p.variables})}for(let p of t.servers){let m=jPn(p);c.has(m)||c.set(m,{});let f=c.get(m);f&&(f[a]={url:p.url,audiences:p.audiences,defaultUrl:p.defaultUrl,urlTemplate:p.urlTemplate,variables:p.variables})}for(let[p,m]of c.entries()){let f={type:"grouped",name:p,description:`${p} environment`,urls:m};o.push(f)}let u=e.endpoints.map(p=>{let m=p.__apiName;if(m)return{...p,type:"multi-api",apiName:m,servers:[{name:m,url:void 0,audiences:void 0}]};let f=e.servers[0],h=f!=null&&f.type!=="grouped"?FMs(NMs(f)):"api";return{...p,type:"multi-api",apiName:h,servers:[{name:h,url:void 0,audiences:void 0}]}}),l=t.endpoints.map(p=>({...p,type:"multi-api",apiName:a,servers:[{name:a,url:void 0,audiences:void 0}]}));return s=[...u,...l],{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:o,websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:s.map(p=>{if(p.type==="multi-api"){let{type:h,apiName:g,servers:y,...A}=p;return{...A,__apiName:g,servers:y}}let{type:m,...f}=p;return f}),webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:SPn(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:RMs(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}}}return{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:[...e.servers,...t.servers],websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:[...e.endpoints,...t.endpoints],webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:SPn(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:RMs(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}}}function SPn(e,t,r){let n=L_e(),i=r?.resolveSchemaCollisions??!1,o={...e.rootSchemas};for(let[s,a]of Object.entries(t.rootSchemas)){let c=n.getUniqueSchemaId(s,void 0,i);o[c]=a}e.rootSchemas=o;for(let[s,a]of Object.entries(t.namespacedSchemas))if(e.namespacedSchemas[s]!=null){let c=e.namespacedSchemas[s];for(let[u,l]of Object.entries(a)){let p=n.getUniqueSchemaId(u,void 0,i);c[p]=l}}else e.namespacedSchemas[s]=a;return e}var Mgl=He(Bjn(),1),Tjn={config:new Mgl.Config({apis:{},styleguide:{plugins:[AMs],rules:{struct:"warn"}}},void 0),dereference:!1,removeUnusedComponents:!1,keepUrlRefs:!1};function Jue({options:e,overrides:t}={}){return{...WJ({options:e,overrides:t}),...Vvt({options:e,overrides:t})}}var xeA={shouldUseTitleAsName:"useTitlesAsName",shouldUseUndiscriminatedUnionsWithLiterals:["shouldUseUndiscriminatedUnionsWithLiterals","discriminatedUnionV2"],shouldUseIdiomaticRequestNames:"shouldUseIdiomaticRequestNames",asyncApiMessageNaming:"asyncApiNaming",shouldUseOptionalAdditionalProperties:"optionalAdditionalProperties",coerceEnumsToLiterals:"coerceEnumsToLiterals",objectQueryParameters:"objectQueryParameters",respectReadonlySchemas:"respectReadonlySchemas",respectNullableSchemas:"respectNullableSchemas",onlyIncludeReferencedSchemas:"onlyIncludeReferencedSchemas",inlinePathParameters:"inlinePathParameters",useBytesForBinaryResponse:"useBytesForBinaryResponse",respectForwardCompatibleEnums:"respectForwardCompatibleEnums",filter:"filter",defaultFormParameterEncoding:"defaultFormParameterEncoding",exampleGeneration:"exampleGeneration",additionalPropertiesDefaultsTo:"additionalPropertiesDefaultsTo",typeDatesAsStrings:"typeDatesAsStrings",preserveSingleSchemaOneOf:"preserveSingleSchemaOneOf",inlineAllOfSchemas:"inlineAllOfSchemas",resolveAliases:"resolveAliases",groupMultiApiEnvironments:"groupMultiApiEnvironments",groupEnvironmentsByHost:"groupEnvironmentsByHost",wrapReferencesToNullableInOptional:"wrapReferencesToNullableInOptional",coerceOptionalSchemasToNullable:"coerceOptionalSchemasToNullable",removeDiscriminantsFromSchemas:"removeDiscriminantsFromSchemas",defaultIntegerFormat:"defaultIntegerFormat",pathParameterOrder:"pathParameterOrder",resolveSchemaCollisions:"resolveSchemaCollisions"};function PeA(e,t,r){r!==void 0&&(e[t]=r)}function Djn(e){let t={};if(e!=null)for(let[r,n]of Object.entries(xeA)){let i=e[r],o=Array.isArray(n)?n:[n];for(let s of o)PeA(t,s,i)}return Jue({options:t})}function MLt(e){if(e.settings==null&&e.apiOverride?.auth==null&&e.apiOverride?.["auth-schemes"]==null)return;let t={detectGlobalHeaders:!0};return e.settings?.unions==="v1"&&(t.discriminatedUnionV2=!0),e.apiOverride?.auth!=null&&(t.auth=e.apiOverride.auth),e.apiOverride?.["auth-schemes"]!=null&&(t.authSchemes=e.apiOverride["auth-schemes"]),t}function T0t(e){return e.swagger!=null}function v3s(e){return e.openapi!=null}pr();Ew();Ni();function u7e(e,t={}){return{...Object.fromEntries(rC(e.namedDefinitionFiles).map(([r,n])=>[r,{...n,defaultUrl:t.defaultURL}])),...rC(e.importedDefinitions).reduce((r,[n,i])=>({...r,..._wr(u7e(i.definition,{defaultURL:i.url}),(o,s)=>$C(n,uc.of(s)))}),{})}}pr();Ew();Ni();function fTr(e,t={}){return{...Object.fromEntries(rC(e.packageMarkers).map(([r,n])=>[r,{...n,defaultUrl:t.defaultURL}])),...rC(e.importedDefinitions).reduce((r,[n,i])=>({...r,..._wr(fTr(i.definition,{defaultURL:i.url}),(o,s)=>$C(n,uc.of(s)))}),{})}}function eVe(e){return{...fTr(e),...u7e(e)}}function rY(e,t){return eVe(e.definition)[t]?.contents}pr();Ew();function pj(e,t){for(let[r,n]of rC(eVe(e.definition)))t(r,n.contents,{isPackageMarker:U2(r)===Lg,defaultUrl:n.defaultUrl})}pr();function D0t(e,t){for(let[r,n]of rC(fTr(e.definition)))t(r,n.contents)}pr();var Vgl=He(require("path"),1);async function Rjn({schema:e,value:t,context:r,filepathBeingParsed:n}){let i=await e.safeParseAsync(t);if(i.success)return i.data;let o=i.error.errors.map(a=>{let c=a.path.length>0?`${a.message} at "${IeA(a.path)}"`:a.message;return Vce({content:c,prefix:" - "})}),s=[`Failed to parse file: ${Vgl.default.relative(process.cwd(),n)}`,...o].join(`
|
|
1697
1697
|
`);return r.failAndThrow(s)}function IeA(e){return e.reduce((t,r)=>typeof r=="number"?t+"["+r+"]":t+(t===""?"":".")+r,"")}Ir();var Ugl=He(require("path"),1),CeA={dependencies:{}};async function Lgl({absolutePathToWorkspace:e,rawDependenciesConfiguration:t,context:r}){if(t==null)return CeA;let n={};for(let[i,o]of Object.entries(t.dependencies))if(jeA(o)){let s=vr.of(Ugl.default.join(e,o));await qr(s)?n[i]={type:"local",absoluteFilepath:s,path:o}:r.failWithoutThrowing(`Path to ${i} dependency does not exist: ${s}`)}else{let a=i.substring(1).split("/"),c=a[0],u=a[1];c!=null&&u!=null?n[i]={type:"version",organization:c,apiName:u,version:o}:r.failWithoutThrowing(`Failed to parse dependency: ${i}`)}return r.getResult()===lb.Failure&&r.failAndThrow(),{dependencies:n}}var SeA=/^\.\.\/.*$/;function jeA(e){return SeA.test(e)}Ir();var Wgl=require("fs/promises");var qgl=Zt.object({dependencies:Zt.record(Zt.string(),Zt.string())});async function Ggl({absolutePathToWorkspace:e,context:t}){let r=It(e,Ze.of(qel));if(!await qr(r))return;let n=await(0,Wgl.readFile)(r),i=Bn.load(n.toString());return await Rjn({schema:qgl,value:i,context:t,filepathBeingParsed:r})}async function O3s({absolutePathToWorkspace:e,context:t}){let r=await Ggl({absolutePathToWorkspace:e,context:t});return Lgl({absolutePathToWorkspace:e,rawDependenciesConfiguration:r,context:t})}pr();c9r();function Hgl(e={accentPrimary:void 0,background:void 0},t){e.accentPrimary=e.accentPrimary??e.accentPrimaryDeprecated;let r=Njn(e);switch(r){case"dark":return{type:"dark",...Fjn(e,t,"dark")};case"light":return{type:"light",...Fjn(e,t,"light")};case"darkAndLight":return{type:"darkAndLight",dark:Fjn(e,t,"dark"),light:Fjn(e,t,"light")};default:Ue(r)}}function Njn({background:e,accentPrimary:t,accentPrimaryDeprecated:r}){if(t=t??r,typeof e=="string"&&typeof t=="string")return _a(e).isDark()?"dark":"light";if(e!=null){if(typeof e=="string")return _a(e).isDark()?"dark":"light";if(e.dark!=null&&e.light!=null)return"darkAndLight"}if(t!=null){if(typeof t=="string")return _a(t).isLight()?"dark":"light";if(t.dark!=null&&t.light!=null)return"darkAndLight"}if(t!=null&&e!=null){if(e.dark!=null&&t.dark!=null)return"dark";if(e.light!=null&&t.light!=null)return"light"}return"darkAndLight"}function Fjn(e,t,r){let n=MR(e.accentPrimary??e.accentPrimaryDeprecated,t,"accent-primary",r)??_a.random(),i=MR(e.background,t,"background",r);return{accentPrimary:n.toRgb(),background:i?.toRgb(),border:MR(e.border,t,"border",r)?.toRgb(),sidebarBackground:MR(e.sidebarBackground,t,"sidebar-background",r)?.toRgb(),headerBackground:MR(e.headerBackground,t,"header-background",r)?.toRgb(),cardBackground:MR(e.cardBackground,t,"card-background",r)?.toRgb(),accent1:MR(e.accent1,t,"accent-1",r)?.toRgb(),accent2:MR(e.accent2,t,"accent-2",r)?.toRgb(),accent3:MR(e.accent3,t,"accent-3",r)?.toRgb(),accent4:MR(e.accent4,t,"accent-4",r)?.toRgb(),accent5:MR(e.accent5,t,"accent-5",r)?.toRgb(),accent6:MR(e.accent6,t,"accent-6",r)?.toRgb(),accent7:MR(e.accent7,t,"accent-7",r)?.toRgb(),accent8:MR(e.accent8,t,"accent-8",r)?.toRgb(),accent9:MR(e.accent9,t,"accent-9",r)?.toRgb(),accent10:MR(e.accent10,t,"accent-10",r)?.toRgb(),accent11:MR(e.accent11,t,"accent-11",r)?.toRgb(),accent12:MR(e.accent12,t,"accent-12",r)?.toRgb(),logo:void 0,backgroundImage:void 0}}function mTr(e,t,r){if(e==null)return;let n=typeof e=="string"?e:e[r];if(n==null&&t==="accent-primary"&&typeof e!="string"&&(n=e[r==="dark"?"light":"dark"]),n!=null)return n}function MR(e,t,r,n){let i=mTr(e,r,n);if(i==null)return;let o=_a(i);return o.isValid()||t.failAndThrow(`'${typeof e=="string"?r:`colors.${r}.${n}`}' should be a hex color of the format #FFFFFF`),o}pr();_w();Ir();var nBn=require("fs/promises");var Abl=He(require("path"),1);pr();Ir();var Kgl=require("fs/promises");Ni();var $gl=100;async function BeA({files:e,absolutePathToFernFolder:t}){let r=await Promise.all(e.map(async n=>{let i=await(0,Kgl.readFile)(n,"utf-8");return[ZS(t,n),i]}));return Object.fromEntries(r)}async function Jgl({files:e,absolutePathToFernFolder:t}){let r={};for(let n=0;n<e.length;n+=$gl){let i=e.slice(n,n+$gl),o=await BeA({files:i,absolutePathToFernFolder:t});Object.assign(r,o)}return r}function zjn({landingPage:e,navigation:t}){return DK([e?.absolutePath,...TeA(t)])}function TeA(e){switch(e.type){case"tabbed":return e.items.flatMap(t=>t.child.type==="layout"?t.child.layout.flatMap(r=>kjn({item:r})):t.child.type==="variants"?t.child.variants.flatMap(r=>r.layout.flatMap(n=>kjn({item:n}))):t.child.type==="changelog"?t.child.changelog:[]);case"untabbed":return e.items.flatMap(t=>kjn({item:t}));case"versioned":return e.versions.flatMap(t=>zjn({landingPage:t.landingPage,navigation:t.navigation}));case"productgroup":return e.products.flatMap(t=>t.type==="external"?[]:zjn({landingPage:t.landingPage,navigation:t.navigation}));default:Ue(e)}}function kjn({item:e}){switch(e.type){case"apiSection":return DK([e.overviewAbsolutePath,...e.navigation.flatMap(t=>Ygl({item:t}))]);case"link":return[];case"page":return[e.absolutePath];case"section":return DK([e.overviewAbsolutePath,...e.contents.flatMap(t=>kjn({item:t}))]);case"changelog":return e.changelog;case"librarySection":return[];default:Ue(e)}}function Ygl({item:e}){return e.type==="page"?[e.absolutePath]:e.type==="package"||e.type==="section"?DK([e.overviewAbsolutePath,...e.contents.flatMap(t=>Ygl({item:t}))]):[]}Ir();var Zjn=require("fs/promises"),Q3s=He(ive(),1);function Jjn({name:e}){return e.replace(/\.(md|mdx)$/i,"").toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}function Yjn({name:e}){return e.replace(/\.(md|mdx)$/i,"").replace(/[-_]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}async function gbl({absolutePath:e,readFileFn:t=(r,n)=>(0,Zjn.readFile)(r,n)}){try{let r=await t(e,"utf-8"),{data:n}=(0,Q3s.default)(r);if(n.position==null)return;let i=typeof n.position=="string"?parseFloat(n.position):n.position;return typeof i=="number"&&Number.isFinite(i)?i:void 0}catch{return}}async function Xjn({absolutePath:e,readFileFn:t=(r,n)=>(0,Zjn.readFile)(r,n)}){try{let r=await t(e,"utf-8"),{data:n}=(0,Q3s.default)(r);return typeof n.title=="string"&&n.title.trim().length>0?n.title.trim():void 0}catch{return}}async function M3s({directoryPath:e,titleSource:t,getDir:r=aI,readFileFn:n=(i,o)=>(0,Zjn.readFile)(i,o)}){let i=await r(e),o=t==="frontmatter",s=i.filter(f=>f.type==="file"&&(f.name.toLowerCase().endsWith(".md")||f.name.toLowerCase().endsWith(".mdx"))),a=i.filter(f=>f.type==="directory"),[c,u]=await Promise.all([Promise.all(s.map(f=>gbl({absolutePath:f.absolutePath,readFileFn:n}))),o?Promise.all(s.map(f=>Xjn({absolutePath:f.absolutePath,readFileFn:n}))):Promise.resolve(s.map(()=>{}))]),l=s.map((f,h)=>({type:"page",title:u[h]??Yjn({name:f.name}),absolutePath:f.absolutePath,slug:Jjn({name:f.name}),icon:void 0,hidden:void 0,noindex:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0})),p=await Promise.all(a.map(async f=>{let h=await M3s({directoryPath:f.absolutePath,titleSource:t,getDir:r,readFileFn:n}),g=h.find(_=>_.type==="page"&&(_.slug==="index"||_.absolutePath.toLowerCase().endsWith("/index.mdx")||_.absolutePath.toLowerCase().endsWith("/index.md"))),y=g?h.filter(_=>_!==g):h,b=(o&&g?.type==="page"?await Xjn({absolutePath:g.absolutePath,readFileFn:n}):void 0)??Yjn({name:f.name}),v=g?.type==="page"?await gbl({absolutePath:g.absolutePath,readFileFn:n}):void 0;return{section:{type:"section",title:b,slug:Jjn({name:f.name}),icon:void 0,contents:y,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:void 0,skipUrlSlug:!1,overviewAbsolutePath:g?.type==="page"?g.absolutePath:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0},position:v}})),m=[...l.map((f,h)=>({item:f,title:f.type==="page"?f.title:"",position:c[h]})),...p.map(f=>({item:f.section,title:f.section.type==="section"?f.section.title:"",position:f.position}))];return m.sort((f,h)=>{let g=typeof f.position=="number",y=typeof h.position=="number";if(g&&!y)return-1;if(!g&&y)return 1;if(typeof f.position=="number"&&typeof h.position=="number"){let A=f.position-h.position;return A!==0?A:f.title.localeCompare(h.title,void 0,{sensitivity:"base"})}return f.title.localeCompare(h.title,void 0,{sensitivity:"base"})}),m.map(f=>f.item)}function qnA(e){return!e||e.startsWith("<")?!1:e.startsWith(".")||e.includes("/")||e.includes("\\")||e.includes(":")}function vI(e,t){if(e)return qnA(e)?pC(e,t):e}async function W3s({rawDocsConfiguration:e,absolutePathToFernFolder:t,absoluteFilepathToDocsConfig:r,context:n}){let{instances:i,title:o,tabs:s,products:a,versions:c,navigation:u,navbarLinks:l,footerLinks:p,defaultLanguage:m,metadata:f,redirects:h,logo:g,favicon:y,backgroundImage:A,colors:b,typography:v,layout:_,integrations:O,css:E,js:P,aiChat:x,aiSearch:I,pageActions:F,experimental:q}=e,W=OTr(e.landingPage,r),$=e.settings?.folderTitleSource,re=niA({tabs:s,products:a,versions:c,navigation:u,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:$}),ce=re.then(xt=>Jgl({files:zjn({navigation:xt,landingPage:W}),absolutePathToFernFolder:t})),G=WnA(g,r),ee=pC(y,r),We=GnA(A,r),$e=v!=null?iiA({rawTypography:v,absoluteFilepathToDocsConfig:r}):void 0,Z=HnA(E,r),X=JnA(P,r),Ne=IiA(f,r),[Se,Je,Ye,_e,ge,dt]=await Promise.all([re,ce,$e,Z,X,Ne]);return{title:o,instances:i,roles:e.roles,libraries:yiA(e.libraries),pages:Je,landingPage:W,navigation:Se,navbarLinks:xiA(l,r),footerLinks:PiA(p),defaultLanguage:m,languages:e.languages,announcement:e.announcement,metadata:dt,redirects:h?.map(xt=>({...xt,permanent:xt?.permanent})),logo:G,favicon:ee,backgroundImage:We,colors:Hgl(b,n),typography:Ye,layout:riA(_),settings:tiA(e.settings),theme:eiA(e.theme),analyticsConfig:{...e.analytics,intercom:e.analytics?.intercom?{...e.analytics.intercom,appId:e.analytics.intercom.appId,apiBase:e.analytics.intercom.apiBase}:void 0,fullstory:e.analytics?.fullstory,posthog:e.analytics?.posthog?{...e.analytics.posthog,apiKey:e.analytics.posthog.apiKey,endpoint:e.analytics.posthog.endpoint}:void 0,segment:e.analytics?.segment,gtm:e.analytics?.gtm,ga4:e.analytics?.ga4,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},integrations:{...O,intercom:O?.intercom?O.intercom:void 0},css:_e,js:ge,aiChatConfig:I??x,pageActions:YnA(F,r),header:pC(e.header,r),footer:pC(e.footer,r),experimental:q}}function WnA(e,t){return e!=null?{dark:pC(e.dark,t),light:pC(e.light,t),height:e.height,href:e.href!=null?vn.Url(e.href):void 0,rightText:e.rightText}:void 0}function GnA(e,t){if(e!=null)if(typeof e=="string"){let r=pC(e,t);return{dark:r,light:r}}else{let r=pC(e.dark,t),n=pC(e.light,t);return{dark:r,light:n}}}async function HnA(e,t){if(e==null)return;let r=typeof e=="string"?[e]:e;return{inline:await Promise.all(r.map(async n=>(await(0,nBn.readFile)(pC(n,t))).toString()))}}function $nA(e){return Object.hasOwn(e,"url")}function KnA(e){return Object.hasOwn(e,"path")}async function JnA(e,t){let r=[],n=[];if(e==null)return{files:[]};let i=Array.isArray(e)?e:[e];for(let o of i)typeof o=="string"?n.push({absolutePath:pC(o,t)}):$nA(o)?r.push({strategy:o.strategy,url:vn.Url(o.url)}):KnA(o)&&n.push({absolutePath:pC(o.path,t),strategy:o.strategy});return{remote:r,files:n}}function YnA(e,t){return e==null?void 0:{default:e.default!=null?XnA(e.default):void 0,options:{askAi:e.options?.askAi??!0,copyPage:e.options?.copyPage??!0,viewAsMarkdown:e.options?.viewAsMarkdown??!0,openAi:e.options?.chatgpt??!0,claude:e.options?.claude??!0,cursor:e.options?.cursor??!0,vscode:e.options?.vscode??!1,custom:(e.options?.custom??[]).map(n=>ZnA(n,t))}}}function XnA(e){switch(e){case"copy-page":return vn.docs.v1.commons.PageActionOption.CopyPage;case"view-as-markdown":return vn.docs.v1.commons.PageActionOption.ViewAsMarkdown;case"ask-ai":return vn.docs.v1.commons.PageActionOption.AskAi;case"chatgpt":return vn.docs.v1.commons.PageActionOption.OpenAi;case"claude":return vn.docs.v1.commons.PageActionOption.Claude;case"cursor":return vn.docs.v1.commons.PageActionOption.Cursor;case"vscode":return vn.docs.v1.commons.PageActionOption.Vscode;default:Ue(e)}}function ZnA(e,t){return{title:e.title,subtitle:e.subtitle,url:e.url,icon:vI(e.icon,t),default:e.default}}function eiA(e){if(e!=null)return{sidebar:e.sidebar??"default",tabs:e.tabs??"default",body:e.body??"default",pageActions:e.pageActions??"default",footerNav:e.footerNav??"default",languageSwitcher:e.languageSwitcher??"default",productSwitcher:e.productSwitcher??"default"}}function tiA(e){if(e!=null)return{darkModeCode:e.darkModeCode??!1,defaultSearchFilters:e.defaultSearchFilters??!1,language:e.language??"en",disableSearch:e.disableSearch??!1,hide404Page:e.hide404Page??!1,httpSnippets:e.httpSnippets??!0,searchText:e.searchText??void 0,useJavascriptAsTypescript:e.useJavascriptAsTypescript??!1,disableExplorerProxy:e.disableExplorerProxy??!1,disableAnalytics:e.disableAnalytics??!1}}function riA(e){if(e!=null)return{pageWidth:e.pageWidth?.trim().toLowerCase()==="full"?{type:"full"}:eBn(e.pageWidth),contentWidth:eBn(e.contentWidth),sidebarWidth:eBn(e.sidebarWidth),headerHeight:eBn(e.headerHeight),searchbarPlacement:e.searchbarPlacement==="header"?vn.docs.v1.commons.SearchbarPlacement.Header:e.searchbarPlacement==="header-tabs"?vn.docs.v1.commons.SearchbarPlacement.HeaderTabs:vn.docs.v1.commons.SearchbarPlacement.Sidebar,switcherPlacement:!e.switcherPlacement||e.switcherPlacement==="header"?vn.docs.v1.commons.SwitcherPlacement.Header:vn.docs.v1.commons.SwitcherPlacement.Sidebar,tabsPlacement:e.tabsPlacement==="header"?vn.docs.v1.commons.TabsPlacement.Header:vn.docs.v1.commons.TabsPlacement.Sidebar,contentAlignment:e.contentAlignment==="left"?vn.docs.v1.commons.ContentAlignment.Left:vn.docs.v1.commons.ContentAlignment.Center,headerPosition:e.headerPosition==="static"?vn.docs.v1.commons.HeaderPosition.Absolute:vn.docs.v1.commons.HeaderPosition.Fixed,disableHeader:e.disableHeader??!1,hideNavLinks:e.hideNavLinks??!1,hideFeedback:e.hideFeedback??!1}}function eBn(e){if(e==null)return;let t=e.trim().toLowerCase(),r=t.match(/^(\d+)px$/);if(r!=null&&r[1]!=null)return{type:"px",value:parseFloat(r[1])};let n=t.match(/^(\d+)rem$/);if(n!=null&&n[1]!=null)return{type:"rem",value:parseFloat(n[1])}}async function ybl({versions:e,absolutePathToFernFolder:t,context:r,folderTitleSource:n}){let i=[];for(let o of e){let s=aa(t,o.path),a=Bn.load((await(0,nBn.readFile)(s)).toString()),c=[],u=FK(a,[],c);c.length>0&&r.logger.warn(`Version file ${o.path} contained null/undefined sections that were ignored: ${c.map(m=>m.join(".")).join(", ")}`);let l=Y3.RawSchemas.Serializer.VersionFileConfig.parseOrThrow(u),p=await q3s({tabs:l.tabs,rawNavigationConfig:l.navigation,absolutePathToFernFolder:t,absolutePathToConfig:s,context:r,folderTitleSource:n});i.push({landingPage:OTr(l.landingPage,s),version:o.displayName,navigation:p,availability:o.availability,slug:o.slug,hidden:o.hidden,viewers:UR(o.viewers),orphaned:o.orphaned,featureFlags:VR(o.featureFlag),announcement:o.announcement})}return{type:"versioned",versions:i}}async function niA({tabs:e,products:t,versions:r,navigation:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a}){if(n!=null)return await q3s({tabs:e,rawNavigationConfig:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a});if(t!=null){let c=[];for(let u of t){let l=u.image!=null?aa(i,u.image):void 0;if("path"in u){let p,m=aa(i,u.path),f=Bn.load((await(0,nBn.readFile)(m)).toString()),h=[],g=FK(f,[],h);h.length>0&&s.logger.warn(`Product file ${u.path} contained null/undefined sections that were ignored: ${h.map(A=>A.join(".")).join(", ")}`);let y=Y3.RawSchemas.Serializer.ProductFileConfig.parseOrThrow(g);u.versions!=null&&u.versions.length>0?p=await ybl({versions:u.versions,absolutePathToFernFolder:i,context:s,folderTitleSource:a}):p=await q3s({tabs:y.tabs,rawNavigationConfig:y.navigation,absolutePathToFernFolder:i,absolutePathToConfig:m,context:s,folderTitleSource:a}),c.push({type:"internal",landingPage:OTr(y.landingPage,m),product:u.displayName,navigation:p,slug:u.slug,subtitle:u.subtitle,icon:vI(u.icon,o)||"fa-solid fa-code",image:l,viewers:UR(u.viewers),orphaned:u.orphaned,featureFlags:VR(u.featureFlag),announcement:u.announcement})}else if("href"in u&&u.href!=null)c.push({type:"external",product:u.displayName,href:u.href,target:u.target,subtitle:u.subtitle,icon:vI(u.icon,o)||"fa-solid fa-code",image:l,viewers:UR(u.viewers),orphaned:u.orphaned,featureFlags:VR(u.featureFlag)});else throw new Error("Invalid product configuration: product must have either 'path' or valid 'href' property")}return{type:"productgroup",products:c}}else if(r!=null)return await ybl({versions:r,absolutePathToFernFolder:i,context:s,folderTitleSource:a});throw new Error("Unexpected. Docs have neither navigation or versions defined.")}function VR(e){if(e!=null)return typeof e=="string"?[{flag:e,match:!0,fallbackValue:void 0}]:Array.isArray(e)?e.map(t=>({flag:t.flag,match:t.match,fallbackValue:t.fallbackValue})):[{flag:e.flag,match:e.match??!0,fallbackValue:e.fallbackValue}]}async function iiA({rawTypography:e,absoluteFilepathToDocsConfig:t}){return{headingsFont:e.headingsFont!=null?await V3s({rawFontConfig:e.headingsFont,absoluteFilepathToDocsConfig:t}):void 0,bodyFont:e.bodyFont!=null?await V3s({rawFontConfig:e.bodyFont,absoluteFilepathToDocsConfig:t}):void 0,codeFont:e.codeFont!=null?await V3s({rawFontConfig:e.codeFont,absoluteFilepathToDocsConfig:t}):void 0}}async function V3s({rawFontConfig:e,absoluteFilepathToDocsConfig:t}){return{name:e.name,variants:await oiA(e,t),display:e.display,fallback:e.fallback,fontVariationSettings:e.fontVariationSettings}}function oiA(e,t){let r=[];return e.path!=null&&r.push({path:e.path,weight:e.weight,style:e.style}),e.paths?.forEach(n=>{typeof n=="string"?r.push({path:n,weight:e.weight,style:e.style}):r.push({path:n.path,weight:n.weight??e.weight,style:n.style??e.style})}),Promise.all(r.map(async n=>({absolutePath:pC(n.path,t),weight:siA(n.weight),style:n.style})))}function siA(e){return e==null?void 0:typeof e=="number"?[e.toString()]:e.split(/\D+/).filter(r=>r!==""&&["100","200","300","400","500","600","700","800","900"].includes(r))}async function aiA({tabs:e,item:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){let s=e[t.tab];if(s==null)throw new Error(`Tab ${t.tab} is not defined in the tabs config.`);if(wiA(t)){let a=await Promise.all(t.variants.map(async c=>{let u=await Promise.all(c.layout.map(l=>rBn({rawConfig:l,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:c.title,subtitle:c.subtitle,icon:vI(c.icon,n),layout:u,slug:c.slug,skipUrlSlug:c.skipSlug,hidden:c.hidden,default:c.default,viewers:UR(c.viewers),orphaned:c.orphaned,featureFlags:VR(c.featureFlag)}}));return{title:s.displayName,icon:vI(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"variants",variants:a},viewers:UR(s.viewers),orphaned:s.orphaned,featureFlags:VR(s.featureFlag)}}if(EiA(t)){let a=await Promise.all(t.layout.map(c=>rBn({rawConfig:c,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:s.displayName,icon:vI(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"layout",layout:a},viewers:UR(s.viewers),orphaned:s.orphaned,featureFlags:VR(s.featureFlag)}}if(s.href!=null)return{title:s.displayName,icon:vI(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"link",href:s.href,target:s.target},viewers:UR(s.viewers),orphaned:s.orphaned,featureFlags:VR(s.featureFlag)};if(s.changelog!=null)return{title:s.displayName,icon:vI(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"changelog",changelog:await nR(pC(s.changelog,n),"{md,mdx}")},viewers:UR(s.viewers),orphaned:s.orphaned,featureFlags:VR(s.featureFlag)};Ue(s)}async function q3s({tabs:e={},rawNavigationConfig:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){return OiA(t)?{type:"tabbed",items:await Promise.all(t.map(a=>aiA({tabs:e,item:a,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}:{type:"untabbed",items:await Promise.all(t.map(s=>rBn({rawConfig:s,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}}var ciA="Changelog";async function uiA({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){let o=pC(e.folder,r);await qr(o)||n.failAndThrow(`Folder not found: ${e.folder}`),G3s({context:n,sectionTitle:e.folder,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0});let s=e.titleSource??i,a=await M3s({directoryPath:o,titleSource:s}),c=a.find(h=>h.type==="page"&&(h.slug==="index"||h.absolutePath.toLowerCase().endsWith("/index.mdx")||h.absolutePath.toLowerCase().endsWith("/index.md"))),u=c?a.filter(h=>h!==c):a,l=Abl.default.basename(o),p=s==="frontmatter"&&c?.type==="page"?await Xjn({absolutePath:c.absolutePath}):void 0,m=e.title??p??Yjn({name:l}),f=e.slug??Jjn({name:l});return{type:"section",title:m,icon:vI(e.icon,r),contents:u,slug:f,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:c?.type==="page"?c.absolutePath:void 0,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag),availability:e.availability}}async function rBn({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){if(bbl(e))return OTr(e,r);if(piA(e))return G3s({context:n,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),{type:"section",title:e.section,icon:vI(e.icon,r),contents:await Promise.all(e.contents.map(o=>rBn({rawConfig:o,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}))),slug:e.slug??void 0,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:pC(e.path,r),viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag),availability:e.availability};if(fiA(e))return{type:"apiSection",openrpc:e.openrpc,title:e.api,icon:vI(e.icon,r),apiName:e.apiName??void 0,audiences:e.audiences!=null?{type:"select",audiences:ETr(e.audiences)??[]}:{type:"all"},availability:e.availability,showErrors:e.displayErrors??!0,tagDescriptionPages:e.tagDescriptionPages??!1,snippetsConfiguration:e.snippets!=null?liA({rawConfig:e.snippets}):void 0,postman:e.postman,navigation:e.layout?.flatMap(o=>tBn(o,r,n))??[],overviewAbsolutePath:pC(e.summary,r),collapsed:e.collapsed??void 0,hidden:e.hidden??void 0,slug:e.slug,skipUrlSlug:e.skipSlug??!1,flattened:e.flattened??!1,alphabetized:e.alphabetized??!1,paginated:e.paginated??!1,playground:e.playground,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)};if(_bl(e))return{type:"link",text:e.link,url:e.href,icon:vI(e.icon,r),target:e.target};if(miA(e))return{type:"changelog",changelog:await nR(pC(e.changelog,r),"{md,mdx}"),hidden:e.hidden??!1,icon:vI(e.icon,r),title:e.title??ciA,slug:e.slug,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)};if(diA(e))return await uiA({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i});if(hiA(e))return{type:"librarySection",libraryName:e.library,title:e.title??void 0,slug:e.slug??void 0,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)};Ue(e)}function OTr(e,t){if(e!=null)return{type:"page",title:e.page,absolutePath:pC(e.path,t),slug:e.slug,icon:vI(e.icon,t),hidden:e.hidden,noindex:e.noindex,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag),availability:e.availability}}function tBn(e,t,r){return typeof e=="string"?[{type:"item",value:e}]:bbl(e)?[OTr(e,t)]:_bl(e)?[{type:"link",text:e.link,url:e.href,icon:vI(e.icon,t),target:e.target}]:AiA(e)?(r!=null&&G3s({context:r,sectionTitle:e.section,collapsed:void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),[{type:"section",title:e.section,referencedSubpackages:e.referencedPackages??[],overviewAbsolutePath:pC(e.summary,t),contents:e.contents?.flatMap(n=>tBn(n,t,r))??[],slug:e.slug,hidden:e.hidden,skipUrlSlug:e.skipSlug,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,availability:e.availability,icon:vI(e.icon,t),playground:e.playground,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)}]):biA(e)?[{type:"endpoint",endpoint:e.endpoint,title:e.title,icon:vI(e.icon,t),slug:e.slug,hidden:e.hidden,availability:e.availability,playground:e.playground,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)}]:_iA(e)?[{type:"operation",operation:e.operation,title:e.title,slug:e.slug,hidden:e.hidden,availability:e.availability,viewers:UR(e.viewers),orphaned:e.orphaned,featureFlags:VR(e.featureFlag)}]:Object.entries(e).map(([n,i])=>viA(i)?{type:"package",title:i.title,package:n,overviewAbsolutePath:pC(i.summary,t),contents:i.contents?.flatMap(o=>tBn(o,t,r))??[],slug:i.slug,hidden:i.hidden,skipUrlSlug:i.skipSlug,icon:vI(i.icon,t),playground:i.playground,availability:i.availability,viewers:UR(i.viewers),orphaned:i.orphaned,featureFlags:VR(i.featureFlag)}:{type:"package",title:void 0,package:n,overviewAbsolutePath:void 0,contents:i.flatMap(o=>tBn(o,t,r)),hidden:!1,slug:void 0,skipUrlSlug:!1,icon:void 0,playground:void 0,availability:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}function liA({rawConfig:e}){return{python:e.python,typescript:e.typescript,go:e.go,java:e.java,ruby:e.ruby,csharp:e.csharp,php:e.php,swift:e.swift}}function bbl(e){return Lu(e)&&typeof e.page=="string"&&typeof e.path=="string"}function piA(e){return e.section!=null}function fiA(e){return e.api!=null}function _bl(e){return Y3.RawSchemas,Lu(e)&&typeof e.link=="string"&&typeof e.href=="string"}function miA(e){return Lu(e)&&typeof e.changelog=="string"}function diA(e){return Lu(e)&&typeof e.folder=="string"}function hiA(e){return Lu(e)&&typeof e.library=="string"}function giA(e){return"git"in e}function yiA(e){if(e==null)return;let t={};for(let[r,n]of Object.entries(e)){if(!giA(n.input))throw new Error(`Library '${r}' uses 'path' input which is not yet supported. Please use 'git' input.`);t[r]={input:{git:n.input.git,subpath:n.input.subpath},output:{path:n.output.path},lang:n.lang}}return t}function AiA(e){return Lu(e)&&typeof e.section=="string"&&Array.isArray(e.contents)}function biA(e){return Lu(e)&&typeof e.endpoint=="string"}function _iA(e){return Lu(e)&&typeof e.operation=="string"}function viA(e){return!Array.isArray(e)}function pC(e,t){if(e!=null)return aa(ji(t),e)}function OiA(e){return Array.isArray(e)&&e.length>0&&e[0].tab!=null}function EiA(e){return"layout"in e&&Array.isArray(e.layout)}function wiA(e){return"variants"in e&&Array.isArray(e.variants)}function xiA(e,t){return e?.map(r=>{if(r.type==="github"){let i=r.value;return typeof i=="string"?{type:"github",url:vn.Url(i),viewers:void 0,target:void 0}:{type:"github",url:vn.Url(i.url),viewers:U3s(i.viewers),target:i.target}}let n=U3s(r.viewers);return r.type==="dropdown"?{type:"dropdown",text:r.text,icon:vI(r.icon,t),rightIcon:vI(r.rightIcon,t),rounded:r.rounded,viewers:n,links:r.links?.map(i=>({href:i.href,target:i.target,url:vn.Url(i.url??i.href??"/"),text:i.text,icon:vI(i.icon,t),rightIcon:vI(i.rightIcon,t),rounded:i.rounded,viewers:U3s(i.viewers)}))??[]}:{type:r.type,text:r.text,url:vn.Url(r.href??r.url??"/"),target:r.target,icon:vI(r.icon,t),rightIcon:vI(r.rightIcon,t),rounded:r.rounded,viewers:n}})}function U3s(e){if(e!=null)return Array.isArray(e)?e.map(t=>vn.RoleId(t)):[vn.RoleId(e)]}function PiA(e){if(e==null)return;let t=[];if(Object.keys(e).forEach(r=>{let n=e[r];n!=null&&t.push({type:r,value:vn.Url(n)})}),t.length!==0)return t}async function IiA(e,t){if(e!=null)return{"og:site_name":e.ogSiteName,"og:title":e.ogTitle,"og:description":e.ogDescription,"og:url":e.ogUrl,"og:image":await L3s(e.ogImage,t),"og:image:width":e.ogImageWidth,"og:image:height":e.ogImageHeight,"og:locale":e.ogLocale,"og:logo":await L3s(e.ogLogo,t),"twitter:title":e.twitterTitle,"twitter:description":e.twitterDescription,"twitter:image":await L3s(e.twitterImage,t),"twitter:handle":e.twitterHandle,"twitter:site":e.twitterSite,"twitter:url":e.twitterUrl,"twitter:card":e.twitterCard,nofollow:void 0,noindex:void 0,canonicalHost:e.canonicalHost}}async function L3s(e,t){if(e==null)return;if(e.startsWith("http"))return{type:"url",value:e};let r=pC(e,t);return await qr(r)?{type:"filepath",value:r}:{type:"url",value:e}}function UR(e){if(e!=null){if(typeof e=="string")return[vn.RoleId(e)];if(e.length!==0)return e.map(vn.RoleId)}}function ETr(e){if(e!=null){if(typeof e=="string")return[e];if(e.length!==0)return e}}function G3s({context:e,sectionTitle:t,collapsed:r,collapsible:n,collapsedByDefault:i}){n!=null&&r!=null&&e.failAndThrow(`Section "${t}": cannot use both "collapsible" and the deprecated "collapsed" property. Please use "collapsible" and "collapsed-by-default" instead.`),i!=null&&n!==!0&&e.failAndThrow(`Section "${t}": "collapsed-by-default" requires "collapsible: true". "collapsed-by-default" has no effect on a non-collapsible section.`)}Ir();var Obl=require("fs/promises");var vbl=Zt.strictObject({organization:Zt.string(),version:Zt.string()});async function zG({directory:e,context:t}){let r=It(e,Ze.of(iS)),n=await(0,Obl.readFile)(r),i=JSON.parse(n.toString()),o=await Rjn({schema:vbl,value:i,context:t,filepathBeingParsed:r});return{_absolutePath:r,rawConfig:o,organization:o.organization,version:o.version}}var w={TYPESCRIPT:"fernapi/fern-typescript",TYPESCRIPT_SDK:"fernapi/fern-typescript-sdk",TYPESCRIPT_NODE_SDK:"fernapi/fern-typescript-node-sdk",TYPESCRIPT_BROWSER_SDK:"fernapi/fern-typescript-browser-sdk",TYPESCRIPT_EXPRESS:"fernapi/fern-typescript-express",JAVA:"fernapi/fern-java",JAVA_MODEL:"fernapi/fern-java-model",JAVA_SDK:"fernapi/fern-java-sdk",JAVA_SPRING:"fernapi/fern-java-spring",PYTHON_FASTAPI:"fernapi/fern-fastapi-server",PYTHON_PYDANTIC:"fernapi/fern-pydantic-model",PYTHON_SDK:"fernapi/fern-python-sdk",GO_MODEL:"fernapi/fern-go-model",GO_SDK:"fernapi/fern-go-sdk",RUBY_SDK:"fernapi/fern-ruby-sdk",CSHARP_MODEL:"fernapi/fern-csharp-model",CSHARP_SDK:"fernapi/fern-csharp-sdk",SWIFT_MODEL:"fernapi/fern-swift-model",SWIFT_SDK:"fernapi/fern-swift-sdk",PHP_MODEL:"fernapi/fern-php-model",PHP_SDK:"fernapi/fern-php-sdk",RUST_MODEL:"fernapi/fern-rust-model",RUST_SDK:"fernapi/fern-rust-sdk",OPENAPI:"fernapi/fern-openapi",STOPLIGHT:"fernapi/fern-stoplight",POSTMAN:"fernapi/fern-postman",OPENAPI_PYTHON_CLIENT:"fernapi/openapi-python-client"};var wTr={[w.JAVA]:{version:"2.38.1"},[w.TYPESCRIPT_EXPRESS]:{version:"0.18.4",output:{location:"local-file-system",path:"../src/fern"}},[w.JAVA_MODEL]:{version:"1.0.0"},[w.JAVA_SDK]:{version:"2.38.1",output:{location:"local-file-system",path:"../sdks/java/src/main/java/"}},[w.JAVA_SPRING]:{version:"0.9.2",output:{location:"local-file-system",path:"../src/main/java/com/fern"}},[w.TYPESCRIPT]:{version:"0.0.247"},[w.TYPESCRIPT_SDK]:{version:"2.3.2",output:{location:"local-file-system",path:"../sdks/typescript"}},[w.TYPESCRIPT_NODE_SDK]:{version:"2.3.2",output:{location:"local-file-system",path:"../sdks/typescript"}},[w.TYPESCRIPT_BROWSER_SDK]:{version:"1.0.0",output:{location:"local-file-system",path:"../sdks/typescript"}},[w.PYTHON_PYDANTIC]:{version:"1.4.7"},[w.PYTHON_FASTAPI]:{version:"1.7.0",output:{location:"local-file-system",path:"../src/fern"}},[w.PYTHON_SDK]:{version:"4.23.2",output:{location:"local-file-system",path:"../sdks/python"}},[w.GO_MODEL]:{version:"0.23.5"},[w.GO_SDK]:{version:"1.4.0",output:{location:"local-file-system",path:"../sdks/go"},config:{module:{path:"sdk"}}},[w.RUBY_SDK]:{version:"0.8.2",output:{location:"local-file-system",path:"../sdks/ruby"}},[w.OPENAPI]:{version:"0.1.7",config:{format:"yaml"},output:{location:"local-file-system",path:"../openapi"}},[w.STOPLIGHT]:{version:"0.0.28",config:{format:"yaml"}},[w.POSTMAN]:{version:"0.4.0",output:{location:"local-file-system",path:"../postman"}},[w.OPENAPI_PYTHON_CLIENT]:{version:"0.0.0",output:{location:"local-file-system",path:"../sdks/python"},config:{format:"yaml"}},[w.CSHARP_MODEL]:{version:"0.0.1"},[w.CSHARP_SDK]:{version:"2.0.2",output:{location:"local-file-system",path:"../sdks/csharp"}},[w.SWIFT_MODEL]:{version:"0.0.0"},[w.SWIFT_SDK]:{version:"0.0.0",output:{location:"local-file-system",path:"../sdks/swift/sdk"}},[w.PHP_MODEL]:{version:"0.0.0"},[w.PHP_SDK]:{version:"1.16.3",output:{location:"local-file-system",path:"../sdks/php/sdk"}},[w.RUST_MODEL]:{version:"0.0.1",output:{location:"local-file-system",path:"../models/rust"}},[w.RUST_SDK]:{version:"0.0.1",output:{location:"local-file-system",path:"../sdks/rust"}}};var xTr="fernapi",V0t="fern-api";function LR(e){return e=JLt(e),e.includes("/")?e:`${xTr}/${e}`}function JLt(e){let t=`${V0t}/`;return e.startsWith(t)?`${xTr}/${e.slice(t.length)}`:e}function H3s(e,t){let r=`${V0t}/`;if(e.startsWith(r)){let n=`${xTr}/${e.slice(r.length)}`;return t.logger.warn(`"${e}" is not a valid generator name. Using "${n}" instead \u2014 the Docker org is "fernapi", not "fern-api".`),n}return e}function $3s(e){let t=`${xTr}/`;return e.startsWith(t)?e.slice(t.length):e}function K3s(e,t){let r=U0t(e);return r??t.failAndThrow("Unrecognized generator: "+e)}var CiA={"fernapi/java-model":w.JAVA_MODEL,"fernapi/fern-typescript-node-sdk":w.TYPESCRIPT_SDK};function U0t(e){e=LR(e);let t=CiA[e];if(t!=null&&(e=t),SiA(e))return e}function SiA(e){return Object.values(w).includes(e)}var iBn=He(tEr(),1),Ebl=He(g3(),1);async function QG({generatorName:e,cliVersion:t,channel:r,currentGeneratorVersion:n,includeMajor:i,context:o}){let s=Ebl.default.parse(n),a="https://registry.buildwithfern.com",c=new iBn.FernRegistryClient({environment:a});o?.logger.debug(`Getting latest version for ${e} with CLI version ${t}, includeMajor: ${i}, prior version: ${s}, FDR origin: ${a}`);let u={generator:jiA(e,o),releaseTypes:[r??iBn.FernRegistry.generators.ReleaseType.Ga],cliVersion:t};!i&&s!=null&&(u.generatorMajorVersion=s.major),o?.logger.debug(`[FDR] getLatestGeneratorRelease request: ${JSON.stringify(u)}`);let l=await c.generators.versions.getLatestGeneratorRelease(u);if(l.ok)return o?.logger.debug(`[FDR] getLatestGeneratorRelease response for ${e}: version=${l.body.version}, irVersion=${l.body.irVersion}`),l.body.version;o?.logger.debug(`[FDR] getLatestGeneratorRelease failed for ${e}: ${JSON.stringify(l)}`)}function jiA(e,t){switch(e.startsWith("fernapi/")&&(e=e.replace("fernapi/","")),e){case"fern-python-sdk":return"python-sdk";case"fern-pydantic-model":return"pydantic";case"fern-fastapi-server":return"fastapi";case"fern-typescript":case"fern-typescript-browser-sdk":case"fern-typescript-node-sdk":case"fern-typescript-sdk":return"ts-sdk";case"fern-typescript-express":return"ts-express";case"fern-java-sdk":return"java-sdk";case"fern-java-model":case"java-model":return"java-model";case"fern-java-spring":return"java-spring";case"fern-go-sdk":return"go-sdk";case"fern-go-model":return"go-model";case"fern-csharp-sdk":return"csharp-sdk";case"fern-csharp-model":return"csharp-model";case"fern-ruby-sdk":return"ruby-sdk";case"fern-postman":return"postman";case"fern-openapi":return"openapi";case"fern-php-sdk":return"php-sdk";case"fern-php-model":return"php-model";case"fern-rust-sdk":return"rust-sdk";case"fern-rust-model":return"rust-model";case"fern-swift-sdk":return"swift-sdk";case"fern-swift-model":return"swift-model";default:return t?.logger.warn(`Unrecognized generator name found, attempting to parse manually: ${e}`),e.startsWith("fern-")?e.replace("fern-",""):e}}async function wbl({generatorsConfiguration:e,groupName:t=e[xi.DEFAULT_GROUP_GENERATORS_CONFIG_KEY],context:r,update:n}){if(t==null)return r.failAndThrow("No group specified.");let i=e.groups??={},o=i[t];if(o==null){let s=i[t]??={generators:[]};await n(s,t)}else await n(o,t);return e}async function J3s({generatorName:e,generatorsConfiguration:t,groupName:r=t[YVt],context:n,cliVersion:i}){let o=K3s(e,n),s=$3s(o),a=wTr[o];return await wbl({generatorsConfiguration:t,groupName:r,context:n,update:async c=>{c.generators.some(u=>LR(u.name)===o)&&n.failAndThrow(`${e} is already installed in group ${r}.`),c.generators.push({name:s,...a,version:await QG({cliVersion:i,generatorName:o,context:n,channel:void 0})??a.version})}})}pr();Ir();h7e();var NA=He(hQe(),1),g8s=He(fd(),1),aEl=require("fs/promises"),cEl=He(require("path"),1);var uEl={shouldUseTitleAsName:void 0,shouldUseUndiscriminatedUnionsWithLiterals:void 0,shouldUseIdiomaticRequestNames:void 0,asyncApiMessageNaming:void 0,onlyIncludeReferencedSchemas:void 0,shouldUseOptionalAdditionalProperties:void 0,coerceEnumsToLiterals:void 0,objectQueryParameters:void 0,respectReadonlySchemas:void 0,respectNullableSchemas:void 0,inlinePathParameters:void 0,useBytesForBinaryResponse:void 0,respectForwardCompatibleEnums:void 0,filter:void 0,exampleGeneration:void 0,defaultFormParameterEncoding:void 0,additionalPropertiesDefaultsTo:void 0,typeDatesAsStrings:void 0,preserveSingleSchemaOneOf:void 0,inlineAllOfSchemas:void 0,resolveAliases:void 0,groupMultiApiEnvironments:void 0,groupEnvironmentsByHost:void 0,wrapReferencesToNullableInOptional:void 0,coerceOptionalSchemasToNullable:void 0,removeDiscriminantsFromSchemas:void 0,pathParameterOrder:void 0,defaultIntegerFormat:void 0,resolveSchemaCollisions:void 0};async function lEl({absolutePathToGeneratorsConfiguration:e,rawGeneratorsConfiguration:t,context:r}){let n=hEl(t.metadata),i=t.readme;vlA(r,t);let o=await llA(t);return{absolutePathToConfiguration:e,api:o,rawConfiguration:t,defaultGroup:t["default-group"],groupAliases:t.aliases??{},reviewers:t.reviewers,groups:t.groups!=null?await Promise.all(Object.entries(t.groups).map(([s,a])=>plA({absolutePathToGeneratorsConfiguration:e,groupName:s,group:a,maybeTopLevelMetadata:n,maybeTopLevelReviewers:t.reviewers,readme:i,context:r}))):[],whitelabel:t.whitelabel!=null&&t.whitelabel.github!=null?{github:t.whitelabel.github}:void 0,ai:t.ai,replay:t.replay}}function ZBn(e){return{...uEl,shouldUseTitleAsName:e?.["use-title"],shouldUseUndiscriminatedUnionsWithLiterals:e?.unions==="v1",asyncApiMessageNaming:e?.["message-naming"],respectNullableSchemas:e?.["respect-nullable-schemas"],wrapReferencesToNullableInOptional:e?.["wrap-references-to-nullable-in-optional"],coerceOptionalSchemasToNullable:e?.["coerce-optional-schemas-to-nullable"],onlyIncludeReferencedSchemas:e?.["only-include-referenced-schemas"],inlinePathParameters:e?.["inline-path-parameters"],shouldUseIdiomaticRequestNames:e?.["idiomatic-request-names"],removeDiscriminantsFromSchemas:fEl(e?.["remove-discriminants-from-schemas"]),pathParameterOrder:e?.["path-parameter-order"]}}function pEl(e){return{...eTn(e),shouldUseUndiscriminatedUnionsWithLiterals:e?.["prefer-undiscriminated-unions-with-literals"],onlyIncludeReferencedSchemas:e?.["only-include-referenced-schemas"],objectQueryParameters:e?.["object-query-parameters"],respectReadonlySchemas:e?.["respect-readonly-schemas"],inlinePathParameters:e?.["inline-path-parameters"],filter:e?.filter,exampleGeneration:e?.["example-generation"],defaultFormParameterEncoding:e?.["default-form-parameter-encoding"],useBytesForBinaryResponse:e?.["use-bytes-for-binary-response"],respectForwardCompatibleEnums:e?.["respect-forward-compatible-enums"],additionalPropertiesDefaultsTo:e?.["additional-properties-defaults-to"],typeDatesAsStrings:e?.["type-dates-as-strings"],preserveSingleSchemaOneOf:e?.["preserve-single-schema-oneof"],inlineAllOfSchemas:e?.["inline-all-of-schemas"],resolveAliases:e?.["resolve-aliases"],groupMultiApiEnvironments:e?.["group-multi-api-environments"],groupEnvironmentsByHost:e?.["group-environments-by-host"],defaultIntegerFormat:e?.["default-integer-format"],pathParameterOrder:e?.["path-parameter-order"]}}function clA(e){return{...eTn(e),asyncApiMessageNaming:e?.["message-naming"]}}function eTn(e){return{...uEl,shouldUseTitleAsName:e?.["title-as-schema-name"],shouldUseIdiomaticRequestNames:e?.["idiomatic-request-names"],shouldUseOptionalAdditionalProperties:e?.["optional-additional-properties"],coerceEnumsToLiterals:e?.["coerce-enums-to-literals"],respectNullableSchemas:e?.["respect-nullable-schemas"],wrapReferencesToNullableInOptional:e?.["wrap-references-to-nullable-in-optional"],coerceOptionalSchemasToNullable:e?.["coerce-optional-schemas-to-nullable"],groupEnvironmentsByHost:e?.["group-environments-by-host"],groupMultiApiEnvironments:e!=null&&"group-multi-api-environments"in e?e["group-multi-api-environments"]:void 0,removeDiscriminantsFromSchemas:fEl(e?.["remove-discriminants-from-schemas"]),pathParameterOrder:e?.["path-parameter-order"],resolveSchemaCollisions:e?.["resolve-schema-collisions"]}}function fEl(e){if(e==null||e==="always")return xi.RemoveDiscriminantsFromSchemas.Always;if(e==="never")return xi.RemoveDiscriminantsFromSchemas.Never;throw new Error(`Unknown value for generators.yml API setting: remove-discriminants-from-schemas: ${e}`)}function g7e(e,t){return{...e,...Object.fromEntries(Object.entries(t).filter(([r,n])=>n!==void 0))}}async function sEl(e,t,r){let n=[];if(e!=null)if(typeof e=="string")n.push({schema:{type:"oss",path:e},origin:void 0,overrides:void 0,overlays:void 0,audiences:[],settings:r});else if(xi.isRawProtobufAPIDefinitionSchema(e))n.push({schema:{type:"protobuf",root:e.proto.root,target:e.proto.target??"",localGeneration:e.proto["local-generation"]??!1,fromOpenAPI:e.proto["from-openapi"]??!1,dependencies:e.proto.dependencies??[]},origin:void 0,overrides:e.proto.overrides,overlays:void 0,audiences:[],settings:r});else if(Array.isArray(e))for(let i of e)typeof i=="string"?n.push({schema:{type:"oss",path:i},origin:void 0,overrides:void 0,overlays:void 0,audiences:[],settings:r}):xi.isRawProtobufAPIDefinitionSchema(i)?n.push({schema:{type:"protobuf",root:i.proto.root,target:i.proto.target??"",localGeneration:i.proto["local-generation"]??!1,fromOpenAPI:i.proto["from-openapi"]??!1,dependencies:i.proto.dependencies??[]},origin:void 0,overrides:i.proto.overrides,overlays:void 0,audiences:[],settings:r}):n.push({schema:{type:"oss",path:i.path},origin:i.origin,overrides:i.overrides,overlays:void 0,audiences:i.audiences,settings:g7e(r,ZBn(i.settings))});else n.push({schema:{type:"oss",path:e.path},origin:e.origin,overrides:e.overrides,overlays:void 0,audiences:e.audiences,settings:g7e(r,ZBn(e.settings))});else{let i=t[xi.API_SETTINGS_KEY],o=t[xi.OPENAPI_LOCATION_KEY],s=t[xi.API_ORIGIN_LOCATION_KEY],a=t[xi.OPENAPI_OVERRIDES_LOCATION_KEY],c=t[xi.ASYNC_API_LOCATION_KEY];o!=null&&(typeof o=="string"?n.push({schema:{type:"oss",path:o},origin:s,overrides:a,overlays:void 0,audiences:[],settings:g7e(r,ZBn(i))}):typeof o=="object"&&n.push({schema:{type:"oss",path:o.path},origin:o.origin,overrides:o.overrides,overlays:void 0,audiences:[],settings:g7e(r,pEl(o.settings))})),c!=null&&n.push({schema:{type:"oss",path:c},origin:s,overrides:void 0,overlays:void 0,audiences:[],settings:g7e(r,ZBn(i))})}return n}async function ulA({apiConfiguration:e,rawConfiguration:t,apiSettings:r}){let n={"auth-schemes":t["auth-schemes"],...e};if(xi.isConjureSchema(e.specs))return{type:"conjure",pathToConjureDefinition:e.specs.conjure,...n,settings:r};let i=[],o={};for(let s of e.specs??[]){let a;if(xi.isOpenApiSpecSchema(s))a={schema:{type:"oss",path:s.openapi},origin:s.origin,overrides:s.overrides,overlays:s.overlays,audiences:[],settings:g7e(r,pEl(s.settings))};else if(xi.isAsyncApiSpecSchema(s))a={schema:{type:"oss",path:s.asyncapi},origin:s.origin,overrides:s.overrides,overlays:void 0,audiences:[],settings:g7e(r,clA(s.settings))};else if(xi.isProtoSpecSchema(s))a={schema:{type:"protobuf",root:s.proto.root,target:s.proto.target??"",localGeneration:s.proto["local-generation"]??!1,fromOpenAPI:s.proto["from-openapi"]??!1,dependencies:s.proto.dependencies??[]},origin:void 0,overrides:s.proto.overrides,overlays:void 0,audiences:[],settings:r};else if(xi.isOpenRpcSpecSchema(s))a={schema:{type:"openrpc",path:s.openrpc},origin:void 0,overrides:s.overrides,overlays:void 0,audiences:[],settings:r};else if(xi.isGraphQLSpecSchema(s))a={schema:{type:"graphql",path:s.graphql},origin:s.origin,overrides:s.overrides,overlays:void 0,audiences:[],settings:r};else continue;let c=xi.isGraphQLSpecSchema(s)&&"name"in s?s.name:"namespace"in s?s.namespace:void 0;c!=null?(o[c]??=[],o[c].push(a)):i.push(a)}return Object.keys(o).length===0?{type:"singleNamespace",definitions:i,...n,settings:r}:{type:"multiNamespace",rootDefinitions:i,definitions:o,...n,settings:r}}async function llA(e){let t=e.api;if(t!=null){if(xi.isApiConfigurationV2Schema(t)){let n=eTn(t.settings);return ulA({apiConfiguration:t,rawConfiguration:e,apiSettings:n})}if(xi.isNamespacedApiConfiguration(t)){let n={},i={};for(let[o,s]of Object.entries(t.namespaces))n[o]=await sEl(s,e,i);return{type:"multiNamespace",rootDefinitions:void 0,definitions:n}}}return{type:"singleNamespace",definitions:await sEl(t,e,{})}}async function plA({absolutePathToGeneratorsConfiguration:e,groupName:t,group:r,maybeTopLevelMetadata:n,maybeTopLevelReviewers:i,readme:o,context:s}){let a=hEl(r.metadata);return{groupName:t,reviewers:r.reviewers,audiences:r.audiences==null?{type:"all"}:{type:"select",audiences:r.audiences},generators:await Promise.all(r.generators.map(c=>flA({absolutePathToGeneratorsConfiguration:e,generator:c,maybeTopLevelMetadata:n,maybeGroupLevelMetadata:a,maybeTopLevelReviewers:i,maybeGroupLevelReviewers:r.reviewers,readme:o,context:s})))}}async function flA({absolutePathToGeneratorsConfiguration:e,generator:t,maybeGroupLevelMetadata:r,maybeTopLevelMetadata:n,maybeGroupLevelReviewers:i,maybeTopLevelReviewers:o,readme:s,context:a}){let c=H3s(t.name,a),u=LR(c);return{raw:t,name:u,version:t.version,config:t.config,outputMode:await hlA({absolutePathToGeneratorsConfiguration:e,generator:t,maybeGroupLevelMetadata:r,maybeTopLevelMetadata:n,maybeGroupLevelReviewers:i,maybeTopLevelReviewers:o}),keywords:t.keywords,smartCasing:t["smart-casing"]??!0,disableExamples:t["disable-examples"]??!1,absolutePathToLocalOutput:t.output?.location==="local-file-system"?aa(ji(e),t.output.path):void 0,absolutePathToLocalSnippets:t.snippets?.path!=null?aa(ji(e),t.snippets.path):void 0,language:AlA(u),irVersionOverride:t["ir-version"]??void 0,publishMetadata:mlA({generatorInvocation:t}),readme:s,settings:t.api?.settings??void 0,apiOverride:t.api?.specs!=null||t.api?.auth!=null||t.api?.["auth-schemes"]!=null?{specs:t.api?.specs,auth:t.api?.auth,"auth-schemes":t.api?.["auth-schemes"]}:void 0}}function mlA({generatorInvocation:e}){let t=e["publish-metadata"];if(t!=null)return{packageDescription:t["package-description"],publisherEmail:t.email,publisherName:t.author,referenceUrl:t["reference-url"]};if(e.metadata!=null)return{packageDescription:e.metadata["package-description"],publisherEmail:e.metadata.email,publisherName:e.metadata.author,referenceUrl:e.metadata["reference-url"]}}function mEl({pypiOutputMetadata:e,maybeGroupLevelMetadata:t,maybeTopLevelMetadata:r}){let n;return e!=null&&(n=_lA(e),n={...r,...t,...n}),n}function dlA({topLevelReviewers:e,groupLevelReviewers:t,outputModeReviewers:r}){let n=new Set,i=new Set,o=[],s=[...e?.teams??[],...t?.teams??[],...r?.teams??[]],a=[...e?.users??[],...t?.users??[],...r?.users??[]];for(let c of s)n.has(c.name)||(o.push(g8s.GithubPullRequestReviewer.team({name:c.name})),n.add(c.name));for(let c of a)i.has(c.name)||(o.push(g8s.GithubPullRequestReviewer.user({name:c.name})),i.add(c.name));return o}async function hlA({absolutePathToGeneratorsConfiguration:e,generator:t,maybeGroupLevelMetadata:r={},maybeTopLevelMetadata:n={},maybeGroupLevelReviewers:i,maybeTopLevelReviewers:o}){let s=t.snippets!=null&&t.snippets.path!=="";if(t.github){let a=y7e(t.github)?t.github.uri:t.github.repository,{owner:c,repo:u}=LG(a),l=t.output!=null?ylA(t.output,r,n):void 0,p=blA(t),m=p!=null?await glA({absolutePathToGeneratorsConfiguration:e,githubLicense:p}):void 0,f=t.github.mode??"release";switch(f){case"commit":case"release":return NA.FernFiddle.OutputMode.githubV2(NA.FernFiddle.GithubOutputModeV2.commitAndRelease({owner:c,repo:u,license:m,publishInfo:l,downloadSnippets:s}));case"pull-request":{let h=t.github,g=dlA({topLevelReviewers:o,groupLevelReviewers:i,outputModeReviewers:h.reviewers});return NA.FernFiddle.OutputMode.githubV2(NA.FernFiddle.GithubOutputModeV2.pullRequest({owner:c,repo:u,license:m,publishInfo:l,downloadSnippets:s,reviewers:g,branch:h.branch}))}case"push":return NA.FernFiddle.OutputMode.githubV2(NA.FernFiddle.GithubOutputModeV2.push({owner:c,repo:u,branch:t.github.mode==="push"?t.github.branch:void 0,license:m,publishInfo:l,downloadSnippets:s}));default:Ue(f)}}if(t.output==null)return NA.FernFiddle.remoteGen.OutputMode.publish({registryOverrides:{}});switch(t.output.location){case"local-file-system":return NA.FernFiddle.OutputMode.downloadFiles({downloadSnippets:s});case"npm":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.npmOverride({registryUrl:t.output.url??"https://registry.npmjs.org",packageName:t.output["package-name"],token:t.output.token??"",downloadSnippets:s}));case"maven":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.mavenOverride({registryUrl:dEl(t.output),username:t.output.username??"",password:t.output.password??"",coordinate:t.output.coordinate,signature:t.output.signature!=null?{keyId:t.output.signature.keyId,secretKey:t.output.signature.secretKey,password:t.output.signature.password}:void 0,downloadSnippets:s}));case"postman":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.postman({apiKey:t.output["api-key"],workspaceId:t.output["workspace-id"]}));case"pypi":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.pypiOverride({registryUrl:t.output.url??"https://upload.pypi.org/legacy/",username:t.output.token!=null?"__token__":t.output.password??"",password:t.output.token??t.output.password??"",coordinate:t.output["package-name"],downloadSnippets:s,pypiMetadata:mEl({pypiOutputMetadata:t.output.metadata,maybeGroupLevelMetadata:r,maybeTopLevelMetadata:n})}));case"nuget":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.nugetOverride({registryUrl:t.output.url??"https://nuget.org/",packageName:t.output["package-name"],apiKey:t.output["api-key"]??"",downloadSnippets:s}));case"rubygems":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.rubyGemsOverride({registryUrl:t.output.url??"https://rubygems.org/",packageName:t.output["package-name"],apiKey:t.output["api-key"]??"",downloadSnippets:s}));case"crates":return NA.FernFiddle.OutputMode.publishV2(NA.FernFiddle.remoteGen.PublishOutputModeV2.cratesOverride({registryUrl:t.output.url??"https://crates.io/api/v1/crates",packageName:t.output["package-name"],token:t.output.token??"",downloadSnippets:s}));default:Ue(t.output)}}async function glA({absolutePathToGeneratorsConfiguration:e,githubLicense:t}){if(typeof t=="string")switch(t){case"MIT":return NA.FernFiddle.GithubLicense.basic({id:NA.FernFiddle.GithubLicenseId.Mit});case"Apache-2.0":return NA.FernFiddle.GithubLicense.basic({id:NA.FernFiddle.GithubLicenseId.Apache});default:Ue(t)}let r=It(vr.of(cEl.default.dirname(e)),Ze.of(t.custom)),n=await(0,aEl.readFile)(r);return NA.FernFiddle.GithubLicense.custom({contents:n.toString()})}function ylA(e,t,r){switch(e.location){case"local-file-system":throw new Error("Cannot use local-file-system with github publishing");case"npm":return NA.FernFiddle.GithubPublishInfo.npm({registryUrl:e.url??"https://registry.npmjs.org",packageName:e["package-name"],token:e.token});case"maven":return NA.FernFiddle.GithubPublishInfo.maven({registryUrl:dEl(e),coordinate:e.coordinate,credentials:e.username!=null&&e.password!=null?{username:e.username,password:e.password}:void 0,signature:e.signature!=null?{keyId:e.signature.keyId,password:e.signature.password,secretKey:e.signature.secretKey}:void 0});case"postman":return NA.FernFiddle.GithubPublishInfo.postman({apiKey:e["api-key"],workspaceId:e["workspace-id"]});case"pypi":return NA.FernFiddle.GithubPublishInfo.pypi({registryUrl:e.url??"https://upload.pypi.org/legacy/",packageName:e["package-name"],credentials:e.token!=null?{username:"__token__",password:e.token}:{username:e.username??"",password:e.password??""},pypiMetadata:mEl({pypiOutputMetadata:e.metadata,maybeGroupLevelMetadata:t,maybeTopLevelMetadata:r})});case"nuget":return NA.FernFiddle.GithubPublishInfo.nuget({registryUrl:e.url??"https://nuget.org/",packageName:e["package-name"],apiKey:e["api-key"]});case"rubygems":return NA.FernFiddle.GithubPublishInfo.rubygems({registryUrl:e.url??"https://rubygems.org/",packageName:e["package-name"],apiKey:e["api-key"]});case"crates":return NA.FernFiddle.GithubPublishInfo.crates({registryUrl:e.url??"https://crates.io/api/v1/crates",packageName:e["package-name"],token:e.token});default:Ue(e)}}function AlA(e){if(e.includes("csharp"))return xi.GenerationLanguage.CSHARP;if(e.includes("go"))return xi.GenerationLanguage.GO;if(e.includes("java")||e.includes("spring"))return xi.GenerationLanguage.JAVA;if(e.includes("php"))return xi.GenerationLanguage.PHP;if(e.includes("python")||e.includes("fastapi")||e.includes("pydantic"))return xi.GenerationLanguage.PYTHON;if(e.includes("ruby"))return xi.GenerationLanguage.RUBY;if(e.includes("swift"))return xi.GenerationLanguage.SWIFT;if(e.includes("typescript"))return xi.GenerationLanguage.TYPESCRIPT}function dEl(e){return e.url!=null?e.url:e.signature!=null?"https://oss.sonatype.org/service/local/staging/deploy/maven2/":"https://s01.oss.sonatype.org/content/repositories/releases/"}function blA(e){return e["publish-metadata"]?.license!=null?e["publish-metadata"].license:e.metadata?.license!=null?e.metadata.license:y7e(e.github)&&e.github.license!=null?e.github.license:e.github?.license}function hEl(e){return e!=null?{description:e.description,authors:e.authors?.map(t=>({name:t.name,email:t.email}))}:void 0}function _lA(e){return e!=null?{description:e.description,authors:e.authors?.map(t=>({name:t.name,email:t.email})),keywords:e.keywords,documentationLink:e["documentation-link"],homepageLink:e["homepage-link"]}:void 0}function vlA(e,t){let r=[];t["api-settings"]!=null&&r.push('"api-settings" is deprecated. Please use "api.settings" for global defaults or "api.specs[].settings" for spec-specific settings instead.'),t["async-api"]!=null&&r.push('"async-api" is deprecated. Please use "api.specs[].asyncapi" instead.'),t.openapi!=null&&r.push('"openapi" is deprecated. Please use "api.specs[].openapi" instead.'),t["openapi-overrides"]!=null&&r.push('"openapi-overrides" is deprecated. Please use "api.specs[].overrides" instead.'),t["spec-origin"]&&r.push('"spec-origin" is deprecated. Please use "api.specs[].origin" instead.'),t.api!=null&&(typeof t.api=="string"&&r.push('Using an OpenAPI or AsyncAPI path string for "api" is deprecated. Please use "api.specs[].openapi" or "api.specs[].asyncapi" instead.'),Array.isArray(t.api)?r.push('Using an array for "api" is deprecated. Please use "api.specs[].openapi", "api.specs[].asyncapi", or "api.specs[].proto" instead.'):typeof t.api=="object"&&("path"in t.api&&r.push('Using "api.path" is deprecated. Please use "api.specs[].openapi" or "api.specs[].asyncapi" instead.'),"proto"in t.api&&r.push('Using "api.proto" is deprecated. Please use "api.specs[].proto" instead.'),"namespaces"in t.api&&r.push('Using "api.namespaces" is deprecated. Please use "api.specs[].openapi", "api.specs[].asyncapi", or "api.specs[].proto" with the "namespace" property instead.'))),r.length>0&&(e.logger.warn("Warnings for generators.yml:"),e.logger.warn(" "+r.join(`
|
|
1698
1698
|
`)))}function y7e(e){return e==null?!1:"uri"in e&&"token"in e}Ir();var gEl=require("fs/promises");var yEl=He(require("path"),1);async function sqt({absolutePathToWorkspace:e,context:t}){let r=await A7e({absolutePathToWorkspace:e});if(r==null)return;let n=await(0,gEl.readFile)(r);try{let i=Bn.load(n.toString()),o=xi.serialization.GeneratorsConfigurationSchema.parse(i,{allowUnrecognizedEnumValues:!1,unrecognizedObjectKeys:"fail",allowUnrecognizedUnionMembers:!1,skipValidation:!1,breadcrumbsPrefix:void 0,omitUndefined:!1});if(o.ok)return o.value;throw new Error(o.errors.map(s=>s.message).join(`
|
|
@@ -2129,7 +2129,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
|
|
|
2129
2129
|
Learn more about project structure:
|
|
2130
2130
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=nr.V1.SlugGenerator.init(nr.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>nr.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return OB(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=nr.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:o,child:s}}async toVersionedNode(t,r){let n=this.#e.get("versioned"),i=t.versions[0];if(i?.hidden===!0)throw new Error(`The default version "${i.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`);let o=5,s=[];for(let a=0;a<t.versions.length;a+=o){let c=t.versions.slice(a,a+o),u=await Promise.all(c.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...u)}return{id:n,type:"versioned",children:s}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??M0(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n);break;default:Ue(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:FV.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),o=r.setVersionSlug(t.slug??M0(t.version)),s=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,o):await this.toSidebarRootNode(i,t.navigation.items,o);return{type:"version",id:i,versionId:nr.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?rCA(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,o):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(c=>this.toNavigationChild({prefix:i,item:c,parentSlug:n})))).filter(c=>c!=null),a=[];return s.forEach(c=>{if(c.type==="apiReference"){a.push(c);return}let u=c.type==="section"&&(c.collapsible===!0||c.collapsible==null&&c.collapsed===!0);if(c.type==="section"&&!u){a.push(c);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},a.push(p)),p.children.push(c)}),{type:"sidebarRoot",id:i,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,children:[{type:"varianted",id:i,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??M0(t.title)}`),o=n.apply({urlSlug:t.slug??M0(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(c=>this.toVariantChild(c,i,o)))).filter(c=>c!=null);return{type:"variant",id:i,variantId:nr.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return OB(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 OB(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=JNl(t.snippetsConfiguration),s,a,c,u,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{c=this.getOpenApiWorkspaceForApiSection(t),s=await c.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(_){u=_}let m;if(t.tagDescriptionPages&&p)try{let O=await(c??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});O.tags.tagsById&&(m=Object.fromEntries(Object.entries(O.tags.tagsById).filter(([E,P])=>P.description&&P.description.trim().length>0).map(([E,P])=>[ao(E),{id:String(P.id),description:P.description}])))}catch(_){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(_))}if(s==null){if(this.apiWorkspaces.length===0&&u!=null)throw u;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Nw({workspace:a,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},readme:void 0,version:void 0,packageName:void 0,context:this.taskContext,sourceResolver:new bE(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(_){this.taskContext.logger.debug(`Could not load workspace: ${_}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=ej(s,{onError:_=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${_}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),h=t.apiName??a?.workspaceName??c?.workspaceName,g=`__pending_api_${this.pendingApiCounter++}__`,y=PRr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new vNn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,m,f.namespacesByOperationId),b=A.getTagDescriptionContent();for(let[_,O]of b.entries()){let E=_.split("/").pop()||_,P=Ze.of(E),x=O;this.docsWorkspace.config.settings?.substituteEnvVars&&(x=ej(O,{onError:I=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${I}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[P]=x,this.parsedDocsConfig.pages[P]=x}let v=A.get();return this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:h,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types,tempApiDefinitionId:g,apiReferenceNode:v}),v}async toChangelogNode(t,r,n){return new AEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:nr.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(){let t={},r={},n=new Map;for(let i of this.ossWorkspaces){let o=i.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let c=await new b3t({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,c.graphqlOperations),Object.assign(r,c.types),s.namespace)for(let u of Object.keys(c.graphqlOperations))n.set(vn.GraphQlOperationId(u),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}}return{operations:t,types:r,namespacesByOperationId:n}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=aa(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??M0(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=It(r,Ze.of("_navigation.yml"));if(!(0,J$s.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,_He.readFile)(n,"utf-8")).split(`
|
|
2131
2131
|
`).filter(s=>!s.startsWith("#")).join(`
|
|
2132
|
-
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,J$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,_He.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return OB(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 AEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(tu),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return OB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};BNn(t,r,n)}};function tCA(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${UU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function rCA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(tu)}async function Y$s(e,t,r){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return VU({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var ku={};D(ku,{AlgoliaSearchIndex:()=>gkl,ApiDefinitionId:()=>kkl,ApiId:()=>Vkl,Availability:()=>rzl,DocsConfigId:()=>Ukl,EndpointId:()=>qkl,EndpointPathLiteral:()=>ezl,EnvironmentId:()=>Lkl,FileId:()=>Kkl,HttpMethod:()=>tzl,IndexSegmentId:()=>ykl,JqString:()=>Ykl,OrgId:()=>Qkl,PageId:()=>$kl,PayloadLocation:()=>Szl,PropertyKey:()=>Xkl,PullRequestState:()=>wzl,RoleId:()=>Zkl,TokenId:()=>Mkl,TypeId:()=>Hkl,Url:()=>Jkl,VersionId:()=>zkl,WebSocketId:()=>Wkl,WebhookId:()=>Gkl,algolia:()=>X$s,api:()=>cKs,commons:()=>uKs,diff:()=>nzl,docs:()=>AKs,generators:()=>_Ks,git:()=>vKs,navigation:()=>wKs,sdks:()=>PKs,snippets:()=>Izl,snippetsFactory:()=>Czl,templates:()=>IKs,tokens:()=>jzl});var X$s={};D(X$s,{AlgoliaSearchIndex:()=>gkl,IndexSegmentId:()=>ykl});function gkl(e){return e}function ykl(e){return e}var cKs={};D(cKs,{latest:()=>tKs,v1:()=>aKs});var tKs={};D(tKs,{AuthSchemeId:()=>Akl,WebhookHttpMethod:()=>Okl,auth:()=>Z$s,commons:()=>bkl,endpoint:()=>_kl,type_:()=>vkl,webhook:()=>eKs,websocket:()=>Ekl});var Z$s={};D(Z$s,{AuthSchemeId:()=>Akl});function Akl(e){return e}var bkl={};var _kl={};var vkl={};var eKs={};D(eKs,{WebhookHttpMethod:()=>Okl});var Okl={Get:"GET",Post:"POST"};var Ekl={};var aKs={};D(aKs,{SubpackageId:()=>Dkl,WebSocketMessageId:()=>Rkl,WebSocketMessageOrigin:()=>Fkl,WebhookHttpMethod:()=>Nkl,commons:()=>sKs,db:()=>rKs,read:()=>iKs,register:()=>oKs});var rKs={};D(rKs,{endpoint:()=>wkl});var wkl={};var iKs={};D(iKs,{SupportedLanguage:()=>xkl,endpoint:()=>nKs,type_:()=>Pkl,webhook:()=>Ikl,websocket:()=>Ckl});var nKs={};D(nKs,{SupportedLanguage:()=>xkl});var xkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Pkl={};var Ikl={};var Ckl={};var oKs={};D(oKs,{SourceId:()=>nCA,endpoint:()=>Skl,type_:()=>jkl,webhook:()=>Bkl,websocket:()=>Tkl});var Skl={};var jkl={};var Bkl={};var Tkl={};function nCA(e){return e}var sKs={};D(sKs,{SubpackageId:()=>Dkl,WebSocketMessageId:()=>Rkl,WebSocketMessageOrigin:()=>Fkl,WebhookHttpMethod:()=>Nkl});function Dkl(e){return e}function Rkl(e){return e}var Fkl={Client:"client",Server:"server"};var Nkl={Get:"GET",Post:"POST"};var uKs={};D(uKs,{ApiDefinitionId:()=>kkl,ApiId:()=>Vkl,Availability:()=>rzl,DocsConfigId:()=>Ukl,EndpointId:()=>qkl,EndpointPathLiteral:()=>ezl,EnvironmentId:()=>Lkl,FileId:()=>Kkl,HttpMethod:()=>tzl,JqString:()=>Ykl,OrgId:()=>Qkl,PageId:()=>$kl,PropertyKey:()=>Xkl,RoleId:()=>Zkl,TokenId:()=>Mkl,TypeId:()=>Hkl,Url:()=>Jkl,VersionId:()=>zkl,WebSocketId:()=>Wkl,WebhookId:()=>Gkl});function kkl(e){return e}function zkl(e){return e}function Qkl(e){return e}function Mkl(e){return e}function Vkl(e){return e}function Ukl(e){return e}function Lkl(e){return e}function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}function Xkl(e){return e}function Zkl(e){return e}function ezl(e){return e}var tzl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var rzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var nzl={};var AKs={};D(AKs,{latest:()=>fKs,v1:()=>gKs,v2:()=>yKs});var fKs={};D(fKs,{Layout:()=>ozl,MdxEngine:()=>iCA,TwitterCardSetting:()=>szl,commons:()=>izl,frontmatter:()=>lKs,seo:()=>pKs});var iCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var izl={};var lKs={};D(lKs,{Layout:()=>ozl});var ozl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var pKs={};D(pKs,{TwitterCardSetting:()=>szl});var szl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var gKs={};D(gKs,{commons:()=>hKs,db:()=>azl,read:()=>czl,write:()=>mKs});var azl={};var czl={};var mKs={};D(mKs,{DocsRegistrationId:()=>sCA,FilePath:()=>oCA});function oCA(e){return e}function sCA(e){return e}var hKs={};D(hKs,{ContentAlignment:()=>fzl,FontDisplay:()=>yzl,FontStyle:()=>gzl,HeaderPosition:()=>mzl,JsScriptStrategy:()=>hzl,ProgrammingLanguage:()=>uzl,SearchbarPlacement:()=>lzl,TabsPlacement:()=>pzl,TwitterCardSetting:()=>dzl,commons:()=>dKs});var dKs={};D(dKs,{ContentAlignment:()=>fzl,FontDisplay:()=>yzl,FontStyle:()=>gzl,HeaderPosition:()=>mzl,JsScriptStrategy:()=>hzl,ProgrammingLanguage:()=>uzl,SearchbarPlacement:()=>lzl,TabsPlacement:()=>pzl,TwitterCardSetting:()=>dzl});var uzl={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 lzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var pzl={Header:"HEADER",Sidebar:"SIDEBAR"};var fzl={Center:"CENTER",Left:"LEFT"};var mzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var dzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var hzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var gzl={Normal:"normal",Italic:"italic"};var yzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var yKs={};D(yKs,{read:()=>Azl,write:()=>bzl});var Azl={};var bzl={};var _Ks={};D(_Ks,{ChangelogEntryType:()=>vzl,GeneratorId:()=>aCA,GeneratorLanguage:()=>cCA,ReleaseType:()=>Ozl,cli:()=>_zl,commons:()=>bKs,versions:()=>Ezl});var _zl={};var bKs={};D(bKs,{ChangelogEntryType:()=>vzl,ReleaseType:()=>Ozl});var vzl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Ozl={Ga:"GA",Rc:"RC"};var Ezl={};function aCA(e){return e}var cCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var vKs={};D(vKs,{PullRequestState:()=>wzl});var wzl={Open:"open",Closed:"closed",Merged:"merged"};var wKs={};D(wKs,{latest:()=>OKs,v1:()=>EKs});var OKs={};D(OKs,{NodeId:()=>pCA,ProductId:()=>fCA,Slug:()=>uCA,TabId:()=>lCA});function uCA(e){return e}function lCA(e){return e}function pCA(e){return e}function fCA(e){return e}var EKs={};D(EKs,{NavigationV1Availability:()=>yCA,NodeId:()=>hCA,ProductId:()=>gCA,Slug:()=>mCA,TabId:()=>dCA});function mCA(e){return e}function dCA(e){return e}function hCA(e){return e}function gCA(e){return e}var yCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var PKs={};D(PKs,{Language:()=>xzl,VersionBump:()=>Pzl,versions:()=>xKs});var xKs={};D(xKs,{Language:()=>xzl,VersionBump:()=>Pzl});var xzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Pzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Izl={};var Czl={};var IKs={};D(IKs,{PayloadLocation:()=>Szl});var Szl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var jzl={};var RNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Bzl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var FNn=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 Tzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends FNn{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 ${Tzl(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})}}},Oj=class extends sa{},D5=class extends Oj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Dzl="x-fern-base-path",Rzl="x-fern-availability",NNn="x-fern-sdk-group-name",Fzl="x-fern-global-headers",Nzl="x-fern-sdk-method-name";var kzl="x-fern-webhook",zzl="x-fern-access-token-locator",Qzl="x-fern-basic",Mzl="x-fern-username-variable-name",Vzl="x-fern-password-variable-name",Uzl="x-fern-bearer",Lzl="x-fern-token-variable-name",qzl="x-fern-header",Wzl="x-fern-header-variable-name",Gzl="x-fern-server-name",Hzl="x-fern-examples";var kNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Gzl]}convert(){if(this.serverName!=null)return this.serverName}};var zNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function vHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new zNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function QNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var m2l=He(oI());var MNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Qzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var VNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Vzl]}convert(){return this.passwordVariableName}};var UNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Mzl]}convert(){return this.usernameVariableName}};var LNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Uzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var qNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Lzl]}convert(){return this.tokenVariableName}};function $zl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var Kzl="x-bearer-format",Jzl="x-code-samples",Yzl="x-codeSamples";var WNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[Kzl]}convert(){return this.bearerFormat}};var GNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[qzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var HNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Wzl]}convert(){return this.headerVariableName}};function Xzl(e){return e.type==="apiKey"}var J3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){Xzl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new WNn({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()}}};$ns();wDc();function $Nn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Y3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function bEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(bEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function KNn(e){if(Array.isArray(e))return e.map(Y3t);if(typeof e=="symbol")return[e];e=bEt(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 IRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(K6r(t))return r;let n=e[t];return n===void 0?$Nn(t)?IRr(e,KNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Y3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return ACA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),K6r(t))return r;let n=e[t];return n===void 0?r:n}}}function ACA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||K6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function Zzl(e){return function(t){return IRr(t,e)}}function e2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}xrs();function CKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function jKs(e,t,r){return typeof r!="function"?jKs(e,t,()=>{}):SKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:SKs(i,o,n,u)},new Map)}function SKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return bCA(e,t,r,n);case"function":return Object.keys(t).length>0?SKs(e,{...t},r,n):CKs(e,t);default:return e2l(e)?typeof t=="string"?t==="":!0:CKs(e,t)}}function bCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return t2l(e,t,r,n);if(t instanceof Map)return _CA(e,t,r,n);if(t instanceof Set)return vCA(e,t,r,n);let i=Object.keys(t);if(e==null||m_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!m_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function _CA(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 t2l(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let u=e[c],l=!1;if(r(u,s,o,e,t,n)&&(l=!0),l){i.add(c),a=!0;break}}if(!a)return!1}return!0}function vCA(e,t,r,n){return t.size===0?!0:e instanceof Set?t2l([...e],[...t],r,n):!1}function JNn(e,t){return jKs(e,t,()=>{})}EDc();function r2l(e){return e=ODc(e),t=>JNn(t,e)}Irs();L6r();Prs();function n2l(e,t){return vDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(jDt(e)===$6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),E$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case W6r:case q6r:case G6r:{let a=new e.constructor(e?.valueOf());return E$(a,e),a}case H6r:{let a={};return E$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function i2l(e){return n2l(e)}var OCA=/^(?:0|[1-9]\d*)$/;function o2l(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 OCA.test(e)}}L6r();function s2l(e){return e!==null&&typeof e=="object"&&jDt(e)==="[object Arguments]"}function a2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&$Nn(t)&&e?.[t]==null?r=KNn(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)||s2l(n))&&o2l(o)&&o<n.length))return!1;n=n[o]}return!0}function c2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Y3t(e);break}}return t=i2l(t),function(r){let n=IRr(r,e);return n===void 0?a2l(r,e):t===void 0?n===void 0:JNn(n,t)}}function u2l(e){if(e==null)return u9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?c2l(e[0],e[1]):r2l(e);case"string":case"symbol":case"number":return Zzl(e)}}$ns();Crs();function YNn(e,t=u9r){return e==null?{}:Sk(e,u2l(t))}H2c();function l2l(e){return G2c(bEt(e))}CDc();function p2l(e){return typeof e!="string"&&(e=bEt(e)),e.replace(/['\u2019]/g,"")}function Cle(e){return IDc(p2l(l2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function XNn({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`${ECA(s)}${wCA(e)}.${xCA(n,i,o,a)}`}function ECA(e){return e?"webhook_":"endpoint_"}function wCA(e){return e!=null?_O(e)?.map(t=>Cle(t)).join("/"):""}function xCA(e,t,r,n){return e||t||Cle(r??"")||Cle(n??"")}function f2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var ZNn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[zzl],this.accessTokenLocator!=null&&(f2l(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 ekn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new J3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new ZNn({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=XNn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var X3t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new VNn({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 LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new qNn({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":{$zl(this.input)?(this.authScheme="header",this.headerAuthNode=new J3t({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 ekn({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 m2l.UnreachableCaseError(this.authScheme);return}}};var Z3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=QNn(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 X3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var tkn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Dzl],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 d2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function h2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function e5t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!d2l(i))&&(s=h2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function rkn(e,t){return Sy(e)?Hz(e,t,void 0):e}function OHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function g2l(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 y2l(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 A2l=He(oI());var BKs=["decimal","decimal128","double-int","double","float","sf-decimal"],TKs=["int16","int32","int64","int8","sf-integer","uint8"],DKs=["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"],RKs=["beta","pre-release","in-development","generally-available","deprecated"];function Ej(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(Ej(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Rzl];r!=null&&(RKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${RKs.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return ku.Availability.Beta;case"in-development":return ku.Availability.InDevelopment;case"generally-available":return ku.Availability.GenerallyAvailable;case"deprecated":return ku.Availability.Deprecated;case void 0:return;default:new A2l.UnreachableCaseError(this.availability);return}}};var ikn=He(oI());function b2l(e){return typeof e=="object"&&e!=null&&"language"in e}function _2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function v2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function O2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function nkn(e){return typeof e=="object"&&e!=null&&"event"in e}function FKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(nkn)}function EHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function E2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var okn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[Hzl]}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 EHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>EHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new ikn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=E2l(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 ikn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{v2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{FKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!FKs(r.response)&&O2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ikn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{b2l(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})):_2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var CRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[NNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Cle(r)))}};var skn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Nzl]}convert(){return this.sdkMethodName}};var akn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[kzl]}convert(){return this.isWebhook}};var ckn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[Jzl]??[],...this.input[Yzl]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var _Et=He(oI());function NKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function w2l(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 tF="",Tve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(EHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>EHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new _Et.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=NKs(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=NKs(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 _Et.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(nkn)){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 _Et.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 EHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>EHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new _Et.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new _Et.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 _Et.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:w2l(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Wz(this.name):this.summary!=null?Wz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function x2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var z2l=He(oI());var P2l="#/components/schemas/";function t5t(e){if(e.$ref.startsWith(P2l))return e.$ref.replace(P2l,"")}function WVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function wHe(e){return typeof e.type=="string"&&e.type==="array"}function I2l(e){return e.type==="boolean"}function C2l(e){return e.type==="integer"}function xHe(e){return!Array.isArray(e.type)&&!wHe(e)}function S2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||xHe(t)||wHe(t))}function j2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function B2l(e){return e.type==="null"}function T2l(e){return e.type==="number"}function kKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function D2l(e){return e.type==="string"}var ukn=class extends D5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var lkn=class extends Oj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var pkn=class extends D5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(WVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function fkn(e){return e!=null&&e.length>0?e:[void 0]}var r5t=class extends D5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return t5t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return e5t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>fkn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=Ej(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var mkn=class extends D5{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=>Ej(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>Ej(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=Ej({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map(WVe).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?WVe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var dkn=class extends Oj{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 PHe=class extends Oj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=Ej(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var R2l=He(oI());function PCA(e){return TKs.includes(e)}var hkn=class extends Oj{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&&(PCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${TKs.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 R2l.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 gkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return WVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var F2l=He(oI());function ICA(e){return BKs.includes(e)}var ykn=class extends Oj{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&&(ICA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${BKs.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 F2l.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 N2l=He(oI());function CCA(e){return DKs.includes(e)}var Akn=class extends Oj{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 N2l.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&&(CCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${DKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new PHe({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 k2l=He(oI());var bkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,k2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var vEt=class extends D5{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=t5t(this.input);let t=Ej(this.input,this.context.document);t?.enum!=null&&xHe(t)&&(this.maybeEnumConverterNode=new PHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=Ej(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends D5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),xHe(this.input)&&j2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=t5t(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 vEt({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 lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(S2l(this.input))this.typeShapeNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(kKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new r5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new PHe({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":kKs(this.input)&&(this.typeShapeNode=new r5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":wHe(this.input)&&(this.typeShapeNode=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":I2l(this.input)&&(this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":C2l(this.input)&&(this.typeShapeNode=new hkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":T2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":D2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":B2l(this.input)&&(this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new z2l.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 r5t({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 bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!wHe(this.input)&&this.input==null||wHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?WVe(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function IHe(e){if(e!=null)return e5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Dve=class extends Oj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=x2l(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 Q2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var zKs=He(oI());function _kn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var M2l=He(MAs(),1),n5t=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=M2l.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 SCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var vkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),SCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=QNn(r.$ref,this.context.document):i=r,i!=null)return[t,new X3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var Okn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=Ej(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=Ej(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 Ekn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=Ej(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new vEt({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=n5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new Okn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[tF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[tF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Cle([this.method,this.path,this.contentType,"request"].join("_"));return _kn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new zKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof vEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new zKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var wkn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=Q2l(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 Ekn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var V2l={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 U2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var xkn=He(oI());var L2l="application/json";var q2l="application/octet-stream";function W2l(e,t){return e===t||t===tF||e===tF}var SRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)W2l(a,o)&&(n.add(a),this.examples?.push(new Tve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,OHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Tve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,OHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Tve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,OHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Tve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,OHe(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[tF];if(o!=null)for(let s of o)this.examples?.push(new Tve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,OHe(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=n5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=L2l,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=q2l,this.contentSubtype=Ej(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=YNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]=[{value:this.input.example}]);let n=Ej(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=YNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[tF]??=[],r[tF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==tF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==tF);Object.keys(r).every(a=>a===tF)||this.matchExamplesByIndex(o,s),!i.has(tF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new xkn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Cle([this.method,this.path,this.statusCode,"response"].join("_"));return _kn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new xkn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new xkn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var jRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=U2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Dve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new SRr({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 SRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var Pkn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new jRr({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 jRr({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 fkn(IHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??V2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var CHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Tve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,OHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=vHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=rkn(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 Dve({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 Dve({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 Dve({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 ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new wkn({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 Pkn({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 Z3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new CRr({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 CRr({input:{[NNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>XNn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=y2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:g2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:IHe(this.queryParameters)?.flat(),headers:IHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:IHe(this.pathParameters)?.flat(),queryParameters:IHe(this.queryParameters)?.flat(),requestHeaders:IHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var i5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=vHe(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 CHe({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 CHe({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 CHe({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 CHe({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 CHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function Ikn(e){return"payloads"in e}var Ckn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new i5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:vHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{Ikn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Skn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Fzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||rkn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Dve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return e5t(this.globalHeaders,this.requiredProperties)?.flat()}};function G2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var jkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=G2l(o,this.context.document);if(s!=null)return new i5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{Ikn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Bkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=vHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Z3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new tkn({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 Ckn({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 jkn({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 vkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=mR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Bzl({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:ku.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};Ni();async function QKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new fle(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new RNn,generatedTypes:{}},c=new Bkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Pkt(o,c.convert())}return o}_w();Ir();var i9l=He(UKs(),1),o9l=He(yzn(),1),eQn=require("fs/promises"),s9l=He(require("http"),1),a9l=He(require("path"),1);var q4l=require("events"),Ozn=He(require("fs"),1),BEt=He(require("path"),1);var P4l=He(require("os"),1),I4l=300,FHe=20,tFr=1e7,C4l=P4l.default.platform();var qRA=C4l==="darwin",aYs=C4l==="win32",NHe=qRA||aYs,S4l=3e3,j4l=2e4,cYs=1250;var kve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(kve||(kve={}));var jEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(jEt||(jEt={}));var rFr;(function(e){e.CHANGE="change",e.ERROR="error"})(rFr||(rFr={}));var Ll;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var WRA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},Azn=WRA;var fYs=He(require("fs"),1),_zn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var HVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},zve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var uYs=He(require("process"),1),B4l=uYs.default.getuid?!uYs.default.getuid():!1,T4l=1e4,k5=()=>{};var nFr={isChangeErrorOk:e=>{if(!nFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!B4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!nFr.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(!nFr.isNodeError(e))throw e;if(!nFr.isChangeErrorOk(e))throw e}},wj=nFr;var lYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=T4l,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()}}}}},D4l=new lYs;var $Ve=(e,t)=>function(n){return function i(...o){return D4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},KVe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var GRA={attempt:{chmod:HVe((0,$z.promisify)(Ab.default.chmod),wj.onChangeError),chown:HVe((0,$z.promisify)(Ab.default.chown),wj.onChangeError),close:HVe((0,$z.promisify)(Ab.default.close),k5),fsync:HVe((0,$z.promisify)(Ab.default.fsync),k5),mkdir:HVe((0,$z.promisify)(Ab.default.mkdir),k5),realpath:HVe((0,$z.promisify)(Ab.default.realpath),k5),stat:HVe((0,$z.promisify)(Ab.default.stat),k5),unlink:HVe((0,$z.promisify)(Ab.default.unlink),k5),chmodSync:zve(Ab.default.chmodSync,wj.onChangeError),chownSync:zve(Ab.default.chownSync,wj.onChangeError),closeSync:zve(Ab.default.closeSync,k5),existsSync:zve(Ab.default.existsSync,k5),fsyncSync:zve(Ab.default.fsync,k5),mkdirSync:zve(Ab.default.mkdirSync,k5),realpathSync:zve(Ab.default.realpathSync,k5),statSync:zve(Ab.default.statSync,k5),unlinkSync:zve(Ab.default.unlinkSync,k5)},retry:{close:$Ve((0,$z.promisify)(Ab.default.close),wj.isRetriableError),fsync:$Ve((0,$z.promisify)(Ab.default.fsync),wj.isRetriableError),open:$Ve((0,$z.promisify)(Ab.default.open),wj.isRetriableError),readFile:$Ve((0,$z.promisify)(Ab.default.readFile),wj.isRetriableError),rename:$Ve((0,$z.promisify)(Ab.default.rename),wj.isRetriableError),stat:$Ve((0,$z.promisify)(Ab.default.stat),wj.isRetriableError),write:$Ve((0,$z.promisify)(Ab.default.write),wj.isRetriableError),writeFile:$Ve((0,$z.promisify)(Ab.default.writeFile),wj.isRetriableError),closeSync:KVe(Ab.default.closeSync,wj.isRetriableError),fsyncSync:KVe(Ab.default.fsyncSync,wj.isRetriableError),openSync:KVe(Ab.default.openSync,wj.isRetriableError),readFileSync:KVe(Ab.default.readFileSync,wj.isRetriableError),renameSync:KVe(Ab.default.renameSync,wj.isRetriableError),statSync:KVe(Ab.default.statSync,wj.isRetriableError),writeSync:KVe(Ab.default.writeSync,wj.isRetriableError),writeFileSync:KVe(Ab.default.writeFileSync,wj.isRetriableError)}},R4l=GRA;var bzn=He(require("fs"),1),iFr=He(require("path"),1);var pYs=()=>{};var HRA=()=>{let e=pYs,t=pYs,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},F4l=HRA;var $RA=()=>{let{promise:e,resolve:t,isPending:r}=F4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},N4l=$RA;var k4l={then:e=>{e()}};var z4l=e=>Array.isArray(e)?e:[e],Q4l=e=>typeof e=="function";var KRA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=z4l(o).map(Z=>Q4l(Z)?Z:X=>Z.test(X)),a=Z=>s.some(X=>X(Z)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,m={},f=[],h=new Set,g={},y=[],A=new Set,b={},v={},_=new Set,O={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},E={directories:l,directoriesNames:p,directoriesNamesToPaths:m,files:f,filesNames:h,filesNamesToPaths:g,symlinks:y,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:P,increment:x,decrement:I}=N4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===iFr.default.sep?"":iFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),bzn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||k4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),bzn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();bzn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=iFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=iFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},M4l=KRA;var Qve={lang:{debounce:Azn,attempt:e=>{try{return e()}catch(t){return Qve.lang.castError(t)}},castArray:e=>Qve.lang.isArray(e)?e:[e],castError:e=>Qve.lang.isError(e)?e:Qve.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(Qve.lang.isNaN(e))return Qve.lang.isNaN(t);if(Qve.lang.isPrimitive(e)||Qve.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(_zn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?fYs.default.realpathSync.native(e):fYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===_zn.default.sep&&t.length-e.length>_zn.default.sep.length,poll:(e,t=j4l)=>R4l.retry.stat(t)(e,{bigint:!0}).catch(Qve.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 M4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Qve;var vzn=He(require("path"),1);var mYs=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||th.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=I4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??FHe:Math.min(1,this.options.depth??FHe),s=this.options.limit??tFr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!NHe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(vzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(vzn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=jEt.CHANGE,r){if(this.watcher.isClosed())return;let n=vzn.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){aYs&&t.code==="EPERM"?this.onWatcherChange(jEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(rFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(rFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(jEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&NHe&&this.options.native!==!1?this.options.depth??FHe:Math.min(1,this.options.depth??FHe),n=this.options.limit??tFr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(jEt.CHANGE,a,t)}))}}},V4l=mYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},oFr=GU;var sFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=cYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),oFr.remove(u)},u=()=>{c(),a()};oFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=cYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),oFr.remove(u)},u=()=>{c(),a()};oFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,kve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,kve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,kve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,kve.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}}};sFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};sFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var U4l=sFr;var dYs=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(th.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(th.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(th.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(th.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return th.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);th.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},hYs=dYs;var gYs=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}},L4l=gYs;var yYs=class{constructor(){this.inos={},this.paths=new hYs,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await th.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new L4l(n)}reset(){this.inos={},this.paths=new hYs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?kve.FILE:kve.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)}}},AYs=yYs;var bYs=class e extends q4l.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(WU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(WU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(WU.READY,i)),this._locker=new U4l(this),this._roots=new Set,this._poller=new AYs,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(th.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(WU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(WU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(WU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(WU.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)th.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new V4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=BEt.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??FHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&NHe&&l.options.native!==!1)))return!0;if(!NHe)break;let u=BEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||NHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Ozn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=BEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||NHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??FHe,a=r.limit??tFr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=BEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new AYs,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return th.lang.noop;if(this.pollerExists(t,r))return th.lang.noop;let i={...r,interval:r.pollingInterval??S4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),Ozn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),Ozn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=BEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=BEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Ezn=bYs;kzn();Ir();var C5t=require("fs/promises"),JLl=require("os"),YLl=He(require("path"),1),ANA=".fern",bNA="logs";function _NA(){return"cli@3.91.0"}var kEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,JLl.homedir)()),Ze.of(ANA)),r=It(t,Ze.of(bNA));await qr(r)||await(0,C5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${YLl.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2132
|
+
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,J$s.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,_He.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return OB(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 AEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(tu),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return OB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};BNn(t,r,n)}};function tCA(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${UU(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function rCA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(tu)}async function Y$s(e,t,r){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return VU({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var ku={};D(ku,{AlgoliaSearchIndex:()=>gkl,ApiDefinitionId:()=>kkl,ApiId:()=>Vkl,Availability:()=>rzl,DocsConfigId:()=>Ukl,EndpointId:()=>qkl,EndpointPathLiteral:()=>ezl,EnvironmentId:()=>Lkl,FileId:()=>Kkl,HttpMethod:()=>tzl,IndexSegmentId:()=>ykl,JqString:()=>Ykl,OrgId:()=>Qkl,PageId:()=>$kl,PayloadLocation:()=>Szl,PropertyKey:()=>Xkl,PullRequestState:()=>wzl,RoleId:()=>Zkl,TokenId:()=>Mkl,TypeId:()=>Hkl,Url:()=>Jkl,VersionId:()=>zkl,WebSocketId:()=>Wkl,WebhookId:()=>Gkl,algolia:()=>X$s,api:()=>cKs,commons:()=>uKs,diff:()=>nzl,docs:()=>AKs,generators:()=>_Ks,git:()=>vKs,navigation:()=>wKs,sdks:()=>PKs,snippets:()=>Izl,snippetsFactory:()=>Czl,templates:()=>IKs,tokens:()=>jzl});var X$s={};D(X$s,{AlgoliaSearchIndex:()=>gkl,IndexSegmentId:()=>ykl});function gkl(e){return e}function ykl(e){return e}var cKs={};D(cKs,{latest:()=>tKs,v1:()=>aKs});var tKs={};D(tKs,{AuthSchemeId:()=>Akl,WebhookHttpMethod:()=>Okl,auth:()=>Z$s,commons:()=>bkl,endpoint:()=>_kl,type_:()=>vkl,webhook:()=>eKs,websocket:()=>Ekl});var Z$s={};D(Z$s,{AuthSchemeId:()=>Akl});function Akl(e){return e}var bkl={};var _kl={};var vkl={};var eKs={};D(eKs,{WebhookHttpMethod:()=>Okl});var Okl={Get:"GET",Post:"POST"};var Ekl={};var aKs={};D(aKs,{SubpackageId:()=>Dkl,WebSocketMessageId:()=>Rkl,WebSocketMessageOrigin:()=>Fkl,WebhookHttpMethod:()=>Nkl,commons:()=>sKs,db:()=>rKs,read:()=>iKs,register:()=>oKs});var rKs={};D(rKs,{endpoint:()=>wkl});var wkl={};var iKs={};D(iKs,{SupportedLanguage:()=>xkl,endpoint:()=>nKs,type_:()=>Pkl,webhook:()=>Ikl,websocket:()=>Ckl});var nKs={};D(nKs,{SupportedLanguage:()=>xkl});var xkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Pkl={};var Ikl={};var Ckl={};var oKs={};D(oKs,{SourceId:()=>nCA,endpoint:()=>Skl,type_:()=>jkl,webhook:()=>Bkl,websocket:()=>Tkl});var Skl={};var jkl={};var Bkl={};var Tkl={};function nCA(e){return e}var sKs={};D(sKs,{SubpackageId:()=>Dkl,WebSocketMessageId:()=>Rkl,WebSocketMessageOrigin:()=>Fkl,WebhookHttpMethod:()=>Nkl});function Dkl(e){return e}function Rkl(e){return e}var Fkl={Client:"client",Server:"server"};var Nkl={Get:"GET",Post:"POST"};var uKs={};D(uKs,{ApiDefinitionId:()=>kkl,ApiId:()=>Vkl,Availability:()=>rzl,DocsConfigId:()=>Ukl,EndpointId:()=>qkl,EndpointPathLiteral:()=>ezl,EnvironmentId:()=>Lkl,FileId:()=>Kkl,HttpMethod:()=>tzl,JqString:()=>Ykl,OrgId:()=>Qkl,PageId:()=>$kl,PropertyKey:()=>Xkl,RoleId:()=>Zkl,TokenId:()=>Mkl,TypeId:()=>Hkl,Url:()=>Jkl,VersionId:()=>zkl,WebSocketId:()=>Wkl,WebhookId:()=>Gkl});function kkl(e){return e}function zkl(e){return e}function Qkl(e){return e}function Mkl(e){return e}function Vkl(e){return e}function Ukl(e){return e}function Lkl(e){return e}function qkl(e){return e}function Wkl(e){return e}function Gkl(e){return e}function Hkl(e){return e}function $kl(e){return e}function Kkl(e){return e}function Jkl(e){return e}function Ykl(e){return e}function Xkl(e){return e}function Zkl(e){return e}function ezl(e){return e}var tzl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var rzl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var nzl={};var AKs={};D(AKs,{latest:()=>fKs,v1:()=>gKs,v2:()=>yKs});var fKs={};D(fKs,{Layout:()=>ozl,MdxEngine:()=>iCA,TwitterCardSetting:()=>szl,commons:()=>izl,frontmatter:()=>lKs,seo:()=>pKs});var iCA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var izl={};var lKs={};D(lKs,{Layout:()=>ozl});var ozl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var pKs={};D(pKs,{TwitterCardSetting:()=>szl});var szl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var gKs={};D(gKs,{commons:()=>hKs,db:()=>azl,read:()=>czl,write:()=>mKs});var azl={};var czl={};var mKs={};D(mKs,{DocsRegistrationId:()=>sCA,FilePath:()=>oCA});function oCA(e){return e}function sCA(e){return e}var hKs={};D(hKs,{ContentAlignment:()=>fzl,FontDisplay:()=>yzl,FontStyle:()=>gzl,HeaderPosition:()=>mzl,JsScriptStrategy:()=>hzl,ProgrammingLanguage:()=>uzl,SearchbarPlacement:()=>lzl,TabsPlacement:()=>pzl,TwitterCardSetting:()=>dzl,commons:()=>dKs});var dKs={};D(dKs,{ContentAlignment:()=>fzl,FontDisplay:()=>yzl,FontStyle:()=>gzl,HeaderPosition:()=>mzl,JsScriptStrategy:()=>hzl,ProgrammingLanguage:()=>uzl,SearchbarPlacement:()=>lzl,TabsPlacement:()=>pzl,TwitterCardSetting:()=>dzl});var uzl={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 lzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var pzl={Header:"HEADER",Sidebar:"SIDEBAR"};var fzl={Center:"CENTER",Left:"LEFT"};var mzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var dzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var hzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var gzl={Normal:"normal",Italic:"italic"};var yzl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var yKs={};D(yKs,{read:()=>Azl,write:()=>bzl});var Azl={};var bzl={};var _Ks={};D(_Ks,{ChangelogEntryType:()=>vzl,GeneratorId:()=>aCA,GeneratorLanguage:()=>cCA,ReleaseType:()=>Ozl,cli:()=>_zl,commons:()=>bKs,versions:()=>Ezl});var _zl={};var bKs={};D(bKs,{ChangelogEntryType:()=>vzl,ReleaseType:()=>Ozl});var vzl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Ozl={Ga:"GA",Rc:"RC"};var Ezl={};function aCA(e){return e}var cCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var vKs={};D(vKs,{PullRequestState:()=>wzl});var wzl={Open:"open",Closed:"closed",Merged:"merged"};var wKs={};D(wKs,{latest:()=>OKs,v1:()=>EKs});var OKs={};D(OKs,{NodeId:()=>pCA,ProductId:()=>fCA,Slug:()=>uCA,TabId:()=>lCA});function uCA(e){return e}function lCA(e){return e}function pCA(e){return e}function fCA(e){return e}var EKs={};D(EKs,{NavigationV1Availability:()=>yCA,NodeId:()=>hCA,ProductId:()=>gCA,Slug:()=>mCA,TabId:()=>dCA});function mCA(e){return e}function dCA(e){return e}function hCA(e){return e}function gCA(e){return e}var yCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var PKs={};D(PKs,{Language:()=>xzl,VersionBump:()=>Pzl,versions:()=>xKs});var xKs={};D(xKs,{Language:()=>xzl,VersionBump:()=>Pzl});var xzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Pzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Izl={};var Czl={};var IKs={};D(IKs,{PayloadLocation:()=>Szl});var Szl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var jzl={};var RNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Bzl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var FNn=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 Tzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends FNn{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 ${Tzl(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})}}},Oj=class extends sa{},D5=class extends Oj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Dzl="x-fern-base-path",Rzl="x-fern-availability",NNn="x-fern-sdk-group-name",Fzl="x-fern-global-headers",Nzl="x-fern-sdk-method-name";var kzl="x-fern-webhook",zzl="x-fern-access-token-locator",Qzl="x-fern-basic",Mzl="x-fern-username-variable-name",Vzl="x-fern-password-variable-name",Uzl="x-fern-bearer",Lzl="x-fern-token-variable-name",qzl="x-fern-header",Wzl="x-fern-header-variable-name",Gzl="x-fern-server-name",Hzl="x-fern-examples";var kNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Gzl]}convert(){if(this.serverName!=null)return this.serverName}};var zNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new kNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function vHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new zNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function QNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var m2l=He(oI());var MNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Qzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var VNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Vzl]}convert(){return this.passwordVariableName}};var UNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Mzl]}convert(){return this.usernameVariableName}};var LNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Uzl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var qNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Lzl]}convert(){return this.tokenVariableName}};function $zl(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var Kzl="x-bearer-format",Jzl="x-code-samples",Yzl="x-codeSamples";var WNn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[Kzl]}convert(){return this.bearerFormat}};var GNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[qzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var HNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Wzl]}convert(){return this.headerVariableName}};function Xzl(e){return e.type==="apiKey"}var J3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){Xzl(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new WNn({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()}}};$ns();wDc();function $Nn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Y3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function bEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(bEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function KNn(e){if(Array.isArray(e))return e.map(Y3t);if(typeof e=="symbol")return[e];e=bEt(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 IRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(K6r(t))return r;let n=e[t];return n===void 0?$Nn(t)?IRr(e,KNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Y3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return ACA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),K6r(t))return r;let n=e[t];return n===void 0?r:n}}}function ACA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||K6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function Zzl(e){return function(t){return IRr(t,e)}}function e2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}xrs();function CKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function jKs(e,t,r){return typeof r!="function"?jKs(e,t,()=>{}):SKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:SKs(i,o,n,u)},new Map)}function SKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return bCA(e,t,r,n);case"function":return Object.keys(t).length>0?SKs(e,{...t},r,n):CKs(e,t);default:return e2l(e)?typeof t=="string"?t==="":!0:CKs(e,t)}}function bCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return t2l(e,t,r,n);if(t instanceof Map)return _CA(e,t,r,n);if(t instanceof Set)return vCA(e,t,r,n);let i=Object.keys(t);if(e==null||m_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!m_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function _CA(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 t2l(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let u=e[c],l=!1;if(r(u,s,o,e,t,n)&&(l=!0),l){i.add(c),a=!0;break}}if(!a)return!1}return!0}function vCA(e,t,r,n){return t.size===0?!0:e instanceof Set?t2l([...e],[...t],r,n):!1}function JNn(e,t){return jKs(e,t,()=>{})}EDc();function r2l(e){return e=ODc(e),t=>JNn(t,e)}Irs();L6r();Prs();function n2l(e,t){return vDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(jDt(e)===$6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),E$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case W6r:case q6r:case G6r:{let a=new e.constructor(e?.valueOf());return E$(a,e),a}case H6r:{let a={};return E$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function i2l(e){return n2l(e)}var OCA=/^(?:0|[1-9]\d*)$/;function o2l(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 OCA.test(e)}}L6r();function s2l(e){return e!==null&&typeof e=="object"&&jDt(e)==="[object Arguments]"}function a2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&$Nn(t)&&e?.[t]==null?r=KNn(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)||s2l(n))&&o2l(o)&&o<n.length))return!1;n=n[o]}return!0}function c2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Y3t(e);break}}return t=i2l(t),function(r){let n=IRr(r,e);return n===void 0?a2l(r,e):t===void 0?n===void 0:JNn(n,t)}}function u2l(e){if(e==null)return u9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?c2l(e[0],e[1]):r2l(e);case"string":case"symbol":case"number":return Zzl(e)}}$ns();Crs();function YNn(e,t=u9r){return e==null?{}:Sk(e,u2l(t))}H2c();function l2l(e){return G2c(bEt(e))}CDc();function p2l(e){return typeof e!="string"&&(e=bEt(e)),e.replace(/['\u2019]/g,"")}function Cle(e){return IDc(p2l(l2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function XNn({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`${ECA(s)}${wCA(e)}.${xCA(n,i,o,a)}`}function ECA(e){return e?"webhook_":"endpoint_"}function wCA(e){return e!=null?_O(e)?.map(t=>Cle(t)).join("/"):""}function xCA(e,t,r,n){return e||t||Cle(r??"")||Cle(n??"")}function f2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var ZNn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[zzl],this.accessTokenLocator!=null&&(f2l(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 ekn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new J3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new ZNn({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=XNn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var X3t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new UNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new VNn({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 LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new qNn({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":{$zl(this.input)?(this.authScheme="header",this.headerAuthNode=new J3t({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 ekn({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 m2l.UnreachableCaseError(this.authScheme);return}}};var Z3t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=QNn(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 X3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var tkn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Dzl],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 d2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function h2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function e5t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!d2l(i))&&(s=h2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function rkn(e,t){return Sy(e)?Hz(e,t,void 0):e}function OHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function g2l(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 y2l(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 A2l=He(oI());var BKs=["decimal","decimal128","double-int","double","float","sf-decimal"],TKs=["int16","int32","int64","int8","sf-integer","uint8"],DKs=["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"],RKs=["beta","pre-release","in-development","generally-available","deprecated"];function Ej(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var PY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(Ej(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Rzl];r!=null&&(RKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${RKs.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return ku.Availability.Beta;case"in-development":return ku.Availability.InDevelopment;case"generally-available":return ku.Availability.GenerallyAvailable;case"deprecated":return ku.Availability.Deprecated;case void 0:return;default:new A2l.UnreachableCaseError(this.availability);return}}};var ikn=He(oI());function b2l(e){return typeof e=="object"&&e!=null&&"language"in e}function _2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function v2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function O2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function nkn(e){return typeof e=="object"&&e!=null&&"event"in e}function FKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(nkn)}function EHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function E2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var okn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[Hzl]}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 EHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>EHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new ikn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=E2l(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 ikn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{v2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{FKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!FKs(r.response)&&O2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new ikn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{b2l(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})):_2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var CRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[NNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Cle(r)))}};var skn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Nzl]}convert(){return this.sdkMethodName}};var akn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[kzl]}convert(){return this.isWebhook}};var ckn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[Jzl]??[],...this.input[Yzl]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var _Et=He(oI());function NKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function w2l(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 tF="",Tve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(EHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>EHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new _Et.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=NKs(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=NKs(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 _Et.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(nkn)){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 _Et.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 EHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>EHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new _Et.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new _Et.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 _Et.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:w2l(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?Wz(this.name):this.summary!=null?Wz(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function x2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var z2l=He(oI());var P2l="#/components/schemas/";function t5t(e){if(e.$ref.startsWith(P2l))return e.$ref.replace(P2l,"")}function WVe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function wHe(e){return typeof e.type=="string"&&e.type==="array"}function I2l(e){return e.type==="boolean"}function C2l(e){return e.type==="integer"}function xHe(e){return!Array.isArray(e.type)&&!wHe(e)}function S2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||xHe(t)||wHe(t))}function j2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function B2l(e){return e.type==="null"}function T2l(e){return e.type==="number"}function kKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function D2l(e){return e.type==="string"}var ukn=class extends D5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var lkn=class extends Oj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var pkn=class extends D5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(WVe).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function fkn(e){return e!=null&&e.length>0?e:[void 0]}var r5t=class extends D5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return t5t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return e5t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>fkn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=Ej(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var mkn=class extends D5{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=>Ej(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>Ej(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=Ej({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map(WVe).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?WVe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var dkn=class extends Oj{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 PHe=class extends Oj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=Ej(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var R2l=He(oI());function PCA(e){return TKs.includes(e)}var hkn=class extends Oj{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&&(PCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${TKs.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 R2l.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 gkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return WVe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var F2l=He(oI());function ICA(e){return BKs.includes(e)}var ykn=class extends Oj{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&&(ICA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${BKs.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 F2l.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 N2l=He(oI());function CCA(e){return DKs.includes(e)}var Akn=class extends Oj{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 N2l.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&&(CCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${DKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new PHe({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 k2l=He(oI());var bkn=class extends Oj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,k2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var vEt=class extends D5{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=t5t(this.input);let t=Ej(this.input,this.context.document);t?.enum!=null&&xHe(t)&&(this.maybeEnumConverterNode=new PHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=Ej(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends D5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),xHe(this.input)&&j2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=t5t(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 vEt({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 lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(S2l(this.input))this.typeShapeNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(kKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new r5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new PHe({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":kKs(this.input)&&(this.typeShapeNode=new r5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":wHe(this.input)&&(this.typeShapeNode=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":I2l(this.input)&&(this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":C2l(this.input)&&(this.typeShapeNode=new hkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":T2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":D2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":B2l(this.input)&&(this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new z2l.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 r5t({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 bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!wHe(this.input)&&this.input==null||wHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?WVe(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function IHe(e){if(e!=null)return e5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Dve=class extends Oj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new PY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=x2l(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 Q2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var zKs=He(oI());function _kn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var M2l=He(MAs(),1),n5t=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=M2l.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 SCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var vkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),SCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=QNn(r.$ref,this.context.document):i=r,i!=null)return[t,new X3t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var Okn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=Ej(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=Ej(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 Ekn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=Ej(this.input.schema,this.context.document);this.availability=new PY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new vEt({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=n5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new Okn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[tF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[tF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Cle([this.method,this.path,this.contentType,"request"].join("_"));return _kn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new zKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof vEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new zKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var wkn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=Q2l(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 Ekn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var V2l={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 U2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var xkn=He(oI());var L2l="application/json";var q2l="application/octet-stream";function W2l(e,t){return e===t||t===tF||e===tF}var SRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)W2l(a,o)&&(n.add(a),this.examples?.push(new Tve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,OHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Tve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,OHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Tve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,OHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Tve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,OHe(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[tF];if(o!=null)for(let s of o)this.examples?.push(new Tve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,OHe(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=n5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=L2l,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=q2l,this.contentSubtype=Ej(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=YNn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]=[{value:this.input.example}]);let n=Ej(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=YNn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[tF]??=[],r[tF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[tF]??=[],r[tF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==tF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==tF);Object.keys(r).every(a=>a===tF)||this.matchExamplesByIndex(o,s),!i.has(tF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new xkn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Cle([this.method,this.path,this.statusCode,"response"].join("_"));return _kn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new xkn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new xkn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var jRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=U2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Dve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new SRr({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 SRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var Pkn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new jRr({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 jRr({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 fkn(IHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??V2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var CHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Tve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,OHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new PY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=vHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=rkn(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 Dve({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 Dve({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 Dve({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 ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new wkn({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 Pkn({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 Z3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new CRr({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 CRr({input:{[NNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>XNn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=y2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:g2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:IHe(this.queryParameters)?.flat(),headers:IHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:IHe(this.pathParameters)?.flat(),queryParameters:IHe(this.queryParameters)?.flat(),requestHeaders:IHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var i5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=vHe(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 CHe({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 CHe({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 CHe({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 CHe({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 CHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function Ikn(e){return"payloads"in e}var Ckn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new i5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:vHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{Ikn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Skn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Fzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||rkn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Dve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return e5t(this.globalHeaders,this.requiredProperties)?.flat()}};function G2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var jkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=G2l(o,this.context.document);if(s!=null)return new i5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{Ikn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Bkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=vHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Z3t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new tkn({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 Ckn({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 jkn({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 vkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Skn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=mR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=Bzl({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:ku.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};Ni();async function QKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new fle(e.absoluteFilePath),n=await pY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new RNn,generatedTypes:{}},c=new Bkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Pkt(o,c.convert())}return o}_w();Ir();var i9l=He(UKs(),1),o9l=He(yzn(),1),eQn=require("fs/promises"),s9l=He(require("http"),1),a9l=He(require("path"),1);var q4l=require("events"),Ozn=He(require("fs"),1),BEt=He(require("path"),1);var P4l=He(require("os"),1),I4l=300,FHe=20,tFr=1e7,C4l=P4l.default.platform();var qRA=C4l==="darwin",aYs=C4l==="win32",NHe=qRA||aYs,S4l=3e3,j4l=2e4,cYs=1250;var kve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(kve||(kve={}));var jEt;(function(e){e.CHANGE="change",e.RENAME="rename"})(jEt||(jEt={}));var rFr;(function(e){e.CHANGE="change",e.ERROR="error"})(rFr||(rFr={}));var Ll;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var WRA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},Azn=WRA;var fYs=He(require("fs"),1),_zn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var HVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},zve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var uYs=He(require("process"),1),B4l=uYs.default.getuid?!uYs.default.getuid():!1,T4l=1e4,k5=()=>{};var nFr={isChangeErrorOk:e=>{if(!nFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!B4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!nFr.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(!nFr.isNodeError(e))throw e;if(!nFr.isChangeErrorOk(e))throw e}},wj=nFr;var lYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=T4l,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()}}}}},D4l=new lYs;var $Ve=(e,t)=>function(n){return function i(...o){return D4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},KVe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var GRA={attempt:{chmod:HVe((0,$z.promisify)(Ab.default.chmod),wj.onChangeError),chown:HVe((0,$z.promisify)(Ab.default.chown),wj.onChangeError),close:HVe((0,$z.promisify)(Ab.default.close),k5),fsync:HVe((0,$z.promisify)(Ab.default.fsync),k5),mkdir:HVe((0,$z.promisify)(Ab.default.mkdir),k5),realpath:HVe((0,$z.promisify)(Ab.default.realpath),k5),stat:HVe((0,$z.promisify)(Ab.default.stat),k5),unlink:HVe((0,$z.promisify)(Ab.default.unlink),k5),chmodSync:zve(Ab.default.chmodSync,wj.onChangeError),chownSync:zve(Ab.default.chownSync,wj.onChangeError),closeSync:zve(Ab.default.closeSync,k5),existsSync:zve(Ab.default.existsSync,k5),fsyncSync:zve(Ab.default.fsync,k5),mkdirSync:zve(Ab.default.mkdirSync,k5),realpathSync:zve(Ab.default.realpathSync,k5),statSync:zve(Ab.default.statSync,k5),unlinkSync:zve(Ab.default.unlinkSync,k5)},retry:{close:$Ve((0,$z.promisify)(Ab.default.close),wj.isRetriableError),fsync:$Ve((0,$z.promisify)(Ab.default.fsync),wj.isRetriableError),open:$Ve((0,$z.promisify)(Ab.default.open),wj.isRetriableError),readFile:$Ve((0,$z.promisify)(Ab.default.readFile),wj.isRetriableError),rename:$Ve((0,$z.promisify)(Ab.default.rename),wj.isRetriableError),stat:$Ve((0,$z.promisify)(Ab.default.stat),wj.isRetriableError),write:$Ve((0,$z.promisify)(Ab.default.write),wj.isRetriableError),writeFile:$Ve((0,$z.promisify)(Ab.default.writeFile),wj.isRetriableError),closeSync:KVe(Ab.default.closeSync,wj.isRetriableError),fsyncSync:KVe(Ab.default.fsyncSync,wj.isRetriableError),openSync:KVe(Ab.default.openSync,wj.isRetriableError),readFileSync:KVe(Ab.default.readFileSync,wj.isRetriableError),renameSync:KVe(Ab.default.renameSync,wj.isRetriableError),statSync:KVe(Ab.default.statSync,wj.isRetriableError),writeSync:KVe(Ab.default.writeSync,wj.isRetriableError),writeFileSync:KVe(Ab.default.writeFileSync,wj.isRetriableError)}},R4l=GRA;var bzn=He(require("fs"),1),iFr=He(require("path"),1);var pYs=()=>{};var HRA=()=>{let e=pYs,t=pYs,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},F4l=HRA;var $RA=()=>{let{promise:e,resolve:t,isPending:r}=F4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},N4l=$RA;var k4l={then:e=>{e()}};var z4l=e=>Array.isArray(e)?e:[e],Q4l=e=>typeof e=="function";var KRA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=z4l(o).map(Z=>Q4l(Z)?Z:X=>Z.test(X)),a=Z=>s.some(X=>X(Z)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,m={},f=[],h=new Set,g={},y=[],A=new Set,b={},v={},_=new Set,O={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},E={directories:l,directoriesNames:p,directoriesNamesToPaths:m,files:f,filesNames:h,filesNamesToPaths:g,symlinks:y,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:P,increment:x,decrement:I}=N4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===iFr.default.sep?"":iFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),bzn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||k4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),bzn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();bzn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=iFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=iFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},M4l=KRA;var Qve={lang:{debounce:Azn,attempt:e=>{try{return e()}catch(t){return Qve.lang.castError(t)}},castArray:e=>Qve.lang.isArray(e)?e:[e],castError:e=>Qve.lang.isError(e)?e:Qve.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(Qve.lang.isNaN(e))return Qve.lang.isNaN(t);if(Qve.lang.isPrimitive(e)||Qve.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(_zn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?fYs.default.realpathSync.native(e):fYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===_zn.default.sep&&t.length-e.length>_zn.default.sep.length,poll:(e,t=j4l)=>R4l.retry.stat(t)(e,{bigint:!0}).catch(Qve.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 M4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Qve;var vzn=He(require("path"),1);var mYs=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||th.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=I4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??FHe:Math.min(1,this.options.depth??FHe),s=this.options.limit??tFr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!NHe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(vzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(vzn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=jEt.CHANGE,r){if(this.watcher.isClosed())return;let n=vzn.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){aYs&&t.code==="EPERM"?this.onWatcherChange(jEt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(rFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(rFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(jEt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&NHe&&this.options.native!==!1?this.options.depth??FHe:Math.min(1,this.options.depth??FHe),n=this.options.limit??tFr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(jEt.CHANGE,a,t)}))}}},V4l=mYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},oFr=GU;var sFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=cYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),oFr.remove(u)},u=()=>{c(),a()};oFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=cYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),oFr.remove(u)},u=()=>{c(),a()};oFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,kve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,kve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,kve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,kve.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}}};sFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};sFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var U4l=sFr;var dYs=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(th.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(th.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(th.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(th.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return th.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);th.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},hYs=dYs;var gYs=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}},L4l=gYs;var yYs=class{constructor(){this.inos={},this.paths=new hYs,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await th.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new L4l(n)}reset(){this.inos={},this.paths=new hYs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?kve.FILE:kve.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)}}},AYs=yYs;var bYs=class e extends q4l.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(WU.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(WU.CLOSE,i)),this._readyWait=new Promise(i=>this.on(WU.READY,i)),this._locker=new U4l(this),this._roots=new Set,this._poller=new AYs,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(th.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(WU.CLOSE))}error(t){if(this.isClosed())return!1;let r=th.lang.castError(t);return this.emit(WU.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(WU.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(WU.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&th.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)th.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new V4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=BEt.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??FHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&NHe&&l.options.native!==!1)))return!0;if(!NHe)break;let u=BEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||NHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Ozn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=BEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||NHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??FHe,a=r.limit??tFr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=BEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new AYs,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return th.lang.noop;if(this.pollerExists(t,r))return th.lang.noop;let i={...r,interval:r.pollingInterval??S4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),Ozn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),Ozn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=BEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=BEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Ezn=bYs;kzn();Ir();var C5t=require("fs/promises"),JLl=require("os"),YLl=He(require("path"),1),ANA=".fern",bNA="logs";function _NA(){return"cli@3.91.1"}var kEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,JLl.homedir)()),Ze.of(ANA)),r=It(t,Ze.of(bNA));await qr(r)||await(0,C5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${YLl.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2133
2133
|
`);await(0,C5t.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)+`
|
|
2134
2134
|
`;try{await(0,C5t.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:_NA(),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 VYs={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function XLl(e){let t=vNA();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i}=e,o=new Map;function s(c){let u=JSON.stringify(c),l=[];for(let[p]of o)try{p.send(u)}catch{l.push(p)}for(let p of l){let m=o.get(p);m&&(clearInterval(m.pingInterval),o.delete(p))}}let a=t.serve({port:r,fetch(c,u){if(c.method==="OPTIONS")return new Response(null,{status:204,headers:VYs});let l=new URL(c.url);if(c.headers.get("upgrade")?.toLowerCase()==="websocket"){u.upgrade(c,{data:{connectionId:`${Date.now()}`}});return}if(c.method==="POST"&&l.pathname==="/v2/registry/docs/load-with-url")return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...VYs}});let p=/^\/_local\/(.*)/.exec(l.pathname);return c.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:VYs}):new Response("Not Found",{status:404})},websocket:{open(c){let{connectionId:u}=c.data,l=setInterval(()=>{let p=o.get(c);if(!p)return;let m=Date.now();if(m-p.lastPong>9e4){c.close();return}try{c.send(JSON.stringify({type:"ping",timestamp:m}))}catch{c.close()}},3e4);o.set(c,{pingInterval:l,lastPong:Date.now()});try{c.send(JSON.stringify({type:"connected",connectionId:u}))}catch{}},message(c,u){try{let l=JSON.parse(u.toString());if(l.type==="pong"){let p=o.get(c);p&&(p.lastPong=Date.now())}else kEt.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(c){let u=o.get(c);u&&(clearInterval(u.pingInterval),o.delete(c))}}});return{sendData:s,stop:c=>a.stop(c)}}function vNA(){return globalThis.Bun}Ir();var EZs=He(JYs(),1),JWl=He(pZs(),1),z5=require("fs/promises"),YWl=require("os"),XWl=He(oR(),1),ZWl=He($Wl(),1),$2n=process.platform==="win32",OZs=at.cyan("[docs]:"),YQA="etag",XQA=23,KWl=e=>e.padEnd(XQA," "),ZQA="preview",eMA="app-preview",tMA="bundle",rMA=".next",nMA="standalone",iMA=".fern",oMA="packages/fern-docs/bundle/.next/server/instrumentation.js",sMA=".npmrc",aMA=".pnpmfile.cjs",cMA="pnpm-workspace.yaml",uMA='Cannot find matching keyid: {"signatures":';function lMA(){return It(vr.of((0,YWl.homedir)()),Ze.of(iMA))}function G5t({app:e=!1}){return It(lMA(),Ze.of(e?eMA:ZQA))}function $He({app:e=!1}){return It(G5t({app:e}),Ze.of(e?rMA:tMA))}function QFr({app:e=!1}){return It($He({app:e}),Ze.of(nMA))}function pMA({app:e=!1}){return It(QFr({app:e}),Ze.of(oMA))}function fMA({app:e=!1}){return It(QFr({app:e}),Ze.of(cMA))}function mMA({app:e=!1}){return It(QFr({app:e}),Ze.of(aMA))}function dMA({app:e=!1}){return It(QFr({app:e}),Ze.of(sMA))}function GEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function hMA({app:e=!1}){return It(G5t({app:e}),Ze.of(YQA))}var gMA=`module.exports = {
|
|
2135
2135
|
hooks: {
|
|
@@ -2930,7 +2930,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
2930
2930
|
Run ${at.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
2931
2931
|
Run ${at.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),K2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function J0c({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!vMd(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,c)=>a.generatorName.localeCompare(c.generatorName)||a.currentVersion.localeCompare(c.currentVersion));for(let a of s)i+=`
|
|
2932
2932
|
${await kxx(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+at.dim(a.currentVersion)+at.reset(" \u2192 ")+at.green(a.latestVersion);return i+=`
|
|
2933
|
-
`,n?K2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function kxx(e){let r=await new _Md.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 zxx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await EMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=U0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await QG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await EMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=U0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await QG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function EMd({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 qG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function wMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=A5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function xJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await zxx({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...wMd(u,c,t.logger));else s.push(...wMd(a.versions,void 0,t.logger))}return s}async function Hht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:HSr(e.packageName,{version:t?"prerelease":"latest"})}var xMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],PJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new x_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.91.
|
|
2933
|
+
`,n?K2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function kxx(e){let r=await new _Md.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 zxx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await EMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=U0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await QG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await EMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=U0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await QG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function EMd({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 qG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?LR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function wMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=A5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function xJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await zxx({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...wMd(u,c,t.logger));else s.push(...wMd(a.versions,void 0,t.logger))}return s}async function Hht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:HSr(e.packageName,{version:t?"prerelease":"latest"})}var xMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],PJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new x_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.91.1"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new nx}failWithoutThrowing(t,r){this.didSucceed=!1,fIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await z2t()).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 OMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
2934
2934
|
`)||(r+=`
|
|
2935
2935
|
`),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=SAs(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 a5r(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw o.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,o),new nx}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await z2t()).sendEvent(t)}logger=XV((t,...r)=>this.log(t,...r));stderr=XV((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=PMd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?PMd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=xMd[this.numTasks++%xMd.length],s=at.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===lb.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:async t=>{await this.instrumentPostHogEvent(t)},shouldBufferLogs:!1}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>az.indexOf(i.level)>=az.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Ji.Debug,stderr:r})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await Hht({cliEnvironment:this.environment,includePreReleases:t}),n=A5(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await xJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await $0c({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:at.yellow("?"),style:{answer:i=>at.cyan(i),message:i=>at.bold(i),highlight:i=>at.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
|
|
2936
2936
|
Cancelled by user.`),new nx):n}}async getInput(t){return await W0c({message:t.message,default:t.default})}};function PMd(e){return`[${e}]:`}Ir();var IMd=require("fs/promises");async function Y0c({context:e,nameOverride:t,...r}){let n=await TP(t);return n==null?e.failAndThrow(`Directory "${t??Bw}" not found.`):await CMd({absolutePathToFernDirectory:n,context:e,nameOverride:t,...r})}async function CMd({absolutePathToFernDirectory:e,cliName:t,cliVersion:r,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i,context:o}){let s=[],[a,c,u,l,p,m]=await Promise.all([qr(It(e,Ze.of(pU))),qr(It(e,Ze.of(SP))),qr(It(e,Ze.of(Tw))),qr(It(e,Ze.of(JVt))),qr(It(e,Ze.of(cjr))),qr(It(e,Ze.of(E2s)))]);(a||c||u||l||p||m)&&(s=await SMd({cliName:t,fernDirectory:e,cliVersion:r,context:o,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i}));let f=await wpc({fernDirectory:e,context:o});return s.length===0&&f==null?o.failAndThrow(`No SDK specifications or docs specifications found. Please ensure one of the following .yml (not .yaml) files is present:
|