fern-api 3.51.0 → 3.51.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +5 -5
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -1266,7 +1266,7 @@ ${K9_.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&wRc(th
|
|
|
1266
1266
|
`+tyn.default.red(">> ")+t),this.screen.render(r,i)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?tyn.default.cyan(rG_(t,this.opt.mask)):tyn.default.italic(tyn.default.dim("[hidden]")):this.opt.mask?rG_(t,this.opt.mask):tyn.default.italic(tyn.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 JXo=ue(wR(),1);var rx_=ue(ozc(),1),HXo=require("child_process"),Hta=require("fs"),xXo=ue(require("path"),1),ix_=ue(require("os"),1),nx_=require("crypto"),Gzc=ue(ex_(),1);var VXo=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var EGa=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var WXo=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var GXo=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function KXo(e="",t,r){let i=new xzc(e,r);i.runAsync((n,a)=>{if(n)setImmediate(t,n,void 0);else try{i.cleanup(),setImmediate(t,void 0,a)}catch(o){setImmediate(t,o,void 0)}})}function tx_(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function b_D(e){let t=[],r="";for(let i=0;i<e.length;i++){let n=e.charAt(i);i>0&&n===" "&&e[i-1]!=="\\"&&r.length>0?(t.push(r),r=""):r=`${r}${n}`}return r.length>0&&t.push(r),t}var xzc=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=b_D(t).map(n=>n.replace("\\ "," ")),i=r.shift();this.editor={args:r,bin:i}}createTemporaryFile(){try{let t=this.fileOptions.dir??ix_.default.tmpdir(),r=(0,nx_.randomUUID)(),i=tx_(this.fileOptions.prefix),n=tx_(this.fileOptions.postfix),a=`${i}${r}${n}`,o=xXo.default.resolve(t,a),c=xXo.default.resolve(t)+xXo.default.sep;if(!o.startsWith(c))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=o;let d={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(d.mode=this.fileOptions.mode),(0,Hta.writeFileSync)(this.tempFile,this.text,d)}catch(t){throw new VXo(t)}}readTemporaryFile(){try{let t=(0,Hta.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,rx_.detect)(t)??"utf8";Gzc.default.encodingExists(r)||(r="utf8"),this.text=Gzc.default.decode(t,r)}}catch(t){throw new WXo(t)}}removeTemporaryFile(){try{(0,Hta.unlinkSync)(this.tempFile)}catch(t){throw new GXo(t)}}launchEditor(){try{let t=(0,HXo.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new EGa(t)}}launchEditorAsync(t){try{(0,HXo.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",i=>{this.lastExitStatus=i,setImmediate(t)})}catch(r){throw new EGa(r)}}};var ax_=ue(Rve(),1);var SGa=class extends ER{_run(t){this.done=t,this.editorResult=new ax_.Subject;let r=sL(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let i=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,n=this.handleSubmitEvents(this.editorResult);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,i?this.render():this.startExternalEditor(),this}render(t){let r="",i=this.getQuestion();i+=this.status==="answered"?JXo.default.dim("Received"):JXo.default.dim("Press <enter> to launch your preferred editor."),t&&(r=JXo.default.red(">> ")+t),this.screen.render(i,r)}startExternalEditor(){this.rl.pause(),KXo(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 lx_=require("stream");var sx_=ue(require("readline"),1),cx_=ue(ux_(),1),ayn=class{constructor(t){this.rl||=sx_.default.createInterface(g_D(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 g_D(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){let n=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw n.isTtyError=!0,n}let r=new cx_.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var MGa=class extends ayn{constructor(t={}){super(t),this.log=new lx_.Writable({write:(r,i,n)=>{this.writeLog(r),n()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return fGa(this.rl,this.bottomBar.split(`
|
|
1267
1267
|
`).length),this}updateBottomBar(t){return fGa(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+`
|
|
1268
1268
|
`}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&&yXo(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var cm=ue(Rve(),1),px_=ue(V9a(),1);var $Xo=ue(Rve(),1),fx_=ue(V9a(),1),YXo=function(e,t,r){return typeof e[t]!="function"?(0,$Xo.of)(e):(0,$Xo.from)((0,fx_.default)(e[t])(r).then(i=>(e[t]=i,e)))};var dx_={set:(e,t="",r)=>{let i=e;t.split(".").forEach((n,a,o)=>{n==="__proto__"||n==="constructor"||(a===o.length-1?i[n]=r:(!(n in i)||typeof i[n]!="object")&&(i[n]={}),i=i[n])})},get:(e,t="",r)=>{let i=a=>String.prototype.split.call(t,a).filter(Boolean).reduce((o,c)=>o!=null?o[c]:o,e),n=i(/[,[\]]+?/)||i(/[,.[\]]+?/);return n===void 0||n===e?r:n}},Kta=class extends ayn{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let i;return Array.isArray(t)?i=(0,cm.from)(t):(0,cm.isObservable)(t)?i=t:Object.values(t).every(n=>typeof n=="object"&&!Array.isArray(n)&&n!=null)?i=(0,cm.from)(Object.entries(t).map(([n,a])=>({name:n,...a}))):i=(0,cm.from)([t]),this.process=i.pipe((0,cm.concatMap)(this.processQuestion.bind(this)),(0,cm.publish)()),this.process.connect(),this.process.pipe((0,cm.reduce)((n,a)=>(dx_.set(n,a.name,a.answer),n),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,cm.defer)(()=>(0,cm.of)(t).pipe((0,cm.concatMap)(this.setDefaultType.bind(this)),(0,cm.concatMap)(this.filterIfRunnable.bind(this)),(0,cm.concatMap)(()=>YXo(t,"message",this.answers)),(0,cm.concatMap)(()=>YXo(t,"default",this.answers)),(0,cm.concatMap)(()=>YXo(t,"choices",this.answers)),(0,cm.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,cm.defer)(()=>(0,cm.from)(this.activePrompt.run().then(i=>({name:t.name,answer:i}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,cm.defer)(()=>(0,cm.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&dx_.get(this.answers,t.name)!==void 0)return cm.EMPTY;if(t.when===!1)return cm.EMPTY;if(typeof t.when!="function")return(0,cm.of)(t);let{answers:r}=this;return(0,cm.defer)(()=>(0,cm.from)((0,px_.default)(t.when)(r).then(i=>{if(i)return t})).pipe((0,cm.filter)(i=>i!=null)))}};function _x_(e){let t=function(r,i){let n;try{n=new Kta(t.prompts,e)}catch(o){return Promise.reject(o)}let a=n.run(r,i);return a.ui=n,a};return t.prompts={},t.registerPrompt=function(r,i){return t.prompts[r]=i,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",pGa),this.registerPrompt("input",eyn),this.registerPrompt("number",_Ga),this.registerPrompt("confirm",hGa),this.registerPrompt("rawlist",yGa),this.registerPrompt("expand",bGa),this.registerPrompt("checkbox",vGa),this.registerPrompt("password",gGa),this.registerPrompt("editor",SGa)},t.restoreDefaultPrompts(),t}var Kzc=_x_();function m_D(e,t){Kzc.registerPrompt(e,t)}function A_D(){Kzc.restoreDefaultPrompts()}var P_D={prompt:Kzc,ui:{BottomBar:MGa,Prompt:Kta},createPromptModule:_x_,registerPrompt:m_D,restoreDefaultPrompts:A_D,Separator:L$},XXo=P_D;var Jta=require("path");function yx_(){let e=j_D();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function j_D(e=process.argv[1]?(0,Jta.dirname)(process.argv[1]):process.cwd(),t=Jta.sep==="\\"){let r=t?hx_(e):e;return i=>{if(!i)return;let n=t?hx_(i):i,{dir:a,base:o,ext:c}=Jta.posix.parse(n);(c===".js"||c===".mjs"||c===".cjs")&&(o=o.slice(0,-1*c.length));let d=decodeURIComponent(o);a||(a=".");let s=a.lastIndexOf("/node_modules");if(s>-1)return`${a.slice(s+14).replace(/\//g,".")}:${d}`;if(a.startsWith(r)){let u=a.slice(r.length+1).replace(/\//g,".");return u?`${u}:${d}`:d}return d}}function hx_(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var Jzc=e=>{if("flags"in e){let t=bx_(e.flags),r=vx_(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([n,a])=>[n,gx_(a)])),i=Object.fromEntries(Object.entries(t).map(([n,a])=>[n,w_D(n,a,r[n])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:i}}};function w_D(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 bx_=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,oyn(r)]).filter(([,t])=>t!==void 0)),vx_=e=>{let t=e??{};return Object.fromEntries(Object.keys(t).filter(r=>{let i=t[r];return i.enabled&&i.metadata&&i.metadata.payload!==void 0}).map(r=>{let i=t[r].metadata?.payload;return[r,i?gx_(i):void 0]}))};var oyn=e=>e===void 0?void 0:e.variant??e.enabled,gx_=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var ZXo="0123456789abcdef",kXo=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,i,n){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(i)||!Number.isInteger(n)||t<0||r<0||i<0||n<0||t>0xffffffffffff||r>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let a=new Uint8Array(16);return a[0]=t/2**40,a[1]=t/2**32,a[2]=t/2**24,a[3]=t/2**16,a[4]=t/256,a[5]=t,a[6]=112|r>>>8,a[7]=r,a[8]=128|i>>>24,a[9]=i>>>16,a[10]=i>>>8,a[11]=i,a[12]=n>>>24,a[13]=n>>>16,a[14]=n>>>8,a[15]=n,new e(a)}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 i=new Uint8Array(16);for(let n=0;n<16;n+=4){let a=parseInt(r.substring(2*n,2*n+8),16);i[n+0]=a>>>24,i[n+1]=a>>>16,i[n+2]=a>>>8,i[n+3]=a}return new e(i)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=ZXo.charAt(this.bytes[r]>>>4),t+=ZXo.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+=ZXo.charAt(this.bytes[r]>>>4),t+=ZXo.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 i=this.bytes[r]-t.bytes[r];if(i!==0)return Math.sign(i)}return 0}},$zc=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??E_D()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let i=this.generateOrAbortCore(t,r);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(t,r)),i}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 kXo.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,kXo.ofInner(t)}},E_D=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),Ox_,z$t=()=>S_D().toString(),S_D=()=>(Ox_||(Ox_=new $zc)).generate();var M_D=["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"],mx_=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return M_D.concat(t).some(i=>{let n=i.toLowerCase();return r.indexOf(n)!==-1})};var W$=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",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 B_D=Array.isArray,Ax_=Object.prototype,x89=Ax_.hasOwnProperty,Yzc=Ax_.toString,Px_=B_D||function(e){return Yzc.call(e)==="[object Array]"};var $ta=e=>e===void 0,DGa=e=>Yzc.call(e)=="[object String]",jx_=e=>DGa(e)&&e.trim().length===0;var wx_=e=>Yzc.call(e)=="[object Number]";var Xzc=e=>e instanceof Error;function I_D(e,t){try{return e instanceof t}catch{return!1}}function BGa(e){return e===null||typeof e!="object"}function uyn(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function Ex_(e){return uyn(e,"ErrorEvent")}function eZo(e){return!$ta(Event)&&I_D(e,Event)}function Sx_(e){return uyn(e,"Object")}function IGa(e,t,r,i,n){return t>r&&(i.warn("min cannot be greater than max."),t=r),wx_(e)?e>r?(i.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(i.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(i.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+n),IGa(n||r,t,r,i))}var C_D=864e5,tZo=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=IGa(t.bucketSize,0,100,t._logger),this._refillRate=IGa(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=IGa(t.refillInterval,0,C_D,t._logger)}_applyRefill(t,r){let i=r-t.lastAccess,n=Math.floor(i/this._refillInterval);if(n>0){let a=n*this._refillRate;t.tokens=Math.min(t.tokens+a,this._bucketSize),t.lastAccess=t.lastAccess+n*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),i=String(t),n=this._buckets[i];return n?this._applyRefill(n,r):(n={tokens:this._bucketSize,lastAccess:r},this._buckets[i]=n),n.tokens===0?!0:(n.tokens--,n.tokens===0&&this._onBucketRateLimited?.(t),n.tokens===0)}stop(){this._buckets={}}};var rZo=class{add(t){let r=z$t();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 q_D(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var Mx_=(e,t,r)=>{function i(a,...o){t(()=>{let c=r[a];c(e,...o)})}return{info:(...a)=>{i("log",...a)},warn:(...a)=>{i("warn",...a)},error:(...a)=>{i("error",...a)},critical:(...a)=>{r.error(e,...a)},createLogger:a=>Mx_(`${e} ${a}`,t,r)}},T_D=e=>e();function Dx_(e,t=T_D){return Mx_(e,t,q_D())}var Xta="Mobile",nZo="iOS",Yta="Android",Bx_="Tablet",iW9=Yta+" "+Bx_;var R_D="Apple",nW9=R_D+" Watch",Ix_="Safari",aZo="BlackBerry",Cx_="Samsung",z_D=Cx_+"Browser",N_D=Cx_+" Internet",oZo="Chrome",F_D=oZo+" OS",Q_D=oZo+" "+nZo,qx_="Internet Explorer",U_D=qx_+" "+Xta,kzc="Opera",aW9=kzc+" Mini",Tx_="Edge",L_D="Microsoft "+Tx_,eNc="Firefox",V_D=eNc+" "+nZo,tNc="Nintendo",rNc="PlayStation",iZo="Xbox",W_D=Yta+" "+Xta,G_D=Xta+" "+Ix_,CGa="Windows",x_D=CGa+" Phone";var Rx_="Generic",oW9=Rx_+" "+Xta.toLowerCase(),uW9=Rx_+" "+Bx_.toLowerCase(),H_D="Konqueror",YG="(\\d+(\\.\\d+)?)",Zzc=new RegExp("Version/"+YG),sW9=new RegExp(iZo,"i"),cW9=new RegExp(rNc+" \\w+","i"),lW9=new RegExp(tNc+" \\w+","i"),K_D=new RegExp(aZo+"|PlayBook|BB10","i"),J_D={"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 fW9={[U_D]:[new RegExp("rv:"+YG)],[L_D]:[new RegExp(Tx_+"?\\/"+YG)],[oZo]:[new RegExp("("+oZo+"|CrMo)\\/"+YG)],[Q_D]:[new RegExp("CriOS\\/"+YG)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+YG)],[Ix_]:[Zzc],[G_D]:[Zzc],[kzc]:[new RegExp("("+kzc+"|OPR)\\/"+YG)],[eNc]:[new RegExp(eNc+"\\/"+YG)],[V_D]:[new RegExp("FxiOS\\/"+YG)],[H_D]:[new RegExp("Konqueror[:/]?"+YG,"i")],[aZo]:[new RegExp(aZo+" "+YG),Zzc],[W_D]:[new RegExp("android\\s"+YG,"i")],[N_D]:[new RegExp(z_D+"\\/"+YG)],[qx_]:[new RegExp("(rv:|MSIE )"+YG)],Mozilla:[new RegExp("rv:"+YG)]};var dW9=[[new RegExp(iZo+"; "+iZo+" (.*?)[);]","i"),e=>[iZo,e&&e[1]||""]],[new RegExp(tNc,"i"),[tNc,""]],[new RegExp(rNc,"i"),[rNc,""]],[K_D,[aZo,""]],[new RegExp(CGa,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[x_D,""];if(new RegExp(Xta).test(t)&&!/IEMobile\b/.test(t))return[CGa+" "+Xta,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let i=r[1],n=J_D[i]||"";return/arm/i.test(t)&&(n="RT"),[CGa,n]}return[CGa,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[nZo,t.join(".")]}return[nZo,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=$ta(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Yta+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Yta+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[Yta,t.join(".")]}return[Yta,""]}],[/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/,[F_D,""]],[/Linux|debian/i,["Linux",""]]];var zx_="utf8";function Nx_(e,t){if(!e||typeof e!="string"||$_D(e))throw new Error(t)}function $_D(e){return e.trim().length===0}function Fx_(e){return e?.replace(/\/+$/,"")}async function Qx_(e,t){let r=null;for(let i=0;i<t.retryCount+1;i++){i>0&&await new Promise(n=>setTimeout(n,t.retryDelay));try{return await e()}catch(n){if(r=n,!t.retryCheck(n))throw n}}throw r}function uZo(){return new Date().toISOString()}function syn(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Ux_=e=>e instanceof Error;function iNc(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var sZo=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(i=>i!==r)}}emit(t,r){for(let i of this.events[t]||[])i(r);for(let i of this.events["*"]||[])i(t,r)}};function Lx_(){return"CompressionStream"in globalThis}async function nNc(e,t=!0){try{let i=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(i).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var Zta=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()}},qGa=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function Vx_(e){if(e instanceof Zta){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 aNc(e){return typeof e=="object"&&(e instanceof Zta||e instanceof qGa)}function Wx_(e){return typeof e=="object"&&e instanceof Zta&&e.status===413}var TGa=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new rZo,this._events=new sZo,this._isInitialized=!1,Nx_(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Fx_(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:aNc},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.evaluationEnvironments=r?.evaluationEnvironments,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=Dx_("[PostHog]",this.logMsgIfDebug.bind(this)),this.disableCompression=!Lx_()||(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(W$.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(W$.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(W$.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(i,n)=>this._logger.info(i,n));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,i){this.wrap(()=>{let n={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",n,i)})}async identifyStatelessImmediate(t,r,i){let n={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",n,i)}captureStateless(t,r,i,n){this.wrap(()=>{let a=this.buildPayload({distinct_id:t,event:r,properties:i});this.enqueue("capture",a,n)})}async captureStatelessImmediate(t,r,i,n){let a=this.buildPayload({distinct_id:t,event:r,properties:i});await this.sendImmediate("capture",a,n)}aliasStateless(t,r,i,n){this.wrap(()=>{let a=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...i||{},distinct_id:r,alias:t}});this.enqueue("alias",a,n)})}async aliasStatelessImmediate(t,r,i,n){let a=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...i||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",a,n)}groupIdentifyStateless(t,r,i,n,a,o){this.wrap(()=>{let c=this.buildPayload({distinct_id:a||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:i||{},...o||{}}});this.enqueue("capture",c,n)})}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`,i={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,i,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(n=>n.json()).catch(n=>{this._logger.error("Remote config could not be loaded",n),this._events.emit("error",n)})}async getFlags(t,r={},i={},n={},a={},o=!0){await this._initPromise;let c=o?"&config=true":"",d=`${this.host}/flags/?v=2${c}`,s={token:this.apiKey,distinct_id:t,groups:r,person_properties:i,group_properties:n,...a};this.evaluationEnvironments&&this.evaluationEnvironments.length>0&&(s.evaluation_environments=this.evaluationEnvironments);let u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(s)};return this._logger.info("Flags URL",d),this.fetchWithRetry(d,u,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(l=>l.json()).then(l=>Jzc(l)).catch(l=>{this._events.emit("error",l)})}async getFeatureFlagStateless(t,r,i={},n={},a={},o){await this._initPromise;let c=await this.getFeatureFlagDetailStateless(t,r,i,n,a,o);if(c===void 0)return{response:void 0,requestId:void 0};let d=oyn(c.response);return d===void 0&&(d=!1),{response:d,requestId:c.requestId}}async getFeatureFlagDetailStateless(t,r,i={},n={},a={},o){await this._initPromise;let c=await this.getFeatureFlagDetailsStateless(r,i,n,a,o,[t]);return c===void 0?void 0:{response:c.flags[t],requestId:c.requestId,evaluatedAt:c.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,i={},n={},a={},o){await this._initPromise;let c=await this.getFeatureFlagPayloadsStateless(r,i,n,a,o,[t]);if(!c)return;let d=c[t];return d===void 0?null:d}async getFeatureFlagPayloadsStateless(t,r={},i={},n={},a,o){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,i,n,a,o)).payloads}async getFeatureFlagsStateless(t,r={},i={},n={},a,o){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,i,n,a,o)}async getFeatureFlagsAndPayloadsStateless(t,r={},i={},n={},a,o){await this._initPromise;let c=await this.getFeatureFlagDetailsStateless(t,r,i,n,a,o);return c?{flags:c.featureFlags,payloads:c.featureFlagPayloads,requestId:c.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},i={},n={},a,o){await this._initPromise;let c={};(a??this.disableGeoip)&&(c.geoip_disable=!0),o&&(c.flag_keys_to_evaluate=o);let d=await this.getFlags(t,r,i,n,c);if(d!==void 0)return d.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"),d.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:d?.requestId}):d}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"}},n=(await this.fetchWithRetry(t,r).then(a=>{if(a.status!==200||!a.json){let o=`Surveys API could not be loaded: ${a.status}`,c=new Error(o);this._logger.error(c),this._events.emit("error",new Error(o));return}return a.json()}).catch(a=>{this._logger.error("Surveys API could not be loaded",a),this._events.emit("error",a)}))?.surveys;return n&&this._logger.info("Surveys fetched from API: ",JSON.stringify(n)),n??[]}get props(){return this._props||(this._props=this.getPersistedProperty(W$.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(W$.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(W$.Props,this.props)})}enqueue(t,r,i){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let n=this.prepareMessage(t,r,i),a=this.getPersistedProperty(W$.Queue)||[];a.length>=this.maxQueueSize&&(a.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),a.push({message:n}),this.setPersistedProperty(W$.Queue,a),this._events.emit(t,n),a.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=syn(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,i){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 n={api_key:this.apiKey,batch:[this.prepareMessage(t,r,i)],sent_at:uZo()};this.historicalMigration&&(n.historical_migration=!0);let a=JSON.stringify(n),o=`${this.host}/batch/`,c=this.disableCompression?null:await nNc(a,this.isDebug),d={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||a};try{await this.fetchWithRetry(o,d)}catch(s){this._events.emit("error",s)}}prepareMessage(t,r,i){let n={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:i?.timestamp?i?.timestamp:uZo(),uuid:i?.uuid?i.uuid:z$t()};return(i?.disableGeoip??this.disableGeoip)&&(n.properties||(n.properties={}),n.properties.$geoip_disable=!0),n.distinctId&&(n.distinct_id=n.distinctId,delete n.distinctId),n}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await Vx_(t)})}async flush(){let t=iNc([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),iNc([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(W$.Queue)||[];if(!t.length)return;let r=[],i=t.length;for(;t.length>0&&r.length<i;){let n=t.slice(0,this.maxBatchSize),a=n.map(_=>_.message),o=()=>{let h=(this.getPersistedProperty(W$.Queue)||[]).slice(n.length);this.setPersistedProperty(W$.Queue,h),t=h},c={api_key:this.apiKey,batch:a,sent_at:uZo()};this.historicalMigration&&(c.historical_migration=!0);let d=JSON.stringify(c),s=`${this.host}/batch/`,u=this.disableCompression?null:await nNc(d,this.isDebug),l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...u!==null&&{"Content-Encoding":"gzip"}},body:u||d},p={retryCheck:_=>Wx_(_)?!1:aNc(_)};try{await this.fetchWithRetry(s,l,p)}catch(_){if(Wx_(_)&&a.length>1){this.maxBatchSize=Math.max(1,Math.floor(a.length/2)),this._logger.warn(`Received 413 when sending batch of size ${a.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw _ instanceof qGa||o(),this._events.emit("error",_),_}o(),r.push(...a)}this._events.emit("flush",r)}async fetchWithRetry(t,r,i,n){AbortSignal.timeout??=function(c){let d=new AbortController;return setTimeout(()=>d.abort(),c),d.signal};let a=r.body?r.body:"",o=-1;try{o=a instanceof Blob?a.size:Buffer.byteLength(a,zx_)}catch{a instanceof Blob?o=a.size:o=new TextEncoder().encode(a).length}return await Qx_(async()=>{let c=null;try{c=await this.fetch(t,{signal:AbortSignal.timeout(n??this.requestTimeout),...r})}catch(s){throw new qGa(s)}if(!(r.mode==="no-cors")&&(c.status<200||c.status>=400))throw new Zta(c,o);return c},{...this._retryOptions,...i})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let i=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(W$.Queue)||[]).length===0||(await this.flush(),r)););}catch(n){if(!aNc(n))throw n;await Vx_(n)}};return Promise.race([new Promise((n,a)=>{syn(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,a("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),i()])}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 G$={};Yt(G$,{DOMExceptionCoercer:()=>uNc,ErrorCoercer:()=>sNc,ErrorEventCoercer:()=>cNc,ErrorPropertiesBuilder:()=>oNc,EventCoercer:()=>dNc,ObjectCoercer:()=>fNc,PrimitiveCoercer:()=>pNc,PromiseRejectionEventCoercer:()=>_Nc,ReduceableCache:()=>hNc,StringCoercer:()=>lNc,chromeStackLineParser:()=>Hx_,createStackParser:()=>chD,geckoStackLineParser:()=>Jx_,nodeStackLineParser:()=>Zx_,opera10StackLineParser:()=>$x_,opera11StackLineParser:()=>Yx_,reverseAndStripFrames:()=>tH_,winjsStackLineParser:()=>Kx_});var cZo,Gx_,lZo;function xx_(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return lZo&&r.length===Gx_||(Gx_=r.length,lZo=r.reduce((i,n)=>{cZo||(cZo={});let a=cZo[n];if(a)i[a[0]]=a[1];else{let o=e(n);for(let c=o.length-1;c>=0;c--){let s=o[c]?.filename,u=t[n];if(s&&u){i[s]=u,cZo[n]=[s,u];break}}}return i},{})),lZo}var Y_D=4,oNc=class{constructor(t,r,i=[]){this.coercers=t,this.stackParser=r,this.modifiers=i}buildFromUnknown(t,r={}){let n=r&&r.mechanism||{handled:!0,type:"generic"},o=this.buildCoercingContext(n,r,0).apply(t),c=this.buildParsingContext(),d=this.parseStacktrace(o,c);return{$exception_list:this.convertToExceptionList(d,n),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&Px_(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 i;t.cause!=null&&(i=this.parseStacktrace(t.cause,r));let n;return t.stack!=""&&t.stack!=null&&(n=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?1:0),r.chunkIdMap)),{...t,cause:i,stack:n}}applyChunkIds(t,r){return t.map(i=>(i.filename&&r&&(i.chunk_id=r[i.filename]),i))}applyCoercers(t,r){for(let i of this.coercers)if(i.match(t))return i.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let i of this.modifiers)r=await i(r);return r}convertToExceptionList(t,r){let i={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(i.stacktrace={type:"raw",frames:t.stack});let n=[i];return t.cause!=null&&n.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),n}buildParsingContext(){return{chunkIdMap:xx_(this.stackParser)}}buildCoercingContext(t,r,i=0){let n=(o,c)=>{if(c<=Y_D){let d=this.buildCoercingContext(t,r,c);return this.applyCoercers(o,d)}};return{...r,syntheticException:i==0?r.syntheticException:void 0,mechanism:t,apply:o=>n(o,i),next:o=>n(o,i+1)}}};var lL="?";function N$t(e,t,r,i,n){let a={platform:e,filename:t,function:r==="<anonymous>"?lL:r,in_app:!0};return $ta(i)||(a.lineno=i),$ta(n)||(a.colno=n),a}var fZo=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,i=e.indexOf("safari-web-extension")!==-1;return r||i?[e.indexOf("@")!==-1?e.split("@")[0]:lL,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var X_D=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Z_D=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,k_D=/\((\S*)(?::(\d+))(?::(\d+))\)/,Hx_=(e,t)=>{let r=X_D.exec(e);if(r){let[,n,a,o]=r;return N$t(t,n,lL,+a,+o)}let i=Z_D.exec(e);if(i){if(i[2]&&i[2].indexOf("eval")===0){let c=k_D.exec(i[2]);c&&(i[2]=c[1],i[3]=c[2],i[4]=c[3])}let[a,o]=fZo(i[1]||lL,i[2]);return N$t(t,o,a,i[3]?+i[3]:void 0,i[4]?+i[4]:void 0)}};var ehD=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Kx_=(e,t)=>{let r=ehD.exec(e);return r?N$t(t,r[2],r[1]||lL,+r[3],r[4]?+r[4]:void 0):void 0};var thD=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,rhD=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Jx_=(e,t)=>{let r=thD.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let o=rhD.exec(r[3]);o&&(r[1]=r[1]||"eval",r[3]=o[1],r[4]=o[2],r[5]="")}let n=r[3],a=r[1]||lL;return[a,n]=fZo(a,n),N$t(t,n,a,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var ihD=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,$x_=(e,t)=>{let r=ihD.exec(e);return r?N$t(t,r[2],r[3]||lL,+r[1]):void 0},nhD=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Yx_=(e,t)=>{let r=nhD.exec(e);return r?N$t(t,r[5],r[3]||r[4]||lL,+r[1],+r[2]):void 0};var ahD=/^\s*[-]{4,}$/,ohD=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,Zx_=(e,t)=>{let r=e.match(ohD);if(r){let i,n,a,o,c;if(r[1]){a=r[1];let u=a.lastIndexOf(".");if(a[u-1]==="."&&u--,u>0){i=a.slice(0,u),n=a.slice(u+1);let l=i.indexOf(".Module");l>0&&(a=a.slice(l+1),i=i.slice(0,l))}o=void 0}n&&(o=i,c=n),n==="<anonymous>"&&(c=void 0,a=void 0),a===void 0&&(c=c||lL,a=o?`${o}.${c}`:c);let d=r[2]?.startsWith("file://")?r[2].slice(7):r[2],s=r[5]==="native";return d?.match(/\/[A-Z]:/)&&(d=d.slice(1)),!d&&r[5]&&!s&&(d=r[5]),{filename:d?decodeURI(d):void 0,module:void 0,function:a,lineno:Xx_(r[3]),colno:Xx_(r[4]),in_app:uhD(d||"",s),platform:t}}if(e.match(ahD))return{filename:e,platform:t}};function uhD(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 Xx_(e){return parseInt(e||"",10)||void 0}var kx_=/\(error: (.*)\)/,eH_=50;function tH_(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,eH_).map(r=>({...r,filename:r.filename||shD(t).filename,function:r.function||lL}))}function shD(e){return e[e.length-1]||{}}function chD(e,...t){return(r,i=0)=>{let n=[],a=r.split(`
|
|
1269
|
-
`);for(let o=i;o<a.length;o++){let c=a[o];if(c.length>1024)continue;let d=kx_.test(c)?c.replace(kx_,"$1"):c;if(!d.match(/\S*Error: /)){for(let s of t){let u=s(d,e);if(u){n.push(u);break}}if(n.length>=eH_)break}}return tH_(n)}}var uNc=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let i=DGa(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:i?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 uyn(t,"DOMException")}isDOMError(t){return uyn(t,"DOMError")}};var sNc=class{match(t){return Xzc(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 i=t.message;return i.error&&typeof i.error.message=="string"?String(i.error.message):String(i)}getStack(t){return t.stacktrace||t.stack||void 0}};var cNc=class{constructor(){}match(t){return Ex_(t)&&t.error!=null}coerce(t,r){let i=r.apply(t.error);return i||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var lhD=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,lNc=class{match(t){return typeof t=="string"}coerce(t,r){let[i,n]=this.getInfos(t);return{type:i??"Error",value:n??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",i=t,n=t.match(lhD);return n&&(r=n[1],i=n[2]),[r,i]}};var rH_=["fatal","error","warning","log","info","debug"];function dZo(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let i=r.length;i>0;i--){let n=r.slice(0,i).join(", ");if(!(n.length>t))return i===r.length||n.length<=t?n:`${n.slice(0,t)}...`}return""}var fNc=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let i=this.getErrorPropertyFromObject(t);return i?r.apply(i):{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 eZo(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let n=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(n+=` with message: '${t.message}'`),n}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),i=dZo(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${i}`}isSeverityLevel(t){return DGa(t)&&!jx_(t)&&rH_.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];if(Ux_(i))return i}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var dNc=class{match(t){return eZo(t)}coerce(t,r){let i=t.constructor.name;return{type:i,value:`${i} captured as exception with keys: ${dZo(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var pNc=class{match(t){return BGa(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var _Nc=class{match(t){return uyn(t,"PromiseRejectionEvent")}coerce(t,r){let i=this.getUnhandledRejectionReason(t);return BGa(i)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(i)}getUnhandledRejectionReason(t){if(BGa(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 hNc=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 aH_=require("fs"),oH_=require("readline"),pZo=new G$.ReduceableCache(25),uH_=new G$.ReduceableCache(20),yNc=7,fhD=1e3,dhD=1e4;async function sH_(e){let t={};for(let n=e.length-1;n>=0;n--){let a=e[n],o=a?.filename;if(!a||typeof o!="string"||typeof a.lineno!="number"||yhD(o)||bhD(a))continue;t[o]||(t[o]=[]),t[o].push(a.lineno)}let r=Object.keys(t);if(r.length==0)return e;let i=[];for(let n of r){if(uH_.get(n))continue;let a=t[n];if(!a)continue;a.sort((d,s)=>d-s);let o=ghD(a);if(o.every(d=>vhD(n,d)))continue;let c=OhD(pZo,n,{});i.push(phD(n,o,c))}return await Promise.all(i).catch(()=>{}),e&&e.length>0&&_hD(e,pZo),pZo.reduce(),e}function phD(e,t,r){return new Promise(i=>{let n=(0,aH_.createReadStream)(e),a=(0,oH_.createInterface)({input:n});function o(){n.destroy(),i()}let c=0,d=0,s=t[d];if(s===void 0)return void o();let u=s[0],l=s[1];function p(){uH_.set(e,1),a.close(),a.removeAllListeners(),o()}n.on("error",p),a.on("error",p),a.on("close",o),a.on("line",_=>{if(c++,!(c<u)&&(r[c]=mhD(_,0),c>=l)){if(d===t.length-1){a.close(),a.removeAllListeners();return}d++;let h=t[d];if(h===void 0){a.close(),a.removeAllListeners();return}u=h[0],l=h[1]}})})}function _hD(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=t.get(r.filename);if(i===void 0)continue;hhD(r.lineno,r,i)}}function hhD(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let n=cH_(e);n<e;n++){let a=r[n];if(a===void 0)return void iH_(t);t.pre_context.push(a)}if(r[e]===void 0)return void iH_(t);t.context_line=r[e];let i=lH_(e);t.post_context=[];for(let n=e+1;n<=i;n++){let a=r[n];if(a===void 0)break;t.post_context.push(a)}}function iH_(e){delete e.pre_context,delete e.context_line,delete e.post_context}function yhD(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function bhD(e){return e.lineno!==void 0&&e.lineno>dhD||e.colno!==void 0&&e.colno>fhD}function vhD(e,t){let r=pZo.get(e);if(r===void 0)return!1;for(let i=t[0];i<=t[1];i++)if(r[i]===void 0)return!1;return!0}function ghD(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let i=nH_(r),n=[];for(;;){if(t===e.length-1){n.push(i);break}let a=e[t+1];if(typeof a!="number")break;a<=i[1]?i[1]=a+yNc:(n.push(i),i=nH_(a)),t++}return n}function nH_(e){return[cH_(e),lH_(e)]}function cH_(e){return Math.max(1,e-yNc)}function lH_(e){return e+yNc}function OhD(e,t,r){let i=e.get(t);return i===void 0?(e.set(t,r),r):i}function mhD(e,t){let r=e,i=r.length;if(i<=150)return r;t>i&&(t=i);let n=Math.max(t-60,0);n<5&&(n=0);let a=Math.min(n+140,i);return a>i-5&&(a=i),a===i&&(n=Math.max(a-140,0)),r=r.slice(n,a),n>0&&(r=`...${r}`),a<i&&(r+="..."),r}function AhD(e,t){let r=!1;return Object.assign(i=>{let a=global.process.listeners("uncaughtException").filter(o=>o.name!=="domainUncaughtExceptionClear"&&o._posthogErrorHandler!==!0).length===0;e(i,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&a&&(r=!0,t(i))},{_posthogErrorHandler:!0})}function fH_(e,t){globalThis.process?.on("uncaughtException",AhD(e,t))}function dH_(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var PhD=2e3,gQi=class e{constructor(t,r,i){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=i,this._rateLimiter=new tZo({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static async buildEventMessage(t,r,i,n){let a={...n};i||(a.$process_person_profile=!1);let o=this.errorPropertiesBuilder.buildFromUnknown(t,r);return o.$exception_list=await this.errorPropertiesBuilder.modifyFrames(o.$exception_list),{event:"$exception",distinctId:i||z$t(),properties:{...o,...a}}}startAutocaptureIfEnabled(){this.isEnabled()&&(fH_(this.onException.bind(this),this.onFatalError.bind(this)),dH_(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{let i=await e.buildEventMessage(t,r),a=i.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(a)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:a}):this.client.capture(i)})())}async onFatalError(t){console.error(t),await this.client.shutdown(PhD),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var pH_="5.17.4";async function _H_(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(n=>n.toString(16).padStart(2,"0")).join("")}var jhD=6e4,whD=1152921504606847e3,EhD=["is_not"],kta=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},q0=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},F$t=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},_Zo=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:i,timeout:n,host:a,customHeaders:o,...c}){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=n,this.projectApiKey=i,this.host=a,this.poller=void 0,this.fetch=c.fetch||fetch,this.onError=c.onError,this.customHeaders=o,this.onLoad=c.onLoad,this.cacheProvider=c.cacheProvider,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,i={},n={},a={}){await this.loadFeatureFlags();let o,c;if(!this.loadedSuccessfullyOnce)return o;if(c=this.featureFlagsByKey[t],c!==void 0)try{o=(await this.computeFlagAndPayloadLocally(c,r,i,n,a)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${o}`))}catch(d){d instanceof F$t||d instanceof q0?this.logMsgIfDebug(()=>console.debug(`${d.name} when computing flag locally: ${t}: ${d.message}`)):d instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${d}`))}return o}async getAllFlagsAndPayloads(t,r={},i={},n={},a){await this.loadFeatureFlags();let o={},c={},d=this.featureFlags.length==0,s=a?a.map(l=>this.featureFlagsByKey[l]).filter(Boolean):this.featureFlags,u={};return await Promise.all(s.map(async l=>{try{let{value:p,payload:_}=await this.computeFlagAndPayloadLocally(l,t,r,i,n,void 0,u);o[l.key]=p,_&&(c[l.key]=_)}catch(p){p instanceof F$t||p instanceof q0?this.logMsgIfDebug(()=>console.debug(`${p.name} when computing flag locally: ${l.key}: ${p.message}`)):p instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${l.key}: ${p}`)),d=!0}})),{response:o,payloads:c,fallbackToFlags:d}}async computeFlagAndPayloadLocally(t,r,i={},n={},a={},o,c,d=!1){if(d||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=o!==void 0?o:await this.computeFlagValueLocally(t,r,i,n,a,c);let u=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:u}}async computeFlagValueLocally(t,r,i={},n={},a={},o={}){if(t.ensure_experience_continuity)throw new q0("Flag has experience continuity enabled");if(!t.active)return!1;let d=(t.filters||{}).aggregation_group_type_index;if(d==null)return await this.matchFeatureFlagProperties(t,r,n,o);{let s=this.groupTypeMapping[String(d)];if(!s)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${d} for feature flag ${t.key}`)),new q0("Flag has unknown group type index");if(!(s in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let u=a[s];return await this.matchFeatureFlagProperties(t,i[s],u,o)}}getFeatureFlagPayload(t,r){let i=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?i=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(i=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),i!=null)){if(typeof i=="object")return i;if(typeof i=="string")try{return JSON.parse(i)}catch{}return i}return null}async evaluateFlagDependency(t,r,i,n){let a=t.key;if(!this.featureFlagsByKey)throw new q0("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new q0(`Flag dependency property for '${a}' is missing required 'dependency_chain' field`);let o=t.dependency_chain;if(!Array.isArray(o))throw new q0(`Flag dependency property for '${a}' has an invalid 'dependency_chain' (expected array, got ${typeof o})`);if(o.length===0)throw new q0(`Circular dependency detected for flag '${a}' (empty dependency chain)`);for(let d of o){if(!(d in n)){let u=this.featureFlagsByKey[d];if(u)if(u.active)try{let l=await this.matchFeatureFlagProperties(u,r,i,n);n[d]=l}catch(l){throw new q0(`Error evaluating flag dependency '${d}' for flag '${a}': ${l}`)}else n[d]=!1;else throw new q0(`Missing flag dependency '${d}' for flag '${a}'`)}if(n[d]==null)throw new q0(`Dependency '${d}' could not be evaluated`)}let c=n[a];return this.flagEvaluatesToExpectedValue(t.value,c)}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,i,n={}){let a=t.filters||{},o=a.groups||[],c=!1,d;for(let s of o)try{if(await this.isConditionMatch(t,r,s,i,n)){let u=s.variant,l=a.multivariate?.variants||[];d=u&&l.some(p=>p.key===u)?u:await this.getMatchingVariant(t,r)||!0;break}}catch(u){if(u instanceof F$t)throw u;if(u instanceof q0)c=!0;else throw u}if(d!==void 0)return d;if(c)throw new q0("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,i,n,a={}){let o=i.rollout_percentage,c=d=>{this.logMsgIfDebug(()=>console.warn(d))};if((i.properties||[]).length>0){for(let d of i.properties){let s=d.type,u=!1;if(u=s==="cohort"?gH_(d,n,this.cohorts,this.debugMode):s==="flag"?await this.evaluateFlagDependency(d,r,n,a):vH_(d,n,c),!u)return!1}if(o==null)return!0}return!(o!=null&&await hH_(t.key,r)>o/100)}async getMatchingVariant(t,r){let i=await hH_(t.key,r,"variant"),n=this.variantLookupTable(t).find(a=>i>=a.valueMin&&i<a.valueMax);if(n)return n.key}variantLookupTable(t){let r=[],i=0,n=0;return((t.filters||{}).multivariate?.variants||[]).forEach(c=>{n=i+c.rollout_percentage/100,r.push({valueMin:i,valueMax:n,key:c.key}),i=n}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,i)=>(r[i.key]=i,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}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),!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 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(jhD,this.pollingInterval*2**this.backOffCount):this.pollingInterval}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(i){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${i}`))}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.shouldBeginExponentialBackoff=!1,this.backOffCount=0;return;case 401:throw this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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 i=await r.json()??{};if(!("flags"in i))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(i)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let n={flags:i.flags??[],groupTypeMapping:i.group_type_mapping||{},cohorts:i.cohorts||{}};if(this.updateFlagState(n),this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(n)}catch(a){this.onError?.(new Error(`Failed to store in cache: ${a}`))}this.onLoad?.(this.featureFlags.length);break}default:return}}catch(t){t instanceof kta&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let i={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(i["If-None-Match"]=r),{method:t,headers:i}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),i=null;if(this.timeout&&typeof this.timeout=="number"){let n=new AbortController;i=syn(()=>{n.abort()},this.timeout),r.signal=n.signal}try{let n=this.fetch;return n(t,r)}finally{clearTimeout(i)}}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((i,n)=>setTimeout(()=>n(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function hH_(e,t,r=""){let i=await _H_(`${e}.${t}${r}`);return parseInt(i.slice(0,15),16)/whD}function vH_(e,t,r){let i=e.key,n=e.value,a=e.operator||"exact";if(i in t){if(a==="is_not_set")throw new q0("Operator is_not_set is not supported")}else throw new q0(`Property ${i} not found in propertyValues`);let o=t[i];if(o==null&&!EhD.includes(a))return r&&r(`Property ${i} cannot have a value of null/undefined with the ${a} operator`),!1;function c(s,u){return Array.isArray(s)?s.map(l=>String(l).toLowerCase()).includes(String(u).toLowerCase()):String(s).toLowerCase()===String(u).toLowerCase()}function d(s,u,l){if(l==="gt")return s>u;if(l==="gte")return s>=u;if(l==="lt")return s<u;if(l==="lte")return s<=u;throw new Error(`Invalid operator: ${l}`)}switch(a){case"exact":return c(n,o);case"is_not":return!c(n,o);case"is_set":return i in t;case"icontains":return String(o).toLowerCase().includes(String(n).toLowerCase());case"not_icontains":return!String(o).toLowerCase().includes(String(n).toLowerCase());case"regex":return yH_(String(n))&&String(o).match(String(n))!==null;case"not_regex":return yH_(String(n))&&String(o).match(String(n))===null;case"gt":case"gte":case"lt":case"lte":{let s=typeof n=="number"?n:null;if(typeof n=="string")try{s=parseFloat(n)}catch{}return s==null||o==null?d(String(o),String(n),a):typeof o=="string"?d(o,String(n),a):d(o,s,a)}case"is_date_after":case"is_date_before":{if(typeof n=="boolean")throw new q0("Date operations cannot be performed on boolean values");let s=MhD(String(n));if(s==null&&(s=bH_(n)),s==null)throw new q0(`Invalid date: ${n}`);let u=bH_(o);return["is_date_before"].includes(a)?u<s:u>s}default:throw new q0(`Unknown operator: ${a}`)}}function ShD(e,t){if(!(e in t))throw new F$t(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function gH_(e,t,r,i=!1){let n=String(e.value);ShD(n,r);let a=r[n];return OH_(a,t,r,i)}function OH_(e,t,r,i=!1){if(!e)return!0;let n=e.type,a=e.values;if(!a||a.length===0)return!0;let o=!1;if("values"in a[0]){for(let c of a)try{let d=OH_(c,t,r,i);if(n==="AND"){if(!d)return!1}else if(d)return!0}catch(d){if(d instanceof F$t)throw d;if(d instanceof q0)i&&console.debug(`Failed to compute property ${c} locally: ${d}`),o=!0;else throw d}if(o)throw new q0("Can't match cohort without a given cohort property value");return n==="AND"}for(let c of a)try{let d;if(c.type==="cohort")d=gH_(c,t,r,i);else if(c.type==="flag"){i&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${c.key||"unknown"}'`);continue}else d=vH_(c,t);let s=c.negation||!1;if(n==="AND"){if(!d&&!s||d&&s)return!1}else if(d&&!s||!d&&s)return!0}catch(d){if(d instanceof F$t)throw d;if(d instanceof q0)i&&console.debug(`Failed to compute property ${c} locally: ${d}`),o=!0;else throw d}if(o)throw new q0("can't match cohort without a given cohort property value");return n==="AND"}function yH_(e){try{return new RegExp(e),!0}catch{return!1}}function bH_(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 q0(`${e} is in an invalid date format`)}throw new q0(`The date provided ${e} must be a string, number, or date object`)}function MhD(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),i=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let n=parseInt(r.groups.number);if(n>=1e4)return null;let a=r.groups.interval;if(a=="h")i.setUTCHours(i.getUTCHours()-n);else if(a=="d")i.setUTCDate(i.getUTCDate()-n);else if(a=="w")i.setUTCDate(i.getUTCDate()-7*n);else if(a=="m")i.setUTCMonth(i.getUTCMonth()-n);else{if(a!="y")return null;i.setUTCFullYear(i.getUTCFullYear()-n)}return i}}var hZo=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var DhD=100,mH_=3e4,BhD=5e4,yZo=class extends TGa{constructor(t,r={}){if(super(t,r),this._memoryStorage=new hZo,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,DhD):mH_,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 _Zo({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:n=>{this._events.emit("error",n)},onLoad:n=>{this._events.emit("localEvaluationFlagsLoaded",n)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider}))}this.errorTracking=new gQi(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||BhD}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 pH_}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:i,properties:n,options:a})=>super.captureStateless(r,i,n,{timestamp:a.timestamp,disableGeoip:a.disableGeoip,uuid:a.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:i,properties:n,options:a})=>super.captureStatelessImmediate(r,i,n,{timestamp:a.timestamp,disableGeoip:a.disableGeoip,uuid:a.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:i}){let{$set:n,$set_once:a,$anon_distinct_id:o,...c}=r,u={$set:n||c,$set_once:a||{},$anon_distinct_id:o??void 0};super.identifyStateless(t,u,{disableGeoip:i})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:i}){let{$set:n,$set_once:a,$anon_distinct_id:o,...c}=r,u={$set:n||c,$set_once:a||{},$anon_distinct_id:o??void 0};super.identifyStatelessImmediate(t,u,{disableGeoip:i})}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=mH_){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let i=setTimeout(()=>{n(),r(!1)},t),n=this._events.on("localEvaluationFlagsLoaded",a=>{clearTimeout(i),n(),r(a>0)})})}async getFeatureFlag(t,r,i){let{groups:n,disableGeoip:a}=i||{},{onlyEvaluateLocally:o,sendFeatureFlagEvents:c,personProperties:d,groupProperties:s}=i||{},u=this.addLocalPersonAndGroupProperties(r,n,d,s);d=u.allPersonProperties,s=u.allGroupProperties,o==null&&(o=!1),c==null&&(c=this.options.sendFeatureFlagEvent??!0);let l=await this.featureFlagsPoller?.getFeatureFlag(t,r,n,d,s),p=l!==void 0,_,h,y;if(!p&&!o){let v=await super.getFeatureFlagDetailStateless(t,r,n,d,s,a);if(v===void 0)return;y=v.response,l=oyn(y),_=v?.requestId,h=v?.evaluatedAt}let b=`${t}_${l}`;return c&&(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(b))&&(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(b):this.distinctIdHasSentFlagCalls[r]=[b],this.capture({distinctId:r,event:"$feature_flag_called",properties:{$feature_flag:t,$feature_flag_response:l,$feature_flag_id:y?.metadata?.id,$feature_flag_version:y?.metadata?.version,$feature_flag_reason:y?.reason?.description??y?.reason?.code,locally_evaluated:p,[`$feature/${t}`]:l,$feature_flag_request_id:_,$feature_flag_evaluated_at:h},groups:n,disableGeoip:a})),l}async getFeatureFlagPayload(t,r,i,n){let{groups:a,disableGeoip:o}=n||{},{onlyEvaluateLocally:c,personProperties:d,groupProperties:s}=n||{},u=this.addLocalPersonAndGroupProperties(r,a,d,s);d=u.allPersonProperties,s=u.allGroupProperties;let l;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let h=this.featureFlagsPoller?.featureFlagsByKey[t];if(h)try{let y=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(h,r,a,d,s,i);y&&(i=y.value,l=y.payload)}catch(y){if(y instanceof F$t||y instanceof q0)this._logger?.info(`${y.name} when computing flag locally: ${h.key}: ${y.message}`);else throw y}}return c==null&&(c=!1),!(l!==void 0)&&!c&&(l=await super.getFeatureFlagPayloadStateless(t,r,a,d,s,o)),l}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 i=await r.json();if(typeof i=="string")try{return JSON.parse(i)}catch{}return i}async isFeatureEnabled(t,r,i){let n=await this.getFeatureFlag(t,r,i);if(n!==void 0)return!!n||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:i,disableGeoip:n,flagKeys:a}=r||{},{onlyEvaluateLocally:o,personProperties:c,groupProperties:d}=r||{},s=this.addLocalPersonAndGroupProperties(t,i,c,d);c=s.allPersonProperties,d=s.allGroupProperties,o==null&&(o=!1);let u=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,i,c,d,a),l={},p={},_=!0;if(u&&(l=u.response,p=u.payloads,_=u.fallbackToFlags),_&&!o){let h=await super.getFeatureFlagsAndPayloadsStateless(t,i,c,d,n,a);l={...l,...h.flags||{}},p={...p,...h.payloads||{}}}return{featureFlags:l,featureFlagPayloads:p}}groupIdentify({groupType:t,groupKey:r,properties:i,distinctId:n,disableGeoip:a}){super.groupIdentifyStateless(t,r,i,{disableGeoip:a},n)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}withContext(t,r,i){return this.context?this.context.run(t,r,i):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)}`,i={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},n=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let a=new AbortController;n=syn(()=>{a.abort()},this.options.requestTimeout),i.signal=a.signal}try{return await this.fetch(r,i)}catch(a){this._events.emit("error",a);return}finally{n&&clearTimeout(n)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let i={},n={};for(let[a,o]of Object.entries(t))if(Sx_(o)&&r&&a in r){let c={};for(let[d,s]of Object.entries(o))c[String(d)]=String(s);n[String(a)]=c}else i[String(a)]=String(o);return{personProperties:i,groupProperties:n}}async getFeatureFlagsForEvent(t,r,i,n){let a=n?.personProperties||{},o=n?.groupProperties||{},c=n?.flagKeys;if(n?.onlyEvaluateLocally??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let s={};for(let[u,l]of Object.entries(r||{}))s[u]=String(l);return await this.getAllFlags(t,{groups:s,personProperties:a,groupProperties:o,disableGeoip:i,onlyEvaluateLocally:!0,flagKeys:c})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let s={};for(let[u,l]of Object.entries(r||{}))s[u]=String(l);return await this.getAllFlags(t,{groups:s,personProperties:a,groupProperties:o,disableGeoip:i,onlyEvaluateLocally:!0,flagKeys:c})}return(await super.getFeatureFlagsStateless(t,r,a,o,i)).flags}addLocalPersonAndGroupProperties(t,r,i,n){let a={distinct_id:t,...i||{}},o={};if(r)for(let c of Object.keys(r))o[c]={$group_key:r[c],...n?.[c]||{}};return{allPersonProperties:a,allGroupProperties:o}}captureException(t,r,i){let n=new Error("PostHog syntheticException");this.addPendingPromise(gQi.buildEventMessage(t,{syntheticException:n},r,i).then(a=>this.capture(a)))}async captureExceptionImmediate(t,r,i){let n=new Error("PostHog syntheticException");this.addPendingPromise(gQi.buildEventMessage(t,{syntheticException:n},r,i).then(a=>this.captureImmediate(a)))}async prepareEventMessage(t){let{distinctId:r,event:i,properties:n,groups:a,sendFeatureFlags:o,timestamp:c,disableGeoip:d,uuid:s}=t,u=this.context?.get(),l=r||u?.distinctId,p={...u?.properties||{},...n||{}};l||(l=z$t(),p.$process_person_profile=!1),u?.sessionId&&!p.$session_id&&(p.$session_id=u.sessionId);let _=this._runBeforeSend({distinctId:l,event:i,properties:p,groups:a,sendFeatureFlags:o,timestamp:c,disableGeoip:d,uuid:s});if(!_)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(o){let y=typeof o=="object"?o:void 0;return await this.getFeatureFlagsForEvent(_.distinctId,a,d,y)}return _.event,{}}).then(y=>{let b={};if(y)for(let[O,m]of Object.entries(y))b[`$feature/${O}`]=m;let v=Object.keys(y||{}).filter(O=>y?.[O]!==!1).sort();return v.length>0&&(b.$active_feature_flags=v),b}).catch(()=>({})).then(y=>({...y,..._.properties||{},$groups:_.groups||a}));return _.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&mx_(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(_.event="$bot_pageview",h.$browser_type="bot"),{distinctId:_.distinctId,event:_.event,properties:h,options:{timestamp:_.timestamp,disableGeoip:_.disableGeoip,uuid:_.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let i=Array.isArray(r)?r:[r],n=t;for(let a of i){if(n=a(n),!n)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!n.properties||Object.keys(n.properties).length===0){let o=`Event '${n.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(o)}}return n}};var AH_=require("async_hooks"),bZo=class{constructor(){this.storage=new AH_.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,i){if(i?.fresh===!0)return this.storage.run(t,r);{let a=this.get()||{},o={distinctId:t.distinctId??a.distinctId,sessionId:t.sessionId??a.sessionId,properties:{...a.properties||{},...t.properties||{}}};return this.storage.run(o,r)}}};var PH_="posthog-node";function IhD(e,{organization:t,projectId:r,prefix:i,severityAllowList:n=["error"],sendExceptionsToPostHog:a=!0}={}){return o=>{if(!(n==="*"||n.includes(o.level)))return o;o.tags||(o.tags={});let d=o.tags[bNc.POSTHOG_ID_TAG];if(d===void 0)return o;let s=e.options.host??"https://us.i.posthog.com",u=new URL(`/project/${e.apiKey}/person/${d}`,s).toString();o.tags["PostHog Person URL"]=u;let l=o.exception?.values||[],p=l.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(y=>({...y,platform:"node:javascript"}))}:void 0})),_={$exception_message:l[0]?.value||o.message,$exception_type:l[0]?.type,$exception_level:o.level,$exception_list:p,$sentry_event_id:o.event_id,$sentry_exception:o.exception,$sentry_exception_message:l[0]?.value||o.message,$sentry_exception_type:l[0]?.type,$sentry_tags:o.tags};return t&&r&&(_.$sentry_url=(i||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+o.event_id),a&&e.capture({event:"$exception",distinctId:d,properties:_}),o}}var bNc=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,i,n,a){this.name=PH_,this.name=PH_,this.setupOnce=function(o,c){let d=c()?.getClient()?.getDsn()?.projectId;o(IhD(t,{organization:r,projectId:d,prefix:i,severityAllowList:n,sendExceptionsToPostHog:a??!0}))}}};gQi.errorPropertiesBuilder=new G$.ErrorPropertiesBuilder([new G$.EventCoercer,new G$.ErrorCoercer,new G$.ObjectCoercer,new G$.StringCoercer,new G$.PrimitiveCoercer],G$.createStackParser("node:javascript",G$.nodeStackLineParser),[yx_(),sH_]);var era=class extends yZo{getLibraryId(){return"posthog-node"}initializeContext(){return new bZo}};var vZo=class{posthog;constructor({posthogApiKey:t}){this.posthog=new era(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.51.0",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var RGa=class{async sendEvent(){}async identify(){}async flush(){}};var tra=require("fs/promises"),SH_=require("os"),MH_=require("path");var jH_=ue(require("crypto")),OZo=new Uint8Array(256),gZo=OZo.length;function vNc(){return gZo>OZo.length-16&&(jH_.default.randomFillSync(OZo),gZo=0),OZo.slice(gZo,gZo+=16)}var fL=[];for(let e=0;e<256;++e)fL.push((e+256).toString(16).slice(1));function wH_(e,t=0){return fL[e[t+0]]+fL[e[t+1]]+fL[e[t+2]]+fL[e[t+3]]+"-"+fL[e[t+4]]+fL[e[t+5]]+"-"+fL[e[t+6]]+fL[e[t+7]]+"-"+fL[e[t+8]]+fL[e[t+9]]+"-"+fL[e[t+10]]+fL[e[t+11]]+fL[e[t+12]]+fL[e[t+13]]+fL[e[t+14]]+fL[e[t+15]]}var EH_=ue(require("crypto")),gNc={randomUUID:EH_.default.randomUUID};function ChD(e,t,r){if(gNc.randomUUID&&!t&&!e)return gNc.randomUUID();e=e||{};let i=e.random||(e.rng||vNc)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return wH_(i)}var Nve=ChD;var qhD="id",ThD=".fern",zGa=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new era(r),this.userId=t==null?void 0:xIc(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.51.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tL({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=qt(Ar.of((0,SH_.homedir)()),xe.of(ThD),xe.of(qhD));await gi(t)||(await(0,tra.mkdir)((0,MH_.dirname)(t),{recursive:!0}),await(0,tra.writeFile)(t,Nve())),this.persistedDistinctId=(await(0,tra.readFile)(t)).toString()}return this.persistedDistinctId}};var ONc;async function rra(){return ONc==null&&(ONc=await RhD()),ONc}async function RhD(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new RGa;let r=await p7o();return r!=null?new zGa({token:r,posthogApiKey:e}):await vea()!=null?new vZo({posthogApiKey:e}):new zGa({token:void 0,posthogApiKey:e})}catch{return new RGa}}function NGa(e,t){return function(){return e.apply(t,arguments)}}var{toString:zhD}=Object.prototype,{getPrototypeOf:ANc}=Object,{iterator:AZo,toStringTag:BH_}=Symbol,PZo=(e=>t=>{let r=zhD.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),J3t=e=>(e=e.toLowerCase(),t=>PZo(t)===e),jZo=e=>t=>typeof t===e,{isArray:nra}=Array,ira=jZo("undefined");function FGa(e){return e!==null&&!ira(e)&&e.constructor!==null&&!ira(e.constructor)&&x$(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var IH_=J3t("ArrayBuffer");function NhD(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&IH_(e.buffer),t}var FhD=jZo("string"),x$=jZo("function"),CH_=jZo("number"),QGa=e=>e!==null&&typeof e=="object",QhD=e=>e===!0||e===!1,mZo=e=>{if(PZo(e)!=="object")return!1;let t=ANc(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(BH_ in e)&&!(AZo in e)},UhD=e=>{if(!QGa(e)||FGa(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},LhD=J3t("Date"),VhD=J3t("File"),WhD=J3t("Blob"),GhD=J3t("FileList"),xhD=e=>QGa(e)&&x$(e.pipe),HhD=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||x$(e.append)&&((t=PZo(e))==="formdata"||t==="object"&&x$(e.toString)&&e.toString()==="[object FormData]"))},KhD=J3t("URLSearchParams"),[JhD,$hD,YhD,XhD]=["ReadableStream","Request","Response","Headers"].map(J3t),ZhD=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function UGa(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let i,n;if(typeof e!="object"&&(e=[e]),nra(e))for(i=0,n=e.length;i<n;i++)t.call(null,e[i],i,e);else{if(FGa(e))return;let a=r?Object.getOwnPropertyNames(e):Object.keys(e),o=a.length,c;for(i=0;i<o;i++)c=a[i],t.call(null,e[c],c,e)}}function qH_(e,t){if(FGa(e))return null;t=t.toLowerCase();let r=Object.keys(e),i=r.length,n;for(;i-- >0;)if(n=r[i],t===n.toLowerCase())return n;return null}var cyn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,TH_=e=>!ira(e)&&e!==cyn;function mNc(){let{caseless:e,skipUndefined:t}=TH_(this)&&this||{},r={},i=(n,a)=>{let o=e&&qH_(r,a)||a;mZo(r[o])&&mZo(n)?r[o]=mNc(r[o],n):mZo(n)?r[o]=mNc({},n):nra(n)?r[o]=n.slice():(!t||!ira(n))&&(r[o]=n)};for(let n=0,a=arguments.length;n<a;n++)arguments[n]&&UGa(arguments[n],i);return r}var khD=(e,t,r,{allOwnKeys:i}={})=>(UGa(t,(n,a)=>{r&&x$(n)?e[a]=NGa(n,r):e[a]=n},{allOwnKeys:i}),e),eyD=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),tyD=(e,t,r,i)=>{e.prototype=Object.create(t.prototype,i),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},ryD=(e,t,r,i)=>{let n,a,o,c={};if(t=t||{},e==null)return t;do{for(n=Object.getOwnPropertyNames(e),a=n.length;a-- >0;)o=n[a],(!i||i(o,e,t))&&!c[o]&&(t[o]=e[o],c[o]=!0);e=r!==!1&&ANc(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},iyD=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;let i=e.indexOf(t,r);return i!==-1&&i===r},nyD=e=>{if(!e)return null;if(nra(e))return e;let t=e.length;if(!CH_(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},ayD=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ANc(Uint8Array)),oyD=(e,t)=>{let i=(e&&e[AZo]).call(e),n;for(;(n=i.next())&&!n.done;){let a=n.value;t.call(e,a[0],a[1])}},uyD=(e,t)=>{let r,i=[];for(;(r=e.exec(t))!==null;)i.push(r);return i},syD=J3t("HTMLFormElement"),cyD=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,i,n){return i.toUpperCase()+n}),DH_=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),lyD=J3t("RegExp"),RH_=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),i={};UGa(r,(n,a)=>{let o;(o=t(n,a,e))!==!1&&(i[a]=o||n)}),Object.defineProperties(e,i)},fyD=e=>{RH_(e,(t,r)=>{if(x$(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let i=e[r];if(x$(i)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},dyD=(e,t)=>{let r={},i=n=>{n.forEach(a=>{r[a]=!0})};return nra(e)?i(e):i(String(e).split(t)),r},pyD=()=>{},_yD=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function hyD(e){return!!(e&&x$(e.append)&&e[BH_]==="FormData"&&e[AZo])}var yyD=e=>{let t=new Array(10),r=(i,n)=>{if(QGa(i)){if(t.indexOf(i)>=0)return;if(FGa(i))return i;if(!("toJSON"in i)){t[n]=i;let a=nra(i)?[]:{};return UGa(i,(o,c)=>{let d=r(o,n+1);!ira(d)&&(a[c]=d)}),t[n]=void 0,a}}return i};return r(e,0)},byD=J3t("AsyncFunction"),vyD=e=>e&&(QGa(e)||x$(e))&&x$(e.then)&&x$(e.catch),zH_=((e,t)=>e?setImmediate:t?((r,i)=>(cyn.addEventListener("message",({source:n,data:a})=>{n===cyn&&a===r&&i.length&&i.shift()()},!1),n=>{i.push(n),cyn.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",x$(cyn.postMessage)),gyD=typeof queueMicrotask<"u"?queueMicrotask.bind(cyn):typeof process<"u"&&process.nextTick||zH_,OyD=e=>e!=null&&x$(e[AZo]),ir={isArray:nra,isArrayBuffer:IH_,isBuffer:FGa,isFormData:HhD,isArrayBufferView:NhD,isString:FhD,isNumber:CH_,isBoolean:QhD,isObject:QGa,isPlainObject:mZo,isEmptyObject:UhD,isReadableStream:JhD,isRequest:$hD,isResponse:YhD,isHeaders:XhD,isUndefined:ira,isDate:LhD,isFile:VhD,isBlob:WhD,isRegExp:lyD,isFunction:x$,isStream:xhD,isURLSearchParams:KhD,isTypedArray:ayD,isFileList:GhD,forEach:UGa,merge:mNc,extend:khD,trim:ZhD,stripBOM:eyD,inherits:tyD,toFlatObject:ryD,kindOf:PZo,kindOfTest:J3t,endsWith:iyD,toArray:nyD,forEachEntry:oyD,matchAll:uyD,isHTMLForm:syD,hasOwnProperty:DH_,hasOwnProp:DH_,reduceDescriptors:RH_,freezeMethods:fyD,toObjectSet:dyD,toCamelCase:cyD,noop:pyD,toFiniteNumber:_yD,findKey:qH_,global:cyn,isContextDefined:TH_,isSpecCompliantForm:hyD,toJSONObject:yyD,isAsyncFn:byD,isThenable:vyD,setImmediate:zH_,asap:gyD,isIterable:OyD};function ara(e,t,r,i,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),i&&(this.request=i),n&&(this.response=n,this.status=n.status?n.status:null)}ir.inherits(ara,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ir.toJSONObject(this.config),code:this.code,status:this.status}}});var NH_=ara.prototype,FH_={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{FH_[e]={value:e}});Object.defineProperties(ara,FH_);Object.defineProperty(NH_,"isAxiosError",{value:!0});ara.from=(e,t,r,i,n,a)=>{let o=Object.create(NH_);ir.toFlatObject(e,o,function(u){return u!==Error.prototype},s=>s!=="isAxiosError");let c=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return ara.call(o,c,d,r,i,n),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",a&&Object.assign(o,a),o};var Na=ara;var QH_=ue(zkn(),1),wZo=QH_.default;function PNc(e){return ir.isPlainObject(e)||ir.isArray(e)}function LH_(e){return ir.endsWith(e,"[]")?e.slice(0,-2):e}function UH_(e,t,r){return e?e.concat(t).map(function(n,a){return n=LH_(n),!r&&a?"["+n+"]":n}).join(r?".":""):t}function myD(e){return ir.isArray(e)&&!e.some(PNc)}var AyD=ir.toFlatObject(ir,{},null,function(t){return/^is[A-Z]/.test(t)});function PyD(e,t,r){if(!ir.isObject(e))throw new TypeError("target must be an object");t=t||new(wZo||FormData),r=ir.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,b){return!ir.isUndefined(b[y])});let i=r.metaTokens,n=r.visitor||u,a=r.dots,o=r.indexes,d=(r.Blob||typeof Blob<"u"&&Blob)&&ir.isSpecCompliantForm(t);if(!ir.isFunction(n))throw new TypeError("visitor must be a function");function s(h){if(h===null)return"";if(ir.isDate(h))return h.toISOString();if(ir.isBoolean(h))return h.toString();if(!d&&ir.isBlob(h))throw new Na("Blob is not supported. Use a Buffer instead.");return ir.isArrayBuffer(h)||ir.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,b){let v=h;if(h&&!b&&typeof h=="object"){if(ir.endsWith(y,"{}"))y=i?y:y.slice(0,-2),h=JSON.stringify(h);else if(ir.isArray(h)&&myD(h)||(ir.isFileList(h)||ir.endsWith(y,"[]"))&&(v=ir.toArray(h)))return y=LH_(y),v.forEach(function(m,g){!(ir.isUndefined(m)||m===null)&&t.append(o===!0?UH_([y],g,a):o===null?y:y+"[]",s(m))}),!1}return PNc(h)?!0:(t.append(UH_(b,y,a),s(h)),!1)}let l=[],p=Object.assign(AyD,{defaultVisitor:u,convertValue:s,isVisitable:PNc});function _(h,y){if(!ir.isUndefined(h)){if(l.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));l.push(h),ir.forEach(h,function(v,O){(!(ir.isUndefined(v)||v===null)&&n.call(t,v,ir.isString(O)?O.trim():O,y,p))===!0&&_(v,y?y.concat(O):[O])}),l.pop()}}if(!ir.isObject(e))throw new TypeError("data must be an object");return _(e),t}var rKi=PyD;function VH_(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(i){return t[i]})}function WH_(e,t){this._pairs=[],e&&rKi(e,this,t)}var GH_=WH_.prototype;GH_.append=function(t,r){this._pairs.push([t,r])};GH_.toString=function(t){let r=t?function(i){return t.call(this,i,VH_)}:VH_;return this._pairs.map(function(n){return r(n[0])+"="+r(n[1])},"").join("&")};var xH_=WH_;function jyD(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function lyn(e,t,r){if(!t)return e;let i=r&&r.encode||jyD;ir.isFunction(r)&&(r={serialize:r});let n=r&&r.serialize,a;if(n?a=n(t,r):a=ir.isURLSearchParams(t)?t.toString():new xH_(t,r).toString(i),a){let o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var jNc=class{constructor(){this.handlers=[]}use(t,r,i){return this.handlers.push({fulfilled:t,rejected:r,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ir.forEach(this.handlers,function(i){i!==null&&t(i)})}},wNc=jNc;var ora={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var $H_=ue(require("crypto"),1);var HH_=ue(require("url"),1),KH_=HH_.default.URLSearchParams;var ENc="abcdefghijklmnopqrstuvwxyz",JH_="0123456789",YH_={DIGIT:JH_,ALPHA:ENc,ALPHA_DIGIT:ENc+ENc.toUpperCase()+JH_},wyD=(e=16,t=YH_.ALPHA_DIGIT)=>{let r="",{length:i}=t,n=new Uint32Array(e);$H_.default.randomFillSync(n);for(let a=0;a<e;a++)r+=t[n[a]%i];return r},XH_={isNode:!0,classes:{URLSearchParams:KH_,FormData:wZo,Blob:typeof Blob<"u"&&Blob||null},ALPHABET:YH_,generateString:wyD,protocols:["http","https","file","data"]};var DNc={};Yt(DNc,{hasBrowserEnv:()=>MNc,hasStandardBrowserEnv:()=>EyD,hasStandardBrowserWebWorkerEnv:()=>SyD,navigator:()=>SNc,origin:()=>MyD});var MNc=typeof window<"u"&&typeof document<"u",SNc=typeof navigator=="object"&&navigator||void 0,EyD=MNc&&(!SNc||["ReactNative","NativeScript","NS"].indexOf(SNc.product)<0),SyD=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MyD=MNc&&window.location.href||"http://localhost";var vA={...DNc,...XH_};function BNc(e,t){return rKi(e,new vA.classes.URLSearchParams,{visitor:function(r,i,n,a){return vA.isNode&&ir.isBuffer(r)?(this.append(i,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...t})}function DyD(e){return ir.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function ByD(e){let t={},r=Object.keys(e),i,n=r.length,a;for(i=0;i<n;i++)a=r[i],t[a]=e[a];return t}function IyD(e){function t(r,i,n,a){let o=r[a++];if(o==="__proto__")return!0;let c=Number.isFinite(+o),d=a>=r.length;return o=!o&&ir.isArray(n)?n.length:o,d?(ir.hasOwnProp(n,o)?n[o]=[n[o],i]:n[o]=i,!c):((!n[o]||!ir.isObject(n[o]))&&(n[o]=[]),t(r,i,n[o],a)&&ir.isArray(n[o])&&(n[o]=ByD(n[o])),!c)}if(ir.isFormData(e)&&ir.isFunction(e.entries)){let r={};return ir.forEachEntry(e,(i,n)=>{t(DyD(i),n,r,0)}),r}return null}var EZo=IyD;function CyD(e,t,r){if(ir.isString(e))try{return(t||JSON.parse)(e),ir.trim(e)}catch(i){if(i.name!=="SyntaxError")throw i}return(r||JSON.stringify)(e)}var INc={transitional:ora,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){let i=r.getContentType()||"",n=i.indexOf("application/json")>-1,a=ir.isObject(t);if(a&&ir.isHTMLForm(t)&&(t=new FormData(t)),ir.isFormData(t))return n?JSON.stringify(EZo(t)):t;if(ir.isArrayBuffer(t)||ir.isBuffer(t)||ir.isStream(t)||ir.isFile(t)||ir.isBlob(t)||ir.isReadableStream(t))return t;if(ir.isArrayBufferView(t))return t.buffer;if(ir.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let c;if(a){if(i.indexOf("application/x-www-form-urlencoded")>-1)return BNc(t,this.formSerializer).toString();if((c=ir.isFileList(t))||i.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return rKi(c?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||n?(r.setContentType("application/json",!1),CyD(t)):t}],transformResponse:[function(t){let r=this.transitional||INc.transitional,i=r&&r.forcedJSONParsing,n=this.responseType==="json";if(ir.isResponse(t)||ir.isReadableStream(t))return t;if(t&&ir.isString(t)&&(i&&!this.responseType||n)){let o=!(r&&r.silentJSONParsing)&&n;try{return JSON.parse(t,this.parseReviver)}catch(c){if(o)throw c.name==="SyntaxError"?Na.from(c,Na.ERR_BAD_RESPONSE,this,null,this.response):c}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vA.classes.FormData,Blob:vA.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ir.forEach(["delete","get","head","post","put","patch"],e=>{INc.headers[e]={}});var ura=INc;var qyD=ir.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ZH_=e=>{let t={},r,i,n;return e&&e.split(`
|
|
1269
|
+
`);for(let o=i;o<a.length;o++){let c=a[o];if(c.length>1024)continue;let d=kx_.test(c)?c.replace(kx_,"$1"):c;if(!d.match(/\S*Error: /)){for(let s of t){let u=s(d,e);if(u){n.push(u);break}}if(n.length>=eH_)break}}return tH_(n)}}var uNc=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let i=DGa(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:i?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 uyn(t,"DOMException")}isDOMError(t){return uyn(t,"DOMError")}};var sNc=class{match(t){return Xzc(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 i=t.message;return i.error&&typeof i.error.message=="string"?String(i.error.message):String(i)}getStack(t){return t.stacktrace||t.stack||void 0}};var cNc=class{constructor(){}match(t){return Ex_(t)&&t.error!=null}coerce(t,r){let i=r.apply(t.error);return i||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var lhD=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,lNc=class{match(t){return typeof t=="string"}coerce(t,r){let[i,n]=this.getInfos(t);return{type:i??"Error",value:n??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",i=t,n=t.match(lhD);return n&&(r=n[1],i=n[2]),[r,i]}};var rH_=["fatal","error","warning","log","info","debug"];function dZo(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let i=r.length;i>0;i--){let n=r.slice(0,i).join(", ");if(!(n.length>t))return i===r.length||n.length<=t?n:`${n.slice(0,t)}...`}return""}var fNc=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let i=this.getErrorPropertyFromObject(t);return i?r.apply(i):{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 eZo(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let n=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(n+=` with message: '${t.message}'`),n}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),i=dZo(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${i}`}isSeverityLevel(t){return DGa(t)&&!jx_(t)&&rH_.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];if(Ux_(i))return i}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var dNc=class{match(t){return eZo(t)}coerce(t,r){let i=t.constructor.name;return{type:i,value:`${i} captured as exception with keys: ${dZo(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var pNc=class{match(t){return BGa(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var _Nc=class{match(t){return uyn(t,"PromiseRejectionEvent")}coerce(t,r){let i=this.getUnhandledRejectionReason(t);return BGa(i)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(i)}getUnhandledRejectionReason(t){if(BGa(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 hNc=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 aH_=require("fs"),oH_=require("readline"),pZo=new G$.ReduceableCache(25),uH_=new G$.ReduceableCache(20),yNc=7,fhD=1e3,dhD=1e4;async function sH_(e){let t={};for(let n=e.length-1;n>=0;n--){let a=e[n],o=a?.filename;if(!a||typeof o!="string"||typeof a.lineno!="number"||yhD(o)||bhD(a))continue;t[o]||(t[o]=[]),t[o].push(a.lineno)}let r=Object.keys(t);if(r.length==0)return e;let i=[];for(let n of r){if(uH_.get(n))continue;let a=t[n];if(!a)continue;a.sort((d,s)=>d-s);let o=ghD(a);if(o.every(d=>vhD(n,d)))continue;let c=OhD(pZo,n,{});i.push(phD(n,o,c))}return await Promise.all(i).catch(()=>{}),e&&e.length>0&&_hD(e,pZo),pZo.reduce(),e}function phD(e,t,r){return new Promise(i=>{let n=(0,aH_.createReadStream)(e),a=(0,oH_.createInterface)({input:n});function o(){n.destroy(),i()}let c=0,d=0,s=t[d];if(s===void 0)return void o();let u=s[0],l=s[1];function p(){uH_.set(e,1),a.close(),a.removeAllListeners(),o()}n.on("error",p),a.on("error",p),a.on("close",o),a.on("line",_=>{if(c++,!(c<u)&&(r[c]=mhD(_,0),c>=l)){if(d===t.length-1){a.close(),a.removeAllListeners();return}d++;let h=t[d];if(h===void 0){a.close(),a.removeAllListeners();return}u=h[0],l=h[1]}})})}function _hD(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=t.get(r.filename);if(i===void 0)continue;hhD(r.lineno,r,i)}}function hhD(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let n=cH_(e);n<e;n++){let a=r[n];if(a===void 0)return void iH_(t);t.pre_context.push(a)}if(r[e]===void 0)return void iH_(t);t.context_line=r[e];let i=lH_(e);t.post_context=[];for(let n=e+1;n<=i;n++){let a=r[n];if(a===void 0)break;t.post_context.push(a)}}function iH_(e){delete e.pre_context,delete e.context_line,delete e.post_context}function yhD(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function bhD(e){return e.lineno!==void 0&&e.lineno>dhD||e.colno!==void 0&&e.colno>fhD}function vhD(e,t){let r=pZo.get(e);if(r===void 0)return!1;for(let i=t[0];i<=t[1];i++)if(r[i]===void 0)return!1;return!0}function ghD(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let i=nH_(r),n=[];for(;;){if(t===e.length-1){n.push(i);break}let a=e[t+1];if(typeof a!="number")break;a<=i[1]?i[1]=a+yNc:(n.push(i),i=nH_(a)),t++}return n}function nH_(e){return[cH_(e),lH_(e)]}function cH_(e){return Math.max(1,e-yNc)}function lH_(e){return e+yNc}function OhD(e,t,r){let i=e.get(t);return i===void 0?(e.set(t,r),r):i}function mhD(e,t){let r=e,i=r.length;if(i<=150)return r;t>i&&(t=i);let n=Math.max(t-60,0);n<5&&(n=0);let a=Math.min(n+140,i);return a>i-5&&(a=i),a===i&&(n=Math.max(a-140,0)),r=r.slice(n,a),n>0&&(r=`...${r}`),a<i&&(r+="..."),r}function AhD(e,t){let r=!1;return Object.assign(i=>{let a=global.process.listeners("uncaughtException").filter(o=>o.name!=="domainUncaughtExceptionClear"&&o._posthogErrorHandler!==!0).length===0;e(i,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&a&&(r=!0,t(i))},{_posthogErrorHandler:!0})}function fH_(e,t){globalThis.process?.on("uncaughtException",AhD(e,t))}function dH_(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var PhD=2e3,gQi=class e{constructor(t,r,i){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=i,this._rateLimiter=new tZo({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static async buildEventMessage(t,r,i,n){let a={...n};i||(a.$process_person_profile=!1);let o=this.errorPropertiesBuilder.buildFromUnknown(t,r);return o.$exception_list=await this.errorPropertiesBuilder.modifyFrames(o.$exception_list),{event:"$exception",distinctId:i||z$t(),properties:{...o,...a}}}startAutocaptureIfEnabled(){this.isEnabled()&&(fH_(this.onException.bind(this),this.onFatalError.bind(this)),dH_(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{let i=await e.buildEventMessage(t,r),a=i.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(a)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:a}):this.client.capture(i)})())}async onFatalError(t){console.error(t),await this.client.shutdown(PhD),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var pH_="5.17.4";async function _H_(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(n=>n.toString(16).padStart(2,"0")).join("")}var jhD=6e4,whD=1152921504606847e3,EhD=["is_not"],kta=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},q0=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},F$t=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},_Zo=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:i,timeout:n,host:a,customHeaders:o,...c}){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=n,this.projectApiKey=i,this.host=a,this.poller=void 0,this.fetch=c.fetch||fetch,this.onError=c.onError,this.customHeaders=o,this.onLoad=c.onLoad,this.cacheProvider=c.cacheProvider,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}async getFeatureFlag(t,r,i={},n={},a={}){await this.loadFeatureFlags();let o,c;if(!this.loadedSuccessfullyOnce)return o;if(c=this.featureFlagsByKey[t],c!==void 0)try{o=(await this.computeFlagAndPayloadLocally(c,r,i,n,a)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${o}`))}catch(d){d instanceof F$t||d instanceof q0?this.logMsgIfDebug(()=>console.debug(`${d.name} when computing flag locally: ${t}: ${d.message}`)):d instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${d}`))}return o}async getAllFlagsAndPayloads(t,r={},i={},n={},a){await this.loadFeatureFlags();let o={},c={},d=this.featureFlags.length==0,s=a?a.map(l=>this.featureFlagsByKey[l]).filter(Boolean):this.featureFlags,u={};return await Promise.all(s.map(async l=>{try{let{value:p,payload:_}=await this.computeFlagAndPayloadLocally(l,t,r,i,n,void 0,u);o[l.key]=p,_&&(c[l.key]=_)}catch(p){p instanceof F$t||p instanceof q0?this.logMsgIfDebug(()=>console.debug(`${p.name} when computing flag locally: ${l.key}: ${p.message}`)):p instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${l.key}: ${p}`)),d=!0}})),{response:o,payloads:c,fallbackToFlags:d}}async computeFlagAndPayloadLocally(t,r,i={},n={},a={},o,c,d=!1){if(d||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=o!==void 0?o:await this.computeFlagValueLocally(t,r,i,n,a,c);let u=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:u}}async computeFlagValueLocally(t,r,i={},n={},a={},o={}){if(t.ensure_experience_continuity)throw new q0("Flag has experience continuity enabled");if(!t.active)return!1;let d=(t.filters||{}).aggregation_group_type_index;if(d==null)return await this.matchFeatureFlagProperties(t,r,n,o);{let s=this.groupTypeMapping[String(d)];if(!s)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${d} for feature flag ${t.key}`)),new q0("Flag has unknown group type index");if(!(s in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;let u=a[s];return await this.matchFeatureFlagProperties(t,i[s],u,o)}}getFeatureFlagPayload(t,r){let i=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?i=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(i=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),i!=null)){if(typeof i=="object")return i;if(typeof i=="string")try{return JSON.parse(i)}catch{}return i}return null}async evaluateFlagDependency(t,r,i,n){let a=t.key;if(!this.featureFlagsByKey)throw new q0("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new q0(`Flag dependency property for '${a}' is missing required 'dependency_chain' field`);let o=t.dependency_chain;if(!Array.isArray(o))throw new q0(`Flag dependency property for '${a}' has an invalid 'dependency_chain' (expected array, got ${typeof o})`);if(o.length===0)throw new q0(`Circular dependency detected for flag '${a}' (empty dependency chain)`);for(let d of o){if(!(d in n)){let u=this.featureFlagsByKey[d];if(u)if(u.active)try{let l=await this.matchFeatureFlagProperties(u,r,i,n);n[d]=l}catch(l){throw new q0(`Error evaluating flag dependency '${d}' for flag '${a}': ${l}`)}else n[d]=!1;else throw new q0(`Missing flag dependency '${d}' for flag '${a}'`)}if(n[d]==null)throw new q0(`Dependency '${d}' could not be evaluated`)}let c=n[a];return this.flagEvaluatesToExpectedValue(t.value,c)}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,i,n={}){let a=t.filters||{},o=a.groups||[],c=!1,d;for(let s of o)try{if(await this.isConditionMatch(t,r,s,i,n)){let u=s.variant,l=a.multivariate?.variants||[];d=u&&l.some(p=>p.key===u)?u:await this.getMatchingVariant(t,r)||!0;break}}catch(u){if(u instanceof F$t)throw u;if(u instanceof q0)c=!0;else throw u}if(d!==void 0)return d;if(c)throw new q0("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,i,n,a={}){let o=i.rollout_percentage,c=d=>{this.logMsgIfDebug(()=>console.warn(d))};if((i.properties||[]).length>0){for(let d of i.properties){let s=d.type,u=!1;if(u=s==="cohort"?gH_(d,n,this.cohorts,this.debugMode):s==="flag"?await this.evaluateFlagDependency(d,r,n,a):vH_(d,n,c),!u)return!1}if(o==null)return!0}return!(o!=null&&await hH_(t.key,r)>o/100)}async getMatchingVariant(t,r){let i=await hH_(t.key,r,"variant"),n=this.variantLookupTable(t).find(a=>i>=a.valueMin&&i<a.valueMax);if(n)return n.key}variantLookupTable(t){let r=[],i=0,n=0;return((t.filters||{}).multivariate?.variants||[]).forEach(c=>{n=i+c.rollout_percentage/100,r.push({valueMin:i,valueMax:n,key:c.key}),i=n}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,i)=>(r[i.key]=i,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}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),!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 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(jhD,this.pollingInterval*2**this.backOffCount):this.pollingInterval}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(i){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${i}`))}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.shouldBeginExponentialBackoff=!1,this.backOffCount=0;return;case 401:throw this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,new kta(`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 i=await r.json()??{};if(!("flags"in i))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(i)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let n={flags:i.flags??[],groupTypeMapping:i.group_type_mapping||{},cohorts:i.cohorts||{}};if(this.updateFlagState(n),this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(n)}catch(a){this.onError?.(new Error(`Failed to store in cache: ${a}`))}this.onLoad?.(this.featureFlags.length);break}default:return}}catch(t){t instanceof kta&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let i={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(i["If-None-Match"]=r),{method:t,headers:i}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),i=null;if(this.timeout&&typeof this.timeout=="number"){let n=new AbortController;i=syn(()=>{n.abort()},this.timeout),r.signal=n.signal}try{let n=this.fetch;return n(t,r)}finally{clearTimeout(i)}}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((i,n)=>setTimeout(()=>n(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function hH_(e,t,r=""){let i=await _H_(`${e}.${t}${r}`);return parseInt(i.slice(0,15),16)/whD}function vH_(e,t,r){let i=e.key,n=e.value,a=e.operator||"exact";if(i in t){if(a==="is_not_set")throw new q0("Operator is_not_set is not supported")}else throw new q0(`Property ${i} not found in propertyValues`);let o=t[i];if(o==null&&!EhD.includes(a))return r&&r(`Property ${i} cannot have a value of null/undefined with the ${a} operator`),!1;function c(s,u){return Array.isArray(s)?s.map(l=>String(l).toLowerCase()).includes(String(u).toLowerCase()):String(s).toLowerCase()===String(u).toLowerCase()}function d(s,u,l){if(l==="gt")return s>u;if(l==="gte")return s>=u;if(l==="lt")return s<u;if(l==="lte")return s<=u;throw new Error(`Invalid operator: ${l}`)}switch(a){case"exact":return c(n,o);case"is_not":return!c(n,o);case"is_set":return i in t;case"icontains":return String(o).toLowerCase().includes(String(n).toLowerCase());case"not_icontains":return!String(o).toLowerCase().includes(String(n).toLowerCase());case"regex":return yH_(String(n))&&String(o).match(String(n))!==null;case"not_regex":return yH_(String(n))&&String(o).match(String(n))===null;case"gt":case"gte":case"lt":case"lte":{let s=typeof n=="number"?n:null;if(typeof n=="string")try{s=parseFloat(n)}catch{}return s==null||o==null?d(String(o),String(n),a):typeof o=="string"?d(o,String(n),a):d(o,s,a)}case"is_date_after":case"is_date_before":{if(typeof n=="boolean")throw new q0("Date operations cannot be performed on boolean values");let s=MhD(String(n));if(s==null&&(s=bH_(n)),s==null)throw new q0(`Invalid date: ${n}`);let u=bH_(o);return["is_date_before"].includes(a)?u<s:u>s}default:throw new q0(`Unknown operator: ${a}`)}}function ShD(e,t){if(!(e in t))throw new F$t(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function gH_(e,t,r,i=!1){let n=String(e.value);ShD(n,r);let a=r[n];return OH_(a,t,r,i)}function OH_(e,t,r,i=!1){if(!e)return!0;let n=e.type,a=e.values;if(!a||a.length===0)return!0;let o=!1;if("values"in a[0]){for(let c of a)try{let d=OH_(c,t,r,i);if(n==="AND"){if(!d)return!1}else if(d)return!0}catch(d){if(d instanceof F$t)throw d;if(d instanceof q0)i&&console.debug(`Failed to compute property ${c} locally: ${d}`),o=!0;else throw d}if(o)throw new q0("Can't match cohort without a given cohort property value");return n==="AND"}for(let c of a)try{let d;if(c.type==="cohort")d=gH_(c,t,r,i);else if(c.type==="flag"){i&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${c.key||"unknown"}'`);continue}else d=vH_(c,t);let s=c.negation||!1;if(n==="AND"){if(!d&&!s||d&&s)return!1}else if(d&&!s||!d&&s)return!0}catch(d){if(d instanceof F$t)throw d;if(d instanceof q0)i&&console.debug(`Failed to compute property ${c} locally: ${d}`),o=!0;else throw d}if(o)throw new q0("can't match cohort without a given cohort property value");return n==="AND"}function yH_(e){try{return new RegExp(e),!0}catch{return!1}}function bH_(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 q0(`${e} is in an invalid date format`)}throw new q0(`The date provided ${e} must be a string, number, or date object`)}function MhD(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),i=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let n=parseInt(r.groups.number);if(n>=1e4)return null;let a=r.groups.interval;if(a=="h")i.setUTCHours(i.getUTCHours()-n);else if(a=="d")i.setUTCDate(i.getUTCDate()-n);else if(a=="w")i.setUTCDate(i.getUTCDate()-7*n);else if(a=="m")i.setUTCMonth(i.getUTCMonth()-n);else{if(a!="y")return null;i.setUTCFullYear(i.getUTCFullYear()-n)}return i}}var hZo=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var DhD=100,mH_=3e4,BhD=5e4,yZo=class extends TGa{constructor(t,r={}){if(super(t,r),this._memoryStorage=new hZo,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,DhD):mH_,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 _Zo({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:n=>{this._events.emit("error",n)},onLoad:n=>{this._events.emit("localEvaluationFlagsLoaded",n)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider}))}this.errorTracking=new gQi(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||BhD}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 pH_}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:i,properties:n,options:a})=>super.captureStateless(r,i,n,{timestamp:a.timestamp,disableGeoip:a.disableGeoip,uuid:a.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:i,properties:n,options:a})=>super.captureStatelessImmediate(r,i,n,{timestamp:a.timestamp,disableGeoip:a.disableGeoip,uuid:a.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:i}){let{$set:n,$set_once:a,$anon_distinct_id:o,...c}=r,u={$set:n||c,$set_once:a||{},$anon_distinct_id:o??void 0};super.identifyStateless(t,u,{disableGeoip:i})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:i}){let{$set:n,$set_once:a,$anon_distinct_id:o,...c}=r,u={$set:n||c,$set_once:a||{},$anon_distinct_id:o??void 0};super.identifyStatelessImmediate(t,u,{disableGeoip:i})}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=mH_){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let i=setTimeout(()=>{n(),r(!1)},t),n=this._events.on("localEvaluationFlagsLoaded",a=>{clearTimeout(i),n(),r(a>0)})})}async getFeatureFlag(t,r,i){let{groups:n,disableGeoip:a}=i||{},{onlyEvaluateLocally:o,sendFeatureFlagEvents:c,personProperties:d,groupProperties:s}=i||{},u=this.addLocalPersonAndGroupProperties(r,n,d,s);d=u.allPersonProperties,s=u.allGroupProperties,o==null&&(o=!1),c==null&&(c=this.options.sendFeatureFlagEvent??!0);let l=await this.featureFlagsPoller?.getFeatureFlag(t,r,n,d,s),p=l!==void 0,_,h,y;if(!p&&!o){let v=await super.getFeatureFlagDetailStateless(t,r,n,d,s,a);if(v===void 0)return;y=v.response,l=oyn(y),_=v?.requestId,h=v?.evaluatedAt}let b=`${t}_${l}`;return c&&(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(b))&&(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(b):this.distinctIdHasSentFlagCalls[r]=[b],this.capture({distinctId:r,event:"$feature_flag_called",properties:{$feature_flag:t,$feature_flag_response:l,$feature_flag_id:y?.metadata?.id,$feature_flag_version:y?.metadata?.version,$feature_flag_reason:y?.reason?.description??y?.reason?.code,locally_evaluated:p,[`$feature/${t}`]:l,$feature_flag_request_id:_,$feature_flag_evaluated_at:h},groups:n,disableGeoip:a})),l}async getFeatureFlagPayload(t,r,i,n){let{groups:a,disableGeoip:o}=n||{},{onlyEvaluateLocally:c,personProperties:d,groupProperties:s}=n||{},u=this.addLocalPersonAndGroupProperties(r,a,d,s);d=u.allPersonProperties,s=u.allGroupProperties;let l;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let h=this.featureFlagsPoller?.featureFlagsByKey[t];if(h)try{let y=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(h,r,a,d,s,i);y&&(i=y.value,l=y.payload)}catch(y){if(y instanceof F$t||y instanceof q0)this._logger?.info(`${y.name} when computing flag locally: ${h.key}: ${y.message}`);else throw y}}return c==null&&(c=!1),!(l!==void 0)&&!c&&(l=await super.getFeatureFlagPayloadStateless(t,r,a,d,s,o)),l}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 i=await r.json();if(typeof i=="string")try{return JSON.parse(i)}catch{}return i}async isFeatureEnabled(t,r,i){let n=await this.getFeatureFlag(t,r,i);if(n!==void 0)return!!n||!1}async getAllFlags(t,r){return(await this.getAllFlagsAndPayloads(t,r)).featureFlags||{}}async getAllFlagsAndPayloads(t,r){let{groups:i,disableGeoip:n,flagKeys:a}=r||{},{onlyEvaluateLocally:o,personProperties:c,groupProperties:d}=r||{},s=this.addLocalPersonAndGroupProperties(t,i,c,d);c=s.allPersonProperties,d=s.allGroupProperties,o==null&&(o=!1);let u=await this.featureFlagsPoller?.getAllFlagsAndPayloads(t,i,c,d,a),l={},p={},_=!0;if(u&&(l=u.response,p=u.payloads,_=u.fallbackToFlags),_&&!o){let h=await super.getFeatureFlagsAndPayloadsStateless(t,i,c,d,n,a);l={...l,...h.flags||{}},p={...p,...h.payloads||{}}}return{featureFlags:l,featureFlagPayloads:p}}groupIdentify({groupType:t,groupKey:r,properties:i,distinctId:n,disableGeoip:a}){super.groupIdentifyStateless(t,r,i,{disableGeoip:a},n)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}withContext(t,r,i){return this.context?this.context.run(t,r,i):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)}`,i={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},n=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let a=new AbortController;n=syn(()=>{a.abort()},this.options.requestTimeout),i.signal=a.signal}try{return await this.fetch(r,i)}catch(a){this._events.emit("error",a);return}finally{n&&clearTimeout(n)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let i={},n={};for(let[a,o]of Object.entries(t))if(Sx_(o)&&r&&a in r){let c={};for(let[d,s]of Object.entries(o))c[String(d)]=String(s);n[String(a)]=c}else i[String(a)]=String(o);return{personProperties:i,groupProperties:n}}async getFeatureFlagsForEvent(t,r,i,n){let a=n?.personProperties||{},o=n?.groupProperties||{},c=n?.flagKeys;if(n?.onlyEvaluateLocally??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let s={};for(let[u,l]of Object.entries(r||{}))s[u]=String(l);return await this.getAllFlags(t,{groups:s,personProperties:a,groupProperties:o,disableGeoip:i,onlyEvaluateLocally:!0,flagKeys:c})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let s={};for(let[u,l]of Object.entries(r||{}))s[u]=String(l);return await this.getAllFlags(t,{groups:s,personProperties:a,groupProperties:o,disableGeoip:i,onlyEvaluateLocally:!0,flagKeys:c})}return(await super.getFeatureFlagsStateless(t,r,a,o,i)).flags}addLocalPersonAndGroupProperties(t,r,i,n){let a={distinct_id:t,...i||{}},o={};if(r)for(let c of Object.keys(r))o[c]={$group_key:r[c],...n?.[c]||{}};return{allPersonProperties:a,allGroupProperties:o}}captureException(t,r,i){let n=new Error("PostHog syntheticException");this.addPendingPromise(gQi.buildEventMessage(t,{syntheticException:n},r,i).then(a=>this.capture(a)))}async captureExceptionImmediate(t,r,i){let n=new Error("PostHog syntheticException");this.addPendingPromise(gQi.buildEventMessage(t,{syntheticException:n},r,i).then(a=>this.captureImmediate(a)))}async prepareEventMessage(t){let{distinctId:r,event:i,properties:n,groups:a,sendFeatureFlags:o,timestamp:c,disableGeoip:d,uuid:s}=t,u=this.context?.get(),l=r||u?.distinctId,p={...u?.properties||{},...n||{}};l||(l=z$t(),p.$process_person_profile=!1),u?.sessionId&&!p.$session_id&&(p.$session_id=u.sessionId);let _=this._runBeforeSend({distinctId:l,event:i,properties:p,groups:a,sendFeatureFlags:o,timestamp:c,disableGeoip:d,uuid:s});if(!_)return Promise.reject(null);let h=await Promise.resolve().then(async()=>{if(o){let y=typeof o=="object"?o:void 0;return await this.getFeatureFlagsForEvent(_.distinctId,a,d,y)}return _.event,{}}).then(y=>{let b={};if(y)for(let[O,m]of Object.entries(y))b[`$feature/${O}`]=m;let v=Object.keys(y||{}).filter(O=>y?.[O]!==!1).sort();return v.length>0&&(b.$active_feature_flags=v),b}).catch(()=>({})).then(y=>({...y,..._.properties||{},$groups:_.groups||a}));return _.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof h.$raw_user_agent=="string"&&mx_(h.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(_.event="$bot_pageview",h.$browser_type="bot"),{distinctId:_.distinctId,event:_.event,properties:h,options:{timestamp:_.timestamp,disableGeoip:_.disableGeoip,uuid:_.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let i=Array.isArray(r)?r:[r],n=t;for(let a of i){if(n=a(n),!n)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!n.properties||Object.keys(n.properties).length===0){let o=`Event '${n.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(o)}}return n}};var AH_=require("async_hooks"),bZo=class{constructor(){this.storage=new AH_.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,i){if(i?.fresh===!0)return this.storage.run(t,r);{let a=this.get()||{},o={distinctId:t.distinctId??a.distinctId,sessionId:t.sessionId??a.sessionId,properties:{...a.properties||{},...t.properties||{}}};return this.storage.run(o,r)}}};var PH_="posthog-node";function IhD(e,{organization:t,projectId:r,prefix:i,severityAllowList:n=["error"],sendExceptionsToPostHog:a=!0}={}){return o=>{if(!(n==="*"||n.includes(o.level)))return o;o.tags||(o.tags={});let d=o.tags[bNc.POSTHOG_ID_TAG];if(d===void 0)return o;let s=e.options.host??"https://us.i.posthog.com",u=new URL(`/project/${e.apiKey}/person/${d}`,s).toString();o.tags["PostHog Person URL"]=u;let l=o.exception?.values||[],p=l.map(h=>({...h,stacktrace:h.stacktrace?{...h.stacktrace,type:"raw",frames:(h.stacktrace.frames||[]).map(y=>({...y,platform:"node:javascript"}))}:void 0})),_={$exception_message:l[0]?.value||o.message,$exception_type:l[0]?.type,$exception_level:o.level,$exception_list:p,$sentry_event_id:o.event_id,$sentry_exception:o.exception,$sentry_exception_message:l[0]?.value||o.message,$sentry_exception_type:l[0]?.type,$sentry_tags:o.tags};return t&&r&&(_.$sentry_url=(i||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+o.event_id),a&&e.capture({event:"$exception",distinctId:d,properties:_}),o}}var bNc=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,i,n,a){this.name=PH_,this.name=PH_,this.setupOnce=function(o,c){let d=c()?.getClient()?.getDsn()?.projectId;o(IhD(t,{organization:r,projectId:d,prefix:i,severityAllowList:n,sendExceptionsToPostHog:a??!0}))}}};gQi.errorPropertiesBuilder=new G$.ErrorPropertiesBuilder([new G$.EventCoercer,new G$.ErrorCoercer,new G$.ObjectCoercer,new G$.StringCoercer,new G$.PrimitiveCoercer],G$.createStackParser("node:javascript",G$.nodeStackLineParser),[yx_(),sH_]);var era=class extends yZo{getLibraryId(){return"posthog-node"}initializeContext(){return new bZo}};var vZo=class{posthog;constructor({posthogApiKey:t}){this.posthog=new era(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"3.51.1",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var RGa=class{async sendEvent(){}async identify(){}async flush(){}};var tra=require("fs/promises"),SH_=require("os"),MH_=require("path");var jH_=ue(require("crypto")),OZo=new Uint8Array(256),gZo=OZo.length;function vNc(){return gZo>OZo.length-16&&(jH_.default.randomFillSync(OZo),gZo=0),OZo.slice(gZo,gZo+=16)}var fL=[];for(let e=0;e<256;++e)fL.push((e+256).toString(16).slice(1));function wH_(e,t=0){return fL[e[t+0]]+fL[e[t+1]]+fL[e[t+2]]+fL[e[t+3]]+"-"+fL[e[t+4]]+fL[e[t+5]]+"-"+fL[e[t+6]]+fL[e[t+7]]+"-"+fL[e[t+8]]+fL[e[t+9]]+"-"+fL[e[t+10]]+fL[e[t+11]]+fL[e[t+12]]+fL[e[t+13]]+fL[e[t+14]]+fL[e[t+15]]}var EH_=ue(require("crypto")),gNc={randomUUID:EH_.default.randomUUID};function ChD(e,t,r){if(gNc.randomUUID&&!t&&!e)return gNc.randomUUID();e=e||{};let i=e.random||(e.rng||vNc)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return wH_(i)}var Nve=ChD;var qhD="id",ThD=".fern",zGa=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new era(r),this.userId=t==null?void 0:xIc(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.51.1",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await tL({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=qt(Ar.of((0,SH_.homedir)()),xe.of(ThD),xe.of(qhD));await gi(t)||(await(0,tra.mkdir)((0,MH_.dirname)(t),{recursive:!0}),await(0,tra.writeFile)(t,Nve())),this.persistedDistinctId=(await(0,tra.readFile)(t)).toString()}return this.persistedDistinctId}};var ONc;async function rra(){return ONc==null&&(ONc=await RhD()),ONc}async function RhD(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new RGa;let r=await p7o();return r!=null?new zGa({token:r,posthogApiKey:e}):await vea()!=null?new vZo({posthogApiKey:e}):new zGa({token:void 0,posthogApiKey:e})}catch{return new RGa}}function NGa(e,t){return function(){return e.apply(t,arguments)}}var{toString:zhD}=Object.prototype,{getPrototypeOf:ANc}=Object,{iterator:AZo,toStringTag:BH_}=Symbol,PZo=(e=>t=>{let r=zhD.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),J3t=e=>(e=e.toLowerCase(),t=>PZo(t)===e),jZo=e=>t=>typeof t===e,{isArray:nra}=Array,ira=jZo("undefined");function FGa(e){return e!==null&&!ira(e)&&e.constructor!==null&&!ira(e.constructor)&&x$(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var IH_=J3t("ArrayBuffer");function NhD(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&IH_(e.buffer),t}var FhD=jZo("string"),x$=jZo("function"),CH_=jZo("number"),QGa=e=>e!==null&&typeof e=="object",QhD=e=>e===!0||e===!1,mZo=e=>{if(PZo(e)!=="object")return!1;let t=ANc(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(BH_ in e)&&!(AZo in e)},UhD=e=>{if(!QGa(e)||FGa(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},LhD=J3t("Date"),VhD=J3t("File"),WhD=J3t("Blob"),GhD=J3t("FileList"),xhD=e=>QGa(e)&&x$(e.pipe),HhD=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||x$(e.append)&&((t=PZo(e))==="formdata"||t==="object"&&x$(e.toString)&&e.toString()==="[object FormData]"))},KhD=J3t("URLSearchParams"),[JhD,$hD,YhD,XhD]=["ReadableStream","Request","Response","Headers"].map(J3t),ZhD=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function UGa(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let i,n;if(typeof e!="object"&&(e=[e]),nra(e))for(i=0,n=e.length;i<n;i++)t.call(null,e[i],i,e);else{if(FGa(e))return;let a=r?Object.getOwnPropertyNames(e):Object.keys(e),o=a.length,c;for(i=0;i<o;i++)c=a[i],t.call(null,e[c],c,e)}}function qH_(e,t){if(FGa(e))return null;t=t.toLowerCase();let r=Object.keys(e),i=r.length,n;for(;i-- >0;)if(n=r[i],t===n.toLowerCase())return n;return null}var cyn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,TH_=e=>!ira(e)&&e!==cyn;function mNc(){let{caseless:e,skipUndefined:t}=TH_(this)&&this||{},r={},i=(n,a)=>{let o=e&&qH_(r,a)||a;mZo(r[o])&&mZo(n)?r[o]=mNc(r[o],n):mZo(n)?r[o]=mNc({},n):nra(n)?r[o]=n.slice():(!t||!ira(n))&&(r[o]=n)};for(let n=0,a=arguments.length;n<a;n++)arguments[n]&&UGa(arguments[n],i);return r}var khD=(e,t,r,{allOwnKeys:i}={})=>(UGa(t,(n,a)=>{r&&x$(n)?e[a]=NGa(n,r):e[a]=n},{allOwnKeys:i}),e),eyD=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),tyD=(e,t,r,i)=>{e.prototype=Object.create(t.prototype,i),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},ryD=(e,t,r,i)=>{let n,a,o,c={};if(t=t||{},e==null)return t;do{for(n=Object.getOwnPropertyNames(e),a=n.length;a-- >0;)o=n[a],(!i||i(o,e,t))&&!c[o]&&(t[o]=e[o],c[o]=!0);e=r!==!1&&ANc(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},iyD=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;let i=e.indexOf(t,r);return i!==-1&&i===r},nyD=e=>{if(!e)return null;if(nra(e))return e;let t=e.length;if(!CH_(t))return null;let r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},ayD=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ANc(Uint8Array)),oyD=(e,t)=>{let i=(e&&e[AZo]).call(e),n;for(;(n=i.next())&&!n.done;){let a=n.value;t.call(e,a[0],a[1])}},uyD=(e,t)=>{let r,i=[];for(;(r=e.exec(t))!==null;)i.push(r);return i},syD=J3t("HTMLFormElement"),cyD=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,i,n){return i.toUpperCase()+n}),DH_=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),lyD=J3t("RegExp"),RH_=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),i={};UGa(r,(n,a)=>{let o;(o=t(n,a,e))!==!1&&(i[a]=o||n)}),Object.defineProperties(e,i)},fyD=e=>{RH_(e,(t,r)=>{if(x$(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;let i=e[r];if(x$(i)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},dyD=(e,t)=>{let r={},i=n=>{n.forEach(a=>{r[a]=!0})};return nra(e)?i(e):i(String(e).split(t)),r},pyD=()=>{},_yD=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function hyD(e){return!!(e&&x$(e.append)&&e[BH_]==="FormData"&&e[AZo])}var yyD=e=>{let t=new Array(10),r=(i,n)=>{if(QGa(i)){if(t.indexOf(i)>=0)return;if(FGa(i))return i;if(!("toJSON"in i)){t[n]=i;let a=nra(i)?[]:{};return UGa(i,(o,c)=>{let d=r(o,n+1);!ira(d)&&(a[c]=d)}),t[n]=void 0,a}}return i};return r(e,0)},byD=J3t("AsyncFunction"),vyD=e=>e&&(QGa(e)||x$(e))&&x$(e.then)&&x$(e.catch),zH_=((e,t)=>e?setImmediate:t?((r,i)=>(cyn.addEventListener("message",({source:n,data:a})=>{n===cyn&&a===r&&i.length&&i.shift()()},!1),n=>{i.push(n),cyn.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",x$(cyn.postMessage)),gyD=typeof queueMicrotask<"u"?queueMicrotask.bind(cyn):typeof process<"u"&&process.nextTick||zH_,OyD=e=>e!=null&&x$(e[AZo]),ir={isArray:nra,isArrayBuffer:IH_,isBuffer:FGa,isFormData:HhD,isArrayBufferView:NhD,isString:FhD,isNumber:CH_,isBoolean:QhD,isObject:QGa,isPlainObject:mZo,isEmptyObject:UhD,isReadableStream:JhD,isRequest:$hD,isResponse:YhD,isHeaders:XhD,isUndefined:ira,isDate:LhD,isFile:VhD,isBlob:WhD,isRegExp:lyD,isFunction:x$,isStream:xhD,isURLSearchParams:KhD,isTypedArray:ayD,isFileList:GhD,forEach:UGa,merge:mNc,extend:khD,trim:ZhD,stripBOM:eyD,inherits:tyD,toFlatObject:ryD,kindOf:PZo,kindOfTest:J3t,endsWith:iyD,toArray:nyD,forEachEntry:oyD,matchAll:uyD,isHTMLForm:syD,hasOwnProperty:DH_,hasOwnProp:DH_,reduceDescriptors:RH_,freezeMethods:fyD,toObjectSet:dyD,toCamelCase:cyD,noop:pyD,toFiniteNumber:_yD,findKey:qH_,global:cyn,isContextDefined:TH_,isSpecCompliantForm:hyD,toJSONObject:yyD,isAsyncFn:byD,isThenable:vyD,setImmediate:zH_,asap:gyD,isIterable:OyD};function ara(e,t,r,i,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),i&&(this.request=i),n&&(this.response=n,this.status=n.status?n.status:null)}ir.inherits(ara,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ir.toJSONObject(this.config),code:this.code,status:this.status}}});var NH_=ara.prototype,FH_={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{FH_[e]={value:e}});Object.defineProperties(ara,FH_);Object.defineProperty(NH_,"isAxiosError",{value:!0});ara.from=(e,t,r,i,n,a)=>{let o=Object.create(NH_);ir.toFlatObject(e,o,function(u){return u!==Error.prototype},s=>s!=="isAxiosError");let c=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return ara.call(o,c,d,r,i,n),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",a&&Object.assign(o,a),o};var Na=ara;var QH_=ue(zkn(),1),wZo=QH_.default;function PNc(e){return ir.isPlainObject(e)||ir.isArray(e)}function LH_(e){return ir.endsWith(e,"[]")?e.slice(0,-2):e}function UH_(e,t,r){return e?e.concat(t).map(function(n,a){return n=LH_(n),!r&&a?"["+n+"]":n}).join(r?".":""):t}function myD(e){return ir.isArray(e)&&!e.some(PNc)}var AyD=ir.toFlatObject(ir,{},null,function(t){return/^is[A-Z]/.test(t)});function PyD(e,t,r){if(!ir.isObject(e))throw new TypeError("target must be an object");t=t||new(wZo||FormData),r=ir.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,b){return!ir.isUndefined(b[y])});let i=r.metaTokens,n=r.visitor||u,a=r.dots,o=r.indexes,d=(r.Blob||typeof Blob<"u"&&Blob)&&ir.isSpecCompliantForm(t);if(!ir.isFunction(n))throw new TypeError("visitor must be a function");function s(h){if(h===null)return"";if(ir.isDate(h))return h.toISOString();if(ir.isBoolean(h))return h.toString();if(!d&&ir.isBlob(h))throw new Na("Blob is not supported. Use a Buffer instead.");return ir.isArrayBuffer(h)||ir.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,b){let v=h;if(h&&!b&&typeof h=="object"){if(ir.endsWith(y,"{}"))y=i?y:y.slice(0,-2),h=JSON.stringify(h);else if(ir.isArray(h)&&myD(h)||(ir.isFileList(h)||ir.endsWith(y,"[]"))&&(v=ir.toArray(h)))return y=LH_(y),v.forEach(function(m,g){!(ir.isUndefined(m)||m===null)&&t.append(o===!0?UH_([y],g,a):o===null?y:y+"[]",s(m))}),!1}return PNc(h)?!0:(t.append(UH_(b,y,a),s(h)),!1)}let l=[],p=Object.assign(AyD,{defaultVisitor:u,convertValue:s,isVisitable:PNc});function _(h,y){if(!ir.isUndefined(h)){if(l.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));l.push(h),ir.forEach(h,function(v,O){(!(ir.isUndefined(v)||v===null)&&n.call(t,v,ir.isString(O)?O.trim():O,y,p))===!0&&_(v,y?y.concat(O):[O])}),l.pop()}}if(!ir.isObject(e))throw new TypeError("data must be an object");return _(e),t}var rKi=PyD;function VH_(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(i){return t[i]})}function WH_(e,t){this._pairs=[],e&&rKi(e,this,t)}var GH_=WH_.prototype;GH_.append=function(t,r){this._pairs.push([t,r])};GH_.toString=function(t){let r=t?function(i){return t.call(this,i,VH_)}:VH_;return this._pairs.map(function(n){return r(n[0])+"="+r(n[1])},"").join("&")};var xH_=WH_;function jyD(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function lyn(e,t,r){if(!t)return e;let i=r&&r.encode||jyD;ir.isFunction(r)&&(r={serialize:r});let n=r&&r.serialize,a;if(n?a=n(t,r):a=ir.isURLSearchParams(t)?t.toString():new xH_(t,r).toString(i),a){let o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}var jNc=class{constructor(){this.handlers=[]}use(t,r,i){return this.handlers.push({fulfilled:t,rejected:r,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ir.forEach(this.handlers,function(i){i!==null&&t(i)})}},wNc=jNc;var ora={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var $H_=ue(require("crypto"),1);var HH_=ue(require("url"),1),KH_=HH_.default.URLSearchParams;var ENc="abcdefghijklmnopqrstuvwxyz",JH_="0123456789",YH_={DIGIT:JH_,ALPHA:ENc,ALPHA_DIGIT:ENc+ENc.toUpperCase()+JH_},wyD=(e=16,t=YH_.ALPHA_DIGIT)=>{let r="",{length:i}=t,n=new Uint32Array(e);$H_.default.randomFillSync(n);for(let a=0;a<e;a++)r+=t[n[a]%i];return r},XH_={isNode:!0,classes:{URLSearchParams:KH_,FormData:wZo,Blob:typeof Blob<"u"&&Blob||null},ALPHABET:YH_,generateString:wyD,protocols:["http","https","file","data"]};var DNc={};Yt(DNc,{hasBrowserEnv:()=>MNc,hasStandardBrowserEnv:()=>EyD,hasStandardBrowserWebWorkerEnv:()=>SyD,navigator:()=>SNc,origin:()=>MyD});var MNc=typeof window<"u"&&typeof document<"u",SNc=typeof navigator=="object"&&navigator||void 0,EyD=MNc&&(!SNc||["ReactNative","NativeScript","NS"].indexOf(SNc.product)<0),SyD=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MyD=MNc&&window.location.href||"http://localhost";var vA={...DNc,...XH_};function BNc(e,t){return rKi(e,new vA.classes.URLSearchParams,{visitor:function(r,i,n,a){return vA.isNode&&ir.isBuffer(r)?(this.append(i,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...t})}function DyD(e){return ir.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function ByD(e){let t={},r=Object.keys(e),i,n=r.length,a;for(i=0;i<n;i++)a=r[i],t[a]=e[a];return t}function IyD(e){function t(r,i,n,a){let o=r[a++];if(o==="__proto__")return!0;let c=Number.isFinite(+o),d=a>=r.length;return o=!o&&ir.isArray(n)?n.length:o,d?(ir.hasOwnProp(n,o)?n[o]=[n[o],i]:n[o]=i,!c):((!n[o]||!ir.isObject(n[o]))&&(n[o]=[]),t(r,i,n[o],a)&&ir.isArray(n[o])&&(n[o]=ByD(n[o])),!c)}if(ir.isFormData(e)&&ir.isFunction(e.entries)){let r={};return ir.forEachEntry(e,(i,n)=>{t(DyD(i),n,r,0)}),r}return null}var EZo=IyD;function CyD(e,t,r){if(ir.isString(e))try{return(t||JSON.parse)(e),ir.trim(e)}catch(i){if(i.name!=="SyntaxError")throw i}return(r||JSON.stringify)(e)}var INc={transitional:ora,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){let i=r.getContentType()||"",n=i.indexOf("application/json")>-1,a=ir.isObject(t);if(a&&ir.isHTMLForm(t)&&(t=new FormData(t)),ir.isFormData(t))return n?JSON.stringify(EZo(t)):t;if(ir.isArrayBuffer(t)||ir.isBuffer(t)||ir.isStream(t)||ir.isFile(t)||ir.isBlob(t)||ir.isReadableStream(t))return t;if(ir.isArrayBufferView(t))return t.buffer;if(ir.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let c;if(a){if(i.indexOf("application/x-www-form-urlencoded")>-1)return BNc(t,this.formSerializer).toString();if((c=ir.isFileList(t))||i.indexOf("multipart/form-data")>-1){let d=this.env&&this.env.FormData;return rKi(c?{"files[]":t}:t,d&&new d,this.formSerializer)}}return a||n?(r.setContentType("application/json",!1),CyD(t)):t}],transformResponse:[function(t){let r=this.transitional||INc.transitional,i=r&&r.forcedJSONParsing,n=this.responseType==="json";if(ir.isResponse(t)||ir.isReadableStream(t))return t;if(t&&ir.isString(t)&&(i&&!this.responseType||n)){let o=!(r&&r.silentJSONParsing)&&n;try{return JSON.parse(t,this.parseReviver)}catch(c){if(o)throw c.name==="SyntaxError"?Na.from(c,Na.ERR_BAD_RESPONSE,this,null,this.response):c}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vA.classes.FormData,Blob:vA.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ir.forEach(["delete","get","head","post","put","patch"],e=>{INc.headers[e]={}});var ura=INc;var qyD=ir.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ZH_=e=>{let t={},r,i,n;return e&&e.split(`
|
|
1270
1270
|
`).forEach(function(o){n=o.indexOf(":"),r=o.substring(0,n).trim().toLowerCase(),i=o.substring(n+1).trim(),!(!r||t[r]&&qyD[r])&&(r==="set-cookie"?t[r]?t[r].push(i):t[r]=[i]:t[r]=t[r]?t[r]+", "+i:i)}),t};var kH_=Symbol("internals");function LGa(e){return e&&String(e).trim().toLowerCase()}function SZo(e){return e===!1||e==null?e:ir.isArray(e)?e.map(SZo):String(e)}function TyD(e){let t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,i;for(;i=r.exec(e);)t[i[1]]=i[2];return t}var RyD=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function CNc(e,t,r,i,n){if(ir.isFunction(i))return i.call(this,t,r);if(n&&(t=r),!!ir.isString(t)){if(ir.isString(i))return t.indexOf(i)!==-1;if(ir.isRegExp(i))return i.test(t)}}function zyD(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,i)=>r.toUpperCase()+i)}function NyD(e,t){let r=ir.toCamelCase(" "+t);["get","set","has"].forEach(i=>{Object.defineProperty(e,i+r,{value:function(n,a,o){return this[i].call(this,t,n,a,o)},configurable:!0})})}var sra=class{constructor(t){t&&this.set(t)}set(t,r,i){let n=this;function a(c,d,s){let u=LGa(d);if(!u)throw new Error("header name must be a non-empty string");let l=ir.findKey(n,u);(!l||n[l]===void 0||s===!0||s===void 0&&n[l]!==!1)&&(n[l||d]=SZo(c))}let o=(c,d)=>ir.forEach(c,(s,u)=>a(s,u,d));if(ir.isPlainObject(t)||t instanceof this.constructor)o(t,r);else if(ir.isString(t)&&(t=t.trim())&&!RyD(t))o(ZH_(t),r);else if(ir.isObject(t)&&ir.isIterable(t)){let c={},d,s;for(let u of t){if(!ir.isArray(u))throw TypeError("Object iterator must return a key-value pair");c[s=u[0]]=(d=c[s])?ir.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}o(c,r)}else t!=null&&a(r,t,i);return this}get(t,r){if(t=LGa(t),t){let i=ir.findKey(this,t);if(i){let n=this[i];if(!r)return n;if(r===!0)return TyD(n);if(ir.isFunction(r))return r.call(this,n,i);if(ir.isRegExp(r))return r.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=LGa(t),t){let i=ir.findKey(this,t);return!!(i&&this[i]!==void 0&&(!r||CNc(this,this[i],i,r)))}return!1}delete(t,r){let i=this,n=!1;function a(o){if(o=LGa(o),o){let c=ir.findKey(i,o);c&&(!r||CNc(i,i[c],c,r))&&(delete i[c],n=!0)}}return ir.isArray(t)?t.forEach(a):a(t),n}clear(t){let r=Object.keys(this),i=r.length,n=!1;for(;i--;){let a=r[i];(!t||CNc(this,this[a],a,t,!0))&&(delete this[a],n=!0)}return n}normalize(t){let r=this,i={};return ir.forEach(this,(n,a)=>{let o=ir.findKey(i,a);if(o){r[o]=SZo(n),delete r[a];return}let c=t?zyD(a):String(a).trim();c!==a&&delete r[a],r[c]=SZo(n),i[c]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){let r=Object.create(null);return ir.forEach(this,(i,n)=>{i!=null&&i!==!1&&(r[n]=t&&ir.isArray(i)?i.join(", "):i)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(`
|
|
1271
1271
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){let i=new this(t);return r.forEach(n=>i.set(n)),i}static accessor(t){let i=(this[kH_]=this[kH_]={accessors:{}}).accessors,n=this.prototype;function a(o){let c=LGa(o);i[c]||(NyD(n,o),i[c]=!0)}return ir.isArray(t)?t.forEach(a):a(t),this}};sra.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ir.reduceDescriptors(sra.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(i){this[r]=i}}});ir.freezeMethods(sra);var PD=sra;function VGa(e,t){let r=this||ura,i=t||r,n=PD.from(i.headers),a=i.data;return ir.forEach(e,function(c){a=c.call(r,a,n.normalize(),t?t.status:void 0)}),n.normalize(),a}function WGa(e){return!!(e&&e.__CANCEL__)}function e7_(e,t,r){Na.call(this,e??"canceled",Na.ERR_CANCELED,t,r),this.name="CanceledError"}ir.inherits(e7_,Na,{__CANCEL__:!0});var Fve=e7_;function Q$t(e,t,r){let i=r.config.validateStatus;!r.status||!i||i(r.status)?e(r):t(new Na("Request failed with status code "+r.status,[Na.ERR_BAD_REQUEST,Na.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function qNc(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function TNc(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function fyn(e,t,r){let i=!qNc(t);return e&&(i||r==!1)?TNc(e,t):t}var j7_=ue(RNc(),1),w7_=ue(require("http"),1),E7_=ue(require("https"),1),S7_=ue(require("util"),1),M7_=ue(s7_(),1),mQi=ue(require("zlib"),1);var _yn="1.12.2";function JGa(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}var ebD=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function JNc(e,t,r){let i=r&&r.Blob||vA.classes.Blob,n=JGa(e);if(t===void 0&&i&&(t=!0),n==="data"){e=n.length?e.slice(n.length+1):e;let a=ebD.exec(e);if(!a)throw new Na("Invalid URL",Na.ERR_INVALID_URL);let o=a[1],c=a[2],d=a[3],s=Buffer.from(decodeURIComponent(d),c?"base64":"utf8");if(t){if(!i)throw new Na("Blob is not supported",Na.ERR_NOT_SUPPORT);return new i([s],{type:o})}return s}throw new Na("Unsupported protocol "+n,Na.ERR_NOT_SUPPORT)}var yyn=ue(require("stream"),1);var c7_=ue(require("stream"),1);var $Nc=Symbol("internals"),YNc=class extends c7_.default.Transform{constructor(t){t=ir.toFlatObject(t,{maxRate:0,chunkSize:64*1024,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,(i,n)=>!ir.isUndefined(n[i])),super({readableHighWaterMark:t.chunkSize});let r=this[$Nc]={timeWindow:t.timeWindow,chunkSize:t.chunkSize,maxRate:t.maxRate,minChunkSize:t.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",i=>{i==="progress"&&(r.isCaptured||(r.isCaptured=!0))})}_read(t){let r=this[$Nc];return r.onReadCallback&&r.onReadCallback(),super._read(t)}_transform(t,r,i){let n=this[$Nc],a=n.maxRate,o=this.readableHighWaterMark,c=n.timeWindow,d=1e3/c,s=a/d,u=n.minChunkSize!==!1?Math.max(n.minChunkSize,s*.01):0,l=(_,h)=>{let y=Buffer.byteLength(_);n.bytesSeen+=y,n.bytes+=y,n.isCaptured&&this.emit("progress",n.bytesSeen),this.push(_)?process.nextTick(h):n.onReadCallback=()=>{n.onReadCallback=null,process.nextTick(h)}},p=(_,h)=>{let y=Buffer.byteLength(_),b=null,v=o,O,m=0;if(a){let g=Date.now();(!n.ts||(m=g-n.ts)>=c)&&(n.ts=g,O=s-n.bytes,n.bytes=O<0?-O:0,m=0),O=s-n.bytes}if(a){if(O<=0)return setTimeout(()=>{h(null,_)},c-m);O<v&&(v=O)}v&&y>v&&y-v>u&&(b=_.subarray(v),_=_.subarray(0,v)),l(_,b?()=>{process.nextTick(h,null,b)}:h)};p(t,function _(h,y){if(h)return i(h);y?p(y,_):i(null)})}},XNc=YNc;var D7_=require("events");var f7_=ue(require("util"),1),d7_=require("stream");var{asyncIterator:l7_}=Symbol,tbD=async function*(e){e.stream?yield*e.stream():e.arrayBuffer?yield await e.arrayBuffer():e[l7_]?yield*e[l7_]():yield e},MZo=tbD;var rbD=vA.ALPHABET.ALPHA_DIGIT+"-_",$Ga=typeof TextEncoder=="function"?new TextEncoder:new f7_.default.TextEncoder,hyn=`\r
|
|
1272
1272
|
`,ibD=$Ga.encode(hyn),nbD=2,ZNc=class{constructor(t,r){let{escapeName:i}=this.constructor,n=ir.isString(r),a=`Content-Disposition: form-data; name="${i(t)}"${!n&&r.name?`; filename="${i(r.name)}"`:""}${hyn}`;n?r=$Ga.encode(String(r).replace(/\r?\n|\r\n?/g,hyn)):a+=`Content-Type: ${r.type||"application/octet-stream"}${hyn}`,this.headers=$Ga.encode(a+hyn),this.contentLength=n?r.byteLength:r.size,this.size=this.headers.byteLength+this.contentLength+nbD,this.name=t,this.value=r}async*encode(){yield this.headers;let{value:t}=this;ir.isTypedArray(t)?yield t:yield*MZo(t),yield ibD}static escapeName(t){return String(t).replace(/[\r\n"]/g,r=>({"\r":"%0D","\n":"%0A",'"':"%22"})[r])}},abD=(e,t,r)=>{let{tag:i="form-data-boundary",size:n=25,boundary:a=i+"-"+vA.generateString(n,rbD)}=r||{};if(!ir.isFormData(e))throw TypeError("FormData instance required");if(a.length<1||a.length>70)throw Error("boundary must be 10-70 characters long");let o=$Ga.encode("--"+a+hyn),c=$Ga.encode("--"+a+"--"+hyn),d=c.byteLength,s=Array.from(e.entries()).map(([l,p])=>{let _=new ZNc(l,p);return d+=_.size,_});d+=o.byteLength*s.length,d=ir.toFiniteNumber(d);let u={"Content-Type":`multipart/form-data; boundary=${a}`};return Number.isFinite(d)&&(u["Content-Length"]=d),t&&t(u),d7_.Readable.from((async function*(){for(let l of s)yield o,yield*l.encode();yield c})())},p7_=abD;var _7_=ue(require("stream"),1),kNc=class extends _7_.default.Transform{__transform(t,r,i){this.push(t),i()}_transform(t,r,i){if(t.length!==0&&(this._transform=this.__transform,t[0]!==120)){let n=Buffer.alloc(2);n[0]=120,n[1]=156,this.push(n,r)}this.__transform(t,r,i)}},h7_=kNc;var obD=(e,t)=>ir.isAsyncFn(e)?function(...r){let i=r.pop();e.apply(this,r).then(n=>{try{t?i(null,...t(n)):i(null,n)}catch(a){i(a)}},i)}:e,y7_=obD;function ubD(e,t){e=e||10;let r=new Array(e),i=new Array(e),n=0,a=0,o;return t=t!==void 0?t:1e3,function(d){let s=Date.now(),u=i[a];o||(o=s),r[n]=d,i[n]=s;let l=a,p=0;for(;l!==n;)p+=r[l++],l=l%e;if(n=(n+1)%e,n===a&&(a=(a+1)%e),s-o<t)return;let _=u&&s-u;return _?Math.round(p*1e3/_):void 0}}var b7_=ubD;function sbD(e,t){let r=0,i=1e3/t,n,a,o=(s,u=Date.now())=>{r=u,n=null,a&&(clearTimeout(a),a=null),e(...s)};return[(...s)=>{let u=Date.now(),l=u-r;l>=i?o(s,u):(n=s,a||(a=setTimeout(()=>{a=null,o(n)},i-l)))},()=>n&&o(n)]}var v7_=sbD;var OQi=(e,t,r=3)=>{let i=0,n=b7_(50,250);return v7_(a=>{let o=a.loaded,c=a.lengthComputable?a.total:void 0,d=o-i,s=n(d),u=o<=c;i=o;let l={loaded:o,total:c,progress:c?o/c:void 0,bytes:d,rate:s||void 0,estimated:s&&c&&u?(c-o)/s:void 0,event:a,lengthComputable:c!=null,[t?"download":"upload"]:!0};e(l)},r)},lra=(e,t)=>{let r=e!=null;return[i=>t[0]({lengthComputable:r,total:e,loaded:i}),t[1]]},fra=e=>(...t)=>ir.asap(()=>e(...t));function eFc(e){if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;let t=e.indexOf(",");if(t<0)return 0;let r=e.slice(5,t),i=e.slice(t+1);if(/;base64/i.test(r)){let a=i.length,o=i.length;for(let p=0;p<o;p++)if(i.charCodeAt(p)===37&&p+2<o){let _=i.charCodeAt(p+1),h=i.charCodeAt(p+2);(_>=48&&_<=57||_>=65&&_<=70||_>=97&&_<=102)&&(h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102)&&(a-=2,p+=2)}let c=0,d=o-1,s=p=>p>=2&&i.charCodeAt(p-2)===37&&i.charCodeAt(p-1)===51&&(i.charCodeAt(p)===68||i.charCodeAt(p)===100);d>=0&&(i.charCodeAt(d)===61?(c++,d--):s(d)&&(c++,d-=3)),c===1&&d>=0&&(i.charCodeAt(d)===61||s(d))&&c++;let l=Math.floor(a/4)*3-(c||0);return l>0?l:0}return Buffer.byteLength(i,"utf8")}var g7_={flush:mQi.default.constants.Z_SYNC_FLUSH,finishFlush:mQi.default.constants.Z_SYNC_FLUSH},cbD={flush:mQi.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:mQi.default.constants.BROTLI_OPERATION_FLUSH},O7_=ir.isFunction(mQi.default.createBrotliDecompress),{http:lbD,https:fbD}=M7_.default,dbD=/https:?/,m7_=vA.protocols.map(e=>e+":"),A7_=(e,[t,r])=>(e.on("end",r).on("error",r),t);function pbD(e,t){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,t)}function B7_(e,t,r){let i=t;if(!i&&i!==!1){let n=j7_.default.getProxyForUrl(r);n&&(i=new URL(n))}if(i){if(i.username&&(i.auth=(i.username||"")+":"+(i.password||"")),i.auth){(i.auth.username||i.auth.password)&&(i.auth=(i.auth.username||"")+":"+(i.auth.password||""));let a=Buffer.from(i.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.headers.host=e.hostname+(e.port?":"+e.port:"");let n=i.hostname||i.host;e.hostname=n,e.host=n,e.port=i.port,e.path=r,i.protocol&&(e.protocol=i.protocol.includes(":")?i.protocol:`${i.protocol}:`)}e.beforeRedirects.proxy=function(a){B7_(a,t,a.href)}}var _bD=typeof process<"u"&&ir.kindOf(process)==="process",hbD=e=>new Promise((t,r)=>{let i,n,a=(d,s)=>{n||(n=!0,i&&i(d,s))},o=d=>{a(d),t(d)},c=d=>{a(d,!0),r(d)};e(o,c,d=>i=d).catch(c)}),ybD=({address:e,family:t})=>{if(!ir.isString(e))throw TypeError("address must be a string");return{address:e,family:t||(e.indexOf(".")<0?6:4)}},P7_=(e,t)=>ybD(ir.isObject(e)?e:{address:e,family:t}),I7_=_bD&&function(t){return hbD(async function(i,n,a){let{data:o,lookup:c,family:d}=t,{responseType:s,responseEncoding:u}=t,l=t.method.toUpperCase(),p,_=!1,h;if(c){let $=y7_(c,de=>ir.isArray(de)?de:[de]);c=(de,be,W)=>{$(de,be,(x,Ee,se)=>{if(x)return W(x);let Oe=ir.isArray(Ee)?Ee.map(Fe=>P7_(Fe)):[P7_(Ee,se)];be.all?W(x,Oe):W(x,Oe[0].address,Oe[0].family)})}}let y=new D7_.EventEmitter,b=()=>{t.cancelToken&&t.cancelToken.unsubscribe(v),t.signal&&t.signal.removeEventListener("abort",v),y.removeAllListeners()};a(($,de)=>{p=!0,de&&(_=!0,b())});function v($){y.emit("abort",!$||$.type?new Fve(null,t,h):$)}y.once("abort",n),(t.cancelToken||t.signal)&&(t.cancelToken&&t.cancelToken.subscribe(v),t.signal&&(t.signal.aborted?v():t.signal.addEventListener("abort",v)));let O=fyn(t.baseURL,t.url,t.allowAbsoluteUrls),m=new URL(O,vA.hasBrowserEnv?vA.origin:void 0),g=m.protocol||m7_[0];if(g==="data:"){if(t.maxContentLength>-1){let de=String(t.url||O||"");if(eFc(de)>t.maxContentLength)return n(new Na("maxContentLength size of "+t.maxContentLength+" exceeded",Na.ERR_BAD_RESPONSE,t))}let $;if(l!=="GET")return Q$t(i,n,{status:405,statusText:"method not allowed",headers:{},config:t});try{$=JNc(t.url,s==="blob",{Blob:t.env&&t.env.Blob})}catch(de){throw Na.from(de,Na.ERR_BAD_REQUEST,t)}return s==="text"?($=$.toString(u),(!u||u==="utf8")&&($=ir.stripBOM($))):s==="stream"&&($=yyn.default.Readable.from($)),Q$t(i,n,{data:$,status:200,statusText:"OK",headers:new PD,config:t})}if(m7_.indexOf(g)===-1)return n(new Na("Unsupported protocol "+g,Na.ERR_BAD_REQUEST,t));let A=PD.from(t.headers).normalize();A.set("User-Agent","axios/"+_yn,!1);let{onUploadProgress:j,onDownloadProgress:M}=t,w=t.maxRate,D,B;if(ir.isSpecCompliantForm(o)){let $=A.getContentType(/boundary=([-_\w\d]{10,70})/i);o=p7_(o,de=>{A.set(de)},{tag:`axios-${_yn}-boundary`,boundary:$&&$[1]||void 0})}else if(ir.isFormData(o)&&ir.isFunction(o.getHeaders)){if(A.set(o.getHeaders()),!A.hasContentLength())try{let $=await S7_.default.promisify(o.getLength).call(o);Number.isFinite($)&&$>=0&&A.setContentLength($)}catch{}}else if(ir.isBlob(o)||ir.isFile(o))o.size&&A.setContentType(o.type||"application/octet-stream"),A.setContentLength(o.size||0),o=yyn.default.Readable.from(MZo(o));else if(o&&!ir.isStream(o)){if(!Buffer.isBuffer(o))if(ir.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else if(ir.isString(o))o=Buffer.from(o,"utf-8");else return n(new Na("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",Na.ERR_BAD_REQUEST,t));if(A.setContentLength(o.length,!1),t.maxBodyLength>-1&&o.length>t.maxBodyLength)return n(new Na("Request body larger than maxBodyLength limit",Na.ERR_BAD_REQUEST,t))}let R=ir.toFiniteNumber(A.getContentLength());ir.isArray(w)?(D=w[0],B=w[1]):D=B=w,o&&(j||D)&&(ir.isStream(o)||(o=yyn.default.Readable.from(o,{objectMode:!1})),o=yyn.default.pipeline([o,new XNc({maxRate:ir.toFiniteNumber(D)})],ir.noop),j&&o.on("progress",A7_(o,lra(R,OQi(fra(j),!1,3)))));let T;if(t.auth){let $=t.auth.username||"",de=t.auth.password||"";T=$+":"+de}if(!T&&m.username){let $=m.username,de=m.password;T=$+":"+de}T&&A.delete("authorization");let q;try{q=lyn(m.pathname+m.search,t.params,t.paramsSerializer).replace(/^\?/,"")}catch($){let de=new Error($.message);return de.config=t,de.url=t.url,de.exists=!0,n(de)}A.set("Accept-Encoding","gzip, compress, deflate"+(O7_?", br":""),!1);let z={path:q,method:l,headers:A.toJSON(),agents:{http:t.httpAgent,https:t.httpsAgent},auth:T,protocol:g,family:d,beforeRedirect:pbD,beforeRedirects:{}};!ir.isUndefined(c)&&(z.lookup=c),t.socketPath?z.socketPath=t.socketPath:(z.hostname=m.hostname.startsWith("[")?m.hostname.slice(1,-1):m.hostname,z.port=m.port,B7_(z,t.proxy,g+"//"+m.hostname+(m.port?":"+m.port:"")+z.path));let N,H=dbD.test(z.protocol);if(z.agent=H?t.httpsAgent:t.httpAgent,t.transport?N=t.transport:t.maxRedirects===0?N=H?E7_.default:w7_.default:(t.maxRedirects&&(z.maxRedirects=t.maxRedirects),t.beforeRedirect&&(z.beforeRedirects.config=t.beforeRedirect),N=H?fbD:lbD),t.maxBodyLength>-1?z.maxBodyLength=t.maxBodyLength:z.maxBodyLength=1/0,t.insecureHTTPParser&&(z.insecureHTTPParser=t.insecureHTTPParser),h=N.request(z,function(de){if(h.destroyed)return;let be=[de],W=+de.headers["content-length"];if(M||B){let Fe=new XNc({maxRate:ir.toFiniteNumber(B)});M&&Fe.on("progress",A7_(Fe,lra(W,OQi(fra(M),!0,3)))),be.push(Fe)}let x=de,Ee=de.req||h;if(t.decompress!==!1&&de.headers["content-encoding"])switch((l==="HEAD"||de.statusCode===204)&&delete de.headers["content-encoding"],(de.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":be.push(mQi.default.createUnzip(g7_)),delete de.headers["content-encoding"];break;case"deflate":be.push(new h7_),be.push(mQi.default.createUnzip(g7_)),delete de.headers["content-encoding"];break;case"br":O7_&&(be.push(mQi.default.createBrotliDecompress(cbD)),delete de.headers["content-encoding"])}x=be.length>1?yyn.default.pipeline(be,ir.noop):be[0];let se=yyn.default.finished(x,()=>{se(),b()}),Oe={status:de.statusCode,statusText:de.statusMessage,headers:new PD(de.headers),config:t,request:Ee};if(s==="stream")Oe.data=x,Q$t(i,n,Oe);else{let Fe=[],ae=0;x.on("data",function(Ge){Fe.push(Ge),ae+=Ge.length,t.maxContentLength>-1&&ae>t.maxContentLength&&(_=!0,x.destroy(),n(new Na("maxContentLength size of "+t.maxContentLength+" exceeded",Na.ERR_BAD_RESPONSE,t,Ee)))}),x.on("aborted",function(){if(_)return;let Ge=new Na("stream has been aborted",Na.ERR_BAD_RESPONSE,t,Ee);x.destroy(Ge),n(Ge)}),x.on("error",function(Ge){h.destroyed||n(Na.from(Ge,null,t,Ee))}),x.on("end",function(){try{let Ge=Fe.length===1?Fe[0]:Buffer.concat(Fe);s!=="arraybuffer"&&(Ge=Ge.toString(u),(!u||u==="utf8")&&(Ge=ir.stripBOM(Ge))),Oe.data=Ge}catch(Ge){return n(Na.from(Ge,null,t,Oe.request,Oe))}Q$t(i,n,Oe)})}y.once("abort",Fe=>{x.destroyed||(x.emit("error",Fe),x.destroy())})}),y.once("abort",$=>{n($),h.destroy($)}),h.on("error",function(de){n(Na.from(de,null,t,h))}),h.on("socket",function(de){de.setKeepAlive(!0,1e3*60)}),t.timeout){let $=parseInt(t.timeout,10);if(Number.isNaN($)){n(new Na("error trying to parse `config.timeout` to int",Na.ERR_BAD_OPTION_VALUE,t,h));return}h.setTimeout($,function(){if(p)return;let be=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",W=t.transitional||ora;t.timeoutErrorMessage&&(be=t.timeoutErrorMessage),n(new Na(be,W.clarifyTimeoutError?Na.ETIMEDOUT:Na.ECONNABORTED,t,h)),v()})}if(ir.isStream(o)){let $=!1,de=!1;o.on("end",()=>{$=!0}),o.once("error",be=>{de=!0,h.destroy(be)}),o.on("close",()=>{!$&&!de&&v(new Fve("Request stream has been aborted",t,h))}),o.pipe(h)}else h.end(o)})};var C7_=vA.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,vA.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(vA.origin),vA.navigator&&/(msie|trident)/i.test(vA.navigator.userAgent)):()=>!0;var q7_=vA.hasStandardBrowserEnv?{write(e,t,r,i,n,a){let o=[e+"="+encodeURIComponent(t)];ir.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),ir.isString(i)&&o.push("path="+i),ir.isString(n)&&o.push("domain="+n),a===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){let t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var T7_=e=>e instanceof PD?{...e}:e;function $3t(e,t){t=t||{};let r={};function i(s,u,l,p){return ir.isPlainObject(s)&&ir.isPlainObject(u)?ir.merge.call({caseless:p},s,u):ir.isPlainObject(u)?ir.merge({},u):ir.isArray(u)?u.slice():u}function n(s,u,l,p){if(ir.isUndefined(u)){if(!ir.isUndefined(s))return i(void 0,s,l,p)}else return i(s,u,l,p)}function a(s,u){if(!ir.isUndefined(u))return i(void 0,u)}function o(s,u){if(ir.isUndefined(u)){if(!ir.isUndefined(s))return i(void 0,s)}else return i(void 0,u)}function c(s,u,l){if(l in t)return i(s,u);if(l in e)return i(void 0,s)}let d={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:c,headers:(s,u,l)=>n(T7_(s),T7_(u),l,!0)};return ir.forEach(Object.keys({...e,...t}),function(u){let l=d[u]||n,p=l(e[u],t[u],u);ir.isUndefined(p)&&l!==c||(r[u]=p)}),r}var DZo=e=>{let t=$3t({},e),{data:r,withXSRFToken:i,xsrfHeaderName:n,xsrfCookieName:a,headers:o,auth:c}=t;if(t.headers=o=PD.from(o),t.url=lyn(fyn(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&o.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ir.isFormData(r)){if(vA.hasStandardBrowserEnv||vA.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(ir.isFunction(r.getHeaders)){let d=r.getHeaders(),s=["content-type","content-length"];Object.entries(d).forEach(([u,l])=>{s.includes(u.toLowerCase())&&o.set(u,l)})}}if(vA.hasStandardBrowserEnv&&(i&&ir.isFunction(i)&&(i=i(t)),i||i!==!1&&C7_(t.url))){let d=n&&a&&q7_.read(a);d&&o.set(n,d)}return t};var bbD=typeof XMLHttpRequest<"u",R7_=bbD&&function(e){return new Promise(function(r,i){let n=DZo(e),a=n.data,o=PD.from(n.headers).normalize(),{responseType:c,onUploadProgress:d,onDownloadProgress:s}=n,u,l,p,_,h;function y(){_&&_(),h&&h(),n.cancelToken&&n.cancelToken.unsubscribe(u),n.signal&&n.signal.removeEventListener("abort",u)}let b=new XMLHttpRequest;b.open(n.method.toUpperCase(),n.url,!0),b.timeout=n.timeout;function v(){if(!b)return;let m=PD.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!c||c==="text"||c==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:m,config:e,request:b};Q$t(function(M){r(M),y()},function(M){i(M),y()},A),b=null}"onloadend"in b?b.onloadend=v:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(v)},b.onabort=function(){b&&(i(new Na("Request aborted",Na.ECONNABORTED,e,b)),b=null)},b.onerror=function(g){let A=g&&g.message?g.message:"Network Error",j=new Na(A,Na.ERR_NETWORK,e,b);j.event=g||null,i(j),b=null},b.ontimeout=function(){let g=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded",A=n.transitional||ora;n.timeoutErrorMessage&&(g=n.timeoutErrorMessage),i(new Na(g,A.clarifyTimeoutError?Na.ETIMEDOUT:Na.ECONNABORTED,e,b)),b=null},a===void 0&&o.setContentType(null),"setRequestHeader"in b&&ir.forEach(o.toJSON(),function(g,A){b.setRequestHeader(A,g)}),ir.isUndefined(n.withCredentials)||(b.withCredentials=!!n.withCredentials),c&&c!=="json"&&(b.responseType=n.responseType),s&&([p,h]=OQi(s,!0),b.addEventListener("progress",p)),d&&b.upload&&([l,_]=OQi(d),b.upload.addEventListener("progress",l),b.upload.addEventListener("loadend",_)),(n.cancelToken||n.signal)&&(u=m=>{b&&(i(!m||m.type?new Fve(null,e,b):m),b.abort(),b=null)},n.cancelToken&&n.cancelToken.subscribe(u),n.signal&&(n.signal.aborted?u():n.signal.addEventListener("abort",u)));let O=JGa(n.url);if(O&&vA.protocols.indexOf(O)===-1){i(new Na("Unsupported protocol "+O+":",Na.ERR_BAD_REQUEST,e));return}b.send(a||null)})};var vbD=(e,t)=>{let{length:r}=e=e?e.filter(Boolean):[];if(t||r){let i=new AbortController,n,a=function(s){if(!n){n=!0,c();let u=s instanceof Error?s:this.reason;i.abort(u instanceof Na?u:new Fve(u instanceof Error?u.message:u))}},o=t&&setTimeout(()=>{o=null,a(new Na(`timeout ${t} of ms exceeded`,Na.ETIMEDOUT))},t),c=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(s=>{s.unsubscribe?s.unsubscribe(a):s.removeEventListener("abort",a)}),e=null)};e.forEach(s=>s.addEventListener("abort",a));let{signal:d}=i;return d.unsubscribe=()=>ir.asap(c),d}},z7_=vbD;var gbD=function*(e,t){let r=e.byteLength;if(!t||r<t){yield e;return}let i=0,n;for(;i<r;)n=i+t,yield e.slice(i,n),i=n},ObD=async function*(e,t){for await(let r of mbD(e))yield*gbD(r,t)},mbD=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:r,value:i}=await t.read();if(r)break;yield i}}finally{await t.cancel()}},tFc=(e,t,r,i)=>{let n=ObD(e,t),a=0,o,c=d=>{o||(o=!0,i&&i(d))};return new ReadableStream({async pull(d){try{let{done:s,value:u}=await n.next();if(s){c(),d.close();return}let l=u.byteLength;if(r){let p=a+=l;r(p)}d.enqueue(new Uint8Array(u))}catch(s){throw c(s),s}},cancel(d){return c(d),n.return()}},{highWaterMark:2})};var N7_=64*1024,{isFunction:BZo}=ir,AbD=(({Request:e,Response:t})=>({Request:e,Response:t}))(ir.global),{ReadableStream:F7_,TextEncoder:Q7_}=ir.global,U7_=(e,...t)=>{try{return!!e(...t)}catch{return!1}},PbD=e=>{e=ir.merge.call({skipUndefined:!0},AbD,e);let{fetch:t,Request:r,Response:i}=e,n=t?BZo(t):typeof fetch=="function",a=BZo(r),o=BZo(i);if(!n)return!1;let c=n&&BZo(F7_),d=n&&(typeof Q7_=="function"?(h=>y=>h.encode(y))(new Q7_):async h=>new Uint8Array(await new r(h).arrayBuffer())),s=a&&c&&U7_(()=>{let h=!1,y=new r(vA.origin,{body:new F7_,method:"POST",get duplex(){return h=!0,"half"}}).headers.has("Content-Type");return h&&!y}),u=o&&c&&U7_(()=>ir.isReadableStream(new i("").body)),l={stream:u&&(h=>h.body)};n&&["text","arrayBuffer","blob","formData","stream"].forEach(h=>{!l[h]&&(l[h]=(y,b)=>{let v=y&&y[h];if(v)return v.call(y);throw new Na(`Response type '${h}' is not supported`,Na.ERR_NOT_SUPPORT,b)})});let p=async h=>{if(h==null)return 0;if(ir.isBlob(h))return h.size;if(ir.isSpecCompliantForm(h))return(await new r(vA.origin,{method:"POST",body:h}).arrayBuffer()).byteLength;if(ir.isArrayBufferView(h)||ir.isArrayBuffer(h))return h.byteLength;if(ir.isURLSearchParams(h)&&(h=h+""),ir.isString(h))return(await d(h)).byteLength},_=async(h,y)=>{let b=ir.toFiniteNumber(h.getContentLength());return b??p(y)};return async h=>{let{url:y,method:b,data:v,signal:O,cancelToken:m,timeout:g,onDownloadProgress:A,onUploadProgress:j,responseType:M,headers:w,withCredentials:D="same-origin",fetchOptions:B}=DZo(h),R=t||fetch;M=M?(M+"").toLowerCase():"text";let T=z7_([O,m&&m.toAbortSignal()],g),q=null,z=T&&T.unsubscribe&&(()=>{T.unsubscribe()}),N;try{if(j&&s&&b!=="get"&&b!=="head"&&(N=await _(w,v))!==0){let x=new r(y,{method:"POST",body:v,duplex:"half"}),Ee;if(ir.isFormData(v)&&(Ee=x.headers.get("content-type"))&&w.setContentType(Ee),x.body){let[se,Oe]=lra(N,OQi(fra(j)));v=tFc(x.body,N7_,se,Oe)}}ir.isString(D)||(D=D?"include":"omit");let H=a&&"credentials"in r.prototype,$={...B,signal:T,method:b.toUpperCase(),headers:w.normalize().toJSON(),body:v,duplex:"half",credentials:H?D:void 0};q=a&&new r(y,$);let de=await(a?R(q,B):R(y,$)),be=u&&(M==="stream"||M==="response");if(u&&(A||be&&z)){let x={};["status","statusText","headers"].forEach(Fe=>{x[Fe]=de[Fe]});let Ee=ir.toFiniteNumber(de.headers.get("content-length")),[se,Oe]=A&&lra(Ee,OQi(fra(A),!0))||[];de=new i(tFc(de.body,N7_,se,()=>{Oe&&Oe(),z&&z()}),x)}M=M||"text";let W=await l[ir.findKey(l,M)||"text"](de,h);return!be&&z&&z(),await new Promise((x,Ee)=>{Q$t(x,Ee,{data:W,headers:PD.from(de.headers),status:de.status,statusText:de.statusText,config:h,request:q})})}catch(H){throw z&&z(),H&&H.name==="TypeError"&&/Load failed|fetch/i.test(H.message)?Object.assign(new Na("Network Error",Na.ERR_NETWORK,h,q),{cause:H.cause||H}):Na.from(H,H&&H.code,h,q)}}},jbD=new Map,rFc=e=>{let t=e?e.env:{},{fetch:r,Request:i,Response:n}=t,a=[i,n,r],o=a.length,c=o,d,s,u=jbD;for(;c--;)d=a[c],s=u.get(d),s===void 0&&u.set(d,s=c?new Map:PbD(t)),u=s;return s},xx9=rFc();var iFc={http:I7_,xhr:R7_,fetch:{get:rFc}};ir.forEach(iFc,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});var L7_=e=>`- ${e}`,EbD=e=>ir.isFunction(e)||e===null||e===!1,IZo={getAdapter:(e,t)=>{e=ir.isArray(e)?e:[e];let{length:r}=e,i,n,a={};for(let o=0;o<r;o++){i=e[o];let c;if(n=i,!EbD(i)&&(n=iFc[(c=String(i)).toLowerCase()],n===void 0))throw new Na(`Unknown adapter '${c}'`);if(n&&(ir.isFunction(n)||(n=n.get(t))))break;a[c||"#"+o]=n}if(!n){let o=Object.entries(a).map(([d,s])=>`adapter ${d} `+(s===!1?"is not supported by the environment":"is not available in the build")),c=r?o.length>1?`since :
|
|
@@ -1505,7 +1505,7 @@ ${g}${O}${A}${Goa}`});var wKa=class{result=Qw.Success;logImmediately;logPrefix;s
|
|
|
1505
1505
|
Run ${Rt.cyan("fern generator upgrade")} to upgrade your generators.`),n.length>2&&(r+=`
|
|
1506
1506
|
Run ${Rt.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),pra(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function CHc({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:i=!0}){if(!Hyh(e))return;let n=t??"",a=e.filter(c=>c.isUpgradeAvailable);r!=null&&(a=a.slice(0,r+1));let o=a.sort((c,d)=>c.generatorName.localeCompare(d.generatorName)||c.currentVersion.localeCompare(d.currentVersion));for(let c of o)n+=`
|
|
1507
1507
|
${await h5D(c.generatorName)} (${c.apiName!=null?"API: "+c.apiName+", ":""}Group: ${c.generatorGroup}) `+Rt.dim(c.currentVersion)+Rt.reset(" \u2192 ")+Rt.green(c.latestVersion);return n+=`
|
|
1508
|
-
`,i?pra(n,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):n}async function h5D(e){let r=await new xyh.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 y5D({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:i,channel:n,includeMajor:a}){if(t.length===1){let c={type:"singleApi",versions:{}};return await Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,s,u,l)=>{c.versions[s]==null&&(c.versions[s]={});let p=fHi(u.name,l),_=await j3t({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:n,includeMajor:a,context:l});_!=null&&(c.versions[s][u.name]={previousVersion:u.version,latestVersion:_})},generatorFilter:r,groupFilter:i}),c}let o={type:"multiApi",versions:{}};return await Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,d,s,u)=>{if(c==null)return;o.versions[c]==null&&(o.versions[c]={}),o.versions[c][d]==null&&(o.versions[c][d]={});let l=fHi(s.name,u),p=await j3t({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:s.version,channel:n,includeMajor:a,context:u});p!=null&&(o.versions[c][d][s.name]={previousVersion:s.version,latestVersion:p})},generatorFilter:r,groupFilter:i}),o}async function Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:i,groupFilter:n}){await Promise.all(t.map(async a=>{await e.runTaskForWorkspace(a,async o=>{let c=await Cve({absolutePathToWorkspace:a.absoluteFilePath,context:o});if(c==null||c.groups==null)return;let d=i!=null?QN(i):void 0;for(let s of c.groups)if(!(n!=null&&s.groupName!==n))for(let u of s.generators)d!=null&&u.name!==d||await r(a.workspaceName,s.groupName,u,o)})}))}function $yh(e,t,r){let i=[];for(let[n,a]of Object.entries(e))for(let[o,c]of Object.entries(a)){r.debug(`Checking if ${o} in group ${n} has an upgrade available...`);let d=pY(c.latestVersion,c.previousVersion);r.debug(`Latest version: ${c.latestVersion}. `+(d?"Upgrade available.":"No upgrade available.")),i.push({generatorName:o,generatorGroup:n,apiName:t,isUpgradeAvailable:d,currentVersion:c.previousVersion,latestVersion:c.latestVersion})}return i}async function w_u({project:e,cliContext:t,generatorFilter:r,groupFilter:i,channel:n,includeMajor:a}){let o=[];if(e!=null){let c=await y5D({cliContext:t,project:e,generatorFilter:r,groupFilter:i,channel:n,includeMajor:a});if(c.type==="multiApi")for(let[d,s]of Object.entries(c.versions))o.push(...$yh(s,d,t.logger));else o.push(...$yh(c.versions,void 0,t.logger))}return o}var EKa=class extends Error{response;request;options;constructor(t,r,i){let n=t.status||t.status===0?t.status:"",a=t.statusText??"",o=`${n} ${a}`.trim(),c=o?`status code ${o}`:"an unknown error";super(`Request failed with ${c}: ${r.method} ${r.url}`),this.name="HTTPError",this.response=t,this.request=r,this.options=i}};var Hoa=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var qHc=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",i=typeof globalThis.Request=="function";if(r&&i)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(n){if(n instanceof Error&&n.message==="unsupported BodyInit type")return!1;throw n}return e&&!t})(),Yyh=typeof globalThis.AbortController=="function",Xyh=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",Zyh=typeof globalThis.ReadableStream=="function",kyh=typeof globalThis.FormData=="function",E_u=["get","post","put","patch","head","delete"],b5D=()=>{};b5D();var ebh={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},S_u=2147483647,tbh=new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,M_u=Symbol("stop"),rbh={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},ibh={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0};var v5D=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[r,i]of e)t+=tbh,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${r}"`).length,t+=typeof i=="string"?new TextEncoder().encode(i).length:i.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if("byteLength"in e)return e.byteLength;if(typeof e=="object"&&e!==null)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},nbh=(e,t,r)=>{let i,n=0;return e.pipeThrough(new TransformStream({transform(a,o){if(o.enqueue(a),i){n+=i.byteLength;let c=t===0?0:n/t;c>=1&&(c=1-Number.EPSILON),r?.({percent:c,totalBytes:Math.max(t,n),transferredBytes:n},i)}i=a},flush(){i&&(n+=i.byteLength,r?.({percent:1,totalBytes:Math.max(t,n),transferredBytes:n},i))}}))},abh=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let r=Number(e.headers.get("content-length"))||0;return new Response(nbh(e.body,r,t),{status:e.status,statusText:e.statusText,headers:e.headers})},obh=(e,t,r)=>{if(!e.body)return e;let i=v5D(r??e.body);return new Request(e,{duplex:"half",body:nbh(e.body,i,t)})};var Koa=e=>e!==null&&typeof e=="object";var SKa=(...e)=>{for(let t of e)if((!Koa(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return zHc({},...e)},THc=(e={},t={})=>{let r=new globalThis.Headers(e),i=t instanceof globalThis.Headers,n=new globalThis.Headers(t);for(let[a,o]of n.entries())i&&o==="undefined"||o===void 0?r.delete(a):r.set(a,o);return r};function D_u(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:zHc(e[r]??[],t[r]??[])}var RHc=(e={},t={})=>({beforeRequest:D_u(e,t,"beforeRequest"),beforeRetry:D_u(e,t,"beforeRetry"),afterResponse:D_u(e,t,"afterResponse"),beforeError:D_u(e,t,"beforeError")}),zHc=(...e)=>{let t={},r={},i={};for(let n of e)if(Array.isArray(n))Array.isArray(t)||(t=[]),t=[...t,...n];else if(Koa(n)){for(let[a,o]of Object.entries(n))Koa(o)&&a in t&&(o=zHc(t[a],o)),t={...t,[a]:o};Koa(n.hooks)&&(i=RHc(i,n.hooks),t.hooks=i),Koa(n.headers)&&(r=THc(r,n.headers),t.headers=r)}return t};var sbh=e=>E_u.includes(e)?e.toUpperCase():e,g5D=["get","put","head","delete","options","trace"],O5D=[408,413,429,500,502,503,504],m5D=[413,429,503],ubh={limit:2,methods:g5D,statusCodes:O5D,afterStatusCodes:m5D,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},cbh=(e={})=>{if(typeof e=="number")return{...ubh,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...ubh,...e}};async function NHc(e,t,r,i){return new Promise((n,a)=>{let o=setTimeout(()=>{r&&r.abort(),a(new Hoa(e))},i.timeout);i.fetch(e,t).then(n).catch(a).then(()=>{clearTimeout(o)})})}async function FHc(e,{signal:t}){return new Promise((r,i)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",n,{once:!0}));function n(){clearTimeout(a),i(t.reason)}let a=setTimeout(()=>{t?.removeEventListener("abort",n),r()},e)})}var lbh=(e,t)=>{let r={};for(let i in t)!(i in ibh)&&!(i in rbh)&&!(i in e)&&(r[i]=t[i]);return r},fbh=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e=="object"?Object.keys(e).length>0:typeof e=="string"?e.trim().length>0:!!e;var MKa=class e{static create(t,r){let i=new e(t,r),n=async()=>{if(typeof i._options.timeout=="number"&&i._options.timeout>S_u)throw new RangeError(`The \`timeout\` option cannot be greater than ${S_u}`);await Promise.resolve();let c=await i._fetch();for(let d of i._options.hooks.afterResponse){let s=await d(i.request,i._options,i._decorateResponse(c.clone()));s instanceof globalThis.Response&&(c=s)}if(i._decorateResponse(c),!c.ok&&i._options.throwHttpErrors){let d=new EKa(c,i.request,i._options);for(let s of i._options.hooks.beforeError)d=await s(d);throw d}if(i._options.onDownloadProgress){if(typeof i._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Zyh)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return abh(c.clone(),i._options.onDownloadProgress)}return c},o=(i._options.retry.methods.includes(i.request.method.toLowerCase())?i._retry(n):n()).finally(async()=>{let c=i._originalRequest,d=[];c&&!c.bodyUsed&&d.push(c.body?.cancel()),i.request.bodyUsed||d.push(i.request.body?.cancel()),await Promise.all(d)});for(let[c,d]of Object.entries(ebh))c==="bytes"&&typeof globalThis.Response?.prototype?.bytes!="function"||(o[c]=async()=>{i.request.headers.set("accept",i.request.headers.get("accept")||d);let s=await o;if(c==="json"){if(s.status===204)return"";let u=await s.text();return u===""?"":r.parseJson?r.parseJson(u):JSON.parse(u)}return s[c]()});return o}static#e(t){return t&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof URLSearchParams)?Object.fromEntries(Object.entries(t).filter(([,r])=>r!==void 0)):t}request;abortController;_retryCount=0;_input;_options;_originalRequest;constructor(t,r={}){if(this._input=t,this._options={...r,headers:THc(this._input.headers,r.headers),hooks:RHc({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:sbh(r.method??this._input.method??"GET"),prefixUrl:String(r.prefixUrl||""),retry:cbh(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(Yyh&&Xyh){let i=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=i?AbortSignal.any([i,this.abortController.signal]):this.abortController.signal}if(qHc&&(this._options.duplex="half"),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),fbh(this._options.searchParams)){let n="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(e.#e(this._options.searchParams)).toString()),a=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,n);(kyh&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(a,{...this.request}),this._options)}if(this._options.onUploadProgress){if(typeof this._options.onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");if(!qHc)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=obh(this.request,this._options.onUploadProgress,this._options.body))}}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount>this._options.retry.limit||t instanceof Hoa)throw t;if(t instanceof EKa){if(!this._options.retry.statusCodes.includes(t.response.status))throw t;let i=t.response.headers.get("Retry-After")??t.response.headers.get("RateLimit-Reset")??t.response.headers.get("X-RateLimit-Reset")??t.response.headers.get("X-Rate-Limit-Reset");if(i&&this._options.retry.afterStatusCodes.includes(t.response.status)){let n=Number(i)*1e3;Number.isNaN(n)?n=Date.parse(i)-Date.now():n>=Date.parse("2024-01-01")&&(n-=Date.now());let a=this._options.retry.maxRetryAfter??n;return n<a?n:a}if(t.response.status===413)throw t}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(r){let i=Math.min(this._calculateRetryDelay(r),S_u);if(this._retryCount<1)throw r;await FHc(i,{signal:this._options.signal});for(let n of this._options.hooks.beforeRetry)if(await n({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===M_u)return;return this._retry(t)}}async _fetch(){for(let r of this._options.hooks.beforeRequest){let i=await r(this.request,this._options);if(i instanceof Request){this.request=i;break}if(i instanceof Response)return i}let t=lbh(this.request,this._options);return this._originalRequest=this.request,this.request=this._originalRequest.clone(),this._options.timeout===!1?this._options.fetch(this._originalRequest,t):NHc(this._originalRequest,t,this.abortController,this._options)}};var QHc=e=>{let t=(r,i)=>MKa.create(r,SKa(e,i));for(let r of E_u)t[r]=(i,n)=>MKa.create(i,SKa(e,n,{method:r}));return t.create=r=>QHc(SKa(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),QHc(SKa(e,r))),t.stop=M_u,t},A5D=QHc(),dbh=A5D;var Rbh=ue(Tbh(),1);function GHc(e){let t=(0,Rbh.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var Dvh=ue(Mvh(),1),Bvh=ue(SJ(),1),i7c=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},n7c=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function a7c(e,t={}){let{version:r="latest"}=t,{omitDeprecated:i=!0}=t,n=e.split("/")[0],a=t.registryUrl??GHc(n),o=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),c=(0,Dvh.default)(a.toString(),{recursive:!0}),d={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"};t.fullMetadata&&delete d.accept,c&&(d.authorization=`${c.type} ${c.token}`);let s;try{s=await dbh(o,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new i7c(e):l}if(t.allVersions)return s;let u=new n7c(e,r);if(s["dist-tags"][r]){let{time:l}=s;s=s.versions[s["dist-tags"][r]],s.time=l}else if(r){let l=!!s.versions[r];if(i&&!l)for(let[_,h]of Object.entries(s.versions))h.deprecated&&delete s.versions[_];if(!l){let _=Object.keys(s.versions);if(r=Bvh.default.maxSatisfying(_,r),!r)throw u}let{time:p}=s;if(s=s.versions[r],s.time=p,!s)throw u}return s}async function TKa(e,t){let{version:r}=await a7c(e.toLowerCase(),t);return r}async function UJi({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:TKa(e.packageName,{version:t?"prerelease":"latest"})}var Ivh=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],L_u=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Au.Info;isLocal;constructor(t,r,{isLocal:i}){this.ttyAwareLogger=new idn(t,r),this.isLocal=i??!1;let n=this.getPackageName(),a=this.getPackageVersion(),o=this.getCliName();(n==null||a==null||o==null)&&this.exitProgram(),this.environment={packageName:n,packageVersion:a,cliName:o}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.51.0"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${Rt.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new pM}failWithoutThrowing(t,r){this.didSucceed=!1,eLa({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await rra()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((i,n)=>setTimeout(()=>n("Request timed out"),300))]),r=await Kyh({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
1508
|
+
`,i?pra(n,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):n}async function h5D(e){let r=await new xyh.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 y5D({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:i,channel:n,includeMajor:a}){if(t.length===1){let c={type:"singleApi",versions:{}};return await Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(d,s,u,l)=>{c.versions[s]==null&&(c.versions[s]={});let p=fHi(u.name,l),_=await j3t({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:n,includeMajor:a,context:l});_!=null&&(c.versions[s][u.name]={previousVersion:u.version,latestVersion:_})},generatorFilter:r,groupFilter:i}),c}let o={type:"multiApi",versions:{}};return await Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,d,s,u)=>{if(c==null)return;o.versions[c]==null&&(o.versions[c]={}),o.versions[c][d]==null&&(o.versions[c][d]={});let l=fHi(s.name,u),p=await j3t({generatorName:l,cliVersion:e.environment.packageVersion,currentGeneratorVersion:s.version,channel:n,includeMajor:a,context:u});p!=null&&(o.versions[c][d][s.name]={previousVersion:s.version,latestVersion:p})},generatorFilter:r,groupFilter:i}),o}async function Jyh({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:i,groupFilter:n}){await Promise.all(t.map(async a=>{await e.runTaskForWorkspace(a,async o=>{let c=await Cve({absolutePathToWorkspace:a.absoluteFilePath,context:o});if(c==null||c.groups==null)return;let d=i!=null?QN(i):void 0;for(let s of c.groups)if(!(n!=null&&s.groupName!==n))for(let u of s.generators)d!=null&&u.name!==d||await r(a.workspaceName,s.groupName,u,o)})}))}function $yh(e,t,r){let i=[];for(let[n,a]of Object.entries(e))for(let[o,c]of Object.entries(a)){r.debug(`Checking if ${o} in group ${n} has an upgrade available...`);let d=pY(c.latestVersion,c.previousVersion);r.debug(`Latest version: ${c.latestVersion}. `+(d?"Upgrade available.":"No upgrade available.")),i.push({generatorName:o,generatorGroup:n,apiName:t,isUpgradeAvailable:d,currentVersion:c.previousVersion,latestVersion:c.latestVersion})}return i}async function w_u({project:e,cliContext:t,generatorFilter:r,groupFilter:i,channel:n,includeMajor:a}){let o=[];if(e!=null){let c=await y5D({cliContext:t,project:e,generatorFilter:r,groupFilter:i,channel:n,includeMajor:a});if(c.type==="multiApi")for(let[d,s]of Object.entries(c.versions))o.push(...$yh(s,d,t.logger));else o.push(...$yh(c.versions,void 0,t.logger))}return o}var EKa=class extends Error{response;request;options;constructor(t,r,i){let n=t.status||t.status===0?t.status:"",a=t.statusText??"",o=`${n} ${a}`.trim(),c=o?`status code ${o}`:"an unknown error";super(`Request failed with ${c}: ${r.method} ${r.url}`),this.name="HTTPError",this.response=t,this.request=r,this.options=i}};var Hoa=class extends Error{request;constructor(t){super(`Request timed out: ${t.method} ${t.url}`),this.name="TimeoutError",this.request=t}};var qHc=(()=>{let e=!1,t=!1,r=typeof globalThis.ReadableStream=="function",i=typeof globalThis.Request=="function";if(r&&i)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(n){if(n instanceof Error&&n.message==="unsupported BodyInit type")return!1;throw n}return e&&!t})(),Yyh=typeof globalThis.AbortController=="function",Xyh=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",Zyh=typeof globalThis.ReadableStream=="function",kyh=typeof globalThis.FormData=="function",E_u=["get","post","put","patch","head","delete"],b5D=()=>{};b5D();var ebh={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},S_u=2147483647,tbh=new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,M_u=Symbol("stop"),rbh={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},ibh={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0};var v5D=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[r,i]of e)t+=tbh,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${r}"`).length,t+=typeof i=="string"?new TextEncoder().encode(i).length:i.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if("byteLength"in e)return e.byteLength;if(typeof e=="object"&&e!==null)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},nbh=(e,t,r)=>{let i,n=0;return e.pipeThrough(new TransformStream({transform(a,o){if(o.enqueue(a),i){n+=i.byteLength;let c=t===0?0:n/t;c>=1&&(c=1-Number.EPSILON),r?.({percent:c,totalBytes:Math.max(t,n),transferredBytes:n},i)}i=a},flush(){i&&(n+=i.byteLength,r?.({percent:1,totalBytes:Math.max(t,n),transferredBytes:n},i))}}))},abh=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let r=Number(e.headers.get("content-length"))||0;return new Response(nbh(e.body,r,t),{status:e.status,statusText:e.statusText,headers:e.headers})},obh=(e,t,r)=>{if(!e.body)return e;let i=v5D(r??e.body);return new Request(e,{duplex:"half",body:nbh(e.body,i,t)})};var Koa=e=>e!==null&&typeof e=="object";var SKa=(...e)=>{for(let t of e)if((!Koa(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return zHc({},...e)},THc=(e={},t={})=>{let r=new globalThis.Headers(e),i=t instanceof globalThis.Headers,n=new globalThis.Headers(t);for(let[a,o]of n.entries())i&&o==="undefined"||o===void 0?r.delete(a):r.set(a,o);return r};function D_u(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:zHc(e[r]??[],t[r]??[])}var RHc=(e={},t={})=>({beforeRequest:D_u(e,t,"beforeRequest"),beforeRetry:D_u(e,t,"beforeRetry"),afterResponse:D_u(e,t,"afterResponse"),beforeError:D_u(e,t,"beforeError")}),zHc=(...e)=>{let t={},r={},i={};for(let n of e)if(Array.isArray(n))Array.isArray(t)||(t=[]),t=[...t,...n];else if(Koa(n)){for(let[a,o]of Object.entries(n))Koa(o)&&a in t&&(o=zHc(t[a],o)),t={...t,[a]:o};Koa(n.hooks)&&(i=RHc(i,n.hooks),t.hooks=i),Koa(n.headers)&&(r=THc(r,n.headers),t.headers=r)}return t};var sbh=e=>E_u.includes(e)?e.toUpperCase():e,g5D=["get","put","head","delete","options","trace"],O5D=[408,413,429,500,502,503,504],m5D=[413,429,503],ubh={limit:2,methods:g5D,statusCodes:O5D,afterStatusCodes:m5D,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},cbh=(e={})=>{if(typeof e=="number")return{...ubh,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...ubh,...e}};async function NHc(e,t,r,i){return new Promise((n,a)=>{let o=setTimeout(()=>{r&&r.abort(),a(new Hoa(e))},i.timeout);i.fetch(e,t).then(n).catch(a).then(()=>{clearTimeout(o)})})}async function FHc(e,{signal:t}){return new Promise((r,i)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",n,{once:!0}));function n(){clearTimeout(a),i(t.reason)}let a=setTimeout(()=>{t?.removeEventListener("abort",n),r()},e)})}var lbh=(e,t)=>{let r={};for(let i in t)!(i in ibh)&&!(i in rbh)&&!(i in e)&&(r[i]=t[i]);return r},fbh=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e=="object"?Object.keys(e).length>0:typeof e=="string"?e.trim().length>0:!!e;var MKa=class e{static create(t,r){let i=new e(t,r),n=async()=>{if(typeof i._options.timeout=="number"&&i._options.timeout>S_u)throw new RangeError(`The \`timeout\` option cannot be greater than ${S_u}`);await Promise.resolve();let c=await i._fetch();for(let d of i._options.hooks.afterResponse){let s=await d(i.request,i._options,i._decorateResponse(c.clone()));s instanceof globalThis.Response&&(c=s)}if(i._decorateResponse(c),!c.ok&&i._options.throwHttpErrors){let d=new EKa(c,i.request,i._options);for(let s of i._options.hooks.beforeError)d=await s(d);throw d}if(i._options.onDownloadProgress){if(typeof i._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Zyh)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return abh(c.clone(),i._options.onDownloadProgress)}return c},o=(i._options.retry.methods.includes(i.request.method.toLowerCase())?i._retry(n):n()).finally(async()=>{let c=i._originalRequest,d=[];c&&!c.bodyUsed&&d.push(c.body?.cancel()),i.request.bodyUsed||d.push(i.request.body?.cancel()),await Promise.all(d)});for(let[c,d]of Object.entries(ebh))c==="bytes"&&typeof globalThis.Response?.prototype?.bytes!="function"||(o[c]=async()=>{i.request.headers.set("accept",i.request.headers.get("accept")||d);let s=await o;if(c==="json"){if(s.status===204)return"";let u=await s.text();return u===""?"":r.parseJson?r.parseJson(u):JSON.parse(u)}return s[c]()});return o}static#e(t){return t&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof URLSearchParams)?Object.fromEntries(Object.entries(t).filter(([,r])=>r!==void 0)):t}request;abortController;_retryCount=0;_input;_options;_originalRequest;constructor(t,r={}){if(this._input=t,this._options={...r,headers:THc(this._input.headers,r.headers),hooks:RHc({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:sbh(r.method??this._input.method??"GET"),prefixUrl:String(r.prefixUrl||""),retry:cbh(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(Yyh&&Xyh){let i=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=i?AbortSignal.any([i,this.abortController.signal]):this.abortController.signal}if(qHc&&(this._options.duplex="half"),this._options.json!==void 0&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),fbh(this._options.searchParams)){let n="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(e.#e(this._options.searchParams)).toString()),a=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,n);(kyh&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(a,{...this.request}),this._options)}if(this._options.onUploadProgress){if(typeof this._options.onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");if(!qHc)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=obh(this.request,this._options.onUploadProgress,this._options.body))}}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount>this._options.retry.limit||t instanceof Hoa)throw t;if(t instanceof EKa){if(!this._options.retry.statusCodes.includes(t.response.status))throw t;let i=t.response.headers.get("Retry-After")??t.response.headers.get("RateLimit-Reset")??t.response.headers.get("X-RateLimit-Reset")??t.response.headers.get("X-Rate-Limit-Reset");if(i&&this._options.retry.afterStatusCodes.includes(t.response.status)){let n=Number(i)*1e3;Number.isNaN(n)?n=Date.parse(i)-Date.now():n>=Date.parse("2024-01-01")&&(n-=Date.now());let a=this._options.retry.maxRetryAfter??n;return n<a?n:a}if(t.response.status===413)throw t}let r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(r){let i=Math.min(this._calculateRetryDelay(r),S_u);if(this._retryCount<1)throw r;await FHc(i,{signal:this._options.signal});for(let n of this._options.hooks.beforeRetry)if(await n({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===M_u)return;return this._retry(t)}}async _fetch(){for(let r of this._options.hooks.beforeRequest){let i=await r(this.request,this._options);if(i instanceof Request){this.request=i;break}if(i instanceof Response)return i}let t=lbh(this.request,this._options);return this._originalRequest=this.request,this.request=this._originalRequest.clone(),this._options.timeout===!1?this._options.fetch(this._originalRequest,t):NHc(this._originalRequest,t,this.abortController,this._options)}};var QHc=e=>{let t=(r,i)=>MKa.create(r,SKa(e,i));for(let r of E_u)t[r]=(i,n)=>MKa.create(i,SKa(e,n,{method:r}));return t.create=r=>QHc(SKa(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),QHc(SKa(e,r))),t.stop=M_u,t},A5D=QHc(),dbh=A5D;var Rbh=ue(Tbh(),1);function GHc(e){let t=(0,Rbh.default)("npm",{registry:"https://registry.npmjs.org/"}),r=t[`${e}:registry`]||t.config_registry||t.registry;return r.slice(-1)==="/"?r:`${r}/`}var Dvh=ue(Mvh(),1),Bvh=ue(SJ(),1),i7c=class extends Error{constructor(t){super(`Package \`${t}\` could not be found`),this.name="PackageNotFoundError"}},n7c=class extends Error{constructor(t,r){super(`Version \`${r}\` for package \`${t}\` could not be found`),this.name="VersionNotFoundError"}};async function a7c(e,t={}){let{version:r="latest"}=t,{omitDeprecated:i=!0}=t,n=e.split("/")[0],a=t.registryUrl??GHc(n),o=new URL(encodeURIComponent(e).replace(/^%40/,"@"),a),c=(0,Dvh.default)(a.toString(),{recursive:!0}),d={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"};t.fullMetadata&&delete d.accept,c&&(d.authorization=`${c.type} ${c.token}`);let s;try{s=await dbh(o,{headers:d,keepalive:!0}).json()}catch(l){throw l?.response?.status===404?new i7c(e):l}if(t.allVersions)return s;let u=new n7c(e,r);if(s["dist-tags"][r]){let{time:l}=s;s=s.versions[s["dist-tags"][r]],s.time=l}else if(r){let l=!!s.versions[r];if(i&&!l)for(let[_,h]of Object.entries(s.versions))h.deprecated&&delete s.versions[_];if(!l){let _=Object.keys(s.versions);if(r=Bvh.default.maxSatisfying(_,r),!r)throw u}let{time:p}=s;if(s=s.versions[r],s.time=p,!s)throw u}return s}async function TKa(e,t){let{version:r}=await a7c(e.toLowerCase(),t);return r}async function UJi({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:TKa(e.packageName,{version:t?"prerelease":"latest"})}var Ivh=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],L_u=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Au.Info;isLocal;constructor(t,r,{isLocal:i}){this.ttyAwareLogger=new idn(t,r),this.isLocal=i??!1;let n=this.getPackageName(),a=this.getPackageVersion(),o=this.getCliName();(n==null||a==null||o==null)&&this.exitProgram(),this.environment={packageName:n,packageVersion:a,cliName:o}}getPackageName(){return"fern-api"}getPackageVersion(){return"3.51.1"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${Rt.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new pM}failWithoutThrowing(t,r){this.didSucceed=!1,eLa({message:t,error:r,logger:this.logger})}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await rra()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((i,n)=>setTimeout(()=>n("Request timed out"),300))]),r=await Kyh({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
1509
1509
|
`)||(r+=`
|
|
1510
1510
|
`),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=pnc(t.map(i=>i.type==="docs"?"docs":i.workspaceName??"api"),i=>i.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 wKa(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 i=this.addTaskWithInit(t).start(),n;try{n=await r(i)}catch(a){throw a.message.includes("globalThis")?(i.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),i.failWithoutThrowing()):i.failWithoutThrowing(void 0,a),new pM}finally{i.finish()}return n}async instrumentPostHogEvent(t){this.isLocal||(await rra()).sendEvent(t)}logger=rve((t,...r)=>this.log(t,...r));stderr=rve((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=Cvh(t.type==="docs"?"docs":t.workspaceName??"api"),i=1+(this.longestWorkspaceName!=null?Cvh(this.longestWorkspaceName):r).length,n=r.padEnd(i),a=Ivh[this.numTasks++%Ivh.length],o=Rt.hex(a)(n);return{...this.constructTaskInit(),logPrefix:o}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Qw.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 i=t.filter(n=>eVt.indexOf(n.level)>=eVt.indexOf(this.logLevel));this.ttyAwareLogger.log(i,{includeDebugInfo:this.logLevel===Au.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 UJi({cliEnvironment:this.environment,includePreReleases:t}),i=pY(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(i?"Upgrade available.":"No upgrade available."));let n={isUpgradeAvailable:i,latestVersion:r},a=await w_u({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:n,generatorUpgradeInfo:a}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await BHc({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:Rt.yellow("?"),style:{answer:n=>Rt.cyan(n),message:n=>Rt.bold(n),highlight:n=>Rt.cyan(n)}}})}catch(i){throw i?.name==="ExitPromptError"?(this.logger.info(`
|
|
1511
1511
|
Cancelled by user.`),new pM):i}}async getInput(t){return await EHc({message:t.message,default:t.default})}};function Cvh(e){return`[${e}]:`}var A8t=class{generatorsConfiguration;workspaceName;cliVersion;absoluteFilePath;changelog;constructor({generatorsConfiguration:t,workspaceName:r,cliVersion:i,absoluteFilePath:n,changelog:a}){this.generatorsConfiguration=t,this.workspaceName=r,this.cliVersion=i,this.absoluteFilePath=n,this.changelog=a}};function V_u(e,t,r,i){if(typeof r!="function")throw new Error("method for before hook must be a function");return i||(i={}),Array.isArray(t)?t.reverse().reduce((n,a)=>V_u.bind(null,e,a,n,i),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((n,a)=>a.hook.bind(null,n,i),r)():r(i))}function qvh(e,t,r,i){let n=i;e.registry[r]||(e.registry[r]=[]),t==="before"&&(i=(a,o)=>Promise.resolve().then(n.bind(null,o)).then(a.bind(null,o))),t==="after"&&(i=(a,o)=>{let c;return Promise.resolve().then(a.bind(null,o)).then(d=>(c=d,n(c,o))).then(()=>c)}),t==="error"&&(i=(a,o)=>Promise.resolve().then(a.bind(null,o)).catch(c=>n(c,o))),e.registry[r].push({hook:i,orig:n})}function Tvh(e,t,r){if(!e.registry[t])return;let i=e.registry[t].map(n=>n.orig).indexOf(r);i!==-1&&e.registry[t].splice(i,1)}var Rvh=Function.bind,zvh=Rvh.bind(Rvh);function Nvh(e,t,r){let i=zvh(Tvh,null).apply(null,r?[t,r]:[t]);e.api={remove:i},e.remove=i,["before","error","after","wrap"].forEach(n=>{let a=r?[t,n,r]:[t,n];e[n]=e.api[n]=zvh(qvh,null).apply(null,a)})}function M6D(){let e=Symbol("Singular"),t={registry:{}},r=V_u.bind(null,t,e);return Nvh(r,t,e),r}function D6D(){let e={registry:{}},t=V_u.bind(null,e);return Nvh(t,e),t}var Fvh={Singular:M6D,Collection:D6D};var B6D="0.0.0-development",I6D=`octokit-endpoint.js/${B6D} ${GN()}`,C6D={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":I6D},mediaType:{format:""}};function q6D(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function T6D(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Lvh(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(i=>{T6D(t[i])?i in e?r[i]=Lvh(e[i],t[i]):Object.assign(r,{[i]:t[i]}):Object.assign(r,{[i]:t[i]})}),r}function Qvh(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function u7c(e,t,r){if(typeof t=="string"){let[n,a]=t.split(" ");r=Object.assign(a?{method:n,url:a}:{url:n},r)}else r=Object.assign({},t);r.headers=q6D(r.headers),Qvh(r),Qvh(r.headers);let i=Lvh(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(i.mediaType.previews=e.mediaType.previews.filter(n=>!i.mediaType.previews.includes(n)).concat(i.mediaType.previews)),i.mediaType.previews=(i.mediaType.previews||[]).map(n=>n.replace(/-preview/,""))),i}function R6D(e,t){let r=/\?/.test(e)?"&":"?",i=Object.keys(t);return i.length===0?e:e+r+i.map(n=>n==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${n}=${encodeURIComponent(t[n])}`).join("&")}var z6D=/\{[^{}}]+\}/g;function N6D(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function F6D(e){let t=e.match(z6D);return t?t.map(N6D).reduce((r,i)=>r.concat(i),[]):[]}function Uvh(e,t){let r={__proto__:null};for(let i of Object.keys(e))t.indexOf(i)===-1&&(r[i]=e[i]);return r}function Vvh(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function tua(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function RKa(e,t,r){return t=e==="+"||e==="#"?Vvh(t):tua(t),r?tua(r)+"="+t:t}function eua(e){return e!=null}function o7c(e){return e===";"||e==="&"||e==="?"}function Q6D(e,t,r,i){var n=e[r],a=[];if(eua(n)&&n!=="")if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")n=n.toString(),i&&i!=="*"&&(n=n.substring(0,parseInt(i,10))),a.push(RKa(t,n,o7c(t)?r:""));else if(i==="*")Array.isArray(n)?n.filter(eua).forEach(function(o){a.push(RKa(t,o,o7c(t)?r:""))}):Object.keys(n).forEach(function(o){eua(n[o])&&a.push(RKa(t,n[o],o))});else{let o=[];Array.isArray(n)?n.filter(eua).forEach(function(c){o.push(RKa(t,c))}):Object.keys(n).forEach(function(c){eua(n[c])&&(o.push(tua(c)),o.push(RKa(t,n[c].toString())))}),o7c(t)?a.push(tua(r)+"="+o.join(",")):o.length!==0&&a.push(o.join(","))}else t===";"?eua(n)&&a.push(tua(r)):n===""&&(t==="&"||t==="?")?a.push(tua(r)+"="):n===""&&a.push("");return a}function U6D(e){return{expand:L6D.bind(null,e)}}function L6D(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(i,n,a){if(n){let c="",d=[];if(r.indexOf(n.charAt(0))!==-1&&(c=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach(function(s){var u=/([^:\*]*)(?::(\d+)|(\*))?/.exec(s);d.push(Q6D(t,c,u[1],u[2]||u[3]))}),c&&c!=="+"){var o=",";return c==="?"?o="&":c!=="#"&&(o=c),(d.length!==0?c:"")+d.join(o)}else return d.join(",")}else return Vvh(a)}),e==="/"?e:e.replace(/\/$/,"")}function Wvh(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),i=Object.assign({},e.headers),n,a=Uvh(e,["method","baseUrl","url","headers","request","mediaType"]),o=F6D(r);r=U6D(r).expand(a),/^http/.test(r)||(r=e.baseUrl+r);let c=Object.keys(e).filter(u=>o.includes(u)).concat("baseUrl"),d=Uvh(a,c);if(!/application\/octet-stream/i.test(i.accept)&&(e.mediaType.format&&(i.accept=i.accept.split(/,/).map(u=>u.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let u=i.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];i.accept=u.concat(e.mediaType.previews).map(l=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${l}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=R6D(r,d):"data"in d?n=d.data:Object.keys(d).length&&(n=d),!i["content-type"]&&typeof n<"u"&&(i["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof n>"u"&&(n=""),Object.assign({method:t,url:r,headers:i},typeof n<"u"?{body:n}:null,e.request?{request:e.request}:null)}function V6D(e,t,r){return Wvh(u7c(e,t,r))}function Gvh(e,t){let r=u7c(e,t),i=V6D.bind(null,r);return Object.assign(i,{DEFAULTS:r,defaults:Gvh.bind(null,r),merge:u7c.bind(null,r),parse:Wvh})}var xvh=Gvh(null,C6D);var Xvh=ue($vh(),1);var P8t=class extends Error{name;status;request;response;constructor(t,r,i){super(t),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0),"response"in i&&(this.response=i.response);let n=Object.assign({},i.request);i.request.headers.authorization&&(n.headers=Object.assign({},i.request.headers,{authorization:i.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=n}};var W6D="10.0.6",G6D={headers:{"user-agent":`octokit-request.js/${W6D} ${GN()}`}};function x6D(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function Yvh(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,i=e.request?.parseSuccessResponseBody!==!1,n=x6D(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body,a=Object.fromEntries(Object.entries(e.headers).map(([l,p])=>[l,String(p)])),o;try{o=await t(e.url,{method:e.method,body:n,redirect:e.request?.redirect,headers:a,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(l){let p="Unknown Error";if(l instanceof Error){if(l.name==="AbortError")throw l.status=500,l;p=l.message,l.name==="TypeError"&&"cause"in l&&(l.cause instanceof Error?p=l.cause.message:typeof l.cause=="string"&&(p=l.cause))}let _=new P8t(p,500,{request:e});throw _.cause=l,_}let c=o.status,d=o.url,s={};for(let[l,p]of o.headers)s[l]=p;let u={url:d,status:c,headers:s,data:""};if("deprecation"in s){let l=s.link&&s.link.match(/<([^<>]+)>; rel="deprecation"/),p=l&&l.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${s.sunset}${p?`. See ${p}`:""}`)}if(c===204||c===205)return u;if(e.method==="HEAD"){if(c<400)return u;throw new P8t(o.statusText,c,{response:u,request:e})}if(c===304)throw u.data=await s7c(o),new P8t("Not modified",c,{response:u,request:e});if(c>=400)throw u.data=await s7c(o),new P8t(K6D(u.data),c,{response:u,request:e});return u.data=i?await s7c(o):o.body,u}async function s7c(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(()=>"");let r=(0,Xvh.safeParse)(t);if(H6D(r)){let i="";try{return i=await e.text(),JSON.parse(i)}catch{return i}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"?e.text().catch(()=>""):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function H6D(e){return e.type==="application/json"||e.type==="application/scim+json"}function K6D(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(r=>JSON.stringify(r)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function c7c(e,t){let r=e.defaults(t);return Object.assign(function(n,a){let o=r.merge(n,a);if(!o.request||!o.request.hook)return Yvh(r.parse(o));let c=(d,s)=>Yvh(r.parse(r.merge(d,s)));return Object.assign(c,{endpoint:r,defaults:c7c.bind(null,r)}),o.request.hook(c,o)},{endpoint:r,defaults:c7c.bind(null,r)})}var Um=c7c(xvh,G6D);var J6D="0.0.0-development";function $6D(e){return`Request failed due to following response errors:
|
|
@@ -1909,7 +1909,7 @@ A valid API configuration was not found at the path: fern/apis/${t.apiName}.
|
|
|
1909
1909
|
Learn more about project structure:
|
|
1910
1910
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`:`Failed to load API Definition referenced in docs.
|
|
1911
1911
|
Learn more about project structure:
|
|
1912
|
-
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=Nt.V1.SlugGenerator.init(Nt.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),i=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:i,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(n=>Nt.RoleId(n)),featureFlags:void 0}}async toRootChild(t){return $fn(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 i=Nt.PageId(this.toRelativeFilepath(t.absolutePath)),n=r.apply({urlSlug:t.slug??cS(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(i),title:t.title,slug:n.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:i,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:i}){let n=this.#e.get("unversioned"),a=t!=null?this.toLandingPageNode(t,i):void 0,o=r.type==="tabbed"?await this.convertTabbedNavigation(n,r.items,i):await this.toSidebarRootNode(n,r.items,i);return{type:"unversioned",id:n,landingPage:a,child:o}}async toVersionedNode(t,r){let i=this.#e.get("versioned"),n=t.versions[0];if(n?.hidden===!0)throw new Error(`The default version "${n.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.`);return{id:i,type:"versioned",children:await Promise.all(t.versions.map((a,o)=>this.toVersionNode(a,r,o===0)))}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:i}){let n=this.#e.get("productgroup"),a=r!=null?this.toLandingPageNode(r,i):void 0;return{id:n,type:"productgroup",landingPage:a,children:await Promise.all(t.products.map(o=>this.toProductNode(o,i)))}}async toProductNode(t,r){if(t.type==="internal"){let i=r.setProductSlug(t.slug??cS(t.product)),n;switch(t.navigation.type){case"tabbed":n={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,i)};break;case"untabbed":n={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,i)};break;case"versioned":n=await this.toVersionedNode(t.navigation,i);break;default:vt(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:Nt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:i.get(),child:n,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:Nt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:zG.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,i){let n=this.#e.get(t.version),a=r.setVersionSlug(t.slug??cS(t.version)),o=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(n,t.navigation.items,a):await this.toSidebarRootNode(n,t.navigation.items,a);return{type:"version",id:n,versionId:Nt.VersionId(t.version),title:t.version,slug:a.get(),child:o,default:i,availability:t.availability!=null?GEB(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,a):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,i){let n=this.#e.get(`${t}/root`),o=(await Promise.all(r.map(d=>this.toNavigationChild({prefix:n,item:d,parentSlug:i})))).filter(d=>d!=null),c=[];return o.forEach(d=>{if(d.type==="apiReference"){c.push(d);return}if(d.type==="section"&&!d.collapsed){c.push(d);return}let s=c.length>0?c[c.length-1]:void 0,u;s?.type==="sidebarGroup"?u=s:(u={id:this.#e.get(`${n}/group`),type:"sidebarGroup",children:[]},c.push(u)),u.children.push(d)}),{type:"sidebarRoot",id:n,children:c}}async toSidebarRootNodeWithVariants(t,r,i){let n=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:n,children:[{type:"varianted",id:n,children:await Promise.all(r.map(a=>this.toVariantNode(a,n,i)))}]}}async toVariantNode(t,r,i){let n=this.#e.get(`${r}/variant/${t.slug??cS(t.title)}`),a=i.apply({urlSlug:t.slug??cS(t.title),skipUrlSlug:t.skipUrlSlug}),c=(await Promise.all(t.layout.map(d=>this.toVariantChild(d,n,a)))).filter(d=>d!=null);return{type:"variant",id:n,variantId:Nt.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:c,title:t.title,slug:a.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,i){return $fn(t)._visit({page:async n=>this.toPageNode({item:n,parentSlug:i}),apiSection:async n=>this.toApiSectionNode({item:n,parentSlug:i}),section:async n=>this.toSectionNode({prefix:r,item:n,parentSlug:i}),link:async n=>this.toLinkNode(n),changelog:async n=>this.toChangelogNode(n,i),pythonDocsSection:async n=>this.handlePythonDocsSection(n,i)})}async toNavigationChild({prefix:t,item:r,parentSlug:i,hideChildren:n,parentAvailability:a}){return $fn(r)._visit({page:async o=>this.toPageNode({item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),apiSection:async o=>this.toApiSectionNode({item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),section:async o=>this.toSectionNode({prefix:t,item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),link:async o=>this.toLinkNode(o),changelog:async o=>this.toChangelogNode(o,i,n),pythonDocsSection:async o=>this.handlePythonDocsSection(o,i)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:i,parentAvailability:n}){let a=OUh(t.snippetsConfiguration),o,c=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),d=this.parsedDocsConfig.experimental?.openapiParserV3,s=d==null||d;if(s)try{o=await this.getOpenApiWorkspaceForApiSection(t).getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch{}let u;if(t.tagDescriptionPages&&s)try{let v=await this.getOpenApiWorkspaceForApiSection(t).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});v.tags.tagsById&&(u=Object.fromEntries(Object.entries(v.tags.tagsById).filter(([O,m])=>m.description&&m.description.trim().length>0).map(([O,m])=>[Wo(O),{id:String(m.id),description:m.description}])))}catch(b){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(b))}o==null&&(o=ES({workspace:c,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 wS(this.taskContext,c)})),this.docsWorkspace.config.settings?.substituteEnvVars&&(o=aR(o,{onError:b=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${b}`)},{substituteAsEmpty:!1}));let l=t.apiName??c.workspaceName,p=await this.registerApi({ir:o,snippetsConfig:a,playgroundConfig:{oauth:t.playground?.oauth},apiName:l,workspace:c}),_=XYa({ir:o,apiDefinitionId:p,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext}),h=new _0u(t,_,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,c,i,n??t.availability,u),y=h.getTagDescriptionContent();for(let[b,v]of y.entries()){let O=b.split("/").pop()||b,m=xe.of(O),g=v;this.docsWorkspace.config.settings?.substituteEnvVars&&(g=aR(v,{onError:A=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${A}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[m]=g,this.parsedDocsConfig.pages[m]=g}return h.get()}async toChangelogNode(t,r,i){return new uOn(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:i||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:Nt.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}handlePythonDocsSection(t,r){return this.pythonDocsSectionHandler==null?null:this.pythonDocsSectionHandler(t,r,{addPage:(i,n)=>{this.parsedDocsConfig.pages[xe.of(i)]=n},generateId:i=>this.#e.get(i)})}async toPageNode({item:t,parentSlug:r,hideChildren:i,parentAvailability:n}){let a=Nt.PageId(this.toRelativeFilepath(t.absolutePath)),o=r.apply({urlSlug:t.slug??cS(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{id:this.#e.get(a),type:"page",slug:o.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:i||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:a,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:t.availability??n}}async toSectionNode({prefix:t,item:r,parentSlug:i,hideChildren:n,parentAvailability:a}){let o=this.toRelativeFilepath(r.overviewAbsolutePath),c=o?Nt.PageId(o):void 0,d=this.#e.get(c??`${t}/section`),s=i.apply({urlSlug:r.slug??cS(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),u=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,l=n||r.hidden,_=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:d,item:h,parentSlug:s,hideChildren:l,parentAvailability:r.availability??a})))).filter(h=>h!=null);if(c==null){let h=_.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);h!=null&&(c=h.overviewPageId)}return{id:d,type:"section",overviewPageId:c,slug:s.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,hidden:l,viewers:r.viewers,orphaned:r.orphaned,children:_,authed:void 0,pointsTo:void 0,noindex:u,featureFlags:r.featureFlags,availability:r.availability??a}}async convertTabbedNavigation(t,r,i){let n=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:n,children:await Promise.all(r.map(a=>this.toTabChild(n,a,i)))}}async toTabChild(t,r,i){return $fn(r.child)._visit({link:({href:n,target:a})=>this.toTabLinkNode(r,n,a),layout:({layout:n})=>this.toTabNode(t,r,n,i),changelog:({changelog:n})=>this.toTabChangelogNode(r,n,i),variants:({variants:n})=>this.toTabNodeWithVariants(t,r,n,i)})}async toTabChangelogNode(t,r,i){return new uOn(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:i,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,i){return{type:"link",id:this.#e.get(r),title:t.title,url:Nt.V1.Url(r),target:i,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,i,n){let a=this.#e.get(`${t}/tab`),o=n.apply({urlSlug:r.slug??cS(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:o.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(a,i,o),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,i,n){let a=this.#e.get(`${t}/tab`),o=n.apply({urlSlug:r.slug??cS(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:o.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(a,i,o),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):zG.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:i}=this.parsedDocsConfig,n=r?.[t],a=i?.[t];return{logo:this.getFileId(n),backgroundImage:this.getFileId(a)}}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 i=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${i}`,variants:t.variants.map(n=>({fontFile:this.getFileId(n.absolutePath),weight:n.weight,style:n.style!=null?[n.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(ss),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:zG.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":i,...n}=this.parsedDocsConfig.metadata;return{...n,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return $fn(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:zG.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function WEB(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:i,repo:n,branch:a="main",host:o="https://github.com"}=e.github;return{url:`${zx(o)}/${i}/${n}/blob/${a}/fern/${t}?plain=1`,launch:r}}function GEB(e){switch(e){case"beta":return Nt.V1.NavigationV1Availability.Beta;case"deprecated":return Nt.V1.NavigationV1Availability.Deprecated;case"ga":return Nt.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return Nt.V1.NavigationV1Availability.Stable;default:vt(e)}}function Btl(e,t,r){let i=e.title??"Python Reference",n=e.slug??"python-docs",a=t.apply({urlSlug:n}),o=`__python-docs-placeholder-${n}__.mdx`,c=Nt.PageId(o),d=`---
|
|
1912
|
+
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=Nt.V1.SlugGenerator.init(Nt.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),i=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:i,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(n=>Nt.RoleId(n)),featureFlags:void 0}}async toRootChild(t){return $fn(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 i=Nt.PageId(this.toRelativeFilepath(t.absolutePath)),n=r.apply({urlSlug:t.slug??cS(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(i),title:t.title,slug:n.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:i,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:i}){let n=this.#e.get("unversioned"),a=t!=null?this.toLandingPageNode(t,i):void 0,o=r.type==="tabbed"?await this.convertTabbedNavigation(n,r.items,i):await this.toSidebarRootNode(n,r.items,i);return{type:"unversioned",id:n,landingPage:a,child:o}}async toVersionedNode(t,r){let i=this.#e.get("versioned"),n=t.versions[0];if(n?.hidden===!0)throw new Error(`The default version "${n.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.`);return{id:i,type:"versioned",children:await Promise.all(t.versions.map((a,o)=>this.toVersionNode(a,r,o===0)))}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:i}){let n=this.#e.get("productgroup"),a=r!=null?this.toLandingPageNode(r,i):void 0;return{id:n,type:"productgroup",landingPage:a,children:await Promise.all(t.products.map(o=>this.toProductNode(o,i)))}}async toProductNode(t,r){if(t.type==="internal"){let i=r.setProductSlug(t.slug??cS(t.product)),n;switch(t.navigation.type){case"tabbed":n={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,i)};break;case"untabbed":n={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,i)};break;case"versioned":n=await this.toVersionedNode(t.navigation,i);break;default:vt(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:Nt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:i.get(),child:n,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:Nt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:zG.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,i){let n=this.#e.get(t.version),a=r.setVersionSlug(t.slug??cS(t.version)),o=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(n,t.navigation.items,a):await this.toSidebarRootNode(n,t.navigation.items,a);return{type:"version",id:n,versionId:Nt.VersionId(t.version),title:t.version,slug:a.get(),child:o,default:i,availability:t.availability!=null?GEB(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,a):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,i){let n=this.#e.get(`${t}/root`),o=(await Promise.all(r.map(d=>this.toNavigationChild({prefix:n,item:d,parentSlug:i})))).filter(d=>d!=null),c=[];return o.forEach(d=>{if(d.type==="apiReference"){c.push(d);return}if(d.type==="section"&&!d.collapsed){c.push(d);return}let s=c.length>0?c[c.length-1]:void 0,u;s?.type==="sidebarGroup"?u=s:(u={id:this.#e.get(`${n}/group`),type:"sidebarGroup",children:[]},c.push(u)),u.children.push(d)}),{type:"sidebarRoot",id:n,children:c}}async toSidebarRootNodeWithVariants(t,r,i){let n=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:n,children:[{type:"varianted",id:n,children:await Promise.all(r.map(a=>this.toVariantNode(a,n,i)))}]}}async toVariantNode(t,r,i){let n=this.#e.get(`${r}/variant/${t.slug??cS(t.title)}`),a=i.apply({urlSlug:t.slug??cS(t.title),skipUrlSlug:t.skipUrlSlug}),c=(await Promise.all(t.layout.map(d=>this.toVariantChild(d,n,a)))).filter(d=>d!=null);return{type:"variant",id:n,variantId:Nt.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:c,title:t.title,slug:a.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,i){return $fn(t)._visit({page:async n=>this.toPageNode({item:n,parentSlug:i}),apiSection:async n=>this.toApiSectionNode({item:n,parentSlug:i}),section:async n=>this.toSectionNode({prefix:r,item:n,parentSlug:i}),link:async n=>this.toLinkNode(n),changelog:async n=>this.toChangelogNode(n,i),pythonDocsSection:async n=>this.handlePythonDocsSection(n,i)})}async toNavigationChild({prefix:t,item:r,parentSlug:i,hideChildren:n,parentAvailability:a}){return $fn(r)._visit({page:async o=>this.toPageNode({item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),apiSection:async o=>this.toApiSectionNode({item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),section:async o=>this.toSectionNode({prefix:t,item:o,parentSlug:i,hideChildren:n,parentAvailability:a}),link:async o=>this.toLinkNode(o),changelog:async o=>this.toChangelogNode(o,i,n),pythonDocsSection:async o=>this.handlePythonDocsSection(o,i)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:i,parentAvailability:n}){let a=OUh(t.snippetsConfiguration),o,c,d,s,u=this.parsedDocsConfig.experimental?.openapiParserV3,l=u==null||u;if(l)try{d=this.getOpenApiWorkspaceForApiSection(t),o=await d.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(O){s=O}let p;if(t.tagDescriptionPages&&l)try{let m=await(d??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});m.tags.tagsById&&(p=Object.fromEntries(Object.entries(m.tags.tagsById).filter(([g,A])=>A.description&&A.description.trim().length>0).map(([g,A])=>[Wo(g),{id:String(A.id),description:A.description}])))}catch(O){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(O))}if(o==null){if(this.apiWorkspaces.length===0&&s!=null)throw s;c=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),o=ES({workspace:c,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 wS(this.taskContext,c)})}this.docsWorkspace.config.settings?.substituteEnvVars&&(o=aR(o,{onError:O=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${O}`)},{substituteAsEmpty:!1}));let _=t.apiName??c?.workspaceName??d?.workspaceName,h=await this.registerApi({ir:o,snippetsConfig:a,playgroundConfig:{oauth:t.playground?.oauth},apiName:_,workspace:c}),y=XYa({ir:o,apiDefinitionId:h,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext}),b=new _0u(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,c,i,n??t.availability,p),v=b.getTagDescriptionContent();for(let[O,m]of v.entries()){let g=O.split("/").pop()||O,A=xe.of(g),j=m;this.docsWorkspace.config.settings?.substituteEnvVars&&(j=aR(m,{onError:M=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${M}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[A]=j,this.parsedDocsConfig.pages[A]=j}return b.get()}async toChangelogNode(t,r,i){return new uOn(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:i||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:Nt.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}handlePythonDocsSection(t,r){return this.pythonDocsSectionHandler==null?null:this.pythonDocsSectionHandler(t,r,{addPage:(i,n)=>{this.parsedDocsConfig.pages[xe.of(i)]=n},generateId:i=>this.#e.get(i)})}async toPageNode({item:t,parentSlug:r,hideChildren:i,parentAvailability:n}){let a=Nt.PageId(this.toRelativeFilepath(t.absolutePath)),o=r.apply({urlSlug:t.slug??cS(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{id:this.#e.get(a),type:"page",slug:o.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:i||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:a,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:t.availability??n}}async toSectionNode({prefix:t,item:r,parentSlug:i,hideChildren:n,parentAvailability:a}){let o=this.toRelativeFilepath(r.overviewAbsolutePath),c=o?Nt.PageId(o):void 0,d=this.#e.get(c??`${t}/section`),s=i.apply({urlSlug:r.slug??cS(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),u=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,l=n||r.hidden,_=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:d,item:h,parentSlug:s,hideChildren:l,parentAvailability:r.availability??a})))).filter(h=>h!=null);if(c==null){let h=_.find(y=>y.type==="apiReference"&&y.hideTitle===!0&&y.overviewPageId!=null);h!=null&&(c=h.overviewPageId)}return{id:d,type:"section",overviewPageId:c,slug:s.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,hidden:l,viewers:r.viewers,orphaned:r.orphaned,children:_,authed:void 0,pointsTo:void 0,noindex:u,featureFlags:r.featureFlags,availability:r.availability??a}}async convertTabbedNavigation(t,r,i){let n=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:n,children:await Promise.all(r.map(a=>this.toTabChild(n,a,i)))}}async toTabChild(t,r,i){return $fn(r.child)._visit({link:({href:n,target:a})=>this.toTabLinkNode(r,n,a),layout:({layout:n})=>this.toTabNode(t,r,n,i),changelog:({changelog:n})=>this.toTabChangelogNode(r,n,i),variants:({variants:n})=>this.toTabNodeWithVariants(t,r,n,i)})}async toTabChangelogNode(t,r,i){return new uOn(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:i,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,i){return{type:"link",id:this.#e.get(r),title:t.title,url:Nt.V1.Url(r),target:i,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,i,n){let a=this.#e.get(`${t}/tab`),o=n.apply({urlSlug:r.slug??cS(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:o.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(a,i,o),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,i,n){let a=this.#e.get(`${t}/tab`),o=n.apply({urlSlug:r.slug??cS(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:a,title:r.title,slug:o.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(a,i,o),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):zG.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:i}=this.parsedDocsConfig,n=r?.[t],a=i?.[t];return{logo:this.getFileId(n),backgroundImage:this.getFileId(a)}}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 i=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${i}`,variants:t.variants.map(n=>({fontFile:this.getFileId(n.absolutePath),weight:n.weight,style:n.style!=null?[n.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(ss),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:zG.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":i,...n}=this.parsedDocsConfig.metadata;return{...n,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return $fn(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:zG.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}};function WEB(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:i,repo:n,branch:a="main",host:o="https://github.com"}=e.github;return{url:`${zx(o)}/${i}/${n}/blob/${a}/fern/${t}?plain=1`,launch:r}}function GEB(e){switch(e){case"beta":return Nt.V1.NavigationV1Availability.Beta;case"deprecated":return Nt.V1.NavigationV1Availability.Deprecated;case"ga":return Nt.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return Nt.V1.NavigationV1Availability.Stable;default:vt(e)}}function Btl(e,t,r){let i=e.title??"Python Reference",n=e.slug??"python-docs",a=t.apply({urlSlug:n}),o=`__python-docs-placeholder-${n}__.mdx`,c=Nt.PageId(o),d=`---
|
|
1913
1913
|
title: ${i}
|
|
1914
1914
|
---
|
|
1915
1915
|
|
|
@@ -1946,7 +1946,7 @@ The generated documentation will replace this placeholder page with complete API
|
|
|
1946
1946
|
- Class and function references
|
|
1947
1947
|
- Type annotations and signatures
|
|
1948
1948
|
- Docstring content
|
|
1949
|
-
`;return r.addPage(o,d),{id:r.generateId(c),type:"page",slug:a.get(),title:i,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:c,authed:void 0,noindex:!0,featureFlags:void 0,availability:void 0}}async function qL(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof jS?t:null))).filter(ss)}async function Itl(e,t,r){if(e instanceof ySe){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof jS))return;let i=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return Rx({ir:i,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 sc={};Yt(sc,{AlgoliaSearchIndex:()=>UUh,ApiDefinitionId:()=>u4h,ApiId:()=>f4h,Availability:()=>E4h,DocsConfigId:()=>d4h,EndpointId:()=>_4h,EndpointPathLiteral:()=>j4h,EnvironmentId:()=>p4h,FileId:()=>g4h,HttpMethod:()=>w4h,IndexSegmentId:()=>LUh,JqString:()=>m4h,OrgId:()=>c4h,PageId:()=>v4h,PayloadLocation:()=>k4h,PropertyKey:()=>A4h,PullRequestState:()=>J4h,RoleId:()=>P4h,TokenId:()=>l4h,TypeId:()=>b4h,Url:()=>O4h,VersionId:()=>s4h,WebSocketId:()=>h4h,WebhookId:()=>y4h,algolia:()=>Ctl,api:()=>Vtl,commons:()=>Wtl,diff:()=>S4h,docs:()=>Ztl,generators:()=>erl,git:()=>trl,navigation:()=>nrl,sdks:()=>orl,snippets:()=>X4h,snippetsFactory:()=>Z4h,templates:()=>url,tokens:()=>eLh});var Ctl={};Yt(Ctl,{AlgoliaSearchIndex:()=>UUh,IndexSegmentId:()=>LUh});function UUh(e){return e}function LUh(e){return e}var Vtl={};Yt(Vtl,{latest:()=>Rtl,v1:()=>Ltl});var Rtl={};Yt(Rtl,{AuthSchemeId:()=>VUh,WebhookHttpMethod:()=>HUh,auth:()=>qtl,commons:()=>WUh,endpoint:()=>GUh,type_:()=>xUh,webhook:()=>Ttl,websocket:()=>KUh});var qtl={};Yt(qtl,{AuthSchemeId:()=>VUh});function VUh(e){return e}var WUh={};var GUh={};var xUh={};var Ttl={};Yt(Ttl,{WebhookHttpMethod:()=>HUh});var HUh={Get:"GET",Post:"POST"};var KUh={};var Ltl={};Yt(Ltl,{SubpackageId:()=>i4h,WebSocketMessageId:()=>n4h,WebSocketMessageOrigin:()=>a4h,WebhookHttpMethod:()=>o4h,commons:()=>Utl,db:()=>ztl,read:()=>Ftl,register:()=>Qtl});var ztl={};Yt(ztl,{endpoint:()=>JUh});var JUh={};var Ftl={};Yt(Ftl,{SupportedLanguage:()=>$Uh,endpoint:()=>Ntl,type_:()=>YUh,webhook:()=>XUh,websocket:()=>ZUh});var Ntl={};Yt(Ntl,{SupportedLanguage:()=>$Uh});var $Uh={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var YUh={};var XUh={};var ZUh={};var Qtl={};Yt(Qtl,{SourceId:()=>xEB,endpoint:()=>kUh,type_:()=>e4h,webhook:()=>t4h,websocket:()=>r4h});var kUh={};var e4h={};var t4h={};var r4h={};function xEB(e){return e}var Utl={};Yt(Utl,{SubpackageId:()=>i4h,WebSocketMessageId:()=>n4h,WebSocketMessageOrigin:()=>a4h,WebhookHttpMethod:()=>o4h});function i4h(e){return e}function n4h(e){return e}var a4h={Client:"client",Server:"server"};var o4h={Get:"GET",Post:"POST"};var Wtl={};Yt(Wtl,{ApiDefinitionId:()=>u4h,ApiId:()=>f4h,Availability:()=>E4h,DocsConfigId:()=>d4h,EndpointId:()=>_4h,EndpointPathLiteral:()=>j4h,EnvironmentId:()=>p4h,FileId:()=>g4h,HttpMethod:()=>w4h,JqString:()=>m4h,OrgId:()=>c4h,PageId:()=>v4h,PropertyKey:()=>A4h,RoleId:()=>P4h,TokenId:()=>l4h,TypeId:()=>b4h,Url:()=>O4h,VersionId:()=>s4h,WebSocketId:()=>h4h,WebhookId:()=>y4h});function u4h(e){return e}function s4h(e){return e}function c4h(e){return e}function l4h(e){return e}function f4h(e){return e}function d4h(e){return e}function p4h(e){return e}function _4h(e){return e}function h4h(e){return e}function y4h(e){return e}function b4h(e){return e}function v4h(e){return e}function g4h(e){return e}function O4h(e){return e}function m4h(e){return e}function A4h(e){return e}function P4h(e){return e}function j4h(e){return e}var w4h={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var E4h={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var S4h={};var Ztl={};Yt(Ztl,{latest:()=>Htl,v1:()=>Ytl,v2:()=>Xtl});var Htl={};Yt(Htl,{Layout:()=>D4h,MdxEngine:()=>HEB,TwitterCardSetting:()=>B4h,commons:()=>M4h,frontmatter:()=>Gtl,seo:()=>xtl});var HEB={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var M4h={};var Gtl={};Yt(Gtl,{Layout:()=>D4h});var D4h={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var xtl={};Yt(xtl,{TwitterCardSetting:()=>B4h});var B4h={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ytl={};Yt(Ytl,{commons:()=>$tl,db:()=>I4h,read:()=>C4h,write:()=>Ktl});var I4h={};var C4h={};var Ktl={};Yt(Ktl,{DocsRegistrationId:()=>JEB,FilePath:()=>KEB});function KEB(e){return e}function JEB(e){return e}var $tl={};Yt($tl,{ContentAlignment:()=>z4h,FontDisplay:()=>L4h,FontStyle:()=>U4h,HeaderPosition:()=>N4h,JsScriptStrategy:()=>Q4h,ProgrammingLanguage:()=>q4h,SearchbarPlacement:()=>T4h,TabsPlacement:()=>R4h,TwitterCardSetting:()=>F4h,commons:()=>Jtl});var Jtl={};Yt(Jtl,{ContentAlignment:()=>z4h,FontDisplay:()=>L4h,FontStyle:()=>U4h,HeaderPosition:()=>N4h,JsScriptStrategy:()=>Q4h,ProgrammingLanguage:()=>q4h,SearchbarPlacement:()=>T4h,TabsPlacement:()=>R4h,TwitterCardSetting:()=>F4h});var q4h={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 T4h={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var R4h={Header:"HEADER",Sidebar:"SIDEBAR"};var z4h={Center:"CENTER",Left:"LEFT"};var N4h={Fixed:"FIXED",Absolute:"ABSOLUTE"};var F4h={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Q4h={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var U4h={Normal:"normal",Italic:"italic"};var L4h={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var Xtl={};Yt(Xtl,{read:()=>V4h,write:()=>W4h});var V4h={};var W4h={};var erl={};Yt(erl,{ChangelogEntryType:()=>x4h,GeneratorId:()=>$EB,GeneratorLanguage:()=>YEB,ReleaseType:()=>H4h,cli:()=>G4h,commons:()=>ktl,versions:()=>K4h});var G4h={};var ktl={};Yt(ktl,{ChangelogEntryType:()=>x4h,ReleaseType:()=>H4h});var x4h={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var H4h={Ga:"GA",Rc:"RC"};var K4h={};function $EB(e){return e}var YEB={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var trl={};Yt(trl,{PullRequestState:()=>J4h});var J4h={Open:"open",Closed:"closed",Merged:"merged"};var nrl={};Yt(nrl,{latest:()=>rrl,v1:()=>irl});var rrl={};Yt(rrl,{NodeId:()=>kEB,ProductId:()=>eSB,Slug:()=>XEB,TabId:()=>ZEB});function XEB(e){return e}function ZEB(e){return e}function kEB(e){return e}function eSB(e){return e}var irl={};Yt(irl,{NavigationV1Availability:()=>aSB,NodeId:()=>iSB,ProductId:()=>nSB,Slug:()=>tSB,TabId:()=>rSB});function tSB(e){return e}function rSB(e){return e}function iSB(e){return e}function nSB(e){return e}var aSB={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var orl={};Yt(orl,{Language:()=>$4h,VersionBump:()=>Y4h,versions:()=>arl});var arl={};Yt(arl,{Language:()=>$4h,VersionBump:()=>Y4h});var $4h={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Y4h={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var X4h={};var Z4h={};var url={};Yt(url,{PayloadLocation:()=>k4h});var k4h={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var eLh={};var w0u=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Jo(e){return e!=null}var rLh=ue(A4a(),1);var tLh=["PII","PHI","PCI","GDPR","CCPA","HIPAA","COPPA","FERPA","GLBA","SOX","FISMA","NIST","CIS","ISO","IEC","ITAR","EAR","CMMC","CUI","CDI","FTC","FCC","SEC","FINRA","XSS","CSRF","SSRF","XSRF","TLS","SSL","SSH","API","OAuth","OAuth1","OAuth1.0","OAuth2","OAuth2.0","SAML","OpenID","OpenID Connect","CAPTCHA","reCAPTCHA","2FA","MFA","OTP","TOTP","HOTP","U2F","FIDO","FIDO2","PKI","HMAC","AES","RSA","SHA","MD5","BCrypt","PBKDF2","Argon2","SCrypt","JWT","JWE","JWS","JWK","JWA","JOSE","SKU","SKUs","UPC","EAN","ISBN","ASIN","MPN","MSRP","MAP","RRP","MSRP","AM","PM","UTC","GMT","PST","PDT","EST","EDT","CST","CDT","MST","MDT","USA","UK","EU","UAE","APAC","EMEA","LATAM","ANZ","SEA","MEA","MENA","NATO","NA","SA","CA","EU","AU","NZ","JP","KR","CN","HK","TW","SG","MY","TH","ID","PH","VN","IN","PK","BD","LK","NP","MM","KH","LA","MM","BT","MV","USD","EUR","GBP","JPY","CNY","RUB","INR","AUD","CAD","CHF","SGD","MYR","THB","IDR","KRW","PHP","VND","HKD","TWD","MXN","BRL","ARS","CLP","COP","PEN","ZAR","NGN","EGP","AED","SAR","ILS","TRY","SEK","NOK","DKK","ISK","HUF","PLN","CZK","RON","BGN","API","APIs","SDK","SDKs","AI","OCR","REST","SOAP","JSON","XML","HTTP","HTTPS","URI","URL","CRUD","RESTful","KYB","KYC","AML","HTML","CSS","JS","SQL","DB","UI","UX","SaaS","PaaS","IaaS","IP","TCP","UDP","DNS","FTP","SMTP","IMAP","POP3","CSV","MVC","MVP","MVVM","DOM","SPA","SSR","CSR","DDoS","CDN","IoT","ML","DL","NLP","CLI","GUI","BI","ETL","RDBMS","NoSQL","IDE","CMS","CCPA","POSIX","ABI","API","AST","COBOL","DDL","DML","NN","CNN","RNN","LSTM","GRU","ANN","GAN","RL","DL","ML","NLP","NLG","NLU","BERT","GPT","SVM","PCA","AI","CV","TF","TTS","ASR","HMM","DNN","MLP","RBM","CRF","PDF","PDFs","RTF","TXT","XLS","XLSX","PPT","JPG","JPEG","PNG","GIF","GIFs","SVG","TIFF","BMP","ICO","PSD","WebP","AVIF","HEIF","HEIC","EPS","MP3","WAV","AIFF","FLAC","WMA","AAC","OGG","AVI","WMV","MOV","M4V","MP4","MPG","MPEG","FLV","SWF","MKV","WebM","GCP","AWS","VM","VPC","S3","EC2","DynamoDB","CosmosDB","BigQuery","CI/CD","SOC1","SOC2","SOC3","PCI DSS","WAF","IAM","SDN","MPLS","BGP","Vue.js","Node.js",".NET"];function EXt(e){return e=e.replace(/([a-z])([A-Z])/g,"$1 $2"),e=e.replace(/_/g," "),e=e.replace(/-/g," "),(0,rLh.default)(e,{special:tLh}).replace(/V\s(\d)/g,"V$1")}function iLh({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(i=>{let n=[];i.namespace?.forEach(a=>{let o=[...n,a],c=sc.api.v1.SubpackageId(o.join("."));r[c]={id:c,name:a,displayName:EXt(a)},n.push(a)})}),r}var E0u=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 nLh(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Ao=class extends E0u{context;accessPath;pathId;constructor({input:t,context:r,accessPath:i,pathId:n}){if(super(t,r),this.context=r,this.accessPath=[...i],this.pathId=n,n!=null){let a=Array.isArray(this.pathId)?this.pathId:[this.pathId];a.every((o,c)=>o===this.accessPath[this.accessPath.length-a.length+c])||this.accessPath.push(...a)}r.logger.debug(`Processing ${nLh(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})}}},qC=class extends Ao{},qY=class extends qC{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var aLh="x-fern-base-path",oLh="x-fern-availability",S0u="x-fern-sdk-group-name",uLh="x-fern-global-headers",sLh="x-fern-sdk-method-name";var cLh="x-fern-webhook",lLh="x-fern-access-token-locator",fLh="x-fern-basic",dLh="x-fern-username-variable-name",pLh="x-fern-password-variable-name",_Lh="x-fern-bearer",hLh="x-fern-token-variable-name",yLh="x-fern-header",bLh="x-fern-header-variable-name",vLh="x-fern-server-name",gLh="x-fern-examples";var M0u=class extends Ao{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[vLh]}convert(){if(this.serverName!=null)return this.serverName}};var D0u=class extends Ao{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,i])=>t.replace(`{${r}}`,i.default),this.input.url)??this.input.url,this.serverName=new M0u({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:sc.EnvironmentId(t),baseUrl:this.url}}};function mYi(e,t,r,i){let n=e??[],a=new Set(n.map(c=>c.url)),o=(t??[]).filter(c=>!a.has(c.url)).map((c,d)=>new D0u({input:c,context:r,accessPath:i,pathId:["servers",`${d}`]}));return[...n,...o]}function tg(e){return typeof e=="object"&&Jo(e)&&"$ref"in e&&typeof e.$ref=="string"}function TL(e,t,r){let i=e.$ref.substring(2).split("/").map(a=>a.replace(/~1/g,"/")),n=t;for(let a of i){if(typeof n!="object"||n==null)return r;n=n[a]}return n==null?r:(tg(n)&&(n=TL(n,t,r)),n)}function B0u(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return tg(r)?TL(r,t,void 0):r}var QLh=ue(vM());var I0u=class extends Ao{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[fLh];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var C0u=class extends Ao{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[pLh]}convert(){return this.passwordVariableName}};var q0u=class extends Ao{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[dLh]}convert(){return this.usernameVariableName}};var T0u=class extends Ao{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[_Lh];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var R0u=class extends Ao{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[hLh]}convert(){return this.tokenVariableName}};function OLh(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var mLh="x-bearer-format",ALh="x-code-samples",PLh="x-codeSamples";var z0u=class extends Ao{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[mLh]}convert(){return this.bearerFormat}};var N0u=class extends Ao{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[yLh];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var F0u=class extends Ao{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[bLh]}convert(){return this.headerVariableName}};function jLh(e){return e.type==="apiKey"}var ela=class extends Ao{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){jLh(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new N0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new F0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new z0u({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()}}};function Q0u(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function tla(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function sOn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(sOn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function U0u(e){if(Array.isArray(e))return e.map(tla);if(typeof e=="symbol")return[e];e=sOn(e);let t=[],r=e.length;if(r===0)return t;let i=0,n="",a="",o=!1;for(e.charCodeAt(0)===46&&(t.push(""),i++);i<r;){let c=e[i];a?c==="\\"&&i+1<r?(i++,n+=e[i]):c===a?a="":n+=c:o?c==='"'||c==="'"?a=c:c==="]"?(o=!1,t.push(n),n=""):n+=c:c==="["?(o=!0,n&&(t.push(n),n="")):c==="."?n&&(t.push(n),n=""):n+=c,i++}return n&&t.push(n),t}function ZYa(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(R3o(t))return r;let i=e[t];return i===void 0?Q0u(t)?ZYa(e,U0u(t),r):r:i}case"number":case"symbol":{typeof t=="number"&&(t=tla(t));let i=e[t];return i===void 0?r:i}default:{if(Array.isArray(t))return oSB(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),R3o(t))return r;let i=e[t];return i===void 0?r:i}}}function oSB(e,t,r){if(t.length===0)return r;let i=e;for(let n=0;n<t.length;n++){if(i==null||R3o(t[n]))return r;i=i[t[n]]}return i===void 0?r:i}function wLh(e){return function(t){return ZYa(t,e)}}function ELh(e){return e!==null&&(typeof e=="object"||typeof e=="function")}function srl(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function lrl(e,t,r){return typeof r!="function"?lrl(e,t,()=>{}):crl(e,t,function i(n,a,o,c,d,s){let u=r(n,a,o,c,d,s);return u!==void 0?!!u:crl(n,a,i,s)},new Map)}function crl(e,t,r,i){if(t===e)return!0;switch(typeof t){case"object":return uSB(e,t,r,i);case"function":return Object.keys(t).length>0?crl(e,{...t},r,i):srl(e,t);default:return ELh(e)?typeof t=="string"?t==="":!0:srl(e,t)}}function uSB(e,t,r,i){if(t==null)return!0;if(Array.isArray(t))return SLh(e,t,r,i);if(t instanceof Map)return sSB(e,t,r,i);if(t instanceof Set)return cSB(e,t,r,i);let n=Object.keys(t);if(e==null||T3a(e))return n.length===0;if(n.length===0)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let a=0;a<n.length;a++){let o=n[a];if(!T3a(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!r(e[o],t[o],o,e,t,i))return!1}return!0}finally{i?.delete(t)}}function sSB(e,t,r,i){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[n,a]of t.entries()){let o=e.get(n);if(r(o,a,n,e,t,i)===!1)return!1}return!0}function SLh(e,t,r,i){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let n=new Set;for(let a=0;a<t.length;a++){let o=t[a],c=!1;for(let d=0;d<e.length;d++){if(n.has(d))continue;let s=e[d],u=!1;if(r(s,o,a,e,t,i)&&(u=!0),u){n.add(d),c=!0;break}}if(!c)return!1}return!0}function cSB(e,t,r,i){return t.size===0?!0:e instanceof Set?SLh([...e],[...t],r,i):!1}function L0u(e,t){return lrl(e,t,()=>{})}function MLh(e){return e=hxp(e),t=>L0u(t,e)}function DLh(e,t){return _xp(e,(r,i,n,a)=>{let o=t?.(r,i,n,a);if(o!==void 0)return o;if(typeof e=="object")switch(Object.prototype.toString.call(e)){case C3o:case I3o:case q3o:{let c=new e.constructor(e?.valueOf());return SVt(c,e),c}case T3o:{let c={};return SVt(c,e),c.length=e.length,c[Symbol.iterator]=e[Symbol.iterator],c}default:return}})}function BLh(e){return DLh(e)}var lSB=/^(?:0|[1-9]\d*)$/;function ILh(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 lSB.test(e)}}function CLh(e){return e!==null&&typeof e=="object"&&B3o(e)==="[object Arguments]"}function qLh(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&Q0u(t)&&e?.[t]==null?r=U0u(t):r=[t],r.length===0)return!1;let i=e;for(let n=0;n<r.length;n++){let a=r[n];if((i==null||!Object.hasOwn(i,a))&&!((Array.isArray(i)||CLh(i))&&ILh(a)&&a<i.length))return!1;i=i[a]}return!0}function TLh(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=tla(e);break}}return t=BLh(t),function(r){let i=ZYa(r,e);return i===void 0?qLh(r,e):t===void 0?i===void 0:L0u(i,t)}}function RLh(e){if(e==null)return j8o;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?TLh(e[0],e[1]):MLh(e);case"string":case"symbol":case"number":return wLh(e)}}function V0u(e,t=j8o){return e==null?{}:C4(e,RLh(t))}function zLh(e){return vKp(sOn(e))}function NLh(e){return typeof e!="string"&&(e=sOn(e)),e.replace(/['\u2019]/g,"")}function rWt(e){return bxp(NLh(zLh(e)))}function ij(e){if(e!=null)return Array.isArray(e)?e:[e]}function W0u({namespace:e,path:t,method:r,sdkMethodName:i,operationId:n,displayName:a,isWebhook:o}){if(t==null)return;let c=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(i==null&&n==null&&a==null&&c==null))return`${fSB(o)}${dSB(e)}.${pSB(i,n,a,c)}`}function fSB(e){return e?"webhook_":"endpoint_"}function dSB(e){return e!=null?ij(e)?.map(t=>rWt(t)).join("/"):""}function pSB(e,t,r,i){return e||t||rWt(r??"")||rWt(i??"")}function FLh(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var G0u=class extends Ao{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[lLh],this.accessTokenLocator!=null&&(FLh(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 x0u=class extends Ao{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 ela({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new G0u({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=W0u({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:sc.EndpointId(r),accessTokenLocator:sc.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var rla=class extends Ao{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 I0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new q0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new C0u({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 T0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new R0u({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":{OLh(this.input)?(this.authScheme="header",this.headerAuthNode=new ela({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 x0u({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 QLh.UnreachableCaseError(this.authScheme);return}}};var ila=class extends Ao{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(i=>{let n=B0u(i,this.context.document);if(n==null){this.context.errors.warning({message:`No auth scheme found for ${i}. Inline security schemes are not supported.`,path:this.accessPath});return}let a=new rla({input:n,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});a.convert()!=null?(this.authNodesMap??={},this.authNodesMap[i]=a):this.context.errors.warning({message:`No auth scheme found for ${i}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let i=r.convert();if(i!=null)return[t,i]}).filter(Jo))}};var H0u=class extends Ao{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[aLh],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 ULh(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function LLh(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function nla(e,t){return e==null?void 0:Object.entries(e).map(([i,n])=>ij(n.convert())?.map(o=>((t!=null&&!t.includes(i)||t==null&&!ULh(n))&&(o=LLh(o,o.type==="enum"?o.default:void 0)),{key:sc.PropertyKey(i),valueShape:o,description:n.description,availability:n.availability?.convert()})).filter(Jo)).filter(Jo).reduce((i,n)=>i.flatMap(a=>n.length>0?n.map(o=>[...a,o]):[[...a]]),[[]])}function K0u(e,t){return tg(e)?TL(e,t,void 0):e}function AYi(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function VLh(e,t){let r={...e};for(let[i,n]of Object.entries(t??{}))r[i]=[...r[i]??[],...n];return Object.keys(r).length>0?r:void 0}function WLh(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let i of e)for(let n of t)r.push({path:i.path??n.path,responseStatusCode:i.responseStatusCode??n.responseStatusCode,name:i.name??n.name,description:i.description??n.description,pathParameters:i.pathParameters??n.pathParameters,queryParameters:i.queryParameters??n.queryParameters,headers:i.headers??n.headers,requestBody:i.requestBody??n.requestBody,responseBody:i.responseBody??n.responseBody,snippets:{...n.snippets,...i.snippets}});return r}var GLh=ue(vM());var frl=["decimal","decimal128","double-int","double","float","sf-decimal"],drl=["int16","int32","int64","int8","sf-integer","uint8"],prl=["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"],_rl=["beta","pre-release","in-development","generally-available","deprecated"];function TC(e,t){return tg(e)?TL(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var SSe=class extends Ao{availability;constructor(t){super(t),this.safeParse()}parse(){if(TC(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[oLh];r!=null&&(_rl.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${_rl.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return sc.Availability.Beta;case"in-development":return sc.Availability.InDevelopment;case"generally-available":return sc.Availability.GenerallyAvailable;case"deprecated":return sc.Availability.Deprecated;case void 0:return;default:new GLh.UnreachableCaseError(this.availability);return}}};var $0u=ue(vM());function xLh(e){return typeof e=="object"&&e!=null&&"language"in e}function HLh(e){return typeof e=="object"&&e!=null&&"sdk"in e}function KLh(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function JLh(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function J0u(e){return typeof e=="object"&&e!=null&&"event"in e}function hrl(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(J0u)}function PYi(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function $Lh(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var Y0u=class extends Ao{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,i,n,a){super(t),this.path=r,this.successResponseStatusCode=i,this.requestBodyByContentType=n,this.responseBodies=a,this.safeParse()}parse(){this.examples=this.input[gLh]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([n,a])=>{let o=typeof r=="object"?r[n]:void 0;switch(a.multipartType){case"file":return PYi(o)?[n,{type:"filenameWithData",filename:o.filename,data:sc.FileId(o.data)}]:o!=null?[n,{type:"filename",value:o}]:void 0;case"files":{if(Array.isArray(o)){if(o.every(c=>PYi(c)))return[n,{type:"filenamesWithData",value:o.map(c=>({filename:c.filename,data:sc.FileId(c.data)}))}];if(o.every(c=>typeof c=="string"))return[n,{type:"filenames",value:o}]}return}case"property":return[n,{type:"json",value:o}];case void 0:return;default:new $0u.UnreachableCaseError(a.multipartType);return}}).filter(Jo))};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(i=>{let n=t!=null?this.requestBodyByContentType?.[t]:void 0,a;if(n!=null)switch(n.contentType){case"form-data":a=$Lh(r.request)?this.convertFormDataExampleRequest(n,r.request):void 0;break;case"json":a=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":a=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new $0u.UnreachableCaseError(n.contentType);break}let o;switch(i.contentType){case"application/json":{KLh(r.response)&&(o={type:"json",value:r.response.body});break}case"text/event-stream":{hrl(r.response)&&(o={type:"sse",value:r.response.stream.map(l=>({event:l.event,data:l.data}))});break}case"application/octet-stream":!hrl(r.response)&&JLh(r.response)&&(o={type:"stream",value:r.response.stream});break;case void 0:break;default:new $0u.UnreachableCaseError(i.contentType);break}let c={};r["code-samples"]?.forEach(l=>{xLh(l)?l.language!=null&&(c[l.language]??=[],c[l.language]?.push({name:l.name,language:l.language,install:l.install,code:l.code,generated:!1,description:l.docs})):HLh(l)&&l.sdk!=null&&(c[l.sdk]??=[],c[l.sdk]?.push({name:l.name,language:l.sdk,install:void 0,code:l.code,generated:!1,description:l.docs}))});let d=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([l,p])=>[sc.PropertyKey(l),p])),s=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([l,p])=>[sc.PropertyKey(l),p])),u=Object.fromEntries(Object.entries(r.headers??{}).map(([l,p])=>[sc.PropertyKey(l),p]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(d).length>0?d:void 0,queryParameters:Object.keys(s).length>0?s:void 0,headers:Object.keys(u).length>0?u:void 0,requestBody:a,responseBody:o,snippets:c}}))}};var kYa=class extends Ao{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[S0u]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>sc.api.v1.SubpackageId(rWt(r)))}};var X0u=class extends Ao{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[sLh]}convert(){return this.sdkMethodName}};var Z0u=class extends Ao{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[cLh]}convert(){return this.isWebhook}};var k0u=class extends Ao{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[ALh]??[],...this.input[PLh]??[]],this.codeSamples.forEach(t=>{[...Object.values(sc.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 cOn=ue(vM());function yrl(e,t){return tg(e)?TL(e,t,void 0):e}function YLh(e,t){return e.replace(/{(\w+)}/g,(r,i)=>t[i]!=null&&typeof t[i]=="string"||typeof t[i]=="number"||typeof t[i]=="boolean"?`${t[i]}`:r)}var NF="",SXt=class extends Ao{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,i,n,a){super(t),this.path=r,this.responseStatusCode=i,this.name=n,this.shapes=a,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,i])=>{let n=this.resolvedRequestInput?.value[r];switch(i.multipartType){case"file":return t&&(PYi(n)||typeof n=="string");case"files":return t&&Array.isArray(n)&&n.every(a=>PYi(a)||typeof a=="string");case"property":return t;case void 0:return t&&!1;default:return new cOn.UnreachableCaseError(i.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=yrl(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=yrl(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 cOn.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(J0u)){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 cOn.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,i])=>{let n=this.resolvedRequestInput?.value?.[r];switch(i.multipartType){case"file":return PYi(n)?[r,{type:"filenameWithData",filename:n.filename,data:sc.FileId(n.data)}]:[r,{type:"filename",value:n}];case"files":{if(Array.isArray(n)){if(n.every(a=>PYi(a)))return[r,{type:"filenamesWithData",value:n.map(a=>({filename:a.filename,data:sc.FileId(a.data)}))}];if(n.every(a=>typeof a=="string"))return[r,{type:"filenames",value:n}]}return}case"property":return[r,{type:"json",value:n}];case void 0:return;default:new cOn.UnreachableCaseError(i.multipartType);return}}).filter(Jo))};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 cOn.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 cOn.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let i=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([o,c])=>[o,c.example({includeOptionals:!1,override:o})]));i=Object.keys(i).length>0?i:void 0;let n=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([o,c])=>c.required||c.inputExample!=null?[o,c.example({includeOptionals:!1,override:o})]:void 0).filter(Jo));n=Object.keys(n).length>0?n:void 0;let a=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([o,c])=>c.required||c.inputExample!=null?[o,c.example({includeOptionals:!1,override:o})]:void 0).filter(Jo));if(a=Object.keys(a).length>0?a:void 0,!(this.path==null&&t==null&&r==null&&a==null&&n==null&&i==null))return{path:YLh(this.path,i??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?EXt(this.name):this.summary!=null?EXt(this.summary):void 0,description:this.convertDescription(),pathParameters:i,queryParameters:n,headers:a,requestBody:t,responseBody:r,snippets:void 0}}};function XLh(e,t){return tg(e)?TL(e,t,void 0):e}var lVh=ue(vM());var ZLh="#/components/schemas/";function ala(e){if(e.$ref.startsWith(ZLh))return e.$ref.replace(ZLh,"")}function _4i(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function jYi(e){return typeof e.type=="string"&&e.type==="array"}function kLh(e){return e.type==="boolean"}function eVh(e){return e.type==="integer"}function wYi(e){return!Array.isArray(e.type)&&!jYi(e)}function tVh(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||wYi(t)||jYi(t))}function rVh(e){return"nullable"in e&&typeof e.nullable=="boolean"}function iVh(e){return e.type==="null"}function nVh(e){return e.type==="number"}function brl(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function aVh(e){return e.type==="string"}var ewu=class extends qY{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new hw({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 ij(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 twu=class extends qC{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 SSe({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 rwu=class extends qY{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 hw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Jo)}convert(){if(this.typeNodes==null)return;let i=this.typeNodes.map(n=>ij(n.convert())?.map(o=>({displayName:n.name,shape:o,description:n.description,availability:n.availability?.convert()}))).filter(Jo).reduce((n,a)=>n.flatMap(o=>a.length>0?a.map(c=>[...o,c]):[[...o]]),[[]]).map(n=>({type:"undiscriminatedUnion",variants:n}));return this.nullable?i.map(_4i).filter(Jo):i}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function iwu(e){return e!=null&&e.length>0?e:[void 0]}var ola=class extends qY{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 hw({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 hw({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(tg(t))return ala(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([i,n])=>[i,new hw({input:n,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",i],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Jo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return nla(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}}}]:ij(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(Jo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(i=>iwu(r).map(n=>(this.extends==null||this.extends.length===0)&&i.length===0&&n!=null?{type:"alias",value:n}:{type:"object",extends:this.extends.map(a=>sc.TypeId(a)),properties:i,extraProperties:n}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(i=>{let n=TC(i,this.context.document);n!=null&&(r={...r,...Object.fromEntries(Object.entries(n.properties??{}).map(([a,o])=>[a,new hw({input:o,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((i,n)=>{let a=r?.[n];return i[n]=a?.example({includeOptionals:t,override:n}),i},{}):Object.entries(r).reduce((i,[n,a])=>(i[n]=a?.example({includeOptionals:t,override:n}),i),{}))}};var nwu=class extends qY{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=>TC(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>TC(t,this.context.document)?.type!=="null"?new hw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Jo);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(([i,n])=>{let a=TC({$ref:n},this.context.document);if(a==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${n}`,path:[...this.accessPath,"discriminator","mapping",i]});return}r[i]=new hw({input:a,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",i],pathId:i,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let n=this.undiscriminatedMapping?.flatMap(a=>a.convert()).filter(Jo);return this.isNullable&&n!=null?n.map(_4i).filter(Jo):n}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:sc.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([n,a])=>ij(a.convert())?.map(c=>{if(!(c==null||c.type!=="object"))return{discriminantValue:n,displayName:a.name??EXt(n),availability:a.availability?.convert(),description:a.description,...c}}).filter(Jo)).filter(Jo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(n=>ij(n.convert())?.map(o=>{if(o==null)return;t+=1;let c=o.type==="object"?EXt(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:n.name??(o.type==="alias"&&o.value.type==="id"?EXt(o.value.id):c),shape:o,description:n.description,availability:n.availability?.convert()}}).filter(Jo)).filter(Jo)}:void 0,i=this.isNullable?_4i(r):r;return i!=null?[i]: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 awu=class extends qC{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 EYi=class extends qC{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,i)=>{if(t){if(tg(r)){let n=TC(r,this.context.document);r=typeof n=="string"?n:typeof n?.default=="string"?n?.default:typeof n?.example=="string"?n.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${i}]`]}),t=!1;return}return r}}).filter(Jo),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 oVh=ue(vM());function _SB(e){return drl.includes(e)}var owu=class extends qC{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&&(_SB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${drl.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 oVh.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 uwu=class extends qC{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return _4i({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var uVh=ue(vM());function hSB(e){return frl.includes(e)}var swu=class extends qC{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&&(hSB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${frl.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 uVh.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 sVh=ue(vM());function ySB(e){return prl.includes(e)}var cwu=class extends qC{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 sVh.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&&(ySB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${prl.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new EYi({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 cVh=ue(vM());var lwu=class extends qC{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,cVh.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var lOn=class extends qY{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=ala(this.input);let t=TC(this.input,this.context.document);t?.enum!=null&&wYi(t)&&(this.maybeEnumConverterNode=new EYi({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:sc.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=TC(this.input,this.context.document);if(r!=null)return new hw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var hw=class e extends qY{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 SSe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),wYi(this.input)&&rVh(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),tg(this.input)){let t=ala(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 lOn({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 twu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(tVh(this.input))this.typeShapeNode=new rwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wYi(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new nwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(brl(this.input)&&this.input.allOf!=null)this.typeShapeNode=new ola({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wYi(this.input)&&this.input.enum!=null)this.typeShapeNode=new EYi({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":brl(this.input)&&(this.typeShapeNode=new ola({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":jYi(this.input)&&(this.typeShapeNode=new ewu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":kLh(this.input)&&(this.typeShapeNode=new awu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":eVh(this.input)&&(this.typeShapeNode=new owu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":nVh(this.input)&&(this.typeShapeNode=new swu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":aVh(this.input)&&(this.typeShapeNode=new cwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":iVh(this.input)&&(this.typeShapeNode=new uwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new lVh.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 ola({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 lwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!tg(this.input)&&(!jYi(this.input)&&this.input==null||jYi(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=ij(t)?.map(i=>this.nullable?_4i(i):i).filter(Jo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function SYi(e){if(e!=null)return nla(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Jo))}var MXt=class extends qC{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;tg(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 SSe({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new hw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let i=XLh(this.input,this.context.document);this.inputExample=i?.example??Object.values(i?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function fVh(e,t){return tg(e)?TL(e,t,void 0):e}var vrl=ue(vM());function fwu(e){let{uniqueId:t,type:r,contextTypes:i,description:n,availability:a}=e;i[sc.TypeId(t)]={name:t,shape:r,description:n,availability:a}}var dVh=ue(Anc(),1),ula=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,i,n,a,o){this.type=t,this.subtype=r,this.essence=i,this.parameters=n,this.mimeType=a,this.input=o}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=dVh.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 bSB(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var dwu=class extends Ao{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 hw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),bSB(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],i)=>{let n;if(tg(r)?n=B0u(r.$ref,this.context.document):n=r,n!=null)return[t,new rla({input:n,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${i}`]})]}).filter(Jo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let i=r.convert();if(i!=null)return[sc.api.latest.AuthSchemeId(t),i]}).filter(Jo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let i=r.name??t,n=ij(r.convert());return n==null?[t,void 0]:[sc.TypeId(t),{name:i,shape:n[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Jo(r))):void 0}}};var pwu=class extends hw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=TC(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${tg(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=TC(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 _wu=class extends Ao{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 i=TC(this.input.schema,this.context.document);this.availability=new SSe({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=tg(this.input.schema)?new lOn({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 n=ula.parse(t);n?.containsJSON()?(this.contentType="json",this.schema=this.schema??new hw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):n?.isOctetStream()?(this.contentType="bytes",this.isOptional=i?.required==null):n?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=i?.required,this.fields=Object.fromEntries(Object.entries(i?.properties??{}).map(([a,o])=>{if(o!=null)return[a,new pwu({input:o,context:this.context,accessPath:this.accessPath,pathId:`schema.${a}`,seenSchemas:new Set,nullable:void 0,schemaName:a})]}).filter(Jo))):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?{[NF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[NF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:ij(t)?.map(i=>{let n=i.type;switch(n){case"object":case"alias":return i;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let a=rWt([this.method,this.path,this.contentType,"request"].join("_"));return fwu({uniqueId:a,type:i,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:sc.TypeId(a),default:i.type==="enum"&&i.default!=null?{type:"enum",value:i.default}:void 0}}}case void 0:return;default:new vrl.UnreachableCaseError(n);return}}).filter(Jo)}convert(){if(this.schema instanceof lOn)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(([i,n])=>{switch(n.multipartType){case"file":return[{type:n.multipartType,key:sc.PropertyKey(i),isOptional:this.requiredFields?.includes(i)==null,contentType:n.contentType,description:n.description,availability:n.availability?.convert()}];case"files":return[{type:n.multipartType,key:sc.PropertyKey(i),isOptional:this.requiredFields?.includes(i)==null,contentType:n.contentType,description:n.description,availability:n.availability?.convert()}];case"property":{let a=ij(n.convert()),o=n.multipartType;return a?.map(c=>({type:o,key:sc.PropertyKey(i),contentType:n.contentType,exploded:void 0,valueShape:c,description:n.description,availability:n.availability?.convert()}))}case void 0:return[];default:return new vrl.UnreachableCaseError(n.multipartType),[]}}).filter(Jo).reduce((i,n)=>i.flatMap(a=>n.length>0?n.map(o=>[...a,o]):[[...a]]),[[]]).map(i=>({type:"formData",fields:i,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var hwu=class extends Ao{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let i=fVh(this.input,this.context.document);if(i==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(i.content).forEach(([n,a])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[n]=new _wu({input:a,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:n,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>ij(r.convert())?.map(n=>({description:this.description,contentType:t,body:n}))).filter(Jo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>ij(t.convert())?.map(i=>{if(!(i.type!=="alias"&&i.type!=="object"))return{description:this.description,shape:i}})).filter(Jo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var pVh={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 _Vh(e,t){if(tg(e)){let r=TL(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ywu=ue(vM());var hVh="application/json";var yVh="application/octet-stream";function bVh(e,t){return e===t||t===NF||e===NF}var eXa=class extends Ao{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,i,n,a,o,c,d){super(t),this.streamingFormat=i,this.path=n,this.method=a,this.statusCode=o,this.requests=c,this.shapes=d,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,i){for(let n of t)for(let[a,o]of Object.entries(n?.examples??{}))for(let[c,d]of Object.entries(r))for(let s of d)bVh(c,a)&&(i.add(c),this.examples?.push(new SXt({input:{requestExample:o,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:a!=null&&a!==""?["examples",a]:"examples"},this.path,this.statusCode,AYi(a,c),{requestBody:n,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let i=0;for(let n of t){let a=0;for(let[o,c]of r){if(a===i){let[d,s,u]=n??[void 0,void 0,void 0];this.examples?.push(...c.map(l=>new SXt({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:s!=null&&s!==""?["examples",s]:"examples"},this.path,this.statusCode,AYi(s,o),{requestBody:d,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}a++}i++}if(t.length>r.length)for(let n of t.slice(r.length)){let[a,o]=r[r.length-1]??[void 0,void 0],[c,d,s]=n??[void 0,void 0,void 0];this.examples?.push(...(o??[void 0]).map(u=>new SXt({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:d!=null&&d!==""?["examples",d]:"examples"},this.path,this.statusCode,AYi(d,a),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[n,a,o]=t[t.length-1]??[void 0,void 0,void 0];for(let[c,d]of r.slice(t.length))this.examples?.push(...d.map(s=>new SXt({input:{requestExample:o,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:a!=null&&a!==""?["examples",a]:"examples"},this.path,this.statusCode,AYi(a,c),{requestBody:n,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,i,n){let a=t[NF];if(a!=null)for(let o of a)this.examples?.push(new SXt({input:{requestExample:n,responseExample:o},context:this.context,accessPath:this.accessPath,pathId:i!=null&&i!==""?["examples",i]:"examples"},this.path,this.statusCode,AYi(i,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 i of t)if(Object.keys(i.examples??{}).length===0)this.pushResponseExample(r,i,void 0,void 0);else for(let[n,a]of Object.entries(i.examples??{}))this.pushResponseExample(r,i,n,a)}parse(t){if(t==="empty")this.empty=!0;else{let c=ula.parse(t);if(c?.isJSON()||c?.isEventStream())this.contentType=hVh,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 hw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(c?.isOctetStream())this.contentType=yVh,this.contentSubtype=TC(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 hw({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=V0u(this.input.examples,c=>[c])),this.input.example!=null&&Object.keys(r).length===0&&(r[NF]??=[],r[NF]=[{value:this.input.example}]);let i=TC(this.input.schema,this.context.document);if(i!=null&&(i.examples!=null&&Object.keys(r).length===0&&(r=V0u(i.examples,c=>[c])),i.example!=null&&Object.keys(r).length===0&&(r[NF]??=[],r[NF]?.push({value:i.example}))),Object.keys(r).length===0){let c=this.schema?.example({includeOptionals:!0,override:void 0});r[NF]??=[],r[NF]?.push(c!=null?{value:c}:void 0)}this.examples??=[];let n=new Set;this.matchRequestResponseExamplesByName(this.requests,r,n);let a=[];for(let c of this.requests)a.push(...Object.entries(c.examples??{}).filter(([d])=>!n.has(d)&&d!==NF).map(([d,s])=>[c,d,s]));let o=Object.entries(r).filter(([c,d])=>!n.has(c)&&Jo(d)&&c!==NF);Object.keys(r).every(c=>c===NF)||this.matchExamplesByIndex(a,o),!n.has(NF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return ij(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new ywu.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return ij(this.schema?.convert())?.map(r=>{let i=r.type;switch(i){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let n=rWt([this.method,this.path,this.statusCode,"response"].join("_"));return fwu({uniqueId:n,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:sc.TypeId(n),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new ywu.UnreachableCaseError(i);return}}).filter(Jo)}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 ywu.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var tXa=class extends Ao{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,i,n,a,o){super(t),this.path=r,this.method=i,this.statusCode=n,this.requests=a,this.shapes=o,this.safeParse()}parse(t){this.description=this.input.description;let r=_Vh(this.input,this.context.document);if(r==null){this.context.errors.error({message:tg(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([i,n])=>{this.headers??={},this.headers[i]=new MXt({input:n,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:i})}),r.content==null?(this.responses??=[],this.responses.push(new eXa({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(([i,n])=>{this.responses??=[],this.responses.push(new eXa({input:n,context:this.context,accessPath:this.accessPath,pathId:["content",i]},i,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(Jo)}};var bwu=class extends Ao{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,i,n,a){super(t),this.path=r,this.method=i,this.requests=n,this.shapes=a,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,i])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new tXa({input:{...t,...i},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new tXa({input:i,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 i=r.convert();if(i!=null)return iwu(SYi(r.headers)).flatMap(n=>i?.map(a=>({headers:n,response:{statusCode:parseInt(t),body:a,description:r.description},examples:(r.responses??[]).flatMap(o=>(o.examples??[]).map(c=>c.convert()).filter(Jo))})))}).filter(Jo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(i=>{let n=i.schema,a=ij(n?.convert());if(n!=null)return a?.map(o=>({statusCode:parseInt(t),shape:o,description:r.description??n.description,availability:n.availability?.convert(),name:n.name??pVh[parseInt(t)]??"UNKNOWN ERROR",examples:i.examples?.map(c=>{let d=c.convert();if(d!=null&&d.responseBody?.type==="json")return{name:d.name,description:d.description,responseBody:d.responseBody}}).filter(Jo)})).filter(Jo)})).filter(Jo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var MYi=class extends Ao{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,i){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new SXt({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,AYi(i,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 SSe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=mYi(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new Z0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((i,n)=>{if(tg(i)){let a=K0u(i,this.context.document);if(a!=null)i=a;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${i.$ref}`,path:[...this.accessPath,`parameters[${n}]`]});return}}i.in==="path"?i.schema!=null&&(this.pathParameters??={},this.pathParameters[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name})):i.in==="query"?i.schema!=null&&(this.queryParameters??={},this.queryParameters[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name})):i.in==="header"&&i.schema!=null&&(this.requestHeaders??={},this.requestHeaders[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name}))});for(let i of this.extractPathParameterIds()??[])this.pathParameters?.[i]==null&&this.context.errors.warning({message:`Path parameter not defined: ${i}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new k0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new hwu({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 bwu({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 i=this.requests?.requestBodiesByContentType;i==null||Object.keys(i).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(i).forEach(n=>{if(Object.keys(n.examples??{}).length===0){let a=n.schema?.example({includeOptionals:!1,override:void 0});a!=null&&this.pushEmptyResponseExample({value:a},n,void 0)}else Object.entries(n.examples??{}).forEach(([a,o])=>{this.pushEmptyResponseExample(o,n,a)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(i=>Number(i)>=200&&Number(i)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new ila({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new kYa({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(i=>i.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((i,n)=>new kYa({input:{[S0u]:i},context:this.context,accessPath:this.accessPath,pathId:["tags",`${n}`]})));let r=new X0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(i=>W0u({namespace:ij(i?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Jo),this.xFernExamplesNode=new Y0u({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(Jo)}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((n,a)=>(n.push({type:"literal",value:"/"}),a.startsWith("{")&&a.endsWith("}")?n.push({type:"pathParameter",value:sc.PropertyKey(a.slice(1,-1).trim())}):n.push({type:"literal",value:a}),n),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},i=this.emptyResponseExamples?.map(u=>u.convert()).filter(Jo),n=WLh(this.xFernExamplesNode?.convert(),[...i??[],...t?.flatMap(u=>u.examples)??[]])?.map(u=>({...u,snippets:VLh(u.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((u,l)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:sc.WebhookId(u),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[l]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(p=>p.value.toString())??[],queryParameters:SYi(this.queryParameters)?.flat(),headers:SYi(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Jo)}}).filter(Jo);let a=this.servers?.map(u=>u.convert()).filter(Jo),o=this.convertPathToPathParts();if(o==null)return;let c,d=this.auth?.convert();d!=null&&(c=Object.keys(d));let s=t?.flatMap(u=>u.headers).filter(Jo);return this.endpointIds.map((u,l)=>({id:sc.EndpointId(u),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[l]?.convert()?.map(p=>sc.api.v1.SubpackageId(p)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:o,auth:c?.map(p=>sc.api.latest.AuthSchemeId(p)),defaultEnvironment:a?.[0]?.id,environments:a,pathParameters:SYi(this.pathParameters)?.flat(),queryParameters:SYi(this.queryParameters)?.flat(),requestHeaders:SYi(this.requestHeaders)?.flat(),responseHeaders:s!=null&&s.length>0?s:void 0,requests:this.requests?.convert(),responses:t?.map(p=>p.response),errors:r,examples:n,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var sla=class extends Ao{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i,isWebhook:n}){this.description=this.input.description;let a=mYi(t,this.input.servers,this.context,this.accessPath),o=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new MYi({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:a,globalAuth:r,path:o,method:"GET",basePath:i,isWebhook:n})),this.input.post!=null&&(this.post=new MYi({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:a,globalAuth:r,path:o,method:"POST",basePath:i,isWebhook:n})),this.input.put!=null&&(this.put=new MYi({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:a,globalAuth:r,path:o,method:"PUT",basePath:i,isWebhook:!1})),this.input.patch!=null&&(this.patch=new MYi({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:a,globalAuth:r,path:o,method:"PATCH",basePath:i,isWebhook:!1})),this.input.delete!=null&&(this.delete=new MYi({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:a,globalAuth:r,path:o,method:"DELETE",basePath:i,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(Jo)}};function vwu(e){return"payloads"in e}var gwu=class extends Ao{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i}){this.paths=Object.entries(this.input).map(([n,a])=>{if(a!=null)return new sla({input:a,context:this.context,accessPath:this.accessPath,pathId:n,servers:mYi(t,a.servers,this.context,this.accessPath),globalAuth:r,basePath:i,isWebhook:void 0})}).filter(Jo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(i=>{let n=i.convert();n?.forEach(a=>{vwu(a)?r[sc.WebhookId(a.id)]=a:t[sc.EndpointId(a.id)]=a})}),{endpoints:t,webhookEndpoints:r}}};var Owu=class extends Ao{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[uLh]?.map(r=>{let{header:i,...n}=r;return(n.optional!=null&&!n.optional||K0u(n,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(i)),[i,new MXt({input:n,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:i})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return nla(this.globalHeaders,this.requiredProperties)?.flat()}};function vVh(e,t){if(tg(e)){let r=TL(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mwu=class extends Ao{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i}){this.webhooks=Object.entries(this.input??{}).map(([n,a])=>{let o=vVh(a,this.context.document);if(o!=null)return new sla({input:o,context:this.context,accessPath:this.accessPath,pathId:n,servers:t,globalAuth:r,basePath:i,isWebhook:!0})}).filter(Jo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(i=>{vwu(i)&&(t[sc.WebhookId(i.id)]=i)}),t),{})}};var Awu=class extends Ao{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=mYi(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new ila({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new H0u({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 gwu({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 mwu({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 dwu({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Owu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=Nve(),{webhookEndpoints:r,endpoints:i}=this.paths?.convert()??{},n={...this.webhooks?.convert()??{},...r??{}},a=iLh({endpoints:i,webhookEndpoints:n}),{types:o,auths:c}=this.components?.convert()??{};return{id:sc.ApiDefinitionId(t),endpoints:i??{},websockets:{},webhooks:n,types:{...o,...this.context.generatedTypes},subpackages:a,auths:{...c,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};async function grl(e,t){if(e instanceof ySe){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof jS))return;let r=new x8t(e.absoluteFilePath),i=await vSe({context:t,specs:e.specs}),n=await r.loadDocuments({context:t,specs:i,loadAiExamples:!0}),a;for(let o of n){if(o.type!=="openapi")continue;let c={document:o.value,logger:t.logger,errors:new w0u,generatedTypes:{}},d=new Awu({input:o.value,context:c,accessPath:[],pathId:e.workspaceName??"openapi parser"});a=j$n(a,d.convert())}return a}var zKh=ue(Arl(),1),NKh=ue(lEu(),1),TSu=require("fs/promises"),FKh=ue(require("http"),1),QKh=ue(require("path"),1);var A6h=require("events"),hEu=ue(require("fs"),1),OOn=ue(require("path"),1);var n6h=ue(require("os"),1),a6h=300,RYi=20,jXa=1e7,o6h=n6h.default.platform();var Q1B=o6h==="darwin",Vil=o6h==="win32",zYi=Q1B||Vil,u6h=3e3,s6h=2e4,Wil=1250;var CXt;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(CXt||(CXt={}));var gOn;(function(e){e.CHANGE="change",e.RENAME="rename"})(gOn||(gOn={}));var wXa;(function(e){e.CHANGE="change",e.ERROR="error"})(wXa||(wXa={}));var nf;(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"})(nf||(nf={}));var Qx;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(Qx||(Qx={}));var U1B=(e,t=1,r)=>{t=Math.max(1,t);let i=r?.leading??!1,n=r?.trailing??!0,a=Math.max(r?.maxWait??1/0,t),o,c,d=0,s=0,u=()=>{let g=Date.now(),A=g-d,j=g-s,M=A>=t||j>=a;return[g,M]},l=g=>{if(s=g,!o)return;let A=o;o=void 0,e.apply(void 0,A)},p=()=>{O(0)},_=()=>{c&&(p(),l(Date.now()))},h=g=>{if(s=g,i)return l(g)},y=g=>{if(n&&o)return l(g);o=void 0},b=()=>{c=void 0;let[g,A]=u();return A?y(g):v(g)},v=g=>{let A=g-d,j=g-s,M=t-A,w=a-j,D=Math.min(M,w);return O(D)},O=g=>{c&&clearTimeout(c),!(g<=0)&&(c=setTimeout(b,g))},m=(...g)=>{let[A,j]=u(),M=!!c;if(o=g,d=A,(j||!c)&&O(t),j)return M?l(A):h(A)};return m.cancel=p,m.flush=_,m},fEu=U1B;var Kil=ue(require("fs"),1),pEu=ue(require("path"),1);var pm=ue(require("fs"),1),RL=require("util");var y4i=(e,t)=>function(...i){return e.apply(void 0,i).catch(t)},qXt=(e,t)=>function(...i){try{return e.apply(void 0,i)}catch(n){return t(n)}};var Gil=ue(require("process"),1),c6h=Gil.default.getuid?!Gil.default.getuid():!1,l6h=1e4,NY=()=>{};var EXa={isChangeErrorOk:e=>{if(!EXa.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!c6h&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!EXa.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(!EXa.isNodeError(e))throw e;if(!EXa.isChangeErrorOk(e))throw e}},RC=EXa;var xil=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=l6h,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(i),i=()=>t(r);this.add(i)}),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()}}}}},f6h=new xil;var b4i=(e,t)=>function(i){return function n(...a){return f6h.schedule().then(o=>{let c=s=>(o(),s),d=s=>{if(o(),Date.now()>=i)throw s;if(t(s)){let u=Math.round(100*Math.random());return new Promise(p=>setTimeout(p,u)).then(()=>n.apply(void 0,a))}throw s};return e.apply(void 0,a).then(c,d)})}},v4i=(e,t)=>function(i){return function n(...a){try{return e.apply(void 0,a)}catch(o){if(Date.now()>i)throw o;if(t(o))return n.apply(void 0,a);throw o}}};var L1B={attempt:{chmod:y4i((0,RL.promisify)(pm.default.chmod),RC.onChangeError),chown:y4i((0,RL.promisify)(pm.default.chown),RC.onChangeError),close:y4i((0,RL.promisify)(pm.default.close),NY),fsync:y4i((0,RL.promisify)(pm.default.fsync),NY),mkdir:y4i((0,RL.promisify)(pm.default.mkdir),NY),realpath:y4i((0,RL.promisify)(pm.default.realpath),NY),stat:y4i((0,RL.promisify)(pm.default.stat),NY),unlink:y4i((0,RL.promisify)(pm.default.unlink),NY),chmodSync:qXt(pm.default.chmodSync,RC.onChangeError),chownSync:qXt(pm.default.chownSync,RC.onChangeError),closeSync:qXt(pm.default.closeSync,NY),existsSync:qXt(pm.default.existsSync,NY),fsyncSync:qXt(pm.default.fsync,NY),mkdirSync:qXt(pm.default.mkdirSync,NY),realpathSync:qXt(pm.default.realpathSync,NY),statSync:qXt(pm.default.statSync,NY),unlinkSync:qXt(pm.default.unlinkSync,NY)},retry:{close:b4i((0,RL.promisify)(pm.default.close),RC.isRetriableError),fsync:b4i((0,RL.promisify)(pm.default.fsync),RC.isRetriableError),open:b4i((0,RL.promisify)(pm.default.open),RC.isRetriableError),readFile:b4i((0,RL.promisify)(pm.default.readFile),RC.isRetriableError),rename:b4i((0,RL.promisify)(pm.default.rename),RC.isRetriableError),stat:b4i((0,RL.promisify)(pm.default.stat),RC.isRetriableError),write:b4i((0,RL.promisify)(pm.default.write),RC.isRetriableError),writeFile:b4i((0,RL.promisify)(pm.default.writeFile),RC.isRetriableError),closeSync:v4i(pm.default.closeSync,RC.isRetriableError),fsyncSync:v4i(pm.default.fsyncSync,RC.isRetriableError),openSync:v4i(pm.default.openSync,RC.isRetriableError),readFileSync:v4i(pm.default.readFileSync,RC.isRetriableError),renameSync:v4i(pm.default.renameSync,RC.isRetriableError),statSync:v4i(pm.default.statSync,RC.isRetriableError),writeSync:v4i(pm.default.writeSync,RC.isRetriableError),writeFileSync:v4i(pm.default.writeFileSync,RC.isRetriableError)}},d6h=L1B;var dEu=ue(require("fs"),1),SXa=ue(require("path"),1);var Hil=()=>{};var V1B=()=>{let e=Hil,t=Hil,r=!1,i=!1;return{promise:new Promise((d,s)=>{e=u=>(r=!0,d(u)),t=u=>(i=!0,s(u))}),resolve:e,reject:t,isPending:()=>!r&&!i,isResolved:()=>r,isRejected:()=>i}},p6h=V1B;var W1B=()=>{let{promise:e,resolve:t,isPending:r}=p6h(),i=0,n=()=>{i+=1},a=()=>{i-=1,!i&&t()};return(()=>{n(),queueMicrotask(a)})(),{promise:e,isPending:r,increment:n,decrement:a}},_6h=W1B;var h6h={then:e=>{e()}};var y6h=e=>Array.isArray(e)?e:[e],b6h=e=>typeof e=="function";var G1B=(e,t)=>{let r=t?.followSymlinks??!1,i=t?.depth??1/0,n=t?.limit??1/0,a=t?.ignore??[],o=y6h(a).map(W=>b6h(W)?W:x=>W.test(x)),c=W=>o.some(x=>x(W)),d=t?.signal??{aborted:!1},s=t?.onDirents||(()=>{}),u=[],l=new Set,p={},_=[],h=new Set,y={},b=[],v=new Set,O={},m={},g=new Set,A={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},j={directories:u,directoriesNames:l,directoriesNamesToPaths:p,files:_,filesNames:h,filesNamesToPaths:y,symlinks:b,symlinksNames:v,symlinksNamesToPaths:O,map:m},{promise:M,increment:w,decrement:D}=_6h(),B=0,R=(W,x,Ee,se)=>{g.has(x)||B>=n||(B+=1,W.directories.push(x),W.directoriesNames.add(Ee),u.push(x),l.add(Ee),p.propertyIsEnumerable(Ee)||(p[Ee]=[]),p[Ee].push(x),g.add(x),!(se>=i)&&(B>=n||$(x,se+1)))},T=(W,x,Ee)=>{g.has(x)||B>=n||(B+=1,W.files.push(x),W.filesNames.add(Ee),_.push(x),h.add(Ee),y.propertyIsEnumerable(Ee)||(y[Ee]=[]),y[Ee].push(x),g.add(x))},q=(W,x,Ee,se)=>{g.has(x)||B>=n||(B+=1,W.symlinks.push(x),W.symlinksNames.add(Ee),b.push(x),v.add(Ee),O.propertyIsEnumerable(Ee)||(O[Ee]=[]),O[Ee].push(x),g.add(x),r&&(se>=i||B>=n||de(x,se+1)))},z=(W,x,Ee,se,Oe)=>{d.aborted||c(x)||(se.isDirectory()?R(W,x,Ee,Oe):se.isFile()?T(W,x,Ee):se.isSymbolicLink()&&q(W,x,Ee,Oe))},N=(W,x,Ee,se)=>{if(d.aborted)return;let Oe=x===SXa.default.sep?"":SXa.default.sep,Fe=Ee.name,ae=`${x}${Oe}${Fe}`;c(ae)||(Ee.isDirectory()?R(W,ae,Fe,se):Ee.isFile()?T(W,ae,Fe):Ee.isSymbolicLink()&&q(W,ae,Fe,se))},H=(W,x,Ee,se)=>{for(let Oe=0,Fe=Ee.length;Oe<Fe;Oe++)N(W,x,Ee[Oe],se)},$=(W,x)=>{d.aborted||x>i||B>=n||(w(),dEu.default.readdir(W,{withFileTypes:!0},(Ee,se)=>{if(Ee||d.aborted||!se.length)return D();(s(se)||h6h).then(()=>{let Fe=m[W]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};H(Fe,W,se,x),D()})}))},de=(W,x)=>{w(),dEu.default.realpath(W,(Ee,se)=>{if(Ee||d.aborted)return D();dEu.default.stat(se,(Oe,Fe)=>{if(Oe||d.aborted)return D();let ae=SXa.default.basename(se),re=m[W]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};z(re,se,ae,Fe,x),D()})})};return(async(W,x=1)=>(W=SXa.default.normalize(W),g.add(W),$(W,x),await M,d.aborted?A:j))(e)},v6h=G1B;var TXt={lang:{debounce:fEu,attempt:e=>{try{return e()}catch(t){return TXt.lang.castError(t)}},castArray:e=>TXt.lang.isArray(e)?e:[e],castError:e=>TXt.lang.isError(e)?e:TXt.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(TXt.lang.isNaN(e))return TXt.lang.isNaN(t);if(TXt.lang.isPrimitive(e)||TXt.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(pEu.default.sep).length-1),getRealPath:(e,t)=>{try{return t?Kil.default.realpathSync.native(e):Kil.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===pEu.default.sep&&t.length-e.length>pEu.default.sep.length,poll:(e,t=s6h)=>d6h.retry.stat(t)(e,{bigint:!0}).catch(TXt.lang.noop),readdir:async(e,t,r=1/0,i=1/0,n,a)=>{if(a&&r===1&&e in a){let o=a[e];return[o.directories,o.files]}else{let o=await v6h(e,{depth:r,limit:i,ignore:t,signal:n});return[o.directories,o.files]}}}},xp=TXt;var _Eu=ue(require("path"),1);var Jil=class{constructor(t,r,i){this.base=i,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||xp.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=a6h){return(()=>{let r=this.watcher._readyWait,i=[],n=new Set,a=async(c,d)=>{let s=this.options.ignoreInitial?[]:c,u=await this.eventsPopulate([...d]),l=this.eventsDeduplicate([...s,...u]);this.onTargetEvents(l)},o=xp.lang.debounce(()=>{this.watcher.isClosed()||(r=a(i,n),i=[],n=new Set)},t);return async(c,d="",s=!1)=>{s?await this.eventsPopulate([d],i,!0):n.add(d),r.then(o)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((i,n)=>{let[a,o]=n,c=r[o];return a===c||a===nf.CHANGE&&c===nf.ADD||(r[o]=a,i.push(n)),i},[])}async eventsPopulate(t,r=[],i=!1){return await Promise.all(t.map(async n=>{let a=await this.watcher._poller.update(n,this.options.pollingTimeout);await Promise.all(a.map(async o=>{r.push([o,n]),o===nf.ADD_DIR?await this.eventsPopulateAddDir(t,n,r,i):o===nf.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,n,r,i)}))})),r}async eventsPopulateAddDir(t,r,i=[],n=!1){if(n)return i;let a=this.options.recursive?this.options.depth??RYi:Math.min(1,this.options.depth??RYi),o=this.options.limit??jXa,[c,d]=await xp.fs.readdir(r,this.options.ignore,a,o,this.watcher._closeSignal),s=[...c,...d];return await Promise.all(s.map(u=>{if(!this.watcher.isIgnored(u,this.options.ignore)&&!t.includes(u))return this.eventsPopulate([u],i,!0)})),i}async eventsPopulateUnlinkDir(t,r,i=[],n=!1){if(n)return i;for(let a of this.watcher._poller.stats.keys())xp.fs.isSubPath(r,a)&&(t.includes(a)||await this.eventsPopulate([a],i,!0));return i}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(nf.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!zYi&&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(nf.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(nf.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(_Eu.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(nf.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(_Eu.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(nf.UNLINK_DIR,t))}onTargetEvent(t){let[r,i]=t;r===nf.ADD?this.onTargetAdd(i):r===nf.ADD_DIR?this.onTargetAddDir(i):r===nf.CHANGE?this.onTargetChange(i):r===nf.UNLINK?this.onTargetUnlink(i):r===nf.UNLINK_DIR&&this.onTargetUnlinkDir(i)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,i=!1){return this.handlerBatched(t,r,i)}onWatcherChange(t=gOn.CHANGE,r){if(this.watcher.isClosed())return;let i=_Eu.default.resolve(this.folderPath,r||"");this.filePath&&i!==this.folderPath&&i!==this.filePath||this.watcher.isIgnored(i,this.options.ignore)||this.onWatcherEvent(t,i)}onWatcherError(t){Vil&&t.code==="EPERM"?this.onWatcherChange(gOn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(wXa.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(wXa.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gOn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&zYi&&this.options.native!==!1?this.options.depth??RYi:Math.min(1,this.options.depth??RYi),i=this.options.limit??jXa,[n,a]=await xp.fs.readdir(this.folderPath,this.options.ignore,r,i,this.watcher._closeSignal,this.options.readdirMap),o=[this.folderPath,...n,...a];await Promise.all(o.map(c=>{if(!this.watcher._poller.stats.has(c)&&!this.watcher.isIgnored(c,this.options.ignore))return this.onWatcherEvent(gOn.CHANGE,c,t)}))}}},g6h=Jil;var Ux={interval:100,intervalId:void 0,fns:new Map,init:()=>{Ux.intervalId||(Ux.intervalId=setInterval(Ux.resolve,Ux.interval))},reset:()=>{Ux.intervalId&&(clearInterval(Ux.intervalId),delete Ux.intervalId)},add:(e,t)=>{Ux.fns.set(e,Date.now()+t),Ux.init()},remove:e=>{Ux.fns.delete(e)},resolve:()=>{if(!Ux.fns.size)return Ux.reset();let e=Date.now();for(let[t,r]of Ux.fns)r>=e||(Ux.remove(t),t())}},MXa=Ux;var DXa=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=Wil){let{ino:i,targetPath:n,events:a,locks:o}=t,c=()=>{let l=this._watcher._poller.paths.find(i||-1,p=>p!==n);if(l&&l!==n){if(xp.fs.getRealPath(n,!0)===l)return;this._watcher.event(a.rename,l,n)}else this._watcher.event(a.add,n)};if(!i)return c();let d=()=>{o.add.delete(i),MXa.remove(s)},s=()=>{d(),c()};MXa.add(s,r);let u=()=>{let l=o.unlink.get(i);if(!l)return;d();let p=l();n===p?a.change&&this._watcher._poller.stats.has(n)&&this._watcher.event(a.change,n):this._watcher.event(a.rename,p,n)};o.add.set(i,u),u()}getLockUnlink(t,r=Wil){let{ino:i,targetPath:n,events:a,locks:o}=t,c=()=>{this._watcher.event(a.unlink,n)};if(!i)return c();let d=()=>{o.unlink.delete(i),MXa.remove(s)},s=()=>{d(),c()};MXa.add(s,r);let u=()=>(d(),n);o.unlink.set(i,u),o.add.get(i)?.()}getLockTargetAdd(t,r){let i=this._watcher._poller.getIno(t,nf.ADD,CXt.FILE);return this.getLockAdd({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let i=this._watcher._poller.getIno(t,nf.ADD_DIR,CXt.DIR);return this.getLockAdd({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let i=this._watcher._poller.getIno(t,nf.UNLINK,CXt.FILE);return this.getLockUnlink({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let i=this._watcher._poller.getIno(t,nf.UNLINK_DIR,CXt.DIR);return this.getLockUnlink({ino:i,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}}};DXa.DIR_EVENTS={add:nf.ADD_DIR,rename:nf.RENAME_DIR,unlink:nf.UNLINK_DIR};DXa.FILE_EVENTS={add:nf.ADD,change:nf.CHANGE,rename:nf.RENAME,unlink:nf.UNLINK};var O6h=DXa;var $il=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(xp.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let i=this.map.get(t);if(xp.lang.isSet(i)){let n=i.delete(r);return i.size||this.map.delete(t),n}else if(i===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let i=this.map.get(t);if(xp.lang.isSet(i))return Array.from(i).find(r);if(r(i))return i}}get(t){return this.map.get(t)}has(t,r){if(xp.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let i=this.map.get(t);return xp.lang.isSet(i)?i.has(r):i===r}return!1}set(t,r){if(this.map.has(t)){let i=this.map.get(t);xp.lang.isSet(i)?i.add(r):i!==r&&this.map.set(t,new Set([i,r]))}else this.map.set(t,r);return this}},Yil=$il;var Xil=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}},m6h=Xil;var Zil=class{constructor(){this.inos={},this.paths=new Yil,this.stats=new Map}getIno(t,r,i){let n=this.inos[r];if(!n)return;let a=n[t];if(a&&!(i&&a[1]!==i))return a[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let i=await xp.fs.poll(t,r);if(!(!i||!(i.isFile()||i.isDirectory())))return new m6h(i)}reset(){this.inos={},this.paths=new Yil,this.stats=new Map}async update(t,r){let i=this.getStats(t),n=await this.poll(t,r);if(this.updateStats(t,n),!i&&n){if(n.isFile())return this.updateIno(t,nf.ADD,n),[nf.ADD];if(n.isDirectory())return this.updateIno(t,nf.ADD_DIR,n),[nf.ADD_DIR]}else if(i&&!n){if(i.isFile())return this.updateIno(t,nf.UNLINK,i),[nf.UNLINK];if(i.isDirectory())return this.updateIno(t,nf.UNLINK_DIR,i),[nf.UNLINK_DIR]}else if(i&&n){if(i.isFile()){if(n.isFile())return i.ino===n.ino&&!i.size&&!n.size?[]:(this.updateIno(t,nf.CHANGE,n),[nf.CHANGE]);if(n.isDirectory())return this.updateIno(t,nf.UNLINK,i),this.updateIno(t,nf.ADD_DIR,n),[nf.UNLINK,nf.ADD_DIR]}else if(i.isDirectory()){if(n.isFile())return this.updateIno(t,nf.UNLINK_DIR,i),this.updateIno(t,nf.ADD,n),[nf.UNLINK_DIR,nf.ADD];if(n.isDirectory())return i.ino===n.ino?[]:(this.updateIno(t,nf.UNLINK_DIR,i),this.updateIno(t,nf.ADD_DIR,n),[nf.UNLINK_DIR,nf.ADD_DIR])}}return[]}updateIno(t,r,i){let n=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=i.isFile()?CXt.FILE:CXt.DIR;n[t]=[i.ino,a]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=this.stats.get(t)?.ino||-1;this.paths.delete(i,t),this.stats.delete(t)}}},kil=Zil;var enl=class e extends A6h.EventEmitter{constructor(t,r,i){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(Qx.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(n=>this.on(Qx.CLOSE,n)),this._readyWait=new Promise(n=>this.on(Qx.READY,n)),this._locker=new O6h(this),this._roots=new Set,this._poller=new kil,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,i)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(xp.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(Qx.CLOSE))}error(t){if(this.isClosed())return!1;let r=xp.lang.castError(t);return this.emit(Qx.ERROR,r)}event(t,r,i){return this.isClosed()?!1:(this.emit(Qx.ALL,t,r,i),this.emit(t,r,i))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(Qx.READY))}pollerExists(t,r){for(let i of this._pollers)if(i.targetPath===t&&xp.lang.isShallowEqual(i.options,r))return!0;return!1}subwatcherExists(t,r){for(let i of this._subwatchers)if(i.targetPath===t&&xp.lang.isShallowEqual(i.options,r))return!0;return!1}watchersClose(t,r,i=!0){if(t){let n=this._watchers[t];if(n)for(let a of[...n])r&&a.filePath!==r||this.watcherClose(a);if(i)for(let a in this._watchers)xp.fs.isSubPath(t,a)&&this.watchersClose(a,r,!1)}else for(let n in this._watchers)this.watchersClose(n,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,i]of t)this.watchPath(r,i.options,i.handler)}async watcherAdd(t,r){let{folderPath:i}=t;(this._watchers[i]=this._watchers[i]||[]).push(t);let a=new g6h(this,t,r);return await a.init(),a}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let a=r.indexOf(t);r.splice(a,1),r.length||delete this._watchers[t.folderPath]}let i=t.filePath||t.folderPath;this._roots.has(i)&&(this._watchersRestorable[i]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=xp.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,i,n){if(this._watchers[t]?.find(c=>c.handler===i&&(!c.filePath||c.filePath===n)&&c.options.ignore===r.ignore&&!!c.options.native==!!r.native&&(!r.recursive||c.options.recursive)))return!0;let o=OOn.default.dirname(t);for(let c=1;c<1/0;c++){if(this._watchers[o]?.find(u=>(c===1||u.options.recursive&&c<=(u.options.depth??RYi))&&u.handler===i&&(!u.filePath||u.filePath===n)&&u.options.ignore===r.ignore&&!!u.options.native==!!r.native&&(!r.recursive||u.options.recursive&&zYi&&u.options.native!==!1)))return!0;if(!zYi)break;let s=OOn.default.dirname(t);if(o===s)break;o=s}return!1}async watchDirectories(t,r,i,n,a){if(this.isClosed())return;t=xp.lang.uniq(t).sort();let o;for(let c of t)if(!this.isIgnored(c,r.ignore)&&!this.watcherExists(c,r,i,n))try{let d=!r.recursive||zYi&&r.native!==!1?r:{...r,recursive:!1},u={watcher:hEu.default.watch(c,d),handler:i,options:r,folderPath:c,filePath:n},l=o=await this.watcherAdd(u,a);if(this._roots.has(n||c)){let _={...r,ignoreInitial:!0,recursive:!1},h=OOn.default.dirname(c),y=c;await this.watchDirectories([h],_,i,y,l)}}catch(d){this.error(d)}return o}async watchDirectory(t,r,i,n,a){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||zYi&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,i,n,a));{r={...r,recursive:!0};let o=r.depth??RYi,c=r.limit??jXa,[d]=await xp.fs.readdir(t,r.ignore,o,c,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let s=await this.watchDirectories([t],r,i,n,a);if(d.length){let u=xp.fs.getDepth(t);for(let l of d){let p=xp.fs.getDepth(l),_=Math.max(0,o-(p-u)),h={...r,depth:_};await this.watchDirectories([l],h,i,n,a||s)}}})}}}async watchFileOnce(t,r,i){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let n={targetPath:t,options:r},a=(s,u)=>{u===t&&(d(),i())},o=new e(a),c=()=>{this._subwatchers.add(n),this.on(Qx.CLOSE,d),o.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(n),this.removeListener(Qx.CLOSE,d),o.close()};return c()}async watchFile(t,r,i){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let n=OOn.default.dirname(t);return this.watchDirectory(n,r,i,t)}async watchPollingOnce(t,r,i){if(this.isClosed())return;let n=!1,a=new kil,o=await this.watchPolling(t,r,async()=>{n||!(await a.update(t,r.pollingTimeout)).length||n||(n=!0,o(),i())})}async watchPolling(t,r,i){if(this.isClosed())return xp.lang.noop;if(this.pollerExists(t,r))return xp.lang.noop;let n={...r,interval:r.pollingInterval??u6h},a={targetPath:t,options:r},o=()=>{this._pollers.add(a),this.on(Qx.CLOSE,c),hEu.default.watchFile(t,n,i)},c=()=>{this._pollers.delete(a),this.removeListener(Qx.CLOSE,c),hEu.default.unwatchFile(t,i)};return xp.lang.attempt(o),()=>xp.lang.attempt(c)}async watchUnknownChild(t,r,i){if(this.isClosed())return;let n=()=>this.watchPath(t,r,i);return this.watchFileOnce(t,r,n)}async watchUnknownTarget(t,r,i){if(this.isClosed())return;let n=()=>this.watchPath(t,r,i);return this.watchPollingOnce(t,r,n)}async watchPaths(t,r,i){if(this.isClosed())return;if(t=xp.lang.uniq(t).sort(),t.every((a,o)=>t.every((c,d)=>d===o||!xp.fs.isSubPath(a,c))))await Promise.all(t.map(a=>this.watchPath(a,r,i)));else for(let a of t)await this.watchPath(a,r,i)}async watchPath(t,r,i){if(this.isClosed()||(t=OOn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let n=await xp.fs.poll(t,r.pollingTimeout);if(n){if(n.isFile())return this.watchFile(t,r,i);if(n.isDirectory())return this.watchDirectory(t,r,i);this.error(`"${t}" is not supported`)}else{let a=OOn.default.dirname(t);return(await xp.fs.poll(a,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,i):this.watchUnknownTarget(t,r,i)}}async watch(t,r,i=xp.lang.noop){if(xp.lang.isFunction(t))return this.watch([],{},t);if(xp.lang.isUndefined(t))return this.watch([],r,i);if(xp.lang.isFunction(r))return this.watch(t,{},r);if(xp.lang.isUndefined(r))return this.watch(t,{},i);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let n=xp.lang.castArray(t);n.forEach(a=>this._roots.add(a)),await this.watchPaths(n,r,i),!this.isClosed()&&(i!==xp.lang.noop&&this.on(Qx.ALL,i),r.readdirMap=void 0,this.ready())}},yEu=enl;Sru();var jla=require("fs/promises"),P6h=require("os"),j6h=ue(require("path"),1),x1B=".fern",H1B="logs";function K1B(){return"cli@3.51.0"}var BXa=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=qt(Ar.of((0,P6h.homedir)()),xe.of(x1B)),r=qt(t,xe.of(H1B));await gi(r)||await(0,jla.mkdir)(r,{recursive:!0});let n=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=qt(r,xe.of(n));let a=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${j6h.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
1949
|
+
`;return r.addPage(o,d),{id:r.generateId(c),type:"page",slug:a.get(),title:i,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:c,authed:void 0,noindex:!0,featureFlags:void 0,availability:void 0}}async function qL(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof jS?t:null))).filter(ss)}async function Itl(e,t,r){if(e instanceof ySe){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof jS))return;let i=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return Rx({ir:i,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 sc={};Yt(sc,{AlgoliaSearchIndex:()=>UUh,ApiDefinitionId:()=>u4h,ApiId:()=>f4h,Availability:()=>E4h,DocsConfigId:()=>d4h,EndpointId:()=>_4h,EndpointPathLiteral:()=>j4h,EnvironmentId:()=>p4h,FileId:()=>g4h,HttpMethod:()=>w4h,IndexSegmentId:()=>LUh,JqString:()=>m4h,OrgId:()=>c4h,PageId:()=>v4h,PayloadLocation:()=>k4h,PropertyKey:()=>A4h,PullRequestState:()=>J4h,RoleId:()=>P4h,TokenId:()=>l4h,TypeId:()=>b4h,Url:()=>O4h,VersionId:()=>s4h,WebSocketId:()=>h4h,WebhookId:()=>y4h,algolia:()=>Ctl,api:()=>Vtl,commons:()=>Wtl,diff:()=>S4h,docs:()=>Ztl,generators:()=>erl,git:()=>trl,navigation:()=>nrl,sdks:()=>orl,snippets:()=>X4h,snippetsFactory:()=>Z4h,templates:()=>url,tokens:()=>eLh});var Ctl={};Yt(Ctl,{AlgoliaSearchIndex:()=>UUh,IndexSegmentId:()=>LUh});function UUh(e){return e}function LUh(e){return e}var Vtl={};Yt(Vtl,{latest:()=>Rtl,v1:()=>Ltl});var Rtl={};Yt(Rtl,{AuthSchemeId:()=>VUh,WebhookHttpMethod:()=>HUh,auth:()=>qtl,commons:()=>WUh,endpoint:()=>GUh,type_:()=>xUh,webhook:()=>Ttl,websocket:()=>KUh});var qtl={};Yt(qtl,{AuthSchemeId:()=>VUh});function VUh(e){return e}var WUh={};var GUh={};var xUh={};var Ttl={};Yt(Ttl,{WebhookHttpMethod:()=>HUh});var HUh={Get:"GET",Post:"POST"};var KUh={};var Ltl={};Yt(Ltl,{SubpackageId:()=>i4h,WebSocketMessageId:()=>n4h,WebSocketMessageOrigin:()=>a4h,WebhookHttpMethod:()=>o4h,commons:()=>Utl,db:()=>ztl,read:()=>Ftl,register:()=>Qtl});var ztl={};Yt(ztl,{endpoint:()=>JUh});var JUh={};var Ftl={};Yt(Ftl,{SupportedLanguage:()=>$Uh,endpoint:()=>Ntl,type_:()=>YUh,webhook:()=>XUh,websocket:()=>ZUh});var Ntl={};Yt(Ntl,{SupportedLanguage:()=>$Uh});var $Uh={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var YUh={};var XUh={};var ZUh={};var Qtl={};Yt(Qtl,{SourceId:()=>xEB,endpoint:()=>kUh,type_:()=>e4h,webhook:()=>t4h,websocket:()=>r4h});var kUh={};var e4h={};var t4h={};var r4h={};function xEB(e){return e}var Utl={};Yt(Utl,{SubpackageId:()=>i4h,WebSocketMessageId:()=>n4h,WebSocketMessageOrigin:()=>a4h,WebhookHttpMethod:()=>o4h});function i4h(e){return e}function n4h(e){return e}var a4h={Client:"client",Server:"server"};var o4h={Get:"GET",Post:"POST"};var Wtl={};Yt(Wtl,{ApiDefinitionId:()=>u4h,ApiId:()=>f4h,Availability:()=>E4h,DocsConfigId:()=>d4h,EndpointId:()=>_4h,EndpointPathLiteral:()=>j4h,EnvironmentId:()=>p4h,FileId:()=>g4h,HttpMethod:()=>w4h,JqString:()=>m4h,OrgId:()=>c4h,PageId:()=>v4h,PropertyKey:()=>A4h,RoleId:()=>P4h,TokenId:()=>l4h,TypeId:()=>b4h,Url:()=>O4h,VersionId:()=>s4h,WebSocketId:()=>h4h,WebhookId:()=>y4h});function u4h(e){return e}function s4h(e){return e}function c4h(e){return e}function l4h(e){return e}function f4h(e){return e}function d4h(e){return e}function p4h(e){return e}function _4h(e){return e}function h4h(e){return e}function y4h(e){return e}function b4h(e){return e}function v4h(e){return e}function g4h(e){return e}function O4h(e){return e}function m4h(e){return e}function A4h(e){return e}function P4h(e){return e}function j4h(e){return e}var w4h={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var E4h={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var S4h={};var Ztl={};Yt(Ztl,{latest:()=>Htl,v1:()=>Ytl,v2:()=>Xtl});var Htl={};Yt(Htl,{Layout:()=>D4h,MdxEngine:()=>HEB,TwitterCardSetting:()=>B4h,commons:()=>M4h,frontmatter:()=>Gtl,seo:()=>xtl});var HEB={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var M4h={};var Gtl={};Yt(Gtl,{Layout:()=>D4h});var D4h={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var xtl={};Yt(xtl,{TwitterCardSetting:()=>B4h});var B4h={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Ytl={};Yt(Ytl,{commons:()=>$tl,db:()=>I4h,read:()=>C4h,write:()=>Ktl});var I4h={};var C4h={};var Ktl={};Yt(Ktl,{DocsRegistrationId:()=>JEB,FilePath:()=>KEB});function KEB(e){return e}function JEB(e){return e}var $tl={};Yt($tl,{ContentAlignment:()=>z4h,FontDisplay:()=>L4h,FontStyle:()=>U4h,HeaderPosition:()=>N4h,JsScriptStrategy:()=>Q4h,ProgrammingLanguage:()=>q4h,SearchbarPlacement:()=>T4h,TabsPlacement:()=>R4h,TwitterCardSetting:()=>F4h,commons:()=>Jtl});var Jtl={};Yt(Jtl,{ContentAlignment:()=>z4h,FontDisplay:()=>L4h,FontStyle:()=>U4h,HeaderPosition:()=>N4h,JsScriptStrategy:()=>Q4h,ProgrammingLanguage:()=>q4h,SearchbarPlacement:()=>T4h,TabsPlacement:()=>R4h,TwitterCardSetting:()=>F4h});var q4h={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 T4h={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var R4h={Header:"HEADER",Sidebar:"SIDEBAR"};var z4h={Center:"CENTER",Left:"LEFT"};var N4h={Fixed:"FIXED",Absolute:"ABSOLUTE"};var F4h={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var Q4h={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var U4h={Normal:"normal",Italic:"italic"};var L4h={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var Xtl={};Yt(Xtl,{read:()=>V4h,write:()=>W4h});var V4h={};var W4h={};var erl={};Yt(erl,{ChangelogEntryType:()=>x4h,GeneratorId:()=>$EB,GeneratorLanguage:()=>YEB,ReleaseType:()=>H4h,cli:()=>G4h,commons:()=>ktl,versions:()=>K4h});var G4h={};var ktl={};Yt(ktl,{ChangelogEntryType:()=>x4h,ReleaseType:()=>H4h});var x4h={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var H4h={Ga:"GA",Rc:"RC"};var K4h={};function $EB(e){return e}var YEB={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var trl={};Yt(trl,{PullRequestState:()=>J4h});var J4h={Open:"open",Closed:"closed",Merged:"merged"};var nrl={};Yt(nrl,{latest:()=>rrl,v1:()=>irl});var rrl={};Yt(rrl,{NodeId:()=>kEB,ProductId:()=>eSB,Slug:()=>XEB,TabId:()=>ZEB});function XEB(e){return e}function ZEB(e){return e}function kEB(e){return e}function eSB(e){return e}var irl={};Yt(irl,{NavigationV1Availability:()=>aSB,NodeId:()=>iSB,ProductId:()=>nSB,Slug:()=>tSB,TabId:()=>rSB});function tSB(e){return e}function rSB(e){return e}function iSB(e){return e}function nSB(e){return e}var aSB={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var orl={};Yt(orl,{Language:()=>$4h,VersionBump:()=>Y4h,versions:()=>arl});var arl={};Yt(arl,{Language:()=>$4h,VersionBump:()=>Y4h});var $4h={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var Y4h={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var X4h={};var Z4h={};var url={};Yt(url,{PayloadLocation:()=>k4h});var k4h={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var eLh={};var w0u=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function Jo(e){return e!=null}var rLh=ue(A4a(),1);var tLh=["PII","PHI","PCI","GDPR","CCPA","HIPAA","COPPA","FERPA","GLBA","SOX","FISMA","NIST","CIS","ISO","IEC","ITAR","EAR","CMMC","CUI","CDI","FTC","FCC","SEC","FINRA","XSS","CSRF","SSRF","XSRF","TLS","SSL","SSH","API","OAuth","OAuth1","OAuth1.0","OAuth2","OAuth2.0","SAML","OpenID","OpenID Connect","CAPTCHA","reCAPTCHA","2FA","MFA","OTP","TOTP","HOTP","U2F","FIDO","FIDO2","PKI","HMAC","AES","RSA","SHA","MD5","BCrypt","PBKDF2","Argon2","SCrypt","JWT","JWE","JWS","JWK","JWA","JOSE","SKU","SKUs","UPC","EAN","ISBN","ASIN","MPN","MSRP","MAP","RRP","MSRP","AM","PM","UTC","GMT","PST","PDT","EST","EDT","CST","CDT","MST","MDT","USA","UK","EU","UAE","APAC","EMEA","LATAM","ANZ","SEA","MEA","MENA","NATO","NA","SA","CA","EU","AU","NZ","JP","KR","CN","HK","TW","SG","MY","TH","ID","PH","VN","IN","PK","BD","LK","NP","MM","KH","LA","MM","BT","MV","USD","EUR","GBP","JPY","CNY","RUB","INR","AUD","CAD","CHF","SGD","MYR","THB","IDR","KRW","PHP","VND","HKD","TWD","MXN","BRL","ARS","CLP","COP","PEN","ZAR","NGN","EGP","AED","SAR","ILS","TRY","SEK","NOK","DKK","ISK","HUF","PLN","CZK","RON","BGN","API","APIs","SDK","SDKs","AI","OCR","REST","SOAP","JSON","XML","HTTP","HTTPS","URI","URL","CRUD","RESTful","KYB","KYC","AML","HTML","CSS","JS","SQL","DB","UI","UX","SaaS","PaaS","IaaS","IP","TCP","UDP","DNS","FTP","SMTP","IMAP","POP3","CSV","MVC","MVP","MVVM","DOM","SPA","SSR","CSR","DDoS","CDN","IoT","ML","DL","NLP","CLI","GUI","BI","ETL","RDBMS","NoSQL","IDE","CMS","CCPA","POSIX","ABI","API","AST","COBOL","DDL","DML","NN","CNN","RNN","LSTM","GRU","ANN","GAN","RL","DL","ML","NLP","NLG","NLU","BERT","GPT","SVM","PCA","AI","CV","TF","TTS","ASR","HMM","DNN","MLP","RBM","CRF","PDF","PDFs","RTF","TXT","XLS","XLSX","PPT","JPG","JPEG","PNG","GIF","GIFs","SVG","TIFF","BMP","ICO","PSD","WebP","AVIF","HEIF","HEIC","EPS","MP3","WAV","AIFF","FLAC","WMA","AAC","OGG","AVI","WMV","MOV","M4V","MP4","MPG","MPEG","FLV","SWF","MKV","WebM","GCP","AWS","VM","VPC","S3","EC2","DynamoDB","CosmosDB","BigQuery","CI/CD","SOC1","SOC2","SOC3","PCI DSS","WAF","IAM","SDN","MPLS","BGP","Vue.js","Node.js",".NET"];function EXt(e){return e=e.replace(/([a-z])([A-Z])/g,"$1 $2"),e=e.replace(/_/g," "),e=e.replace(/-/g," "),(0,rLh.default)(e,{special:tLh}).replace(/V\s(\d)/g,"V$1")}function iLh({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(i=>{let n=[];i.namespace?.forEach(a=>{let o=[...n,a],c=sc.api.v1.SubpackageId(o.join("."));r[c]={id:c,name:a,displayName:EXt(a)},n.push(a)})}),r}var E0u=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 nLh(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Ao=class extends E0u{context;accessPath;pathId;constructor({input:t,context:r,accessPath:i,pathId:n}){if(super(t,r),this.context=r,this.accessPath=[...i],this.pathId=n,n!=null){let a=Array.isArray(this.pathId)?this.pathId:[this.pathId];a.every((o,c)=>o===this.accessPath[this.accessPath.length-a.length+c])||this.accessPath.push(...a)}r.logger.debug(`Processing ${nLh(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})}}},qC=class extends Ao{},qY=class extends qC{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var aLh="x-fern-base-path",oLh="x-fern-availability",S0u="x-fern-sdk-group-name",uLh="x-fern-global-headers",sLh="x-fern-sdk-method-name";var cLh="x-fern-webhook",lLh="x-fern-access-token-locator",fLh="x-fern-basic",dLh="x-fern-username-variable-name",pLh="x-fern-password-variable-name",_Lh="x-fern-bearer",hLh="x-fern-token-variable-name",yLh="x-fern-header",bLh="x-fern-header-variable-name",vLh="x-fern-server-name",gLh="x-fern-examples";var M0u=class extends Ao{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[vLh]}convert(){if(this.serverName!=null)return this.serverName}};var D0u=class extends Ao{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,i])=>t.replace(`{${r}}`,i.default),this.input.url)??this.input.url,this.serverName=new M0u({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:sc.EnvironmentId(t),baseUrl:this.url}}};function mYi(e,t,r,i){let n=e??[],a=new Set(n.map(c=>c.url)),o=(t??[]).filter(c=>!a.has(c.url)).map((c,d)=>new D0u({input:c,context:r,accessPath:i,pathId:["servers",`${d}`]}));return[...n,...o]}function tg(e){return typeof e=="object"&&Jo(e)&&"$ref"in e&&typeof e.$ref=="string"}function TL(e,t,r){let i=e.$ref.substring(2).split("/").map(a=>a.replace(/~1/g,"/")),n=t;for(let a of i){if(typeof n!="object"||n==null)return r;n=n[a]}return n==null?r:(tg(n)&&(n=TL(n,t,r)),n)}function B0u(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return tg(r)?TL(r,t,void 0):r}var QLh=ue(vM());var I0u=class extends Ao{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[fLh];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var C0u=class extends Ao{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[pLh]}convert(){return this.passwordVariableName}};var q0u=class extends Ao{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[dLh]}convert(){return this.usernameVariableName}};var T0u=class extends Ao{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[_Lh];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var R0u=class extends Ao{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[hLh]}convert(){return this.tokenVariableName}};function OLh(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var mLh="x-bearer-format",ALh="x-code-samples",PLh="x-codeSamples";var z0u=class extends Ao{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[mLh]}convert(){return this.bearerFormat}};var N0u=class extends Ao{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[yLh];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var F0u=class extends Ao{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[bLh]}convert(){return this.headerVariableName}};function jLh(e){return e.type==="apiKey"}var ela=class extends Ao{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){jLh(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new N0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new F0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new z0u({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()}}};function Q0u(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function tla(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function sOn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(sOn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function U0u(e){if(Array.isArray(e))return e.map(tla);if(typeof e=="symbol")return[e];e=sOn(e);let t=[],r=e.length;if(r===0)return t;let i=0,n="",a="",o=!1;for(e.charCodeAt(0)===46&&(t.push(""),i++);i<r;){let c=e[i];a?c==="\\"&&i+1<r?(i++,n+=e[i]):c===a?a="":n+=c:o?c==='"'||c==="'"?a=c:c==="]"?(o=!1,t.push(n),n=""):n+=c:c==="["?(o=!0,n&&(t.push(n),n="")):c==="."?n&&(t.push(n),n=""):n+=c,i++}return n&&t.push(n),t}function ZYa(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(R3o(t))return r;let i=e[t];return i===void 0?Q0u(t)?ZYa(e,U0u(t),r):r:i}case"number":case"symbol":{typeof t=="number"&&(t=tla(t));let i=e[t];return i===void 0?r:i}default:{if(Array.isArray(t))return oSB(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),R3o(t))return r;let i=e[t];return i===void 0?r:i}}}function oSB(e,t,r){if(t.length===0)return r;let i=e;for(let n=0;n<t.length;n++){if(i==null||R3o(t[n]))return r;i=i[t[n]]}return i===void 0?r:i}function wLh(e){return function(t){return ZYa(t,e)}}function ELh(e){return e!==null&&(typeof e=="object"||typeof e=="function")}function srl(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function lrl(e,t,r){return typeof r!="function"?lrl(e,t,()=>{}):crl(e,t,function i(n,a,o,c,d,s){let u=r(n,a,o,c,d,s);return u!==void 0?!!u:crl(n,a,i,s)},new Map)}function crl(e,t,r,i){if(t===e)return!0;switch(typeof t){case"object":return uSB(e,t,r,i);case"function":return Object.keys(t).length>0?crl(e,{...t},r,i):srl(e,t);default:return ELh(e)?typeof t=="string"?t==="":!0:srl(e,t)}}function uSB(e,t,r,i){if(t==null)return!0;if(Array.isArray(t))return SLh(e,t,r,i);if(t instanceof Map)return sSB(e,t,r,i);if(t instanceof Set)return cSB(e,t,r,i);let n=Object.keys(t);if(e==null||T3a(e))return n.length===0;if(n.length===0)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let a=0;a<n.length;a++){let o=n[a];if(!T3a(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!r(e[o],t[o],o,e,t,i))return!1}return!0}finally{i?.delete(t)}}function sSB(e,t,r,i){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[n,a]of t.entries()){let o=e.get(n);if(r(o,a,n,e,t,i)===!1)return!1}return!0}function SLh(e,t,r,i){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let n=new Set;for(let a=0;a<t.length;a++){let o=t[a],c=!1;for(let d=0;d<e.length;d++){if(n.has(d))continue;let s=e[d],u=!1;if(r(s,o,a,e,t,i)&&(u=!0),u){n.add(d),c=!0;break}}if(!c)return!1}return!0}function cSB(e,t,r,i){return t.size===0?!0:e instanceof Set?SLh([...e],[...t],r,i):!1}function L0u(e,t){return lrl(e,t,()=>{})}function MLh(e){return e=hxp(e),t=>L0u(t,e)}function DLh(e,t){return _xp(e,(r,i,n,a)=>{let o=t?.(r,i,n,a);if(o!==void 0)return o;if(typeof e=="object")switch(Object.prototype.toString.call(e)){case C3o:case I3o:case q3o:{let c=new e.constructor(e?.valueOf());return SVt(c,e),c}case T3o:{let c={};return SVt(c,e),c.length=e.length,c[Symbol.iterator]=e[Symbol.iterator],c}default:return}})}function BLh(e){return DLh(e)}var lSB=/^(?:0|[1-9]\d*)$/;function ILh(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 lSB.test(e)}}function CLh(e){return e!==null&&typeof e=="object"&&B3o(e)==="[object Arguments]"}function qLh(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&Q0u(t)&&e?.[t]==null?r=U0u(t):r=[t],r.length===0)return!1;let i=e;for(let n=0;n<r.length;n++){let a=r[n];if((i==null||!Object.hasOwn(i,a))&&!((Array.isArray(i)||CLh(i))&&ILh(a)&&a<i.length))return!1;i=i[a]}return!0}function TLh(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=tla(e);break}}return t=BLh(t),function(r){let i=ZYa(r,e);return i===void 0?qLh(r,e):t===void 0?i===void 0:L0u(i,t)}}function RLh(e){if(e==null)return j8o;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?TLh(e[0],e[1]):MLh(e);case"string":case"symbol":case"number":return wLh(e)}}function V0u(e,t=j8o){return e==null?{}:C4(e,RLh(t))}function zLh(e){return vKp(sOn(e))}function NLh(e){return typeof e!="string"&&(e=sOn(e)),e.replace(/['\u2019]/g,"")}function rWt(e){return bxp(NLh(zLh(e)))}function ij(e){if(e!=null)return Array.isArray(e)?e:[e]}function W0u({namespace:e,path:t,method:r,sdkMethodName:i,operationId:n,displayName:a,isWebhook:o}){if(t==null)return;let c=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(i==null&&n==null&&a==null&&c==null))return`${fSB(o)}${dSB(e)}.${pSB(i,n,a,c)}`}function fSB(e){return e?"webhook_":"endpoint_"}function dSB(e){return e!=null?ij(e)?.map(t=>rWt(t)).join("/"):""}function pSB(e,t,r,i){return e||t||rWt(r??"")||rWt(i??"")}function FLh(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var G0u=class extends Ao{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[lLh],this.accessTokenLocator!=null&&(FLh(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 x0u=class extends Ao{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 ela({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new G0u({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=W0u({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:sc.EndpointId(r),accessTokenLocator:sc.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var rla=class extends Ao{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 I0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new q0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new C0u({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 T0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new R0u({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":{OLh(this.input)?(this.authScheme="header",this.headerAuthNode=new ela({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 x0u({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 QLh.UnreachableCaseError(this.authScheme);return}}};var ila=class extends Ao{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(i=>{let n=B0u(i,this.context.document);if(n==null){this.context.errors.warning({message:`No auth scheme found for ${i}. Inline security schemes are not supported.`,path:this.accessPath});return}let a=new rla({input:n,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});a.convert()!=null?(this.authNodesMap??={},this.authNodesMap[i]=a):this.context.errors.warning({message:`No auth scheme found for ${i}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let i=r.convert();if(i!=null)return[t,i]}).filter(Jo))}};var H0u=class extends Ao{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[aLh],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 ULh(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function LLh(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function nla(e,t){return e==null?void 0:Object.entries(e).map(([i,n])=>ij(n.convert())?.map(o=>((t!=null&&!t.includes(i)||t==null&&!ULh(n))&&(o=LLh(o,o.type==="enum"?o.default:void 0)),{key:sc.PropertyKey(i),valueShape:o,description:n.description,availability:n.availability?.convert()})).filter(Jo)).filter(Jo).reduce((i,n)=>i.flatMap(a=>n.length>0?n.map(o=>[...a,o]):[[...a]]),[[]])}function K0u(e,t){return tg(e)?TL(e,t,void 0):e}function AYi(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function VLh(e,t){let r={...e};for(let[i,n]of Object.entries(t??{}))r[i]=[...r[i]??[],...n];return Object.keys(r).length>0?r:void 0}function WLh(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let i of e)for(let n of t)r.push({path:i.path??n.path,responseStatusCode:i.responseStatusCode??n.responseStatusCode,name:i.name??n.name,description:i.description??n.description,pathParameters:i.pathParameters??n.pathParameters,queryParameters:i.queryParameters??n.queryParameters,headers:i.headers??n.headers,requestBody:i.requestBody??n.requestBody,responseBody:i.responseBody??n.responseBody,snippets:{...n.snippets,...i.snippets}});return r}var GLh=ue(vM());var frl=["decimal","decimal128","double-int","double","float","sf-decimal"],drl=["int16","int32","int64","int8","sf-integer","uint8"],prl=["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"],_rl=["beta","pre-release","in-development","generally-available","deprecated"];function TC(e,t){return tg(e)?TL(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var SSe=class extends Ao{availability;constructor(t){super(t),this.safeParse()}parse(){if(TC(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[oLh];r!=null&&(_rl.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${_rl.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return sc.Availability.Beta;case"in-development":return sc.Availability.InDevelopment;case"generally-available":return sc.Availability.GenerallyAvailable;case"deprecated":return sc.Availability.Deprecated;case void 0:return;default:new GLh.UnreachableCaseError(this.availability);return}}};var $0u=ue(vM());function xLh(e){return typeof e=="object"&&e!=null&&"language"in e}function HLh(e){return typeof e=="object"&&e!=null&&"sdk"in e}function KLh(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function JLh(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function J0u(e){return typeof e=="object"&&e!=null&&"event"in e}function hrl(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(J0u)}function PYi(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function $Lh(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var Y0u=class extends Ao{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,i,n,a){super(t),this.path=r,this.successResponseStatusCode=i,this.requestBodyByContentType=n,this.responseBodies=a,this.safeParse()}parse(){this.examples=this.input[gLh]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([n,a])=>{let o=typeof r=="object"?r[n]:void 0;switch(a.multipartType){case"file":return PYi(o)?[n,{type:"filenameWithData",filename:o.filename,data:sc.FileId(o.data)}]:o!=null?[n,{type:"filename",value:o}]:void 0;case"files":{if(Array.isArray(o)){if(o.every(c=>PYi(c)))return[n,{type:"filenamesWithData",value:o.map(c=>({filename:c.filename,data:sc.FileId(c.data)}))}];if(o.every(c=>typeof c=="string"))return[n,{type:"filenames",value:o}]}return}case"property":return[n,{type:"json",value:o}];case void 0:return;default:new $0u.UnreachableCaseError(a.multipartType);return}}).filter(Jo))};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(i=>{let n=t!=null?this.requestBodyByContentType?.[t]:void 0,a;if(n!=null)switch(n.contentType){case"form-data":a=$Lh(r.request)?this.convertFormDataExampleRequest(n,r.request):void 0;break;case"json":a=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":a=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new $0u.UnreachableCaseError(n.contentType);break}let o;switch(i.contentType){case"application/json":{KLh(r.response)&&(o={type:"json",value:r.response.body});break}case"text/event-stream":{hrl(r.response)&&(o={type:"sse",value:r.response.stream.map(l=>({event:l.event,data:l.data}))});break}case"application/octet-stream":!hrl(r.response)&&JLh(r.response)&&(o={type:"stream",value:r.response.stream});break;case void 0:break;default:new $0u.UnreachableCaseError(i.contentType);break}let c={};r["code-samples"]?.forEach(l=>{xLh(l)?l.language!=null&&(c[l.language]??=[],c[l.language]?.push({name:l.name,language:l.language,install:l.install,code:l.code,generated:!1,description:l.docs})):HLh(l)&&l.sdk!=null&&(c[l.sdk]??=[],c[l.sdk]?.push({name:l.name,language:l.sdk,install:void 0,code:l.code,generated:!1,description:l.docs}))});let d=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([l,p])=>[sc.PropertyKey(l),p])),s=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([l,p])=>[sc.PropertyKey(l),p])),u=Object.fromEntries(Object.entries(r.headers??{}).map(([l,p])=>[sc.PropertyKey(l),p]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(d).length>0?d:void 0,queryParameters:Object.keys(s).length>0?s:void 0,headers:Object.keys(u).length>0?u:void 0,requestBody:a,responseBody:o,snippets:c}}))}};var kYa=class extends Ao{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[S0u]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>sc.api.v1.SubpackageId(rWt(r)))}};var X0u=class extends Ao{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[sLh]}convert(){return this.sdkMethodName}};var Z0u=class extends Ao{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[cLh]}convert(){return this.isWebhook}};var k0u=class extends Ao{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[ALh]??[],...this.input[PLh]??[]],this.codeSamples.forEach(t=>{[...Object.values(sc.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 cOn=ue(vM());function yrl(e,t){return tg(e)?TL(e,t,void 0):e}function YLh(e,t){return e.replace(/{(\w+)}/g,(r,i)=>t[i]!=null&&typeof t[i]=="string"||typeof t[i]=="number"||typeof t[i]=="boolean"?`${t[i]}`:r)}var NF="",SXt=class extends Ao{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,i,n,a){super(t),this.path=r,this.responseStatusCode=i,this.name=n,this.shapes=a,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,i])=>{let n=this.resolvedRequestInput?.value[r];switch(i.multipartType){case"file":return t&&(PYi(n)||typeof n=="string");case"files":return t&&Array.isArray(n)&&n.every(a=>PYi(a)||typeof a=="string");case"property":return t;case void 0:return t&&!1;default:return new cOn.UnreachableCaseError(i.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=yrl(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=yrl(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 cOn.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(J0u)){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 cOn.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,i])=>{let n=this.resolvedRequestInput?.value?.[r];switch(i.multipartType){case"file":return PYi(n)?[r,{type:"filenameWithData",filename:n.filename,data:sc.FileId(n.data)}]:[r,{type:"filename",value:n}];case"files":{if(Array.isArray(n)){if(n.every(a=>PYi(a)))return[r,{type:"filenamesWithData",value:n.map(a=>({filename:a.filename,data:sc.FileId(a.data)}))}];if(n.every(a=>typeof a=="string"))return[r,{type:"filenames",value:n}]}return}case"property":return[r,{type:"json",value:n}];case void 0:return;default:new cOn.UnreachableCaseError(i.multipartType);return}}).filter(Jo))};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 cOn.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 cOn.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let i=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([o,c])=>[o,c.example({includeOptionals:!1,override:o})]));i=Object.keys(i).length>0?i:void 0;let n=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([o,c])=>c.required||c.inputExample!=null?[o,c.example({includeOptionals:!1,override:o})]:void 0).filter(Jo));n=Object.keys(n).length>0?n:void 0;let a=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([o,c])=>c.required||c.inputExample!=null?[o,c.example({includeOptionals:!1,override:o})]:void 0).filter(Jo));if(a=Object.keys(a).length>0?a:void 0,!(this.path==null&&t==null&&r==null&&a==null&&n==null&&i==null))return{path:YLh(this.path,i??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?EXt(this.name):this.summary!=null?EXt(this.summary):void 0,description:this.convertDescription(),pathParameters:i,queryParameters:n,headers:a,requestBody:t,responseBody:r,snippets:void 0}}};function XLh(e,t){return tg(e)?TL(e,t,void 0):e}var lVh=ue(vM());var ZLh="#/components/schemas/";function ala(e){if(e.$ref.startsWith(ZLh))return e.$ref.replace(ZLh,"")}function _4i(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function jYi(e){return typeof e.type=="string"&&e.type==="array"}function kLh(e){return e.type==="boolean"}function eVh(e){return e.type==="integer"}function wYi(e){return!Array.isArray(e.type)&&!jYi(e)}function tVh(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||wYi(t)||jYi(t))}function rVh(e){return"nullable"in e&&typeof e.nullable=="boolean"}function iVh(e){return e.type==="null"}function nVh(e){return e.type==="number"}function brl(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function aVh(e){return e.type==="string"}var ewu=class extends qY{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new hw({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 ij(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 twu=class extends qC{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 SSe({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 rwu=class extends qY{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 hw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Jo)}convert(){if(this.typeNodes==null)return;let i=this.typeNodes.map(n=>ij(n.convert())?.map(o=>({displayName:n.name,shape:o,description:n.description,availability:n.availability?.convert()}))).filter(Jo).reduce((n,a)=>n.flatMap(o=>a.length>0?a.map(c=>[...o,c]):[[...o]]),[[]]).map(n=>({type:"undiscriminatedUnion",variants:n}));return this.nullable?i.map(_4i).filter(Jo):i}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function iwu(e){return e!=null&&e.length>0?e:[void 0]}var ola=class extends qY{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 hw({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 hw({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(tg(t))return ala(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([i,n])=>[i,new hw({input:n,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",i],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Jo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return nla(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}}}]:ij(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(Jo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(i=>iwu(r).map(n=>(this.extends==null||this.extends.length===0)&&i.length===0&&n!=null?{type:"alias",value:n}:{type:"object",extends:this.extends.map(a=>sc.TypeId(a)),properties:i,extraProperties:n}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(i=>{let n=TC(i,this.context.document);n!=null&&(r={...r,...Object.fromEntries(Object.entries(n.properties??{}).map(([a,o])=>[a,new hw({input:o,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((i,n)=>{let a=r?.[n];return i[n]=a?.example({includeOptionals:t,override:n}),i},{}):Object.entries(r).reduce((i,[n,a])=>(i[n]=a?.example({includeOptionals:t,override:n}),i),{}))}};var nwu=class extends qY{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=>TC(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>TC(t,this.context.document)?.type!=="null"?new hw({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Jo);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(([i,n])=>{let a=TC({$ref:n},this.context.document);if(a==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${n}`,path:[...this.accessPath,"discriminator","mapping",i]});return}r[i]=new hw({input:a,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",i],pathId:i,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let n=this.undiscriminatedMapping?.flatMap(a=>a.convert()).filter(Jo);return this.isNullable&&n!=null?n.map(_4i).filter(Jo):n}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:sc.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([n,a])=>ij(a.convert())?.map(c=>{if(!(c==null||c.type!=="object"))return{discriminantValue:n,displayName:a.name??EXt(n),availability:a.availability?.convert(),description:a.description,...c}}).filter(Jo)).filter(Jo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(n=>ij(n.convert())?.map(o=>{if(o==null)return;t+=1;let c=o.type==="object"?EXt(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:n.name??(o.type==="alias"&&o.value.type==="id"?EXt(o.value.id):c),shape:o,description:n.description,availability:n.availability?.convert()}}).filter(Jo)).filter(Jo)}:void 0,i=this.isNullable?_4i(r):r;return i!=null?[i]: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 awu=class extends qC{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 EYi=class extends qC{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,i)=>{if(t){if(tg(r)){let n=TC(r,this.context.document);r=typeof n=="string"?n:typeof n?.default=="string"?n?.default:typeof n?.example=="string"?n.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${i}]`]}),t=!1;return}return r}}).filter(Jo),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 oVh=ue(vM());function _SB(e){return drl.includes(e)}var owu=class extends qC{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&&(_SB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${drl.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 oVh.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 uwu=class extends qC{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return _4i({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var uVh=ue(vM());function hSB(e){return frl.includes(e)}var swu=class extends qC{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&&(hSB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${frl.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 uVh.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 sVh=ue(vM());function ySB(e){return prl.includes(e)}var cwu=class extends qC{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 sVh.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&&(ySB(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${prl.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new EYi({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 cVh=ue(vM());var lwu=class extends qC{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,cVh.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var lOn=class extends qY{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=ala(this.input);let t=TC(this.input,this.context.document);t?.enum!=null&&wYi(t)&&(this.maybeEnumConverterNode=new EYi({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:sc.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=TC(this.input,this.context.document);if(r!=null)return new hw({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var hw=class e extends qY{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 SSe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),wYi(this.input)&&rVh(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),tg(this.input)){let t=ala(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 lOn({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 twu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(tVh(this.input))this.typeShapeNode=new rwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wYi(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new nwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(brl(this.input)&&this.input.allOf!=null)this.typeShapeNode=new ola({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(wYi(this.input)&&this.input.enum!=null)this.typeShapeNode=new EYi({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":brl(this.input)&&(this.typeShapeNode=new ola({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":jYi(this.input)&&(this.typeShapeNode=new ewu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":kLh(this.input)&&(this.typeShapeNode=new awu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":eVh(this.input)&&(this.typeShapeNode=new owu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":nVh(this.input)&&(this.typeShapeNode=new swu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":aVh(this.input)&&(this.typeShapeNode=new cwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":iVh(this.input)&&(this.typeShapeNode=new uwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new lVh.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 ola({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 lwu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!tg(this.input)&&(!jYi(this.input)&&this.input==null||jYi(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=ij(t)?.map(i=>this.nullable?_4i(i):i).filter(Jo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function SYi(e){if(e!=null)return nla(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Jo))}var MXt=class extends qC{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;tg(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 SSe({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new hw({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let i=XLh(this.input,this.context.document);this.inputExample=i?.example??Object.values(i?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function fVh(e,t){return tg(e)?TL(e,t,void 0):e}var vrl=ue(vM());function fwu(e){let{uniqueId:t,type:r,contextTypes:i,description:n,availability:a}=e;i[sc.TypeId(t)]={name:t,shape:r,description:n,availability:a}}var dVh=ue(Anc(),1),ula=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,i,n,a,o){this.type=t,this.subtype=r,this.essence=i,this.parameters=n,this.mimeType=a,this.input=o}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=dVh.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 bSB(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var dwu=class extends Ao{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 hw({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),bSB(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],i)=>{let n;if(tg(r)?n=B0u(r.$ref,this.context.document):n=r,n!=null)return[t,new rla({input:n,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${i}`]})]}).filter(Jo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let i=r.convert();if(i!=null)return[sc.api.latest.AuthSchemeId(t),i]}).filter(Jo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let i=r.name??t,n=ij(r.convert());return n==null?[t,void 0]:[sc.TypeId(t),{name:i,shape:n[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Jo(r))):void 0}}};var pwu=class extends hw{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=TC(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${tg(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=TC(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 _wu=class extends Ao{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 i=TC(this.input.schema,this.context.document);this.availability=new SSe({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=tg(this.input.schema)?new lOn({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 n=ula.parse(t);n?.containsJSON()?(this.contentType="json",this.schema=this.schema??new hw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):n?.isOctetStream()?(this.contentType="bytes",this.isOptional=i?.required==null):n?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=i?.required,this.fields=Object.fromEntries(Object.entries(i?.properties??{}).map(([a,o])=>{if(o!=null)return[a,new pwu({input:o,context:this.context,accessPath:this.accessPath,pathId:`schema.${a}`,seenSchemas:new Set,nullable:void 0,schemaName:a})]}).filter(Jo))):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?{[NF]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[NF]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:ij(t)?.map(i=>{let n=i.type;switch(n){case"object":case"alias":return i;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let a=rWt([this.method,this.path,this.contentType,"request"].join("_"));return fwu({uniqueId:a,type:i,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:sc.TypeId(a),default:i.type==="enum"&&i.default!=null?{type:"enum",value:i.default}:void 0}}}case void 0:return;default:new vrl.UnreachableCaseError(n);return}}).filter(Jo)}convert(){if(this.schema instanceof lOn)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(([i,n])=>{switch(n.multipartType){case"file":return[{type:n.multipartType,key:sc.PropertyKey(i),isOptional:this.requiredFields?.includes(i)==null,contentType:n.contentType,description:n.description,availability:n.availability?.convert()}];case"files":return[{type:n.multipartType,key:sc.PropertyKey(i),isOptional:this.requiredFields?.includes(i)==null,contentType:n.contentType,description:n.description,availability:n.availability?.convert()}];case"property":{let a=ij(n.convert()),o=n.multipartType;return a?.map(c=>({type:o,key:sc.PropertyKey(i),contentType:n.contentType,exploded:void 0,valueShape:c,description:n.description,availability:n.availability?.convert()}))}case void 0:return[];default:return new vrl.UnreachableCaseError(n.multipartType),[]}}).filter(Jo).reduce((i,n)=>i.flatMap(a=>n.length>0?n.map(o=>[...a,o]):[[...a]]),[[]]).map(i=>({type:"formData",fields:i,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var hwu=class extends Ao{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let i=fVh(this.input,this.context.document);if(i==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(i.content).forEach(([n,a])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[n]=new _wu({input:a,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:n,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>ij(r.convert())?.map(n=>({description:this.description,contentType:t,body:n}))).filter(Jo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>ij(t.convert())?.map(i=>{if(!(i.type!=="alias"&&i.type!=="object"))return{description:this.description,shape:i}})).filter(Jo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var pVh={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 _Vh(e,t){if(tg(e)){let r=TL(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var ywu=ue(vM());var hVh="application/json";var yVh="application/octet-stream";function bVh(e,t){return e===t||t===NF||e===NF}var eXa=class extends Ao{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,i,n,a,o,c,d){super(t),this.streamingFormat=i,this.path=n,this.method=a,this.statusCode=o,this.requests=c,this.shapes=d,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,i){for(let n of t)for(let[a,o]of Object.entries(n?.examples??{}))for(let[c,d]of Object.entries(r))for(let s of d)bVh(c,a)&&(i.add(c),this.examples?.push(new SXt({input:{requestExample:o,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:a!=null&&a!==""?["examples",a]:"examples"},this.path,this.statusCode,AYi(a,c),{requestBody:n,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let i=0;for(let n of t){let a=0;for(let[o,c]of r){if(a===i){let[d,s,u]=n??[void 0,void 0,void 0];this.examples?.push(...c.map(l=>new SXt({input:{requestExample:u,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:s!=null&&s!==""?["examples",s]:"examples"},this.path,this.statusCode,AYi(s,o),{requestBody:d,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}a++}i++}if(t.length>r.length)for(let n of t.slice(r.length)){let[a,o]=r[r.length-1]??[void 0,void 0],[c,d,s]=n??[void 0,void 0,void 0];this.examples?.push(...(o??[void 0]).map(u=>new SXt({input:{requestExample:s,responseExample:u},context:this.context,accessPath:this.accessPath,pathId:d!=null&&d!==""?["examples",d]:"examples"},this.path,this.statusCode,AYi(d,a),{requestBody:c,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[n,a,o]=t[t.length-1]??[void 0,void 0,void 0];for(let[c,d]of r.slice(t.length))this.examples?.push(...d.map(s=>new SXt({input:{requestExample:o,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:a!=null&&a!==""?["examples",a]:"examples"},this.path,this.statusCode,AYi(a,c),{requestBody:n,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,i,n){let a=t[NF];if(a!=null)for(let o of a)this.examples?.push(new SXt({input:{requestExample:n,responseExample:o},context:this.context,accessPath:this.accessPath,pathId:i!=null&&i!==""?["examples",i]:"examples"},this.path,this.statusCode,AYi(i,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 i of t)if(Object.keys(i.examples??{}).length===0)this.pushResponseExample(r,i,void 0,void 0);else for(let[n,a]of Object.entries(i.examples??{}))this.pushResponseExample(r,i,n,a)}parse(t){if(t==="empty")this.empty=!0;else{let c=ula.parse(t);if(c?.isJSON()||c?.isEventStream())this.contentType=hVh,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 hw({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(c?.isOctetStream())this.contentType=yVh,this.contentSubtype=TC(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 hw({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=V0u(this.input.examples,c=>[c])),this.input.example!=null&&Object.keys(r).length===0&&(r[NF]??=[],r[NF]=[{value:this.input.example}]);let i=TC(this.input.schema,this.context.document);if(i!=null&&(i.examples!=null&&Object.keys(r).length===0&&(r=V0u(i.examples,c=>[c])),i.example!=null&&Object.keys(r).length===0&&(r[NF]??=[],r[NF]?.push({value:i.example}))),Object.keys(r).length===0){let c=this.schema?.example({includeOptionals:!0,override:void 0});r[NF]??=[],r[NF]?.push(c!=null?{value:c}:void 0)}this.examples??=[];let n=new Set;this.matchRequestResponseExamplesByName(this.requests,r,n);let a=[];for(let c of this.requests)a.push(...Object.entries(c.examples??{}).filter(([d])=>!n.has(d)&&d!==NF).map(([d,s])=>[c,d,s]));let o=Object.entries(r).filter(([c,d])=>!n.has(c)&&Jo(d)&&c!==NF);Object.keys(r).every(c=>c===NF)||this.matchExamplesByIndex(a,o),!n.has(NF)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return ij(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new ywu.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return ij(this.schema?.convert())?.map(r=>{let i=r.type;switch(i){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let n=rWt([this.method,this.path,this.statusCode,"response"].join("_"));return fwu({uniqueId:n,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:sc.TypeId(n),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new ywu.UnreachableCaseError(i);return}}).filter(Jo)}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 ywu.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var tXa=class extends Ao{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,i,n,a,o){super(t),this.path=r,this.method=i,this.statusCode=n,this.requests=a,this.shapes=o,this.safeParse()}parse(t){this.description=this.input.description;let r=_Vh(this.input,this.context.document);if(r==null){this.context.errors.error({message:tg(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([i,n])=>{this.headers??={},this.headers[i]=new MXt({input:n,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:i})}),r.content==null?(this.responses??=[],this.responses.push(new eXa({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(([i,n])=>{this.responses??=[],this.responses.push(new eXa({input:n,context:this.context,accessPath:this.accessPath,pathId:["content",i]},i,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(Jo)}};var bwu=class extends Ao{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,i,n,a){super(t),this.path=r,this.method=i,this.requests=n,this.shapes=a,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,i])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new tXa({input:{...t,...i},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new tXa({input:i,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 i=r.convert();if(i!=null)return iwu(SYi(r.headers)).flatMap(n=>i?.map(a=>({headers:n,response:{statusCode:parseInt(t),body:a,description:r.description},examples:(r.responses??[]).flatMap(o=>(o.examples??[]).map(c=>c.convert()).filter(Jo))})))}).filter(Jo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(i=>{let n=i.schema,a=ij(n?.convert());if(n!=null)return a?.map(o=>({statusCode:parseInt(t),shape:o,description:r.description??n.description,availability:n.availability?.convert(),name:n.name??pVh[parseInt(t)]??"UNKNOWN ERROR",examples:i.examples?.map(c=>{let d=c.convert();if(d!=null&&d.responseBody?.type==="json")return{name:d.name,description:d.description,responseBody:d.responseBody}}).filter(Jo)})).filter(Jo)})).filter(Jo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var MYi=class extends Ao{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,i){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new SXt({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,AYi(i,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 SSe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=mYi(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new Z0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((i,n)=>{if(tg(i)){let a=K0u(i,this.context.document);if(a!=null)i=a;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${i.$ref}`,path:[...this.accessPath,`parameters[${n}]`]});return}}i.in==="path"?i.schema!=null&&(this.pathParameters??={},this.pathParameters[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name})):i.in==="query"?i.schema!=null&&(this.queryParameters??={},this.queryParameters[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name})):i.in==="header"&&i.schema!=null&&(this.requestHeaders??={},this.requestHeaders[i.name]=new MXt({input:i,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${n}`],parameterName:i.name}))});for(let i of this.extractPathParameterIds()??[])this.pathParameters?.[i]==null&&this.context.errors.warning({message:`Path parameter not defined: ${i}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new k0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new hwu({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 bwu({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 i=this.requests?.requestBodiesByContentType;i==null||Object.keys(i).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(i).forEach(n=>{if(Object.keys(n.examples??{}).length===0){let a=n.schema?.example({includeOptionals:!1,override:void 0});a!=null&&this.pushEmptyResponseExample({value:a},n,void 0)}else Object.entries(n.examples??{}).forEach(([a,o])=>{this.pushEmptyResponseExample(o,n,a)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(i=>Number(i)>=200&&Number(i)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new ila({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new kYa({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(i=>i.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((i,n)=>new kYa({input:{[S0u]:i},context:this.context,accessPath:this.accessPath,pathId:["tags",`${n}`]})));let r=new X0u({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(i=>W0u({namespace:ij(i?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Jo),this.xFernExamplesNode=new Y0u({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(Jo)}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((n,a)=>(n.push({type:"literal",value:"/"}),a.startsWith("{")&&a.endsWith("}")?n.push({type:"pathParameter",value:sc.PropertyKey(a.slice(1,-1).trim())}):n.push({type:"literal",value:a}),n),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},i=this.emptyResponseExamples?.map(u=>u.convert()).filter(Jo),n=WLh(this.xFernExamplesNode?.convert(),[...i??[],...t?.flatMap(u=>u.examples)??[]])?.map(u=>({...u,snippets:VLh(u.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((u,l)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:sc.WebhookId(u),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[l]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(p=>p.value.toString())??[],queryParameters:SYi(this.queryParameters)?.flat(),headers:SYi(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Jo)}}).filter(Jo);let a=this.servers?.map(u=>u.convert()).filter(Jo),o=this.convertPathToPathParts();if(o==null)return;let c,d=this.auth?.convert();d!=null&&(c=Object.keys(d));let s=t?.flatMap(u=>u.headers).filter(Jo);return this.endpointIds.map((u,l)=>({id:sc.EndpointId(u),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[l]?.convert()?.map(p=>sc.api.v1.SubpackageId(p)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:o,auth:c?.map(p=>sc.api.latest.AuthSchemeId(p)),defaultEnvironment:a?.[0]?.id,environments:a,pathParameters:SYi(this.pathParameters)?.flat(),queryParameters:SYi(this.queryParameters)?.flat(),requestHeaders:SYi(this.requestHeaders)?.flat(),responseHeaders:s!=null&&s.length>0?s:void 0,requests:this.requests?.convert(),responses:t?.map(p=>p.response),errors:r,examples:n,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var sla=class extends Ao{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i,isWebhook:n}){this.description=this.input.description;let a=mYi(t,this.input.servers,this.context,this.accessPath),o=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new MYi({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:a,globalAuth:r,path:o,method:"GET",basePath:i,isWebhook:n})),this.input.post!=null&&(this.post=new MYi({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:a,globalAuth:r,path:o,method:"POST",basePath:i,isWebhook:n})),this.input.put!=null&&(this.put=new MYi({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:a,globalAuth:r,path:o,method:"PUT",basePath:i,isWebhook:!1})),this.input.patch!=null&&(this.patch=new MYi({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:a,globalAuth:r,path:o,method:"PATCH",basePath:i,isWebhook:!1})),this.input.delete!=null&&(this.delete=new MYi({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:a,globalAuth:r,path:o,method:"DELETE",basePath:i,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(Jo)}};function vwu(e){return"payloads"in e}var gwu=class extends Ao{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i}){this.paths=Object.entries(this.input).map(([n,a])=>{if(a!=null)return new sla({input:a,context:this.context,accessPath:this.accessPath,pathId:n,servers:mYi(t,a.servers,this.context,this.accessPath),globalAuth:r,basePath:i,isWebhook:void 0})}).filter(Jo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(i=>{let n=i.convert();n?.forEach(a=>{vwu(a)?r[sc.WebhookId(a.id)]=a:t[sc.EndpointId(a.id)]=a})}),{endpoints:t,webhookEndpoints:r}}};var Owu=class extends Ao{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[uLh]?.map(r=>{let{header:i,...n}=r;return(n.optional!=null&&!n.optional||K0u(n,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(i)),[i,new MXt({input:n,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:i})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return nla(this.globalHeaders,this.requiredProperties)?.flat()}};function vVh(e,t){if(tg(e)){let r=TL(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mwu=class extends Ao{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:i}){this.webhooks=Object.entries(this.input??{}).map(([n,a])=>{let o=vVh(a,this.context.document);if(o!=null)return new sla({input:o,context:this.context,accessPath:this.accessPath,pathId:n,servers:t,globalAuth:r,basePath:i,isWebhook:!0})}).filter(Jo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(i=>{vwu(i)&&(t[sc.WebhookId(i.id)]=i)}),t),{})}};var Awu=class extends Ao{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=mYi(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new ila({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new H0u({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 gwu({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 mwu({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 dwu({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new Owu({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=Nve(),{webhookEndpoints:r,endpoints:i}=this.paths?.convert()??{},n={...this.webhooks?.convert()??{},...r??{}},a=iLh({endpoints:i,webhookEndpoints:n}),{types:o,auths:c}=this.components?.convert()??{};return{id:sc.ApiDefinitionId(t),endpoints:i??{},websockets:{},webhooks:n,types:{...o,...this.context.generatedTypes},subpackages:a,auths:{...c,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};async function grl(e,t){if(e instanceof ySe){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof jS))return;let r=new x8t(e.absoluteFilePath),i=await vSe({context:t,specs:e.specs}),n=await r.loadDocuments({context:t,specs:i,loadAiExamples:!0}),a;for(let o of n){if(o.type!=="openapi")continue;let c={document:o.value,logger:t.logger,errors:new w0u,generatedTypes:{}},d=new Awu({input:o.value,context:c,accessPath:[],pathId:e.workspaceName??"openapi parser"});a=j$n(a,d.convert())}return a}var zKh=ue(Arl(),1),NKh=ue(lEu(),1),TSu=require("fs/promises"),FKh=ue(require("http"),1),QKh=ue(require("path"),1);var A6h=require("events"),hEu=ue(require("fs"),1),OOn=ue(require("path"),1);var n6h=ue(require("os"),1),a6h=300,RYi=20,jXa=1e7,o6h=n6h.default.platform();var Q1B=o6h==="darwin",Vil=o6h==="win32",zYi=Q1B||Vil,u6h=3e3,s6h=2e4,Wil=1250;var CXt;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(CXt||(CXt={}));var gOn;(function(e){e.CHANGE="change",e.RENAME="rename"})(gOn||(gOn={}));var wXa;(function(e){e.CHANGE="change",e.ERROR="error"})(wXa||(wXa={}));var nf;(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"})(nf||(nf={}));var Qx;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(Qx||(Qx={}));var U1B=(e,t=1,r)=>{t=Math.max(1,t);let i=r?.leading??!1,n=r?.trailing??!0,a=Math.max(r?.maxWait??1/0,t),o,c,d=0,s=0,u=()=>{let g=Date.now(),A=g-d,j=g-s,M=A>=t||j>=a;return[g,M]},l=g=>{if(s=g,!o)return;let A=o;o=void 0,e.apply(void 0,A)},p=()=>{O(0)},_=()=>{c&&(p(),l(Date.now()))},h=g=>{if(s=g,i)return l(g)},y=g=>{if(n&&o)return l(g);o=void 0},b=()=>{c=void 0;let[g,A]=u();return A?y(g):v(g)},v=g=>{let A=g-d,j=g-s,M=t-A,w=a-j,D=Math.min(M,w);return O(D)},O=g=>{c&&clearTimeout(c),!(g<=0)&&(c=setTimeout(b,g))},m=(...g)=>{let[A,j]=u(),M=!!c;if(o=g,d=A,(j||!c)&&O(t),j)return M?l(A):h(A)};return m.cancel=p,m.flush=_,m},fEu=U1B;var Kil=ue(require("fs"),1),pEu=ue(require("path"),1);var pm=ue(require("fs"),1),RL=require("util");var y4i=(e,t)=>function(...i){return e.apply(void 0,i).catch(t)},qXt=(e,t)=>function(...i){try{return e.apply(void 0,i)}catch(n){return t(n)}};var Gil=ue(require("process"),1),c6h=Gil.default.getuid?!Gil.default.getuid():!1,l6h=1e4,NY=()=>{};var EXa={isChangeErrorOk:e=>{if(!EXa.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!c6h&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!EXa.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(!EXa.isNodeError(e))throw e;if(!EXa.isChangeErrorOk(e))throw e}},RC=EXa;var xil=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=l6h,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(i),i=()=>t(r);this.add(i)}),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()}}}}},f6h=new xil;var b4i=(e,t)=>function(i){return function n(...a){return f6h.schedule().then(o=>{let c=s=>(o(),s),d=s=>{if(o(),Date.now()>=i)throw s;if(t(s)){let u=Math.round(100*Math.random());return new Promise(p=>setTimeout(p,u)).then(()=>n.apply(void 0,a))}throw s};return e.apply(void 0,a).then(c,d)})}},v4i=(e,t)=>function(i){return function n(...a){try{return e.apply(void 0,a)}catch(o){if(Date.now()>i)throw o;if(t(o))return n.apply(void 0,a);throw o}}};var L1B={attempt:{chmod:y4i((0,RL.promisify)(pm.default.chmod),RC.onChangeError),chown:y4i((0,RL.promisify)(pm.default.chown),RC.onChangeError),close:y4i((0,RL.promisify)(pm.default.close),NY),fsync:y4i((0,RL.promisify)(pm.default.fsync),NY),mkdir:y4i((0,RL.promisify)(pm.default.mkdir),NY),realpath:y4i((0,RL.promisify)(pm.default.realpath),NY),stat:y4i((0,RL.promisify)(pm.default.stat),NY),unlink:y4i((0,RL.promisify)(pm.default.unlink),NY),chmodSync:qXt(pm.default.chmodSync,RC.onChangeError),chownSync:qXt(pm.default.chownSync,RC.onChangeError),closeSync:qXt(pm.default.closeSync,NY),existsSync:qXt(pm.default.existsSync,NY),fsyncSync:qXt(pm.default.fsync,NY),mkdirSync:qXt(pm.default.mkdirSync,NY),realpathSync:qXt(pm.default.realpathSync,NY),statSync:qXt(pm.default.statSync,NY),unlinkSync:qXt(pm.default.unlinkSync,NY)},retry:{close:b4i((0,RL.promisify)(pm.default.close),RC.isRetriableError),fsync:b4i((0,RL.promisify)(pm.default.fsync),RC.isRetriableError),open:b4i((0,RL.promisify)(pm.default.open),RC.isRetriableError),readFile:b4i((0,RL.promisify)(pm.default.readFile),RC.isRetriableError),rename:b4i((0,RL.promisify)(pm.default.rename),RC.isRetriableError),stat:b4i((0,RL.promisify)(pm.default.stat),RC.isRetriableError),write:b4i((0,RL.promisify)(pm.default.write),RC.isRetriableError),writeFile:b4i((0,RL.promisify)(pm.default.writeFile),RC.isRetriableError),closeSync:v4i(pm.default.closeSync,RC.isRetriableError),fsyncSync:v4i(pm.default.fsyncSync,RC.isRetriableError),openSync:v4i(pm.default.openSync,RC.isRetriableError),readFileSync:v4i(pm.default.readFileSync,RC.isRetriableError),renameSync:v4i(pm.default.renameSync,RC.isRetriableError),statSync:v4i(pm.default.statSync,RC.isRetriableError),writeSync:v4i(pm.default.writeSync,RC.isRetriableError),writeFileSync:v4i(pm.default.writeFileSync,RC.isRetriableError)}},d6h=L1B;var dEu=ue(require("fs"),1),SXa=ue(require("path"),1);var Hil=()=>{};var V1B=()=>{let e=Hil,t=Hil,r=!1,i=!1;return{promise:new Promise((d,s)=>{e=u=>(r=!0,d(u)),t=u=>(i=!0,s(u))}),resolve:e,reject:t,isPending:()=>!r&&!i,isResolved:()=>r,isRejected:()=>i}},p6h=V1B;var W1B=()=>{let{promise:e,resolve:t,isPending:r}=p6h(),i=0,n=()=>{i+=1},a=()=>{i-=1,!i&&t()};return(()=>{n(),queueMicrotask(a)})(),{promise:e,isPending:r,increment:n,decrement:a}},_6h=W1B;var h6h={then:e=>{e()}};var y6h=e=>Array.isArray(e)?e:[e],b6h=e=>typeof e=="function";var G1B=(e,t)=>{let r=t?.followSymlinks??!1,i=t?.depth??1/0,n=t?.limit??1/0,a=t?.ignore??[],o=y6h(a).map(W=>b6h(W)?W:x=>W.test(x)),c=W=>o.some(x=>x(W)),d=t?.signal??{aborted:!1},s=t?.onDirents||(()=>{}),u=[],l=new Set,p={},_=[],h=new Set,y={},b=[],v=new Set,O={},m={},g=new Set,A={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},j={directories:u,directoriesNames:l,directoriesNamesToPaths:p,files:_,filesNames:h,filesNamesToPaths:y,symlinks:b,symlinksNames:v,symlinksNamesToPaths:O,map:m},{promise:M,increment:w,decrement:D}=_6h(),B=0,R=(W,x,Ee,se)=>{g.has(x)||B>=n||(B+=1,W.directories.push(x),W.directoriesNames.add(Ee),u.push(x),l.add(Ee),p.propertyIsEnumerable(Ee)||(p[Ee]=[]),p[Ee].push(x),g.add(x),!(se>=i)&&(B>=n||$(x,se+1)))},T=(W,x,Ee)=>{g.has(x)||B>=n||(B+=1,W.files.push(x),W.filesNames.add(Ee),_.push(x),h.add(Ee),y.propertyIsEnumerable(Ee)||(y[Ee]=[]),y[Ee].push(x),g.add(x))},q=(W,x,Ee,se)=>{g.has(x)||B>=n||(B+=1,W.symlinks.push(x),W.symlinksNames.add(Ee),b.push(x),v.add(Ee),O.propertyIsEnumerable(Ee)||(O[Ee]=[]),O[Ee].push(x),g.add(x),r&&(se>=i||B>=n||de(x,se+1)))},z=(W,x,Ee,se,Oe)=>{d.aborted||c(x)||(se.isDirectory()?R(W,x,Ee,Oe):se.isFile()?T(W,x,Ee):se.isSymbolicLink()&&q(W,x,Ee,Oe))},N=(W,x,Ee,se)=>{if(d.aborted)return;let Oe=x===SXa.default.sep?"":SXa.default.sep,Fe=Ee.name,ae=`${x}${Oe}${Fe}`;c(ae)||(Ee.isDirectory()?R(W,ae,Fe,se):Ee.isFile()?T(W,ae,Fe):Ee.isSymbolicLink()&&q(W,ae,Fe,se))},H=(W,x,Ee,se)=>{for(let Oe=0,Fe=Ee.length;Oe<Fe;Oe++)N(W,x,Ee[Oe],se)},$=(W,x)=>{d.aborted||x>i||B>=n||(w(),dEu.default.readdir(W,{withFileTypes:!0},(Ee,se)=>{if(Ee||d.aborted||!se.length)return D();(s(se)||h6h).then(()=>{let Fe=m[W]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};H(Fe,W,se,x),D()})}))},de=(W,x)=>{w(),dEu.default.realpath(W,(Ee,se)=>{if(Ee||d.aborted)return D();dEu.default.stat(se,(Oe,Fe)=>{if(Oe||d.aborted)return D();let ae=SXa.default.basename(se),re=m[W]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};z(re,se,ae,Fe,x),D()})})};return(async(W,x=1)=>(W=SXa.default.normalize(W),g.add(W),$(W,x),await M,d.aborted?A:j))(e)},v6h=G1B;var TXt={lang:{debounce:fEu,attempt:e=>{try{return e()}catch(t){return TXt.lang.castError(t)}},castArray:e=>TXt.lang.isArray(e)?e:[e],castError:e=>TXt.lang.isError(e)?e:TXt.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(TXt.lang.isNaN(e))return TXt.lang.isNaN(t);if(TXt.lang.isPrimitive(e)||TXt.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(pEu.default.sep).length-1),getRealPath:(e,t)=>{try{return t?Kil.default.realpathSync.native(e):Kil.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===pEu.default.sep&&t.length-e.length>pEu.default.sep.length,poll:(e,t=s6h)=>d6h.retry.stat(t)(e,{bigint:!0}).catch(TXt.lang.noop),readdir:async(e,t,r=1/0,i=1/0,n,a)=>{if(a&&r===1&&e in a){let o=a[e];return[o.directories,o.files]}else{let o=await v6h(e,{depth:r,limit:i,ignore:t,signal:n});return[o.directories,o.files]}}}},xp=TXt;var _Eu=ue(require("path"),1);var Jil=class{constructor(t,r,i){this.base=i,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||xp.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=a6h){return(()=>{let r=this.watcher._readyWait,i=[],n=new Set,a=async(c,d)=>{let s=this.options.ignoreInitial?[]:c,u=await this.eventsPopulate([...d]),l=this.eventsDeduplicate([...s,...u]);this.onTargetEvents(l)},o=xp.lang.debounce(()=>{this.watcher.isClosed()||(r=a(i,n),i=[],n=new Set)},t);return async(c,d="",s=!1)=>{s?await this.eventsPopulate([d],i,!0):n.add(d),r.then(o)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((i,n)=>{let[a,o]=n,c=r[o];return a===c||a===nf.CHANGE&&c===nf.ADD||(r[o]=a,i.push(n)),i},[])}async eventsPopulate(t,r=[],i=!1){return await Promise.all(t.map(async n=>{let a=await this.watcher._poller.update(n,this.options.pollingTimeout);await Promise.all(a.map(async o=>{r.push([o,n]),o===nf.ADD_DIR?await this.eventsPopulateAddDir(t,n,r,i):o===nf.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,n,r,i)}))})),r}async eventsPopulateAddDir(t,r,i=[],n=!1){if(n)return i;let a=this.options.recursive?this.options.depth??RYi:Math.min(1,this.options.depth??RYi),o=this.options.limit??jXa,[c,d]=await xp.fs.readdir(r,this.options.ignore,a,o,this.watcher._closeSignal),s=[...c,...d];return await Promise.all(s.map(u=>{if(!this.watcher.isIgnored(u,this.options.ignore)&&!t.includes(u))return this.eventsPopulate([u],i,!0)})),i}async eventsPopulateUnlinkDir(t,r,i=[],n=!1){if(n)return i;for(let a of this.watcher._poller.stats.keys())xp.fs.isSubPath(r,a)&&(t.includes(a)||await this.eventsPopulate([a],i,!0));return i}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(nf.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!zYi&&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(nf.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(nf.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(_Eu.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(nf.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(_Eu.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(nf.UNLINK_DIR,t))}onTargetEvent(t){let[r,i]=t;r===nf.ADD?this.onTargetAdd(i):r===nf.ADD_DIR?this.onTargetAddDir(i):r===nf.CHANGE?this.onTargetChange(i):r===nf.UNLINK?this.onTargetUnlink(i):r===nf.UNLINK_DIR&&this.onTargetUnlinkDir(i)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,i=!1){return this.handlerBatched(t,r,i)}onWatcherChange(t=gOn.CHANGE,r){if(this.watcher.isClosed())return;let i=_Eu.default.resolve(this.folderPath,r||"");this.filePath&&i!==this.folderPath&&i!==this.filePath||this.watcher.isIgnored(i,this.options.ignore)||this.onWatcherEvent(t,i)}onWatcherError(t){Vil&&t.code==="EPERM"?this.onWatcherChange(gOn.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(wXa.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(wXa.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gOn.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&zYi&&this.options.native!==!1?this.options.depth??RYi:Math.min(1,this.options.depth??RYi),i=this.options.limit??jXa,[n,a]=await xp.fs.readdir(this.folderPath,this.options.ignore,r,i,this.watcher._closeSignal,this.options.readdirMap),o=[this.folderPath,...n,...a];await Promise.all(o.map(c=>{if(!this.watcher._poller.stats.has(c)&&!this.watcher.isIgnored(c,this.options.ignore))return this.onWatcherEvent(gOn.CHANGE,c,t)}))}}},g6h=Jil;var Ux={interval:100,intervalId:void 0,fns:new Map,init:()=>{Ux.intervalId||(Ux.intervalId=setInterval(Ux.resolve,Ux.interval))},reset:()=>{Ux.intervalId&&(clearInterval(Ux.intervalId),delete Ux.intervalId)},add:(e,t)=>{Ux.fns.set(e,Date.now()+t),Ux.init()},remove:e=>{Ux.fns.delete(e)},resolve:()=>{if(!Ux.fns.size)return Ux.reset();let e=Date.now();for(let[t,r]of Ux.fns)r>=e||(Ux.remove(t),t())}},MXa=Ux;var DXa=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=Wil){let{ino:i,targetPath:n,events:a,locks:o}=t,c=()=>{let l=this._watcher._poller.paths.find(i||-1,p=>p!==n);if(l&&l!==n){if(xp.fs.getRealPath(n,!0)===l)return;this._watcher.event(a.rename,l,n)}else this._watcher.event(a.add,n)};if(!i)return c();let d=()=>{o.add.delete(i),MXa.remove(s)},s=()=>{d(),c()};MXa.add(s,r);let u=()=>{let l=o.unlink.get(i);if(!l)return;d();let p=l();n===p?a.change&&this._watcher._poller.stats.has(n)&&this._watcher.event(a.change,n):this._watcher.event(a.rename,p,n)};o.add.set(i,u),u()}getLockUnlink(t,r=Wil){let{ino:i,targetPath:n,events:a,locks:o}=t,c=()=>{this._watcher.event(a.unlink,n)};if(!i)return c();let d=()=>{o.unlink.delete(i),MXa.remove(s)},s=()=>{d(),c()};MXa.add(s,r);let u=()=>(d(),n);o.unlink.set(i,u),o.add.get(i)?.()}getLockTargetAdd(t,r){let i=this._watcher._poller.getIno(t,nf.ADD,CXt.FILE);return this.getLockAdd({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let i=this._watcher._poller.getIno(t,nf.ADD_DIR,CXt.DIR);return this.getLockAdd({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let i=this._watcher._poller.getIno(t,nf.UNLINK,CXt.FILE);return this.getLockUnlink({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let i=this._watcher._poller.getIno(t,nf.UNLINK_DIR,CXt.DIR);return this.getLockUnlink({ino:i,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}}};DXa.DIR_EVENTS={add:nf.ADD_DIR,rename:nf.RENAME_DIR,unlink:nf.UNLINK_DIR};DXa.FILE_EVENTS={add:nf.ADD,change:nf.CHANGE,rename:nf.RENAME,unlink:nf.UNLINK};var O6h=DXa;var $il=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(xp.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let i=this.map.get(t);if(xp.lang.isSet(i)){let n=i.delete(r);return i.size||this.map.delete(t),n}else if(i===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let i=this.map.get(t);if(xp.lang.isSet(i))return Array.from(i).find(r);if(r(i))return i}}get(t){return this.map.get(t)}has(t,r){if(xp.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let i=this.map.get(t);return xp.lang.isSet(i)?i.has(r):i===r}return!1}set(t,r){if(this.map.has(t)){let i=this.map.get(t);xp.lang.isSet(i)?i.add(r):i!==r&&this.map.set(t,new Set([i,r]))}else this.map.set(t,r);return this}},Yil=$il;var Xil=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}},m6h=Xil;var Zil=class{constructor(){this.inos={},this.paths=new Yil,this.stats=new Map}getIno(t,r,i){let n=this.inos[r];if(!n)return;let a=n[t];if(a&&!(i&&a[1]!==i))return a[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let i=await xp.fs.poll(t,r);if(!(!i||!(i.isFile()||i.isDirectory())))return new m6h(i)}reset(){this.inos={},this.paths=new Yil,this.stats=new Map}async update(t,r){let i=this.getStats(t),n=await this.poll(t,r);if(this.updateStats(t,n),!i&&n){if(n.isFile())return this.updateIno(t,nf.ADD,n),[nf.ADD];if(n.isDirectory())return this.updateIno(t,nf.ADD_DIR,n),[nf.ADD_DIR]}else if(i&&!n){if(i.isFile())return this.updateIno(t,nf.UNLINK,i),[nf.UNLINK];if(i.isDirectory())return this.updateIno(t,nf.UNLINK_DIR,i),[nf.UNLINK_DIR]}else if(i&&n){if(i.isFile()){if(n.isFile())return i.ino===n.ino&&!i.size&&!n.size?[]:(this.updateIno(t,nf.CHANGE,n),[nf.CHANGE]);if(n.isDirectory())return this.updateIno(t,nf.UNLINK,i),this.updateIno(t,nf.ADD_DIR,n),[nf.UNLINK,nf.ADD_DIR]}else if(i.isDirectory()){if(n.isFile())return this.updateIno(t,nf.UNLINK_DIR,i),this.updateIno(t,nf.ADD,n),[nf.UNLINK_DIR,nf.ADD];if(n.isDirectory())return i.ino===n.ino?[]:(this.updateIno(t,nf.UNLINK_DIR,i),this.updateIno(t,nf.ADD_DIR,n),[nf.UNLINK_DIR,nf.ADD_DIR])}}return[]}updateIno(t,r,i){let n=this.inos[r]=this.inos[r]||(this.inos[r]={}),a=i.isFile()?CXt.FILE:CXt.DIR;n[t]=[i.ino,a]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=this.stats.get(t)?.ino||-1;this.paths.delete(i,t),this.stats.delete(t)}}},kil=Zil;var enl=class e extends A6h.EventEmitter{constructor(t,r,i){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(Qx.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(n=>this.on(Qx.CLOSE,n)),this._readyWait=new Promise(n=>this.on(Qx.READY,n)),this._locker=new O6h(this),this._roots=new Set,this._poller=new kil,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,i)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(xp.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(Qx.CLOSE))}error(t){if(this.isClosed())return!1;let r=xp.lang.castError(t);return this.emit(Qx.ERROR,r)}event(t,r,i){return this.isClosed()?!1:(this.emit(Qx.ALL,t,r,i),this.emit(t,r,i))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(Qx.READY))}pollerExists(t,r){for(let i of this._pollers)if(i.targetPath===t&&xp.lang.isShallowEqual(i.options,r))return!0;return!1}subwatcherExists(t,r){for(let i of this._subwatchers)if(i.targetPath===t&&xp.lang.isShallowEqual(i.options,r))return!0;return!1}watchersClose(t,r,i=!0){if(t){let n=this._watchers[t];if(n)for(let a of[...n])r&&a.filePath!==r||this.watcherClose(a);if(i)for(let a in this._watchers)xp.fs.isSubPath(t,a)&&this.watchersClose(a,r,!1)}else for(let n in this._watchers)this.watchersClose(n,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,i]of t)this.watchPath(r,i.options,i.handler)}async watcherAdd(t,r){let{folderPath:i}=t;(this._watchers[i]=this._watchers[i]||[]).push(t);let a=new g6h(this,t,r);return await a.init(),a}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let a=r.indexOf(t);r.splice(a,1),r.length||delete this._watchers[t.folderPath]}let i=t.filePath||t.folderPath;this._roots.has(i)&&(this._watchersRestorable[i]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=xp.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,i,n){if(this._watchers[t]?.find(c=>c.handler===i&&(!c.filePath||c.filePath===n)&&c.options.ignore===r.ignore&&!!c.options.native==!!r.native&&(!r.recursive||c.options.recursive)))return!0;let o=OOn.default.dirname(t);for(let c=1;c<1/0;c++){if(this._watchers[o]?.find(u=>(c===1||u.options.recursive&&c<=(u.options.depth??RYi))&&u.handler===i&&(!u.filePath||u.filePath===n)&&u.options.ignore===r.ignore&&!!u.options.native==!!r.native&&(!r.recursive||u.options.recursive&&zYi&&u.options.native!==!1)))return!0;if(!zYi)break;let s=OOn.default.dirname(t);if(o===s)break;o=s}return!1}async watchDirectories(t,r,i,n,a){if(this.isClosed())return;t=xp.lang.uniq(t).sort();let o;for(let c of t)if(!this.isIgnored(c,r.ignore)&&!this.watcherExists(c,r,i,n))try{let d=!r.recursive||zYi&&r.native!==!1?r:{...r,recursive:!1},u={watcher:hEu.default.watch(c,d),handler:i,options:r,folderPath:c,filePath:n},l=o=await this.watcherAdd(u,a);if(this._roots.has(n||c)){let _={...r,ignoreInitial:!0,recursive:!1},h=OOn.default.dirname(c),y=c;await this.watchDirectories([h],_,i,y,l)}}catch(d){this.error(d)}return o}async watchDirectory(t,r,i,n,a){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||zYi&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,i,n,a));{r={...r,recursive:!0};let o=r.depth??RYi,c=r.limit??jXa,[d]=await xp.fs.readdir(t,r.ignore,o,c,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let s=await this.watchDirectories([t],r,i,n,a);if(d.length){let u=xp.fs.getDepth(t);for(let l of d){let p=xp.fs.getDepth(l),_=Math.max(0,o-(p-u)),h={...r,depth:_};await this.watchDirectories([l],h,i,n,a||s)}}})}}}async watchFileOnce(t,r,i){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let n={targetPath:t,options:r},a=(s,u)=>{u===t&&(d(),i())},o=new e(a),c=()=>{this._subwatchers.add(n),this.on(Qx.CLOSE,d),o.watchFile(t,r,a)},d=()=>{this._subwatchers.delete(n),this.removeListener(Qx.CLOSE,d),o.close()};return c()}async watchFile(t,r,i){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let n=OOn.default.dirname(t);return this.watchDirectory(n,r,i,t)}async watchPollingOnce(t,r,i){if(this.isClosed())return;let n=!1,a=new kil,o=await this.watchPolling(t,r,async()=>{n||!(await a.update(t,r.pollingTimeout)).length||n||(n=!0,o(),i())})}async watchPolling(t,r,i){if(this.isClosed())return xp.lang.noop;if(this.pollerExists(t,r))return xp.lang.noop;let n={...r,interval:r.pollingInterval??u6h},a={targetPath:t,options:r},o=()=>{this._pollers.add(a),this.on(Qx.CLOSE,c),hEu.default.watchFile(t,n,i)},c=()=>{this._pollers.delete(a),this.removeListener(Qx.CLOSE,c),hEu.default.unwatchFile(t,i)};return xp.lang.attempt(o),()=>xp.lang.attempt(c)}async watchUnknownChild(t,r,i){if(this.isClosed())return;let n=()=>this.watchPath(t,r,i);return this.watchFileOnce(t,r,n)}async watchUnknownTarget(t,r,i){if(this.isClosed())return;let n=()=>this.watchPath(t,r,i);return this.watchPollingOnce(t,r,n)}async watchPaths(t,r,i){if(this.isClosed())return;if(t=xp.lang.uniq(t).sort(),t.every((a,o)=>t.every((c,d)=>d===o||!xp.fs.isSubPath(a,c))))await Promise.all(t.map(a=>this.watchPath(a,r,i)));else for(let a of t)await this.watchPath(a,r,i)}async watchPath(t,r,i){if(this.isClosed()||(t=OOn.default.resolve(t),this.isIgnored(t,r.ignore)))return;let n=await xp.fs.poll(t,r.pollingTimeout);if(n){if(n.isFile())return this.watchFile(t,r,i);if(n.isDirectory())return this.watchDirectory(t,r,i);this.error(`"${t}" is not supported`)}else{let a=OOn.default.dirname(t);return(await xp.fs.poll(a,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,i):this.watchUnknownTarget(t,r,i)}}async watch(t,r,i=xp.lang.noop){if(xp.lang.isFunction(t))return this.watch([],{},t);if(xp.lang.isUndefined(t))return this.watch([],r,i);if(xp.lang.isFunction(r))return this.watch(t,{},r);if(xp.lang.isUndefined(r))return this.watch(t,{},i);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let n=xp.lang.castArray(t);n.forEach(a=>this._roots.add(a)),await this.watchPaths(n,r,i),!this.isClosed()&&(i!==xp.lang.noop&&this.on(Qx.ALL,i),r.readdirMap=void 0,this.ready())}},yEu=enl;Sru();var jla=require("fs/promises"),P6h=require("os"),j6h=ue(require("path"),1),x1B=".fern",H1B="logs";function K1B(){return"cli@3.51.1"}var BXa=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=qt(Ar.of((0,P6h.homedir)()),xe.of(x1B)),r=qt(t,xe.of(H1B));await gi(r)||await(0,jla.mkdir)(r,{recursive:!0});let n=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=qt(r,xe.of(n));let a=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${j6h.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
1950
1950
|
`);await(0,jla.writeFile)(this.logFilePath,a,"utf-8"),this.initialized=!0}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
|
|
1951
1951
|
`;try{await(0,jla.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 i={timestamp:t.timestamp,source:K1B(),level:r,eventType:t.type,data:{durationMs:t.durationMs,metadata:t.metadata}};await this.writeEntry(i)}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 i={type:"cli_reload_finish",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(i)}async logCliDocsGeneration(t,r){let i={type:"cli_docs_generation",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(i)}async logCliValidation(t,r){let i={type:"cli_validation",timestamp:new Date().toISOString(),durationMs:t,metadata:{success:r}};await this.logCliMetric(i)}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 Sal=ue(cnl(),1),yKh=ue(uSu(),1),FY=require("fs/promises"),bKh=require("os"),vKh=ue(E4(),1),gKh=ue(_Kh(),1),jSu=process.platform==="win32",Eal=Rt.cyan("[docs]:"),pFB="etag",_FB=23,hKh=e=>e.padEnd(_FB," "),hFB="preview",yFB="app-preview",bFB="bundle",vFB=".next",gFB="standalone",OFB=".fern",mFB="packages/fern-docs/bundle/.next/server/instrumentation.js",AFB=".npmrc",PFB=".pnpmfile.cjs",jFB="pnpm-workspace.yaml",wFB='Cannot find matching keyid: {"signatures":';function EFB(){return qt(Ar.of((0,bKh.homedir)()),xe.of(OFB))}function Lla({app:e=!1}){return qt(EFB(),xe.of(e?yFB:hFB))}function xYi({app:e=!1}){return qt(Lla({app:e}),xe.of(e?vFB:bFB))}function eZa({app:e=!1}){return qt(xYi({app:e}),xe.of(gFB))}function SFB({app:e=!1}){return qt(eZa({app:e}),xe.of(mFB))}function MFB({app:e=!1}){return qt(eZa({app:e}),xe.of(jFB))}function DFB({app:e=!1}){return qt(eZa({app:e}),xe.of(PFB))}function BFB({app:e=!1}){return qt(eZa({app:e}),xe.of(AFB))}function SOn(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function IFB({app:e=!1}){return qt(Lla({app:e}),xe.of(pFB))}var CFB=`module.exports = {
|
|
1952
1952
|
hooks: {
|
|
@@ -2245,7 +2245,7 @@ ${Rt.dim(a.summary)}`}));r.push("Do you wish to continue?");let{[t]:i}=await XXo
|
|
|
2245
2245
|
`));let{failed:o,stdout:c,stderr:d}=await vy(t.logger,"npx",a,{stdio:"inherit",reject:!1,env:{...r,[Gqo]:process.env[Gqo]??process.cwd(),FERN_NO_VERSION_REDIRECTION:"true"}});if(c.includes("code EEXIST")||d.includes("code EEXIST"))return await Hqo({version:e,cliContext:t,env:r,args:i,throwOnError:n});if(o){if(n)throw new xqo({version:e,stdout:c,stderr:d});t.failWithoutThrowing()}}var Eec="FERN_PRE_UPGRADE_VERSION";function xG5(e){return e.endsWith(`
|
|
2246
2246
|
`)?e:e+`
|
|
2247
2247
|
`}function ZRE(e){if(!e)return"";switch(e){case"not-git-repo":return" (not a git repository)";case"config-not-tracked":return" (fern.config.json not tracked by git)";case"no-git-history":return" (no git history for fern.config.json)";case"parse-error":return" (failed to parse fern.config.json from git)";case"no-version-field":return" (no version field in fern.config.json)"}}function tzE({cliVersion:e,fromVersion:t,isLocalDev:r}){if(t)return!1;let i=process.env[Eec]?.trim();return!r&&i===e}async function HG5(e,t){try{let{stdout:r,failed:i}=await vy(t,"git",["rev-parse","--show-toplevel"],{cwd:e,doNotPipeOutput:!0,reject:!1});if(i||!r.trim())return{version:null,failureReason:"not-git-repo"};let n=r.trim(),{stdout:a}=await vy(t,"git",["ls-files","--full-name",D4],{cwd:e,doNotPipeOutput:!0,reject:!1}),o=a.trim().split(`
|
|
2248
|
-
`)[0];if(!o)return{version:null,failureReason:"config-not-tracked"};let{stdout:c,failed:d}=await vy(t,"git",["show",`HEAD:${o}`],{cwd:n,doNotPipeOutput:!0,reject:!1});if(d||!c.trim())return{version:null,failureReason:"no-git-history"};let u=JSON.parse(c).version??null;return u==null?{version:null,failureReason:"no-version-field"}:{version:u}}catch(r){return t.debug(`Failed to retrieve version from git: ${r}`),{version:null,failureReason:"parse-error"}}}async function kRE({fromVersion:e,fromGit:t,cliContext:r,fernDirectory:i,projectConfig:n,isLocalDev:a}){let o=e?.trim(),c=process.env[Eec]?.trim(),d=tzE({cliVersion:r.environment.packageVersion,fromVersion:e,isLocalDev:a});if(!o&&c&&c!=="0.0.0"&&!d&&!t&&(o=c),!o||d||t){let s=await HG5(i,r.logger);if(s.version!=null)d&&r.logger.debug(`Detected faulty upgrade (FERN_PRE_UPGRADE_VERSION=${process.env[Eec]}). Using version from git history: ${s.version}`),o=s.version;else if(d){let u=ZRE(s.failureReason);r.logger.warn(`Detected potential faulty upgrade but could not retrieve version from git history${u}. Using current config version: ${n.version}`),o=n.version}else if(t){let u=ZRE(s.failureReason);r.logger.debug(`Could not retrieve version from git${u}. Falling back to config.`),o=o||n.version}else o=o||n.version}return o}function KG5({cliContext:e,targetVersion:t,currentVersion:r}){pY(t,r)||e.failAndThrow(`Cannot upgrade because target version (${t}) is not ahead of existing version ${r}`)}function JG5(e){let t=new Set(["--version","--to","--from","--from-git"]),r=[],i=0;for(;i<e.length;){let n=e[i];if(i===0&&n==="upgrade"){i++;continue}let a=t.has(n??""),o=Array.from(t).some(c=>n?.startsWith(`${c}=`));a?(i++,i<e.length&&!e[i]?.startsWith("-")&&i++):(o||n!=null&&r.push(n),i++)}return r}async function rzE({cliContext:e,includePreReleases:t,targetVersion:r,fromVersion:i,fromGit:n,yes:a}){let o=e.environment.packageVersion==="0.0.0",c=r?.trim();if(!c){let h=(await e.isUpgradeAvailable({includePreReleases:t})).cliUpgradeInfo;if(h!=null&&h.isUpgradeAvailable)c=h.latestVersion;else{if(o){e.logger.info("No upgrade available.");return}let b=await vS();if(b==null)return e.failAndThrow(`Directory "${cR}" not found.`);let v=await e.runTask(m=>Pve({directory:b,context:m})),O=tzE({cliVersion:e.environment.packageVersion,fromVersion:i,isLocalDev:o});if(v.version!==e.environment.packageVersion||O)c=e.environment.packageVersion,O?e.logger.info(`Detected faulty upgrade. Config version is ${v.version}, CLI version is ${e.environment.packageVersion}`):e.logger.info(`No newer version available, but config version (${v.version}) differs from CLI version (${e.environment.packageVersion})`);else{e.logger.info("No upgrade available.");return}}}if(e.environment.packageVersion===c||o){let _=await vS();if(_==null)return e.failAndThrow(`Directory "${cR}" not found.`);let h=await e.runTask(v=>Pve({directory:_,context:v})),y=await kRE({fromVersion:i,fromGit:n,cliContext:e,fernDirectory:_,projectConfig:h,isLocalDev:o});e.logger.info(`Running migrations from ${Rt.dim(y)} \u2192 ${Rt.green(c)}`),await e.runTask(async v=>{await LOp({fromVersion:y,toVersion:c,context:v,yes:a??!1})}),await e.exitIfFailed();let b=SMu(h.rawConfig,v=>{v.version=c});await(0,ezE.writeFile)(h._absolutePath,xG5(JSON.stringify(b,void 0,2))),e.logger.info(`Updated fern.config.json to version ${Rt.green(c)}`);return}KG5({cliContext:e,targetVersion:c,currentVersion:e.environment.packageVersion});let d=await vS();if(d==null)return e.failAndThrow(`Directory "${cR}" not found.`);let s=await e.runTask(_=>Pve({directory:d,context:_})),u=await kRE({fromVersion:i,fromGit:n,cliContext:e,fernDirectory:d,projectConfig:s,isLocalDev:o});e.logger.info(`Upgrading from ${Rt.dim(e.environment.packageVersion)} \u2192 ${Rt.green(c)}`);let l=JG5(process.argv.slice(2)),p=["upgrade","--from",u,"--to",c,...l];a&&!l.some(_=>_==="--yes"||_==="-y")&&p.push("--yes");try{await Hqo({version:c,cliContext:e,env:{[Eec]:u},args:p,throwOnError:!0})}catch(_){if(_ instanceof xqo){e.logger.debug(`Rerun CLI failed with stdout: ${_.stdout}`),e.logger.debug(`Rerun CLI failed with stderr: ${_.stderr}`);let h=(_.stderr??"")+(_.stdout??"");if(h.includes("ETARGET")||h.includes("E404")||h.includes("404 Not Found")||h.includes("No matching version found")||h.includes("version not found"))return e.failAndThrow(`Failed to upgrade to ${c} because it does not exist. See https://www.npmjs.com/package/${e.environment.packageName}?activeTab=versions.`)}throw _}}async function izE({project:e,cliContext:t,errorOnBrokenLinks:r}){let i=e.docsWorkspaces;if(i==null){t.failAndThrow("No docs workspace found");return}await t.runTaskForWorkspace(i,async n=>{let a=performance.now(),o=await Promise.all(e.apiWorkspaces.map(async u=>u.toFernWorkspace({context:n}))),c=await qL(e),d=await Xla(i,n,o,c,!0),s=performance.now()-a;Zla({violations:d,context:n,logWarnings:!0,logSummary:!0,logBreadcrumbs:!1,elapsedMillis:s}),d.length>0&&r&&n.failAndThrow()})}function ozE({apiResults:e,docsResult:t,logWarnings:r,context:i}){let n=performance.now(),a=!1;if(e.filter(u=>{let l=Kqo(u.violations);return l.numErrors>0||r&&l.numWarnings>0}).length>0){let u=ex5(e.map(p=>p.violations).flat());if(e.length>1){i.logger.info(Rt.cyan(Rt.bold("[sdk]")));for(let p of e){let _=Kqo(p.violations);(_.numErrors>0||r&&_.numWarnings>0)&&(a=a||_.numErrors>0,YG5({apiName:p.apiName,violations:p.violations,stats:_,logWarnings:r,context:i,indent:" "}))}}else a=a||u.numErrors>0,$G5({violations:e[0]?.violations??[],stats:u,logWarnings:r,context:i})}if(t!=null){let u=Kqo(t.violations);(u.numErrors>0||r&&u.numWarnings>0)&&(a=a||u.numErrors>0,XG5({violations:t.violations,stats:u,logWarnings:r,context:i}))}let c=performance.now()-n,d=[...e.map(u=>u.violations).flat(),...t?.violations??[]],s=Kqo(d);return tx5({stats:s,logWarnings:r,elapsedMillis:c,context:i}),{hasErrors:a}}function $G5({violations:e,stats:t,logWarnings:r,context:i}){let n=WOp(t,r);i.logger.info(Rt.cyan(Rt.bold("[sdk]"))+` ${n}`),VOp({violations:e,logWarnings:r,context:i,indent:" "})}function YG5({apiName:e,violations:t,stats:r,logWarnings:i,context:n,indent:a}){let o=WOp(r,i);n.logger.info(`${a}${Rt.bold(`[${e}]`)} ${o}`),VOp({violations:t,logWarnings:i,context:n,indent:a+" "})}function XG5({violations:e,stats:t,logWarnings:r,context:i}){let n=WOp(t,r);i.logger.info(Rt.magenta(Rt.bold("[docs]"))+` ${n}`),VOp({violations:e,logWarnings:r,context:i,indent:" "})}function VOp({violations:e,logWarnings:t,context:r,indent:i}){let n=e.filter(o=>o.severity==="fatal"||o.severity==="error"),a=e.filter(o=>o.severity==="warning");if(t)for(let o of a.sort(azE))nzE({violation:o,context:r,indent:i});for(let o of n.sort(azE))nzE({violation:o,context:r,indent:i})}function nzE({violation:e,context:t,indent:r}){let i=kG5(e.severity),n=ZG5(e);n===""?t.logger.info(`${r}${i} ${e.message}`):(t.logger.info(`${r}${i}`),t.logger.info(`${r} path: ${Rt.blue(n)}`),t.logger.info(`${r} issue: ${e.message}`)),t.logger.info("")}function ZG5(e){let t=[];e.relativeFilepath!==""&&t.push(e.relativeFilepath);for(let r of e.nodePath){let i=typeof r=="string"?r:r.key;typeof r!="string"&&r.arrayIndex!=null&&(i+=`[${r.arrayIndex}]`),t.push(i)}return t.join(" -> ")}function kG5(e){switch(e){case"fatal":return Rt.red("[error]");case"error":return Rt.red("[error]");case"warning":return Rt.yellow("[warning]");default:vt(e)}}function WOp(e,t){let r=[];return e.numErrors>0&&r.push(`${e.numErrors} error${e.numErrors!==1?"s":""}`),t&&e.numWarnings>0&&r.push(`${e.numWarnings} warning${e.numWarnings!==1?"s":""}`),r.join(", ")}function Kqo(e){let t=0,r=0;for(let i of e)switch(i.severity){case"fatal":case"error":t+=1;break;case"warning":r+=1;break;default:vt(i.severity)}return{numErrors:t,numWarnings:r}}function ex5(e){return Kqo(e)}function azE(e,t){let r=e.relativeFilepath.localeCompare(t.relativeFilepath);return r!==0?r:JSON.stringify(e.nodePath).localeCompare(JSON.stringify(t.nodePath))}function tx5({stats:e,logWarnings:t,elapsedMillis:r,context:i}){let n=r>0?` in ${(r/1e3).toFixed(3)} seconds.`:".",a=`Found ${e.numErrors} error${e.numErrors!==1?"s":""} and ${e.numWarnings} warning${e.numWarnings!==1?"s":""}`+n;!t&&e.numWarnings>0&&(a+=" Run fern check --warnings to print out the warnings not shown."),e.numErrors>0?i.logger.error(a):e.numWarnings>0?i.logger.warn(a):i.logger.info(Rt.green("All checks passed"))}async function uzE({project:e,cliContext:t,logWarnings:r,brokenLinks:i,errorOnBrokenLinks:n,isLocal:a,directFromOpenapi:o}){let c=[],d,s=!1,u=e.docsWorkspaces;if(u!=null){let p=i||n?[]:["valid-markdown-links"],_=await qL(e),h;await t.runTaskForWorkspace(u,async y=>{h=await bYh({workspace:u,context:y,apiWorkspaces:e.apiWorkspaces,ossWorkspaces:_,errorOnBrokenLinks:n,excludeRules:p})}),h!=null&&(d={violations:h.violations,elapsedMillis:h.elapsedMillis},h.hasErrors&&(s=!0))}await Promise.all(e.apiWorkspaces.map(async p=>{if(p.generatorsConfiguration?.groups.length===0&&p.type!=="fern")return;if(p instanceof jS&&o){await t.runTaskForWorkspace(p,async h=>{await p.getIntermediateRepresentation({context:h,audiences:{type:"all"},enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,logWarnings:r})});return}if(p instanceof ySe){let h=qt(p.absoluteFilePath,xe.of(t1),xe.of(KB));if(!await gi(h)){await t.runTask(async b=>(b.logger.error(`Missing file: ${KB}`),b.failAndThrow()));return}}let _;await t.runTaskForWorkspace(p,async h=>{let y=await p.toFernWorkspace({context:h});_=await vBE({workspace:y,context:h,ossWorkspace:p instanceof jS?p:void 0})}),_!=null&&(c.push({apiName:_.apiName,violations:_.violations,elapsedMillis:_.elapsedMillis}),_.hasErrors&&(s=!0))}));let{hasErrors:l}=await t.runTask(p=>ozE({apiResults:c,docsResult:d,logWarnings:r,context:p}));(l||s)&&t.failAndThrow()}var Ezi=require("fs/promises");var GOp=ue(require("path"),1);async function szE({project:e,cliContext:t,sdkLanguage:r,preserveSchemaIds:i}){await Promise.all(e.apiWorkspaces.map(async n=>{await t.runTaskForWorkspace(n,async a=>{n instanceof yY?await rx5({workspace:n,context:a}):await ix5({workspace:await n.toFernWorkspace({context:a},{preserveSchemaIds:i}),context:a})})}))}async function rx5({workspace:e,context:t}){for(let[r,i]of Object.entries(e.definition.importedDefinitions)){let n=qt(e.absoluteFilePath,xe.of(t1),xe.of(r),xe.of(`.${t1}`));await czE({definition:i.definition,absolutePathToOutputDirectory:n}),t.logger.info(Rt.green(`Wrote imported definition at ${GOp.default.relative(process.cwd(),n)}`))}}async function ix5({workspace:e,context:t}){let r=qt(e.absoluteFilePath,xe.of(`.${t1}`));await czE({definition:e.definition,absolutePathToOutputDirectory:r}),t.logger.info(Rt.green(`Wrote definition to ${GOp.default.relative(process.cwd(),r)}`))}async function czE({definition:e,absolutePathToOutputDirectory:t}){let r=(i,n)=>{let a={imports:0,types:1,services:2},o=i in a?a[i]:Object.keys(a).length,c=n in a?a[n]:Object.keys(a).length;return o==null?-1:c==null?1:o!==c?o-c:i.localeCompare(n)};await gi(t)&&await(0,Ezi.rm)(t,{recursive:!0}),await(0,Ezi.mkdir)(t,{recursive:!0}),await(0,Ezi.writeFile)(qt(t,xe.of(KB)),wi.dump(e.rootApiFile.contents,{sortKeys:r}));for(let[i,n]of Object.entries(e.packageMarkers)){let a=qt(t,xe.of(i));await(0,Ezi.mkdir)(Yi(a),{recursive:!0}),await(0,Ezi.writeFile)(a,wi.dump(n.contents,{sortKeys:r}))}for(let[i,n]of Object.entries(e.namedDefinitionFiles)){let a=qt(t,xe.of(i));await(0,Ezi.mkdir)(Yi(a),{recursive:!0}),await(0,Ezi.writeFile)(a,wi.dump(n.contents,{sortKeys:r}))}}var lzE=require("fs/promises");async function fzE({project:e,outputPath:t,cliContext:r}){let i=e.docsWorkspaces;i!=null&&await r.runTaskForWorkspace(i,async n=>{let a=await qL(e),o=await Promise.all(e.apiWorkspaces.map(async s=>s.toFernWorkspace({context:n},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),d=await new tWt({domain:i.config.instances[0]?.url??"http://localhost:8080",docsWorkspace:i,ossWorkspaces:a,apiWorkspaces:o,taskContext:n,editThisPage:void 0,uploadFiles:void 0,registerApi:void 0,targetAudiences:i.config.instances[0]?.audiences?Array.isArray(i.config.instances[0].audiences)?i.config.instances[0].audiences:[i.config.instances[0].audiences]:void 0}).resolve();await(0,lzE.writeFile)(Ar.of(t),JSON.stringify(d,null,2)),n.logger.info(Rt.green(`Docs definition written to ${t}`))})}var MzE=ue(cnl(),1),VQa=require("fs"),LLt=require("fs/promises"),DzE=ue(Goc(),1),YOp=ue(require("path"),1);var nx5="https://r88yjrnw5k.execute-api.us-east-1.amazonaws.com/dev2/translate",ax5=3,ox5=1e3,ux5=3e4,sx5=3e4;function dzE(e,t){if(e.name==="AbortError"||e.code==="ECONNRESET"||e.code==="ENOTFOUND"||e.code==="ECONNREFUSED"||e.code==="ETIMEDOUT")return!0;if(e.cause instanceof Error){let r=e.cause;if(r.code==="ECONNRESET"||r.code==="ENOTFOUND"||r.code==="ECONNREFUSED"||r.code==="ETIMEDOUT")return!0}if(t){let r=t.status;if(r>=500&&r<600||r===429||r===408)return!0}return!1}function pzE(e,t,r){let i=t*Math.pow(2,e-1),n=Math.random()*.1*i;return Math.min(i+n,r)}function cx5(e,t,r){let i=new AbortController,n=setTimeout(()=>i.abort(),r);return fetch(e,{...t,signal:i.signal}).finally(()=>{clearTimeout(n)})}async function Jqo({text:e,language:t,sourceLanguage:r,fileType:i,cliContext:n,retryConfig:a={}}){if(t===r)return e;let o=await Dhn();if(o==null)throw n.logger.error("Authentication required. Please run 'fern login' or set the FERN_TOKEN environment variable."),new Error("Authentication required for translation service");let c={maxRetries:a.maxRetries??ax5,baseDelay:a.baseDelay??ox5,maxDelay:a.maxDelay??ux5,timeout:a.timeout??sx5},d;for(let u=1;u<=c.maxRetries+1;u++)try{let l=await cx5(nx5,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.value}`},body:JSON.stringify({text:e,source_language:r,target_language:t,...i!==void 0&&{file_type:i}})},c.timeout);if(!l.ok){let _="";try{let y=await l.json();_=y.detail||JSON.stringify(y)}catch{_=await l.text()}if(l.status===403)throw new Error(`403: ${_}`);let h=new Error(`HTTP ${l.status}: ${_}`);if(!dzE(h,l))return n.logger.debug(`[TRANSLATE] Non-retriable error ${l.status}: ${_}`),e;if(d=h,u<=c.maxRetries){n.logger.debug(`[TRANSLATE] Attempt ${u} failed with status ${l.status}: ${_}. Retrying...`);let y=pzE(u,c.baseDelay,c.maxDelay);await new Promise(b=>setTimeout(b,y));continue}else return n.logger.debug(`[TRANSLATE] All ${c.maxRetries+1} attempts failed. Final error: ${_}`),e}let p=await l.json();return u>1&&n.logger.debug(`[TRANSLATE] Succeeded on attempt ${u} after ${u-1} retries`),await new Promise(_=>setTimeout(_,500)),p.translated_text??e}catch(l){if(d=l,l instanceof Error&&l.message.includes("403"))throw l;if(l instanceof Error&&!dzE(l)){let h=l instanceof Error?l.message:String(l);return n.logger.debug(`[TRANSLATE] Non-retriable error: ${h}`),e}if(u>c.maxRetries){let h=l instanceof Error?l.message:String(l);return n.logger.debug(`[TRANSLATE] All ${c.maxRetries+1} attempts failed. Final error: ${h}`),e}let p=l instanceof Error?l.message:String(l);n.logger.debug(`[TRANSLATE] Attempt ${u} failed: ${p}. Retrying...`);let _=pzE(u,c.baseDelay,c.maxDelay);await new Promise(h=>setTimeout(h,_))}let s=d instanceof Error?d.message:d?String(d):"Unknown error";return n.logger.debug(`[TRANSLATE] Unexpected end of retry loop. Last error: ${s}`),e}var lx5=new Set(["title","display-name","page","section","text","link","message","subtitle","search-text","system-prompt","summary","description","docs","tags","api"]);function _zE(e,t){return typeof t!="string"||t==="string"||t.startsWith("./")?!1:!!lx5.has(e)}function dJn({name:e}){let t=e.replace(/\.(md|mdx)$/i,"");return cS(t)}function fx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.page=="string"&&typeof t.path=="string"}function dx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.section=="string"&&Array.isArray(t.contents)}function px5(e){return typeof e!="object"||e===null?!1:typeof e.api=="string"}function _x5(e){return typeof e!="object"||e===null?!1:typeof e.changelog=="string"}function hx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t["display-name"]=="string"||typeof t.displayName=="string"}function yx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return(typeof t["display-name"]=="string"||typeof t.displayName=="string")&&typeof t.path=="string"}function bx5(e){if(typeof e!="object"||e===null)return;let t=e;if(typeof t.slug=="string")return t.slug;if(t["skip-slug"]!==!0){if(fx5(e))return dJn({name:e.page});if(dx5(e))return dJn({name:e.section});if(px5(e)){let r=e["api-name"],i=e.api;return dJn({name:typeof r=="string"?r:i})}if(_x5(e)){let r=e.title;if(typeof r=="string")return dJn({name:r});let i=e.changelog;if(typeof i=="string"){let n=i.split("/").pop()||i;return dJn({name:n})}}if(hx5(e)){let r=e["display-name"]||e.displayName;if(typeof r=="string")return dJn({name:r})}if(yx5(e)){let r=e["display-name"]||e.displayName;if(typeof r=="string")return dJn({name:r})}}}async function xOp({obj:e,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:o}){if(e==null||typeof e=="string")return e;if(Array.isArray(e)){let c=Array.isArray(o)?o:void 0;return await Promise.all(e.map((d,s)=>xOp({obj:d,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:c?.[s]})))}if(typeof e=="object"){let c={},d=typeof o=="object"&&o!==null?o:void 0,s;s=bx5(e);for(let[u,l]of Object.entries(e))if(u!=="slug")if(_zE(u,l)){if(a){c[u]=l;continue}c[u]=await Jqo({text:l,language:t,sourceLanguage:r,cliContext:n})}else c[u]=await xOp({obj:l,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:d?.[u]});return s!==void 0&&(c.slug=s),c}return e}async function hzE({yamlContent:e,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a=!1}){if(t===r)return e;try{let o=iZn(e);if(!o)return e;let c=await xOp({obj:o,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:o});return $dn(c,{indent:2,lineWidth:-1,quotingType:'"',forceQuotes:!1})}catch(o){if(o instanceof Error&&o.message.includes("403"))throw o;return n.logger.error(` [ERROR] Failed to process YAML file ${i}: ${o}`),e}}async function Sec({transformation:e,cliContext:t,stub:r=!1}){let{filePath:i,language:n,sourceLanguage:a,originalContent:o}=e;if(r&&!i.endsWith(".yml")&&!i.endsWith(".yaml"))return t.logger.debug(`[STUB] Returning content as-is for ${i} (stub mode enabled)`),o;t.logger.debug(`[PROCESSING] ${i} for language: ${n} (source: ${a})`);try{return(i.endsWith(".yml")||i.endsWith(".yaml"))&&!i.includes("generators.yml")?await hzE({yamlContent:o,language:n,sourceLanguage:a,filePath:i,cliContext:t,stub:r}):i.endsWith(".md")||i.endsWith(".mdx")?Jqo({text:o,language:n,sourceLanguage:a,fileType:"MDX",cliContext:t}):i.endsWith(".json")&&!i.includes("fern.config.json")?Jqo({text:o,language:n,sourceLanguage:a,cliContext:t}):(t.logger.debug(`[SKIP] Skipping file "${i}" - unsupported file type for translation.`),o)}catch(c){if(c instanceof Error&&c.message.includes("403"))throw c;return o}}function yzE(e){let t=[".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp",".tiff",".tif",".woff",".woff2",".ttf",".otf",".eot",".pdf",".doc",".docx",".mp4",".webm",".ogg",".mp3",".wav",".zip",".tar",".gz",".bin"],r=e.toLowerCase();return t.some(i=>r.endsWith(i))}function bzE(e,t){return e.endsWith(".yaml")||e.endsWith(".yml")?!0:e.endsWith(".md")||e.endsWith(".mdx")||e.endsWith(".json")&&!e.includes("fern.config.json")?!t:!1}var Dec=require("fs/promises");function Mec(e,t){try{let r=new URL(e),i=r.hostname,n=e.endsWith("/");if(i.includes(".docs.buildwithfern.com")){let o=i.split(".")[0];r.hostname=`${o}-${t}.docs.buildwithfern.com`,r.pathname=`/${t}${r.pathname}`}else r.hostname=`${t}.${i}`,r.pathname=`/${t}${r.pathname}`;let a=r.toString();return!n&&a.endsWith("/")&&r.pathname===`/${t}/`&&(a=a.slice(0,-1)),a}catch{let r=e.endsWith("/");if(e.includes("://")){let[i,n]=e.split("://"),[a,...o]=n?.split("#")??[],[c,...d]=a?.split("?")??[],[s,...u]=c?.split("/")??[];if(!s)return e;let l;s.includes(".docs.buildwithfern.com")?l=`${s.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:l=`${t}.${s}/${t}`;let p=`${i}://${l}`;return u.length>0?p+="/"+u.join("/"):r&&(p+="/"),d.length>0&&(p+="?"+d.join("?")),o.length>0&&(p+="#"+o.join("#")),p}else if(e.includes("/")){let i=e.split("/"),n=i[0],a=i.slice(1),o;return n?.includes(".docs.buildwithfern.com")?o=`${n.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:o=`${t}.${n}/${t}`,a.length>0||a.some(c=>c!=="")?`${o}/${a.join("/")}`:r?`${o}/`:o}else return e.includes(".docs.buildwithfern.com")?`${e.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:`${t}.${e}/${t}`}}function vx5(e,t){let r=gx5({docsConfig:e,language:t});return Ox5({docsConfig:r,language:t})}function gx5({docsConfig:e,language:t}){let r=structuredClone(e);return r.settings?(r.settings.language=t,r.settings["search-text"]=vzE[t]):r.settings={language:t,"search-text":vzE[t]},r}var vzE={en:"Search",es:"Buscar",fr:"Rechercher",de:"Suchen",it:"Cerca",pt:"Pesquisar",ja:"\u691C\u7D22",zh:"\u641C\u7D22",ko:"\uAC80\uC0C9",el:"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7",no:"S\xF8k",pl:"Szukaj",ru:"\u041F\u043E\u0438\u0441\u043A",sv:"S\xF6k",tr:"Ara"};function Ox5({docsConfig:e,language:t}){let r=structuredClone(e);return r.instances&&Array.isArray(r.instances)&&(r.instances=r.instances.map(i=>{let n={...i};if(n.url&&(n.url=Mec(n.url,t)),n["custom-domain"]){let a=n["custom-domain"];typeof a=="string"?n["custom-domain"]=Mec(a,t):Array.isArray(a)&&(n["custom-domain"]=a.map(o=>Mec(o,t)))}return n})),r}async function gzE({originalDocsConfigPath:e,targetDirectory:t,language:r,sourceLanguage:i,context:n,stub:a=!1}){try{let o=await(0,Dec.readFile)(e,"utf-8"),d=await Sec({transformation:{filePath:w0,language:r,sourceLanguage:i,originalContent:o},cliContext:n,stub:a}),s=wi.load(d),u=vx5(s,r),l=qt(t,xe.of(w0)),p=wi.dump(u,{sortKeys:!1});await(0,Dec.writeFile)(l,p,"utf-8"),n.logger.debug(`Created language-specific docs config: ${l}`)}catch(o){if(o instanceof Error&&o.message.includes("403"))throw o;n.logger.warn(`Failed to create language-specific docs config for ${r}: ${o}`)}}var OzE=require("fs"),mzE=require("fs/promises"),AzE=ue(require("path"),1);async function HOp(e,t){let r={},i=await(0,mzE.readdir)(e);for(let n of i){if(n==="translations")continue;let a=AzE.default.join(e,n),o=t?qt(t,xe.of(n)):xe.of(n),c=(0,OzE.statSync)(a);if(c.isDirectory()){let d=await HOp(a,o);for(let[s,u]of Object.entries(d))r[s]=u}else c.isFile()&&(r[a]=o)}return r}var PzE=require("crypto"),jzE=require("fs"),$qo=require("fs/promises"),KOp=ue(require("path"),1);function wzE(e){return(0,PzE.createHash)("sha256").update(e,"utf-8").digest("hex")}async function EzE(e){let t=KOp.default.join(e,"hashes");if(!(0,jzE.existsSync)(t))return{};try{let r=await(0,$qo.readFile)(t,"utf-8"),i=JSON.parse(r),{_comment:n,...a}=i;return a}catch{return{}}}async function JOp(e,t){let r=KOp.default.join(e,"hashes"),i={};Object.keys(t).sort().forEach(a=>{let o=t[a];o!==void 0&&(i[a]=o)});let n={_comment:"This file is auto-generated by Fern to track source file changes for translation purposes. Do not edit manually - it will be overwritten on the next translation update.",...i};await(0,$qo.writeFile)(r,JSON.stringify(n,null,2),"utf-8")}async function Bec(e,t,r){try{let i=await(0,$qo.readFile)(e,"utf-8"),n=wzE(i),a=r[t];return n!==a}catch{return!0}}function mx5(e,t,r){let i=wzE(r);e[t]=i}async function $Op(e,t,r,i){mx5(t,r,i),await JOp(e,t)}function SzE(e,t){let r={};for(let[i,n]of Object.entries(e))t.has(i)&&(r[i]=n);return r}async function BzE({project:e,cliContext:t,stub:r=!1}){let i=e.docsWorkspaces;if(i==null){t.logger.error("No docs workspace found. Please ensure you have a docs.yml file configured.");return}let n=i.config.languages;if(n==null||n.length===0){t.logger.error("No languages found in docs.yml configuration. Please add a 'languages' field with the desired languages.");return}await t.runTaskForWorkspace(i,async a=>{let o=i.absoluteFilePath,c=qt(o,xe.of("translations")),d=n[0];if(!d)throw new Error("Unexpected error - first element of languages array is invalid");(0,VQa.existsSync)(c)||(a.logger.debug(`Creating translations directory at: ${c}`),await(0,LLt.mkdir)(c,{recursive:!0}));let s={},u=n.filter(y=>y!==d),l=qt(o,xe.of(w0)),p=(0,VQa.existsSync)(l);for(let y of u){let b=qt(c,xe.of(y),xe.of("fern"));(0,VQa.existsSync)(b)||await(0,LLt.mkdir)(b,{recursive:!0}),s[y]={filesProcessed:0,filesSkipped:0}}s[d]={filesProcessed:0,filesSkipped:0};let _={filesProcessed:0,filesSkipped:0};try{let y=await EzE(c),b=await HOp(o,""),v=Object.entries(b),O=new Set(Object.values(b)),m=SzE(y,O);Object.keys(m).length!==Object.keys(y).length&&await JOp(c,m),y=m;let g=[];for(let[q,z]of v)p&&z===w0||bzE(q,r)&&await Bec(q,z,y)&&g.push([q,z]);let A=!1;p&&(A=await Bec(l,xe.of(w0),y));let j=g.length+(A?1:0),M=j*u.length,w=process.stdout.isTTY&&!DzE.default&&M>0,D;w&&(D=new MzE.default.SingleBar({format:"Processing files [{bar}] {percentage}% | {value}/{total} files",barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:!0,clearOnComplete:!1,stopOnComplete:!0}),D.start(M,0));let B=0,R=0;try{if(p)if(A){for(let N of u){B++,R++,w||a.logger.info(Rt.gray(`[${R}/${j+1}] Processing: ${w0} (docs config) for language: ${N}`)),t.logger.debug(`[PROCESSING] ${w0} (docs config) for language: ${N}`);let H=qt(c,xe.of(N),xe.of("fern"));await gzE({originalDocsConfigPath:l,targetDirectory:H,language:N,sourceLanguage:d,context:t,stub:r});let $=s[N];D&&D.update(B),$&&$.filesProcessed++,t.logger.debug(`[COMPLETED] ${w0} -> ${N}/${w0}`)}let q=await(0,LLt.readFile)(l,"utf-8");await $Op(c,y,xe.of(w0),q);let z=s[d];z&&z.filesProcessed++,t.logger.debug(`[HASH UPDATED] ${w0} -> ${d} (source language - hash updated)`)}else{for(let q of n){let z=s[q];z&&z.filesSkipped++}t.logger.debug(`[SKIPPED] ${w0} (no changes since last translation)`)}for(let[q,z]of v){if(p&&z===w0){t.logger.debug(`[SKIPPED] ${z} (already handled by docs config processing)`);continue}if(!await Bec(q,z,y)){for(let de of n){let be=s[de];be&&be.filesSkipped++}t.logger.debug(`[SKIPPED] ${z} (no changes since last translation)`);continue}t.logger.debug(`[PROCESSING] ${z} (detected changes)`);let H=await(0,LLt.readFile)(q,"utf-8");await $Op(c,y,z,H);let $=s[d];$&&$.filesProcessed++,t.logger.debug(`[HASH UPDATED] ${z} -> ${d} (source language - hash only)`);for(let de of u){R++,B++,w||a.logger.info(Rt.gray(`[${R}/${j}] Processing: ${z}`));let be=qt(c,xe.of(de),xe.of("fern")),W=qt(be,z),x=YOp.default.dirname(W);(0,VQa.existsSync)(x)||await(0,LLt.mkdir)(x,{recursive:!0});let se=await Sec({transformation:{filePath:z,language:de,sourceLanguage:d,originalContent:H},cliContext:t,stub:r});await(0,LLt.writeFile)(W,se,"utf-8");let Oe=s[de];Oe&&Oe.filesProcessed++,t.logger.debug(`[COMPLETED] ${z} -> ${de}/${z}`),D&&D.update(B)}}}finally{D&&(D.update(M),D.stop(),t.logger.info())}a.logger.info(Rt.cyan("Copying asset files..."));let T=0;for(let[q,z]of v)if(yzE(q))for(let N of u){let H=qt(c,xe.of(N),xe.of("fern")),$=qt(H,z),de=YOp.default.dirname($);(0,VQa.existsSync)(de)||await(0,LLt.mkdir)(de,{recursive:!0}),await(0,LLt.copyFile)(q,$),T++,t.logger.debug(`[ASSET COPIED] ${z} -> ${N}/${z}`)}T>0&&a.logger.info(Rt.green(`\u2713 Copied ${T} asset files to translation directories`));for(let q of n){let z=s[q];if(!z)continue;_.filesProcessed+=z.filesProcessed,_.filesSkipped+=z.filesSkipped;let N=z.filesProcessed+z.filesSkipped;q===d?(a.logger.info(Rt.blue(`${q} (source) hash tracking summary: ${z.filesProcessed} processed, ${z.filesSkipped} skipped (${N} total)`)),a.logger.info(Rt.green(`\u2713 Successfully tracked ${q} source language hashes (no directory created)`))):(a.logger.info(Rt.blue(`${q} translation summary: ${z.filesProcessed} processed, ${z.filesSkipped} skipped (${N} total)`)),a.logger.info(Rt.green(`\u2713 Successfully created ${q} translation with content processing`)))}}catch(y){throw y instanceof Error&&y.message.includes("403")||a.logger.error(`Failed to create translations: ${y}`),y}let h=_.filesProcessed+_.filesSkipped;if(a.logger.info(Rt.cyan(`Overall summary: ${_.filesProcessed} files processed, ${_.filesSkipped} files skipped across ${n.length} languages (${h} total operations)`)),a.logger.info(Rt.green(`Translations created successfully in: ${c}`)),u.length>0){a.logger.info("You can now modify the content in each language directory:");for(let y of u)a.logger.info(Rt.blue(` - ${y}: ${qt(c,xe.of(y))}`))}if(a.logger.info(`Source language (${d}) values are tracked as hashes in translations/hashes`),p&&u.length>0){a.logger.info("Language-specific docs configurations created with modified instance URLs:");for(let y of u)a.logger.info(` - ${y}/docs.yml: URLs modified to include ${y} prefix`)}})}var Iec=Ax5();function Ax5(){return typeof window<"u"&&typeof window.document<"u"?{type:"browser",version:window.navigator.userAgent}:typeof globalThis<"u"&&globalThis?.navigator?.userAgent==="Cloudflare-Workers"?{type:"workerd"}:typeof EdgeRuntime=="string"?{type:"edge-runtime"}:typeof self=="object"&&typeof self?.importScripts=="function"&&(self.constructor?.name==="DedicatedWorkerGlobalScope"||self.constructor?.name==="ServiceWorkerGlobalScope"||self.constructor?.name==="SharedWorkerGlobalScope")?{type:"web-worker"}:typeof Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno<"u"?{type:"deno",version:Deno.version.deno}:typeof Bun<"u"&&typeof Bun.version<"u"?{type:"bun",version:Bun.version}:typeof process<"u"&&"version"in process&&!!process.version&&"versions"in process&&!!process.versions?.node?{type:"node",version:process.versions.node,parsedVersion:Number(process.versions.node.split(".")[0])}:typeof navigator<"u"&&navigator?.product==="ReactNative"?{type:"react-native"}:{type:"unknown"}}Cr6();var Ir6="The Fern CLI requires Node 18+ or above.";async function Cr6(){let e=process.argv.includes("--local"),t=new L_u(process.stdout,process.stderr,{isLocal:e}),r=async()=>{await t.exit()};if(Iec.type==="node"&&Iec.parsedVersion!=null&&Iec.parsedVersion>=18){let{setGlobalDispatcher:i,Agent:n}=await Promise.resolve().then(()=>ue(hjp(),1));i(new n({connect:{timeout:2147483647},bodyTimeout:0,headersTimeout:2147483647}))}if(process.env.HTTP_PROXY!=null){let{setGlobalDispatcher:i,ProxyAgent:n}=await Promise.resolve().then(()=>ue(hjp(),1)),a=new n(process.env.HTTP_PROXY);i(a)}process.on("SIGINT",async()=>{t.suppressUpgradeMessage(),await r()});try{let i=process.env[Gqo];i!=null&&process.chdir(i);let n=await Tr6(t);t.environment.packageVersion===n?await qr6(t):await Hqo({version:n,cliContext:t})}catch(i){await t.instrumentPostHogEvent({command:process.argv.join(" "),properties:{failed:!0,error:i}}),i?.message.includes("globalThis")?(t.logger.error(Ir6),t.failWithoutThrowing()):i instanceof pM?t.failWithoutThrowing():i instanceof Xzi?t.logger.error(`Failed. ${i.log}`):t.failWithoutThrowing("Failed.",i)}await r()}async function qr6(e){let t=_yh(ZUa(process.argv)).scriptName(e.environment.cliName).version(!1).fail((r,i,n)=>{i==null&&(n.showHelp(),e.logger.error(r))}).strict().exitProcess(!1).command("$0",!1,r=>r.option("version",{describe:"Print current version",alias:"v"}).version(!1),r=>{r.version!=null?e.logger.info(e.environment.packageVersion):(t.showHelp(),e.failAndThrow())}).option("log-level",{default:Au.Info,choices:eVt}).demandCommand().recommendCommands();Nr6(t,e),Fr6(t,e),zr6(t,e),Qr6(t,e),Ur6(t,e),Lr6(t,e),Vr6(t,e),xr6(t,e),Wr6(t,e),Gr6(t,e),Jr6(t,e),Hr6(t,e),Kr6(t,e),kr6(t,e),ei6(t,e),ti6(t,e),si6(t,e),ci6(t,e),ii6(t,e),ni6(t,e),ui6(t,e),ri6(t,e),Xr6(t,e),Zr6(t,e),$r6({cli:t,cliContext:e,onRun:()=>{e.suppressUpgradeMessage()}}),Yr6(t,e),hi6(t,e),yi6(t,e),bi6(t,e),vi6(t,e),gi6(t,e),hzh(t,e),yzh(t,e),Oi6(t,e),t.middleware(async r=>{e.setLogLevel(r["log-level"]),e.logFernVersionDebug()}),await t.parse()}async function Tr6(e){if(process.env.FERN_NO_VERSION_REDIRECTION==="true")return e.environment.packageVersion;let t=await vS();if(t!=null){let r=await e.runTask(i=>Pve({directory:t,context:i}));return r.version==="*"?e.environment.packageVersion:r.version}return UJi({cliEnvironment:e.environment})}async function Rr6(e){let t=await vS();if(t!=null)return(await e.runTask(i=>Pve({directory:t,context:i}))).organization}function zr6(e,t){e.command("init","Initialize a Fern API",r=>r.option("api",{boolean:!0,description:"Initialize an api."}).option("docs",{boolean:!0,description:"Initialize a docs website."}).option("organization",{alias:"org",type:"string",description:"Organization name"}).option("openapi",{type:"string",description:"Filepath or url to an existing OpenAPI spec"}).option("mintlify",{type:"string",description:"Migrate docs from Mintlify provided a path to a mint.json file"}).option("readme",{type:"string",description:"Migrate docs from Readme provided a URL to a Readme generated docs site"}),async r=>{if(r.organization==null){let i=await Rr6(t);i!=null?r.organization=i:r.organization=await t.getInput({message:"Please enter your organization"})}if(r.api!=null&&r.docs!=null)return t.failWithoutThrowing("Cannot specify both --api and --docs. Please choose one.");if(r.readme!=null&&r.mintlify!=null)return t.failWithoutThrowing("Cannot specify both --readme and --mintlify. Please choose one.");if(r.readme!=null)await t.runTask(async i=>{await q9c({readmeUrl:r.readme,organization:r.organization??"fern",taskContext:i,versionOfCli:await UJi({cliEnvironment:t.environment})})});else if(r.docs!=null)await t.runTask(async i=>{await RFc({organization:r.organization,versionOfCli:await UJi({cliEnvironment:t.environment}),taskContext:i})});else if(r.mintlify!=null)await t.runTask(async i=>{await UFc({pathToMintJson:r.mintlify,organization:r.organization??"fern",taskContext:i,versionOfCli:await UJi({cliEnvironment:t.environment})})});else{let i;if(r.openapi!=null){if(adn(r.openapi)){let a=await vyh({url:r.openapi,logger:t.logger});a.status==="failure"&&t.failAndThrow(a.errorMessage);let o=a.filePath;i=Ar.of(o)}else i=Ar.of(su(im(),r.openapi));await gi(i)||t.failAndThrow(`${i} does not exist`)}await t.runTask(async n=>{await qFc({organization:r.organization,versionOfCli:await UJi({cliEnvironment:t.environment}),context:n,openApiPath:i})})}})}function Nr6(e,t){e.command("diff","Diff two versions of an API",r=>r.option("from",{string:!0,demandOption:!0,description:"The previous version of the API"}).option("to",{string:!0,demandOption:!0,description:"The next version of the API"}).option("from-version",{string:!0,description:"The previous version of the API (e.g. 1.1.0)"}).option("from-generator-version",{string:!0,description:"The previous version of the generator (e.g. 1.1.0)"}).option("to-generator-version",{string:!0,description:"The next version of the generator (e.g. 1.1.0)"}).option("quiet",{boolean:!0,default:!1,alias:"q",description:"Whether to suppress output written to stderr"}).middleware(i=>{if(!Snc(i.fromGeneratorVersion,i.toGeneratorVersion))throw new Error("Both --from-generator-version and --to-generator-version must be provided together, or neither should be provided")}),async r=>{let i=wnc(r.fromVersion),n=Enc({from:r.fromGeneratorVersion,to:r.toGeneratorVersion}),a=await Azh({context:t,from:r.from,to:r.to,fromVersion:i,generatorVersions:n});if(i!=null){let{errors:c,...d}=a;t.logger.info(JSON.stringify(d))}!r.quiet&&a.errors.length>0&&t.stderr.info(a.errors.join(`
|
|
2248
|
+
`)[0];if(!o)return{version:null,failureReason:"config-not-tracked"};let{stdout:c,failed:d}=await vy(t,"git",["show",`HEAD:${o}`],{cwd:n,doNotPipeOutput:!0,reject:!1});if(d||!c.trim())return{version:null,failureReason:"no-git-history"};let u=JSON.parse(c).version??null;return u==null?{version:null,failureReason:"no-version-field"}:{version:u}}catch(r){return t.debug(`Failed to retrieve version from git: ${r}`),{version:null,failureReason:"parse-error"}}}async function kRE({fromVersion:e,fromGit:t,cliContext:r,fernDirectory:i,projectConfig:n,isLocalDev:a}){let o=e?.trim(),c=process.env[Eec]?.trim(),d=tzE({cliVersion:r.environment.packageVersion,fromVersion:e,isLocalDev:a});if(!o&&c&&c!=="0.0.0"&&!d&&!t&&(o=c),!o||d||t){let s=await HG5(i,r.logger);if(s.version!=null)d&&r.logger.debug(`Detected faulty upgrade (FERN_PRE_UPGRADE_VERSION=${process.env[Eec]}). Using version from git history: ${s.version}`),o=s.version;else if(d){let u=ZRE(s.failureReason);r.logger.warn(`Detected potential faulty upgrade but could not retrieve version from git history${u}. Using current config version: ${n.version}`),o=n.version}else if(t){let u=ZRE(s.failureReason);r.logger.debug(`Could not retrieve version from git${u}. Falling back to config.`),o=o||n.version}else o=o||n.version}return o}function KG5({cliContext:e,targetVersion:t,currentVersion:r}){pY(t,r)||e.failAndThrow(`Cannot upgrade because target version (${t}) is not ahead of existing version ${r}`)}function JG5(e){let t=new Set(["--version","--to","--from","--from-git"]),r=[],i=0;for(;i<e.length;){let n=e[i];if(i===0&&n==="upgrade"){i++;continue}let a=t.has(n??""),o=Array.from(t).some(c=>n?.startsWith(`${c}=`));a?(i++,i<e.length&&!e[i]?.startsWith("-")&&i++):(o||n!=null&&r.push(n),i++)}return r}async function rzE({cliContext:e,includePreReleases:t,targetVersion:r,fromVersion:i,fromGit:n,yes:a}){let o=e.environment.packageVersion==="0.0.0",c=r?.trim();if(!c){let h=(await e.isUpgradeAvailable({includePreReleases:t})).cliUpgradeInfo;if(h!=null&&h.isUpgradeAvailable)c=h.latestVersion;else{if(o){e.logger.info("No upgrade available.");return}let b=await vS();if(b==null)return e.failAndThrow(`Directory "${cR}" not found.`);let v=await e.runTask(m=>Pve({directory:b,context:m})),O=tzE({cliVersion:e.environment.packageVersion,fromVersion:i,isLocalDev:o});if(v.version!==e.environment.packageVersion||O)c=e.environment.packageVersion,O?e.logger.info(`Detected faulty upgrade. Config version is ${v.version}, CLI version is ${e.environment.packageVersion}`):e.logger.info(`No newer version available, but config version (${v.version}) differs from CLI version (${e.environment.packageVersion})`);else{e.logger.info("No upgrade available.");return}}}if(e.environment.packageVersion===c||o){let _=await vS();if(_==null)return e.failAndThrow(`Directory "${cR}" not found.`);let h=await e.runTask(v=>Pve({directory:_,context:v})),y=await kRE({fromVersion:i,fromGit:n,cliContext:e,fernDirectory:_,projectConfig:h,isLocalDev:o});e.logger.info(`Running migrations from ${Rt.dim(y)} \u2192 ${Rt.green(c)}`),await e.runTask(async v=>{await LOp({fromVersion:y,toVersion:c,context:v,yes:a??!1})}),await e.exitIfFailed();let b=SMu(h.rawConfig,v=>{v.version=c});await(0,ezE.writeFile)(h._absolutePath,xG5(JSON.stringify(b,void 0,2))),e.logger.info(`Updated fern.config.json to version ${Rt.green(c)}`);return}KG5({cliContext:e,targetVersion:c,currentVersion:e.environment.packageVersion});let d=await vS();if(d==null)return e.failAndThrow(`Directory "${cR}" not found.`);let s=await e.runTask(_=>Pve({directory:d,context:_})),u=await kRE({fromVersion:i,fromGit:n,cliContext:e,fernDirectory:d,projectConfig:s,isLocalDev:o});e.logger.info(`Upgrading from ${Rt.dim(e.environment.packageVersion)} \u2192 ${Rt.green(c)}`);let l=JG5(process.argv.slice(2)),p=["upgrade","--from",u,"--to",c,...l];a&&!l.some(_=>_==="--yes"||_==="-y")&&p.push("--yes");try{await Hqo({version:c,cliContext:e,env:{[Eec]:u},args:p,throwOnError:!0})}catch(_){if(_ instanceof xqo){e.logger.debug(`Rerun CLI failed with stdout: ${_.stdout}`),e.logger.debug(`Rerun CLI failed with stderr: ${_.stderr}`);let h=(_.stderr??"")+(_.stdout??"");if(h.includes("ETARGET")||h.includes("E404")||h.includes("404 Not Found")||h.includes("No matching version found")||h.includes("version not found"))return e.failAndThrow(`Failed to upgrade to ${c} because it does not exist. See https://www.npmjs.com/package/${e.environment.packageName}?activeTab=versions.`)}throw _}}async function izE({project:e,cliContext:t,errorOnBrokenLinks:r}){let i=e.docsWorkspaces;if(i==null){t.failAndThrow("No docs workspace found");return}await t.runTaskForWorkspace(i,async n=>{let a=performance.now(),o=await qL(e),c=await Xla(i,n,e.apiWorkspaces,o,!0),d=performance.now()-a;Zla({violations:c,context:n,logWarnings:!0,logSummary:!0,logBreadcrumbs:!1,elapsedMillis:d}),c.length>0&&r&&n.failAndThrow()})}function ozE({apiResults:e,docsResult:t,logWarnings:r,context:i}){let n=performance.now(),a=!1;if(e.filter(u=>{let l=Kqo(u.violations);return l.numErrors>0||r&&l.numWarnings>0}).length>0){let u=ex5(e.map(p=>p.violations).flat());if(e.length>1){i.logger.info(Rt.cyan(Rt.bold("[sdk]")));for(let p of e){let _=Kqo(p.violations);(_.numErrors>0||r&&_.numWarnings>0)&&(a=a||_.numErrors>0,YG5({apiName:p.apiName,violations:p.violations,stats:_,logWarnings:r,context:i,indent:" "}))}}else a=a||u.numErrors>0,$G5({violations:e[0]?.violations??[],stats:u,logWarnings:r,context:i})}if(t!=null){let u=Kqo(t.violations);(u.numErrors>0||r&&u.numWarnings>0)&&(a=a||u.numErrors>0,XG5({violations:t.violations,stats:u,logWarnings:r,context:i}))}let c=performance.now()-n,d=[...e.map(u=>u.violations).flat(),...t?.violations??[]],s=Kqo(d);return tx5({stats:s,logWarnings:r,elapsedMillis:c,context:i}),{hasErrors:a}}function $G5({violations:e,stats:t,logWarnings:r,context:i}){let n=WOp(t,r);i.logger.info(Rt.cyan(Rt.bold("[sdk]"))+` ${n}`),VOp({violations:e,logWarnings:r,context:i,indent:" "})}function YG5({apiName:e,violations:t,stats:r,logWarnings:i,context:n,indent:a}){let o=WOp(r,i);n.logger.info(`${a}${Rt.bold(`[${e}]`)} ${o}`),VOp({violations:t,logWarnings:i,context:n,indent:a+" "})}function XG5({violations:e,stats:t,logWarnings:r,context:i}){let n=WOp(t,r);i.logger.info(Rt.magenta(Rt.bold("[docs]"))+` ${n}`),VOp({violations:e,logWarnings:r,context:i,indent:" "})}function VOp({violations:e,logWarnings:t,context:r,indent:i}){let n=e.filter(o=>o.severity==="fatal"||o.severity==="error"),a=e.filter(o=>o.severity==="warning");if(t)for(let o of a.sort(azE))nzE({violation:o,context:r,indent:i});for(let o of n.sort(azE))nzE({violation:o,context:r,indent:i})}function nzE({violation:e,context:t,indent:r}){let i=kG5(e.severity),n=ZG5(e);n===""?t.logger.info(`${r}${i} ${e.message}`):(t.logger.info(`${r}${i}`),t.logger.info(`${r} path: ${Rt.blue(n)}`),t.logger.info(`${r} issue: ${e.message}`)),t.logger.info("")}function ZG5(e){let t=[];e.relativeFilepath!==""&&t.push(e.relativeFilepath);for(let r of e.nodePath){let i=typeof r=="string"?r:r.key;typeof r!="string"&&r.arrayIndex!=null&&(i+=`[${r.arrayIndex}]`),t.push(i)}return t.join(" -> ")}function kG5(e){switch(e){case"fatal":return Rt.red("[error]");case"error":return Rt.red("[error]");case"warning":return Rt.yellow("[warning]");default:vt(e)}}function WOp(e,t){let r=[];return e.numErrors>0&&r.push(`${e.numErrors} error${e.numErrors!==1?"s":""}`),t&&e.numWarnings>0&&r.push(`${e.numWarnings} warning${e.numWarnings!==1?"s":""}`),r.join(", ")}function Kqo(e){let t=0,r=0;for(let i of e)switch(i.severity){case"fatal":case"error":t+=1;break;case"warning":r+=1;break;default:vt(i.severity)}return{numErrors:t,numWarnings:r}}function ex5(e){return Kqo(e)}function azE(e,t){let r=e.relativeFilepath.localeCompare(t.relativeFilepath);return r!==0?r:JSON.stringify(e.nodePath).localeCompare(JSON.stringify(t.nodePath))}function tx5({stats:e,logWarnings:t,elapsedMillis:r,context:i}){let n=r>0?` in ${(r/1e3).toFixed(3)} seconds.`:".",a=`Found ${e.numErrors} error${e.numErrors!==1?"s":""} and ${e.numWarnings} warning${e.numWarnings!==1?"s":""}`+n;!t&&e.numWarnings>0&&(a+=" Run fern check --warnings to print out the warnings not shown."),e.numErrors>0?i.logger.error(a):e.numWarnings>0?i.logger.warn(a):i.logger.info(Rt.green("All checks passed"))}async function uzE({project:e,cliContext:t,logWarnings:r,brokenLinks:i,errorOnBrokenLinks:n,isLocal:a,directFromOpenapi:o}){let c=[],d,s=!1,u=e.docsWorkspaces;if(u!=null){let p=i||n?[]:["valid-markdown-links"],_=await qL(e),h;await t.runTaskForWorkspace(u,async y=>{h=await bYh({workspace:u,context:y,apiWorkspaces:e.apiWorkspaces,ossWorkspaces:_,errorOnBrokenLinks:n,excludeRules:p})}),h!=null&&(d={violations:h.violations,elapsedMillis:h.elapsedMillis},h.hasErrors&&(s=!0))}await Promise.all(e.apiWorkspaces.map(async p=>{if(p.generatorsConfiguration?.groups.length===0&&p.type!=="fern")return;if(p instanceof jS&&o){await t.runTaskForWorkspace(p,async h=>{await p.getIntermediateRepresentation({context:h,audiences:{type:"all"},enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,logWarnings:r})});return}if(p instanceof ySe){let h=qt(p.absoluteFilePath,xe.of(t1),xe.of(KB));if(!await gi(h)){await t.runTask(async b=>(b.logger.error(`Missing file: ${KB}`),b.failAndThrow()));return}}let _;await t.runTaskForWorkspace(p,async h=>{let y=await p.toFernWorkspace({context:h});_=await vBE({workspace:y,context:h,ossWorkspace:p instanceof jS?p:void 0})}),_!=null&&(c.push({apiName:_.apiName,violations:_.violations,elapsedMillis:_.elapsedMillis}),_.hasErrors&&(s=!0))}));let{hasErrors:l}=await t.runTask(p=>ozE({apiResults:c,docsResult:d,logWarnings:r,context:p}));(l||s)&&t.failAndThrow()}var Ezi=require("fs/promises");var GOp=ue(require("path"),1);async function szE({project:e,cliContext:t,sdkLanguage:r,preserveSchemaIds:i}){await Promise.all(e.apiWorkspaces.map(async n=>{await t.runTaskForWorkspace(n,async a=>{n instanceof yY?await rx5({workspace:n,context:a}):await ix5({workspace:await n.toFernWorkspace({context:a},{preserveSchemaIds:i}),context:a})})}))}async function rx5({workspace:e,context:t}){for(let[r,i]of Object.entries(e.definition.importedDefinitions)){let n=qt(e.absoluteFilePath,xe.of(t1),xe.of(r),xe.of(`.${t1}`));await czE({definition:i.definition,absolutePathToOutputDirectory:n}),t.logger.info(Rt.green(`Wrote imported definition at ${GOp.default.relative(process.cwd(),n)}`))}}async function ix5({workspace:e,context:t}){let r=qt(e.absoluteFilePath,xe.of(`.${t1}`));await czE({definition:e.definition,absolutePathToOutputDirectory:r}),t.logger.info(Rt.green(`Wrote definition to ${GOp.default.relative(process.cwd(),r)}`))}async function czE({definition:e,absolutePathToOutputDirectory:t}){let r=(i,n)=>{let a={imports:0,types:1,services:2},o=i in a?a[i]:Object.keys(a).length,c=n in a?a[n]:Object.keys(a).length;return o==null?-1:c==null?1:o!==c?o-c:i.localeCompare(n)};await gi(t)&&await(0,Ezi.rm)(t,{recursive:!0}),await(0,Ezi.mkdir)(t,{recursive:!0}),await(0,Ezi.writeFile)(qt(t,xe.of(KB)),wi.dump(e.rootApiFile.contents,{sortKeys:r}));for(let[i,n]of Object.entries(e.packageMarkers)){let a=qt(t,xe.of(i));await(0,Ezi.mkdir)(Yi(a),{recursive:!0}),await(0,Ezi.writeFile)(a,wi.dump(n.contents,{sortKeys:r}))}for(let[i,n]of Object.entries(e.namedDefinitionFiles)){let a=qt(t,xe.of(i));await(0,Ezi.mkdir)(Yi(a),{recursive:!0}),await(0,Ezi.writeFile)(a,wi.dump(n.contents,{sortKeys:r}))}}var lzE=require("fs/promises");async function fzE({project:e,outputPath:t,cliContext:r}){let i=e.docsWorkspaces;i!=null&&await r.runTaskForWorkspace(i,async n=>{let a=await qL(e),o=await Promise.all(e.apiWorkspaces.map(async s=>s.toFernWorkspace({context:n},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1}))),d=await new tWt({domain:i.config.instances[0]?.url??"http://localhost:8080",docsWorkspace:i,ossWorkspaces:a,apiWorkspaces:o,taskContext:n,editThisPage:void 0,uploadFiles:void 0,registerApi:void 0,targetAudiences:i.config.instances[0]?.audiences?Array.isArray(i.config.instances[0].audiences)?i.config.instances[0].audiences:[i.config.instances[0].audiences]:void 0}).resolve();await(0,lzE.writeFile)(Ar.of(t),JSON.stringify(d,null,2)),n.logger.info(Rt.green(`Docs definition written to ${t}`))})}var MzE=ue(cnl(),1),VQa=require("fs"),LLt=require("fs/promises"),DzE=ue(Goc(),1),YOp=ue(require("path"),1);var nx5="https://r88yjrnw5k.execute-api.us-east-1.amazonaws.com/dev2/translate",ax5=3,ox5=1e3,ux5=3e4,sx5=3e4;function dzE(e,t){if(e.name==="AbortError"||e.code==="ECONNRESET"||e.code==="ENOTFOUND"||e.code==="ECONNREFUSED"||e.code==="ETIMEDOUT")return!0;if(e.cause instanceof Error){let r=e.cause;if(r.code==="ECONNRESET"||r.code==="ENOTFOUND"||r.code==="ECONNREFUSED"||r.code==="ETIMEDOUT")return!0}if(t){let r=t.status;if(r>=500&&r<600||r===429||r===408)return!0}return!1}function pzE(e,t,r){let i=t*Math.pow(2,e-1),n=Math.random()*.1*i;return Math.min(i+n,r)}function cx5(e,t,r){let i=new AbortController,n=setTimeout(()=>i.abort(),r);return fetch(e,{...t,signal:i.signal}).finally(()=>{clearTimeout(n)})}async function Jqo({text:e,language:t,sourceLanguage:r,fileType:i,cliContext:n,retryConfig:a={}}){if(t===r)return e;let o=await Dhn();if(o==null)throw n.logger.error("Authentication required. Please run 'fern login' or set the FERN_TOKEN environment variable."),new Error("Authentication required for translation service");let c={maxRetries:a.maxRetries??ax5,baseDelay:a.baseDelay??ox5,maxDelay:a.maxDelay??ux5,timeout:a.timeout??sx5},d;for(let u=1;u<=c.maxRetries+1;u++)try{let l=await cx5(nx5,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.value}`},body:JSON.stringify({text:e,source_language:r,target_language:t,...i!==void 0&&{file_type:i}})},c.timeout);if(!l.ok){let _="";try{let y=await l.json();_=y.detail||JSON.stringify(y)}catch{_=await l.text()}if(l.status===403)throw new Error(`403: ${_}`);let h=new Error(`HTTP ${l.status}: ${_}`);if(!dzE(h,l))return n.logger.debug(`[TRANSLATE] Non-retriable error ${l.status}: ${_}`),e;if(d=h,u<=c.maxRetries){n.logger.debug(`[TRANSLATE] Attempt ${u} failed with status ${l.status}: ${_}. Retrying...`);let y=pzE(u,c.baseDelay,c.maxDelay);await new Promise(b=>setTimeout(b,y));continue}else return n.logger.debug(`[TRANSLATE] All ${c.maxRetries+1} attempts failed. Final error: ${_}`),e}let p=await l.json();return u>1&&n.logger.debug(`[TRANSLATE] Succeeded on attempt ${u} after ${u-1} retries`),await new Promise(_=>setTimeout(_,500)),p.translated_text??e}catch(l){if(d=l,l instanceof Error&&l.message.includes("403"))throw l;if(l instanceof Error&&!dzE(l)){let h=l instanceof Error?l.message:String(l);return n.logger.debug(`[TRANSLATE] Non-retriable error: ${h}`),e}if(u>c.maxRetries){let h=l instanceof Error?l.message:String(l);return n.logger.debug(`[TRANSLATE] All ${c.maxRetries+1} attempts failed. Final error: ${h}`),e}let p=l instanceof Error?l.message:String(l);n.logger.debug(`[TRANSLATE] Attempt ${u} failed: ${p}. Retrying...`);let _=pzE(u,c.baseDelay,c.maxDelay);await new Promise(h=>setTimeout(h,_))}let s=d instanceof Error?d.message:d?String(d):"Unknown error";return n.logger.debug(`[TRANSLATE] Unexpected end of retry loop. Last error: ${s}`),e}var lx5=new Set(["title","display-name","page","section","text","link","message","subtitle","search-text","system-prompt","summary","description","docs","tags","api"]);function _zE(e,t){return typeof t!="string"||t==="string"||t.startsWith("./")?!1:!!lx5.has(e)}function dJn({name:e}){let t=e.replace(/\.(md|mdx)$/i,"");return cS(t)}function fx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.page=="string"&&typeof t.path=="string"}function dx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.section=="string"&&Array.isArray(t.contents)}function px5(e){return typeof e!="object"||e===null?!1:typeof e.api=="string"}function _x5(e){return typeof e!="object"||e===null?!1:typeof e.changelog=="string"}function hx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t["display-name"]=="string"||typeof t.displayName=="string"}function yx5(e){if(typeof e!="object"||e===null)return!1;let t=e;return(typeof t["display-name"]=="string"||typeof t.displayName=="string")&&typeof t.path=="string"}function bx5(e){if(typeof e!="object"||e===null)return;let t=e;if(typeof t.slug=="string")return t.slug;if(t["skip-slug"]!==!0){if(fx5(e))return dJn({name:e.page});if(dx5(e))return dJn({name:e.section});if(px5(e)){let r=e["api-name"],i=e.api;return dJn({name:typeof r=="string"?r:i})}if(_x5(e)){let r=e.title;if(typeof r=="string")return dJn({name:r});let i=e.changelog;if(typeof i=="string"){let n=i.split("/").pop()||i;return dJn({name:n})}}if(hx5(e)){let r=e["display-name"]||e.displayName;if(typeof r=="string")return dJn({name:r})}if(yx5(e)){let r=e["display-name"]||e.displayName;if(typeof r=="string")return dJn({name:r})}}}async function xOp({obj:e,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:o}){if(e==null||typeof e=="string")return e;if(Array.isArray(e)){let c=Array.isArray(o)?o:void 0;return await Promise.all(e.map((d,s)=>xOp({obj:d,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:c?.[s]})))}if(typeof e=="object"){let c={},d=typeof o=="object"&&o!==null?o:void 0,s;s=bx5(e);for(let[u,l]of Object.entries(e))if(u!=="slug")if(_zE(u,l)){if(a){c[u]=l;continue}c[u]=await Jqo({text:l,language:t,sourceLanguage:r,cliContext:n})}else c[u]=await xOp({obj:l,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:d?.[u]});return s!==void 0&&(c.slug=s),c}return e}async function hzE({yamlContent:e,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a=!1}){if(t===r)return e;try{let o=iZn(e);if(!o)return e;let c=await xOp({obj:o,language:t,sourceLanguage:r,filePath:i,cliContext:n,stub:a,sourceObj:o});return $dn(c,{indent:2,lineWidth:-1,quotingType:'"',forceQuotes:!1})}catch(o){if(o instanceof Error&&o.message.includes("403"))throw o;return n.logger.error(` [ERROR] Failed to process YAML file ${i}: ${o}`),e}}async function Sec({transformation:e,cliContext:t,stub:r=!1}){let{filePath:i,language:n,sourceLanguage:a,originalContent:o}=e;if(r&&!i.endsWith(".yml")&&!i.endsWith(".yaml"))return t.logger.debug(`[STUB] Returning content as-is for ${i} (stub mode enabled)`),o;t.logger.debug(`[PROCESSING] ${i} for language: ${n} (source: ${a})`);try{return(i.endsWith(".yml")||i.endsWith(".yaml"))&&!i.includes("generators.yml")?await hzE({yamlContent:o,language:n,sourceLanguage:a,filePath:i,cliContext:t,stub:r}):i.endsWith(".md")||i.endsWith(".mdx")?Jqo({text:o,language:n,sourceLanguage:a,fileType:"MDX",cliContext:t}):i.endsWith(".json")&&!i.includes("fern.config.json")?Jqo({text:o,language:n,sourceLanguage:a,cliContext:t}):(t.logger.debug(`[SKIP] Skipping file "${i}" - unsupported file type for translation.`),o)}catch(c){if(c instanceof Error&&c.message.includes("403"))throw c;return o}}function yzE(e){let t=[".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp",".tiff",".tif",".woff",".woff2",".ttf",".otf",".eot",".pdf",".doc",".docx",".mp4",".webm",".ogg",".mp3",".wav",".zip",".tar",".gz",".bin"],r=e.toLowerCase();return t.some(i=>r.endsWith(i))}function bzE(e,t){return e.endsWith(".yaml")||e.endsWith(".yml")?!0:e.endsWith(".md")||e.endsWith(".mdx")||e.endsWith(".json")&&!e.includes("fern.config.json")?!t:!1}var Dec=require("fs/promises");function Mec(e,t){try{let r=new URL(e),i=r.hostname,n=e.endsWith("/");if(i.includes(".docs.buildwithfern.com")){let o=i.split(".")[0];r.hostname=`${o}-${t}.docs.buildwithfern.com`,r.pathname=`/${t}${r.pathname}`}else r.hostname=`${t}.${i}`,r.pathname=`/${t}${r.pathname}`;let a=r.toString();return!n&&a.endsWith("/")&&r.pathname===`/${t}/`&&(a=a.slice(0,-1)),a}catch{let r=e.endsWith("/");if(e.includes("://")){let[i,n]=e.split("://"),[a,...o]=n?.split("#")??[],[c,...d]=a?.split("?")??[],[s,...u]=c?.split("/")??[];if(!s)return e;let l;s.includes(".docs.buildwithfern.com")?l=`${s.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:l=`${t}.${s}/${t}`;let p=`${i}://${l}`;return u.length>0?p+="/"+u.join("/"):r&&(p+="/"),d.length>0&&(p+="?"+d.join("?")),o.length>0&&(p+="#"+o.join("#")),p}else if(e.includes("/")){let i=e.split("/"),n=i[0],a=i.slice(1),o;return n?.includes(".docs.buildwithfern.com")?o=`${n.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:o=`${t}.${n}/${t}`,a.length>0||a.some(c=>c!=="")?`${o}/${a.join("/")}`:r?`${o}/`:o}else return e.includes(".docs.buildwithfern.com")?`${e.split(".")[0]}-${t}.docs.buildwithfern.com/${t}`:`${t}.${e}/${t}`}}function vx5(e,t){let r=gx5({docsConfig:e,language:t});return Ox5({docsConfig:r,language:t})}function gx5({docsConfig:e,language:t}){let r=structuredClone(e);return r.settings?(r.settings.language=t,r.settings["search-text"]=vzE[t]):r.settings={language:t,"search-text":vzE[t]},r}var vzE={en:"Search",es:"Buscar",fr:"Rechercher",de:"Suchen",it:"Cerca",pt:"Pesquisar",ja:"\u691C\u7D22",zh:"\u641C\u7D22",ko:"\uAC80\uC0C9",el:"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7",no:"S\xF8k",pl:"Szukaj",ru:"\u041F\u043E\u0438\u0441\u043A",sv:"S\xF6k",tr:"Ara"};function Ox5({docsConfig:e,language:t}){let r=structuredClone(e);return r.instances&&Array.isArray(r.instances)&&(r.instances=r.instances.map(i=>{let n={...i};if(n.url&&(n.url=Mec(n.url,t)),n["custom-domain"]){let a=n["custom-domain"];typeof a=="string"?n["custom-domain"]=Mec(a,t):Array.isArray(a)&&(n["custom-domain"]=a.map(o=>Mec(o,t)))}return n})),r}async function gzE({originalDocsConfigPath:e,targetDirectory:t,language:r,sourceLanguage:i,context:n,stub:a=!1}){try{let o=await(0,Dec.readFile)(e,"utf-8"),d=await Sec({transformation:{filePath:w0,language:r,sourceLanguage:i,originalContent:o},cliContext:n,stub:a}),s=wi.load(d),u=vx5(s,r),l=qt(t,xe.of(w0)),p=wi.dump(u,{sortKeys:!1});await(0,Dec.writeFile)(l,p,"utf-8"),n.logger.debug(`Created language-specific docs config: ${l}`)}catch(o){if(o instanceof Error&&o.message.includes("403"))throw o;n.logger.warn(`Failed to create language-specific docs config for ${r}: ${o}`)}}var OzE=require("fs"),mzE=require("fs/promises"),AzE=ue(require("path"),1);async function HOp(e,t){let r={},i=await(0,mzE.readdir)(e);for(let n of i){if(n==="translations")continue;let a=AzE.default.join(e,n),o=t?qt(t,xe.of(n)):xe.of(n),c=(0,OzE.statSync)(a);if(c.isDirectory()){let d=await HOp(a,o);for(let[s,u]of Object.entries(d))r[s]=u}else c.isFile()&&(r[a]=o)}return r}var PzE=require("crypto"),jzE=require("fs"),$qo=require("fs/promises"),KOp=ue(require("path"),1);function wzE(e){return(0,PzE.createHash)("sha256").update(e,"utf-8").digest("hex")}async function EzE(e){let t=KOp.default.join(e,"hashes");if(!(0,jzE.existsSync)(t))return{};try{let r=await(0,$qo.readFile)(t,"utf-8"),i=JSON.parse(r),{_comment:n,...a}=i;return a}catch{return{}}}async function JOp(e,t){let r=KOp.default.join(e,"hashes"),i={};Object.keys(t).sort().forEach(a=>{let o=t[a];o!==void 0&&(i[a]=o)});let n={_comment:"This file is auto-generated by Fern to track source file changes for translation purposes. Do not edit manually - it will be overwritten on the next translation update.",...i};await(0,$qo.writeFile)(r,JSON.stringify(n,null,2),"utf-8")}async function Bec(e,t,r){try{let i=await(0,$qo.readFile)(e,"utf-8"),n=wzE(i),a=r[t];return n!==a}catch{return!0}}function mx5(e,t,r){let i=wzE(r);e[t]=i}async function $Op(e,t,r,i){mx5(t,r,i),await JOp(e,t)}function SzE(e,t){let r={};for(let[i,n]of Object.entries(e))t.has(i)&&(r[i]=n);return r}async function BzE({project:e,cliContext:t,stub:r=!1}){let i=e.docsWorkspaces;if(i==null){t.logger.error("No docs workspace found. Please ensure you have a docs.yml file configured.");return}let n=i.config.languages;if(n==null||n.length===0){t.logger.error("No languages found in docs.yml configuration. Please add a 'languages' field with the desired languages.");return}await t.runTaskForWorkspace(i,async a=>{let o=i.absoluteFilePath,c=qt(o,xe.of("translations")),d=n[0];if(!d)throw new Error("Unexpected error - first element of languages array is invalid");(0,VQa.existsSync)(c)||(a.logger.debug(`Creating translations directory at: ${c}`),await(0,LLt.mkdir)(c,{recursive:!0}));let s={},u=n.filter(y=>y!==d),l=qt(o,xe.of(w0)),p=(0,VQa.existsSync)(l);for(let y of u){let b=qt(c,xe.of(y),xe.of("fern"));(0,VQa.existsSync)(b)||await(0,LLt.mkdir)(b,{recursive:!0}),s[y]={filesProcessed:0,filesSkipped:0}}s[d]={filesProcessed:0,filesSkipped:0};let _={filesProcessed:0,filesSkipped:0};try{let y=await EzE(c),b=await HOp(o,""),v=Object.entries(b),O=new Set(Object.values(b)),m=SzE(y,O);Object.keys(m).length!==Object.keys(y).length&&await JOp(c,m),y=m;let g=[];for(let[q,z]of v)p&&z===w0||bzE(q,r)&&await Bec(q,z,y)&&g.push([q,z]);let A=!1;p&&(A=await Bec(l,xe.of(w0),y));let j=g.length+(A?1:0),M=j*u.length,w=process.stdout.isTTY&&!DzE.default&&M>0,D;w&&(D=new MzE.default.SingleBar({format:"Processing files [{bar}] {percentage}% | {value}/{total} files",barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:!0,clearOnComplete:!1,stopOnComplete:!0}),D.start(M,0));let B=0,R=0;try{if(p)if(A){for(let N of u){B++,R++,w||a.logger.info(Rt.gray(`[${R}/${j+1}] Processing: ${w0} (docs config) for language: ${N}`)),t.logger.debug(`[PROCESSING] ${w0} (docs config) for language: ${N}`);let H=qt(c,xe.of(N),xe.of("fern"));await gzE({originalDocsConfigPath:l,targetDirectory:H,language:N,sourceLanguage:d,context:t,stub:r});let $=s[N];D&&D.update(B),$&&$.filesProcessed++,t.logger.debug(`[COMPLETED] ${w0} -> ${N}/${w0}`)}let q=await(0,LLt.readFile)(l,"utf-8");await $Op(c,y,xe.of(w0),q);let z=s[d];z&&z.filesProcessed++,t.logger.debug(`[HASH UPDATED] ${w0} -> ${d} (source language - hash updated)`)}else{for(let q of n){let z=s[q];z&&z.filesSkipped++}t.logger.debug(`[SKIPPED] ${w0} (no changes since last translation)`)}for(let[q,z]of v){if(p&&z===w0){t.logger.debug(`[SKIPPED] ${z} (already handled by docs config processing)`);continue}if(!await Bec(q,z,y)){for(let de of n){let be=s[de];be&&be.filesSkipped++}t.logger.debug(`[SKIPPED] ${z} (no changes since last translation)`);continue}t.logger.debug(`[PROCESSING] ${z} (detected changes)`);let H=await(0,LLt.readFile)(q,"utf-8");await $Op(c,y,z,H);let $=s[d];$&&$.filesProcessed++,t.logger.debug(`[HASH UPDATED] ${z} -> ${d} (source language - hash only)`);for(let de of u){R++,B++,w||a.logger.info(Rt.gray(`[${R}/${j}] Processing: ${z}`));let be=qt(c,xe.of(de),xe.of("fern")),W=qt(be,z),x=YOp.default.dirname(W);(0,VQa.existsSync)(x)||await(0,LLt.mkdir)(x,{recursive:!0});let se=await Sec({transformation:{filePath:z,language:de,sourceLanguage:d,originalContent:H},cliContext:t,stub:r});await(0,LLt.writeFile)(W,se,"utf-8");let Oe=s[de];Oe&&Oe.filesProcessed++,t.logger.debug(`[COMPLETED] ${z} -> ${de}/${z}`),D&&D.update(B)}}}finally{D&&(D.update(M),D.stop(),t.logger.info())}a.logger.info(Rt.cyan("Copying asset files..."));let T=0;for(let[q,z]of v)if(yzE(q))for(let N of u){let H=qt(c,xe.of(N),xe.of("fern")),$=qt(H,z),de=YOp.default.dirname($);(0,VQa.existsSync)(de)||await(0,LLt.mkdir)(de,{recursive:!0}),await(0,LLt.copyFile)(q,$),T++,t.logger.debug(`[ASSET COPIED] ${z} -> ${N}/${z}`)}T>0&&a.logger.info(Rt.green(`\u2713 Copied ${T} asset files to translation directories`));for(let q of n){let z=s[q];if(!z)continue;_.filesProcessed+=z.filesProcessed,_.filesSkipped+=z.filesSkipped;let N=z.filesProcessed+z.filesSkipped;q===d?(a.logger.info(Rt.blue(`${q} (source) hash tracking summary: ${z.filesProcessed} processed, ${z.filesSkipped} skipped (${N} total)`)),a.logger.info(Rt.green(`\u2713 Successfully tracked ${q} source language hashes (no directory created)`))):(a.logger.info(Rt.blue(`${q} translation summary: ${z.filesProcessed} processed, ${z.filesSkipped} skipped (${N} total)`)),a.logger.info(Rt.green(`\u2713 Successfully created ${q} translation with content processing`)))}}catch(y){throw y instanceof Error&&y.message.includes("403")||a.logger.error(`Failed to create translations: ${y}`),y}let h=_.filesProcessed+_.filesSkipped;if(a.logger.info(Rt.cyan(`Overall summary: ${_.filesProcessed} files processed, ${_.filesSkipped} files skipped across ${n.length} languages (${h} total operations)`)),a.logger.info(Rt.green(`Translations created successfully in: ${c}`)),u.length>0){a.logger.info("You can now modify the content in each language directory:");for(let y of u)a.logger.info(Rt.blue(` - ${y}: ${qt(c,xe.of(y))}`))}if(a.logger.info(`Source language (${d}) values are tracked as hashes in translations/hashes`),p&&u.length>0){a.logger.info("Language-specific docs configurations created with modified instance URLs:");for(let y of u)a.logger.info(` - ${y}/docs.yml: URLs modified to include ${y} prefix`)}})}var Iec=Ax5();function Ax5(){return typeof window<"u"&&typeof window.document<"u"?{type:"browser",version:window.navigator.userAgent}:typeof globalThis<"u"&&globalThis?.navigator?.userAgent==="Cloudflare-Workers"?{type:"workerd"}:typeof EdgeRuntime=="string"?{type:"edge-runtime"}:typeof self=="object"&&typeof self?.importScripts=="function"&&(self.constructor?.name==="DedicatedWorkerGlobalScope"||self.constructor?.name==="ServiceWorkerGlobalScope"||self.constructor?.name==="SharedWorkerGlobalScope")?{type:"web-worker"}:typeof Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno<"u"?{type:"deno",version:Deno.version.deno}:typeof Bun<"u"&&typeof Bun.version<"u"?{type:"bun",version:Bun.version}:typeof process<"u"&&"version"in process&&!!process.version&&"versions"in process&&!!process.versions?.node?{type:"node",version:process.versions.node,parsedVersion:Number(process.versions.node.split(".")[0])}:typeof navigator<"u"&&navigator?.product==="ReactNative"?{type:"react-native"}:{type:"unknown"}}Cr6();var Ir6="The Fern CLI requires Node 18+ or above.";async function Cr6(){let e=process.argv.includes("--local"),t=new L_u(process.stdout,process.stderr,{isLocal:e}),r=async()=>{await t.exit()};if(Iec.type==="node"&&Iec.parsedVersion!=null&&Iec.parsedVersion>=18){let{setGlobalDispatcher:i,Agent:n}=await Promise.resolve().then(()=>ue(hjp(),1));i(new n({connect:{timeout:2147483647},bodyTimeout:0,headersTimeout:2147483647}))}if(process.env.HTTP_PROXY!=null){let{setGlobalDispatcher:i,ProxyAgent:n}=await Promise.resolve().then(()=>ue(hjp(),1)),a=new n(process.env.HTTP_PROXY);i(a)}process.on("SIGINT",async()=>{t.suppressUpgradeMessage(),await r()});try{let i=process.env[Gqo];i!=null&&process.chdir(i);let n=await Tr6(t);t.environment.packageVersion===n?await qr6(t):await Hqo({version:n,cliContext:t})}catch(i){await t.instrumentPostHogEvent({command:process.argv.join(" "),properties:{failed:!0,error:i}}),i?.message.includes("globalThis")?(t.logger.error(Ir6),t.failWithoutThrowing()):i instanceof pM?t.failWithoutThrowing():i instanceof Xzi?t.logger.error(`Failed. ${i.log}`):t.failWithoutThrowing("Failed.",i)}await r()}async function qr6(e){let t=_yh(ZUa(process.argv)).scriptName(e.environment.cliName).version(!1).fail((r,i,n)=>{i==null&&(n.showHelp(),e.logger.error(r))}).strict().exitProcess(!1).command("$0",!1,r=>r.option("version",{describe:"Print current version",alias:"v"}).version(!1),r=>{r.version!=null?e.logger.info(e.environment.packageVersion):(t.showHelp(),e.failAndThrow())}).option("log-level",{default:Au.Info,choices:eVt}).demandCommand().recommendCommands();Nr6(t,e),Fr6(t,e),zr6(t,e),Qr6(t,e),Ur6(t,e),Lr6(t,e),Vr6(t,e),xr6(t,e),Wr6(t,e),Gr6(t,e),Jr6(t,e),Hr6(t,e),Kr6(t,e),kr6(t,e),ei6(t,e),ti6(t,e),si6(t,e),ci6(t,e),ii6(t,e),ni6(t,e),ui6(t,e),ri6(t,e),Xr6(t,e),Zr6(t,e),$r6({cli:t,cliContext:e,onRun:()=>{e.suppressUpgradeMessage()}}),Yr6(t,e),hi6(t,e),yi6(t,e),bi6(t,e),vi6(t,e),gi6(t,e),hzh(t,e),yzh(t,e),Oi6(t,e),t.middleware(async r=>{e.setLogLevel(r["log-level"]),e.logFernVersionDebug()}),await t.parse()}async function Tr6(e){if(process.env.FERN_NO_VERSION_REDIRECTION==="true")return e.environment.packageVersion;let t=await vS();if(t!=null){let r=await e.runTask(i=>Pve({directory:t,context:i}));return r.version==="*"?e.environment.packageVersion:r.version}return UJi({cliEnvironment:e.environment})}async function Rr6(e){let t=await vS();if(t!=null)return(await e.runTask(i=>Pve({directory:t,context:i}))).organization}function zr6(e,t){e.command("init","Initialize a Fern API",r=>r.option("api",{boolean:!0,description:"Initialize an api."}).option("docs",{boolean:!0,description:"Initialize a docs website."}).option("organization",{alias:"org",type:"string",description:"Organization name"}).option("openapi",{type:"string",description:"Filepath or url to an existing OpenAPI spec"}).option("mintlify",{type:"string",description:"Migrate docs from Mintlify provided a path to a mint.json file"}).option("readme",{type:"string",description:"Migrate docs from Readme provided a URL to a Readme generated docs site"}),async r=>{if(r.organization==null){let i=await Rr6(t);i!=null?r.organization=i:r.organization=await t.getInput({message:"Please enter your organization"})}if(r.api!=null&&r.docs!=null)return t.failWithoutThrowing("Cannot specify both --api and --docs. Please choose one.");if(r.readme!=null&&r.mintlify!=null)return t.failWithoutThrowing("Cannot specify both --readme and --mintlify. Please choose one.");if(r.readme!=null)await t.runTask(async i=>{await q9c({readmeUrl:r.readme,organization:r.organization??"fern",taskContext:i,versionOfCli:await UJi({cliEnvironment:t.environment})})});else if(r.docs!=null)await t.runTask(async i=>{await RFc({organization:r.organization,versionOfCli:await UJi({cliEnvironment:t.environment}),taskContext:i})});else if(r.mintlify!=null)await t.runTask(async i=>{await UFc({pathToMintJson:r.mintlify,organization:r.organization??"fern",taskContext:i,versionOfCli:await UJi({cliEnvironment:t.environment})})});else{let i;if(r.openapi!=null){if(adn(r.openapi)){let a=await vyh({url:r.openapi,logger:t.logger});a.status==="failure"&&t.failAndThrow(a.errorMessage);let o=a.filePath;i=Ar.of(o)}else i=Ar.of(su(im(),r.openapi));await gi(i)||t.failAndThrow(`${i} does not exist`)}await t.runTask(async n=>{await qFc({organization:r.organization,versionOfCli:await UJi({cliEnvironment:t.environment}),context:n,openApiPath:i})})}})}function Nr6(e,t){e.command("diff","Diff two versions of an API",r=>r.option("from",{string:!0,demandOption:!0,description:"The previous version of the API"}).option("to",{string:!0,demandOption:!0,description:"The next version of the API"}).option("from-version",{string:!0,description:"The previous version of the API (e.g. 1.1.0)"}).option("from-generator-version",{string:!0,description:"The previous version of the generator (e.g. 1.1.0)"}).option("to-generator-version",{string:!0,description:"The next version of the generator (e.g. 1.1.0)"}).option("quiet",{boolean:!0,default:!1,alias:"q",description:"Whether to suppress output written to stderr"}).middleware(i=>{if(!Snc(i.fromGeneratorVersion,i.toGeneratorVersion))throw new Error("Both --from-generator-version and --to-generator-version must be provided together, or neither should be provided")}),async r=>{let i=wnc(r.fromVersion),n=Enc({from:r.fromGeneratorVersion,to:r.toGeneratorVersion}),a=await Azh({context:t,from:r.from,to:r.to,fromVersion:i,generatorVersions:n});if(i!=null){let{errors:c,...d}=a;t.logger.info(JSON.stringify(d))}!r.quiet&&a.errors.length>0&&t.stderr.info(a.errors.join(`
|
|
2249
2249
|
`));let o=a.bump==="major"?1:0;await t.exit({code:o})})}function Fr6(e,t){e.command("sdk-diff <from-dir> <to-dir>",!1,r=>r.positional("from-dir",{type:"string",demandOption:!0,description:"Path to the directory containing the previous version of the SDK"}).positional("to-dir",{type:"string",demandOption:!0,description:"Path to the directory containing the next version of the SDK"}).option("json",{boolean:!0,default:!1,description:"Output result as JSON"}),async r=>{await t.instrumentPostHogEvent({command:"fern sdk-diff"});let i=await WO(t,{commandLineApiWorkspace:void 0,defaultToAllApiWorkspaces:!0}),n=await nIE({context:t,project:i,fromDir:r.fromDir,toDir:r.toDir});r.json?t.logger.info(JSON.stringify(n,null,2)):(t.logger.info(`
|
|
2250
2250
|
`+n.message),t.logger.info(`
|
|
2251
2251
|
Version Bump: ${n.version_bump}`))})}function Qr6(e,t){e.command("token","Generate a Fern Token",r=>r.option("organization",{alias:"org",type:"string",description:"The organization to create a token for. Defaults to the one in `fern.config.json`"}),async r=>{await t.runTask(async i=>{await sIE({orgId:r.organization??(await WO(t,{commandLineApiWorkspace:void 0,defaultToAllApiWorkspaces:!0})).config.organization,taskContext:i})})})}function Ur6(e,t){e.command("add <generator>",`Add a code generator to ${yD}`,r=>r.positional("generator",{type:"string",demandOption:!0}).option("api",{string:!0,description:"Only run the command on the provided API"}).option("group",{string:!0,description:"Add the generator to the specified group"}),async r=>{await vzh({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),generatorName:r.generator,groupName:r.group,cliContext:t})})}function Lr6(e,t){e.command(["generate"],"Generate all generators in the specified group",r=>r.option("api",{string:!0,description:"If multiple APIs, specify the name with --api <name>. Otherwise, just --api."}).option("docs",{string:!0,description:"If multiple docs sites, specify the name with --docs <name>. Otherwise just --docs."}).option("instance",{string:!0,description:"The url for the instance of docs (e.g. --instance acme.docs.buildwithfern.com)"}).option("preview",{boolean:!0,default:!1,description:"Whether to generate a preview link for the docs"}).option("group",{type:"string",description:"The group to generate"}).option("mode",{choices:Object.values(ABE),description:"Defaults to the mode specified in generators.yml"}).option("version",{type:"string",description:"The version for the generated packages"}).option("printZipUrl",{boolean:!0,hidden:!0,default:!1}).option("local",{boolean:!0,default:!1,description:"Run the generator(s) locally, using Docker"}).option("keepDocker",{boolean:!0,default:!1,description:"Prevent auto-deletion of the Docker containers."}).option("force",{boolean:!0,default:!1,description:"Ignore prompts to confirm generation, defaults to false"}).option("broken-links",{boolean:!0,description:"Log a warning if there are broken links in the docs.",default:!1}).option("strict-broken-links",{boolean:!0,description:"Throw an error (rather than logging a warning) if there are broken links in the docs.",default:!1}).option("disable-snippets",{boolean:!0,description:"Disable snippets in docs generation.",default:!1}).option("runner",{choices:["docker","podman"],description:"Choose the container runtime to use for local generation.",default:void 0}).option("lfs-override",{type:"string",hidden:!0,description:"Override output mode to local-file-system with the specified path"}).option("disable-dynamic-snippets",{boolean:!0,description:"Disable dynamic SDK snippets in docs generation",default:!1}).option("prompt",{boolean:!0,description:"Prompt for confirmation before generating (use --no-prompt to skip)",default:!0}).option("skip-upload",{boolean:!0,description:"Skip asset upload step and generate fake links for preview",default:!1}).option("fernignore",{type:"string",description:"Path to a custom .fernignore file to use instead of the one on the main branch (remote generation only)"}).option("dynamic-ir-only",{boolean:!0,description:"Only upload dynamic IR for specified version, skip SDK generation (remote generation only)",default:!1}).option("output",{type:"string",description:"Custom output directory (currently only supported with --preview for SDK generation)"}),async r=>r.api!=null&&r.docs!=null?t.failWithoutThrowing("Cannot specify both --api and --docs. Please choose one."):r.skipUpload&&!r.preview?t.failWithoutThrowing("The --skip-upload flag can only be used with --preview."):r.skipUpload&&r.docs==null?t.failWithoutThrowing("The --skip-upload flag can only be used with --docs."):r.fernignore!=null&&(r.local||r.runner!=null)?t.failWithoutThrowing("The --fernignore flag is not supported with local generation (--local or --runner). It can only be used with remote generation."):r["dynamic-ir-only"]&&(r.local||r.runner!=null)?t.failWithoutThrowing("The --dynamic-ir-only flag is not supported with local generation (--local or --runner). It can only be used with remote generation."):r["dynamic-ir-only"]&&r.version==null?t.failWithoutThrowing("The --dynamic-ir-only flag requires a version to be specified with --version."):r["dynamic-ir-only"]&&r.docs!=null?t.failWithoutThrowing("The --dynamic-ir-only flag can only be used for API generation, not docs generation."):r.output!=null&&!r.preview?t.failWithoutThrowing("The --output flag currently only works with --preview."):r.output!=null&&r.docs!=null?t.failWithoutThrowing("The --output flag is not supported for docs generation."):r.api!=null?await qgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),cliContext:t,version:r.version,groupName:r.group,shouldLogS3Url:r.printZipUrl,keepDocker:r.keepDocker,useLocalDocker:r.local||r.runner!=null,preview:r.preview,mode:r.mode,force:r.force,runner:r.runner,inspect:!1,lfsOverride:r.lfsOverride,fernignorePath:r.fernignore,dynamicIrOnly:r["dynamic-ir-only"],outputDir:r.output}):r.docs!=null?(r.group!=null&&t.logger.warn("--group is ignored when generating docs"),r.version!=null&&t.logger.warn("--version is ignored when generating docs"),await jBE({project:await WO(t,{commandLineApiWorkspace:void 0,defaultToAllApiWorkspaces:!0},!0),cliContext:t,instance:r.instance,preview:r.preview,brokenLinks:r.brokenLinks,strictBrokenLinks:r.strictBrokenLinks,disableTemplates:r.disableSnippets,noPrompt:!r.prompt,skipUpload:r.skipUpload})):await qgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),cliContext:t,version:r.version,groupName:r.group,shouldLogS3Url:r.printZipUrl,keepDocker:r.keepDocker,useLocalDocker:r.local,preview:r.preview,mode:r.mode,force:r.force,runner:r.runner,inspect:!1,lfsOverride:r.lfsOverride,fernignorePath:r.fernignore,dynamicIrOnly:r["dynamic-ir-only"],outputDir:r.output}))}function Vr6(e,t){e.command("ir <path-to-output>","Generate IR (Intermediate Representation)",r=>r.positional("path-to-output",{type:"string",description:"Path to write intermediate representation (IR)",demandOption:!0}).option("api",{string:!0,description:"Only run the command on the provided API"}).option("version",{string:!0,description:"The version of IR to produce"}).option("language",{choices:Object.values(an.GenerationLanguage),description:"Generate IR for a particular language"}).option("audience",{type:"array",string:!0,default:[],description:"Filter the IR for certain audiences"}).option("smart-casing",{boolean:!0,description:"Whether to use smart casing"}).option("from-openapi",{boolean:!0,description:"Whether to use the new parser and go directly from OpenAPI to IR",default:!1}).option("disable-examples",{boolean:!0,description:"Whether to disable automatic example generation in the IR",default:!1}),async r=>{await BBE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1,sdkLanguage:r.language}),irFilepath:su(im(),r.pathToOutput),cliContext:t,generationLanguage:r.language,audiences:r.audience.length>0?{type:"select",audiences:r.audience}:{type:"all"},version:r.version,keywords:void 0,smartCasing:r.smartCasing??!1,readme:void 0,directFromOpenapi:r.fromOpenapi,disableExamples:r.disableExamples})})}function Wr6(e,t){e.command("openapi-ir <path-to-output>",!1,r=>r.positional("path-to-output",{type:"string",description:"Path to write intermediate representation (IR)",demandOption:!0}).option("language",{choices:Object.values(an.GenerationLanguage),description:"Generate IR for a particular language"}).option("api",{string:!0,description:"Only run the command on the provided API"}),async r=>{await qBE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1,sdkLanguage:r.language}),irFilepath:su(im(),r.pathToOutput),cliContext:t,sdkLanguage:r.language})})}function Gr6(e,t){e.command("dynamic-ir <path-to-output>",!1,r=>r.positional("path-to-output",{type:"string",description:"Path to write intermediate representation (IR)",demandOption:!0}).option("api",{string:!0,description:"Only run the command on the provided API"}).option("version",{string:!0,description:"The version of IR to produce"}).option("language",{choices:Object.values(an.GenerationLanguage),description:"Generate IR for a particular language"}).option("audience",{type:"array",string:!0,default:[],description:"Filter the IR for certain audiences"}).option("smart-casing",{boolean:!0,description:"Whether to use smart casing"}).option("disable-examples",{boolean:!0,description:"Whether to suppress examples from being included in the IR"}),async r=>{await EBE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1,sdkLanguage:r.language}),irFilepath:su(im(),r.pathToOutput),cliContext:t,generationLanguage:r.language,audiences:{type:"all"},version:r.version,keywords:void 0,smartCasing:r.smartCasing??!1,disableDynamicExamples:r.disableExamples??!1})})}function xr6(e,t){e.command("fdr <path-to-output>",!1,r=>r.positional("path-to-output",{type:"string",description:"Path to write FDR API definition",demandOption:!0}).option("api",{string:!0,description:"Only run the command on the provided API"}).option("audience",{type:"array",string:!0,default:[],description:"Filter the FDR API definition for certain audiences"}).option("v2",{boolean:!0,description:"Use v2 format"}).option("from-openapi",{boolean:!0,description:"Whether to use the new parser and go directly from OpenAPI to IR",default:!1}),async r=>{r.v2?await Tgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),outputFilepath:su(im(),r.pathToOutput),directFromOpenapi:!1,cliContext:t,audiences:r.audience.length>0?{type:"select",audiences:r.audience}:{type:"all"}}):r.fromOpenapi?await Tgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),outputFilepath:su(im(),r.pathToOutput),directFromOpenapi:!0,cliContext:t,audiences:r.audience.length>0?{type:"select",audiences:r.audience}:{type:"all"}}):await MBE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),outputFilepath:su(im(),r.pathToOutput),cliContext:t,audiences:r.audience.length>0?{type:"select",audiences:r.audience}:{type:"all"}})})}function Hr6(e,t){e.command(["register"],!1,r=>r.option("version",{type:"string",description:"The version for the registered api"}).option("api",{string:!0,description:"Only run the command on the provided API"}),async r=>{let i=await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),n=await t.runTask(a=>Z8(a));await eIE({project:i,cliContext:t,token:n,version:r.version})})}function Kr6(e,t){e.command(["register-v2"],!1,r=>r.option("api",{string:!0,description:"Only run the command on the provided API"}),async r=>{let i=await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),n=await t.runTask(a=>Z8(a));await tIE({project:i,cliContext:t,token:n})})}function Jr6(e,t){e.command("check","Validates your Fern Definition. Logs errors.",r=>r.option("api",{string:!0,description:"Only run the command on the provided API"}).option("warnings",{boolean:!0,description:"Log warnings in addition to errors.",default:!1}).option("broken-links",{boolean:!0,description:"Log a warning if there are broken links in the docs.",default:!1}).option("strict-broken-links",{boolean:!0,description:"Throw an error (rather than logging a warning) if there are broken links in the docs.",default:!1}).option("local",{boolean:!0,description:"Run validation locally without sending data to Fern API.",default:!1}).option("from-openapi",{boolean:!0,description:"Whether to use the new parser and go directly from OpenAPI to IR",default:!1}),async r=>{await uzE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0}),cliContext:t,logWarnings:r.warnings,brokenLinks:r.brokenLinks,errorOnBrokenLinks:r.strictBrokenLinks,directFromOpenapi:r.fromOpenapi})})}function $r6({cli:e,cliContext:t,onRun:r}){e.command("upgrade",`Upgrades Fern CLI version in ${D4}`,i=>i.option("rc",{boolean:!0,hidden:!0,default:!1}).option("version",{string:!0,description:"The version to upgrade to. Defaults to the latest release."}).option("to",{string:!0,hidden:!0}).option("from",{string:!0,description:"The version to migrate from. Use this to manually run migrations when upgrading from an older CLI version."}).option("from-git",{boolean:!0,hidden:!0}).option("yes",{alias:"y",boolean:!0,default:!1,description:"Automatically answer yes to migration prompts."}),async i=>{await rzE({cliContext:t,includePreReleases:i.rc,targetVersion:i.to??i.version,fromVersion:i.from,fromGit:i["from-git"],yes:i.yes}),r()})}function Yr6(e,t){e.command("downgrade <version>",`Downgrades Fern CLI version in ${D4}`,r=>r.positional("version",{type:"string",description:"The version to downgrade to",demandOption:!0}),async r=>{await TYh({cliContext:t,targetVersion:r.version})})}function Xr6(e,t){e.command("api update",`Pulls the latest OpenAPI spec from the specified origin in ${yD} and updates the local spec.`,r=>r.option("api",{string:!0,description:"The API to update the spec for. If not specified, all APIs with a declared origin will be updated."}).option("indent",{type:"number",description:"Indentation width in spaces (default: 2)",default:2}),async r=>{await t.instrumentPostHogEvent({command:"fern api update"}),await dIE({cliContext:t,project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0}),indent:r.indent})})}function Zr6(e,t){e.command("self-update [version]","Updates the globally installed Fern CLI to the latest version or the specified version",r=>r.positional("version",{type:"string",description:"The version to update to (e.g., 0.85.0, 10). Defaults to latest."}).option("dry-run",{type:"boolean",description:"Show what would be executed without actually running the update",default:!1}),async r=>{await t.instrumentPostHogEvent({command:"fern self-update"}),await oIE({cliContext:t,version:r.version,dryRun:r.dryRun})})}function kr6(e,t){e.command("login","Log in to Fern via GitHub",r=>r.option("device-code",{boolean:!0,default:!1,description:"Use device code authorization"}),async r=>{await t.runTask(async i=>{await t.instrumentPostHogEvent({command:"fern login"}),await txa(i,{useDeviceCodeFlow:r.deviceCode})})})}function ei6(e,t){e.command("logout","Log out of Fern",r=>r,async()=>{await t.runTask(async r=>{await t.instrumentPostHogEvent({command:"fern logout"}),await SFc(r)})})}function ti6(e,t){e.command("format","Formats your Fern Definition",r=>r.option("ci",{boolean:!0,default:!1,description:"Fail with non-zero exit status if files are not formatted correctly."}).option("api",{string:!0,description:"Only run the command on the provided API"}),async r=>{await t.instrumentPostHogEvent({command:"fern format"}),await WYh({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0}),cliContext:t,shouldFix:!r.ci})})}function ri6(e,t){e.command("test",!1,r=>r.option("api",{string:!0,description:"The API to mock."}).option("command",{string:!0,description:"The command to run to test your SDK."}).option("language",{choices:Object.values(an.GenerationLanguage),description:"Run the tests configured to a specific language"}),async r=>{await t.instrumentPostHogEvent({command:"fern test"}),await uIE({cliContext:t,project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1,nameOverride:".mock",sdkLanguage:r.language}),testCommand:r.command,generationLanguage:r.language})})}function ii6(e,t){e.command("mock",!1,r=>r.option("port",{number:!0,description:"The port the server binds to."}).option("api",{string:!0,description:"The API to mock."}),async r=>{await t.instrumentPostHogEvent({command:"fern mock"}),await $BE({cliContext:t,project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),port:r.port})})}function ni6(e,t){e.command("overrides","Commands for managing OpenAPI overrides",r=>(ai6(r,t),oi6(r,t),r))}function ai6(e,t){e.command("compare <original> <modified>","Compare two OpenAPI specs and generate an overrides file from the differences.",r=>r.positional("original",{type:"string",description:"Path to the original OpenAPI spec",demandOption:!0}).positional("modified",{type:"string",description:"Path to the modified OpenAPI spec",demandOption:!0}).option("output",{type:"string",alias:"o",description:"Path to write the overrides file (defaults to <original>-overrides.yml)"}),async r=>{await t.instrumentPostHogEvent({command:"fern overrides compare"});let i=su(im(),r.original),n=su(im(),r.modified),a=r.output!=null?su(im(),r.output):void 0;await RBE({originalPath:Ar.of(i),modifiedPath:Ar.of(n),outputPath:a!=null?Ar.of(a):void 0,cliContext:t})})}function oi6(e,t){e.command("write","Generate a basic openapi overrides file.",r=>[r.option("api",{string:!0,description:"Only run the command on the provided API"}),r.option("exclude-models",{boolean:!0,description:"When generating the initial overrides, also stub the models (in addition to the endpoints)",default:!1})],async r=>{await t.instrumentPostHogEvent({command:"fern overrides write"}),await zgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0}),includeModels:!r.excludeModels,cliContext:t})})}function ui6(e,t){e.command("write-overrides",!1,r=>[r.option("api",{string:!0,description:"Only run the command on the provided API"}),r.option("exclude-models",{boolean:!0,description:"When generating the initial overrides, also stub the models (in addition to the endpoints)",default:!1})],async r=>{t.logger.warn("The 'write-overrides' command is deprecated. Use 'fern overrides write' instead."),await t.instrumentPostHogEvent({command:"fern write-overrides"}),await zgp({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0}),includeModels:!r.excludeModels,cliContext:t})})}function si6(e,t){e.command("write-definition","Write underlying Fern Definition for OpenAPI specs and API Dependencies.",r=>r.option("api",{string:!0,description:"Only run the command on the provided API"}).option("language",{choices:Object.values(an.GenerationLanguage),description:"Write the definition for a particular SDK language"}).option("preserve-schemas",{string:!0,description:"Preserve potentially unsafe schema Ids in the generated fern definition"}),async r=>{let i=r.preserveSchemas!=null;await t.instrumentPostHogEvent({command:"fern write-definition"}),await szE({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!0,sdkLanguage:r.language,preserveSchemaIds:i}),cliContext:t,sdkLanguage:r.language,preserveSchemaIds:i})})}function ci6(e,t){e.command("docs","Commands for managing your docs",r=>(pi6(r,t),_i6(r,t),li6(r,t),r))}function li6(e,t){e.command("preview","Commands for managing preview deployments",r=>(fi6(r,t),di6(r,t),r))}function fi6(e,t){e.command("list","List all preview deployments",r=>r.option("limit",{type:"number",description:"Maximum number of preview deployments to display"}).option("page",{type:"number",description:"Page number for pagination (starts at 1)"}),async r=>{await t.instrumentPostHogEvent({command:"fern docs preview list"}),await mYh({cliContext:t,limit:r.limit,page:r.page})})}function di6(e,t){e.command("delete <url>","Delete a preview deployment",r=>r.positional("url",{type:"string",description:"The FQDN of the preview deployment to delete (e.g. acme-preview-abc123.docs.buildwithfern.com)",demandOption:!0}),async r=>{await t.instrumentPostHogEvent({command:"fern docs preview delete"}),await OYh({cliContext:t,previewUrl:r.url})})}function pi6(e,t){e.command("dev","Run a local development server to preview your docs",r=>r.option("port",{number:!0,description:"Run the development server on the following port"}).option("bundle-path",{string:!0,hidden:!0,description:"Path of the local docs bundle to use"}).option("broken-links",{boolean:!0,default:!1,description:"Check for broken links in your docs"}).option("beta",{boolean:!0,default:!1,description:"Run the app router development server"}).option("legacy",{boolean:!0,default:!1,description:"Run the legacy development server"}).option("backend-port",{number:!0,description:"Run the development backend server on the following port"}).option("force-download",{boolean:!0,default:!1,description:"Force re-download of the docs preview bundle by deleting the cached bundle"}),async r=>{r.beta&&t.logger.warn("--beta flag now accesses the same functionality as default and will be deprecated in a future release");let i;r.port!=null?i=r.port:i=await zoa({port:[3e3,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010]});let n;r.backendPort!=null?n=r.backendPort:n=await zoa({port:[3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011]});let a=r.bundlePath;await gYh({loadProject:()=>WO(t,{defaultToAllApiWorkspaces:!0,commandLineApiWorkspace:void 0}),cliContext:t,port:i,bundlePath:a,brokenLinks:r.brokenLinks,legacyPreview:r.legacy,backendPort:n,forceDownload:r.forceDownload})})}function _i6(e,t){e.command("broken-links","Check for broken links in your docs",r=>r.option("strict",{boolean:!0,default:!1,description:"Fail with non-zero exit status"}),async r=>{let i=await WO(t,{commandLineApiWorkspace:void 0,defaultToAllApiWorkspaces:!0});await izE({project:i,cliContext:t,errorOnBrokenLinks:r.strict})})}function hi6(e,t){e.command("jsonschema <path-to-output>","Generate JSON Schema for a specific type",r=>r.option("api",{string:!0,description:"Only run the command on the provided API"}).positional("path-to-output",{type:"string",description:"Path to write JSON Schema",demandOption:!0}).option("type",{string:!0,demandOption:!0,description:"The type to generate JSON Schema for (e.g. 'MySchema' or 'mypackage.MySchema')"}),async r=>{await t.instrumentPostHogEvent({command:"fern jsonschema",properties:{output:r.output}}),await WBE({typeLocator:r.type,project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),jsonschemaFilepath:su(im(),r.pathToOutput),cliContext:t})})}function yi6(e,t){e.command("write-docs-definition <output-path>",!1,r=>r.positional("output-path",{type:"string",description:"Path to write the docs definition",demandOption:!0}),async r=>{await t.instrumentPostHogEvent({command:"fern write-docs-definition",properties:{outputPath:r.outputPath}}),await fzE({project:await WO(t,{defaultToAllApiWorkspaces:!0,commandLineApiWorkspace:void 0}),outputPath:su(im(),r.outputPath),cliContext:t})})}function bi6(e,t){e.command("write-translation","Generate translation directories for each language defined in docs.yml",r=>r.option("stub",{alias:"s",type:"boolean",default:!1,description:"Return content as-is without calling the translation service"}),async r=>{await t.instrumentPostHogEvent({command:"fern write-translation"}),await BzE({project:await WO(t,{defaultToAllApiWorkspaces:!0,commandLineApiWorkspace:void 0}),cliContext:t,stub:r.stub})})}function vi6(e,t){e.command("export <output-path>","Export your API to an OpenAPI spec",r=>r.positional("output-path",{type:"string",description:"Path to write the OpenAPI spec",demandOption:!0}).option("api",{string:!0,description:"Only run the command on the provided API"}).option("indent",{type:"number",description:"Indentation width in spaces (default: 2)",default:2}),async r=>{await t.instrumentPostHogEvent({command:"fern export",properties:{outputPath:r.outputPath}}),await VYh({project:await WO(t,{commandLineApiWorkspace:r.api,defaultToAllApiWorkspaces:!1}),cliContext:t,outputPath:su(im(),r.outputPath),indent:r.indent})})}function gi6(e,t){e.command("v2",!1,r=>r.help(!1).version(!1).strict(!1).parserConfiguration({"unknown-options-as-args":!0}),async r=>{try{let i=r._.slice(1).map(String);await thc(i)}catch(i){t.logger.error("CLI v2 failed:",String(i)),t.failWithoutThrowing()}})}function Oi6(e,t){e.command("protoc-gen-fern",!1,r=>{},async()=>{let r=Sxc,i=await mi6(process.stdin),n=$Ua(G0p,i),a=r.run(n);await Ai6(process.stdout,aic(gTo,a)),process.exit(0)})}function mi6(e){return new Promise((t,r)=>{let i=[];e.on("data",n=>i.push(n)),e.on("end",()=>{t(new Uint8Array(Buffer.concat(i)))}),e.on("error",n=>{r(n)})})}function Ai6(e,t){return new Promise((r,i)=>{e.write(t,n=>{n?i(n):r()})})}
|