fern-api 3.91.2 → 3.91.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +4 -4
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1450,7 +1450,7 @@ ${qVu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&rPs(th
|
|
|
1450
1450
|
`+m_t.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?m_t.default.cyan(ZVu(t,this.opt.mask)):m_t.default.italic(m_t.default.dim("[hidden]")):this.opt.mask?ZVu(t,this.opt.mask):m_t.default.italic(m_t.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var jon=He(z1(),1);var XUu=He(kPs(),1),Con=require("child_process"),T2t=require("fs"),Ion=He(require("path"),1),ZUu=He(require("os"),1),e4u=require("crypto"),vIs=He(JUu(),1);var won=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var FPr=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var xon=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Pon=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Son(e="",t,r){let n=new OIs(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 YUu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function npy(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 OIs=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=npy(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??ZUu.default.tmpdir(),r=(0,e4u.randomUUID)(),n=YUu(this.fileOptions.prefix),i=YUu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Ion.default.resolve(t,o),a=Ion.default.resolve(t)+Ion.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let c={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(c.mode=this.fileOptions.mode),(0,T2t.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new won(t)}}readTemporaryFile(){try{let t=(0,T2t.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,XUu.detect)(t)??"utf8";vIs.default.encodingExists(r)||(r="utf8"),this.text=vIs.default.decode(t,r)}}catch(t){throw new xon(t)}}removeTemporaryFile(){try{(0,T2t.unlinkSync)(this.tempFile)}catch(t){throw new Pon(t)}}launchEditor(){try{let t=(0,Con.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new FPr(t)}}launchEditorAsync(t){try{(0,Con.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new FPr(r)}}};var t4u=He(wG(),1);var NPr=class extends Q1{_run(t){this.done=t,this.editorResult=new t4u.Subject;let r=pz(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?jon.default.dim("Received"):jon.default.dim("Press <enter> to launch your preferred editor."),t&&(r=jon.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Son(this.currentText,this.endExternalEditor.bind(this),{postfix:this.opt.postfix??".txt"})}endExternalEditor(t,r){this.rl.resume(),t?this.editorResult.error(t):this.editorResult.next(r)}onEnd(t){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=t.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(t){this.render(t.isValid)}};var s4u=require("stream");var i4u=He(require("readline"),1),o4u=He(n4u(),1),y_t=class{constructor(t){this.rl||=i4u.default.createInterface(opy(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 opy(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 o4u.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var kPr=class extends y_t{constructor(t={}){super(t),this.log=new s4u.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return _Pr(this.rl,this.bottomBar.split(`
|
|
1451
1451
|
`).length),this}updateBottomBar(t){return _Pr(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=t,this.render(),this.rl.output.mute(),this}writeLog(t){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(t.toString())),this.render(),this.rl.output.mute(),this}enforceLF(t){return/[\n\r]$/.test(t)?t:t+`
|
|
1452
1452
|
`}write(t){let r=t.split(/\n/);this.height=r.length,this.rl.setPrompt(r.at(-1)),this.rl.output.rows===0&&this.rl.output.columns===0&&Xin(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cb=He(wG(),1),u4u=He(Vxr(),1);var Bon=He(wG(),1),a4u=He(Vxr(),1),Ton=function(e,t,r){return typeof e[t]!="function"?(0,Bon.of)(e):(0,Bon.from)((0,a4u.default)(e[t])(r).then(n=>(e[t]=n,e)))};var c4u={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},D2t=class extends y_t{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,cb.from)(t):(0,cb.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,cb.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,cb.from)([t]),this.process=n.pipe((0,cb.concatMap)(this.processQuestion.bind(this)),(0,cb.publish)()),this.process.connect(),this.process.pipe((0,cb.reduce)((i,o)=>(c4u.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,cb.defer)(()=>(0,cb.of)(t).pipe((0,cb.concatMap)(this.setDefaultType.bind(this)),(0,cb.concatMap)(this.filterIfRunnable.bind(this)),(0,cb.concatMap)(()=>Ton(t,"message",this.answers)),(0,cb.concatMap)(()=>Ton(t,"default",this.answers)),(0,cb.concatMap)(()=>Ton(t,"choices",this.answers)),(0,cb.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,cb.defer)(()=>(0,cb.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,cb.defer)(()=>(0,cb.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&c4u.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,u4u.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,cb.filter)(n=>n!=null)))}};function l4u(e){let t=function(r,n){let i;try{i=new D2t(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",OPr),this.registerPrompt("input",f_t),this.registerPrompt("number",EPr),this.registerPrompt("confirm",wPr),this.registerPrompt("rawlist",xPr),this.registerPrompt("expand",PPr),this.registerPrompt("checkbox",IPr),this.registerPrompt("password",CPr),this.registerPrompt("editor",NPr)},t.restoreDefaultPrompts(),t}var wIs=l4u();function apy(e,t){wIs.registerPrompt(e,t)}function cpy(){wIs.restoreDefaultPrompts()}var upy={prompt:wIs,ui:{BottomBar:kPr,Prompt:D2t},createPromptModule:l4u,registerPrompt:apy,restoreDefaultPrompts:cpy,Separator:S3},ub=upy;var R2t=require("path");function f4u(){let e=lpy();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function lpy(e=process.argv[1]?(0,R2t.dirname)(process.argv[1]):process.cwd(),t=R2t.sep==="\\"){let r=t?p4u(e):e;return n=>{if(!n)return;let i=t?p4u(n):n,{dir:o,base:s,ext:a}=R2t.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let c=decodeURIComponent(s);o||(o=".");let u=o.lastIndexOf("/node_modules");if(u>-1)return`${o.slice(u+14).replace(/\//g,".")}:${c}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}function p4u(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var xIs=e=>{if("flags"in e){let t=m4u(e.flags),r=d4u(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,h4u(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,ppy(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function ppy(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 m4u=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,zPr(r)]).filter(([,t])=>t!==void 0)),d4u=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?h4u(n):void 0]}))};var zPr=e=>e===void 0?void 0:e.variant??e.enabled,h4u=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Don="0123456789abcdef",Ron=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Don.charAt(this.bytes[r]>>>4),t+=Don.charAt(15&this.bytes[r]),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=Don.charAt(this.bytes[r]>>>4),t+=Don.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},PIs=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??fpy()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let n=this.generateOrAbortCore(t,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,r)),n}generateOrAbortCore(t,r){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+r>=this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return Ron.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,Ron.ofInner(t)}},fpy=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),g4u,Ybe=()=>mpy().toString(),mpy=()=>(g4u||(g4u=new PIs)).generate();var dpy=["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"],y4u=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return dpy.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var B3=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e})({});var gpy=Array.isArray,A4u=Object.prototype,heI=A4u.hasOwnProperty,IIs=A4u.toString,CIs=gpy||function(e){return IIs.call(e)==="[object Array]"};var b4u=e=>e===Object(e)&&!CIs(e);var F2t=e=>e===void 0,QPr=e=>IIs.call(e)=="[object String]",_4u=e=>QPr(e)&&e.trim().length===0;var v4u=e=>IIs.call(e)=="[object Number]"&&e===e;var SIs=e=>e instanceof Error;function MPr(e){return e===null||typeof e!="object"}function A_t(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function O4u(e){return A_t(e,"ErrorEvent")}function Fon(e){return!F2t(Event)&&ypy(e,Event)}function E4u(e){return A_t(e,"Object")}function ypy(e,t){try{return e instanceof t}catch{return!1}}function VPr(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),v4u(e)?e>r?(n.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(n.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(n.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+i),VPr(i||r,t,r,n))}var Apy=864e5,Non=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=VPr(t.bucketSize,0,100,t._logger),this._refillRate=VPr(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=VPr(t.refillInterval,0,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 kon=class{add(t){let r=Ybe();return this.promiseByIds[r]=t,t.catch(()=>{}).finally(()=>{delete this.promiseByIds[r]}),t}async join(){let t=Object.values(this.promiseByIds),r=t.length;for(;r>0;)await Promise.all(t),t=Object.values(this.promiseByIds),r=t.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}};function bpy(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var w4u=(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=>w4u(`${e} ${o}`,t,r)}},_py=e=>e();function x4u(e,t=_py){return w4u(e,t,bpy())}var k2t="Mobile",Qon="iOS",N2t="Android",P4u="Tablet",IeI=N2t+" "+P4u;var vpy="Apple",CeI=vpy+" Watch",I4u="Safari",Mon="BlackBerry",C4u="Samsung",Opy=C4u+"Browser",Epy=C4u+" Internet",Von="Chrome",wpy=Von+" OS",xpy=Von+" "+Qon,S4u="Internet Explorer",Ppy=S4u+" "+k2t,BIs="Opera",SeI=BIs+" Mini",j4u="Edge",Ipy="Microsoft "+j4u,TIs="Firefox",Cpy=TIs+" "+Qon,DIs="Nintendo",RIs="PlayStation",zon="Xbox",Spy=N2t+" "+k2t,jpy=k2t+" "+I4u,UPr="Windows",Bpy=UPr+" Phone";var B4u="Generic",jeI=B4u+" "+k2t.toLowerCase(),BeI=B4u+" "+P4u.toLowerCase(),Tpy="Konqueror",rU="(\\d+(\\.\\d+)?)",jIs=new RegExp("Version/"+rU),TeI=new RegExp(zon,"i"),DeI=new RegExp(RIs+" \\w+","i"),ReI=new RegExp(DIs+" \\w+","i"),Dpy=new RegExp(Mon+"|PlayBook|BB10","i"),Rpy={"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 FeI={[Ppy]:[new RegExp("rv:"+rU)],[Ipy]:[new RegExp(j4u+"?\\/"+rU)],[Von]:[new RegExp("("+Von+"|CrMo)\\/"+rU)],[xpy]:[new RegExp("CriOS\\/"+rU)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+rU)],[I4u]:[jIs],[jpy]:[jIs],[BIs]:[new RegExp("("+BIs+"|OPR)\\/"+rU)],[TIs]:[new RegExp(TIs+"\\/"+rU)],[Cpy]:[new RegExp("FxiOS\\/"+rU)],[Tpy]:[new RegExp("Konqueror[:/]?"+rU,"i")],[Mon]:[new RegExp(Mon+" "+rU),jIs],[Spy]:[new RegExp("android\\s"+rU,"i")],[Epy]:[new RegExp(Opy+"\\/"+rU)],[S4u]:[new RegExp("(rv:|MSIE )"+rU)],Mozilla:[new RegExp("rv:"+rU)]};var NeI=[[new RegExp(zon+"; "+zon+" (.*?)[);]","i"),e=>[zon,e&&e[1]||""]],[new RegExp(DIs,"i"),[DIs,""]],[new RegExp(RIs,"i"),[RIs,""]],[Dpy,[Mon,""]],[new RegExp(UPr,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[Bpy,""];if(new RegExp(k2t).test(t)&&!/IEMobile\b/.test(t))return[UPr+" "+k2t,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=Rpy[n]||"";return/arm/i.test(t)&&(i="RT"),[UPr,i]}return[UPr,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Qon,t.join(".")]}return[Qon,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=F2t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+N2t+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+N2t+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[N2t,t.join(".")]}return[N2t,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,e=>{let t=["Mac OS X",""];if(e&&e[1]){let r=[e[1],e[2],e[3]||"0"];t[1]=r.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[wpy,""]],[/Linux|debian/i,["Linux",""]]];var T4u="utf8";function D4u(e,t){if(!e||typeof e!="string"||Fpy(e))throw new Error(t)}function Fpy(e){return e.trim().length===0}function R4u(e){return e?.replace(/\/+$/,"")}async function F4u(e,t){let r=null;for(let n=0;n<t.retryCount+1;n++){n>0&&await new Promise(i=>setTimeout(i,t.retryDelay));try{return await e()}catch(i){if(r=i,!t.retryCheck(i))throw i}}throw r}function Uon(){return new Date().toISOString()}function b_t(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var N4u=e=>e instanceof Error;function FIs(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Lon=class{constructor(){this.events={},this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),()=>{this.events[t]=this.events[t].filter(n=>n!==r)}}emit(t,r){for(let n of this.events[t]||[])n(r);for(let n of this.events["*"]||[])n(t,r)}};function k4u(){return"CompressionStream"in globalThis}async function NIs(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var __t=class extends Error{constructor(t,r){super("HTTP error while fetching PostHog: status="+t.status+", reqByteLength="+r),this.response=t,this.reqByteLength=r,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}},z2t=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function z4u(e){if(e instanceof __t){let t="";try{t=await e.text}catch{}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function kIs(e){return typeof e=="object"&&(e instanceof __t||e instanceof z2t)}function Q4u(e){return typeof e=="object"&&e instanceof __t&&e.status===413}var LPr=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new kon,this._events=new Lon,this._isInitialized=!1,D4u(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=R4u(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:kIs},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=x4u("[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=!k4u()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(B3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(B3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(B3.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!0){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:xIs(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof __t)return{type:"api_error",statusCode:t.status};if(t instanceof z2t){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let c=zPr(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(B3.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(B3.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(B3.Props,this.props)})}processBeforeEnqueue(t){return t}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(B3.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(B3.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=b_t(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:Uon()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await NIs(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:Uon(),uuid:n?.uuid?n.uuid:Ybe()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await z4u(t)})}async flush(){let t=FIs([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),FIs([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(B3.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=()=>{let h=(this.getPersistedProperty(B3.Queue)||[]).slice(i.length);this.setPersistedProperty(B3.Queue,h),t=h},a={api_key:this.apiKey,batch:o,sent_at:Uon()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await NIs(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},m={retryCheck:f=>Q4u(f)?!1:kIs(f)};try{await this.fetchWithRetry(u,p,m)}catch(f){if(Q4u(f)&&o.length>1){this.maxBatchSize=Math.max(1,Math.floor(o.length/2)),this._logger.warn(`Received 413 when sending batch of size ${o.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw f instanceof z2t||s(),this._events.emit("error",f),f}s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let c=new AbortController;return setTimeout(()=>c.abort(),a),c.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,T4u)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await F4u(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(u){throw new z2t(u)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new __t(a,s);return a},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(B3.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!kIs(i))throw i;await z4u(i)}};return Promise.race([new Promise((i,o)=>{b_t(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,o("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var T3={};D(T3,{DOMExceptionCoercer:()=>VIs,ErrorCoercer:()=>UIs,ErrorEventCoercer:()=>LIs,ErrorPropertiesBuilder:()=>zIs,EventCoercer:()=>GIs,ObjectCoercer:()=>WIs,PrimitiveCoercer:()=>HIs,PromiseRejectionEventCoercer:()=>$Is,ReduceableCache:()=>KIs,StringCoercer:()=>qIs,chromeStackLineParser:()=>QIs,createDefaultStackParser:()=>Jpy,createStackParser:()=>J4u,geckoStackLineParser:()=>MIs,nodeStackLineParser:()=>G4u,opera10StackLineParser:()=>L4u,opera11StackLineParser:()=>q4u,reverseAndStripFrames:()=>K4u,winjsStackLineParser:()=>U4u});var qon,M4u,Won;function V4u(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Won&&r.length===M4u||(M4u=r.length,Won=r.reduce((n,i)=>{qon||(qon={});let o=qon[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let u=s[a]?.filename,l=t[i];if(u&&l){n[u]=l,qon[i]=[u,l];break}}}return n},{})),Won}var kpy=4,zIs=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&&CIs(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:V4u(this.stackParser)}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=kpy){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var mz="?";function Xbe(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?mz:r,in_app:!0};return F2t(n)||(o.lineno=n),F2t(i)||(o.colno=i),o}var Gon=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:mz,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var zpy=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Qpy=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Mpy=/\((\S*)(?::(\d+))(?::(\d+))\)/,QIs=(e,t)=>{let r=zpy.exec(e);if(r){let[,i,o,s]=r;return Xbe(t,i,mz,+o,+s)}let n=Qpy.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Mpy.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Gon(n[1]||mz,n[2]);return Xbe(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var Vpy=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Upy=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,MIs=(e,t)=>{let r=Vpy.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=Upy.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||mz;return[o,i]=Gon(o,i),Xbe(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var Lpy=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,U4u=(e,t)=>{let r=Lpy.exec(e);return r?Xbe(t,r[2],r[1]||mz,+r[3],r[4]?+r[4]:void 0):void 0};var qpy=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,L4u=(e,t)=>{let r=qpy.exec(e);return r?Xbe(t,r[2],r[3]||mz,+r[1]):void 0},Wpy=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,q4u=(e,t)=>{let r=Wpy.exec(e);return r?Xbe(t,r[5],r[3]||r[4]||mz,+r[1],+r[2]):void 0};var Gpy=/^\s*[-]{4,}$/,Hpy=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,G4u=(e,t)=>{let r=e.match(Hpy);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:W4u(r[3]),colno:W4u(r[4]),in_app:$py(c||"",u),platform:t}}if(e.match(Gpy))return{filename:e,platform:t}};function $py(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 W4u(e){return parseInt(e||"",10)||void 0}var H4u=/\(error: (.*)\)/,$4u=50;function K4u(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,$4u).map(r=>({...r,filename:r.filename||Kpy(t).filename,function:r.function||mz}))}function Kpy(e){return e[e.length-1]||{}}function Jpy(){return J4u("web:javascript",QIs,MIs)}function J4u(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
1453
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=H4u.test(a)?a.replace(H4u,"$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>=$4u)break}}return K4u(i)}}var VIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=QPr(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return A_t(t,"DOMException")}isDOMError(t){return A_t(t,"DOMError")}};var UIs=class{match(t){return SIs(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var LIs=class{constructor(){}match(t){return O4u(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 Ypy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,qIs=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(Ypy);return i&&(r=i[1],n=i[2]),[r,n]}};var Y4u=["fatal","error","warning","log","info","debug"];function Hon(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var WIs=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Fon(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Hon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return QPr(t)&&!_4u(t)&&Y4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(N4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var GIs=class{match(t){return Fon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Hon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var HIs=class{match(t){return MPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var $Is=class{match(t){return A_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return MPr(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(MPr(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var KIs=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 eLu=require("fs"),tLu=require("readline"),$on=new T3.ReduceableCache(25),rLu=new T3.ReduceableCache(20),JIs=7,Xpy=1e3,Zpy=1e4;async function nLu(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"||nfy(s)||ify(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(rLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=sfy(o);if(s.every(c=>ofy(i,c)))continue;let a=afy($on,i,{});n.push(efy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&tfy(e,$on),$on.reduce(),e}function efy(e,t,r){return new Promise(n=>{let i=(0,eLu.createReadStream)(e),o=(0,tLu.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(){rLu.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]=cfy(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 tfy(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;rfy(r.lineno,r,n)}}function rfy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=iLu(e);i<e;i++){let o=r[i];if(o===void 0)return void X4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void X4u(t);t.context_line=r[e];let n=oLu(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 X4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function nfy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function ify(e){return e.lineno!==void 0&&e.lineno>Zpy||e.colno!==void 0&&e.colno>Xpy}function ofy(e,t){let r=$on.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function sfy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=Z4u(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+JIs:(i.push(n),n=Z4u(o)),t++}return i}function Z4u(e){return[iLu(e),oLu(e)]}function iLu(e){return Math.max(1,e-JIs)}function oLu(e){return e+JIs}function afy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function cfy(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 ufy(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 sLu(e,t){globalThis.process?.on("uncaughtException",ufy(e,t))}function aLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var lfy=2e3,mue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Non({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return b4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||Ybe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(sLu(this.onException.bind(this),this.onFatalError.bind(this)),aLu(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(lfy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var cLu="5.24.7";var qPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function uLu(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 pfy=6e4,ffy=1152921504606847e3,mfy=["is_not"],Q2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Zbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Kon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Zbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Zbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Zbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?dLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):mLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await lLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await lLu(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(pfy,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new Q2t(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new Q2t(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new Q2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof Q2t&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=b_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function lLu(e,t,r=""){let n=await uLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/ffy}function mLu(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&&!mfy.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 pLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return pLu(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=hfy(String(i));if(u==null&&(u=fLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=fLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function dfy(e,t){if(!(e in t))throw new Zbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function dLu(e,t,r,n=!1){let i=String(e.value);dfy(i,r);let o=r[i];return hLu(o,t,r,n)}function hLu(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=hLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Zbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=dLu(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=mLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Zbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function pLu(e){try{return new RegExp(e),!0}catch{return!1}}function fLu(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 hfy(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Jon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var gfy=100,gLu=3e4,yfy=5e4,Yon=class extends LPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Jon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,gfy):gLu,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new Kon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new mue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||yfy}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 cLu}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=gLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Zbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=qPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(qPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(qPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(qPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=b_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(E4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!mue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!mue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=Ybe(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&y4u(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 yLu=require("async_hooks"),Xon=class{constructor(){this.storage=new yLu.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 ALu="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[YIs.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 YIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=ALu,this.name=ALu,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}))}}};mue.errorPropertiesBuilder=new T3.ErrorPropertiesBuilder([new T3.EventCoercer,new T3.ErrorCoercer,new T3.ObjectCoercer,new T3.StringCoercer,new T3.PrimitiveCoercer],T3.createStackParser("node:javascript",T3.nodeStackLineParser),[f4u(),nLu]);var t9e=class extends Yon{getLibraryId(){return"posthog-node"}initializeContext(){return new Xon}};var Zon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new t9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.91.2",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var WPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var M2t=require("fs/promises"),ELu=require("os"),wLu=require("path");var bLu=He(require("crypto")),tsn=new Uint8Array(256),esn=tsn.length;function XIs(){return esn>tsn.length-16&&(bLu.default.randomFillSync(tsn),esn=0),tsn.slice(esn,esn+=16)}var _Lu=/^(?:[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 bfy(e){return typeof e=="string"&&_Lu.test(e)}var ZIs=bfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function vLu(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 OLu=He(require("crypto")),eCs={randomUUID:OLu.default.randomUUID};function _fy(e,t,r){if(eCs.randomUUID&&!t&&!e)return eCs.randomUUID();e=e||{};let n=e.random||(e.rng||XIs)();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 vLu(n)}var dR=_fy;var vfy="id",Ofy=".fern",GPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new t9e(r),this.userId=t==null?void 0:Nvs(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.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await 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,ELu.homedir)()),Ze.of(Ofy),Ze.of(vfy));await qr(t)||(await(0,M2t.mkdir)((0,wLu.dirname)(t),{recursive:!0}),await(0,M2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,M2t.readFile)(t)).toString()}return this.persistedDistinctId}};var tCs;async function V2t(){return tCs==null&&(tCs=await Efy()),tCs}async function Efy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new WPr;let r=await AZr();return r!=null?new GPr({token:r,posthogApiKey:e}):await Tbe()!=null?new Zon({posthogApiKey:e}):new GPr({token:void 0,posthogApiKey:e})}catch{return new WPr}}var xLu=(e=0)=>t=>`\x1B[${t+e}m`,PLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ILu=(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]}},QnI=Object.keys(fI.modifier),wfy=Object.keys(fI.color),xfy=Object.keys(fI.bgColor),MnI=[...wfy,...xfy];function Pfy(){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=xLu(),fI.color.ansi256=PLu(),fI.color.ansi16m=ILu(),fI.bgColor.ansi=xLu(10),fI.bgColor.ansi256=PLu(10),fI.bgColor.ansi16m=ILu(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 Ify=Pfy(),due=Ify;var nsn=He(require("process"),1),SLu=He(require("os"),1),rCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:nsn.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=nsn.default,rsn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?rsn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(rsn=1);function Cfy(){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 Sfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function jfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Cfy();n!==void 0&&(rsn=n);let i=r?rsn:n;if(i===0)return 0;if(r){if(cJ("color=16m")||cJ("color=full")||cJ("color=truecolor"))return 3;if(cJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(nsn.default.platform==="win32"){let s=SLu.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 CLu(e,t={}){let r=jfy(e,{streamIsTTY:e&&e.isTTY,...t});return Sfy(r)}var Bfy={stdout:CLu({isTTY:rCs.default.isatty(1)}),stderr:CLu({isTTY:rCs.default.isatty(2)})},jLu=Bfy;function BLu(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 TLu(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
|
|
1453
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=H4u.test(a)?a.replace(H4u,"$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>=$4u)break}}return K4u(i)}}var VIs=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=QPr(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return A_t(t,"DOMException")}isDOMError(t){return A_t(t,"DOMError")}};var UIs=class{match(t){return SIs(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var LIs=class{constructor(){}match(t){return O4u(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 Ypy=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,qIs=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(Ypy);return i&&(r=i[1],n=i[2]),[r,n]}};var Y4u=["fatal","error","warning","log","info","debug"];function Hon(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var WIs=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Fon(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Hon(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return QPr(t)&&!_4u(t)&&Y4u.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(N4u(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var GIs=class{match(t){return Fon(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Hon(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var HIs=class{match(t){return MPr(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var $Is=class{match(t){return A_t(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return MPr(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(MPr(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var KIs=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 eLu=require("fs"),tLu=require("readline"),$on=new T3.ReduceableCache(25),rLu=new T3.ReduceableCache(20),JIs=7,Xpy=1e3,Zpy=1e4;async function nLu(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"||nfy(s)||ify(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(rLu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=sfy(o);if(s.every(c=>ofy(i,c)))continue;let a=afy($on,i,{});n.push(efy(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&tfy(e,$on),$on.reduce(),e}function efy(e,t,r){return new Promise(n=>{let i=(0,eLu.createReadStream)(e),o=(0,tLu.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(){rLu.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]=cfy(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 tfy(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;rfy(r.lineno,r,n)}}function rfy(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=iLu(e);i<e;i++){let o=r[i];if(o===void 0)return void X4u(t);t.pre_context.push(o)}if(r[e]===void 0)return void X4u(t);t.context_line=r[e];let n=oLu(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 X4u(e){delete e.pre_context,delete e.context_line,delete e.post_context}function nfy(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function ify(e){return e.lineno!==void 0&&e.lineno>Zpy||e.colno!==void 0&&e.colno>Xpy}function ofy(e,t){let r=$on.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function sfy(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=Z4u(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+JIs:(i.push(n),n=Z4u(o)),t++}return i}function Z4u(e){return[iLu(e),oLu(e)]}function iLu(e){return Math.max(1,e-JIs)}function oLu(e){return e+JIs}function afy(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function cfy(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 ufy(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 sLu(e,t){globalThis.process?.on("uncaughtException",ufy(e,t))}function aLu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var lfy=2e3,mue=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Non({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return b4u(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||Ybe(),properties:{...s,...o}}}startAutocaptureIfEnabled(){this.isEnabled()&&(sLu(this.onException.bind(this),this.onFatalError.bind(this)),aLu(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(lfy),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var cLu="5.24.7";var qPr={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function uLu(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 pfy=6e4,ffy=1152921504606847e3,mfy=["is_not"],Q2t=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},XE=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Zbe=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},Kon=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0)try{s=(await this.computeFlagAndPayloadLocally(a,r,n,i,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof Zbe||c instanceof XE?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}return s}async getAllFlagsAndPayloads(t,r={},n={},i={},o){await this.loadFeatureFlags();let s={},a={},c=this.featureFlags.length==0,u=o?o.map(p=>this.featureFlagsByKey[p]).filter(Boolean):this.featureFlags,l={};return await Promise.all(u.map(async p=>{try{let{value:m,payload:f}=await this.computeFlagAndPayloadLocally(p,t,r,n,i,void 0,l);s[p.key]=m,f&&(a[p.key]=f)}catch(m){m instanceof Zbe||m instanceof XE?this.logMsgIfDebug(()=>console.debug(`${m.name} when computing flag locally: ${p.key}: ${m.message}`)):m instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${p.key}: ${m}`)),c=!0}})),{response:s,payloads:a,fallbackToFlags:c}}async computeFlagAndPayloadLocally(t,r,n={},i={},o={},s,a,c=!1){if(c||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let u;u=s!==void 0?s:await this.computeFlagValueLocally(t,r,n,i,o,a);let l=this.getFeatureFlagPayload(t.key,u);return{value:u,payload:l}}async computeFlagValueLocally(t,r,n={},i={},o={},s={}){if(t.ensure_experience_continuity)throw new XE("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c==null)return await this.matchFeatureFlagProperties(t,r,i,s);{let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new XE("Flag has unknown group type index");if(!(u in n))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let l=o[u];return await this.matchFeatureFlagProperties(t,n[u],l,s)}}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n,i){let o=t.key;if(!this.featureFlagsByKey)throw new XE("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new XE(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new XE(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new XE(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.matchFeatureFlagProperties(l,r,n,i);i[c]=p}catch(p){throw new XE(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new XE(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new XE(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i={}){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(m=>m.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof Zbe)throw l;if(l instanceof XE)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new XE("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o={}){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?dLu(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,r,i,o):mLu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await lLu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await lLu(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(pfy,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new Q2t(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new Q2t(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new Q2t(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof Q2t&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=b_t(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function lLu(e,t,r=""){let n=await uLu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/ffy}function mLu(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&&!mfy.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 pLu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return pLu(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=hfy(String(i));if(u==null&&(u=fLu(i)),u==null)throw new XE(`Invalid date: ${i}`);let l=fLu(s);return["is_date_before"].includes(o)?l<u:l>u}default:throw new XE(`Unknown operator: ${o}`)}}function dfy(e,t){if(!(e in t))throw new Zbe(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function dLu(e,t,r,n=!1){let i=String(e.value);dfy(i,r);let o=r[i];return hLu(o,t,r,n)}function hLu(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=hLu(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof Zbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=dLu(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=mLu(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof Zbe)throw c;if(c instanceof XE)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new XE("can't match cohort without a given cohort property value");return i==="AND"}function pLu(e){try{return new RegExp(e),!0}catch{return!1}}function fLu(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 hfy(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var Jon=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var gfy=100,gLu=3e4,yfy=5e4,Yon=class extends LPr{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Jon,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,gfy):gLu,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new Kon({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new mue(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||yfy}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 cLu}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=gLu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let O=this._flagOverrides[t];if(O===void 0)return;let E=this._payloadOverrides?.[t];return{key:t,enabled:O!==!1,variant:typeof O=="string"?O:void 0,payload:E}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties,c==null&&(c=this.options.strictLocalEvaluation??!1);let m,f=!1,h,g,y,A,b,v;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let O=this.featureFlagsPoller?.featureFlagsByKey[t];if(O)try{let E=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(O,r,s,u,l,i);if(E){f=!0;let P=E.value;A=O.id,v="Evaluated locally",m={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:E.payload??void 0}}}catch(E){if(E instanceof Zbe||E instanceof XE)this._logger?.info(`${E.name} when computing flag locally: ${t}: ${E.message}`);else throw E}}if(!f&&!c){let O=await super.getFeatureFlagDetailsStateless(r,s,u,l,a,[t]);if(O===void 0)y=qPr.UNKNOWN_ERROR;else{h=O.requestId,g=O.evaluatedAt;let E=[];O.errorsWhileComputingFlags&&E.push(qPr.ERRORS_WHILE_COMPUTING),O.quotaLimited?.includes("feature_flags")&&E.push(qPr.QUOTA_LIMITED);let P=O.flags[t];if(P===void 0)E.push(qPr.FLAG_MISSING);else{A=P.metadata?.id,b=P.metadata?.version,v=P.reason?.description??P.reason?.code;let x;if(P.metadata?.payload!==void 0)try{x=JSON.parse(P.metadata.payload)}catch{x=P.metadata.payload}m={key:t,enabled:P.enabled,variant:P.variant,payload:x}}E.length>0&&(y=E.join(","))}}if(o){let O=m===void 0?void 0:m.enabled===!1?!1:m.variant??!0,E=`${t}_${O}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(E)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(E):this.distinctIdHasSentFlagCalls[r]=[E];let P={$feature_flag:t,$feature_flag_response:O,$feature_flag_id:A,$feature_flag_version:b,$feature_flag_reason:v,locally_evaluated:f,[`$feature/${t}`]:O,$feature_flag_request_id:h,$feature_flag_evaluated_at:g};y&&(P.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:P,groups:s,disableGeoip:a})}}return m!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(m={...m,payload:this._payloadOverrides[t]}),m}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){return this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:n,disableGeoip:i,flagKeys:o}=r||{},{onlyEvaluateLocally:s,personProperties:a,groupProperties:c}=r||{},u=this.addLocalPersonAndGroupProperties(t,n,a,c);a=u.allPersonProperties,c=u.allGroupProperties,s==null&&(s=this.options.strictLocalEvaluation??!1);let l=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,n,a,c,o),p={},m={},f=!0;if(l&&(p=l.response,m=l.payloads,f=l.fallbackToFlags),f&&!s){let h=await super.getFeatureFlagsAndPayloadsStateless(t,n,a,c,i,o);p={...p,...h.flags||{}},m={...m,...h.payloads||{}}}return this._flagOverrides!==void 0&&(p={...p,...this._flagOverrides}),this._payloadOverrides!==void 0&&(m={...m,...this._payloadOverrides}),{featureFlags:p,featureFlagPayloads:m}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=b_t(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(E4u(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}captureException(t,r,n,i){if(!mue.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!mue.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(mue.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,m={...l?.properties||{},...i||{}};p||(p=Ybe(),m.$process_person_profile=!1),l?.sessionId&&!m.$session_id&&(m.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:m,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(s){let g=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,g)}return f.event,{}}).then(g=>{let y={};if(g)for(let[b,v]of Object.entries(g))y[`$feature/${b}`]=v;let A=Object.keys(g||{}).filter(b=>g?.[b]!==!1).sort();return A.length>0&&(y.$active_feature_flags=A),y}).catch(()=>({})).then(g=>({...g,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&y4u(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 yLu=require("async_hooks"),Xon=class{constructor(){this.storage=new yLu.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 ALu="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[YIs.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 YIs=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=ALu,this.name=ALu,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}))}}};mue.errorPropertiesBuilder=new T3.ErrorPropertiesBuilder([new T3.EventCoercer,new T3.ErrorCoercer,new T3.ObjectCoercer,new T3.StringCoercer,new T3.PrimitiveCoercer],T3.createStackParser("node:javascript",T3.nodeStackLineParser),[f4u(),nLu]);var t9e=class extends Yon{getLibraryId(){return"posthog-node"}initializeContext(){return new Xon}};var Zon=class{posthog;constructor({posthogApiKey:t}){this.posthog=new t9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.91.3",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var WPr=class{async sendEvent(){}async identify(){}async flush(){}};Ir();var M2t=require("fs/promises"),ELu=require("os"),wLu=require("path");var bLu=He(require("crypto")),tsn=new Uint8Array(256),esn=tsn.length;function XIs(){return esn>tsn.length-16&&(bLu.default.randomFillSync(tsn),esn=0),tsn.slice(esn,esn+=16)}var _Lu=/^(?:[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 bfy(e){return typeof e=="string"&&_Lu.test(e)}var ZIs=bfy;var dz=[];for(let e=0;e<256;++e)dz.push((e+256).toString(16).slice(1));function vLu(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 OLu=He(require("crypto")),eCs={randomUUID:OLu.default.randomUUID};function _fy(e,t,r){if(eCs.randomUUID&&!t&&!e)return eCs.randomUUID();e=e||{};let n=e.random||(e.rng||XIs)();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 vLu(n)}var dR=_fy;var vfy="id",Ofy=".fern",GPr=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new t9e(r),this.userId=t==null?void 0:Nvs(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.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await 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,ELu.homedir)()),Ze.of(Ofy),Ze.of(vfy));await qr(t)||(await(0,M2t.mkdir)((0,wLu.dirname)(t),{recursive:!0}),await(0,M2t.writeFile)(t,dR())),this.persistedDistinctId=(await(0,M2t.readFile)(t)).toString()}return this.persistedDistinctId}};var tCs;async function V2t(){return tCs==null&&(tCs=await Efy()),tCs}async function Efy(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new WPr;let r=await AZr();return r!=null?new GPr({token:r,posthogApiKey:e}):await Tbe()!=null?new Zon({posthogApiKey:e}):new GPr({token:void 0,posthogApiKey:e})}catch{return new WPr}}var xLu=(e=0)=>t=>`\x1B[${t+e}m`,PLu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ILu=(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]}},QnI=Object.keys(fI.modifier),wfy=Object.keys(fI.color),xfy=Object.keys(fI.bgColor),MnI=[...wfy,...xfy];function Pfy(){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=xLu(),fI.color.ansi256=PLu(),fI.color.ansi16m=ILu(),fI.bgColor.ansi=xLu(10),fI.bgColor.ansi256=PLu(10),fI.bgColor.ansi16m=ILu(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 Ify=Pfy(),due=Ify;var nsn=He(require("process"),1),SLu=He(require("os"),1),rCs=He(require("tty"),1);function cJ(e,t=globalThis.Deno?globalThis.Deno.args:nsn.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:mI}=nsn.default,rsn;cJ("no-color")||cJ("no-colors")||cJ("color=false")||cJ("color=never")?rsn=0:(cJ("color")||cJ("colors")||cJ("color=true")||cJ("color=always"))&&(rsn=1);function Cfy(){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 Sfy(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function jfy(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Cfy();n!==void 0&&(rsn=n);let i=r?rsn:n;if(i===0)return 0;if(r){if(cJ("color=16m")||cJ("color=full")||cJ("color=truecolor"))return 3;if(cJ("color=256"))return 2}if("TF_BUILD"in mI&&"AGENT_NAME"in mI)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(mI.TERM==="dumb")return o;if(nsn.default.platform==="win32"){let s=SLu.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 CLu(e,t={}){let r=jfy(e,{streamIsTTY:e&&e.isTTY,...t});return Sfy(r)}var Bfy={stdout:CLu({isTTY:rCs.default.isatty(1)}),stderr:CLu({isTTY:rCs.default.isatty(2)})},jLu=Bfy;function BLu(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 TLu(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
|
|
1454
1454
|
`:`
|
|
1455
1455
|
`)+r,i=n+1,n=e.indexOf(`
|
|
1456
1456
|
`,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:DLu,stderr:RLu}=jLu,nCs=Symbol("GENERATOR"),U2t=Symbol("STYLER"),HPr=Symbol("IS_EMPTY"),FLu=["ansi","ansi","ansi256","ansi16m"],L2t=Object.create(null),Tfy=(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=DLu?DLu.level:0;e.level=t.level===void 0?r:t.level};var Dfy=e=>{let t=(...r)=>r.join(" ");return Tfy(t,e),Object.setPrototypeOf(t,$Pr.prototype),t};function $Pr(e){return Dfy(e)}Object.setPrototypeOf($Pr.prototype,Function.prototype);for(let[e,t]of Object.entries(due))L2t[e]={get(){let r=isn(this,oCs(t.open,t.close,this[U2t]),this[HPr]);return Object.defineProperty(this,e,{value:r}),r}};L2t.visible={get(){let e=isn(this,this[U2t],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var iCs=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?due[r].ansi16m(...n):t==="ansi256"?due[r].ansi256(due.rgbToAnsi256(...n)):due[r].ansi(due.rgbToAnsi(...n)):e==="hex"?iCs("rgb",t,r,...due.hexToRgb(...n)):due[r][e](...n),Rfy=["rgb","hex","ansi256"];for(let e of Rfy){L2t[e]={get(){let{level:r}=this;return function(...n){let i=oCs(iCs(e,FLu[r],"color",...n),due.color.close,this[U2t]);return isn(this,i,this[HPr])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);L2t[t]={get(){let{level:r}=this;return function(...n){let i=oCs(iCs(e,FLu[r],"bgColor",...n),due.bgColor.close,this[U2t]);return isn(this,i,this[HPr])}}}}var Ffy=Object.defineProperties(()=>{},{...L2t,level:{enumerable:!0,get(){return this[nCs].level},set(e){this[nCs].level=e}}}),oCs=(e,t,r)=>{let n,i;return r===void 0?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},isn=(e,t,r)=>{let n=(...i)=>Nfy(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,Ffy),n[nCs]=e,n[U2t]=t,n[HPr]=r,n},Nfy=(e,t)=>{if(e.level<=0||!t)return e[HPr]?"":t;let r=e[U2t];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=BLu(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
|
|
@@ -2125,7 +2125,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
|
|
|
2125
2125
|
Learn more about project structure:
|
|
2126
2126
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=nr.V1.SlugGenerator.init(nr.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>nr.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return wB(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=nr.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:o,child:s}}async toVersionedNode(t,r){let n=this.#e.get("versioned"),i=t.versions[0];if(i?.hidden===!0)throw new Error(`The default version "${i.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`);let o=5,s=[];for(let a=0;a<t.versions.length;a+=o){let c=t.versions.slice(a,a+o),u=await Promise.all(c.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...u)}return{id:n,type:"versioned",children:s}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??M0(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n);break;default:Ue(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),productId:nr.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:FV.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),o=r.setVersionSlug(t.slug??M0(t.version)),s=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,o):await this.toSidebarRootNode(i,t.navigation.items,o);return{type:"version",id:i,versionId:nr.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?ACA(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,o):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(c=>this.toNavigationChild({prefix:i,item:c,parentSlug:n})))).filter(c=>c!=null),a=[];return s.forEach(c=>{if(c.type==="apiReference"){a.push(c);return}let u=c.type==="section"&&(c.collapsible===!0||c.collapsible==null&&c.collapsed===!0);if(c.type==="section"&&!u){a.push(c);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},a.push(p)),p.children.push(c)}),{type:"sidebarRoot",id:i,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,children:[{type:"varianted",id:i,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??M0(t.title)}`),o=n.apply({urlSlug:t.slug??M0(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(c=>this.toVariantChild(c,i,o)))).filter(c=>c!=null);return{type:"variant",id:i,variantId:nr.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return wB(t)._visit({page:async i=>this.toPageNode({item:i,parentSlug:n}),apiSection:async i=>this.toApiSectionNode({item:i,parentSlug:n}),section:async i=>this.toSectionNode({prefix:r,item:i,parentSlug:n}),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n),librarySection:async i=>this.handleLibrarySection(i,n)})}async toNavigationChild({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){return wB(r)._visit({page:async s=>this.toPageNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),apiSection:async s=>this.toApiSectionNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),section:async s=>this.toSectionNode({prefix:t,item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),link:async s=>this.toLinkNode(s),changelog:async s=>this.toChangelogNode(s,n,i),librarySection:async s=>this.handleLibrarySection(s,n)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=rkl(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=tj(s,{onError:_=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${_}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),h=t.apiName??a?.workspaceName??c?.workspaceName,g=`__pending_api_${this.pendingApiCounter++}__`,y=CRr({ir:s,apiDefinitionId:g,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),A=new wNn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,m,f.namespacesByOperationId),b=A.getTagDescriptionContent();for(let[_,O]of b.entries()){let E=_.split("/").pop()||_,P=Ze.of(E),x=O;this.docsWorkspace.config.settings?.substituteEnvVars&&(x=tj(O,{onError:I=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${I}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[P]=x,this.parsedDocsConfig.pages[P]=x}let v=A.get();return this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:h,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types,tempApiDefinitionId:g,apiReferenceNode:v}),v}async toChangelogNode(t,r,n){return new OEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:nr.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(){let t={},r={},n=new Map;for(let i of this.ossWorkspaces){let o=i.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let c=await new v3t({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,c.graphqlOperations),Object.assign(r,c.types),s.namespace)for(let u of Object.keys(c.graphqlOperations))n.set(vn.GraphQlOperationId(u),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}}return{operations:t,types:r,namespacesByOperationId:n}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=aa(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??M0(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=It(r,Ze.of("_navigation.yml"));if(!(0,eKs.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,EHe.readFile)(n,"utf-8")).split(`
|
|
2127
2127
|
`).filter(s=>!s.startsWith("#")).join(`
|
|
2128
|
-
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,eKs.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,EHe.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return wB(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new OEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(ru),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return wB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};RNn(t,r,n)}};function yCA(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 ACA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(ru)}async function tKs(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:()=>Okl,ApiDefinitionId:()=>Lkl,ApiId:()=>Hkl,Availability:()=>czl,DocsConfigId:()=>$kl,EndpointId:()=>Jkl,EndpointPathLiteral:()=>szl,EnvironmentId:()=>Kkl,FileId:()=>tzl,HttpMethod:()=>azl,IndexSegmentId:()=>Ekl,JqString:()=>nzl,OrgId:()=>Wkl,PageId:()=>ezl,PayloadLocation:()=>Fzl,PropertyKey:()=>izl,PullRequestState:()=>jzl,RoleId:()=>ozl,TokenId:()=>Gkl,TypeId:()=>Zkl,Url:()=>rzl,VersionId:()=>qkl,WebSocketId:()=>Ykl,WebhookId:()=>Xkl,algolia:()=>rKs,api:()=>fKs,commons:()=>mKs,diff:()=>uzl,docs:()=>OKs,generators:()=>wKs,git:()=>xKs,navigation:()=>CKs,sdks:()=>jKs,snippets:()=>Dzl,snippetsFactory:()=>Rzl,templates:()=>BKs,tokens:()=>Nzl});var rKs={};D(rKs,{AlgoliaSearchIndex:()=>Okl,IndexSegmentId:()=>Ekl});function Okl(e){return e}function Ekl(e){return e}var fKs={};D(fKs,{latest:()=>oKs,v1:()=>pKs});var oKs={};D(oKs,{AuthSchemeId:()=>wkl,WebhookHttpMethod:()=>Ckl,auth:()=>nKs,commons:()=>xkl,endpoint:()=>Pkl,type_:()=>Ikl,webhook:()=>iKs,websocket:()=>Skl});var nKs={};D(nKs,{AuthSchemeId:()=>wkl});function wkl(e){return e}var xkl={};var Pkl={};var Ikl={};var iKs={};D(iKs,{WebhookHttpMethod:()=>Ckl});var Ckl={Get:"GET",Post:"POST"};var Skl={};var pKs={};D(pKs,{SubpackageId:()=>Qkl,WebSocketMessageId:()=>Mkl,WebSocketMessageOrigin:()=>Vkl,WebhookHttpMethod:()=>Ukl,commons:()=>lKs,db:()=>sKs,read:()=>cKs,register:()=>uKs});var sKs={};D(sKs,{endpoint:()=>jkl});var jkl={};var cKs={};D(cKs,{SupportedLanguage:()=>Bkl,endpoint:()=>aKs,type_:()=>Tkl,webhook:()=>Dkl,websocket:()=>Rkl});var aKs={};D(aKs,{SupportedLanguage:()=>Bkl});var Bkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Tkl={};var Dkl={};var Rkl={};var uKs={};D(uKs,{SourceId:()=>bCA,endpoint:()=>Fkl,type_:()=>Nkl,webhook:()=>kkl,websocket:()=>zkl});var Fkl={};var Nkl={};var kkl={};var zkl={};function bCA(e){return e}var lKs={};D(lKs,{SubpackageId:()=>Qkl,WebSocketMessageId:()=>Mkl,WebSocketMessageOrigin:()=>Vkl,WebhookHttpMethod:()=>Ukl});function Qkl(e){return e}function Mkl(e){return e}var Vkl={Client:"client",Server:"server"};var Ukl={Get:"GET",Post:"POST"};var mKs={};D(mKs,{ApiDefinitionId:()=>Lkl,ApiId:()=>Hkl,Availability:()=>czl,DocsConfigId:()=>$kl,EndpointId:()=>Jkl,EndpointPathLiteral:()=>szl,EnvironmentId:()=>Kkl,FileId:()=>tzl,HttpMethod:()=>azl,JqString:()=>nzl,OrgId:()=>Wkl,PageId:()=>ezl,PropertyKey:()=>izl,RoleId:()=>ozl,TokenId:()=>Gkl,TypeId:()=>Zkl,Url:()=>rzl,VersionId:()=>qkl,WebSocketId:()=>Ykl,WebhookId:()=>Xkl});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}function tzl(e){return e}function rzl(e){return e}function nzl(e){return e}function izl(e){return e}function ozl(e){return e}function szl(e){return e}var azl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var czl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var uzl={};var OKs={};D(OKs,{latest:()=>gKs,v1:()=>_Ks,v2:()=>vKs});var gKs={};D(gKs,{Layout:()=>pzl,MdxEngine:()=>_CA,TwitterCardSetting:()=>fzl,commons:()=>lzl,frontmatter:()=>dKs,seo:()=>hKs});var _CA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var lzl={};var dKs={};D(dKs,{Layout:()=>pzl});var pzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var hKs={};D(hKs,{TwitterCardSetting:()=>fzl});var fzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var _Ks={};D(_Ks,{commons:()=>bKs,db:()=>mzl,read:()=>dzl,write:()=>yKs});var mzl={};var dzl={};var yKs={};D(yKs,{DocsRegistrationId:()=>OCA,FilePath:()=>vCA});function vCA(e){return e}function OCA(e){return e}var bKs={};D(bKs,{ContentAlignment:()=>Azl,FontDisplay:()=>Ezl,FontStyle:()=>Ozl,HeaderPosition:()=>bzl,JsScriptStrategy:()=>vzl,ProgrammingLanguage:()=>hzl,SearchbarPlacement:()=>gzl,TabsPlacement:()=>yzl,TwitterCardSetting:()=>_zl,commons:()=>AKs});var AKs={};D(AKs,{ContentAlignment:()=>Azl,FontDisplay:()=>Ezl,FontStyle:()=>Ozl,HeaderPosition:()=>bzl,JsScriptStrategy:()=>vzl,ProgrammingLanguage:()=>hzl,SearchbarPlacement:()=>gzl,TabsPlacement:()=>yzl,TwitterCardSetting:()=>_zl});var hzl={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 gzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var yzl={Header:"HEADER",Sidebar:"SIDEBAR"};var Azl={Center:"CENTER",Left:"LEFT"};var bzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var _zl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var vzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var Ozl={Normal:"normal",Italic:"italic"};var Ezl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var vKs={};D(vKs,{read:()=>wzl,write:()=>xzl});var wzl={};var xzl={};var wKs={};D(wKs,{ChangelogEntryType:()=>Izl,GeneratorId:()=>ECA,GeneratorLanguage:()=>wCA,ReleaseType:()=>Czl,cli:()=>Pzl,commons:()=>EKs,versions:()=>Szl});var Pzl={};var EKs={};D(EKs,{ChangelogEntryType:()=>Izl,ReleaseType:()=>Czl});var Izl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Czl={Ga:"GA",Rc:"RC"};var Szl={};function ECA(e){return e}var wCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var xKs={};D(xKs,{PullRequestState:()=>jzl});var jzl={Open:"open",Closed:"closed",Merged:"merged"};var CKs={};D(CKs,{latest:()=>PKs,v1:()=>IKs});var PKs={};D(PKs,{NodeId:()=>ICA,ProductId:()=>CCA,Slug:()=>xCA,TabId:()=>PCA});function xCA(e){return e}function PCA(e){return e}function ICA(e){return e}function CCA(e){return e}var IKs={};D(IKs,{NavigationV1Availability:()=>DCA,NodeId:()=>BCA,ProductId:()=>TCA,Slug:()=>SCA,TabId:()=>jCA});function SCA(e){return e}function jCA(e){return e}function BCA(e){return e}function TCA(e){return e}var DCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var jKs={};D(jKs,{Language:()=>Bzl,VersionBump:()=>Tzl,versions:()=>SKs});var SKs={};D(SKs,{Language:()=>Bzl,VersionBump:()=>Tzl});var Bzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Tzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Dzl={};var Rzl={};var BKs={};D(BKs,{PayloadLocation:()=>Fzl});var Fzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var Nzl={};var kNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function kzl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var zNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function zzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends zNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${zzl(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},wj=class extends sa{},F5=class extends wj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Qzl="x-fern-base-path",Mzl="x-fern-availability",QNn="x-fern-sdk-group-name",Vzl="x-fern-global-headers",Uzl="x-fern-sdk-method-name";var Lzl="x-fern-webhook",qzl="x-fern-access-token-locator",Wzl="x-fern-basic",Gzl="x-fern-username-variable-name",Hzl="x-fern-password-variable-name",$zl="x-fern-bearer",Kzl="x-fern-token-variable-name",Jzl="x-fern-header",Yzl="x-fern-header-variable-name",Xzl="x-fern-server-name",Zzl="x-fern-examples";var MNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Xzl]}convert(){if(this.serverName!=null)return this.serverName}};var VNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function wHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new VNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function UNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var b2l=He(oI());var LNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Wzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var qNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Hzl]}convert(){return this.passwordVariableName}};var WNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Gzl]}convert(){return this.usernameVariableName}};var GNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[$zl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var HNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Kzl]}convert(){return this.tokenVariableName}};function e2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var t2l="x-bearer-format",r2l="x-code-samples",n2l="x-codeSamples";var $Nn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[t2l]}convert(){return this.bearerFormat}};var KNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Jzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var JNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Yzl]}convert(){return this.headerVariableName}};function i2l(e){return e.type==="apiKey"}var X3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){i2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new $Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};Yns();CDc();function YNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Z3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function EEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(EEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function XNn(e){if(Array.isArray(e))return e.map(Z3t);if(typeof e=="symbol")return[e];e=EEt(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function SRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Y6r(t))return r;let n=e[t];return n===void 0?YNn(t)?SRr(e,XNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Z3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return RCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Y6r(t))return r;let n=e[t];return n===void 0?r:n}}}function RCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Y6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function o2l(e){return function(t){return SRr(t,e)}}function s2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Crs();function TKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function RKs(e,t,r){return typeof r!="function"?RKs(e,t,()=>{}):DKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:DKs(i,o,n,u)},new Map)}function DKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return FCA(e,t,r,n);case"function":return Object.keys(t).length>0?DKs(e,{...t},r,n):TKs(e,t);default:return s2l(e)?typeof t=="string"?t==="":!0:TKs(e,t)}}function FCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return a2l(e,t,r,n);if(t instanceof Map)return NCA(e,t,r,n);if(t instanceof Set)return kCA(e,t,r,n);let i=Object.keys(t);if(e==null||h_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!h_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function NCA(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 a2l(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 kCA(e,t,r,n){return t.size===0?!0:e instanceof Set?a2l([...e],[...t],r,n):!1}function ZNn(e,t){return RKs(e,t,()=>{})}IDc();function c2l(e){return e=PDc(e),t=>ZNn(t,e)}jrs();W6r();Srs();function u2l(e,t){return xDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(RDt(e)===J6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case H6r:case G6r:case $6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case K6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function l2l(e){return u2l(e)}var zCA=/^(?:0|[1-9]\d*)$/;function p2l(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 zCA.test(e)}}W6r();function f2l(e){return e!==null&&typeof e=="object"&&RDt(e)==="[object Arguments]"}function m2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&YNn(t)&&e?.[t]==null?r=XNn(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||f2l(n))&&p2l(o)&&o<n.length))return!1;n=n[o]}return!0}function d2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Z3t(e);break}}return t=l2l(t),function(r){let n=SRr(r,e);return n===void 0?m2l(r,e):t===void 0?n===void 0:ZNn(n,t)}}function h2l(e){if(e==null)return p9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?d2l(e[0],e[1]):c2l(e);case"string":case"symbol":case"number":return o2l(e)}}Yns();Brs();function ekn(e,t=p9r){return e==null?{}:jk(e,h2l(t))}Y2c();function g2l(e){return J2c(EEt(e))}TDc();function y2l(e){return typeof e!="string"&&(e=EEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return BDc(y2l(g2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function tkn({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${QCA(s)}${MCA(e)}.${VCA(n,i,o,a)}`}function QCA(e){return e?"webhook_":"endpoint_"}function MCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function VCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function A2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var rkn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[qzl],this.accessTokenLocator!=null&&(A2l(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var nkn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new rkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=tkn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var e5t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new qNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{e2l(this.input)?(this.authScheme="header",this.headerAuthNode=new X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new b2l.UnreachableCaseError(this.authScheme);return}}};var t5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=UNn(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new e5t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var ikn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Qzl],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 _2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function v2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function r5t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!_2l(i))&&(s=v2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function okn(e,t){return Sy(e)?Hz(e,t,void 0):e}function xHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function O2l(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 E2l(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 w2l=He(oI());var FKs=["decimal","decimal128","double-int","double","float","sf-decimal"],NKs=["int16","int32","int64","int8","sf-integer","uint8"],kKs=["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"],zKs=["beta","pre-release","in-development","generally-available","deprecated"];function xj(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var CY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(xj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Mzl];r!=null&&(zKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${zKs.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 w2l.UnreachableCaseError(this.availability);return}}};var akn=He(oI());function x2l(e){return typeof e=="object"&&e!=null&&"language"in e}function P2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function I2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function C2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function skn(e){return typeof e=="object"&&e!=null&&"event"in e}function QKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(skn)}function PHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function S2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ckn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[Zzl]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return PHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>PHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new akn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=S2l(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new akn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{I2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{QKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!QKs(r.response)&&C2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new akn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{x2l(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})):P2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var jRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[QNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ble(r)))}};var ukn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Uzl]}convert(){return this.sdkMethodName}};var lkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Lzl]}convert(){return this.isWebhook}};var pkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[r2l]??[],...this.input[n2l]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var wEt=He(oI());function MKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function j2l(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var rF="",Fve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(PHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>PHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new wEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=MKs(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=MKs(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(skn)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return PHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>PHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new wEt.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new wEt.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:j2l(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 B2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var q2l=He(oI());var T2l="#/components/schemas/";function n5t(e){if(e.$ref.startsWith(T2l))return e.$ref.replace(T2l,"")}function $Ve(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function IHe(e){return typeof e.type=="string"&&e.type==="array"}function D2l(e){return e.type==="boolean"}function R2l(e){return e.type==="integer"}function CHe(e){return!Array.isArray(e.type)&&!IHe(e)}function F2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||CHe(t)||IHe(t))}function N2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function k2l(e){return e.type==="null"}function z2l(e){return e.type==="number"}function VKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function Q2l(e){return e.type==="string"}var fkn=class extends F5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var mkn=class extends wj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var dkn=class extends F5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map($Ve).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function hkn(e){return e!=null&&e.length>0?e:[void 0]}var i5t=class extends F5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return n5t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return r5t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>hkn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=xj(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var gkn=class extends F5{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>xj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>xj(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=xj({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map($Ve).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?$Ve(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var ykn=class extends wj{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var SHe=class extends wj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=xj(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var M2l=He(oI());function UCA(e){return NKs.includes(e)}var Akn=class extends wj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(UCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${NKs.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 M2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var bkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return $Ve({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var V2l=He(oI());function LCA(e){return FKs.includes(e)}var _kn=class extends wj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(LCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${FKs.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 V2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var U2l=He(oI());function qCA(e){return kKs.includes(e)}var vkn=class extends wj{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new U2l.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&&(qCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${kKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new SHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var L2l=He(oI());var Okn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,L2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var xEt=class extends F5{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=n5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&CHe(t)&&(this.maybeEnumConverterNode=new SHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=xj(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends F5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),CHe(this.input)&&N2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=n5t(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new xEt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(F2l(this.input))this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(VKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new SHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":VKs(this.input)&&(this.typeShapeNode=new i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":IHe(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":D2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":R2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":z2l(this.input)&&(this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":Q2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":k2l(this.input)&&(this.typeShapeNode=new bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new q2l.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new i5t({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!IHe(this.input)&&this.input==null||IHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?$Ve(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function jHe(e){if(e!=null)return r5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Nve=class extends wj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new CY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=B2l(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 W2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var UKs=He(oI());function Ekn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var G2l=He(qAs(),1),o5t=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=G2l.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 WCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var wkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),WCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=UNn(r.$ref,this.context.document):i=r,i!=null)return[t,new e5t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var xkn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=xj(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=xj(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var Pkn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=xj(this.input.schema,this.context.document);this.availability=new CY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new xEt({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=o5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new xkn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[rF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[rF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ble([this.method,this.path,this.contentType,"request"].join("_"));return Ekn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new UKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof xEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new UKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var Ikn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=W2l(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new Pkn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var H2l={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 $2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Ckn=He(oI());var K2l="application/json";var J2l="application/octet-stream";function Y2l(e,t){return e===t||t===rF||e===rF}var BRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)Y2l(a,o)&&(n.add(a),this.examples?.push(new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,xHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Fve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,xHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Fve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,xHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,xHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[rF];if(o!=null)for(let s of o)this.examples?.push(new Fve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,xHe(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=o5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=K2l,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=J2l,this.contentSubtype=xj(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=ekn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]=[{value:this.input.example}]);let n=xj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=ekn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[rF]??=[],r[rF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==rF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==rF);Object.keys(r).every(a=>a===rF)||this.matchExamplesByIndex(o,s),!i.has(rF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new Ckn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ble([this.method,this.path,this.statusCode,"response"].join("_"));return Ekn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new Ckn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new Ckn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var TRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=$2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new BRr({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new BRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var Skn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new TRr({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new TRr({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return hkn(jHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??H2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var BHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Fve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,xHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=wHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=okn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new Ikn({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new Skn({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new jRr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new jRr({input:{[QNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>tkn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=E2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:O2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:jHe(this.queryParameters)?.flat(),headers:jHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:jHe(this.pathParameters)?.flat(),queryParameters:jHe(this.queryParameters)?.flat(),requestHeaders:jHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var s5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=wHe(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new BHe({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new BHe({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new BHe({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new BHe({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new BHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function jkn(e){return"payloads"in e}var Bkn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new s5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:wHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{jkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Tkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Vzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||okn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return r5t(this.globalHeaders,this.requiredProperties)?.flat()}};function X2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Dkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=X2l(o,this.context.document);if(s!=null)return new s5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{jkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Rkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=wHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ikn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new Bkn({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new Dkn({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new wkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Tkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=dR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=kzl({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 LKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new dle(e.absoluteFilePath),n=await mY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new kNn,generatedTypes:{}},c=new Rkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Skt(o,c.convert())}return o}_w();Ir();var l9l=He(GKs(),1),p9l=He(_zn(),1),nQn=require("fs/promises"),f9l=He(require("http"),1),m9l=He(require("path"),1);var J4l=require("events"),xzn=He(require("fs"),1),FEt=He(require("path"),1);var T4l=He(require("os"),1),D4l=300,zHe=20,nFr=1e7,R4l=T4l.default.platform();var sFA=R4l==="darwin",pYs=R4l==="win32",QHe=sFA||pYs,F4l=3e3,N4l=2e4,fYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var REt;(function(e){e.CHANGE="change",e.RENAME="rename"})(REt||(REt={}));var iFr;(function(e){e.CHANGE="change",e.ERROR="error"})(iFr||(iFr={}));var Ll;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var aFA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},vzn=aFA;var gYs=He(require("fs"),1),Ezn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var JVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Vve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var mYs=He(require("process"),1),k4l=mYs.default.getuid?!mYs.default.getuid():!1,z4l=1e4,Q5=()=>{};var oFr={isChangeErrorOk:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!k4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!oFr.isNodeError(e))throw e;if(!oFr.isChangeErrorOk(e))throw e}},Pj=oFr;var dYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=z4l,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()}}}}},Q4l=new dYs;var YVe=(e,t)=>function(n){return function i(...o){return Q4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},XVe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var cFA={attempt:{chmod:JVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:JVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:JVe((0,$z.promisify)(Ab.default.close),Q5),fsync:JVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:JVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:JVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:JVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:JVe((0,$z.promisify)(Ab.default.unlink),Q5),chmodSync:Vve(Ab.default.chmodSync,Pj.onChangeError),chownSync:Vve(Ab.default.chownSync,Pj.onChangeError),closeSync:Vve(Ab.default.closeSync,Q5),existsSync:Vve(Ab.default.existsSync,Q5),fsyncSync:Vve(Ab.default.fsync,Q5),mkdirSync:Vve(Ab.default.mkdirSync,Q5),realpathSync:Vve(Ab.default.realpathSync,Q5),statSync:Vve(Ab.default.statSync,Q5),unlinkSync:Vve(Ab.default.unlinkSync,Q5)},retry:{close:YVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:YVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:YVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:YVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:YVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:YVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:YVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:XVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:XVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:XVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:XVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:XVe(Ab.default.renameSync,Pj.isRetriableError),statSync:XVe(Ab.default.statSync,Pj.isRetriableError),writeSync:XVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:XVe(Ab.default.writeFileSync,Pj.isRetriableError)}},M4l=cFA;var Ozn=He(require("fs"),1),sFr=He(require("path"),1);var hYs=()=>{};var uFA=()=>{let e=hYs,t=hYs,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}},V4l=uFA;var lFA=()=>{let{promise:e,resolve:t,isPending:r}=V4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},U4l=lFA;var L4l={then:e=>{e()}};var q4l=e=>Array.isArray(e)?e:[e],W4l=e=>typeof e=="function";var pFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=q4l(o).map(Z=>W4l(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}=U4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===sFr.default.sep?"":sFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),Ozn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||L4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),Ozn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Ozn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=sFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=sFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},G4l=pFA;var Uve={lang:{debounce:vzn,attempt:e=>{try{return e()}catch(t){return Uve.lang.castError(t)}},castArray:e=>Uve.lang.isArray(e)?e:[e],castError:e=>Uve.lang.isError(e)?e:Uve.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(Uve.lang.isNaN(e))return Uve.lang.isNaN(t);if(Uve.lang.isPrimitive(e)||Uve.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(Ezn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?gYs.default.realpathSync.native(e):gYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Ezn.default.sep&&t.length-e.length>Ezn.default.sep.length,poll:(e,t=N4l)=>M4l.retry.stat(t)(e,{bigint:!0}).catch(Uve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await G4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var wzn=He(require("path"),1);var yYs=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=D4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),s=this.options.limit??nFr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!QHe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(wzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(wzn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=REt.CHANGE,r){if(this.watcher.isClosed())return;let n=wzn.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){pYs&&t.code==="EPERM"?this.onWatcherChange(REt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(iFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(iFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(REt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&QHe&&this.options.native!==!1?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),n=this.options.limit??nFr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(REt.CHANGE,a,t)}))}}},H4l=yYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},aFr=GU;var cFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=fYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),aFr.remove(u)},u=()=>{c(),a()};aFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=fYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),aFr.remove(u)},u=()=>{c(),a()};aFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Mve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Mve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Mve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Mve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};cFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};cFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var $4l=cFr;var AYs=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}},bYs=AYs;var _Ys=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}},K4l=_Ys;var vYs=class{constructor(){this.inos={},this.paths=new bYs,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 K4l(n)}reset(){this.inos={},this.paths=new bYs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Mve.FILE:Mve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},OYs=vYs;var EYs=class e extends J4l.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 $4l(this),this._roots=new Set,this._poller=new OYs,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 H4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=FEt.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??zHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&QHe&&l.options.native!==!1)))return!0;if(!QHe)break;let u=FEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||QHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:xzn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=FEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||QHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zHe,a=r.limit??nFr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=FEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new OYs,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??F4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),xzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),xzn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=FEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=FEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Pzn=EYs;Mzn();Ir();var j5t=require("fs/promises"),rql=require("os"),nql=He(require("path"),1),RNA=".fern",FNA="logs";function NNA(){return"cli@3.91.2"}var VEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,rql.homedir)()),Ze.of(RNA)),r=It(t,Ze.of(FNA));await qr(r)||await(0,j5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${nql.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2128
|
+
`);try{return Bn.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=It(t,Ze.of(r));if(!(0,eKs.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=dl(this.docsWorkspace.absoluteFilePath,n),o=await(0,EHe.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,nr.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:M0(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=nr.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??M0(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:c??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?nr.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=n.apply({urlSlug:r.slug??M0(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,m=i||r.hidden,h=(await Promise.all(r.contents.map(g=>this.toNavigationChild({prefix:c,item:g,parentSlug:u,hideChildren:m,parentAvailability:r.availability??o})))).filter(g=>g!=null);if(a==null){let g=h.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);g!=null&&(a=g.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:u.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:m,viewers:r.viewers,orphaned:r.orphaned,children:h,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return wB(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new OEt(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:nr.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??M0(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):FV.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(ru),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:FV.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,...i}=this.parsedDocsConfig.metadata;return{...i,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n)}}convertFileIdOrUrl(t){if(t!=null)return wB(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:FV.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};RNn(t,r,n)}};function yCA(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 ACA(e){switch(e){case"beta":return nr.V1.NavigationV1Availability.Beta;case"deprecated":return nr.V1.NavigationV1Availability.Deprecated;case"ga":return nr.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return nr.V1.NavigationV1Availability.Stable;default:Ue(e)}}pr();async function Gz(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yb?t:null))).filter(ru)}async function tKs(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:()=>Okl,ApiDefinitionId:()=>Lkl,ApiId:()=>Hkl,Availability:()=>czl,DocsConfigId:()=>$kl,EndpointId:()=>Jkl,EndpointPathLiteral:()=>szl,EnvironmentId:()=>Kkl,FileId:()=>tzl,HttpMethod:()=>azl,IndexSegmentId:()=>Ekl,JqString:()=>nzl,OrgId:()=>Wkl,PageId:()=>ezl,PayloadLocation:()=>Fzl,PropertyKey:()=>izl,PullRequestState:()=>jzl,RoleId:()=>ozl,TokenId:()=>Gkl,TypeId:()=>Zkl,Url:()=>rzl,VersionId:()=>qkl,WebSocketId:()=>Ykl,WebhookId:()=>Xkl,algolia:()=>rKs,api:()=>fKs,commons:()=>mKs,diff:()=>uzl,docs:()=>OKs,generators:()=>wKs,git:()=>xKs,navigation:()=>CKs,sdks:()=>jKs,snippets:()=>Dzl,snippetsFactory:()=>Rzl,templates:()=>BKs,tokens:()=>Nzl});var rKs={};D(rKs,{AlgoliaSearchIndex:()=>Okl,IndexSegmentId:()=>Ekl});function Okl(e){return e}function Ekl(e){return e}var fKs={};D(fKs,{latest:()=>oKs,v1:()=>pKs});var oKs={};D(oKs,{AuthSchemeId:()=>wkl,WebhookHttpMethod:()=>Ckl,auth:()=>nKs,commons:()=>xkl,endpoint:()=>Pkl,type_:()=>Ikl,webhook:()=>iKs,websocket:()=>Skl});var nKs={};D(nKs,{AuthSchemeId:()=>wkl});function wkl(e){return e}var xkl={};var Pkl={};var Ikl={};var iKs={};D(iKs,{WebhookHttpMethod:()=>Ckl});var Ckl={Get:"GET",Post:"POST"};var Skl={};var pKs={};D(pKs,{SubpackageId:()=>Qkl,WebSocketMessageId:()=>Mkl,WebSocketMessageOrigin:()=>Vkl,WebhookHttpMethod:()=>Ukl,commons:()=>lKs,db:()=>sKs,read:()=>cKs,register:()=>uKs});var sKs={};D(sKs,{endpoint:()=>jkl});var jkl={};var cKs={};D(cKs,{SupportedLanguage:()=>Bkl,endpoint:()=>aKs,type_:()=>Tkl,webhook:()=>Dkl,websocket:()=>Rkl});var aKs={};D(aKs,{SupportedLanguage:()=>Bkl});var Bkl={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var Tkl={};var Dkl={};var Rkl={};var uKs={};D(uKs,{SourceId:()=>bCA,endpoint:()=>Fkl,type_:()=>Nkl,webhook:()=>kkl,websocket:()=>zkl});var Fkl={};var Nkl={};var kkl={};var zkl={};function bCA(e){return e}var lKs={};D(lKs,{SubpackageId:()=>Qkl,WebSocketMessageId:()=>Mkl,WebSocketMessageOrigin:()=>Vkl,WebhookHttpMethod:()=>Ukl});function Qkl(e){return e}function Mkl(e){return e}var Vkl={Client:"client",Server:"server"};var Ukl={Get:"GET",Post:"POST"};var mKs={};D(mKs,{ApiDefinitionId:()=>Lkl,ApiId:()=>Hkl,Availability:()=>czl,DocsConfigId:()=>$kl,EndpointId:()=>Jkl,EndpointPathLiteral:()=>szl,EnvironmentId:()=>Kkl,FileId:()=>tzl,HttpMethod:()=>azl,JqString:()=>nzl,OrgId:()=>Wkl,PageId:()=>ezl,PropertyKey:()=>izl,RoleId:()=>ozl,TokenId:()=>Gkl,TypeId:()=>Zkl,Url:()=>rzl,VersionId:()=>qkl,WebSocketId:()=>Ykl,WebhookId:()=>Xkl});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}function tzl(e){return e}function rzl(e){return e}function nzl(e){return e}function izl(e){return e}function ozl(e){return e}function szl(e){return e}var azl={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var czl={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var uzl={};var OKs={};D(OKs,{latest:()=>gKs,v1:()=>_Ks,v2:()=>vKs});var gKs={};D(gKs,{Layout:()=>pzl,MdxEngine:()=>_CA,TwitterCardSetting:()=>fzl,commons:()=>lzl,frontmatter:()=>dKs,seo:()=>hKs});var _CA={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var lzl={};var dKs={};D(dKs,{Layout:()=>pzl});var pzl={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var hKs={};D(hKs,{TwitterCardSetting:()=>fzl});var fzl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var _Ks={};D(_Ks,{commons:()=>bKs,db:()=>mzl,read:()=>dzl,write:()=>yKs});var mzl={};var dzl={};var yKs={};D(yKs,{DocsRegistrationId:()=>OCA,FilePath:()=>vCA});function vCA(e){return e}function OCA(e){return e}var bKs={};D(bKs,{ContentAlignment:()=>Azl,FontDisplay:()=>Ezl,FontStyle:()=>Ozl,HeaderPosition:()=>bzl,JsScriptStrategy:()=>vzl,ProgrammingLanguage:()=>hzl,SearchbarPlacement:()=>gzl,TabsPlacement:()=>yzl,TwitterCardSetting:()=>_zl,commons:()=>AKs});var AKs={};D(AKs,{ContentAlignment:()=>Azl,FontDisplay:()=>Ezl,FontStyle:()=>Ozl,HeaderPosition:()=>bzl,JsScriptStrategy:()=>vzl,ProgrammingLanguage:()=>hzl,SearchbarPlacement:()=>gzl,TabsPlacement:()=>yzl,TwitterCardSetting:()=>_zl});var hzl={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 gzl={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var yzl={Header:"HEADER",Sidebar:"SIDEBAR"};var Azl={Center:"CENTER",Left:"LEFT"};var bzl={Fixed:"FIXED",Absolute:"ABSOLUTE"};var _zl={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var vzl={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var Ozl={Normal:"normal",Italic:"italic"};var Ezl={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var vKs={};D(vKs,{read:()=>wzl,write:()=>xzl});var wzl={};var xzl={};var wKs={};D(wKs,{ChangelogEntryType:()=>Izl,GeneratorId:()=>ECA,GeneratorLanguage:()=>wCA,ReleaseType:()=>Czl,cli:()=>Pzl,commons:()=>EKs,versions:()=>Szl});var Pzl={};var EKs={};D(EKs,{ChangelogEntryType:()=>Izl,ReleaseType:()=>Czl});var Izl={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var Czl={Ga:"GA",Rc:"RC"};var Szl={};function ECA(e){return e}var wCA={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var xKs={};D(xKs,{PullRequestState:()=>jzl});var jzl={Open:"open",Closed:"closed",Merged:"merged"};var CKs={};D(CKs,{latest:()=>PKs,v1:()=>IKs});var PKs={};D(PKs,{NodeId:()=>ICA,ProductId:()=>CCA,Slug:()=>xCA,TabId:()=>PCA});function xCA(e){return e}function PCA(e){return e}function ICA(e){return e}function CCA(e){return e}var IKs={};D(IKs,{NavigationV1Availability:()=>DCA,NodeId:()=>BCA,ProductId:()=>TCA,Slug:()=>SCA,TabId:()=>jCA});function SCA(e){return e}function jCA(e){return e}function BCA(e){return e}function TCA(e){return e}var DCA={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var jKs={};D(jKs,{Language:()=>Bzl,VersionBump:()=>Tzl,versions:()=>SKs});var SKs={};D(SKs,{Language:()=>Bzl,VersionBump:()=>Tzl});var Bzl={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Tzl={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var Dzl={};var Rzl={};var BKs={};D(BKs,{PayloadLocation:()=>Fzl});var Fzl={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var Nzl={};var kNn=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function kzl({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=ku.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:Wz(o)},i.push(o)})}),r}var zNn=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function zzl(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var sa=class extends zNn{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${zzl(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},wj=class extends sa{},F5=class extends wj{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var Qzl="x-fern-base-path",Mzl="x-fern-availability",QNn="x-fern-sdk-group-name",Vzl="x-fern-global-headers",Uzl="x-fern-sdk-method-name";var Lzl="x-fern-webhook",qzl="x-fern-access-token-locator",Wzl="x-fern-basic",Gzl="x-fern-username-variable-name",Hzl="x-fern-password-variable-name",$zl="x-fern-bearer",Kzl="x-fern-token-variable-name",Jzl="x-fern-header",Yzl="x-fern-header-variable-name",Xzl="x-fern-server-name",Zzl="x-fern-examples";var MNn=class extends sa{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[Xzl]}convert(){if(this.serverName!=null)return this.serverName}};var VNn=class extends sa{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new MNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:ku.EnvironmentId(t),baseUrl:this.url}}};function wHe(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,c)=>new VNn({input:a,context:r,accessPath:n,pathId:["servers",`${c}`]}));return[...i,...s]}function Sy(e){return typeof e=="object"&&wa(e)&&"$ref"in e&&typeof e.$ref=="string"}function Hz(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Sy(i)&&(i=Hz(i,t,r)),i)}function UNn(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Sy(r)?Hz(r,t,void 0):r}var b2l=He(oI());var LNn=class extends sa{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Wzl];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var qNn=class extends sa{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[Hzl]}convert(){return this.passwordVariableName}};var WNn=class extends sa{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[Gzl]}convert(){return this.usernameVariableName}};var GNn=class extends sa{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[$zl];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var HNn=class extends sa{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[Kzl]}convert(){return this.tokenVariableName}};function e2l(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var t2l="x-bearer-format",r2l="x-code-samples",n2l="x-codeSamples";var $Nn=class extends sa{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[t2l]}convert(){return this.bearerFormat}};var KNn=class extends sa{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Jzl];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var JNn=class extends sa{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[Yzl]}convert(){return this.headerVariableName}};function i2l(e){return e.type==="apiKey"}var X3t=class extends sa{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){i2l(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new KNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new JNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new $Nn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};Yns();CDc();function YNn(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Z3t(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function EEt(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(EEt).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function XNn(e){if(Array.isArray(e))return e.map(Z3t);if(typeof e=="symbol")return[e];e=EEt(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function SRr(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Y6r(t))return r;let n=e[t];return n===void 0?YNn(t)?SRr(e,XNn(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Z3t(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return RCA(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Y6r(t))return r;let n=e[t];return n===void 0?r:n}}}function RCA(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Y6r(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function o2l(e){return function(t){return SRr(t,e)}}function s2l(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Crs();function TKs(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function RKs(e,t,r){return typeof r!="function"?RKs(e,t,()=>{}):DKs(e,t,function n(i,o,s,a,c,u){let l=r(i,o,s,a,c,u);return l!==void 0?!!l:DKs(i,o,n,u)},new Map)}function DKs(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return FCA(e,t,r,n);case"function":return Object.keys(t).length>0?DKs(e,{...t},r,n):TKs(e,t);default:return s2l(e)?typeof t=="string"?t==="":!0:TKs(e,t)}}function FCA(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return a2l(e,t,r,n);if(t instanceof Map)return NCA(e,t,r,n);if(t instanceof Set)return kCA(e,t,r,n);let i=Object.keys(t);if(e==null||h_r(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!h_r(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function NCA(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 a2l(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 kCA(e,t,r,n){return t.size===0?!0:e instanceof Set?a2l([...e],[...t],r,n):!1}function ZNn(e,t){return RKs(e,t,()=>{})}IDc();function c2l(e){return e=PDc(e),t=>ZNn(t,e)}jrs();W6r();Srs();function u2l(e,t){return xDc(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(RDt(e)===J6r&&typeof e.constructor!="function"){let a={};return o.set(e,a),x$(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case H6r:case G6r:case $6r:{let a=new e.constructor(e?.valueOf());return x$(a,e),a}case K6r:{let a={};return x$(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function l2l(e){return u2l(e)}var zCA=/^(?:0|[1-9]\d*)$/;function p2l(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 zCA.test(e)}}W6r();function f2l(e){return e!==null&&typeof e=="object"&&RDt(e)==="[object Arguments]"}function m2l(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&YNn(t)&&e?.[t]==null?r=XNn(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||f2l(n))&&p2l(o)&&o<n.length))return!1;n=n[o]}return!0}function d2l(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Z3t(e);break}}return t=l2l(t),function(r){let n=SRr(r,e);return n===void 0?m2l(r,e):t===void 0?n===void 0:ZNn(n,t)}}function h2l(e){if(e==null)return p9r;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?d2l(e[0],e[1]):c2l(e);case"string":case"symbol":case"number":return o2l(e)}}Yns();Brs();function ekn(e,t=p9r){return e==null?{}:jk(e,h2l(t))}Y2c();function g2l(e){return J2c(EEt(e))}TDc();function y2l(e){return typeof e!="string"&&(e=EEt(e)),e.replace(/['\u2019]/g,"")}function Ble(e){return BDc(y2l(g2l(e)))}function _O(e){if(e!=null)return Array.isArray(e)?e:[e]}function tkn({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${QCA(s)}${MCA(e)}.${VCA(n,i,o,a)}`}function QCA(e){return e?"webhook_":"endpoint_"}function MCA(e){return e!=null?_O(e)?.map(t=>Ble(t)).join("/"):""}function VCA(e,t,r,n){return e||t||Ble(r??"")||Ble(n??"")}function A2l(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var rkn=class extends sa{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[qzl],this.accessTokenLocator!=null&&(A2l(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var nkn=class extends sa{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new rkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=tkn({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:ku.EndpointId(r),accessTokenLocator:ku.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var e5t=class extends sa{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new LNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new WNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new qNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new GNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new HNn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{e2l(this.input)?(this.authScheme="header",this.headerAuthNode=new X3t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new nkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new b2l.UnreachableCaseError(this.authScheme);return}}};var t5t=class extends sa{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=UNn(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new e5t({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(wa))}};var ikn=class extends sa{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[Qzl],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 _2l(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function v2l(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function r5t(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>_O(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!_2l(i))&&(s=v2l(s,s.type==="enum"?s.default:void 0)),{key:ku.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(wa)).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function okn(e,t){return Sy(e)?Hz(e,t,void 0):e}function xHe(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function O2l(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 E2l(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 w2l=He(oI());var FKs=["decimal","decimal128","double-int","double","float","sf-decimal"],NKs=["int16","int32","int64","int8","sf-integer","uint8"],kKs=["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"],zKs=["beta","pre-release","in-development","generally-available","deprecated"];function xj(e,t){return Sy(e)?Hz(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var CY=class extends sa{availability;constructor(t){super(t),this.safeParse()}parse(){if(xj(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[Mzl];r!=null&&(zKs.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${zKs.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 w2l.UnreachableCaseError(this.availability);return}}};var akn=He(oI());function x2l(e){return typeof e=="object"&&e!=null&&"language"in e}function P2l(e){return typeof e=="object"&&e!=null&&"sdk"in e}function I2l(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function C2l(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function skn(e){return typeof e=="object"&&e!=null&&"event"in e}function QKs(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(skn)}function PHe(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function S2l(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var ckn=class extends sa{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[Zzl]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return PHe(s)?[i,{type:"filenameWithData",filename:s.filename,data:ku.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>PHe(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:ku.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new akn.UnreachableCaseError(o.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=S2l(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new akn.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{I2l(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{QKs(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!QKs(r.response)&&C2l(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new akn.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{x2l(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})):P2l(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let c=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),u=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,m])=>[ku.PropertyKey(p),m])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,m])=>[ku.PropertyKey(p),m]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(c).length>0?c:void 0,queryParameters:Object.keys(u).length>0?u:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var jRr=class extends sa{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[QNn]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>ku.api.v1.SubpackageId(Ble(r)))}};var ukn=class extends sa{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[Uzl]}convert(){return this.sdkMethodName}};var lkn=class extends sa{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[Lzl]}convert(){return this.isWebhook}};var pkn=class extends sa{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[r2l]??[],...this.input[n2l]??[]],this.codeSamples.forEach(t=>{[...Object.values(ku.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var wEt=He(oI());function MKs(e,t){return Sy(e)?Hz(e,t,void 0):e}function j2l(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var rF="",Fve=class extends sa{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(PHe(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>PHe(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new wEt.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=MKs(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=MKs(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(skn)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return PHe(i)?[r,{type:"filenameWithData",filename:i.filename,data:ku.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>PHe(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:ku.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new wEt.UnreachableCaseError(n.multipartType);return}}).filter(wa))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new wEt.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new wEt.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(wa));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:j2l(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 B2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var q2l=He(oI());var T2l="#/components/schemas/";function n5t(e){if(e.$ref.startsWith(T2l))return e.$ref.replace(T2l,"")}function $Ve(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function IHe(e){return typeof e.type=="string"&&e.type==="array"}function D2l(e){return e.type==="boolean"}function R2l(e){return e.type==="integer"}function CHe(e){return!Array.isArray(e.type)&&!IHe(e)}function F2l(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||CHe(t)||IHe(t))}function N2l(e){return"nullable"in e&&typeof e.nullable=="boolean"}function k2l(e){return e.type==="null"}function z2l(e){return e.type==="number"}function VKs(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function Q2l(e){return e.type==="string"}var fkn=class extends F5{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Mw({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return _O(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var mkn=class extends wj{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var dkn=class extends F5{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(wa)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>_O(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(wa).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map($Ve).filter(wa):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function hkn(e){return e!=null&&e.length>0?e:[void 0]}var i5t=class extends F5{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Mw({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Sy(t))return n5t(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Mw({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(wa))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return r5t(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:_O(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(wa)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>hkn(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>ku.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=xj(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Mw({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var gkn=class extends F5{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>xj(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>xj(t,this.context.document)?.type!=="null"?new Mw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(wa);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=xj({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Mw({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(wa);return this.isNullable&&i!=null?i.map($Ve).filter(wa):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:ku.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>_O(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??Wz(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(wa)).filter(wa)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>_O(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?Wz(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?Wz(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(wa)).filter(wa)}:void 0,n=this.isNullable?$Ve(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var ykn=class extends wj{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var SHe=class extends wj{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Sy(r)){let i=xj(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(wa),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var M2l=He(oI());function UCA(e){return NKs.includes(e)}var Akn=class extends wj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(UCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${NKs.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 M2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var bkn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return $Ve({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var V2l=He(oI());function LCA(e){return FKs.includes(e)}var _kn=class extends wj{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(LCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${FKs.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 V2l.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var U2l=He(oI());function qCA(e){return kKs.includes(e)}var vkn=class extends wj{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new U2l.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&&(qCA(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${kKs.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new SHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var L2l=He(oI());var Okn=class extends wj{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,L2l.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var xEt=class extends F5{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=n5t(this.input);let t=xj(this.input,this.context.document);t?.enum!=null&&CHe(t)&&(this.maybeEnumConverterNode=new SHe({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:ku.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=xj(this.input,this.context.document);if(r!=null)return new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Mw=class e extends F5{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),CHe(this.input)&&N2l(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Sy(this.input)){let t=n5t(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new xEt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new mkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(F2l(this.input))this.typeShapeNode=new dkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new gkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(VKs(this.input)&&this.input.allOf!=null)this.typeShapeNode=new i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(CHe(this.input)&&this.input.enum!=null)this.typeShapeNode=new SHe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":VKs(this.input)&&(this.typeShapeNode=new i5t({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":IHe(this.input)&&(this.typeShapeNode=new fkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":D2l(this.input)&&(this.typeShapeNode=new ykn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":R2l(this.input)&&(this.typeShapeNode=new Akn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":z2l(this.input)&&(this.typeShapeNode=new _kn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":Q2l(this.input)&&(this.typeShapeNode=new vkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":k2l(this.input)&&(this.typeShapeNode=new bkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new q2l.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new i5t({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new Okn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Sy(this.input)&&(!IHe(this.input)&&this.input==null||IHe(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=_O(t)?.map(n=>this.nullable?$Ve(n):n).filter(wa);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function jHe(e){if(e!=null)return r5t(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(wa))}var Nve=class extends wj{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Sy(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new CY({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=B2l(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 W2l(e,t){return Sy(e)?Hz(e,t,void 0):e}var UKs=He(oI());function Ekn(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[ku.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var G2l=He(qAs(),1),o5t=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=G2l.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 WCA(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var wkn=class extends sa{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Mw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),WCA(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Sy(r)?i=UNn(r.$ref,this.context.document):i=r,i!=null)return[t,new e5t({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(wa)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[ku.api.latest.AuthSchemeId(t),n]}).filter(wa)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=_O(r.convert());return i==null?[t,void 0]:[ku.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>wa(r))):void 0}}};var xkn=class extends Mw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=xj(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Sy(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=xj(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var Pkn=class extends sa{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=xj(this.input.schema,this.context.document);this.availability=new CY({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Sy(this.input.schema)?new xEt({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=o5t.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new xkn({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(wa))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[rF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[rF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:_O(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=Ble([this.method,this.path,this.contentType,"request"].join("_"));return Ekn({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new UKs.UnreachableCaseError(i);return}}).filter(wa)}convert(){if(this.schema instanceof xEt)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:ku.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=_O(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:ku.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new UKs.UnreachableCaseError(i.multipartType),[]}}).filter(wa).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var Ikn=class extends sa{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=W2l(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new Pkn({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>_O(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(wa)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>_O(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(wa)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var H2l={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 $2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Ckn=He(oI());var K2l="application/json";var J2l="application/octet-stream";function Y2l(e,t){return e===t||t===rF||e===rF}var BRr=class extends sa{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,c){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=c,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,c]of Object.entries(r))for(let u of c)Y2l(a,o)&&(n.add(a),this.examples?.push(new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,xHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[c,u,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new Fve({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,xHe(u,s),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,c,u]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new Fve({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,xHe(c,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,c]of r.slice(t.length))this.examples?.push(...c.map(u=>new Fve({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,xHe(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[rF];if(o!=null)for(let s of o)this.examples?.push(new Fve({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,xHe(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=o5t.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=K2l,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=J2l,this.contentSubtype=xj(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Mw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=ekn(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]=[{value:this.input.example}]);let n=xj(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=ekn(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[rF]??=[],r[rF]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[rF]??=[],r[rF]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([c])=>!i.has(c)&&c!==rF).map(([c,u])=>[a,c,u]));let s=Object.entries(r).filter(([a,c])=>!i.has(a)&&wa(c)&&a!==rF);Object.keys(r).every(a=>a===rF)||this.matchExamplesByIndex(o,s),!i.has(rF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return _O(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new Ckn.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return _O(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=Ble([this.method,this.path,this.statusCode,"response"].join("_"));return Ekn({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:ku.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new Ckn.UnreachableCaseError(n);return}}).filter(wa)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new Ckn.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var TRr=class extends sa{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=$2l(this.input,this.context.document);if(r==null){this.context.errors.error({message:Sy(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new BRr({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new BRr({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(wa)}};var Skn=class extends sa{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new TRr({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new TRr({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return hkn(jHe(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(wa))})))}).filter(wa)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=_O(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??H2l[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let c=a.convert();if(c!=null&&c.responseBody?.type==="json")return{name:c.name,description:c.description,responseBody:c.responseBody}}).filter(wa)})).filter(wa)})).filter(wa)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var BHe=class extends sa{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new Fve({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,xHe(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new CY({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=wHe(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new lkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Sy(n)){let o=okn(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new Nve({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new pkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new Ikn({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new Skn({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new jRr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new jRr({input:{[QNn]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new ukn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>tkn({namespace:_O(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(wa),this.xFernExamplesNode=new ckn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(wa)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:ku.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(wa),i=E2l(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:O2l(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:ku.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(m=>m.value.toString())??[],queryParameters:jHe(this.queryParameters)?.flat(),headers:jHe(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(wa)}}).filter(wa);let o=this.servers?.map(l=>l.convert()).filter(wa),s=this.convertPathToPathParts();if(s==null)return;let a,c=this.auth?.convert();c!=null&&(a=Object.keys(c));let u=t?.flatMap(l=>l.headers).filter(wa);return this.endpointIds.map((l,p)=>({id:ku.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(m=>ku.api.v1.SubpackageId(m)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(m=>ku.api.latest.AuthSchemeId(m)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:jHe(this.pathParameters)?.flat(),queryParameters:jHe(this.queryParameters)?.flat(),requestHeaders:jHe(this.requestHeaders)?.flat(),responseHeaders:u!=null&&u.length>0?u:void 0,requests:this.requests?.convert(),responses:t?.map(m=>m.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var s5t=class extends sa{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=wHe(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new BHe({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new BHe({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new BHe({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new BHe({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new BHe({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(wa)}};function jkn(e){return"payloads"in e}var Bkn=class extends sa{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new s5t({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:wHe(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(wa)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{jkn(o)?r[ku.WebhookId(o.id)]=o:t[ku.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var Tkn=class extends sa{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[Vzl]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||okn(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new Nve({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return r5t(this.globalHeaders,this.requiredProperties)?.flat()}};function X2l(e,t){if(Sy(e)){let r=Hz(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var Dkn=class extends sa{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=X2l(o,this.context.document);if(s!=null)return new s5t({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(wa)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{jkn(n)&&(t[ku.WebhookId(n.id)]=n)}),t),{})}};var Rkn=class extends sa{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=wHe(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new t5t({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new ikn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new Bkn({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new Dkn({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new wkn({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Tkn({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=dR(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=kzl({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 LKs(e,t){if(e instanceof BQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yb))return;let r=new dle(e.absoluteFilePath),n=await mY({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new kNn,generatedTypes:{}},c=new Rkn({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=Skt(o,c.convert())}return o}_w();Ir();var l9l=He(GKs(),1),p9l=He(_zn(),1),nQn=require("fs/promises"),f9l=He(require("http"),1),m9l=He(require("path"),1);var J4l=require("events"),xzn=He(require("fs"),1),FEt=He(require("path"),1);var T4l=He(require("os"),1),D4l=300,zHe=20,nFr=1e7,R4l=T4l.default.platform();var sFA=R4l==="darwin",pYs=R4l==="win32",QHe=sFA||pYs,F4l=3e3,N4l=2e4,fYs=1250;var Mve;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Mve||(Mve={}));var REt;(function(e){e.CHANGE="change",e.RENAME="rename"})(REt||(REt={}));var iFr;(function(e){e.CHANGE="change",e.ERROR="error"})(iFr||(iFr={}));var Ll;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Ll||(Ll={}));var WU;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(WU||(WU={}));var aFA=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let _=Date.now(),O=_-c,E=_-u,P=O>=t||E>=o;return[_,P]},p=_=>{if(u=_,!s)return;let O=s;s=void 0,e.apply(void 0,O)},m=()=>{b(0)},f=()=>{a&&(m(),p(Date.now()))},h=_=>{if(u=_,n)return p(_)},g=_=>{if(i&&s)return p(_);s=void 0},y=()=>{a=void 0;let[_,O]=l();return O?g(_):A(_)},A=_=>{let O=_-c,E=_-u,P=t-O,x=o-E,I=Math.min(P,x);return b(I)},b=_=>{a&&clearTimeout(a),!(_<=0)&&(a=setTimeout(y,_))},v=(..._)=>{let[O,E]=l(),P=!!a;if(s=_,c=O,(E||!a)&&b(t),E)return P?p(O):h(O)};return v.cancel=m,v.flush=f,v},vzn=aFA;var gYs=He(require("fs"),1),Ezn=He(require("path"),1);var Ab=He(require("fs"),1),$z=require("util");var JVe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Vve=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var mYs=He(require("process"),1),k4l=mYs.default.getuid?!mYs.default.getuid():!1,z4l=1e4,Q5=()=>{};var oFr={isChangeErrorOk:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!k4l&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!oFr.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!oFr.isNodeError(e))throw e;if(!oFr.isChangeErrorOk(e))throw e}},Pj=oFr;var dYs=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=z4l,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()}}}}},Q4l=new dYs;var YVe=(e,t)=>function(n){return function i(...o){return Q4l.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(m=>setTimeout(m,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},XVe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var cFA={attempt:{chmod:JVe((0,$z.promisify)(Ab.default.chmod),Pj.onChangeError),chown:JVe((0,$z.promisify)(Ab.default.chown),Pj.onChangeError),close:JVe((0,$z.promisify)(Ab.default.close),Q5),fsync:JVe((0,$z.promisify)(Ab.default.fsync),Q5),mkdir:JVe((0,$z.promisify)(Ab.default.mkdir),Q5),realpath:JVe((0,$z.promisify)(Ab.default.realpath),Q5),stat:JVe((0,$z.promisify)(Ab.default.stat),Q5),unlink:JVe((0,$z.promisify)(Ab.default.unlink),Q5),chmodSync:Vve(Ab.default.chmodSync,Pj.onChangeError),chownSync:Vve(Ab.default.chownSync,Pj.onChangeError),closeSync:Vve(Ab.default.closeSync,Q5),existsSync:Vve(Ab.default.existsSync,Q5),fsyncSync:Vve(Ab.default.fsync,Q5),mkdirSync:Vve(Ab.default.mkdirSync,Q5),realpathSync:Vve(Ab.default.realpathSync,Q5),statSync:Vve(Ab.default.statSync,Q5),unlinkSync:Vve(Ab.default.unlinkSync,Q5)},retry:{close:YVe((0,$z.promisify)(Ab.default.close),Pj.isRetriableError),fsync:YVe((0,$z.promisify)(Ab.default.fsync),Pj.isRetriableError),open:YVe((0,$z.promisify)(Ab.default.open),Pj.isRetriableError),readFile:YVe((0,$z.promisify)(Ab.default.readFile),Pj.isRetriableError),rename:YVe((0,$z.promisify)(Ab.default.rename),Pj.isRetriableError),stat:YVe((0,$z.promisify)(Ab.default.stat),Pj.isRetriableError),write:YVe((0,$z.promisify)(Ab.default.write),Pj.isRetriableError),writeFile:YVe((0,$z.promisify)(Ab.default.writeFile),Pj.isRetriableError),closeSync:XVe(Ab.default.closeSync,Pj.isRetriableError),fsyncSync:XVe(Ab.default.fsyncSync,Pj.isRetriableError),openSync:XVe(Ab.default.openSync,Pj.isRetriableError),readFileSync:XVe(Ab.default.readFileSync,Pj.isRetriableError),renameSync:XVe(Ab.default.renameSync,Pj.isRetriableError),statSync:XVe(Ab.default.statSync,Pj.isRetriableError),writeSync:XVe(Ab.default.writeSync,Pj.isRetriableError),writeFileSync:XVe(Ab.default.writeFileSync,Pj.isRetriableError)}},M4l=cFA;var Ozn=He(require("fs"),1),sFr=He(require("path"),1);var hYs=()=>{};var uFA=()=>{let e=hYs,t=hYs,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}},V4l=uFA;var lFA=()=>{let{promise:e,resolve:t,isPending:r}=V4l(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},U4l=lFA;var L4l={then:e=>{e()}};var q4l=e=>Array.isArray(e)?e:[e],W4l=e=>typeof e=="function";var pFA=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=q4l(o).map(Z=>W4l(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}=U4l(),F=0,q=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.directories.push(X),Z.directoriesNames.add(Ne),l.push(X),p.add(Ne),m.propertyIsEnumerable(Ne)||(m[Ne]=[]),m[Ne].push(X),_.add(X),!(Se>=n)&&(F>=i||ee(X,Se+1)))},W=(Z,X,Ne)=>{_.has(X)||F>=i||(F+=1,Z.files.push(X),Z.filesNames.add(Ne),f.push(X),h.add(Ne),g.propertyIsEnumerable(Ne)||(g[Ne]=[]),g[Ne].push(X),_.add(X))},$=(Z,X,Ne,Se)=>{_.has(X)||F>=i||(F+=1,Z.symlinks.push(X),Z.symlinksNames.add(Ne),y.push(X),A.add(Ne),b.propertyIsEnumerable(Ne)||(b[Ne]=[]),b[Ne].push(X),_.add(X),r&&(Se>=n||F>=i||We(X,Se+1)))},re=(Z,X,Ne,Se,Je)=>{c.aborted||a(X)||(Se.isDirectory()?q(Z,X,Ne,Je):Se.isFile()?W(Z,X,Ne):Se.isSymbolicLink()&&$(Z,X,Ne,Je))},ce=(Z,X,Ne,Se)=>{if(c.aborted)return;let Je=X===sFr.default.sep?"":sFr.default.sep,Ye=Ne.name,_e=`${X}${Je}${Ye}`;a(_e)||(Ne.isDirectory()?q(Z,_e,Ye,Se):Ne.isFile()?W(Z,_e,Ye):Ne.isSymbolicLink()&&$(Z,_e,Ye,Se))},G=(Z,X,Ne,Se)=>{for(let Je=0,Ye=Ne.length;Je<Ye;Je++)ce(Z,X,Ne[Je],Se)},ee=(Z,X)=>{c.aborted||X>n||F>=i||(x(),Ozn.default.readdir(Z,{withFileTypes:!0},(Ne,Se)=>{if(Ne||c.aborted||!Se.length)return I();(u(Se)||L4l).then(()=>{let Ye=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};G(Ye,Z,Se,X),I()})}))},We=(Z,X)=>{x(),Ozn.default.realpath(Z,(Ne,Se)=>{if(Ne||c.aborted)return I();Ozn.default.stat(Se,(Je,Ye)=>{if(Je||c.aborted)return I();let _e=sFr.default.basename(Se),ge=v[Z]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};re(ge,Se,_e,Ye,X),I()})})};return(async(Z,X=1)=>(Z=sFr.default.normalize(Z),_.add(Z),ee(Z,X),await P,c.aborted?O:E))(e)},G4l=pFA;var Uve={lang:{debounce:vzn,attempt:e=>{try{return e()}catch(t){return Uve.lang.castError(t)}},castArray:e=>Uve.lang.isArray(e)?e:[e],castError:e=>Uve.lang.isError(e)?e:Uve.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(Uve.lang.isNaN(e))return Uve.lang.isNaN(t);if(Uve.lang.isPrimitive(e)||Uve.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(Ezn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?gYs.default.realpathSync.native(e):gYs.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Ezn.default.sep&&t.length-e.length>Ezn.default.sep.length,poll:(e,t=N4l)=>M4l.retry.stat(t)(e,{bigint:!0}).catch(Uve.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await G4l(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},th=Uve;var wzn=He(require("path"),1);var yYs=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=D4l){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=th.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Ll.CHANGE&&a===Ll.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Ll.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Ll.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),s=this.options.limit??nFr,[a,c]=await th.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())th.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Ll.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!QHe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Ll.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Ll.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(wzn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(wzn.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Ll.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Ll.ADD?this.onTargetAdd(n):r===Ll.ADD_DIR?this.onTargetAddDir(n):r===Ll.CHANGE?this.onTargetChange(n):r===Ll.UNLINK?this.onTargetUnlink(n):r===Ll.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=REt.CHANGE,r){if(this.watcher.isClosed())return;let n=wzn.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){pYs&&t.code==="EPERM"?this.onWatcherChange(REt.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(iFr.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(iFr.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(REt.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&QHe&&this.options.native!==!1?this.options.depth??zHe:Math.min(1,this.options.depth??zHe),n=this.options.limit??nFr,[i,o]=await th.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(REt.CHANGE,a,t)}))}}},H4l=yYs;var GU={interval:100,intervalId:void 0,fns:new Map,init:()=>{GU.intervalId||(GU.intervalId=setInterval(GU.resolve,GU.interval))},reset:()=>{GU.intervalId&&(clearInterval(GU.intervalId),delete GU.intervalId)},add:(e,t)=>{GU.fns.set(e,Date.now()+t),GU.init()},remove:e=>{GU.fns.delete(e)},resolve:()=>{if(!GU.fns.size)return GU.reset();let e=Date.now();for(let[t,r]of GU.fns)r>=e||(GU.remove(t),t())}},aFr=GU;var cFr=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=fYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,m=>m!==i);if(p&&p!==i){if(th.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),aFr.remove(u)},u=()=>{c(),a()};aFr.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let m=p();i===m?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,m,i)};s.add.set(n,l),l()}getLockUnlink(t,r=fYs){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),aFr.remove(u)},u=()=>{c(),a()};aFr.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD,Mve.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Ll.ADD_DIR,Mve.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK,Mve.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Ll.UNLINK_DIR,Mve.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};cFr.DIR_EVENTS={add:Ll.ADD_DIR,rename:Ll.RENAME_DIR,unlink:Ll.UNLINK_DIR};cFr.FILE_EVENTS={add:Ll.ADD,change:Ll.CHANGE,rename:Ll.RENAME,unlink:Ll.UNLINK};var $4l=cFr;var AYs=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}},bYs=AYs;var _Ys=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}},K4l=_Ys;var vYs=class{constructor(){this.inos={},this.paths=new bYs,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 K4l(n)}reset(){this.inos={},this.paths=new bYs,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Ll.ADD,i),[Ll.ADD];if(i.isDirectory())return this.updateIno(t,Ll.ADD_DIR,i),[Ll.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Ll.UNLINK,n),[Ll.UNLINK];if(n.isDirectory())return this.updateIno(t,Ll.UNLINK_DIR,n),[Ll.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Ll.CHANGE,i),[Ll.CHANGE]);if(i.isDirectory())return this.updateIno(t,Ll.UNLINK,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK,Ll.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD,i),[Ll.UNLINK_DIR,Ll.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Ll.UNLINK_DIR,n),this.updateIno(t,Ll.ADD_DIR,i),[Ll.UNLINK_DIR,Ll.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Mve.FILE:Mve.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},OYs=vYs;var EYs=class e extends J4l.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 $4l(this),this._roots=new Set,this._poller=new OYs,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 H4l(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=th.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=FEt.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??zHe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&QHe&&l.options.native!==!1)))return!0;if(!QHe)break;let u=FEt.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=th.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||QHe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:xzn.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},h=FEt.default.dirname(a),g=a;await this.watchDirectories([h],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||QHe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zHe,a=r.limit??nFr,[c]=await th.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=th.fs.getDepth(t);for(let p of c){let m=th.fs.getDepth(p),f=Math.max(0,s-(m-l)),h={...r,depth:f};await this.watchDirectories([p],h,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(WU.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(WU.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=FEt.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new OYs,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??F4l},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(WU.CLOSE,a),xzn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(WU.CLOSE,a),xzn.default.unwatchFile(t,n)};return th.lang.attempt(s),()=>th.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=th.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!th.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=FEt.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await th.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=FEt.default.dirname(t);return(await th.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=th.lang.noop){if(th.lang.isFunction(t))return this.watch([],{},t);if(th.lang.isUndefined(t))return this.watch([],r,n);if(th.lang.isFunction(r))return this.watch(t,{},r);if(th.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=th.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==th.lang.noop&&this.on(WU.ALL,n),r.readdirMap=void 0,this.ready())}},Pzn=EYs;Mzn();Ir();var j5t=require("fs/promises"),rql=require("os"),nql=He(require("path"),1),RNA=".fern",FNA="logs";function NNA(){return"cli@3.91.3"}var VEt=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=It(vr.of((0,rql.homedir)()),Ze.of(RNA)),r=It(t,Ze.of(FNA));await qr(r)||await(0,j5t.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=It(r,Ze.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${nql.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
2129
2129
|
`);await(0,j5t.writeFile)(this.logFilePath,o,"utf-8"),this.initialized=!0}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
|
|
2130
2130
|
`;try{await(0,j5t.appendFile)(this.logFilePath,r,"utf-8")}catch{}}async logFrontendMetrics(t){let r={timestamp:t.timestamp,source:t.source,level:t.level,eventType:this.getEventType(t.payload,t.isAggregate),isAggregate:t.isAggregate,data:t.payload};await this.writeEntry(r)}async logCliMetric(t,r="info"){let n={timestamp:t.timestamp,source:NNA(),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 WYs={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function iql(e){let t=kNA();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:WYs});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",...WYs}});let p=/^\/_local\/(.*)/.exec(l.pathname);return c.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:WYs}):new Response("Not Found",{status:404})},websocket:{open(c){let{connectionId:u}=c.data,l=setInterval(()=>{let p=o.get(c);if(!p)return;let m=Date.now();if(m-p.lastPong>9e4){c.close();return}try{c.send(JSON.stringify({type:"ping",timestamp:m}))}catch{c.close()}},3e4);o.set(c,{pingInterval:l,lastPong:Date.now()});try{c.send(JSON.stringify({type:"connected",connectionId:u}))}catch{}},message(c,u){try{let l=JSON.parse(u.toString());if(l.type==="pong"){let p=o.get(c);p&&(p.lastPong=Date.now())}else VEt.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(c){let u=o.get(c);u&&(clearInterval(u.pingInterval),o.delete(c))}}});return{sendData:s,stop:c=>a.stop(c)}}function kNA(){return globalThis.Bun}Ir();var IZs=He(eXs(),1),r9l=He(hZs(),1),M5=require("fs/promises"),n9l=require("os"),i9l=He(sR(),1),o9l=He(e9l(),1),Y2n=process.platform==="win32",PZs=at.cyan("[docs]:"),mMA="etag",dMA=23,t9l=e=>e.padEnd(dMA," "),hMA="preview",gMA="app-preview",yMA="bundle",AMA=".next",bMA="standalone",_MA=".fern",vMA="packages/fern-docs/bundle/.next/server/instrumentation.js",OMA=".npmrc",EMA=".pnpmfile.cjs",wMA="pnpm-workspace.yaml",xMA='Cannot find matching keyid: {"signatures":';function PMA(){return It(vr.of((0,n9l.homedir)()),Ze.of(_MA))}function $5t({app:e=!1}){return It(PMA(),Ze.of(e?gMA:hMA))}function YHe({app:e=!1}){return It($5t({app:e}),Ze.of(e?AMA:yMA))}function VFr({app:e=!1}){return It(YHe({app:e}),Ze.of(bMA))}function IMA({app:e=!1}){return It(VFr({app:e}),Ze.of(vMA))}function CMA({app:e=!1}){return It(VFr({app:e}),Ze.of(wMA))}function SMA({app:e=!1}){return It(VFr({app:e}),Ze.of(EMA))}function jMA({app:e=!1}){return It(VFr({app:e}),Ze.of(OMA))}function JEt(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function BMA({app:e=!1}){return It($5t({app:e}),Ze.of(mMA))}var TMA=`module.exports = {
|
|
2131
2131
|
hooks: {
|
|
@@ -2926,7 +2926,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
2926
2926
|
Run ${at.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
2927
2927
|
Run ${at.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),X2t(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function eOc({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!IMd(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,c)=>a.generatorName.localeCompare(c.generatorName)||a.currentVersion.localeCompare(c.currentVersion));for(let a of s)i+=`
|
|
2928
2928
|
${await Zxx(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+at.dim(a.currentVersion)+at.reset(" \u2192 ")+at.green(a.latestVersion);return i+=`
|
|
2929
|
-
`,n?X2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Zxx(e){let r=await new PMd.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 ePx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=G0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=G0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await VG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await GG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?qR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function jMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=_5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function CJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await ePx({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(...jMd(u,c,t.logger));else s.push(...jMd(a.versions,void 0,t.logger))}return s}async function Jht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:KSr(e.packageName,{version:t?"prerelease":"latest"})}var BMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],SJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new S_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.91.
|
|
2929
|
+
`,n?X2t(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Zxx(e){let r=await new PMd.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 ePx({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let m=G0t(l.name);if(m==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VG({generatorName:m,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=G0t(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let m=await VG({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});m!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:m})},generatorFilter:r,groupFilter:n}),s}async function SMd({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await GG({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?qR(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function jMd(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c=_5(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function CJo({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await ePx({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(...jMd(u,c,t.logger));else s.push(...jMd(a.versions,void 0,t.logger))}return s}async function Jht({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:KSr(e.packageName,{version:t?"prerelease":"latest"})}var BMd=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],SJo=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Ji.Info;isLocal;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new S_t(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.91.3"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${at.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new nx}failWithoutThrowing(t,r){this.didSucceed=!1,dIr({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await V2t()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await CMd({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
2930
2930
|
`)||(r+=`
|
|
2931
2931
|
`),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=DAs(t.map(n=>n.type==="docs"?"docs":n.workspaceName??"api"),n=>n.length);r!=null&&(this.longestWorkspaceName=r)}project;registerProject(t){this.project=t}runTask(t){return this.runTaskWithInit(this.constructTaskInit(),t)}addTask(){return this.addTaskWithInit(this.constructTaskInit())}async runTaskForWorkspace(t,r){await this.runTaskWithInit(this.constructTaskInitForWorkspace(t),r)}addTaskWithInit(t){let r=new u5r(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw o.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,o),new nx}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await V2t()).sendEvent(t)}logger=XV((t,...r)=>this.log(t,...r));stderr=XV((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=TMd(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?TMd(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=BMd[this.numTasks++%BMd.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 Jht({cliEnvironment:this.environment,includePreReleases:t}),n=_5(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await CJo({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await X0c({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(`
|
|
2932
2932
|
Cancelled by user.`),new nx):n}}async getInput(t){return await K0c({message:t.message,default:t.default})}};function TMd(e){return`[${e}]:`}Ir();var DMd=require("fs/promises");async function tOc({context:e,nameOverride:t,...r}){let n=await TP(t);return n==null?e.failAndThrow(`Directory "${t??Bw}" not found.`):await RMd({absolutePathToFernDirectory:n,context:e,nameOverride:t,...r})}async function RMd({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(ZVt))),qr(It(e,Ze.of(ljr))),qr(It(e,Ze.of(I2s)))]);(a||c||u||l||p||m)&&(s=await FMd({cliName:t,fernDirectory:e,cliVersion:r,context:o,commandLineApiWorkspace:n,defaultToAllApiWorkspaces:i}));let f=await Cpc({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:
|
|
@@ -3024,7 +3024,7 @@ Found ${c.length} preview deployment(s):
|
|
|
3024
3024
|
`));for(let u of c){let l=new Date(u.updatedAt).toLocaleString();i.logger.info(` ${at.cyan(u.url)}`),i.logger.info(` Organization: ${u.organizationId}`),i.logger.info(` Updated: ${l}
|
|
3025
3025
|
`)}})}var bqd=require("fs/promises");var mqd=Symbol.for("immer-nothing"),aqd=Symbol.for("immer-draftable"),e$=Symbol.for("immer-state"),Zjx=process.env.NODE_ENV!=="production"?[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},"This object has been frozen and should not be mutated",function(e){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function(e){return`'original' expects a draft, got: ${e}`}]:[];function M9(e,...t){if(process.env.NODE_ENV!=="production"){let r=Zjx[e],n=typeof r=="function"?r.apply(null,t):r;throw new Error(`[Immer] ${n}`)}throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var v5r=Object.getPrototypeOf;function NAr(e){return!!e&&!!e[e$]}function j1t(e){return e?dqd(e)||Array.isArray(e)||!!e[aqd]||!!e.constructor?.[aqd]||w5r(e)||PYo(e):!1}var eBx=Object.prototype.constructor.toString(),cqd=new WeakMap;function dqd(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=cqd.get(r);return n===void 0&&(n=Function.toString.call(r),cqd.set(r,n)),n===eBx}function OYo(e,t,r=!0){xYo(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function xYo(e){let t=e[e$];return t?t.type_:Array.isArray(e)?1:w5r(e)?2:PYo(e)?3:0}function OEc(e,t){return xYo(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function hqd(e,t,r){let n=xYo(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function tBx(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function w5r(e){return e instanceof Map}function PYo(e){return e instanceof Set}function S1t(e){return e.copy_||e.base_}function EEc(e,t){if(w5r(e))return new Map(e);if(PYo(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=dqd(e);if(t===!0||t==="class_only"&&!r){let n=Object.getOwnPropertyDescriptors(e);delete n[e$];let i=Reflect.ownKeys(n);for(let o=0;o<i.length;o++){let s=i[o],a=n[s];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(n[s]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[s]})}return Object.create(v5r(e),n)}else{let n=v5r(e);if(n!==null&&r)return{...e};let i=Object.create(n);return Object.assign(i,e)}}function CEc(e,t=!1){return IYo(e)||NAr(e)||!j1t(e)||(xYo(e)>1&&Object.defineProperties(e,{set:vYo,add:vYo,clear:vYo,delete:vYo}),Object.freeze(e),t&&Object.values(e).forEach(r=>CEc(r,!0))),e}function rBx(){M9(2)}var vYo={value:rBx};function IYo(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var nBx={};function B1t(e){let t=nBx[e];return t||M9(0,e),t}var O5r;function gqd(){return O5r}function iBx(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function uqd(e,t){t&&(B1t("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function wEc(e){xEc(e),e.drafts_.forEach(oBx),e.drafts_=null}function xEc(e){e===O5r&&(O5r=e.parent_)}function lqd(e){return O5r=iBx(O5r,e)}function oBx(e){let t=e[e$];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function pqd(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];return e!==void 0&&e!==r?(r[e$].modified_&&(wEc(t),M9(4)),j1t(e)&&(e=EYo(t,e),t.parent_||wYo(t,e)),t.patches_&&B1t("Patches").generateReplacementPatches_(r[e$].base_,e,t.patches_,t.inversePatches_)):e=EYo(t,r,[]),wEc(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==mqd?e:void 0}function EYo(e,t,r){if(IYo(t))return t;let n=e.immer_.shouldUseStrictIteration(),i=t[e$];if(!i)return OYo(t,(o,s)=>fqd(e,i,t,o,s,r),n),t;if(i.scope_!==e)return t;if(!i.modified_)return wYo(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;let o=i.copy_,s=o,a=!1;i.type_===3&&(s=new Set(o),o.clear(),a=!0),OYo(s,(c,u)=>fqd(e,i,o,c,u,r,a),n),wYo(e,o,!1),r&&e.patches_&&B1t("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function fqd(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;let a=IYo(i);if(!(a&&!s)){if(process.env.NODE_ENV!=="production"&&i===r&&M9(5),NAr(i)){let c=o&&t&&t.type_!==3&&!OEc(t.assigned_,n)?o.concat(n):void 0,u=EYo(e,i,c);if(hqd(r,n,u),NAr(u))e.canAutoFreeze_=!1;else return}else s&&r.add(i);if(j1t(i)&&!a){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&a)return;EYo(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(w5r(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&wYo(e,i)}}}function wYo(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&CEc(t,r)}function sBx(e,t){let r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:gqd(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},i=n,o=SEc;r&&(i=[n],o=E5r);let{revoke:s,proxy:a}=Proxy.revocable(i,o);return n.draft_=a,n.revoke_=s,a}var SEc={get(e,t){if(t===e$)return e;let r=S1t(e);if(!OEc(r,t))return aBx(e,r,t);let n=r[t];return e.finalized_||!j1t(n)?n:n===_Ec(e.base_,t)?(vEc(e),e.copy_[t]=IEc(n,e)):n},has(e,t){return t in S1t(e)},ownKeys(e){return Reflect.ownKeys(S1t(e))},set(e,t,r){let n=yqd(S1t(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let i=_Ec(S1t(e),t),o=i?.[e$];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(tBx(r,i)&&(r!==void 0||OEc(e.base_,t)))return!0;vEc(e),PEc(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return _Ec(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,vEc(e),PEc(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=S1t(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){M9(11)},getPrototypeOf(e){return v5r(e.base_)},setPrototypeOf(){M9(12)}},E5r={};OYo(SEc,(e,t)=>{E5r[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});E5r.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&M9(13),E5r.set.call(this,e,t,void 0)};E5r.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&M9(14),SEc.set.call(this,e[0],t,r,e[0])};function _Ec(e,t){let r=e[e$];return(r?S1t(r):e)[t]}function aBx(e,t,r){let n=yqd(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function yqd(e,t){if(!(t in e))return;let r=v5r(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=v5r(r)}}function PEc(e){e.modified_||(e.modified_=!0,e.parent_&&PEc(e.parent_))}function vEc(e){e.copy_||(e.copy_=EEc(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var cBx=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){let o=r;r=t;let s=this;return function(c=o,...u){return s.produce(c,l=>r.call(this,l,...u))}}typeof r!="function"&&M9(6),n!==void 0&&typeof n!="function"&&M9(7);let i;if(j1t(t)){let o=lqd(this),s=IEc(t,void 0),a=!0;try{i=r(s),a=!1}finally{a?wEc(o):xEc(o)}return uqd(o,n),pqd(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===mqd&&(i=void 0),this.autoFreeze_&&CEc(i,!0),n){let o=[],s=[];B1t("Patches").generateReplacementPatches_(t,i,o,s),n(o,s)}return i}else M9(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(s,...a)=>this.produceWithPatches(s,c=>t(c,...a));let n,i;return[this.produce(t,r,(s,a)=>{n=s,i=a}),n,i]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){j1t(e)||M9(8),NAr(e)&&(e=uBx(e));let t=lqd(this),r=IEc(e,void 0);return r[e$].isManual_=!0,xEc(t),r}finishDraft(e,t){let r=e&&e[e$];(!r||!r.isManual_)&&M9(9);let{scope_:n}=r;return uqd(n,t),pqd(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));let n=B1t("Patches").applyPatches_;return NAr(e)?n(e,t):this.produce(e,i=>n(i,t))}};function IEc(e,t){let r=w5r(e)?B1t("MapSet").proxyMap_(e,t):PYo(e)?B1t("MapSet").proxySet_(e,t):sBx(e,t);return(t?t.scope_:gqd()).drafts_.push(r),r}function uBx(e){return NAr(e)||M9(10,e),Aqd(e)}function Aqd(e){if(!j1t(e)||IYo(e))return e;let t=e[e$],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=EEc(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=EEc(e,!0);return OYo(r,(i,o)=>{hqd(r,i,Aqd(o))},n),t&&(t.finalized_=!1),r}var lBx=new cBx,CYo=lBx.produce;function pBx(e){return e.endsWith(`
|
|
3026
3026
|
`)?e:e+`
|
|
3027
|
-
`}async function _qd({cliContext:e,targetVersion:t}){if(!t)return e.failAndThrow("Please specify a version to downgrade to using --version");let r=await TP();if(r==null)return e.failAndThrow(`Directory "${Bw}" not found.`);let n=await e.runTask(o=>MG({directory:r,context:o})),i=CYo(n.rawConfig,o=>{o.version=t});await(0,bqd.writeFile)(n._absolutePath,pBx(JSON.stringify(i,void 0,2))),e.logger.info(`Updated ${iS} to version ${t}`)}Ir();var DYo=require("fs/promises");pr();Ni();var T1t=He(zDn(),1),Eqd=He(Jy(),1);jAs();function vqd(e,t){let r=e.shape,n=e.docs??void 0;return{openApiSchema:Dl._visit(r,{alias:o=>fBx({aliasTypeDeclaration:o,docs:n}),enum:o=>mBx({enumTypeDeclaration:o,docs:n}),object:o=>{let s=e.userProvidedExamples[0],a=s==null?ABx(t,e.name):void 0,c=s==null&&a==null?bBx(t,e.name):void 0;return jYo({properties:o.properties.map(u=>{let l;return s!=null&&s.shape.type==="object"?l=s.shape.properties.find(p=>p.name.wireValue===u.name.wireValue):a!=null?a.type==="reference"&&a.shape.type==="named"&&a.shape.shape.type==="object"&&(l=a.shape.shape.properties.find(p=>p.name.wireValue===u.name.wireValue)):c!=null&&c.type==="body"&&c.value?.shape.type==="named"&&c.value.shape.shape.type==="object"&&(l=c.value.shape.shape.properties.find(p=>p.name.wireValue===u.name.wireValue)),{docs:u.docs??void 0,name:u.name,valueType:u.valueType,example:l}}),extensions:o.extends,docs:n})},union:o=>dBx({unionTypeDeclaration:o,docs:n}),undiscriminatedUnion:o=>hBx({undiscriminatedUnionDeclaration:o,docs:n}),_other:()=>{throw new Error("Encountered unknown type: "+r.type)}}),schemaName:Oqd(e.name)}}function fBx({aliasTypeDeclaration:e,docs:t}){return{...aB(e.aliasOf),description:t}}function mBx({enumTypeDeclaration:e,docs:t}){return{type:"string",enum:e.values.map(r=>r.name.wireValue),description:t}}function dBx({unionTypeDeclaration:e,docs:t}){let n={oneOf:e.types.map(i=>{let o={[e.discriminant.wireValue]:{type:"string",enum:[i.discriminantValue.wireValue]}};return OR._visit(i.shape,{noProperties:()=>({type:"object",properties:o,required:[e.discriminant.wireValue]}),singleProperty:s=>({type:"object",properties:{...o,[s.name.wireValue]:aB(s.type)},required:[e.discriminant.wireValue]}),samePropertiesAsObject:s=>({type:"object",allOf:[{type:"object",properties:o},{$ref:SYo(s)}],required:[e.discriminant.wireValue]}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+i.shape.propertiesType)}})}),description:t};return e.baseProperties.length>0&&(n.properties=e.baseProperties.reduce((i,o)=>(i[o.name.wireValue]={description:o.docs??void 0,...aB(o.valueType)},o.valueType.type==="container"&&o.valueType.container.type==="optional"||(n.required=[...n.required??[],o.name.wireValue]),i),{})),n}function hBx({undiscriminatedUnionDeclaration:e,docs:t}){return{oneOf:e.members.map(r=>({description:r.docs??void 0,...aB(r.type)})),description:t}}function aB(e){return Tn._visit(e,{container:t=>yBx(t),named:t=>({$ref:SYo(t)}),primitive:t=>gBx(t),unknown:()=>({}),_other:()=>{throw new Error("Encountered unknown typeReference: "+e.type)}})}function gBx(e){return e.v2==null?Wa._visit(e.v1,{boolean:()=>({type:"boolean"}),dateTime:()=>({type:"string",format:"date-time"}),double:()=>({type:"number",format:"double"}),integer:()=>({type:"integer"}),long:()=>({type:"integer",format:"int64"}),string:()=>({type:"string"}),uuid:()=>({type:"string",format:"uuid"}),date:()=>({type:"string",format:"date"}),base64:()=>({type:"string",format:"byte"}),uint:()=>({type:"integer",format:"int64"}),uint64:()=>({type:"integer",format:"int64"}),float:()=>({type:"number",format:"float"}),bigInteger:()=>({type:"integer",format:"bigint"}),dateTimeRfc2822:()=>({type:"string",format:"date-time-rfc-2822"}),_other:()=>{throw new Error("Encountered unknown primitiveType: "+e.v1)}})??{}:Wi._visit(e.v2,{boolean:()=>({type:"boolean"}),dateTime:()=>({type:"string",format:"date-time"}),double:()=>({type:"number",format:"double"}),integer:()=>({type:"integer"}),long:()=>({type:"integer",format:"int64"}),string:t=>{let r={type:"string"};return t.validation?.format!=null&&(r.format=t.validation.format),t.validation?.pattern!=null&&(r.pattern=t.validation.pattern),r},uuid:()=>({type:"string",format:"uuid"}),date:()=>({type:"string",format:"date"}),base64:()=>({type:"string",format:"byte"}),uint:()=>({type:"integer",format:"int64"}),uint64:()=>({type:"integer",format:"int64"}),float:()=>({type:"number",format:"float"}),bigInteger:()=>({type:"integer",format:"bigint"}),dateTimeRfc2822:()=>({type:"string",format:"date-time-rfc-2822"}),_other:()=>{throw new Error("Encountered unknown primitiveType: "+e.v2)}})}function yBx(e){return iu._visit(e,{list:t=>({type:"array",items:aB(t)}),set:t=>({type:"array",items:aB(t)}),map:t=>t.keyType.type==="primitive"&&t.keyType.primitive.v1==="STRING"&&t.valueType.type==="unknown"?{type:"object",additionalProperties:!0}:{type:"object",additionalProperties:aB(t.valueType)},optional:t=>({...aB(t),nullable:!0}),nullable:t=>({...aB(t),nullable:!0}),literal:t=>t._visit({boolean:r=>({type:"boolean",const:r}),string:r=>({type:"string",const:r}),_other:()=>({})}),_other:()=>{throw new Error("Encountered unknown containerType: "+e.type)}})}function SYo(e){return`#/components/schemas/${Oqd(e)}`}function Oqd(e){return[...e.fernFilepath.packagePath.map(t=>t.originalName),e.name.originalName].join("")}function ABx(e,t){for(let r of Object.values(e.services))for(let n of r.endpoints)if(!(n.userSpecifiedExamples.length<=0)&&n.requestBody?.type==="reference"&&n.requestBody.requestBodyType.type==="named"&&_Bx(n.requestBody.requestBodyType,t))return n.userSpecifiedExamples[0]?.example?.request??void 0}function bBx(e,t){for(let r of Object.values(e.services))for(let n of r.endpoints)if(!(n.userSpecifiedExamples.length<=0||n.response?.body?.type!=="json")&&n.response.body.value.responseBodyType.type==="named"&&n.response.body.value.responseBodyType.typeId===t.typeId){let i=n.userSpecifiedExamples.find(o=>o.example?.response.type==="ok");if(i!=null&&i.example?.response.type==="ok")return i.example.response.value}}function _Bx(e,t){return JC(e.fernFilepath,t.fernFilepath)&&JC(e.name,t.name)}function jYo({docs:e,properties:t,extensions:r}){let n={},i=[];t.forEach(s=>{let a=aB(s.valueType),c;(s.example!=null&&s.valueType.type==="primitive"||s.example!=null&&s.valueType.type==="container"&&s.valueType.container.type==="list"&&s.valueType.container.list.type==="primitive")&&(c=s.example.value.jsonExample),n[s.name.wireValue]={...a,description:s.docs??void 0,example:c},s.valueType.type==="container"&&s.valueType.container.type==="optional"||i.push(s.name.wireValue)});let o={type:"object",description:e,properties:n};return i.length>0&&(o.required=i),r.length>0&&(o.allOf=r.map(s=>({$ref:SYo(s)}))),o}function wqd({ir:e,httpServices:t,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a}){let c={};return t.forEach(u=>{u.endpoints.forEach(l=>{let{fullPath:p,convertedHttpMethod:m,operationObject:f}=vBx({ir:e,httpEndpoint:l,httpService:u,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a}),h=c[p]??={};if(h[m]!=null)throw new Error(`Duplicate ${m} endpoint at ${p}`);h[m]=f})}),c}function vBx({httpEndpoint:e,httpService:t,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a,ir:c}){let u=(0,Eqd.default)(c.basePath!=null?BEc(c.basePath):"",BEc(t.basePath),BEc(e.path));u=u.startsWith("/")?u:`/${u}`;let l=OBx(e.method),p=c.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),m=t.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),f=e.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),h=e.queryParameters.map(v=>IBx({queryParameter:v,typesByName:r,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),g=e.headers.map(v=>CBx({httpHeader:v,typesByName:r,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),y=[...p,...m,...f,...h,...g],A=a==="stoplight"?t.displayName??t.name.fernFilepath.allParts.map(v=>v.originalName).join(" "):t.name.fernFilepath.allParts.map(v=>v.pascalCase.unsafeName).join(""),b={description:e.docs??void 0,operationId:[...t.name.fernFilepath.allParts.map(v=>v.camelCase.unsafeName),e.name.originalName].join("_"),tags:[A],parameters:y,responses:wBx({httpResponse:e.response,responseErrors:e.errors,errorsByName:n,errorDiscriminationStrategy:i,examples:e.userSpecifiedExamples.map(v=>v.example).filter(ru)??[]}),summary:e.displayName??void 0};if(e.baseUrl!=null){let v=e.baseUrl;if(s?.environments.type!=="multipleBaseUrls")throw new Error("baseUrl is defined environments are not multipleBaseUrls");b.servers=s.environments.environments.map(_=>{let O=_.urls[v];if(O==null)throw new Error("No URL defined for "+v);let E={url:O};return _.docs!=null&&(E.description=_.docs),E})}return e.auth&&(b.security=o),e.requestBody!=null&&(b.requestBody=EBx({httpRequest:e.requestBody,typesByName:r,examples:e.userSpecifiedExamples.map(v=>v.example).filter(ru)??[]})),{fullPath:u,convertedHttpMethod:l,operationObject:b}}function OBx(e){return Sw._visit(e,{get:()=>T1t.OpenAPIV3.HttpMethods.GET,post:()=>T1t.OpenAPIV3.HttpMethods.POST,put:()=>T1t.OpenAPIV3.HttpMethods.PUT,patch:()=>T1t.OpenAPIV3.HttpMethods.PATCH,delete:()=>T1t.OpenAPIV3.HttpMethods.DELETE,head:()=>T1t.OpenAPIV3.HttpMethods.HEAD,_other:()=>{throw new Error("Encountered unknown http method: "+e)}})}function EBx({httpRequest:e,typesByName:t,examples:r}){let n={};for(let i of r)i.request!=null&&(i.name&&i.name.originalName!==""?n[i.name.originalName]={value:i.request.jsonExample}:n[`Example${V0(n)+1}`]={value:i.request.jsonExample});return Gb._visit(e,{inlinedRequestBody:i=>{let o={schema:jYo({docs:void 0,properties:i.properties.map(s=>{let a;return r.length>0&&r[0]?.request?.type==="inlinedRequestBody"&&(a=r[0]?.request.properties.find(c=>c.name.wireValue===s.name.wireValue)),{docs:s.docs??void 0,name:s.name,valueType:s.valueType,example:a}}),extensions:i.extends})};return V0(n)>0&&(o.examples=n),{required:!0,content:{"application/json":o}}},reference:i=>{let o={schema:aB(i.requestBodyType)};return V0(n)>0&&(o.examples=n),{description:i.docs??void 0,required:BYo({typeReference:i.requestBodyType,typesByName:t}),content:{"application/json":o}}},fileUpload:i=>({required:!0,content:{"multipart/form-data":{schema:{type:"object",properties:i.properties.reduce((o,s)=>(DB._visit(s,{file:a=>{o[a.key.wireValue]={type:"string",format:"binary"}},bodyProperty:a=>{o[a.name.wireValue]={description:a.docs??void 0,...aB(a.valueType)}},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+s.type)}}),{...o}),{})}}}}),bytes:i=>{let o=i.contentType??"application/octet-stream";return{required:!i.isOptional,description:i.docs??void 0,content:{[o]:{schema:{type:"string",format:"binary"}}}}},_other:()=>{throw new Error("Unknown HttpRequestBody type: "+e.type)}})}function wBx({httpResponse:e,responseErrors:t,errorsByName:r,errorDiscriminationStrategy:n,examples:i}){let o={};if(e?.body?.type==="json"){let s={schema:aB(e.body.value.responseBodyType)},a={};for(let c of i)c.response.type==="ok"&&c.response.value.type==="body"&&c.response.value.value!=null&&(c.name&&c.name.originalName!==""?a[c.name.originalName]={value:c.response.value.value.jsonExample}:a[`Example${V0(a)+1}`]={value:c.response.value.value.jsonExample});V0(a)>0&&(s.examples=a),o[String(e.statusCode??200)]={description:e.body.value.docs??"",content:{"application/json":s}}}else if(e?.body?.type==="fileDownload"||e?.body?.type==="bytes")o[String(e.statusCode??200)]={description:e.body.docs??"",content:{"application/octet-stream":{schema:{type:"string",format:"binary"}}}};else if(e?.body?.type==="text")o[String(e.statusCode??200)]={description:e.body.docs??"",content:{"text/plain":{schema:{type:"string"}}}};else if(e?.body?.type==="streaming"){let s=e.body.value,a;switch(s.type){case"sse":a="text/event-stream";break;case"json":a="application/jsonl";break;case"text":a="text/plain";break;default:a="application/octet-stream";break}o[String(e.statusCode??200)]={description:s.docs??"",content:{[a]:{schema:{type:"string",format:"binary"}}}}}else o[204]={description:""};return TG._visit(n,{statusCode:()=>{for(let s of t){let a=r[TYo(s.error)];if(a==null)throw new Error("Encountered undefined error declaration: "+s.error.name.originalName);let c={description:s.docs??""};if(a.type!=null){let u={schema:aB(a.type)},l={};for(let p of i)p.response.type==="error"&&p.response.body!=null&&JC(s.error,p.response.error)&&(p.name&&p.name.originalName!==""?l[p.name.originalName]={value:p.response.body.jsonExample}:l[`Example${V0(l)+1}`]={value:p.response.body.jsonExample});V0(l)>0&&(u.examples=l),c.content={"application/json":u}}o[a.statusCode]=c}},property:s=>{let a=PBx({responseErrors:t,errorsByName:r});for(let c of Object.keys(a)){let u=a[c];if(u==null||u.length===0)continue;let l={schema:{oneOf:u.map(m=>xBx({errorInfo:m,property:s}))}},p={};for(let m of i)if(m.response.type==="error"&&m.response.body!=null){let f=m.response.error;u.some(h=>JC(h.errorDeclaration.name,f))&&(m.name&&m.name.originalName!==""?p[m.name.originalName]={value:m.response.body.jsonExample}:p[`Example${V0(p)+1}`]={value:m.response.body.jsonExample})}V0(p)>0&&(l.examples=p),o[c]={description:"",content:{"application/json":l}}}},_other:()=>{throw new Error("Unknown error discrimination strategy: "+n.type)}}),o}function xBx({errorInfo:e,property:t}){let r=e.errorDeclaration.discriminantValue.wireValue,n=e.responseError.docs??void 0,i={[t.discriminant.wireValue]:{type:"string",enum:[r]}};return e.errorDeclaration.type!=null&&(i[t.contentProperty.wireValue]=aB(e.errorDeclaration.type)),{type:"object",description:n,properties:i}}function PBx({responseErrors:e,errorsByName:t}){let r={};for(let n of e){let i=t[TYo(n.error)];if(i==null)throw new Error("Encountered undefined error declaration: "+n.error.name.originalName);let o=i.statusCode,s=r[o];s==null?r[o]=[{responseError:n,errorDeclaration:i}]:s.push({responseError:n,errorDeclaration:i})}return r}function jEc({pathParameter:e,examples:t}){let r={name:e.name.originalName,in:"path",description:e.docs??void 0,required:!0,schema:aB(e.valueType)},n={};for(let i of t){let o=[...i.rootPathParameters,...i.servicePathParameters,...i.endpointPathParameters].find(s=>s.name.originalName===e.name.originalName);o!=null&&(i.name&&i.name.originalName!==""?n[i.name.originalName]={value:o.value.jsonExample}:n[`Example${V0(n)+1}`]={value:o.value.jsonExample},r.example==null&&(r.example=o.value.jsonExample))}return V0(n)>0&&(r.examples=n),r}function IBx({queryParameter:e,typesByName:t,examples:r}){let n={name:e.name.wireValue,in:"query",description:e.docs??void 0,required:BYo({typeReference:e.valueType,typesByName:t}),schema:e.allowMultiple?aB(Tn.container(iu.list(e.valueType))):aB(e.valueType)},i={};for(let o of r){let s=o.queryParameters.find(a=>a.name.wireValue===e.name.wireValue);s!=null&&(o.name&&o.name.originalName!==""?i[o.name.originalName]={value:s.value.jsonExample}:i[`Example${V0(i)+1}`]={value:s.value.jsonExample},n.example==null&&(n.example=s.value.jsonExample))}return V0(i)>0&&(n.examples=i),n}function CBx({httpHeader:e,typesByName:t,examples:r}){let n={name:e.name.wireValue,in:"header",description:e.docs??void 0,required:BYo({typeReference:e.valueType,typesByName:t}),schema:aB(e.valueType)},i={};for(let o of r){let s=[...o.serviceHeaders,...o.endpointHeaders].find(a=>a.name.wireValue===e.name.wireValue);s!=null&&(o.name&&o.name.originalName!==""?i[o.name.originalName]={value:s.value.jsonExample}:i[`Example${V0(i)+1}`]={value:s.value.jsonExample},n.example==null&&(n.example=s.value.jsonExample))}return V0(i)>0&&(n.examples=i),n}function BEc(e){let t=e.head;for(let r of e.parts)t+=`{${r.pathParameter}}${r.tail}`;return t}function BYo({typeReference:e,typesByName:t}){if(e.type==="container"&&e.container.type==="optional")return!1;if(e.type==="named"){let r=TEc(e),n=t[r];if(n==null)throw new Error("Encountered non-existent type: "+e.name.originalName);if(n.shape.type==="alias")return BYo({typeReference:n.shape.aliasOf,typesByName:t})}return!0}function xqd(e){return q1._visit(e.requirement,{all:()=>[e.schemes.reduce((t,r)=>({...t,[DEc(r)]:[]}),{})],any:()=>e.schemes.map(t=>({[DEc(t)]:[]})),endpointSecurity:()=>[],_other:()=>{throw new Error("Unknown auth scheme requirement: "+e.requirement)}})}function Pqd(e){let t={};for(let r of e.schemes){let n=bv._visit(r,{bearer:()=>({type:"http",scheme:"bearer"}),basic:()=>({type:"http",scheme:"basic"}),header:i=>({type:"apiKey",in:"header",name:i.name.wireValue}),oauth:()=>({type:"http",scheme:"bearer"}),inferred:()=>{},_other:()=>{throw new Error("Unknown auth scheme: "+r.type)}});n&&(t[DEc(r)]=n)}return t}function DEc(e){return bv._visit(e,{bearer:()=>"BearerAuth",inferred:()=>"InferredAuth",basic:()=>"BasicAuth",oauth:()=>"BearerAuth",header:t=>`${t.name.name.pascalCase.unsafeName}Auth`,_other:()=>{throw new Error("Unknown auth scheme: "+e.type)}})}function Iqd({apiName:e,ir:t,mode:r}){let n={},i={};Object.values(t.types).forEach(l=>{let p=vqd(l,t);n[p.schemaName]={title:p.schemaName,...p.openApiSchema},i[TEc(l.name)]=l});let o={};Object.values(t.errors).forEach(l=>{o[TYo(l.name)]=l});let s=xqd(t.auth),a=wqd({ir:t,httpServices:Object.values(t.services),typesByName:i,errorsByName:o,errorDiscriminationStrategy:t.errorDiscriminationStrategy,security:s,environments:t.environments??void 0,mode:r}),c={title:t.apiDisplayName??e,version:""};t.apiDocs!=null&&(c.description=t.apiDocs);let u={openapi:"3.0.1",info:c,paths:a,components:{schemas:n,securitySchemes:Pqd(t.auth)}};return t.environments!=null&&t.environments.environments.type==="singleBaseUrl"&&(u.servers=t.environments.environments.environments.map(l=>({url:l.url,description:l.docs!=null?`${l.name.originalName} (${l.docs})`:l.name.originalName}))),u}function TEc(e){return[...e.fernFilepath.allParts.map(t=>t.originalName),e.name.originalName].join("-")}function TYo(e){return[...e.fernFilepath.allParts.map(t=>t.originalName),e.name.originalName].join("-")}async function Cqd({project:e,cliContext:t,outputPath:r,indent:n}){await Promise.all(e.apiWorkspaces.map(async i=>{await t.runTaskForWorkspace(i,async o=>{let s=await i.toFernWorkspace({context:o}),a=Nw({workspace:s,audiences:{type:"all"},generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!0},readme:void 0,version:void 0,packageName:void 0,context:o,sourceResolver:new bE(o,s)}),c=Iqd({apiName:i.workspaceName??"api",ir:a,mode:"openapi"});await(0,DYo.mkdir)(ji(r),{recursive:!0}),await(0,DYo.writeFile)(r,r.endsWith(".json")?JSON.stringify(c,void 0,n):Bn.dump(c,{indent:n}))})}))}async function Sqd({project:e,cliContext:t,shouldFix:r}){await Promise.all(e.apiWorkspaces.map(async n=>{n instanceof yb||await t.runTaskForWorkspace(n,async i=>{await Dfc({workspace:await n.toFernWorkspace({context:i}),context:i,shouldFix:r})})}))}Ir();var jqd="group";var Bqd=".preview",Tqd="approved-output-directories",Dqd=".fern";Ir();var Qqd=require("fs/promises");Ir();var Fqd=require("fs/promises");Ir();var Rqd=require("os");function x5r(){return It(vr.of((0,Rqd.homedir)()),Ze.of(Dqd),Ze.of(Tqd))}async function Nqd(){let e=x5r();if(!await qr(e))return[];let r=await(0,Fqd.readFile)(e,{encoding:"utf-8"});return JSON.parse(r)}var RYo=require("fs/promises"),kqd=He(require("path"),1);async function zqd(e){await(0,RYo.mkdir)(kqd.default.dirname(x5r()),{recursive:!0}),await(0,RYo.writeFile)(x5r(),JSON.stringify(e,null,2))}async function Mqd(e,t,r){if(!e||eYr()||r)return{shouldProceed:!0};let n=await Nqd();return n?.includes(e)?{shouldProceed:!0}:await qr(e)?(await(0,Qqd.readdir)(e)).length===0?{shouldProceed:!0}:await t.confirmPrompt(`Directory ${e} contains existing files that may be overwritten. Continue?`,!1)?(await zqd([...n??[],e]),{shouldProceed:!0}):{shouldProceed:!1}:{shouldProceed:!0}}Ir();var $qd=He(AQe(),1);Ir();pr();async function Vqd({groups:e,visitor:t,nodePath:r,cliVersion:n}){if(e!=null)for(let[i,o]of Object.entries(e))await SBx({group:o,visitor:t,nodePath:[...r,i],cliVersion:n})}async function SBx({group:e,visitor:t,nodePath:r,cliVersion:n}){await Promise.all(e.generators.map(async(i,o)=>await t.generatorInvocation?.({invocation:i,cliVersion:n},[...r,"generators",o.toString(),i.name])))}async function Uqd(e,t,r){await r.file?.(e,[]),await Hce(e,{"auth-schemes":Ut,api:Ut,whitelabel:Ut,metadata:Ut,readme:Ut,"default-group":Ut,aliases:Ut,reviewers:Ut,openapi:Ut,"openapi-overrides":Ut,"spec-origin":Ut,"async-api":Ut,"api-settings":Ut,ai:Ut,autorelease:Ut,replay:Ut,groups:async n=>{await Vqd({groups:n,visitor:r,nodePath:["groups"],cliVersion:t})}})}function Lqd({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(o){let s=async(a,c)=>{for(let u of r){let l=u.generatorsYml?.[o];if(l!=null){let p=await l(a,{relativeFilepath:e,contents:t});n(p.map(m=>({severity:m.severity,relativeFilepath:e,nodePath:c,message:m.message})))}}};return{[o]:s}}return{...i("file"),...i("generatorInvocation")}}function jBx(e,t,r){if(!_5(r,t))return[{severity:"fatal",message:`The generator ${e} requires CLI version ${t} or later (current version: ${r}). Please run \`fern upgrade\` to upgrade your CLI version and use this generator.`}]}function BBx(e){return Number(e.replace("v",""))}var REc={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{if(t==null||t==="0.0.0")return[];let r=Z$r({token:void 0});console.debug(`[FDR] compatible-ir-versions: checking CLI release for version=${t}`);let n=await r.generators.cli.getCliRelease(t);if(!n.ok)return console.debug(`[FDR] compatible-ir-versions: getCliRelease failed for ${t}`,n),[];let i=n.body.irVersion;console.debug(`[FDR] compatible-ir-versions: CLI version=${t} has irVersion=${i}`);let o;if(e["ir-version"]!=null)o=BBx(e["ir-version"]);else{let a={...e,name:qR(e.name)},c=await zAt(a);if(console.debug(`[FDR] compatible-ir-versions: irVersion for ${a.name}@${a.version} = ${c}`),c==null)return console.debug(`[FDR] compatible-ir-versions: could not resolve irVersion for ${a.name}@${a.version}, skipping validation`),[];o=c}if(o<=i)return[];let s=await r.generators.cli.getMinCliForIr(o);return s.ok?jBx(e.name,s.body.version,t)??[]:[]}}})};var FEc={name:"valid-alias-group-references",create:async()=>({generatorsYml:{file:async e=>{let t=[],r=e.aliases,n=e.groups??{};if(r==null)return t;let i=new Set(Object.keys(n));for(let[o,s]of Object.entries(r))if(Array.isArray(s))for(let a of s)i.has(a)||t.push({severity:"error",message:`Alias "${o}" references unknown group "${a}". Available groups: ${[...i].join(", ")||"none"}`});return t}}})};function qqd(){return[REc,FEc]}async function FYo(e,t){return TBx({workspace:e,rules:qqd(),logger:t})}async function TBx({workspace:e,rules:t,logger:r}){let n=[],i=await Promise.all(t.map(o=>o.create({workspace:e,logger:r})));if(e.generatorsConfiguration?.rawConfiguration){let o=await DBx({contents:e.generatorsConfiguration.rawConfiguration,allRuleVisitors:i,cliVersion:e.cliVersion});n.push(...o)}return n}async function DBx({contents:e,allRuleVisitors:t,cliVersion:r}){let n=[],i=Lqd({relativeFilepath:Ze.of(Tw),contents:e,allRuleVisitors:t,addViolations:o=>{n.push(...o)}});return await Uqd(e,r,i),n}var NEc=He(Gqd(),1);async function Hqd({workspace:e,context:t,ossWorkspace:r}){(0,NEc.default)(e.definition.rootApiFile.contents.name).validForNewPackages||t.failAndThrow("API name is not valid.");let n=performance.now(),i=hOt(e,t.logger),o=await FYo(e,t.logger),s=[...i,...o];r&&s.push(...await O3t(r,t));let a=performance.now()-n,c=s.some(u=>u.severity==="fatal"||u.severity==="error");return{apiName:e.definition.rootApiFile.contents.name,violations:s,elapsedMillis:a,hasErrors:c}}async function zBx({workspace:e,context:t,logWarnings:r,logSummary:n=!0,ossWorkspace:i}){let o=performance.now(),s=hOt(e,t.logger),a=await FYo(e,t.logger),c=[...s,...a];i&&c.push(...await O3t(i,t));let u=performance.now()-o,{hasErrors:l}=IAr({violations:c,context:t,logWarnings:r,logSummary:n,elapsedMillis:u});return{hasErrors:l}}async function ngt({workspace:e,context:t,logWarnings:r,ossWorkspace:n}){(0,NEc.default)(e.definition.rootApiFile.contents.name).validForNewPackages||t.failAndThrow("API name is not valid.");let{hasErrors:i}=await zBx({workspace:e,context:t,logWarnings:r,ossWorkspace:n});i&&t.failAndThrow()}async function Kqd({organization:e,workspace:t,projectConfig:r,context:n,groupName:i,generatorName:o,version:s,shouldLogS3Url:a,token:c,useLocalDocker:u,keepDocker:l,absolutePathToPreview:p,mode:m,runner:f,inspect:h,lfsOverride:g,fernignorePath:y,dynamicIrOnly:A,noReplay:b}){if(t.generatorsConfiguration==null){n.logger.warn("This workspaces has no generators.yml");return}if(t.generatorsConfiguration.groups.length===0){n.logger.warn(`This workspace has no groups specified in ${Tw}`);return}let v=i??t.generatorsConfiguration.defaultGroup;if(v==null)return n.failAndThrow(`No group specified. Use the --${jqd} option, or set "${eUt}" in ${Tw}`);let _=QBx(v,t.generatorsConfiguration.groupAliases,t.generatorsConfiguration.groups.map(P=>P.groupName),n),{ai:O,replay:E}=t.generatorsConfiguration;if(!u&&!c)return n.failAndThrow("Please run fern login");await ngt({workspace:await t.toFernWorkspace({context:n}),context:n,logWarnings:!1,ossWorkspace:t instanceof yb?t:void 0}),await Promise.all(_.map(async P=>{let x=t.generatorsConfiguration?.groups.find(I=>I.groupName===P);if(x==null)return n.failAndThrow(`Group '${P}' does not exist.`);if(o!=null){let I=x.generators.filter(F=>F.name===o);if(I.length===0){let F=x.generators.map(q=>q.name);return n.failAndThrow(`Generator '${o}' not found in group '${P}'. Available generators: ${F.join(", ")}`)}x={...x,generators:I}}g!=null&&(x=MBx(x,g,n)),_.length>1&&n.logger.info(`Running generation for group '${P}'...`),u?await K6o({token:c,projectConfig:r,workspace:t,generatorGroup:x,version:s,keepDocker:l,context:n,runner:f,absolutePathToPreview:p,inspect:h,ai:O,replay:E,noReplay:b}):c!=null&&await uLr({projectConfig:r,organization:e,workspace:t,context:n,generatorGroup:x,version:s,shouldLogS3Url:a,token:c,whitelabel:t.generatorsConfiguration?.whitelabel,absolutePathToPreview:p,mode:m,fernignorePath:y,dynamicIrOnly:A})}))}function QBx(e,t,r,n){let i=t[e];if(i!=null){for(let a of i)r.includes(a)||n.failAndThrow(`Group alias '${e}' references non-existent group '${a}'. Available groups: ${r.join(", ")}`);return i}if(r.includes(e))return[e];let o=Object.keys(t),s=[...r,...o];return n.failAndThrow(`'${e}' is not a valid group or alias. Available groups: ${r.join(", ")}`+(o.length>0?`. Available aliases: ${o.join(", ")}`:"")),[]}function MBx(e,t,r){let n=vr.of(aa(xy(),t)),i={},o=[];for(let s of e.generators){let a=s.language??VBx(s.name),c;if(e.generators.length===1)c=n;else{let l=a||"unknown";i[l]==null&&(i[l]=0),i[l]++;let p=i[l]===1?l:`${l}-${i[l]}`;c=It(n,Ze.of(p))}let u={...s,outputMode:$qd.FernFiddle.remoteGen.OutputMode.downloadFiles({}),absolutePathToLocalOutput:c};o.push(u),r.logger.info(`Overriding output for generator '${s.name}' to local-file-system at: ${c}`)}return{...e,generators:o}}function VBx(e){return e.includes("typescript")||e.includes("ts")?"typescript":e.includes("python")||e.includes("py")?"python":e.includes("java")?"java":e.includes("go")?"go":e.includes("ruby")?"ruby":e.includes("csharp")||e.includes("c#")?"csharp":e.includes("swift")?"swift":e.includes("php")?"php":e.includes("rust")?"rust":e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}var Yqd={PullRequest:"pull-request"};async function kEc({project:e,cliContext:t,version:r,groupName:n,generatorName:i,shouldLogS3Url:o,keepDocker:s,useLocalDocker:a,preview:c,mode:u,force:l,runner:p,inspect:m,lfsOverride:f,fernignorePath:h,dynamicIrOnly:g,outputDir:y,noReplay:A}){let b;if(!a){let v=await t.runTask(async _=>CB(_));v.type==="user"&&await t.runTask(async _=>{await VV({organization:e.config.organization,token:v,context:_})}),b=v}for(let v of e.apiWorkspaces){let _=Jqd(n,v.generatorsConfiguration);for(let O of v.generatorsConfiguration?.groups.filter(E=>_==null||_.includes(E.groupName)).flatMap(E=>E.generators).filter(E=>i==null||E.name===i)??[]){let{shouldProceed:E}=await Mqd(O.absolutePathToLocalOutput,t,l);E||t.failAndThrow("Generation cancelled")}}await t.instrumentPostHogEvent({orgId:e.config.organization,command:"fern generate",properties:{workspaces:e.apiWorkspaces.map(v=>{let _=Jqd(n,v.generatorsConfiguration);return{name:v.workspaceName,group:n,generators:v.generatorsConfiguration?.groups.filter(O=>_==null||_.includes(O.groupName)).map(O=>O.generators.filter(E=>i==null||E.name===i).map(E=>({name:E.name,version:E.version,outputMode:E.outputMode.type,config:E.config})))}})}}),await Promise.all(e.apiWorkspaces.map(async v=>{await t.runTaskForWorkspace(v,async _=>{let O=c?y!=null?vr.of(aa(xy(),y)):It(v.absoluteFilePath,Ze.of(Bqd)):void 0;O!=null&&_.logger.info(`Writing preview to ${O}`),await Kqd({organization:e.config.organization,workspace:v,projectConfig:e.config,context:_,version:r,groupName:n,generatorName:i,shouldLogS3Url:o,token:b,useLocalDocker:a,keepDocker:s,absolutePathToPreview:O,mode:u,runner:p,inspect:m,lfsOverride:f,fernignorePath:h,dynamicIrOnly:g,noReplay:A})})}))}function Jqd(e,t){if(e==null)return null;if(t==null)return[e];let r=t.groupAliases[e];return r??[e]}function Xqd(){return!!(process.env.CI||process.env.CONTINUOUS_INTEGRATION||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.TRAVIS||process.env.JENKINS_URL||process.env.JENKINS_HOME||process.env.TF_BUILD||process.env.BUILDKITE||process.env.CODEBUILD_BUILD_ID||process.env.TEAMCITY_VERSION||process.env.BITBUCKET_BUILD_NUMBER||process.env.DRONE||process.env.SEMAPHORE||process.env.APPVEYOR||process.env.BUDDY_WORKSPACE_ID||process.env.WERCKER_RUN_ID)}async function Zqd({project:e,cliContext:t,instance:r,preview:n,brokenLinks:i,strictBrokenLinks:o,disableTemplates:s,noPrompt:a,skipUpload:c}){let u=e.docsWorkspaces;if(u==null){t.failAndThrow("No docs.yml file found. Please make sure your project has one.");return}let l=process.env.FERN_SELF_HOSTED==="true";if(!n&&!Xqd()&&!a){let m=r??u.config.instances[0]?.url,f=m?` (${at.cyan(`https://${m}`)})`:"";if(!await t.confirmPrompt(`This will affect a production site${f}. Run with --preview to generate docs for a preview instance.
|
|
3027
|
+
`}async function _qd({cliContext:e,targetVersion:t}){if(!t)return e.failAndThrow("Please specify a version to downgrade to using --version");let r=await TP();if(r==null)return e.failAndThrow(`Directory "${Bw}" not found.`);let n=await e.runTask(o=>MG({directory:r,context:o})),i=CYo(n.rawConfig,o=>{o.version=t});await(0,bqd.writeFile)(n._absolutePath,pBx(JSON.stringify(i,void 0,2))),e.logger.info(`Updated ${iS} to version ${t}`)}Ir();var DYo=require("fs/promises");pr();Ni();var T1t=He(zDn(),1),Eqd=He(Jy(),1);jAs();function vqd(e,t){let r=e.shape,n=e.docs??void 0;return{openApiSchema:Dl._visit(r,{alias:o=>fBx({aliasTypeDeclaration:o,docs:n}),enum:o=>mBx({enumTypeDeclaration:o,docs:n}),object:o=>{let s=e.userProvidedExamples[0],a=s==null?ABx(t,e.name):void 0,c=s==null&&a==null?bBx(t,e.name):void 0;return jYo({properties:o.properties.map(u=>{let l;return s!=null&&s.shape.type==="object"?l=s.shape.properties.find(p=>p.name.wireValue===u.name.wireValue):a!=null?a.type==="reference"&&a.shape.type==="named"&&a.shape.shape.type==="object"&&(l=a.shape.shape.properties.find(p=>p.name.wireValue===u.name.wireValue)):c!=null&&c.type==="body"&&c.value?.shape.type==="named"&&c.value.shape.shape.type==="object"&&(l=c.value.shape.shape.properties.find(p=>p.name.wireValue===u.name.wireValue)),{docs:u.docs??void 0,name:u.name,valueType:u.valueType,example:l}}),extensions:o.extends,docs:n})},union:o=>dBx({unionTypeDeclaration:o,docs:n}),undiscriminatedUnion:o=>hBx({undiscriminatedUnionDeclaration:o,docs:n}),_other:()=>{throw new Error("Encountered unknown type: "+r.type)}}),schemaName:Oqd(e.name)}}function fBx({aliasTypeDeclaration:e,docs:t}){return{...aB(e.aliasOf),description:t}}function mBx({enumTypeDeclaration:e,docs:t}){return{type:"string",enum:e.values.map(r=>r.name.wireValue),description:t}}function dBx({unionTypeDeclaration:e,docs:t}){let n={oneOf:e.types.map(i=>{let o={[e.discriminant.wireValue]:{type:"string",enum:[i.discriminantValue.wireValue]}};return OR._visit(i.shape,{noProperties:()=>({type:"object",properties:o,required:[e.discriminant.wireValue]}),singleProperty:s=>({type:"object",properties:{...o,[s.name.wireValue]:aB(s.type)},required:[e.discriminant.wireValue]}),samePropertiesAsObject:s=>({type:"object",allOf:[{type:"object",properties:o},{$ref:SYo(s)}],required:[e.discriminant.wireValue]}),_other:()=>{throw new Error("Unknown SingleUnionTypeProperties: "+i.shape.propertiesType)}})}),description:t};return e.baseProperties.length>0&&(n.properties=e.baseProperties.reduce((i,o)=>(i[o.name.wireValue]={description:o.docs??void 0,...aB(o.valueType)},o.valueType.type==="container"&&o.valueType.container.type==="optional"||(n.required=[...n.required??[],o.name.wireValue]),i),{})),n}function hBx({undiscriminatedUnionDeclaration:e,docs:t}){return{oneOf:e.members.map(r=>({description:r.docs??void 0,...aB(r.type)})),description:t}}function aB(e){return Tn._visit(e,{container:t=>yBx(t),named:t=>({$ref:SYo(t)}),primitive:t=>gBx(t),unknown:()=>({}),_other:()=>{throw new Error("Encountered unknown typeReference: "+e.type)}})}function gBx(e){return e.v2==null?Wa._visit(e.v1,{boolean:()=>({type:"boolean"}),dateTime:()=>({type:"string",format:"date-time"}),double:()=>({type:"number",format:"double"}),integer:()=>({type:"integer"}),long:()=>({type:"integer",format:"int64"}),string:()=>({type:"string"}),uuid:()=>({type:"string",format:"uuid"}),date:()=>({type:"string",format:"date"}),base64:()=>({type:"string",format:"byte"}),uint:()=>({type:"integer",format:"int64"}),uint64:()=>({type:"integer",format:"int64"}),float:()=>({type:"number",format:"float"}),bigInteger:()=>({type:"integer",format:"bigint"}),dateTimeRfc2822:()=>({type:"string",format:"date-time-rfc-2822"}),_other:()=>{throw new Error("Encountered unknown primitiveType: "+e.v1)}})??{}:Wi._visit(e.v2,{boolean:()=>({type:"boolean"}),dateTime:()=>({type:"string",format:"date-time"}),double:()=>({type:"number",format:"double"}),integer:()=>({type:"integer"}),long:()=>({type:"integer",format:"int64"}),string:t=>{let r={type:"string"};return t.validation?.format!=null&&(r.format=t.validation.format),t.validation?.pattern!=null&&(r.pattern=t.validation.pattern),r},uuid:()=>({type:"string",format:"uuid"}),date:()=>({type:"string",format:"date"}),base64:()=>({type:"string",format:"byte"}),uint:()=>({type:"integer",format:"int64"}),uint64:()=>({type:"integer",format:"int64"}),float:()=>({type:"number",format:"float"}),bigInteger:()=>({type:"integer",format:"bigint"}),dateTimeRfc2822:()=>({type:"string",format:"date-time-rfc-2822"}),_other:()=>{throw new Error("Encountered unknown primitiveType: "+e.v2)}})}function yBx(e){return iu._visit(e,{list:t=>({type:"array",items:aB(t)}),set:t=>({type:"array",items:aB(t)}),map:t=>t.keyType.type==="primitive"&&t.keyType.primitive.v1==="STRING"&&t.valueType.type==="unknown"?{type:"object",additionalProperties:!0}:{type:"object",additionalProperties:aB(t.valueType)},optional:t=>({...aB(t),nullable:!0}),nullable:t=>({...aB(t),nullable:!0}),literal:t=>t._visit({boolean:r=>({type:"boolean",const:r}),string:r=>({type:"string",const:r}),_other:()=>({})}),_other:()=>{throw new Error("Encountered unknown containerType: "+e.type)}})}function SYo(e){return`#/components/schemas/${Oqd(e)}`}function Oqd(e){return[...e.fernFilepath.packagePath.map(t=>t.originalName),e.name.originalName].join("")}function ABx(e,t){for(let r of Object.values(e.services))for(let n of r.endpoints)if(!(n.userSpecifiedExamples.length<=0)&&n.requestBody?.type==="reference"&&n.requestBody.requestBodyType.type==="named"&&_Bx(n.requestBody.requestBodyType,t))return n.userSpecifiedExamples[0]?.example?.request??void 0}function bBx(e,t){for(let r of Object.values(e.services))for(let n of r.endpoints)if(!(n.userSpecifiedExamples.length<=0||n.response?.body?.type!=="json")&&n.response.body.value.responseBodyType.type==="named"&&n.response.body.value.responseBodyType.typeId===t.typeId){let i=n.userSpecifiedExamples.find(o=>o.example?.response.type==="ok");if(i!=null&&i.example?.response.type==="ok")return i.example.response.value}}function _Bx(e,t){return JC(e.fernFilepath,t.fernFilepath)&&JC(e.name,t.name)}function jYo({docs:e,properties:t,extensions:r}){let n={},i=[];t.forEach(s=>{let a=aB(s.valueType),c;(s.example!=null&&s.valueType.type==="primitive"||s.example!=null&&s.valueType.type==="container"&&s.valueType.container.type==="list"&&s.valueType.container.list.type==="primitive")&&(c=s.example.value.jsonExample),n[s.name.wireValue]={...a,description:s.docs??void 0,example:c},s.valueType.type==="container"&&s.valueType.container.type==="optional"||i.push(s.name.wireValue)});let o={type:"object",description:e,properties:n};return i.length>0&&(o.required=i),r.length>0&&(o.allOf=r.map(s=>({$ref:SYo(s)}))),o}function wqd({ir:e,httpServices:t,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a}){let c={};return t.forEach(u=>{u.endpoints.forEach(l=>{let{fullPath:p,convertedHttpMethod:m,operationObject:f}=vBx({ir:e,httpEndpoint:l,httpService:u,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a}),h=c[p]??={};if(h[m]!=null)throw new Error(`Duplicate ${m} endpoint at ${p}`);h[m]=f})}),c}function vBx({httpEndpoint:e,httpService:t,typesByName:r,errorsByName:n,errorDiscriminationStrategy:i,security:o,environments:s,mode:a,ir:c}){let u=(0,Eqd.default)(c.basePath!=null?BEc(c.basePath):"",BEc(t.basePath),BEc(e.path));u=u.startsWith("/")?u:`/${u}`;let l=OBx(e.method),p=c.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),m=t.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),f=e.pathParameters.map(v=>jEc({pathParameter:v,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),h=e.queryParameters.map(v=>IBx({queryParameter:v,typesByName:r,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),g=e.headers.map(v=>CBx({httpHeader:v,typesByName:r,examples:e.userSpecifiedExamples.map(_=>_.example).filter(ru)??[]})),y=[...p,...m,...f,...h,...g],A=a==="stoplight"?t.displayName??t.name.fernFilepath.allParts.map(v=>v.originalName).join(" "):t.name.fernFilepath.allParts.map(v=>v.pascalCase.unsafeName).join(""),b={description:e.docs??void 0,operationId:[...t.name.fernFilepath.allParts.map(v=>v.camelCase.unsafeName),e.name.originalName].join("_"),tags:[A],parameters:y,responses:wBx({httpResponse:e.response,responseErrors:e.errors,errorsByName:n,errorDiscriminationStrategy:i,examples:e.userSpecifiedExamples.map(v=>v.example).filter(ru)??[]}),summary:e.displayName??void 0};if(e.baseUrl!=null){let v=e.baseUrl;if(s?.environments.type!=="multipleBaseUrls")throw new Error("baseUrl is defined environments are not multipleBaseUrls");b.servers=s.environments.environments.map(_=>{let O=_.urls[v];if(O==null)throw new Error("No URL defined for "+v);let E={url:O};return _.docs!=null&&(E.description=_.docs),E})}return e.auth&&(b.security=o),e.requestBody!=null&&(b.requestBody=EBx({httpRequest:e.requestBody,typesByName:r,examples:e.userSpecifiedExamples.map(v=>v.example).filter(ru)??[]})),{fullPath:u,convertedHttpMethod:l,operationObject:b}}function OBx(e){return Sw._visit(e,{get:()=>T1t.OpenAPIV3.HttpMethods.GET,post:()=>T1t.OpenAPIV3.HttpMethods.POST,put:()=>T1t.OpenAPIV3.HttpMethods.PUT,patch:()=>T1t.OpenAPIV3.HttpMethods.PATCH,delete:()=>T1t.OpenAPIV3.HttpMethods.DELETE,head:()=>T1t.OpenAPIV3.HttpMethods.HEAD,_other:()=>{throw new Error("Encountered unknown http method: "+e)}})}function EBx({httpRequest:e,typesByName:t,examples:r}){let n={};for(let i of r)i.request!=null&&(i.name&&i.name.originalName!==""?n[i.name.originalName]={value:i.request.jsonExample}:n[`Example${V0(n)+1}`]={value:i.request.jsonExample});return Gb._visit(e,{inlinedRequestBody:i=>{let o={schema:jYo({docs:void 0,properties:i.properties.map(s=>{let a;return r.length>0&&r[0]?.request?.type==="inlinedRequestBody"&&(a=r[0]?.request.properties.find(c=>c.name.wireValue===s.name.wireValue)),{docs:s.docs??void 0,name:s.name,valueType:s.valueType,example:a}}),extensions:i.extends})};return V0(n)>0&&(o.examples=n),{required:!0,content:{"application/json":o}}},reference:i=>{let o={schema:aB(i.requestBodyType)};return V0(n)>0&&(o.examples=n),{description:i.docs??void 0,required:BYo({typeReference:i.requestBodyType,typesByName:t}),content:{"application/json":o}}},fileUpload:i=>({required:!0,content:{"multipart/form-data":{schema:{type:"object",properties:i.properties.reduce((o,s)=>(DB._visit(s,{file:a=>{o[a.key.wireValue]={type:"string",format:"binary"}},bodyProperty:a=>{o[a.name.wireValue]={description:a.docs??void 0,...aB(a.valueType)}},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+s.type)}}),{...o}),{})}}}}),bytes:i=>{let o=i.contentType??"application/octet-stream";return{required:!i.isOptional,description:i.docs??void 0,content:{[o]:{schema:{type:"string",format:"binary"}}}}},_other:()=>{throw new Error("Unknown HttpRequestBody type: "+e.type)}})}function wBx({httpResponse:e,responseErrors:t,errorsByName:r,errorDiscriminationStrategy:n,examples:i}){let o={};if(e?.body?.type==="json"){let s={schema:aB(e.body.value.responseBodyType)},a={};for(let c of i)c.response.type==="ok"&&c.response.value.type==="body"&&c.response.value.value!=null&&(c.name&&c.name.originalName!==""?a[c.name.originalName]={value:c.response.value.value.jsonExample}:a[`Example${V0(a)+1}`]={value:c.response.value.value.jsonExample});V0(a)>0&&(s.examples=a),o[String(e.statusCode??200)]={description:e.body.value.docs??"",content:{"application/json":s}}}else if(e?.body?.type==="fileDownload"||e?.body?.type==="bytes")o[String(e.statusCode??200)]={description:e.body.docs??"",content:{"application/octet-stream":{schema:{type:"string",format:"binary"}}}};else if(e?.body?.type==="text")o[String(e.statusCode??200)]={description:e.body.docs??"",content:{"text/plain":{schema:{type:"string"}}}};else if(e?.body?.type==="streaming"){let s=e.body.value,a;switch(s.type){case"sse":a="text/event-stream";break;case"json":a="application/jsonl";break;case"text":a="text/plain";break;default:a="application/octet-stream";break}o[String(e.statusCode??200)]={description:s.docs??"",content:{[a]:{schema:{type:"string",format:"binary"}}}}}else o[204]={description:""};return TG._visit(n,{statusCode:()=>{for(let s of t){let a=r[TYo(s.error)];if(a==null)throw new Error("Encountered undefined error declaration: "+s.error.name.originalName);let c={description:s.docs??""};if(a.type!=null){let u={schema:aB(a.type)},l={};for(let p of i)p.response.type==="error"&&p.response.body!=null&&JC(s.error,p.response.error)&&(p.name&&p.name.originalName!==""?l[p.name.originalName]={value:p.response.body.jsonExample}:l[`Example${V0(l)+1}`]={value:p.response.body.jsonExample});V0(l)>0&&(u.examples=l),c.content={"application/json":u}}o[a.statusCode]=c}},property:s=>{let a=PBx({responseErrors:t,errorsByName:r});for(let c of Object.keys(a)){let u=a[c];if(u==null||u.length===0)continue;let l={schema:{oneOf:u.map(m=>xBx({errorInfo:m,property:s}))}},p={};for(let m of i)if(m.response.type==="error"&&m.response.body!=null){let f=m.response.error;u.some(h=>JC(h.errorDeclaration.name,f))&&(m.name&&m.name.originalName!==""?p[m.name.originalName]={value:m.response.body.jsonExample}:p[`Example${V0(p)+1}`]={value:m.response.body.jsonExample})}V0(p)>0&&(l.examples=p),o[c]={description:"",content:{"application/json":l}}}},_other:()=>{throw new Error("Unknown error discrimination strategy: "+n.type)}}),o}function xBx({errorInfo:e,property:t}){let r=e.errorDeclaration.discriminantValue.wireValue,n=e.responseError.docs??void 0,i={[t.discriminant.wireValue]:{type:"string",enum:[r]}};return e.errorDeclaration.type!=null&&(i[t.contentProperty.wireValue]=aB(e.errorDeclaration.type)),{type:"object",description:n,properties:i}}function PBx({responseErrors:e,errorsByName:t}){let r={};for(let n of e){let i=t[TYo(n.error)];if(i==null)throw new Error("Encountered undefined error declaration: "+n.error.name.originalName);let o=i.statusCode,s=r[o];s==null?r[o]=[{responseError:n,errorDeclaration:i}]:s.push({responseError:n,errorDeclaration:i})}return r}function jEc({pathParameter:e,examples:t}){let r={name:e.name.originalName,in:"path",description:e.docs??void 0,required:!0,schema:aB(e.valueType)},n={};for(let i of t){let o=[...i.rootPathParameters,...i.servicePathParameters,...i.endpointPathParameters].find(s=>s.name.originalName===e.name.originalName);o!=null&&(i.name&&i.name.originalName!==""?n[i.name.originalName]={value:o.value.jsonExample}:n[`Example${V0(n)+1}`]={value:o.value.jsonExample},r.example==null&&(r.example=o.value.jsonExample))}return V0(n)>0&&(r.examples=n),r}function IBx({queryParameter:e,typesByName:t,examples:r}){let n={name:e.name.wireValue,in:"query",description:e.docs??void 0,required:BYo({typeReference:e.valueType,typesByName:t}),schema:e.allowMultiple?aB(Tn.container(iu.list(e.valueType))):aB(e.valueType)},i={};for(let o of r){let s=o.queryParameters.find(a=>a.name.wireValue===e.name.wireValue);s!=null&&(o.name&&o.name.originalName!==""?i[o.name.originalName]={value:s.value.jsonExample}:i[`Example${V0(i)+1}`]={value:s.value.jsonExample},n.example==null&&(n.example=s.value.jsonExample))}return V0(i)>0&&(n.examples=i),n}function CBx({httpHeader:e,typesByName:t,examples:r}){let n={name:e.name.wireValue,in:"header",description:e.docs??void 0,required:BYo({typeReference:e.valueType,typesByName:t}),schema:aB(e.valueType)},i={};for(let o of r){let s=[...o.serviceHeaders,...o.endpointHeaders].find(a=>a.name.wireValue===e.name.wireValue);s!=null&&(o.name&&o.name.originalName!==""?i[o.name.originalName]={value:s.value.jsonExample}:i[`Example${V0(i)+1}`]={value:s.value.jsonExample},n.example==null&&(n.example=s.value.jsonExample))}return V0(i)>0&&(n.examples=i),n}function BEc(e){let t=e.head;for(let r of e.parts)t+=`{${r.pathParameter}}${r.tail}`;return t}function BYo({typeReference:e,typesByName:t}){if(e.type==="container"&&e.container.type==="optional")return!1;if(e.type==="named"){let r=TEc(e),n=t[r];if(n==null)throw new Error("Encountered non-existent type: "+e.name.originalName);if(n.shape.type==="alias")return BYo({typeReference:n.shape.aliasOf,typesByName:t})}return!0}function xqd(e){return q1._visit(e.requirement,{all:()=>[e.schemes.reduce((t,r)=>({...t,[DEc(r)]:[]}),{})],any:()=>e.schemes.map(t=>({[DEc(t)]:[]})),endpointSecurity:()=>[],_other:()=>{throw new Error("Unknown auth scheme requirement: "+e.requirement)}})}function Pqd(e){let t={};for(let r of e.schemes){let n=bv._visit(r,{bearer:()=>({type:"http",scheme:"bearer"}),basic:()=>({type:"http",scheme:"basic"}),header:i=>({type:"apiKey",in:"header",name:i.name.wireValue}),oauth:()=>({type:"http",scheme:"bearer"}),inferred:()=>{},_other:()=>{throw new Error("Unknown auth scheme: "+r.type)}});n&&(t[DEc(r)]=n)}return t}function DEc(e){return bv._visit(e,{bearer:()=>"BearerAuth",inferred:()=>"InferredAuth",basic:()=>"BasicAuth",oauth:()=>"BearerAuth",header:t=>`${t.name.name.pascalCase.unsafeName}Auth`,_other:()=>{throw new Error("Unknown auth scheme: "+e.type)}})}function Iqd({apiName:e,ir:t,mode:r}){let n={},i={};Object.values(t.types).forEach(l=>{let p=vqd(l,t);n[p.schemaName]={title:p.schemaName,...p.openApiSchema},i[TEc(l.name)]=l});let o={};Object.values(t.errors).forEach(l=>{o[TYo(l.name)]=l});let s=xqd(t.auth),a=wqd({ir:t,httpServices:Object.values(t.services),typesByName:i,errorsByName:o,errorDiscriminationStrategy:t.errorDiscriminationStrategy,security:s,environments:t.environments??void 0,mode:r}),c={title:t.apiDisplayName??e,version:""};t.apiDocs!=null&&(c.description=t.apiDocs);let u={openapi:"3.0.1",info:c,paths:a,components:{schemas:n,securitySchemes:Pqd(t.auth)}};return t.environments!=null&&t.environments.environments.type==="singleBaseUrl"&&(u.servers=t.environments.environments.environments.map(l=>({url:l.url,description:l.docs!=null?`${l.name.originalName} (${l.docs})`:l.name.originalName}))),u}function TEc(e){return[...e.fernFilepath.allParts.map(t=>t.originalName),e.name.originalName].join("-")}function TYo(e){return[...e.fernFilepath.allParts.map(t=>t.originalName),e.name.originalName].join("-")}async function Cqd({project:e,cliContext:t,outputPath:r,indent:n}){await Promise.all(e.apiWorkspaces.map(async i=>{await t.runTaskForWorkspace(i,async o=>{let s=await i.toFernWorkspace({context:o}),a=Nw({workspace:s,audiences:{type:"all"},generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!0},readme:void 0,version:void 0,packageName:void 0,context:o,sourceResolver:new bE(o,s)}),c=Iqd({apiName:i.workspaceName??"api",ir:a,mode:"openapi"});await(0,DYo.mkdir)(ji(r),{recursive:!0}),await(0,DYo.writeFile)(r,r.endsWith(".json")?JSON.stringify(c,void 0,n):Bn.dump(c,{indent:n}))})}))}async function Sqd({project:e,cliContext:t,shouldFix:r}){await Promise.all(e.apiWorkspaces.map(async n=>{n instanceof yb||await t.runTaskForWorkspace(n,async i=>{await Dfc({workspace:await n.toFernWorkspace({context:i}),context:i,shouldFix:r})})}))}Ir();var jqd="group";var Bqd=".preview",Tqd="approved-output-directories",Dqd=".fern";Ir();var Qqd=require("fs/promises");Ir();var Fqd=require("fs/promises");Ir();var Rqd=require("os");function x5r(){return It(vr.of((0,Rqd.homedir)()),Ze.of(Dqd),Ze.of(Tqd))}async function Nqd(){let e=x5r();if(!await qr(e))return[];let r=await(0,Fqd.readFile)(e,{encoding:"utf-8"});return JSON.parse(r)}var RYo=require("fs/promises"),kqd=He(require("path"),1);async function zqd(e){await(0,RYo.mkdir)(kqd.default.dirname(x5r()),{recursive:!0}),await(0,RYo.writeFile)(x5r(),JSON.stringify(e,null,2))}async function Mqd(e,t,r){if(!e||eYr()||r)return{shouldProceed:!0};let n=await Nqd();return n?.includes(e)?{shouldProceed:!0}:await qr(e)?(await(0,Qqd.readdir)(e)).length===0?{shouldProceed:!0}:await t.confirmPrompt(`Directory ${e} contains existing files that may be overwritten. Continue?`,!1)?(await zqd([...n??[],e]),{shouldProceed:!0}):{shouldProceed:!1}:{shouldProceed:!0}}Ir();var $qd=He(AQe(),1);Ir();pr();async function Vqd({groups:e,visitor:t,nodePath:r,cliVersion:n}){if(e!=null)for(let[i,o]of Object.entries(e))await SBx({group:o,visitor:t,nodePath:[...r,i],cliVersion:n})}async function SBx({group:e,visitor:t,nodePath:r,cliVersion:n}){await Promise.all(e.generators.map(async(i,o)=>await t.generatorInvocation?.({invocation:i,cliVersion:n},[...r,"generators",o.toString(),i.name])))}async function Uqd(e,t,r){await r.file?.(e,[]),await Hce(e,{"auth-schemes":Ut,api:Ut,whitelabel:Ut,metadata:Ut,readme:Ut,"default-group":Ut,aliases:Ut,reviewers:Ut,openapi:Ut,"openapi-overrides":Ut,"spec-origin":Ut,"async-api":Ut,"api-settings":Ut,ai:Ut,autorelease:Ut,replay:Ut,groups:async n=>{await Vqd({groups:n,visitor:r,nodePath:["groups"],cliVersion:t})}})}function Lqd({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(o){let s=async(a,c)=>{for(let u of r){let l=u.generatorsYml?.[o];if(l!=null){let p=await l(a,{relativeFilepath:e,contents:t});n(p.map(m=>({severity:m.severity,relativeFilepath:e,nodePath:c,message:m.message})))}}};return{[o]:s}}return{...i("file"),...i("generatorInvocation")}}function jBx(e,t,r){if(!_5(r,t))return[{severity:"fatal",message:`The generator ${e} requires CLI version ${t} or later (current version: ${r}). Please run \`fern upgrade\` to upgrade your CLI version and use this generator.`}]}function BBx(e){return Number(e.replace("v",""))}var REc={name:"compatible-ir-version",create:async()=>({generatorsYml:{generatorInvocation:async({invocation:e,cliVersion:t})=>{if(t==null||t==="0.0.0")return[];let r=Z$r({token:void 0}),n=await r.generators.cli.getCliRelease(t);if(!n.ok)return[];let i=n.body.irVersion,o;if(e["ir-version"]!=null)o=BBx(e["ir-version"]);else{let a={...e,name:qR(e.name)},c=await zAt(a);if(c==null)return[];o=c}if(o<=i)return[];let s=await r.generators.cli.getMinCliForIr(o);return s.ok?jBx(e.name,s.body.version,t)??[]:[]}}})};var FEc={name:"valid-alias-group-references",create:async()=>({generatorsYml:{file:async e=>{let t=[],r=e.aliases,n=e.groups??{};if(r==null)return t;let i=new Set(Object.keys(n));for(let[o,s]of Object.entries(r))if(Array.isArray(s))for(let a of s)i.has(a)||t.push({severity:"error",message:`Alias "${o}" references unknown group "${a}". Available groups: ${[...i].join(", ")||"none"}`});return t}}})};function qqd(){return[REc,FEc]}async function FYo(e,t){return TBx({workspace:e,rules:qqd(),logger:t})}async function TBx({workspace:e,rules:t,logger:r}){let n=[],i=await Promise.all(t.map(o=>o.create({workspace:e,logger:r})));if(e.generatorsConfiguration?.rawConfiguration){let o=await DBx({contents:e.generatorsConfiguration.rawConfiguration,allRuleVisitors:i,cliVersion:e.cliVersion});n.push(...o)}return n}async function DBx({contents:e,allRuleVisitors:t,cliVersion:r}){let n=[],i=Lqd({relativeFilepath:Ze.of(Tw),contents:e,allRuleVisitors:t,addViolations:o=>{n.push(...o)}});return await Uqd(e,r,i),n}var NEc=He(Gqd(),1);async function Hqd({workspace:e,context:t,ossWorkspace:r}){(0,NEc.default)(e.definition.rootApiFile.contents.name).validForNewPackages||t.failAndThrow("API name is not valid.");let n=performance.now(),i=hOt(e,t.logger),o=await FYo(e,t.logger),s=[...i,...o];r&&s.push(...await O3t(r,t));let a=performance.now()-n,c=s.some(u=>u.severity==="fatal"||u.severity==="error");return{apiName:e.definition.rootApiFile.contents.name,violations:s,elapsedMillis:a,hasErrors:c}}async function zBx({workspace:e,context:t,logWarnings:r,logSummary:n=!0,ossWorkspace:i}){let o=performance.now(),s=hOt(e,t.logger),a=await FYo(e,t.logger),c=[...s,...a];i&&c.push(...await O3t(i,t));let u=performance.now()-o,{hasErrors:l}=IAr({violations:c,context:t,logWarnings:r,logSummary:n,elapsedMillis:u});return{hasErrors:l}}async function ngt({workspace:e,context:t,logWarnings:r,ossWorkspace:n}){(0,NEc.default)(e.definition.rootApiFile.contents.name).validForNewPackages||t.failAndThrow("API name is not valid.");let{hasErrors:i}=await zBx({workspace:e,context:t,logWarnings:r,ossWorkspace:n});i&&t.failAndThrow()}async function Kqd({organization:e,workspace:t,projectConfig:r,context:n,groupName:i,generatorName:o,version:s,shouldLogS3Url:a,token:c,useLocalDocker:u,keepDocker:l,absolutePathToPreview:p,mode:m,runner:f,inspect:h,lfsOverride:g,fernignorePath:y,dynamicIrOnly:A,noReplay:b}){if(t.generatorsConfiguration==null){n.logger.warn("This workspaces has no generators.yml");return}if(t.generatorsConfiguration.groups.length===0){n.logger.warn(`This workspace has no groups specified in ${Tw}`);return}let v=i??t.generatorsConfiguration.defaultGroup;if(v==null)return n.failAndThrow(`No group specified. Use the --${jqd} option, or set "${eUt}" in ${Tw}`);let _=QBx(v,t.generatorsConfiguration.groupAliases,t.generatorsConfiguration.groups.map(P=>P.groupName),n),{ai:O,replay:E}=t.generatorsConfiguration;if(!u&&!c)return n.failAndThrow("Please run fern login");await ngt({workspace:await t.toFernWorkspace({context:n}),context:n,logWarnings:!1,ossWorkspace:t instanceof yb?t:void 0}),await Promise.all(_.map(async P=>{let x=t.generatorsConfiguration?.groups.find(I=>I.groupName===P);if(x==null)return n.failAndThrow(`Group '${P}' does not exist.`);if(o!=null){let I=x.generators.filter(F=>F.name===o);if(I.length===0){let F=x.generators.map(q=>q.name);return n.failAndThrow(`Generator '${o}' not found in group '${P}'. Available generators: ${F.join(", ")}`)}x={...x,generators:I}}g!=null&&(x=MBx(x,g,n)),_.length>1&&n.logger.info(`Running generation for group '${P}'...`),u?await K6o({token:c,projectConfig:r,workspace:t,generatorGroup:x,version:s,keepDocker:l,context:n,runner:f,absolutePathToPreview:p,inspect:h,ai:O,replay:E,noReplay:b}):c!=null&&await uLr({projectConfig:r,organization:e,workspace:t,context:n,generatorGroup:x,version:s,shouldLogS3Url:a,token:c,whitelabel:t.generatorsConfiguration?.whitelabel,absolutePathToPreview:p,mode:m,fernignorePath:y,dynamicIrOnly:A})}))}function QBx(e,t,r,n){let i=t[e];if(i!=null){for(let a of i)r.includes(a)||n.failAndThrow(`Group alias '${e}' references non-existent group '${a}'. Available groups: ${r.join(", ")}`);return i}if(r.includes(e))return[e];let o=Object.keys(t),s=[...r,...o];return n.failAndThrow(`'${e}' is not a valid group or alias. Available groups: ${r.join(", ")}`+(o.length>0?`. Available aliases: ${o.join(", ")}`:"")),[]}function MBx(e,t,r){let n=vr.of(aa(xy(),t)),i={},o=[];for(let s of e.generators){let a=s.language??VBx(s.name),c;if(e.generators.length===1)c=n;else{let l=a||"unknown";i[l]==null&&(i[l]=0),i[l]++;let p=i[l]===1?l:`${l}-${i[l]}`;c=It(n,Ze.of(p))}let u={...s,outputMode:$qd.FernFiddle.remoteGen.OutputMode.downloadFiles({}),absolutePathToLocalOutput:c};o.push(u),r.logger.info(`Overriding output for generator '${s.name}' to local-file-system at: ${c}`)}return{...e,generators:o}}function VBx(e){return e.includes("typescript")||e.includes("ts")?"typescript":e.includes("python")||e.includes("py")?"python":e.includes("java")?"java":e.includes("go")?"go":e.includes("ruby")?"ruby":e.includes("csharp")||e.includes("c#")?"csharp":e.includes("swift")?"swift":e.includes("php")?"php":e.includes("rust")?"rust":e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}var Yqd={PullRequest:"pull-request"};async function kEc({project:e,cliContext:t,version:r,groupName:n,generatorName:i,shouldLogS3Url:o,keepDocker:s,useLocalDocker:a,preview:c,mode:u,force:l,runner:p,inspect:m,lfsOverride:f,fernignorePath:h,dynamicIrOnly:g,outputDir:y,noReplay:A}){let b;if(!a){let v=await t.runTask(async _=>CB(_));v.type==="user"&&await t.runTask(async _=>{await VV({organization:e.config.organization,token:v,context:_})}),b=v}for(let v of e.apiWorkspaces){let _=Jqd(n,v.generatorsConfiguration);for(let O of v.generatorsConfiguration?.groups.filter(E=>_==null||_.includes(E.groupName)).flatMap(E=>E.generators).filter(E=>i==null||E.name===i)??[]){let{shouldProceed:E}=await Mqd(O.absolutePathToLocalOutput,t,l);E||t.failAndThrow("Generation cancelled")}}await t.instrumentPostHogEvent({orgId:e.config.organization,command:"fern generate",properties:{workspaces:e.apiWorkspaces.map(v=>{let _=Jqd(n,v.generatorsConfiguration);return{name:v.workspaceName,group:n,generators:v.generatorsConfiguration?.groups.filter(O=>_==null||_.includes(O.groupName)).map(O=>O.generators.filter(E=>i==null||E.name===i).map(E=>({name:E.name,version:E.version,outputMode:E.outputMode.type,config:E.config})))}})}}),await Promise.all(e.apiWorkspaces.map(async v=>{await t.runTaskForWorkspace(v,async _=>{let O=c?y!=null?vr.of(aa(xy(),y)):It(v.absoluteFilePath,Ze.of(Bqd)):void 0;O!=null&&_.logger.info(`Writing preview to ${O}`),await Kqd({organization:e.config.organization,workspace:v,projectConfig:e.config,context:_,version:r,groupName:n,generatorName:i,shouldLogS3Url:o,token:b,useLocalDocker:a,keepDocker:s,absolutePathToPreview:O,mode:u,runner:p,inspect:m,lfsOverride:f,fernignorePath:h,dynamicIrOnly:g,noReplay:A})})}))}function Jqd(e,t){if(e==null)return null;if(t==null)return[e];let r=t.groupAliases[e];return r??[e]}function Xqd(){return!!(process.env.CI||process.env.CONTINUOUS_INTEGRATION||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.TRAVIS||process.env.JENKINS_URL||process.env.JENKINS_HOME||process.env.TF_BUILD||process.env.BUILDKITE||process.env.CODEBUILD_BUILD_ID||process.env.TEAMCITY_VERSION||process.env.BITBUCKET_BUILD_NUMBER||process.env.DRONE||process.env.SEMAPHORE||process.env.APPVEYOR||process.env.BUDDY_WORKSPACE_ID||process.env.WERCKER_RUN_ID)}async function Zqd({project:e,cliContext:t,instance:r,preview:n,brokenLinks:i,strictBrokenLinks:o,disableTemplates:s,noPrompt:a,skipUpload:c}){let u=e.docsWorkspaces;if(u==null){t.failAndThrow("No docs.yml file found. Please make sure your project has one.");return}let l=process.env.FERN_SELF_HOSTED==="true";if(!n&&!Xqd()&&!a){let m=r??u.config.instances[0]?.url,f=m?` (${at.cyan(`https://${m}`)})`:"";if(!await t.confirmPrompt(`This will affect a production site${f}. Run with --preview to generate docs for a preview instance.
|
|
3028
3028
|
${at.yellow("?")} Are you sure you want to continue?`,!1)){t.logger.info("Docs generation cancelled.");return}}let p=null;if(l){let m=process.env.FERN_TOKEN;if(!m){t.failAndThrow("No token found. Please set the FERN_TOKEN environment variable.");return}p={type:"organization",value:m}}else if(p=await t.runTask(async m=>CB(m)),p.type==="user"){let m=p;await t.runTask(async f=>{await VV({organization:e.config.organization,token:m,context:f})})}l||await t.instrumentPostHogEvent({orgId:e.config.organization,command:"fern generate --docs"}),await t.runTaskForWorkspace(u,async m=>{await z4d({workspace:u,context:m,logWarnings:!1,apiWorkspaces:e.apiWorkspaces,ossWorkspaces:await Gz(e),errorOnBrokenLinks:o,excludeRules:UBx(i,o,l)}),m.logger.info("Validation complete, starting remote docs generation...");let f=performance.now(),h=await Gz(e),g=performance.now()-f;m.logger.debug(`Filtered OSS workspaces (${h.length} workspaces) in ${g.toFixed(0)}ms`);let y=performance.now();await afc({organization:e.config.organization,apiWorkspaces:e.apiWorkspaces,ossWorkspaces:h,docsWorkspace:u,context:m,token:p,instanceUrl:r,preview:n,disableTemplates:s,skipUpload:c});let A=performance.now()-y;m.logger.debug(`Remote docs generation completed in ${A.toFixed(0)}ms`)})}function UBx(e,t,r){let n=[];return!e&&!t&&n.push(b5r.ValidMarkdownLinks.name),r&&n.push(b5r.ValidFileTypes.name),n}Ir();var e3d=He(require("path"),1);async function kAr({workspace:e,context:t,generationLanguage:r,keywords:n,smartCasing:i,disableExamples:o,audiences:s,readme:a,disableDynamicExamples:c}){return await ngt({workspace:e,context:t,logWarnings:!1}),Nw({workspace:e,generationLanguage:r,keywords:n,smartCasing:i,exampleGeneration:{disabled:o},audiences:s,readme:a,version:void 0,packageName:void 0,context:t,sourceResolver:new bE(t,e),disableDynamicExamples:c})}async function t3d({project:e,irFilepath:t,cliContext:r,generationLanguage:n,audiences:i,version:o,keywords:s,smartCasing:a,disableDynamicExamples:c}){await Promise.all(e.apiWorkspaces.map(async u=>{await r.runTaskForWorkspace(u,async l=>{r.logger.info(`Generating IR for workspace ${u.workspaceName??"api"}`);let p=await u.toFernWorkspace({context:l}),m=await kAr({workspace:p,context:l,generationLanguage:n,keywords:s,smartCasing:a,disableExamples:!1,audiences:i,readme:void 0,disableDynamicExamples:c});if(m.dynamic==null)throw new Error("Internal error; dynamic IR was not generated");let f=e3d.default.resolve(t);await G2(vr.of(f),m.dynamic),l.logger.info(`Wrote IR to ${f}`)})}))}Ir();var r3d=He(require("path"),1);async function n3d({project:e,outputFilepath:t,cliContext:r,audiences:n}){await Promise.all(e.apiWorkspaces.map(async i=>{await r.runTaskForWorkspace(i,async o=>{let s=await i.toFernWorkspace({context:o}),a=await kAr({workspace:s,context:o,generationLanguage:void 0,audiences:n,keywords:void 0,smartCasing:!1,disableExamples:!1,readme:void 0,disableDynamicExamples:!0}),c=VU({ir:a,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},context:o}),u=vr.of(r3d.default.resolve(t));await G2(u,c,{pretty:!0}),o.logger.info(`Wrote FDR API definition to ${u}`)})}))}Ir();var i3d=He(require("path"),1);async function o3d({project:e,irFilepath:t,cliContext:r,generationLanguage:n,audiences:i,version:o,keywords:s,smartCasing:a,readme:c,directFromOpenapi:u,disableExamples:l}){await Promise.all(e.apiWorkspaces.map(async p=>{await r.runTaskForWorkspace(p,async m=>{r.logger.info(`Generating IR for workspace ${p.workspaceName??"api"}`);let f=await LBx({workspace:p,context:m,generationLanguage:n,keywords:s,smartCasing:a,disableExamples:l,audiences:i,version:o,readme:c,directFromOpenapi:u}),h=vr.of(i3d.default.resolve(t));await G2(h,f,{pretty:!0}),m.logger.info(`Wrote IR to ${h}`)})}))}async function LBx({workspace:e,context:t,generationLanguage:r,audiences:n,keywords:i,smartCasing:o,disableExamples:s,version:a,readme:c,directFromOpenapi:u}){let l;if(u&&e instanceof yb)l=await e.getIntermediateRepresentation({context:t,audiences:n,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});else{let p=await e.toFernWorkspace({context:t});l=await kAr({workspace:p,context:t,generationLanguage:r,audiences:n,keywords:i,smartCasing:o,disableExamples:s,readme:c,disableDynamicExamples:!0})}return a==null?Jo.IntermediateRepresentation.jsonOrThrow(l,{unrecognizedObjectKeys:"strip"}):ZUr({intermediateRepresentation:l,version:a,context:t})}Ir();var s3d=He(require("path"),1);async function zEc({project:e,outputFilepath:t,cliContext:r,directFromOpenapi:n,audiences:i}){await Promise.all(e.apiWorkspaces.map(async o=>{await r.runTaskForWorkspace(o,async s=>{let a=n?await tKs(o,s,i):await LKs(o,s),c=vr.of(s3d.default.resolve(t));await G2(c,a,{pretty:!0}),s.logger.info(`Wrote FDR API definition to ${c}`)})}))}Ir();var a3d=He(require("path"),1);async function c3d({project:e,irFilepath:t,cliContext:r,sdkLanguage:n}){await Promise.all(e.apiWorkspaces.map(async i=>{await r.runTaskForWorkspace(i,async o=>{if(i instanceof BQ){o.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(i instanceof yb))return;let s=new dle(i.absoluteFilePath),a=await mY({context:o,specs:i.specs}),c=n0t({context:o,documents:await s.loadDocuments({context:o,specs:a})}),u=vr.of(a3d.default.resolve(t)),l=Fu.OpenApiIntermediateRepresentation.jsonOrThrow(c,{skipValidation:!0});await G2(u,l,{pretty:!0}),o.logger.info(`Wrote IR to ${u}`)})}))}Ir();var NYo=require("fs/promises");async function l3d({originalPath:e,modifiedPath:t,outputPath:r,cliContext:n}){await n.runTask(async i=>{if(!await qr(e))return i.failAndThrow(`Original file does not exist: ${e}`);if(!await qr(t))return i.failAndThrow(`Modified file does not exist: ${t}`);i.logger.info(`Comparing ${e} with ${t}`);let o=await u3d(e,i),s=await u3d(t,i),a=qBx(o,s);if(Object.keys(a).length===0){i.logger.info("No differences found between the two specs.");return}let c;if(r!=null)c=r;else{let u=ybe(e),l="openapi-overrides.yml";if(u!=null){let p=u.lastIndexOf(".");p>0&&(l=`${u.substring(0,p)}-overrides.yml`)}c=It(ji(e),Ze.of(l))}await(0,NYo.writeFile)(c,Bn.dump(a,{lineWidth:-1,noRefs:!0})),i.logger.info(`Overrides written to ${c}`)})}async function u3d(e,t){let r=await(0,NYo.readFile)(e,"utf8");try{return JSON.parse(r)}catch{try{return Bn.load(r)}catch{return t.failAndThrow(`Failed to parse file as JSON or YAML: ${e}`)}}}function qBx(e,t){let r={};for(let n of Object.keys(t))if(t[n]!==void 0){let i=p3d(e[n],t[n],n);i!==void 0&&Object.keys(i).length>0&&(r[n]=i)}return r}function p3d(e,t,r){if(t===void 0)return;if(e==null)return t;if(typeof t!="object"||t===null)return e!==t?t:void 0;if(Array.isArray(t))return QEc(e,t)?void 0:t;if(typeof e!="object"||e===null||Array.isArray(e))return t;let n={};for(let i of Object.keys(t)){let o=p3d(e[i],t[i],`${r}.${i}`);o!==void 0&&(n[i]=o)}if(Object.keys(n).length!==0)return n}function QEc(e,t){if(e===t)return!0;if(e===null||t===null||e===void 0||t===void 0)return e===t;if(typeof e!=typeof t)return!1;if(typeof e!="object")return e===t;if(Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!QEc(e[i],t[i]))return!1;return!0}let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i of r)if(!Object.hasOwn(t,i)||!QEc(e[i],t[i]))return!1;return!0}Ir();var kYo=require("fs/promises");async function MEc({project:e,includeModels:t,cliContext:r}){await Promise.all(e.apiWorkspaces.map(async n=>{await r.runTaskForWorkspace(n,async i=>{n instanceof yb?await GBx({workspace:n,context:i,includeModels:t}):i.logger.warn("Skipping fern workspace definition generation")})}))}async function WBx(e,t){let r=null;try{let n=(await(0,kYo.readFile)(e,"utf8")).toString();try{r=JSON.parse(n)}catch{r=Bn.load(n,{json:!0})}}catch{return t.failAndThrow(`Failed to read OpenAPI overrides from file ${e}`)}return r}async function GBx({workspace:e,includeModels:t,context:r}){let n=new dle(e.absoluteFilePath),i=await mY({context:r,specs:e.specs});for(let o of i){let s=n0t({context:r,documents:await n.loadDocuments({context:r,specs:[o]})}),a={};o.absoluteFilepathToOverrides!==void 0&&(a=await WBx(o.absoluteFilepathToOverrides,r));let c="path"in a?a.path:{};for(let f of s.endpoints){let h=Ujr(f);f.path in c||(c[f.path]={});let g=c[f.path];if(g!=null&&g[f.method]==null){let y=h.file.split("/").map(b=>b.replace(".yml","")).filter(b=>b!=="__package__"),A={};y.length>0&&(A["x-fern-sdk-group-name"]=y),A["x-fern-sdk-method-name"]=h.endpointId,g[f.method.toLowerCase()]=A}else a==null&&r.logger.warn(`Endpoint ${f.path} ${f.method} is defined multiple times`)}let u="path"in a?a.path:{};if(t){f3d(u,s.groupedSchemas.rootSchemas);for(let[f,h]of Object.entries(s.groupedSchemas.namespacedSchemas))f3d(u,h)}let l={schemas:u},p=ybe(o.absoluteFilepath),m="openapi-overrides.yml";if(p!=null){let f=p.lastIndexOf(".");if(f>0){let h=p.substring(0,f),g=p.substring(f);m=`${h}-overrides${g}`}}await(0,kYo.writeFile)(It(ji(o.absoluteFilepath),Ze.of(m)),Bn.dump({paths:c,components:l}))}}function f3d(e,t){for(let[r,n]of Object.entries(t)){if(r in e)continue;let i={};i["x-fern-type-name"]="nameOverride"in n?n.nameOverride??r:r,e[r]=i}}Ir();pr();function m3d({enum:e,context:t}){return{type:"string",enum:e.values.map(r=>r.name.wireValue)}}pr();pr();function d3d({container:e,context:t}){switch(e.type){case"list":return{type:"array",items:yq({typeReference:e.list,context:t})};case"map":return{type:"object",additionalProperties:yq({typeReference:e.valueType,context:t})};case"optional":return e.optional.type==="container"&&e.optional.container.type==="nullable"?{oneOf:[yq({typeReference:e.optional.container.nullable,context:t}),{type:"null"}]}:{oneOf:[yq({typeReference:e.optional,context:t}),{type:"null"}]};case"nullable":return{oneOf:[yq({typeReference:e.nullable,context:t}),{type:"null"}]};case"set":return{type:"array",items:yq({typeReference:e.set,context:t}),uniqueItems:!0};case"literal":switch(e.literal.type){case"string":return{const:e.literal.string};case"boolean":return{const:e.literal.boolean};default:Ue(e.literal)}default:Ue(e)}}function yq({typeReference:e,context:t}){switch(e.type){case"named":{let r=t.getTypeDeclarationForId({typeId:e.typeId});if(!t.hasDefinition(e.typeId)&&!t.isBuildingTypeDeclaration(e.typeId)){t.buildingTypeDeclaration(e.typeId);let n=zAr({typeDeclaration:r,context:t});t.registerDefinition(e.typeId,n),t.finishedBuildingTypeDeclaration(e.typeId)}return{$ref:`#/definitions/${t.getDefinitionKey(r)}`}}case"container":return d3d({container:e.container,context:t});case"primitive":return HBx(e.primitive.v1);case"unknown":return{type:["string","number","boolean","object","array","null"]};default:Ue(e)}}function HBx(e){switch(e){case Wa.String:return{type:"string"};case Wa.Integer:return{type:"integer"};case Wa.Long:return{type:"integer"};case Wa.Uint:return{type:"integer",minimum:0};case Wa.Uint64:return{type:"integer",minimum:0};case Wa.Float:return{type:"number"};case Wa.Double:return{type:"number"};case Wa.Boolean:return{type:"boolean"};case Wa.Date:return{type:"string",format:"date"};case Wa.DateTime:return{type:"string",format:"date-time"};case Wa.Uuid:return{type:"string",format:"uuid"};case Wa.Base64:return{type:"string",contentEncoding:"base64"};case Wa.BigInteger:return{type:"string",pattern:"^-?[0-9]+$"};case Wa.DateTimeRfc2822:return{type:"string"};default:Ue(e)}}function h3d({object:e,context:t}){let r={type:"object"},n=[...e.extendedProperties??[],...e.properties],i=n.map(s=>{let a=s.name.wireValue,c=yq({typeReference:s.valueType,context:t});return[a,c]}),o=n.filter(s=>!t.isOptional(s.valueType)).map(s=>s.name.wireValue);return i.length>0&&(r.properties=Object.fromEntries(i)),o.length>0&&(r.required=o),r.additionalProperties=e.extraProperties,r}function g3d({undiscriminatedUnion:e,context:t}){return{anyOf:e.members.map(r=>{let n=yq({typeReference:r.type,context:t});return r.docs&&(n.description=r.docs),n})}}pr();function y3d({union:e,context:t}){let r=e.discriminant.wireValue;return{type:"object",properties:{[r]:{type:"string",enum:e.types.map(n=>n.discriminantValue.wireValue)}},oneOf:e.types.map(n=>{let i={},o=[];switch(n.shape.propertiesType){case"samePropertiesAsObject":{let s=t.getTypeDeclarationForId({typeId:n.shape.typeId}),a=zAr({typeDeclaration:s,context:t});i=a.properties??{},o=Array.isArray(a.required)?a.required:[];break}case"singleProperty":i.value=yq({typeReference:n.shape.type,context:t});break;case"noProperties":break;default:Ue(n.shape)}return{properties:{[r]:{const:n.discriminantValue.wireValue},...i},required:[r,...o]}})}}function zAr({typeDeclaration:e,context:t}){switch(e.shape.type){case"object":return h3d({object:e.shape,context:t});case"alias":return yq({typeReference:e.shape.aliasOf,context:t});case"enum":return m3d({enum:e.shape,context:t});case"union":return y3d({union:e.shape,context:t});case"undiscriminatedUnion":return g3d({undiscriminatedUnion:e.shape,context:t});default:Ue(e.shape)}}var zYo=class{context;ir;buildingTypeIds=new Set;definitions={};constructor(t,r){this.context=t,this.ir=r}getTypeDeclarationForId({typeName:t,typeId:r}){let n=this.ir.types[r];return n??(t!=null&&this.context.logger.error(`Type ${t} not found`),this.context.failAndThrow())}isOptional(t){if(t.type==="container"&&t.container.type==="optional")return!0;if(t.type==="named"){let r=this.getTypeDeclarationForId({typeId:t.typeId});if(r.shape.type==="alias")return this.isOptional(r.shape.aliasOf)}return!1}registerDefinition(t,r){let n=this.getTypeDeclarationForId({typeId:t});this.definitions[this.getDefinitionKey(n)]=r}getDefinitions(){return this.definitions}hasDefinition(t){let r=this.getTypeDeclarationForId({typeId:t});return this.getDefinitionKey(r)in this.definitions}getDefinitionKey(t){return[...t.name.fernFilepath.allParts.map(r=>r.originalName),t.name.name.originalName].join(".")}buildingTypeDeclaration(t){this.buildingTypeIds.add(t)}finishedBuildingTypeDeclaration(t){this.buildingTypeIds.delete(t)}isBuildingTypeDeclaration(t){return this.buildingTypeIds.has(t)}};function VEc(e){let t=new zYo(e.context,e.ir),r=t.getTypeDeclarationForId({typeId:e.typeId,typeName:e.typeName});return{...zAr({typeDeclaration:r,context:t}),definitions:t.getDefinitions()}}var QYo=require("fs/promises");async function A3d({typeLocator:e,project:t,jsonschemaFilepath:r,cliContext:n}){await Promise.all(t.apiWorkspaces.map(async i=>{await n.runTaskForWorkspace(i,async o=>{let s=await i.toFernWorkspace({context:o}),a=Nw({workspace:s,context:o,generationLanguage:void 0,audiences:{type:"all"},keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!0},disableDynamicExamples:!0,version:void 0,packageName:void 0,readme:void 0,sourceResolver:new bE(o,s)}),c=e.split("."),u=Y1({generationLanguage:void 0,keywords:void 0,smartCasing:!1}),l=c[c.length-1]??e,p=c.length>1?`${c.slice(0,-1).join("/")}.yml`:Lg,m=eh.generateTypeId({fernFilepath:g5({relativeFilepath:Ze.of(`${c.slice(0,-1).join("/")}.yml`),casingsGenerator:u}),name:u.generateName(l),displayName:void 0}),f=VEc({ir:a,typeName:l,typeId:m,context:o});await qr(ji(r))||await(0,QYo.mkdir)(ji(r),{recursive:!0}),await(0,QYo.writeFile)(r,JSON.stringify(f,null,2)),o.logger.info(at.green(`Wrote JSON Schema to ${r}`))})}))}var UEc=He(_zn(),1);Ni();var MYo=He(Jy(),1);Ni();function b3d({request:e,example:t}){if(t.request==null&&Object.entries(e.body??{}).length===0)return{type:"equal"};if(typeof t.request?.jsonExample=="object"){if(Pbe(JSON.stringify(e.body),JSON.stringify(t.request?.jsonExample??{})))return{type:"equal"};for(let[r,n]of Object.entries(t.request?.jsonExample??{})){let i=e.body[r];if(!JC(i,n))return{type:"notEqual",parameter:[r],actualValue:i,expectedValue:n,location:"body"}}return{type:"equal"}}return Pbe(JSON.stringify(e.body),JSON.stringify(t.request?.jsonExample??{}))?{type:"equal"}:{type:"notEqual",parameter:[],actualValue:e.body,expectedValue:t.request?.jsonExample,location:"body"}}Ni();function _3d({request:e,example:t}){for(let r of[...t.serviceHeaders,...t.endpointHeaders]){let n=e.headers[r.name.wireValue.toLowerCase()];if(!Pbe(n,typeof r.value.jsonExample=="string"?r.value.jsonExample:JSON.stringify(r.value.jsonExample)))return{type:"notEqual",parameter:[r.name.wireValue],actualValue:n,expectedValue:r.value.jsonExample,location:"header"}}return{type:"equal"}}Ni();function v3d({request:e,example:t}){for(let r of[...t.rootPathParameters,...t.servicePathParameters,...t.endpointPathParameters]){let n=e.params[r.name.originalName];if(!Pbe(n,typeof r.value.jsonExample=="string"?r.value.jsonExample:JSON.stringify(r.value.jsonExample)))return{type:"notEqual",parameter:[r.name.originalName],actualValue:n,expectedValue:r.value.jsonExample,location:"path"}}return{type:"equal"}}Ni();function O3d({request:e,example:t}){for(let r of[...t.queryParameters]){let n=e.query[r.name.wireValue];if(!Pbe(n,typeof r.value.jsonExample=="string"?r.value.jsonExample:JSON.stringify(r.value.jsonExample)))return{type:"notEqual",parameter:[r.name.wireValue],actualValue:n,expectedValue:r.value.jsonExample,location:"query"}}return{type:"equal"}}function E3d({request:e,example:t}){let r=v3d({request:e,example:t});if(r.type==="notEqual")return r;let n=O3d({request:e,example:t});if(n.type==="notEqual")return n;let i=_3d({request:e,example:t});if(i.type==="notEqual")return i;let o=b3d({request:e,example:t});return o.type==="notEqual"?o:{type:"equal"}}var D1t=class{app=(0,UEc.default)();context;server=void 0;port=void 0;constructor({context:t,ir:r,port:n}){this.context=t,this.app.use(UEc.default.json({limit:"50mb",strict:!1})),this.port=n;let i=new Map;for(let c of Object.values(r.services))for(let u of c.endpoints){let l=$Bx(u);t.logger.debug(`Registering ${u.method} ${l} ...`);let p=i.get(l)??new Map,m=p.get(u.method)??[];i.set(l,p.set(u.method,[...m,u]))}let o=(c,u)=>{let l=c[0],p=u[0],m=l.split("/"),f=p.split("/");if(m.length!==f.length)return m.length-f.length;for(let h=0;h<Math.min(m.length,f.length);h++){let g=m[h],y=f[h];if(g===y)continue;if(g==null||y==null)return g==null?-1:1;let A=g.startsWith(":"),b=y.startsWith(":");return A&&!b?1:!A&&b?-1:g.localeCompare(y)}return 0},a=Array.from(i).sort(o);for(let[c,u]of a)for(let[l,p]of u)switch(l){case"GET":this.app.get(c,I5r(p));break;case"POST":this.app.post(c,I5r(p));break;case"PUT":this.app.put(c,I5r(p));break;case"PATCH":this.app.patch(c,I5r(p));break;case"DELETE":this.app.delete(c,I5r(p));break}}stop(){this.server?.close()}async start(){return this.port=this.port??await oHe(),this.server=this.app.listen(this.port),this.context.logger.info(`Running Fern mock server on localhost: ${this.port}`),this.port}async keepAlive(){await new Promise(()=>{})}};function $Bx(e){let t="";e.fullPath.head.length>0&&(t=(0,MYo.default)(t,e.fullPath.head));for(let r of e.fullPath.parts)t=(0,MYo.default)(t,":"+r.pathParameter),r.tail.length>0&&(t=(0,MYo.default)(t,r.tail));return t.startsWith("/")?t:`/${t}`}function I5r(e){let t=!1;return(r,n)=>{let i=[];for(let o of e)for(let s of[...o.userSpecifiedExamples,...o.autogeneratedExamples])if(t=!0,s.example!=null){let a=E3d({request:r,example:s.example});if(a.type==="notEqual"){i.push(a);continue}s.example.response?._visit({ok:c=>{c._visit({body:u=>{if(u==null){n.sendStatus(o.response?.statusCode??204);return}if(o.response?.body?.type==="text"){n.contentType("text/plain"),n.send(u.jsonExample);return}n.json(u.jsonExample)},stream:u=>{u.forEach(l=>{n.write(l.jsonExample)}),n.end()},sse:u=>{n.setHeader("Content-Type","text/event-stream"),u.forEach(l=>{n.write(`event: ${l.event}
|
|
3029
3029
|
`),n.write(`data: ${JSON.stringify(l.data.jsonExample)}
|
|
3030
3030
|
|