fern-api 5.35.3 → 5.35.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.cjs +6 -6
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -3047,7 +3047,7 @@ ${o.mark.snippet}`)),o.mark!=null&&(o.reason==="bad indentation of a mapping ent
3047
3047
 
3048
3048
  Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in quotes.
3049
3049
  Example: package-name: "@scope/package"`)}t.failAndThrow(a,void 0,{code:R.Code.ConfigError})}else throw o}}async function G3({absolutePathToWorkspace:e,context:t,lenient:r}){let n=await Wtt({absolutePathToWorkspace:e,context:t,lenient:r});if(n==null)return;let i=await P$({absolutePathToWorkspace:e});if(i!=null)return yuc({absolutePathToGeneratorsConfiguration:i,rawGeneratorsConfiguration:n,context:t})}async function P$({absolutePathToWorkspace:e}){let t=nt(e,Ne.of(hf)),r=nt(e,Ne.of(hKe));if(await cr(t))return t;if(await cr(r))return r}nr();var Htt=xe(require("path"),1),Duc=require("url");var Suc=xe(require("process"),1),Tuc=xe(require("path"),1),lQr=xe(require("fs"),1),Buc=require("url");var Mlo=class{value;next;constructor(t){this.value=t}},DLt=class{#e;#t;#r;constructor(){this.clear()}enqueue(t){let r=new Mlo(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#r--,this.#e||(this.#t=void 0),t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}*drain(){for(;this.#e;)yield this.dequeue()}};function cQr(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new DLt,r=0,n=()=>{r--,t.size>0&&t.dequeue()()},i=async(a,c,u)=>{r++;let l=(async()=>a(...u))();c(l);try{await l}catch{}n()},o=(a,c,u)=>{t.enqueue(i.bind(void 0,a,c,u)),(async()=>(await Promise.resolve(),r<e&&t.size>0&&t.dequeue()()))()},s=(a,...c)=>new Promise(u=>{o(a,u,c)});return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),s}var uQr=class extends Error{constructor(t){super(),this.value=t}},PGf=async(e,t)=>t(await e),DGf=async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new uQr(t[0]);return!1};async function Llo(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){let i=cQr(r),o=[...e].map(a=>[a,i(PGf,a,t)]),s=cQr(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(a=>s(DGf,a)))}catch(a){if(a instanceof uQr)return a.value;throw a}}var Ouc={directory:"isDirectory",file:"isFile"};function RGf(e){if(!Object.hasOwnProperty.call(Ouc,e))throw new Error(`Invalid type specified: ${e}`)}var FGf=(e,t)=>t[Ouc[e]](),kGf=e=>e instanceof URL?(0,Buc.fileURLToPath)(e):e;async function zlo(e,{cwd:t=Suc.default.cwd(),type:r="file",allowSymlinks:n=!0,concurrency:i,preserveOrder:o}={}){RGf(r),t=kGf(t);let s=n?lQr.promises.stat:lQr.promises.lstat;return Llo(e,async a=>{try{let c=await s(Tuc.default.resolve(t,a));return FGf(r,c)}catch{return!1}},{concurrency:i,preserveOrder:o})}var Puc=xe(require("fs"),1);var NGf=e=>e instanceof URL?(0,Duc.fileURLToPath)(e):e,jGf=Symbol("findUpStop");async function QGf(e,t={}){let r=Htt.default.resolve(NGf(t.cwd)||""),{root:n}=Htt.default.parse(r),i=Htt.default.resolve(r,t.stopAt||n),o=t.limit||Number.POSITIVE_INFINITY,s=[e].flat(),a=async u=>{if(typeof e!="function")return zlo(s,u);let l=await e(u.cwd);return typeof l=="string"?zlo([l],u):l},c=[];for(;;){let u=await a({...t,cwd:r});if(u===jGf||(u&&c.push(Htt.default.resolve(r,u)),r===i||c.length>=o))break;r=Htt.default.dirname(r)}return c}async function zd(e,t={}){return(await QGf(e,{...t,limit:1}))[0]}async function tA(e){let t=await zd(e??z0,{type:"directory"});if(t==null)return;let r=Ht.of(t);if(await cr(nt(r,Ne.of(VE))))return r}nr();function Ruc({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(o){let s=(a,c)=>{for(let{name:u,visitors:l}of r){let p=l.definitionFile?.[o];if(p!=null){let d=p(a,{relativeFilepath:e,contents:t});n(d.map(f=>({name:u,severity:f.severity,relativeFilepath:e,nodePath:c,message:f.message})))}}};return{[o]:s}}return{...i("docs"),...i("import"),...i("typeReference"),...i("typeDeclaration"),...i("typeName"),...i("httpService"),...i("httpEndpoint"),...i("pathParameter"),...i("queryParameter"),...i("streamCondition"),...i("header"),...i("webhookSignature"),...i("errorDeclaration"),...i("errorReference"),...i("exampleType"),...i("exampleTypeReference"),...i("exampleHttpEndpointCall"),...i("exampleCodeSample"),...i("exampleHeaders"),...i("examplePathParameters"),...i("exampleQueryParameters"),...i("exampleRequest"),...i("exampleResponse"),...i("variableReference"),...i("extension"),...i("serviceBaseUrl"),...i("endpointBaseUrl"),...i("exampleError")}}function Fuc({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(o){let s=(a,c)=>{for(let{name:u,visitors:l}of r){let p=l.packageMarker?.[o];if(p!=null){let d=p(a,{relativeFilepath:e,contents:t});n(d.map(f=>({name:u,severity:f.severity,relativeFilepath:e,nodePath:c,message:f.message})))}}};return{[o]:s}}return{...i("export"),...i("navigation")}}function kuc({relativeFilepath:e,contents:t,allRuleVisitors:r,addViolations:n}){function i(o){let s=(a,c)=>{for(let{name:u,visitors:l}of r){let p=l.rootApiFile?.[o];if(p!=null){let d=p(a,{relativeFilepath:e,contents:t});n(d.map(f=>({name:u,severity:f.severity,relativeFilepath:e,nodePath:c,message:f.message})))}}};return{[o]:s}}return{...i("file"),...i("oauth"),...i("defaultEnvironment"),...i("environment"),...i("errorDiscrimination"),...i("errorReference"),...i("variableDeclaration"),...i("variableReference"),...i("pathParameter")}}var Ulo={name:"content-type-only-for-multipart",DISABLE_RULE:!1,create:()=>({definitionFile:{httpEndpoint:({endpoint:e})=>{if(e.request==null)return[];if($2e(e.request)!=null)return[];if(typeof e.request!="string"&&e.request.body!=null&&Wg(e.request.body)){let r=[];for(let[n,i]of Object.entries(e.request.body.properties??{}))typeof i!="string"&&i["content-type"]!=null&&r.push({severity:"fatal",message:`${n} has content-type, but the request is not multipart`});return r}return[]}}})};Ut();ao();Ut();function RLt({rawApiFileSchema:e,casingsGenerator:t}){if(e.auth==null)return{docs:void 0,requirement:Qx.All,schemes:[]};let r=typeof e.auth!="string"?e.auth.docs:void 0;return rNe(e.auth,{single:n=>{let i=Nuc({reference:n,authSchemeDeclarations:e["auth-schemes"],casingsGenerator:t});return{docs:r,requirement:Qx.All,schemes:[i]}},any:({any:n})=>({docs:r,requirement:Qx.Any,schemes:n.map(i=>Nuc({reference:i,authSchemeDeclarations:e["auth-schemes"],casingsGenerator:t}))}),endpointSecurity:()=>({docs:r,requirement:Qx.EndpointSecurity,schemes:[]})})}function Nuc({reference:e,authSchemeDeclarations:t,casingsGenerator:r}){let n=(o,s)=>{let a=t?.[o];if(a==null)throw new Error("Unknown auth scheme: "+o);let c=s??(typeof a=="object"?a.docs:void 0);return nNe(a,{header:u=>mf.header({key:o,docs:c,name:r.generateNameAndWireValue({name:u.name??o,wireValue:u.header}),valueType:_r.primitive({v1:ws.String,v2:ai.string({default:void 0,validation:void 0})}),prefix:u.prefix,headerEnvVar:u.env,headerPlaceholder:u.placeholder}),basic:u=>juc({key:o,casingsGenerator:r,docs:c,rawScheme:u}),tokenBearer:u=>pQr({key:o,casingsGenerator:r,docs:c,rawScheme:u}),inferredBearer(u){return pQr({key:o,casingsGenerator:r,docs:c,rawScheme:void 0})},oauth:u=>pQr({key:o,casingsGenerator:r,docs:c,rawScheme:void 0})})},i=typeof e=="string"?e:e.scheme;switch(i){case"bearer":case"oauth":return pQr({key:i,casingsGenerator:r,docs:void 0,rawScheme:void 0});case"basic":return juc({key:i,casingsGenerator:r,docs:void 0,rawScheme:void 0});default:return n(i,typeof e!="string"?e.docs:void 0)}}function pQr({key:e,casingsGenerator:t,docs:r,rawScheme:n}){return mf.bearer({key:e,docs:r,token:t.generateName(n?.token?.name??"token"),tokenEnvVar:n?.token?.env,tokenPlaceholder:n?.token?.placeholder})}function juc({key:e,casingsGenerator:t,docs:r,rawScheme:n}){return mf.basic({key:e,docs:r,username:t.generateName(n?.username?.name??"username"),usernameEnvVar:n?.username?.env,usernameOmit:n?.username?.omit,usernamePlaceholder:n?.username?.placeholder,password:t.generateName(n?.password?.name??"password"),passwordEnvVar:n?.password?.env,passwordOmit:n?.password?.omit,passwordPlaceholder:n?.password?.placeholder})}function J0(e){let t=LGf(e),{value:r,done:n}=_lo(t,"{");return n?{head:r,parts:[]}:{head:r,parts:[...MGf(t)]}}function*MGf(e){let t;do{let{value:r}=_lo(e,"}"),n=_lo(e,"{");t=n.done,yield{pathParameter:r,tail:n.value}}while(!t)}function*LGf(e){for(let t of e)yield t}function _lo(e,t){let r="",n=e.next();for(;n.done!==!0&&n.value!==t;)r+=n.value,n=e.next();return{value:r,done:n.done??!1}}ao();function FLt({rawApiFileSchema:{"default-environment":e,environments:t},casingsGenerator:r}){if(t==null)return;let n=Object.values(t)[0];if(n!=null)return{environmentsConfig:{defaultEnvironment:e??void 0,environments:yY(n,{singleBaseUrl:()=>k0.singleBaseUrl(zGf({environments:t,casingsGenerator:r})),multipleBaseUrls:i=>k0.multipleBaseUrls(UGf({baseUrls:Object.keys(i.urls),environments:t,casingsGenerator:r}))})},audiences:{...Object.fromEntries(Object.entries(t).map(([i,o])=>[i,yY(o,{singleBaseUrl:s=>[...typeof s=="string"?[]:s.audiences??[]],multipleBaseUrls:s=>[...s.audiences??[]]})]))}}}function zGf({environments:e,casingsGenerator:t}){return{environments:Object.entries(e).map(([r,n])=>yY(n,{singleBaseUrl:i=>{let o=typeof i=="string",s=o?void 0:i["default-url"],a=o?void 0:i["url-template"],c=o?void 0:i.variables;return{docs:o?void 0:i.docs,id:r,name:t.generateName(r),url:fQr(o?i:i.url),audiences:o?void 0:i.audiences,defaultUrl:s?fQr(s):void 0,urlTemplate:a,urlVariables:c?.map(u=>({id:u.id,name:t.generateName(u.id),default:u.default,values:u.values}))}},multipleBaseUrls:()=>{throw new Error(`Environment ${r} has multiple base URLs`)}}))}}function UGf({baseUrls:e,environments:t,casingsGenerator:r}){return{baseUrls:e.map(n=>({id:n,name:r.generateName(n)})),environments:Object.entries(t).map(([n,i])=>yY(i,{multipleBaseUrls:o=>{let s=o["url-templates"],a=o["default-urls"],c=o.variables,u=s&&Object.keys(s).length>0?s:void 0,l=a&&Object.keys(a).length>0?Ip(a,d=>fQr(d)):void 0,p=c&&Object.keys(c).length>0?Object.fromEntries(Object.entries(c).map(([d,f])=>[d,f.map(m=>({id:m.id,name:r.generateName(m.id),default:m.default,values:m.values}))])):void 0;return{docs:o.docs,id:n,name:r.generateName(n),urls:Ip(o.urls,d=>fQr(d)),audiences:o.audiences,defaultUrls:l,urlTemplates:u,urlVariables:p}},singleBaseUrl:()=>{throw new Error(`Environment ${n} does not have multiple base URLs`)}}))}}function fQr(e){return e.endsWith("/")?e.slice(0,-1):e}jt();function hve(e){let t=2166136261;function r(o){t^=o,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24),t>>>=0}function n(o){for(let s=0,a=o.length;s<a;s++)r(o.charCodeAt(s))}function i(o,s){if(typeof o=="object"&&o!=null){if(s>64){n("[MaxDepthExceeded]");return}if(Array.isArray(o)){r(91);for(let a=0;a<o.length;a++)a>0&&r(44),i(o[a],s+1);r(93)}else{r(123);let a=Object.keys(o).sort(),c=a.length;for(let u=0;u<c;u++)u>0&&r(44),n(a[u]??""),r(58),i(o[a[u]??""],s+1);r(125)}}else n(String(o))}return i(e,0),t.toString(16)}function D$({typeReference:e,typeDeclarations:t}){if(e.type==="container"&&e.container.type==="optional")return!0;if(e.type==="named"){let r=t?.[e.typeId];if(r?.shape.type==="alias"&&r?.shape.resolvedType.type==="container"&&r?.shape.resolvedType.container.type==="optional")return!0}return!1}ao();ao();var Quc={[zn.GenerationLanguage.PHP]:new Set(["abstract","and","as","break","callable","case","catch","class","clone","const","continue","declare","default","do","echo","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","final","finally","fn","for","foreach","function","global","goto","list","if","implements","include","include_once","instanceof","insteadof","interface","match","namespace","new","or","parent","Parent","print","private","protected","public","readonly","require","require_once","return","static","switch","throw","trait","try","use","var","while","xor","yield"].flatMap(e=>[e,nl(e)])),[zn.GenerationLanguage.TYPESCRIPT]:new Set(["any","as","boolean","break","case","catch","class","const","constructor","continue","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","instanceof","interface","let","module","new","null","number","of","package","private","protected","public","require","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","var","void","while","with","yield","Date","Error","File","Object","Record"]),[zn.GenerationLanguage.JAVA]:new Set(["abstract","assert","boolean","break","byte","case","catch","char","class","const","continue","default","do","double","else","enum","extends","false","final","finally","float","for","goto","if","implements","import","instanceof","int","interface","long","native","new","null","package","private","protected","public","return","short","static","strictfp","super","switch","synchronized","this","throw","throws","transient","true","try","void","volatile","while"]),[zn.GenerationLanguage.PYTHON]:new Set(["False","None","True","and","as","assert","async","","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","raise","return","try","while","with","yield","float","int","complex","bool","uuid","list","set","map","long","self","all","kwargs"]),[zn.GenerationLanguage.GO]:new Set(["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","internal","map","package","range","return","select","struct","switch","type","var","vendor","any","bool","byte","complex64","complex128","error","float32","float64","int","int8","int16","int32","int64","make","new","rune","string","uint","uint8","uint16","uint32","uint64","uintptr"]),[zn.GenerationLanguage.RUBY]:new Set(["__ENCODING__","__LINE__","__FILE__","alias","and","begin","break","case","class","def","defined","do","else","elsif","end","ensure","false","for","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","Object","JSON","Date","DateTime","object_id","hash","eql?","equal?","method","send","respond_to?","respond_to_missing?","instance_of?","kind_of?","is_a?","extend","singleton_class","instance_variables","instance_variable_get","instance_variable_set","instance_variable_defined?","remove_instance_variable","public_methods","private_methods","protected_methods","singleton_methods"]),[zn.GenerationLanguage.CSHARP]:new Set(["abstract","as","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","else","enum","event","explicit","extern","false","finally","fixed","float","for","foreach","goto","if","implicit","in","int","interface","internal","is","lock","long","namespace","new","null","object","operator","out","override","params","private","protected","public","readonly","ref","return","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","virtual","void","volatile","while","add","and","alias","ascending","args","async","","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","managed","nameof","nint","not","notnull","nuint","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value","var","when","where","with","yield"]),[zn.GenerationLanguage.RUST]:new Set(["as","async","await","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","Self","static","struct","super","trait","true","type","union","unsafe","use","where","while","abstract","become","box","do","final","macro","override","priv","try","typeof","unsized","virtual","yield","bool","char","f32","f64","i8","i16","i32","i64","i128","isize","str","u8","u16","u32","u64","u128","usize","String","Vec","Option","Result","Box","Rc","Arc","Cell","RefCell","HashMap","HashSet","BTreeMap","BTreeSet"]),[zn.GenerationLanguage.SWIFT]:new Set([])};var _Gf=["go","ruby"];function Ktt(e,t,r){let{generationLanguage:n,keywords:i,smartCasing:o}=r,s=XGf(e),a=A=>({unsafeName:A,safeName:VGf({name:A,keywords:qGf({generationLanguage:n,keywords:i})})}),c=t.preserveUnderscores===!0,u=c?(A,y)=>Vlo(A,y):(A,y)=>y(A),l=u(s,si),p=c?Vlo(s,A=>nl(si(A))):nl(l),d=u(s,I2e),{leading:f,trailing:m}=c?Muc(s):{leading:"",trailing:""},h=jPt(l);if(o){!HGf(h)&&(n==null||_Gf.includes(n))&&(l=f+h.map((y,I)=>{if(I>0){let w=dQr(y);if(w!=null)return w;if(mQr(y))return y.toUpperCase()}return y}).join("")+m,p=nl(f+h.map((y,I)=>{let w=dQr(y);return w??(mQr(y)?y.toUpperCase():I===0?nl(y):y)}).join("")+m));let A=y=>y.split(" ").map(I=>I.split(/(\d+)/).map(I2e).join("")).join("_");d=c?Vlo(s,A):A(s)}return{originalName:e,camelCase:a(t.casingOverrides?.camel??l),snakeCase:a(t.casingOverrides?.snake??d),screamingSnakeCase:a(t.casingOverrides?.["screaming-snake"]??d.toUpperCase()),pascalCase:a(t.casingOverrides?.pascal??p)}}function rS({generationLanguage:e,keywords:t,smartCasing:r}){let n={generationLanguage:e,keywords:t,smartCasing:r};return{generateName:(i,o)=>o?.casingOverrides!=null?Ktt(i,o,n):i,generateNameAndWireValue:({name:i,wireValue:o,opts:s})=>s?.casingOverrides!=null?{wireValue:o,name:Ktt(i,s,n)}:o===i?o:{wireValue:o,name:i}}}function gve({generationLanguage:e,keywords:t,smartCasing:r}){let n={generationLanguage:e,keywords:t,smartCasing:r};return{generateName:(i,o)=>{if(typeof i=="string")return Ktt(i,o??{},n);if("wireValue"in i){let s=i.name;return typeof s=="string"?Ktt(s,o??{},n):s}return i},generateNameAndWireValue:(i,o)=>{if(typeof i=="string")return{wireValue:i,name:Ktt(i,o??{},n)};let{name:s,wireValue:a}=i,c=typeof s=="string"?Ktt(s,o??{},n):s;return{wireValue:a,name:c}}}}function VGf({name:e,keywords:t}){return t==null?e:t.has(e)?e+"_":WGf(e)?"_"+e:e}function qGf({generationLanguage:e,keywords:t}){if(t!=null)return new Set(t);if(e!=null)return Quc[e]}var GGf=/^[0-9]/;function WGf(e){return GGf.test(e)}function HGf(e){return e.some((t,r)=>{if(r===0)return!1;let n=e[r-1];if(n==null)return!1;let i=dQr(n)!=null||mQr(n),o=dQr(t)!=null||mQr(t);return i&&o})}function dQr(e){return JGf.get(e.toUpperCase())}function mQr(e){return KGf.has(e.toUpperCase())}var KGf=new Set(["ACL","API","ASCII","CPU","CSS","DNS","EOF","GUID","HTML","HTTP","HTTPS","ID","IP","JSON","LHS","QPS","RAM","RHS","RPC","SAML","SCIM","SLA","SMTP","SQL","SSH","SSO","TCP","TLS","TTL","UDP","UI","UID","UUID","URI","URL","UTF8","VM","XML","XMPP","XSRF","XSS"]),JGf=new Map([["ACLS","ACLs"],["APIS","APIs"],["CPUS","CPUs"],["GUIDS","GUIDs"],["IDS","IDs"],["UIDS","UIDs"],["UUIDS","UUIDs"],["URIS","URIs"],["URLS","URLs"]]),YGf=[[/\[\]/g,"Array"]];function XGf(e){return YGf.reduce((t,[r,n])=>t.replace(r,n),e)}function Muc(e){let t=e.match(/^(_+)/),r=e.match(/(_+)$/),n=t?.[1]??"",i=r?.[1]??"";if(n.length+i.length>=e.length)return{leading:e,trailing:"",core:""};let o=e.slice(n.length,e.length-i.length||void 0);return{leading:n,trailing:i,core:o}}function Vlo(e,t){let{leading:r,trailing:n,core:i}=Muc(e);return r===""&&n===""?t(e):`${r}${t(i)}${n}`}function ZGf(e){return"wireValue"in e&&!("originalName"in e)}function hQr(e){return typeof e=="string"?e:ZGf(e)?e.name:e}function qr(e){let t=hQr(e);return typeof t=="string"?t:t.originalName}function or(e){return typeof e=="string"?e:e.wireValue}function gQr(e){return typeof e=="string"?e:e.name}function Glo(e){let t=hQr(e);return typeof t=="string"?Wlo().generateName(t).snakeCase.unsafeName:t.snakeCase.unsafeName}var qlo;function Wlo(){return qlo==null&&(qlo=gve({generationLanguage:void 0,keywords:void 0,smartCasing:!0})),qlo}function Hlo(e){let t=hQr(e);return typeof t=="string"?Wlo().generateName(t).camelCase.unsafeName:t.camelCase.unsafeName}function kLt(e){let t=hQr(e);return typeof t=="string"?Wlo().generateName(t).pascalCase.unsafeName:t.pascalCase.unsafeName}jt();function Luc({fieldName:e,containerType:t,maxDepth:r,currentDepth:n,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s}){if(n>=r)return EW({containerType:t});switch(t.type){case"list":{let a=ym({fieldName:e,typeReference:t.list,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s});return a.type==="failure"?EW({containerType:t}):{type:"success",example:sl.list({list:[a.example,a.example],itemType:t.list}),jsonExample:[a.jsonExample,a.jsonExample]}}case"literal":return{type:"success",example:sl.literal({literal:t.literal._visit({boolean:a=>Mi.boolean(a),string:a=>Mi.string({original:a}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:t.literal._visit({boolean:a=>a,string:a=>a,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":{if(o)return EW({containerType:t});let a=ym({fieldName:e,typeReference:t.optional,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s});return a.type==="failure"?EW({containerType:t}):{type:"success",example:sl.optional({optional:a.example,valueType:t.optional}),jsonExample:a.jsonExample}}case"nullable":{if(o)return EW({containerType:t});let a=ym({fieldName:e,typeReference:t.nullable,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s});return a.type==="failure"?EW({containerType:t}):{type:"success",example:sl.nullable({nullable:a.example,valueType:t.nullable}),jsonExample:a.jsonExample}}case"set":{let a=ym({fieldName:e,typeReference:t.set,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s});return a.type==="failure"?EW({containerType:t}):{type:"success",example:sl.set({set:[a.example],itemType:t.set}),jsonExample:[a.jsonExample]}}case"map":{let a=ym({fieldName:e,typeReference:t.keyType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s}),c=ym({fieldName:e,typeReference:t.valueType,maxDepth:r,currentDepth:n+1,typeDeclarations:i,skipOptionalProperties:o,visitedTypes:s});return a.type==="failure"||c.type==="failure"?EW({containerType:t}):{type:"success",example:sl.map({map:[{key:a.example,value:c.example}],keyType:t.keyType,valueType:t.valueType}),jsonExample:{[a.jsonExample]:c.jsonExample}}}default:we(t)}}function EW({containerType:e}){switch(e.type){case"list":return{type:"success",example:sl.list({list:[],itemType:e.list}),jsonExample:[]};case"literal":return{type:"success",example:sl.literal({literal:e.literal._visit({boolean:t=>Mi.boolean(t),string:t=>Mi.string({original:t}),_other:()=>{throw new Error("Encountered unknown literal type")}})}),jsonExample:e.literal._visit({boolean:t=>t,string:t=>t,_other:()=>{throw new Error("Encountered unknown literal type")}})};case"optional":return{type:"success",example:sl.optional({optional:void 0,valueType:e.optional}),jsonExample:void 0};case"nullable":return{type:"success",example:sl.nullable({nullable:void 0,valueType:e.nullable}),jsonExample:void 0};case"set":return{type:"success",example:sl.set({set:[],itemType:e.set}),jsonExample:[]};case"map":return{type:"success",example:sl.map({map:[],keyType:e.keyType,valueType:e.valueType}),jsonExample:{}};default:we(e)}}jt();function Klo({fieldName:e,primitiveType:t}){switch(t.v1){case"STRING":return n9f({fieldName:e,default_:$Gf(t.v2),validation:e9f(t.v2)});case"BASE_64":return{type:"success",example:Mi.base64(Ki.BASE64),jsonExample:Ki.BASE64};case"BOOLEAN":return{type:"success",example:Mi.boolean(Ki.BOOLEAN),jsonExample:Ki.BOOLEAN};case"DATE":return{type:"success",example:Mi.date(Ki.DATE),jsonExample:Ki.DATE};case"DATE_TIME":return{type:"success",example:Mi.datetime({datetime:new Date(Ki.DATE_TIME),raw:Ki.DATE_TIME}),jsonExample:Ki.DATE_TIME};case"DOUBLE":return i9f({fieldName:e,validation:t9f(t.v2)});case"FLOAT":return{type:"success",example:Mi.float(Ki.FLOAT),jsonExample:Ki.FLOAT};case"INTEGER":return o9f({fieldName:e,validation:r9f(t.v2)});case"UINT_64":return{type:"success",example:Mi.uint64(Ki.INT64),jsonExample:Ki.INT64};case"UINT":return{type:"success",example:Mi.uint(Ki.UINT),jsonExample:Ki.UINT};case"BIG_INTEGER":return{type:"success",example:Mi.bigInteger(Ki.INT64.toString()),jsonExample:`${Ki.INT64}`};case"LONG":return{type:"success",example:Mi.long(Ki.INT64),jsonExample:Ki.INT64};case"UUID":return{type:"success",example:Mi.uuid(Ki.UUID),jsonExample:Ki.UUID};case"DATE_TIME_RFC_2822":return{type:"success",example:Mi.datetimeRfc2822({datetime:new Date(Ki.DATE_TIME_RFC_2822),raw:Ki.DATE_TIME_RFC_2822}),jsonExample:Ki.DATE_TIME_RFC_2822};default:we(t.v1)}}function $Gf(e){if(e?.type==="string")return e.default}function e9f(e){if(e?.type==="string")return e.validation}function t9f(e){if(e?.type==="double")return e.validation}function r9f(e){if(e?.type==="integer")return e.validation}function zuc(e){if(e<=0)return"";if(e<=Ki.SAMPLE_STRINGS.length){let t=Ki.SAMPLE_STRINGS[e-1];if(t)return t;throw new Error(`Unexpected undefined value in SAMPLE_STRINGS at index ${e-1}`)}return Ki.SAMPLE_STRINGS[Ki.SAMPLE_STRINGS.length-1]+".".repeat(e-Ki.SAMPLE_STRINGS.length)}function n9f({fieldName:e,default_:t,validation:r}){if(t!=null)return{type:"success",example:Mi.string({original:t}),jsonExample:t};if(r){let i=r.minLength,o=r.maxLength;if(i){let s=zuc(i);return{type:"success",example:Mi.string({original:s}),jsonExample:s}}else if(o!=null&&o<10){let s=zuc(o);return{type:"success",example:Mi.string({original:s}),jsonExample:s}}}let n=e??Ki.STRING;return{type:"success",example:Mi.string({original:n}),jsonExample:n}}function i9f({fieldName:e,validation:t}){if(t){let r=t.max,n=t.min;if(r)return{type:"success",example:Mi.double(r),jsonExample:r};if(n)return{type:"success",example:Mi.double(n),jsonExample:n}}return{type:"success",example:Mi.double(Ki.DOUBLE),jsonExample:Ki.DOUBLE}}function o9f({fieldName:e,validation:t}){if(t){let r=t.max,n=t.min;if(r)return{type:"success",example:Mi.integer(r),jsonExample:r};if(n)return{type:"success",example:Mi.integer(n),jsonExample:n}}return{type:"success",example:Mi.integer(Ki.INT),jsonExample:Ki.INT}}function s9f(e,t){if(e.type==="primitive"||e.type==="container"&&e.container.type==="literal")return!0;if(e.type==="named"){let r=t[e.typeId];if(r!=null&&r.shape.type==="enum")return!0}return!1}function nLe({fieldName:e,typeDeclarations:t,typeDeclaration:r,maxDepth:n,currentDepth:i,skipOptionalProperties:o,visitedTypes:s}){switch(r.shape.type){case"alias":{let a=ym({fieldName:e,typeDeclarations:t,typeReference:r.shape.aliasOf,maxDepth:n,currentDepth:i,skipOptionalProperties:o,visitedTypes:s});if(a.type==="failure")return a;let{example:c,jsonExample:u}=a;return{type:"success",example:Ku.alias({value:c}),jsonExample:u}}case"enum":{let a=r.shape.values[0];return a==null?{type:"failure",message:"No enum values present"}:{type:"success",example:Ku.enum({value:a.name}),jsonExample:or(a.name)}}case"object":{let a={},c=[];if((r.shape.extendedProperties==null||r.shape.extendedProperties.length===0)&&r.shape.extends!=null)for(let d of r.shape.extends){let f=t[d.typeId];if(f==null)continue;let m=nLe({fieldName:e,typeDeclaration:f,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});m!=null&&m.type==="success"&&m.example.type==="object"&&(Object.assign(a,m.jsonExample),c.push(...m.example.properties))}let u=a9f({fieldName:e,typeDeclaration:r,objectTypeDeclaration:r.shape,typeDeclarations:t,currentDepth:i,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});if(u.type==="failure")return u;let{example:l,jsonExample:p}=u;return{type:"success",example:Ku.object({properties:[...c,...l.properties],extraProperties:l.extraProperties}),jsonExample:Object.assign({},a,p)}}case"undiscriminatedUnion":{let a=r.shape.members;if(a.every(l=>s9f(l.type,t))){let l=a.findIndex(p=>{if(p.type.type==="container"&&p.type.container.type==="literal")return!0;if(p.type.type==="named"){let d=t[p.type.typeId];if(d!=null&&d.shape.type==="enum")return d.shape.values.length>0}return!1});if(l!==-1){let p=a[l];if(p!=null){let d=ym({fieldName:e,typeReference:p.type,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});if(d.type==="success"){let{example:f,jsonExample:m}=d;return{type:"success",example:Ku.undiscriminatedUnion({index:l,singleUnionType:f}),jsonExample:m}}}}}let u=0;for(let l of a){let p=ym({fieldName:e,typeReference:l.type,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});if(p.type==="failure"){++u;continue}let{example:d,jsonExample:f}=p;return{type:"success",example:Ku.undiscriminatedUnion({index:u,singleUnionType:d}),jsonExample:f}}break}case"union":{let a=r.shape.discriminant,c={};if(r.shape.baseProperties!=null)for(let p of r.shape.baseProperties){let d=ym({fieldName:or(p.name),typeReference:p.valueType,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});d.type==="success"&&(c[or(p.name)]=d.jsonExample)}let u=r.shape.baseProperties.map(p=>{let d=ym({fieldName:or(p.name),typeReference:p.valueType,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});if(d.type==="failure")throw new Error(`Failed to generate example for union base property ${or(p.name)}`);let{example:f}=d;return{name:p.name,value:f}}),l=r.shape.extends.flatMap(p=>{let d=t[p.typeId];if(d==null)throw new Error(`Failed to find extended type declaration with id ${p.typeId}`);let f=nLe({fieldName:e,typeDeclaration:d,typeDeclarations:t,currentDepth:i+1,maxDepth:n,skipOptionalProperties:o,visitedTypes:s});if(f==null||f.type==="failure")throw new Error(`Failed to generate example for extended type declaration ${d.name.typeId}`);if(f.example.type!=="object")throw new Error(`Extended type declaration ${d.name.typeId} is not an object`);return f.example.properties});for(let p of r.shape.types){let d=p.shape._visit({noProperties:()=>({type:"success",example:Ku.union({discriminant:a,singleUnionType:{wireDiscriminantValue:p.discriminantValue,shape:ir.ExampleSingleUnionTypeProperties.noProperties()},baseProperties:u,extendProperties:l}),jsonExample:{[or(a)]:or(p.discriminantValue),...c}}),samePropertiesAsObject:f=>{let m=t[f.typeId];if(m==null)return{type:"failure",message:`Failed to find type declaration with id ${f.typeId}`};let h=nLe({currentDepth:i,maxDepth:n,fieldName:e,typeDeclaration:m,typeDeclarations:t,skipOptionalProperties:o,visitedTypes:s});if(h==null)return{type:"failure",message:"Failed to generate example for type reference"};if(h.type==="failure")return h;let{example:A,jsonExample:y}=h;return{type:"success",example:Ku.union({discriminant:a,singleUnionType:{wireDiscriminantValue:p.discriminantValue,shape:ir.ExampleSingleUnionTypeProperties.samePropertiesAsObject({typeId:m.name.typeId,object:A.type==="object"?A:{properties:[],extraProperties:void 0}})},baseProperties:u,extendProperties:l}),jsonExample:{[or(a)]:or(p.discriminantValue),...typeof y=="object"?y:{},...c}}},singleProperty:f=>{let m=ym({currentDepth:i+1,maxDepth:n,fieldName:e,typeReference:f.type,typeDeclarations:t,skipOptionalProperties:o,visitedTypes:s});if(m.type==="failure")return m;let{example:h,jsonExample:A}=m;return{type:"success",example:Ku.union({discriminant:a,singleUnionType:{wireDiscriminantValue:p.discriminantValue,shape:ir.ExampleSingleUnionTypeProperties.singleProperty(h)},baseProperties:u,extendProperties:l}),jsonExample:{[or(a)]:or(p.discriminantValue),[or(f.name)]:A,...c}}},_other:()=>{throw new Error("Encountered unknown union type")}});if(d.type!=="failure")return d}}}return{type:"failure",message:"Failed to generate example for type reference"}}function a9f({fieldName:e,typeDeclaration:t,objectTypeDeclaration:r,typeDeclarations:n,maxDepth:i,currentDepth:o,skipOptionalProperties:s,visitedTypes:a}){let c={},u=[];for(let l of[...r.properties??[],...r.extendedProperties??[]]){let p=ym({fieldName:or(l.name),typeReference:l.valueType,typeDeclarations:n,currentDepth:o+1,maxDepth:i,skipOptionalProperties:s,visitedTypes:a});if(p.type==="failure"&&!D$({typeDeclarations:n,typeReference:l.valueType}))return{type:"failure",message:`Failed to generate required property ${or(l.name)} b/c ${p.message}`};if(p.type==="failure")continue;let{example:d,jsonExample:f}=p;u.push({name:l.name,originalTypeDeclaration:t.name,value:d,propertyAccess:l.propertyAccess}),c[or(l.name)]=f}return{type:"success",example:Ku.object({properties:u,extraProperties:void 0}),jsonExample:c}}function ym({fieldName:e,typeReference:t,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:o,visitedTypes:s}){if(i>n)return{type:"failure",message:`Exceeded max depth of ${n}`};switch(t.type){case"named":{let a=r[t.typeId];if(a==null)return{type:"failure",message:`Failed to find type declaration with id ${t.typeId}`};let c=s??new Map,u=c.get(t.typeId)??0;if(u>=2){let m=new Set([t.typeId]);return Ylo({typeDeclaration:a,typeDeclarations:r,visitedMinimalTypes:m})}c.set(t.typeId,u+1);let l=nLe({fieldName:e,typeDeclaration:a,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:o,visitedTypes:c}),p=(c.get(t.typeId)??1)-1;if(p<=0?c.delete(t.typeId):c.set(t.typeId,p),l==null)return{type:"failure",message:"Failed to generate example for type declaration"};if(l.type==="failure")return l;let{example:d,jsonExample:f}=l;return{type:"success",example:{jsonExample:f,shape:Ao.named({shape:d,typeName:a.name})},jsonExample:f}}case"container":{let a=Luc({fieldName:e,containerType:t.container,typeDeclarations:r,maxDepth:n,currentDepth:i,skipOptionalProperties:o,visitedTypes:s});if(a.type==="failure"){let{example:l,jsonExample:p}=EW({containerType:t.container});return{type:"success",example:{jsonExample:p,shape:Ao.container(l)},jsonExample:p}}let{example:c,jsonExample:u}=a;return{type:"success",example:{jsonExample:u,shape:Ao.container(c)},jsonExample:u}}case"primitive":{let{jsonExample:a,example:c}=Klo({fieldName:e,primitiveType:t.primitive});return{type:"success",example:{jsonExample:a,shape:Ao.primitive(c)},jsonExample:a}}case"unknown":{let a={key:"value"};return{type:"success",example:{jsonExample:a,shape:Ao.unknown(a)},jsonExample:a}}}}function Jlo(e,t){switch(e.type){case"primitive":case"unknown":return!0;case"named":return t[e.typeId]?.shape.type==="enum";case"container":switch(e.container.type){case"literal":return!0;case"optional":return Jlo(e.container.optional,t);case"nullable":return Jlo(e.container.nullable,t);default:return!1}}}function Ylo({typeDeclaration:e,typeDeclarations:t,visitedMinimalTypes:r}){let n=r??new Set;switch(n.add(e.name.typeId),e.shape.type){case"object":{let i={},o=[];for(let a of[...e.shape.properties??[],...e.shape.extendedProperties??[]])if(Jlo(a.valueType,t)){let c=ym({fieldName:or(a.name),typeReference:a.valueType,typeDeclarations:t,currentDepth:0,maxDepth:3,skipOptionalProperties:!0});if(c.type==="failure")continue;o.push({name:a.name,originalTypeDeclaration:e.name,value:c.example,propertyAccess:a.propertyAccess}),i[or(a.name)]=c.jsonExample}else if(a.valueType.type==="named"&&!n.has(a.valueType.typeId)){let c=t[a.valueType.typeId];if(c!=null){let u=Ylo({typeDeclaration:c,typeDeclarations:t,visitedMinimalTypes:n});u.type==="success"&&(o.push({name:a.name,originalTypeDeclaration:e.name,value:u.example,propertyAccess:a.propertyAccess}),i[or(a.name)]=u.jsonExample)}}else if(a.valueType.type==="container"){let{example:c,jsonExample:u}=EW({containerType:a.valueType.container});o.push({name:a.name,originalTypeDeclaration:e.name,value:{jsonExample:u,shape:Ao.container(c)},propertyAccess:a.propertyAccess}),i[or(a.name)]=u}let s=Ku.object({properties:o,extraProperties:void 0});return{type:"success",example:{jsonExample:i,shape:Ao.named({shape:s,typeName:e.name})},jsonExample:i}}case"enum":{let i=e.shape.values[0];if(i==null)return{type:"failure",message:"No enum values present for recursive type stub"};let o=or(i.name),s=Ku.enum({value:i.name});return{type:"success",example:{jsonExample:o,shape:Ao.named({shape:s,typeName:e.name})},jsonExample:o}}case"alias":{let i=e.shape.aliasOf;if(i.type==="primitive"){let{jsonExample:s,example:a}=Klo({fieldName:void 0,primitiveType:i.primitive});return{type:"success",example:{jsonExample:s,shape:Ao.named({shape:Ku.alias({value:{jsonExample:s,shape:Ao.primitive(a)}}),typeName:e.name})},jsonExample:s}}if(i.type==="named"){let s=t[i.typeId];if(s!=null&&s.name.typeId!==e.name.typeId)return Ylo({typeDeclaration:s,typeDeclarations:t,visitedMinimalTypes:n})}let o={};return{type:"success",example:{jsonExample:o,shape:Ao.named({shape:Ku.alias({value:{jsonExample:o,shape:Ao.unknown(o)}}),typeName:e.name})},jsonExample:o}}case"union":{let i=e.shape.discriminant;for(let o of e.shape.types)if(o.shape._visit({noProperties:()=>!0,samePropertiesAsObject:()=>!1,singleProperty:()=>!1,_other:()=>!1})){let a={[or(i)]:or(o.discriminantValue)};return{type:"success",example:{jsonExample:a,shape:Ao.named({shape:Ku.union({discriminant:i,singleUnionType:{wireDiscriminantValue:o.discriminantValue,shape:ir.ExampleSingleUnionTypeProperties.noProperties()},baseProperties:[],extendProperties:[]}),typeName:e.name})},jsonExample:a}}return{type:"failure",message:`No simple variant available for recursive union ${e.name.typeId}`}}case"undiscriminatedUnion":return{type:"failure",message:`Cannot generate stub for recursive undiscriminated union ${e.name.typeId}`}}}function iLe(e,t){let r=[];for(let n of e){let i=ym({fieldName:qr(n.name),currentDepth:0,maxDepth:t.maxDepth??1,typeDeclarations:t.typeDeclarations,typeReference:n.valueType,skipOptionalProperties:t.skipOptionalRequestProperties});if(i.type==="failure")return i;let o=i.example.jsonExample;if(typeof o!="string"&&typeof o!="number"&&typeof o!="boolean"){let s=qr(n.name);r.push({name:n.name,value:{jsonExample:s,shape:Ao.primitive(Mi.string({original:s}))}})}else r.push({name:n.name,value:i.example})}return{type:"success",example:r,jsonExample:void 0}}function Jtt(e,t){let r=[];for(let n of e){if(t.skipOptionalRequestProperties&&D$({typeDeclarations:t.typeDeclarations,typeReference:n.valueType}))continue;let i=ym({fieldName:qr(n.name),currentDepth:0,maxDepth:t.maxDepth??1,typeDeclarations:t.typeDeclarations,typeReference:n.valueType,skipOptionalProperties:t.skipOptionalRequestProperties});if(i.type==="failure")return i;r.push({name:n.name,value:i.example})}return{type:"success",example:r,jsonExample:void 0}}function AQr(e,t){let r=[];for(let n of e){if(t.skipOptionalRequestProperties&&D$({typeDeclarations:t.typeDeclarations,typeReference:n.valueType}))continue;let i=ym({fieldName:qr(n.name),currentDepth:0,maxDepth:t.maxDepth??10,typeDeclarations:t.typeDeclarations,typeReference:n.valueType,skipOptionalProperties:t.skipOptionalRequestProperties});if(i.type==="failure")return i;r.push({name:n.name,shape:n.allowMultiple?Mx.exploded():Mx.single(),value:i.example})}return{type:"success",example:r,jsonExample:void 0}}var Xlo=_r.primitive({v1:ws.String,v2:ai.string({default:void 0,validation:void 0})});function Ytt({ir:e,endpoint:t,service:r,typeDeclarations:n,skipOptionalRequestProperties:i,generationResponse:o}){let s={name:void 0,endpointHeaders:[],endpointPathParameters:[],queryParameters:[],servicePathParameters:[],serviceHeaders:[],rootPathParameters:[],request:void 0,response:Hg.ok(ny.body(void 0)),docs:void 0},a=iLe(t.pathParameters,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:1});if(a.type==="failure")return a;s.endpointPathParameters=a.example;let c=iLe(r.pathParameters,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:1});if(c.type==="failure")return c;s.servicePathParameters=c.example;let u=iLe(e.pathParameters,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:1});if(u.type==="failure")return u;s.rootPathParameters=u.example;let l=AQr(t.queryParameters,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:10});if(l.type==="failure")return l;s.queryParameters=l.example;let p=Jtt(t.headers,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:1});if(p.type==="failure")return p;s.endpointHeaders=p.example;let d=Jtt(r.headers,{typeDeclarations:n,skipOptionalRequestProperties:i,maxDepth:1});if(d.type==="failure")return d;if(s.serviceHeaders=d.example,t.requestBody!=null)switch(t.requestBody.type){case"bytes":return{type:"failure",message:"Bytes request unsupported"};case"fileUpload":return{type:"failure",message:"File upload unsupported"};case"inlinedRequestBody":{let f={},m=[];if(t.requestBody.extends!=null)for(let h of t.requestBody.extends){let A=n[h.typeId];if(A==null)throw new Error(`Failed to find extended type declaration with id ${h.typeId}`);let y=nLe({typeDeclaration:A,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});y!=null&&y.type==="success"&&Object.assign(f,y.jsonExample)}for(let h of[...t.requestBody.properties??[],...t.requestBody.extendedProperties??[]]){let A=ym({fieldName:or(h.name),typeReference:h.valueType,typeDeclarations:n,currentDepth:1,maxDepth:10,skipOptionalProperties:i});if(A.type==="failure"&&!D$({typeDeclarations:n,typeReference:h.valueType}))return{type:"failure",message:`Failed to generate required property ${or(h.name)} b/c ${A.message}`};if(A.type==="failure")continue;let{example:y,jsonExample:I}=A;m.push({name:h.name,originalTypeDeclaration:void 0,value:y}),f[or(h.name)]=I}s.request=eD.inlinedRequestBody({jsonExample:f,properties:m,extraProperties:void 0});break}case"reference":{let f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.requestBody.requestBodyType,skipOptionalProperties:i});if(f.type==="failure")return f;let{example:m}=f;s.request=eD.reference(m);break}default:we(t.requestBody)}if(o.type==="success"&&t.response?.body!=null)switch(t.response.body.type){case"fileDownload":return{type:"failure",message:"File download unsupported"};case"json":{let f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.value.responseBodyType,skipOptionalProperties:!1});if(f.type==="failure")return f;let{example:m,jsonExample:h}=f;s.response=Hg.ok(ny.body({...m,jsonExample:h}));break}case"streamParameter":{let f;switch(t.response.body.nonStreamResponse.type){case"bytes":return{type:"failure",message:"Bytes unsupported"};case"fileDownload":return{type:"failure",message:"File download unsupported"};case"json":f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.nonStreamResponse.value.responseBodyType,skipOptionalProperties:!1});break;case"text":f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:Xlo,skipOptionalProperties:!1});break;default:we(t.response.body.nonStreamResponse)}if(f.type==="failure")return f;let{example:m,jsonExample:h}=f;s.response=Hg.ok(ny.body({...m,jsonExample:h}));break}case"streaming":{let f;switch(t.response.body.value.type){case"sse":{if(f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.value.payload,skipOptionalProperties:!1}),f.type==="failure")return f;let{example:m,jsonExample:h}=f,A=t.response.body.value.payload,y="";if(A.type==="named"){let I=n[A.typeId];if(I?.shape.type==="union"&&I.shape.discriminatorContext===Kce.Protocol){let w=I.shape.types[0];w!=null&&(y=or(w.discriminantValue))}}s.response=Hg.ok(ny.sse([{data:{...m,jsonExample:h},event:y}]));break}case"json":{if(f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:t.response.body.value.payload,skipOptionalProperties:!1}),f.type==="failure")return f;let{example:m,jsonExample:h}=f;s.response=Hg.ok(ny.stream([{...m,jsonExample:h}]));break}case"text":{if(f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:Xlo,skipOptionalProperties:!1}),f.type==="failure")return f;let{example:m,jsonExample:h}=f;s.response=Hg.ok(ny.stream([{...m,jsonExample:h}]));break}default:we(t.response.body.value)}break}case"text":{let f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:Xlo,skipOptionalProperties:!1});if(f.type==="failure")return f;let{example:m,jsonExample:h}=f;s.response=Hg.ok(ny.body({...m,jsonExample:h}));break}case"bytes":return{type:"failure",message:"Bytes unsupported"};default:we(t.response.body)}else if(o.type==="error")if(o.declaration.type==null)s.response=Hg.error({body:void 0,error:o.declaration.name});else{let f=ym({currentDepth:0,maxDepth:10,typeDeclarations:n,typeReference:o.declaration.type,skipOptionalProperties:i});if(f.type==="failure")return f;let{example:m}=f;s.response=Hg.error({body:m,error:o.declaration.name})}try{return{type:"success",example:{id:hve(s),url:c9f(t,s),...s},jsonExample:void 0}}catch(f){return{type:"failure",message:`Parse failure with exceptions ${f}`}}}function c9f(e,t){let r={};[...t.rootPathParameters,...t.servicePathParameters,...t.endpointPathParameters].forEach(i=>{let o=i.value.jsonExample,s=typeof o=="string"?o:JSON.stringify(o);r[qr(i.name)]=s});let n=e.fullPath.head+e.fullPath.parts.map(i=>encodeURIComponent(`${r[i.pathParameter]}`)+i.tail).join("");return n.startsWith("/")||n===""?n:`/${n}`}function Zlo({ir:e,channel:t,typeDeclarations:r,skipOptionalRequestProperties:n}){let i={name:void 0,pathParameters:[],headers:[],queryParameters:[],messages:[],docs:void 0},o=iLe(t.pathParameters,{typeDeclarations:r,skipOptionalRequestProperties:n,maxDepth:1});if(o.type==="failure")return o;i.pathParameters.push(...o.example);let s=iLe(e.pathParameters,{typeDeclarations:r,skipOptionalRequestProperties:n,maxDepth:1});if(s.type==="failure")return s;i.pathParameters.push(...s.example);let a=AQr(t.queryParameters,{typeDeclarations:r,skipOptionalRequestProperties:n,maxDepth:10});if(a.type==="failure")return a;i.queryParameters=a.example;let c=Jtt(t.headers,{typeDeclarations:r,skipOptionalRequestProperties:n,maxDepth:1});if(c.type==="failure")return c;i.headers.push(...c.example);let u=Jtt(e.headers,{typeDeclarations:r,skipOptionalRequestProperties:n,maxDepth:1});if(u.type==="failure")return u;i.headers.push(...u.example);let p=t.messages.filter(m=>m.origin==="client")[0];if(p!=null){let m=Uuc({message:p,typeDeclarations:r,skipOptionalRequestProperties:n});m!=null&&i.messages.push({type:p.type,body:m})}let f=t.messages.filter(m=>m.origin==="server")[0];if(f!=null){let m=Uuc({message:f,typeDeclarations:r,skipOptionalRequestProperties:n});m!=null&&i.messages.push({type:f.type,body:m})}return{type:"success",example:{...i,url:u9f(t,i)},jsonExample:void 0}}function Uuc({message:e,typeDeclarations:t,skipOptionalRequestProperties:r}){if(e.body.type==="inlinedBody")return;let n=ym({currentDepth:0,maxDepth:10,typeDeclarations:t,typeReference:e.body.bodyType,skipOptionalProperties:r});if(n.type==="success")return E3.reference(n.example)}function u9f(e,t){let r={};[...t.pathParameters].forEach(i=>{let o=i.value.jsonExample,s=typeof o=="string"?o:JSON.stringify(o);r[qr(i.name)]=s});let n=e.path.head+e.path.parts.map(i=>encodeURIComponent(`${r[i.pathParameter]}`)+i.tail).join("");return n.startsWith("/")||n===""?n:`/${n}`}ao();jt();function Xtt(e){let t=e?.userSpecifiedExamples??{},r=e?.autogeneratedExamples??{},n=Object.values(t)[0],i=Object.values(r)[0];return{userExample:n,autoExample:i}}function Ave(e){let t=e?.userSpecifiedExamples??{},r=e?.autogeneratedExamples??{};return{userExamples:t,autoExamples:r}}function _uc({ir:e,endpoint:t,skipOptionalRequestProperties:r}){let n=e.types,i={pathParameters:{},queryParameters:{},headers:{}};for(let s of t.pathParameters){let{userExample:a,autoExample:c}=Xtt(s.v2Examples);a!==void 0?i.pathParameters[qr(s.name)]=a:c!==void 0&&(i.pathParameters[qr(s.name)]=c)}for(let s of t.queryParameters){let{userExample:a,autoExample:c}=Xtt(s.v2Examples);if(a!==void 0)i.queryParameters[qr(s.name)]=a;else if(c!==void 0){if(r&&D$({typeReference:s.valueType,typeDeclarations:n}))continue;i.queryParameters[qr(s.name)]=c}}let o=[...t.headers,...e.headers,...e.idempotencyHeaders];for(let s of o){let{userExample:a,autoExample:c}=Xtt(s.v2Examples);if(a!==void 0)i.headers[or(s.name)]=a;else if(c!==void 0){if(r&&D$({typeReference:s.valueType,typeDeclarations:n}))continue;i.headers[or(s.name)]=c}}return i}function Vuc({endpoint:e,ir:t,skipOptionalRequestProperties:r}){let{pathParameters:n,queryParameters:i,headers:o}=_uc({endpoint:e,ir:t,skipOptionalRequestProperties:r}),s={},a={},c={endpoint:{method:e.method,path:l9f(e)},baseUrl:void 0,environment:e.baseUrl,auth:void 0,pathParameters:n,queryParameters:i,headers:o,requestBody:void 0,docs:void 0};if(e.requestBody!=null)switch(e.requestBody.type){case"bytes":break;case"fileUpload":{let{userExamples:u,autoExamples:l}=Ave(e.requestBody.v2Examples);for(let[p,d]of Object.entries(u))s[p]={...c,requestBody:d};for(let[p,d]of Object.entries(l))a[p]={...c,requestBody:d};break}case"inlinedRequestBody":{let{userExamples:u,autoExamples:l}=Ave(e.requestBody.v2Examples);for(let[p,d]of Object.entries(u))s[p]={...c,requestBody:d};for(let[p,d]of Object.entries(l))a[p]={...c,requestBody:d};break}case"reference":{let{userExamples:u,autoExamples:l}=Ave(e.requestBody.v2Examples);for(let[p,d]of Object.entries(u))s[p]={...c,requestBody:d};for(let[p,d]of Object.entries(l))a[p]={...c,requestBody:d};break}default:we(e.requestBody)}return{userRequestExamples:s,autoRequestExamples:a,baseExample:c}}function l9f(e){let t={};[...e.pathParameters,...e.allPathParameters].forEach(n=>{let{userExample:i,autoExample:o}=Xtt(n.v2Examples),s=i??o,a;s==null?a=qr(n.name):a=typeof s=="string"?s:JSON.stringify(s),t[qr(n.name)]=a});let r=e.fullPath.head+e.fullPath.parts.map(n=>encodeURIComponent(`${t[n.pathParameter]}`)+n.tail).join("");return r.startsWith("/")||r===""?r:`/${r}`}jt();function yQr({endpoint:e,responseObject:t}){let r=t!==void 0?t:e.response,n={},i={},o={statusCode:r?.statusCode,body:void 0,docs:void 0};if(r==null)return{userResponseExamples:{},autoResponseExamples:{},baseExample:o};if(r.body==null)return e.source?.type==="openrpc"?{userResponseExamples:{},autoResponseExamples:{},baseExample:{...o,body:fw.json(NLt(null))}}:{userResponseExamples:{},autoResponseExamples:{},baseExample:o};switch(r.body.type){case"bytes":break;case"fileDownload":break;case"text":{let s=r.body,{userExamples:a,autoExamples:c}=Ave(s.v2Examples);for(let[u,l]of Object.entries(a)){let p=e.source?.type==="openrpc"?NLt(l):l;n[u]={...o,body:fw.json(p)}}for(let[u,l]of Object.entries(c)){let p=e.source?.type==="openrpc"?NLt(l):l;i[u]={...o,body:fw.json(p)}}break}case"json":{let s=r.body.value;if(s.type==="response"){let{userExamples:a,autoExamples:c}=Ave(s.v2Examples);for(let[u,l]of Object.entries(a)){let p=e.source?.type==="openrpc"?NLt(l):l;n[u]={...o,body:fw.json(p)}}for(let[u,l]of Object.entries(c)){let p=e.source?.type==="openrpc"?NLt(l):l;i[u]={...o,body:fw.json(p)}}}break}case"streaming":{let s=r.body.value;if(s.type==="json"){let{userExamples:a,autoExamples:c}=Ave(s.v2Examples);for(let[u,l]of Object.entries(a))n[u]={...o,body:fw.stream([l])};for(let[u,l]of Object.entries(c))i[u]={...o,body:fw.stream([l])}}break}case"streamParameter":break;default:we(r.body)}return{userResponseExamples:n,autoResponseExamples:i,baseExample:o}}function NLt(e,t=1){return{id:t,jsonrpc:"2.0",result:e}}var Ztt=(e,t,r)=>{let n;return e===t?n=`${e}`:n=`${e}_${t}`,r&&(n=`${n}_${r}`),n},p9f=({exampleStore:e,key:t,example:r})=>e.has(t)?!1:(e.set(t,r),!0);function bQr({key:e,displayName:t,request:r,response:n,exampleStore:i,userOrAutoStore:o}){if(!i.has(e)){let s={displayName:t,request:r,response:n,codeSamples:void 0};return o[e]=s,p9f({exampleStore:i,key:e,example:s}),!0}return!1}function quc({endpoint:e,ir:t,skipOptionalRequestProperties:r,logger:n}){let i={},o={},s=new Map,{userRequestExamples:a,autoRequestExamples:c,baseExample:u}=Vuc({endpoint:e,ir:t,skipOptionalRequestProperties:r}),l=Object.keys(a)[0],p=Object.values(a)[0],d=Object.keys(c)[0],f=Object.values(c)[0],m=f9f({endpoint:e,userRequestExamples:a,baseRequestExample:u,firstUserRequestName:l,firstUserRequestExample:p,firstAutoRequestName:d,firstAutoRequestExample:f,userResults:i,autoResults:o,exampleStore:s,logger:n});if(d9f({endpoint:e,userRequestExamples:a,requestExamplesUsed:m,userResults:i,exampleStore:s}),Object.keys(i).length===0&&Object.keys(o).length===0){let{baseExample:h}=yQr({endpoint:e}),A=Ztt(d??"base","base",void 0);bQr({key:A,displayName:d??"base",request:f??u,response:h,exampleStore:s,userOrAutoStore:o})}return{userFullExamples:i,autoFullExamples:o}}function f9f({endpoint:e,userRequestExamples:t,baseRequestExample:r,firstUserRequestName:n,firstUserRequestExample:i,firstAutoRequestName:o,firstAutoRequestExample:s,userResults:a,autoResults:c,exampleStore:u,logger:l}){let p=e.v2Responses?.responses??[e.response],d=new Set;for(let f of p){let m=!1,{userResponseExamples:h,autoResponseExamples:A,baseExample:y}=yQr({endpoint:e,responseObject:f}),I=Object.keys(A)[0],w=Object.values(A)[0];for(let[C,x]of Object.entries(h)){let B,O;t[C]?(O=t[C],d.add(C),B=Ztt(C,C,f?.statusCode)):s&&o?(O=s,B=Ztt(o,C,f?.statusCode)):(Object.keys(t).length>0&&l?.warn(`Response example "${C}" on ${e.method.toUpperCase()} ${e.fullPath.head} has no matching request example with the same summary. Falling back to a base request with no body. To pair them, set the request and response example summary fields to the same value.`),O=r,B=Ztt("base",C,f?.statusCode)),bQr({key:B,displayName:C,request:O,response:x,exampleStore:u,userOrAutoStore:a})&&(m=!0)}if(!m){let C=si(`${qr(e.name)}_example`);n&&i&&d.add(n);let x=Ztt(n??o??"base",I??"base",f?.statusCode);bQr({key:x,displayName:n??o??C,request:i??s??r,response:w??y,exampleStore:u,userOrAutoStore:c})&&(m=!0)}}return d}function d9f({endpoint:e,userRequestExamples:t,requestExamplesUsed:r,userResults:n,exampleStore:i}){let{userResponseExamples:o,autoResponseExamples:s,baseExample:a}=yQr({endpoint:e}),c=Object.values(o)[0],u=Object.keys(o)[0],l=Object.keys(s)[0],p=Object.values(s)[0],d=Object.entries(t).filter(([f])=>!r.has(f));for(let[f,m]of d){let h=Ztt(f,u??l??"base",c?c.statusCode:p?p.statusCode:a.statusCode);bQr({key:h,displayName:f,request:m,response:c??p??a,exampleStore:i,userOrAutoStore:n})}}function jLt({ir:e,exampleGeneration:t}){let r={disabled:t.disabled,includeOptionalRequestPropertyExamples:t.includeOptionalRequestPropertyExamples??!1,skipAutogenerationIfManualExamplesExist:t.skipAutogenerationIfManualExamplesExist??!1,skipErrorAutogenerationIfManualErrorExamplesExist:t.skipErrorAutogenerationIfManualErrorExamplesExist??!1};for(let[n,i]of Object.entries(e.services))for(let o of i.endpoints){let s=[];if(o.userSpecifiedExamples.length===0||r.skipAutogenerationIfManualExamplesExist===!1){let a=Ytt({ir:e,service:i,endpoint:o,typeDeclarations:e.types,skipOptionalRequestProperties:!r.includeOptionalRequestPropertyExamples,generationResponse:{type:"success"}});a.type==="success"&&s.push({example:a.example})}if(o.userSpecifiedExamples.filter(a=>a.example?.response.type==="error").length===0||r.skipErrorAutogenerationIfManualErrorExamplesExist===!1)for(let a of o.errors){let c=e.errors[a.error.errorId];if(!c)continue;let u=Ytt({ir:e,service:i,endpoint:o,typeDeclarations:e.types,skipOptionalRequestProperties:!r.includeOptionalRequestPropertyExamples,generationResponse:{type:"error",declaration:c}});u.type==="success"&&s.push({example:u.example})}o.autogeneratedExamples=s}for(let[n,i]of Object.entries(e.websocketChannels??{})){if(i.examples.length>0&&r.skipAutogenerationIfManualExamplesExist===!0)continue;let o=Zlo({ir:e,channel:i,typeDeclarations:e.types,skipOptionalRequestProperties:!r.includeOptionalRequestPropertyExamples});if(o.type==="failure")continue;let{example:s}=o;i.examples=[...i.examples,s]}return e}function $lo({ir:e,exampleGeneration:t,logger:r}){let n={disabled:t.disabled,includeOptionalRequestPropertyExamples:t.includeOptionalRequestPropertyExamples??!1,skipAutogenerationIfManualExamplesExist:t.skipAutogenerationIfManualExamplesExist??!1,skipErrorAutogenerationIfManualErrorExamplesExist:t.skipErrorAutogenerationIfManualErrorExamplesExist??!1};for(let[i,o]of Object.entries(e.services))for(let s of o.endpoints){s.v2Examples==null&&(s.v2Examples={userSpecifiedExamples:{},autogeneratedExamples:{}});let{userFullExamples:a,autoFullExamples:c}=quc({endpoint:s,ir:e,skipOptionalRequestProperties:!n.includeOptionalRequestPropertyExamples,logger:r});if(Object.keys(s.v2Examples.userSpecifiedExamples).length>0){if(Object.values(s.v2Examples.userSpecifiedExamples).some(l=>l.request!=null||l.response!=null))continue;let u=Object.values(s.v2Examples.userSpecifiedExamples).filter(l=>l!=null).flatMap(l=>l.codeSamples??[]);for(let[l,p]of Object.entries(c))c[l]={...p,codeSamples:u};for(let[l,p]of Object.entries(a))a[l]={...p,codeSamples:u}}s.v2Examples.autogeneratedExamples=c,s.v2Examples.userSpecifiedExamples=a}for(let[i,o]of Object.entries(e.websocketChannels??{})){if(o.examples.length>0&&n.skipAutogenerationIfManualExamplesExist===!0)continue;let s=Zlo({ir:e,channel:o,typeDeclarations:e.types,skipOptionalRequestProperties:!n.includeOptionalRequestPropertyExamples});if(s.type==="failure")continue;let{example:a}=s;o.examples=[...o.examples,a]}return e}ao();function W3(e){return e.allParts.map(t=>qr(t)).join("/")}var Zu={generateTypeId:e=>`type_${W3(e.fernFilepath)}:${qr(e.name)}`,generateErrorId:e=>`error_${W3(e.fernFilepath)}:${qr(e.name)}`,generateServiceId:e=>`service_${W3(e.fernFilepath)}`,generateServiceIdFromFernFilepath:e=>`service_${W3(e)}`,generateSubpackageId:e=>`subpackage_${W3(e)}`,generateEndpointId:(e,t)=>{let r=W3(e.fernFilepath),n=qr(t.name);return`endpoint_${r}.${n}`},generateWebhookGroupId:e=>`webhooks_${W3(e)}`,generateWebhookId:(e,t)=>`webhooks_${W3(e)}.${t}`,generateWebSocketChannelId:e=>`channel_${W3(e)}`};jt();function QLt(e,t){if(e==null||typeof e!="object"||Array.isArray(e))return e;let r={};for(let[n,i]of Object.entries(e))t.has(n)&&(r[n]=i);return r}function Huc({filteredIr:e,singleUnionTypeProperties:t}){return t._visit({samePropertiesAsObject:r=>{let n=e.hasTypeId(r.typeId)?{...r,object:{...r.object,properties:r.object.properties.filter(i=>e.hasProperty(i.originalTypeDeclaration.typeId,or(i.name))).map(i=>({...i,value:$E({filteredIr:e,exampleTypeReference:i.value})})).filter(i=>i.value!==void 0)}}:void 0;return n!==void 0?ir.ExampleSingleUnionTypeProperties.samePropertiesAsObject(n):void 0},singleProperty:r=>{let n=$E({filteredIr:e,exampleTypeReference:r});return n!==void 0?ir.ExampleSingleUnionTypeProperties.singleProperty(n):void 0},noProperties:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}})}function $E({filteredIr:e,exampleTypeReference:t}){return t.shape._visit({primitive:()=>t,container:r=>r._visit({list:n=>({...t,shape:Ao.container(sl.list({...n,list:n.list.map(i=>$E({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),set:n=>({...t,shape:Ao.container(sl.set({...n,set:n.set.map(i=>$E({filteredIr:e,exampleTypeReference:i})).filter(i=>i!==void 0)}))}),optional:n=>{let i=n.optional!=null?$E({filteredIr:e,exampleTypeReference:n.optional}):void 0;return i!=null?{...t,shape:Ao.container(sl.optional({optional:i,valueType:n.valueType}))}:void 0},nullable:n=>{let i=n.nullable!=null?$E({filteredIr:e,exampleTypeReference:n.nullable}):void 0;return i!=null?{...t,shape:Ao.container(sl.nullable({nullable:i,valueType:n.valueType}))}:void 0},map:n=>({...t,shape:Ao.container(sl.map({...n,map:n.map.map(i=>{let o=$E({filteredIr:e,exampleTypeReference:i.key}),s=$E({filteredIr:e,exampleTypeReference:i.value});return o!==void 0&&s!==void 0?{key:o,value:s}:void 0}).filter(i=>i!==void 0)}))}),literal:()=>t,_other:()=>{throw new Error("Received unknown type for example.")}}),named:r=>e.hasTypeId(r.typeName.typeId)?r.shape._visit({alias:n=>{let i=$E({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...t,shape:Ao.named({...r,shape:Ku.alias({...n,value:i})})}:void 0},enum:n=>({...t,shape:Ao.named({...r,shape:Ku.enum(n)})}),object:n=>{let i=n.properties.filter(s=>e.hasProperty(s.originalTypeDeclaration.typeId,or(s.name))).map(s=>({...s,value:$E({filteredIr:e,exampleTypeReference:s.value})})).filter(s=>s.value!==void 0),o=new Set(i.map(s=>or(s.name)));return{...t,jsonExample:QLt(t.jsonExample,o),shape:Ao.named({...r,shape:Ku.object({...n,properties:i})})}},union:n=>{let i=Huc({filteredIr:e,singleUnionTypeProperties:n.singleUnionType.shape});return i!==void 0?{...t,shape:Ao.named({...r,shape:Ku.union({...n,singleUnionType:{...n.singleUnionType,shape:i}})})}:void 0},undiscriminatedUnion:n=>{let i=$E({filteredIr:e,exampleTypeReference:n.singleUnionType});return i!==void 0?{...t,shape:Ao.named({...r,shape:Ku.undiscriminatedUnion({...n,singleUnionType:i})})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}}):void 0,unknown:()=>t,_other:()=>t})}function epo({filteredIr:e,pathParameters:t}){return t.map(r=>{let n=$E({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function m9f({filteredIr:e,queryParameters:t,endpointId:r}){return t.filter(n=>r==null||e.hasQueryParameter(r,or(n.name))).map(n=>{let i=$E({filteredIr:e,exampleTypeReference:n.value});return i!==void 0?{...n,value:i}:void 0}).filter(n=>n!==void 0)}function Guc({filteredIr:e,headers:t}){return t.map(r=>{let n=$E({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...r,value:n}:void 0}).filter(r=>r!==void 0)}function h9f({filteredIr:e,requestBody:t,endpointId:r}){return t._visit({inlinedRequestBody:n=>{let i=n.properties.filter(s=>{let a=or(s.name);return s.originalTypeDeclaration==null?r!=null?e.hasRequestProperty(r,a):!0:e.hasProperty(s.originalTypeDeclaration.typeId,a)}).map(s=>{let a=$E({filteredIr:e,exampleTypeReference:s.value});return a!==void 0?{...s,value:a}:void 0}).filter(s=>s!==void 0),o=new Set(i.map(s=>or(s.name)));return{...t,jsonExample:QLt(n.jsonExample,o),properties:i}},reference:n=>{let i=$E({filteredIr:e,exampleTypeReference:n});return i!==void 0?eD.reference(i):void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function g9f({filteredIr:e,response:t}){return t._visit({ok:r=>r._visit({body:n=>Hg.ok(ny.body(n!=null?$E({filteredIr:e,exampleTypeReference:n}):void 0)),stream:n=>Hg.ok(ny.stream(n.map(i=>$E({filteredIr:e,exampleTypeReference:i})).filter(Ka))),sse:n=>Hg.ok(ny.sse(n.map(({event:i,data:o})=>{let s=$E({filteredIr:e,exampleTypeReference:o});return s!==void 0?{event:i,data:s}:void 0}).filter(Ka))),_other:({type:n})=>{throw new Error(`Received unknown type for OK example: ${n}`)}}),error:({error:r,body:n})=>Hg.error({error:r,body:n!=null?$E({filteredIr:e,exampleTypeReference:n}):void 0}),_other:({type:r})=>{throw new Error(`Received unknown type for example: ${r}`)}})}function tpo({filteredIr:e,example:t,endpointId:r}){return{...t,rootPathParameters:epo({filteredIr:e,pathParameters:t.rootPathParameters}),servicePathParameters:epo({filteredIr:e,pathParameters:t.servicePathParameters}),endpointPathParameters:epo({filteredIr:e,pathParameters:t.endpointPathParameters}),serviceHeaders:Guc({filteredIr:e,headers:t.serviceHeaders}),endpointHeaders:Guc({filteredIr:e,headers:t.endpointHeaders}),queryParameters:m9f({filteredIr:e,queryParameters:t.queryParameters,endpointId:r}),request:t.request!==void 0?h9f({filteredIr:e,requestBody:t.request,endpointId:r}):void 0,response:g9f({filteredIr:e,response:t.response})}}function Kuc({filteredIr:e,payload:t,webhookId:r}){if(r==null)return t;let n=i=>e.hasWebhookPayloadProperty(r,i);if(t.shape.type==="named"&&t.shape.shape.type==="object"){let i=t.shape,o=i.shape;if(o.type!=="object")return t;let s=o.properties.filter(c=>n(or(c.name))),a=new Set(s.map(c=>or(c.name)));return{...t,jsonExample:QLt(t.jsonExample,a),shape:Ao.named({...i,shape:Ku.object({...o,properties:s})})}}if(t.shape.type==="container"&&t.shape.container.type==="map"){let i=t.shape.container,o=i.map.filter(a=>{let c=a.key.jsonExample;return typeof c=="string"&&n(c)}),s=new Set(o.map(a=>a.key.jsonExample).filter(a=>typeof a=="string"));return{...t,jsonExample:QLt(t.jsonExample,s),shape:Ao.container(sl.map({...i,map:o}))}}return t}function Juc({filteredIr:e,exampleType:t}){return t.shape._visit({alias:r=>{let n=$E({filteredIr:e,exampleTypeReference:r.value});return n!==void 0?{...t,shape:Ku.alias({...r,value:n})}:void 0},enum:()=>t,object:r=>{let n=r.properties.filter(o=>e.hasProperty(o.originalTypeDeclaration.typeId,or(o.name))).map(o=>({...o,value:$E({filteredIr:e,exampleTypeReference:o.value})})).filter(o=>o.value!==void 0),i=new Set(n.map(o=>or(o.name)));return{...t,jsonExample:QLt(t.jsonExample,i),shape:Ku.object({...r,properties:n})}},union:r=>{let n=Huc({filteredIr:e,singleUnionTypeProperties:r.singleUnionType.shape});return n!==void 0?{...t,shape:Ku.union({...r,singleUnionType:{...r.singleUnionType,shape:n}})}:void 0},undiscriminatedUnion:r=>{let n=$E({filteredIr:e,exampleTypeReference:r.singleUnionType});return n!==void 0?{...t,shape:Ku.undiscriminatedUnion({...r,singleUnionType:n})}:void 0},_other:()=>{throw new Error("Received unknown type for example.")}})}function EQr(e,t){if(e==null||typeof e!="object"||Array.isArray(e))return e;let r={};for(let[n,i]of Object.entries(e))t(n)&&(r[n]=i);return r}function Wuc(e,t){return Object.fromEntries(Object.entries(e).map(([r,n])=>[r,EQr(n,t)]))}function bve(e,t){return e==null?e:{userSpecifiedExamples:Wuc(e.userSpecifiedExamples,t),autogeneratedExamples:Wuc(e.autogeneratedExamples,t)}}function yve(e){return e._visit({named:t=>Zu.generateTypeId(t),container:t=>t._visit({optional:r=>yve(r),nullable:r=>yve(r),list:r=>yve(r),set:r=>yve(r),map:()=>{},literal:()=>{},_other:()=>{}}),primitive:()=>{},unknown:()=>{},_other:()=>{}})}function Yuc({v2Examples:e,requestBodyIsAllowed:t,responseBodyIsAllowed:r,queryParameterIsAllowed:n}){if(e==null)return e;let i=o=>Object.fromEntries(Object.entries(o).map(([s,a])=>[s,{...a,request:a.request!=null?{...a.request,requestBody:EQr(a.request.requestBody,t),queryParameters:a.request.queryParameters!=null?Object.fromEntries(Object.entries(a.request.queryParameters).filter(([c])=>n(c))):a.request.queryParameters}:a.request,response:a.response?.body!=null?{...a.response,body:A9f(a.response.body,r)}:a.response}]));return{userSpecifiedExamples:i(e.userSpecifiedExamples),autogeneratedExamples:i(e.autogeneratedExamples)}}function A9f(e,t){return e._visit({json:r=>ir.V2HttpEndpointResponseBody.json(EQr(r,t)),error:r=>ir.V2HttpEndpointResponseBody.error(r),stream:r=>ir.V2HttpEndpointResponseBody.stream(r),_other:()=>e})}function Xuc(e,t){if(e==null)return e;let r=n=>Object.fromEntries(Object.entries(n).map(([i,o])=>[i,{...o,payload:EQr(o.payload,t)}]));return{userSpecifiedExamples:r(e.userSpecifiedExamples),autogeneratedExamples:r(e.autogeneratedExamples)}}function MLt(e,t){if(t==null)return e;let r=v2e(e.types,a=>t.hasType(a)),n=Object.fromEntries(Object.entries(r).map(([a,c])=>{let u=Zu.generateTypeId(c.name),l=d=>t.hasProperty(u,d),p=[];if(c.userProvidedExamples=c.userProvidedExamples.map(d=>Juc({filteredIr:t,exampleType:d})).filter(d=>d!==void 0),c.v2Examples=bve(c.v2Examples,l),c.shape.type==="object"){for(let d of c.shape.properties)l(or(d.name))&&p.push(d);return[a,{...c,shape:Mc.object({...c.shape,properties:p})}]}return[a,c]})),i=Object.fromEntries(Object.entries(e.webhookGroups).map(([a,c])=>{let u=c.filter(l=>t.hasWebhook(l)).map(l=>{let p=l.id,d=()=>!0;if(l.payload.type==="inlinedPayload"&&p!=null)d=f=>t.hasWebhookPayloadProperty(p,f),l.payload={...l.payload,properties:l.payload.properties.filter(f=>d(or(f.name)))};else if(l.payload.type==="reference"){let f=yve(l.payload.payloadType);f!=null&&(d=m=>t.hasProperty(f,m))}return l.examples!=null&&p!=null&&(l.examples=l.examples.map(f=>({...f,payload:Kuc({filteredIr:t,payload:f.payload,webhookId:p})}))),l.v2Examples=Xuc(l.v2Examples,d),l});return[a,u]})),o=e.websocketChannels!=null?Object.fromEntries(Object.entries(e.websocketChannels).filter(([a])=>t.hasChannel(a)).map(([a,c])=>[a,{...c}])):{},s=e.environments;if(s){switch(s.environments.type){case"singleBaseUrl":{s.environments.environments=s.environments.environments.filter(a=>t.hasEnvironmentId(a.id));break}case"multipleBaseUrls":{s.environments.environments=s.environments.environments.filter(a=>t.hasEnvironmentId(a.id));break}}s.defaultEnvironment&&(t.hasEnvironmentId(s.defaultEnvironment)||(s.defaultEnvironment=void 0))}return{...e,environments:s,types:n,errors:v2e(e.errors,a=>t.hasError(a)),services:Ip(v2e(e.services,a=>t.hasService(a)),a=>({...a,endpoints:a.endpoints.filter(c=>t.hasEndpoint(c)).map(c=>E9f(c,t))})),websocketChannels:o,webhookGroups:i,serviceTypeReferenceInfo:v9f(e.serviceTypeReferenceInfo,t)}}function y9f(e,t){let r=e.requestBody;if(r==null)return()=>!0;if(r.type==="inlinedRequestBody")return n=>t.hasRequestProperty(e.id,n);if(r.type==="reference"){let n=yve(r.requestBodyType);if(n!=null)return i=>t.hasProperty(n,i)}return()=>!0}function b9f(e,t){let r=e.response?.body;if(r?.type!=="json")return()=>!0;let n=r.value,i=n.type==="response"||n.type==="nestedPropertyAsResponse"?n.responseBodyType:void 0;if(i==null)return()=>!0;let o=yve(i);return o==null?()=>!0:s=>t.hasProperty(o,s)}function E9f(e,t){let r=e.id,n=y9f(e,t),i=b9f(e,t),o=s=>t.hasQueryParameter(r,s);if(e.autogeneratedExamples=e.autogeneratedExamples.map(s=>({...s,example:tpo({filteredIr:t,example:s.example,endpointId:r})})),e.userSpecifiedExamples=e.userSpecifiedExamples.map(s=>({...s,example:s.example!=null?tpo({filteredIr:t,example:s.example,endpointId:r}):void 0})),e.queryParameters.length>0&&(e.queryParameters=e.queryParameters.filter(s=>o(or(s.name)))),e.v2Examples=Yuc({v2Examples:e.v2Examples,requestBodyIsAllowed:n,responseBodyIsAllowed:i,queryParameterIsAllowed:o}),e.response?.body?.type==="json"){let s=e.response.body.value;(s.type==="response"||s.type==="nestedPropertyAsResponse")&&(s.v2Examples=bve(s.v2Examples,i))}return e.v2Responses?.responses!=null&&(e.v2Responses={...e.v2Responses,responses:e.v2Responses.responses.map(s=>{if(s.body?.type!=="json")return s;let a=s.body.value;return a.type==="response"||a.type==="nestedPropertyAsResponse"?{...s,body:{...s.body,value:{...a,v2Examples:bve(a.v2Examples,i)}}}:s})}),e.v2RequestBodies?.requestBodies!=null&&(e.v2RequestBodies={...e.v2RequestBodies,requestBodies:e.v2RequestBodies.requestBodies.map(s=>s.type==="inlinedRequestBody"?{...s,properties:s.properties.filter(a=>n(or(a.name))),v2Examples:bve(s.v2Examples,n)}:s.type==="reference"?{...s,v2Examples:bve(s.v2Examples,n)}:s)}),e.requestBody?.type==="inlinedRequestBody"?{...e,requestBody:{...e.requestBody,properties:e.requestBody.properties.filter(s=>n(or(s.name))),v2Examples:bve(e.requestBody.v2Examples,n)}}:e.requestBody?.type==="reference"?{...e,requestBody:{...e.requestBody,v2Examples:bve(e.requestBody.v2Examples,n)}}:e}function v9f(e,t){if(t==null)return e;let r={};return Object.entries(e.typesReferencedOnlyByService).forEach(([n,i])=>{t.hasServiceId(n)&&(r[n]=i.filter(o=>t.hasTypeId(o)))}),{sharedTypes:e.sharedTypes.filter(n=>t.hasTypeId(n)),typesReferencedOnlyByService:r}}function oLe(e){let t={};for(let[r,n]of Object.entries(e))if(typeof n!="string")for(let i of n.audiences??[])t[i]==null&&(t[i]=new Set),t[i]?.add(r);return t}jt();function $tt(e){return e.type!=null}var vQr=class{environments=new Set;types=new Set;excludedProperties;errors=new Set;services=new Set;endpoints=new Set;excludedRequestProperties;excludedQueryParameters;webhooks=new Set;excludedWebhookPayloadProperties;channels=new Set;subpackages=new Set;constructor({types:t,excludedProperties:r,errors:n,environments:i,services:o,endpoints:s,webhooks:a,subpackages:c,excludedQueryParameters:u,excludedRequestProperties:l,excludedWebhookPayloadProperties:p,channels:d}){this.environments=i,this.types=t,this.excludedProperties=r,this.errors=n,this.services=o,this.endpoints=s,this.webhooks=a,this.excludedWebhookPayloadProperties=p,this.subpackages=c,this.excludedRequestProperties=l,this.excludedQueryParameters=u,this.channels=d}hasTypeId(t){return this.types.has(t)}hasErrorId(t){return this.errors.has(t)}hasServiceId(t){return this.services.has(t)}hasSubpackageId(t){return this.subpackages.has(t)}hasType(t){let r=Zu.generateTypeId(t.name);return this.types.has(r)}hasProperty(t,r){let n=this.excludedProperties[t];return n==null||!n.has(r)}hasError(t){let r=Zu.generateErrorId(t.name);return this.errors.has(r)}hasService(t){let r=Zu.generateServiceId(t.name);return this.services.has(r)}hasEnvironmentId(t){return this.environments.has(t)}hasEndpoint(t){return this.endpoints.has(t.id)}hasRequestProperty(t,r){let n=this.excludedRequestProperties[t];return n==null||!n.has(r)}hasQueryParameter(t,r){let n=this.excludedQueryParameters[t];return n==null||!n.has(r)}hasSubpackage(t){return this.subpackages.has(t)}hasWebhook(t){return t.id?this.webhooks.has(t.id):!0}hasChannel(t){return t?this.channels.has(t):!0}hasWebhookPayloadProperty(t,r){let n=this.excludedWebhookPayloadProperties[t];return n==null||!n.has(r)}};var sLe=class{types={};properties={};queryParameters={};requestProperties={};webhookProperties={};errors={};endpoints={};webhooks={};channels={};audiences;typesReferencedByService={};environmentsNeededForAudience=new Set;typesNeededForAudience=new Set;servicesNeededForAudience=new Set;endpointsNeededForAudience=new Set;webhooksNeededForAudience=new Set;channelsNeededForAudience=new Set;subpackagesNeededForAudience=new Set;schemaIdToGraphTypeId=new Map;constructor(t){this.audiences=I9f(t)}addType({declaredTypeName:t,descendantTypeIds:r,descendantFilepaths:n,descendantTypeIdsByAudience:i,propertiesByAudience:o}){let s=Zu.generateTypeId(t),a={typeId:s,allDescendants:r,descendantsByAudience:i,referencedSubpackages:n};this.types[s]=a,t.typeId!=null&&t.typeId!==s&&this.schemaIdToGraphTypeId.set(t.typeId,s),this.typesReferencedByService[s]==null&&(this.typesReferencedByService[s]=new Set),this.properties[s]={typeId:s,propertiesByAudience:o}}markTypeForAudiences(t,r){let n=Zu.generateTypeId(t);this.hasAudience(r)&&(this.typesNeededForAudience.add(n),this.addSubpackages(t.fernFilepath),this.types[n]?.referencedSubpackages.forEach(i=>{this.addSubpackages(i)}))}markEnvironmentForAudiences(t,r,n){t&&(this.hasAudience(r)||n)&&this.environmentsNeededForAudience.add(t.id)}getTypesReferencedByService(){for(let t of Object.values(this.endpoints))for(let r of t.referencedTypes)this.markTypeForService(r,t.serviceId);return this.typesReferencedByService}addError(t){let r=Zu.generateErrorId(t.name),n=new Set,i=new Set;t.type!=null&&Y0(t.type,n,i);let o={errorId:r,referencedTypes:n,referencedSubpackages:i};this.errors[r]=o}addEndpoint(t,r,n){let i=Zu.generateServiceId(t.name),o=r.id,s=new Set,a=new Set,c=new Set;for(let u of[...t.headers,...r.headers])Y0(u.valueType,s,c);for(let u of[...t.pathParameters,...r.pathParameters])Y0(u.valueType,s,c);for(let u of r.queryParameters)Y0(u.valueType,s,c);if(n!=null&&n.request!=null&&typeof n.request!="string"){let u=oLe(n.request["query-parameters"]??{});this.queryParameters[o]={endpointId:o,parametersByAudience:u}}r.requestBody!=null&&dd._visit(r.requestBody,{inlinedRequestBody:u=>{for(let l of u.extends)CQr(l,s,c);for(let l of u.properties)Y0(l.valueType,s,c);if(n!=null&&typeof n.request=="object"&&typeof n.request.body=="object"&&Wg(n.request.body)){let l=oLe(n.request.body.properties??{});this.requestProperties[o]={endpointId:o,propertiesByAudience:l}}},reference:({requestBodyType:u})=>{Y0(u,s,c)},fileUpload:({properties:u})=>{for(let l of u)dw._visit(l,{file:vt,bodyProperty:({valueType:p})=>{Y0(p,s,c)},_other:()=>{throw new Error("Unknown FileUploadRequestProperty: "+l.type)}})},bytes:()=>{},_other:()=>{throw new Error("Unknown HttpRequestBody: "+r.requestBody?.type)}}),r.response?.body!=null&&Mu._visit(r.response.body,{fileDownload:vt,json:u=>{Y0(u.responseBodyType,s,c)},streaming:u=>{u._visit({sse:l=>Y0(l.payload,s,c),json:l=>Y0(l.payload,s,c),text:vt,_other:()=>{throw new Error("Unknown streamingResponse type: "+u.type)}})},streamParameter:u=>{u.streamResponse._visit({sse:l=>Y0(l.payload,s,c),json:l=>Y0(l.payload,s,c),text:vt,_other:()=>{throw new Error("Unknown streamingResponse type: "+u.streamResponse.type)}}),u.nonStreamResponse.type==="json"&&Y0(u.nonStreamResponse.value.responseBodyType,s,c)},text:vt,bytes:vt,_other:()=>{throw new Error("Unknown HttpResponse: "+r.response?.body?.type)}}),r.errors.forEach(u=>{a.add(Zu.generateErrorId(u.error)),c.add(u.error.fernFilepath)}),this.endpoints[o]={endpointId:o,serviceId:i,referencedTypes:s,referencedErrors:a,referencedSubpackages:c}}markEndpointForAudience(t,r,n){if(this.hasAudience(n)){let i=Zu.generateServiceId(t);this.servicesNeededForAudience.add(i),r.forEach(o=>{let s=o.id;this.endpointsNeededForAudience.add(s),this.endpoints[s]?.referencedSubpackages.forEach(a=>{this.addSubpackages(a)})}),this.servicesNeededForAudience.add(i),this.addSubpackages(t.fernFilepath)}}getFilteredSubpackages(){return this.subpackagesNeededForAudience}getFilteredServices(){return this.servicesNeededForAudience}getFilteredEndpoints(){return this.endpointsNeededForAudience}getFilteredChannels(){return this.channelsNeededForAudience}getFilteredWebhooks(){return this.webhooksNeededForAudience}addWebhook(t,r,n){let i=r.id;if(i==null)return;let o=new Set,s=new Set;r.payload!=null&&a1._visit(r.payload,{inlinedPayload:a=>{for(let c of a.extends)CQr(c,o,s);for(let c of a.properties)Y0(c.valueType,o,s);if(n?.payload!=null&&typeof n.payload=="object"&&!$tt(n.payload)){let c=oLe(n.payload.properties??{});this.webhookProperties[i]={webhookId:i,propertiesByAudience:c}}},reference:({payloadType:a})=>{Y0(a,o,s)},_other:()=>{throw new Error("Unknown WebhookPayload: "+r.payload?.type)}}),s.add(t),this.webhooks[i]={webhookId:i,referencedTypes:o,referencedSubpackages:s}}markWebhookForAudiences(t,r,n){let i=r.id;i!=null&&this.hasAudience(n)&&(this.webhooksNeededForAudience.add(i),this.addSubpackages(t))}markInlinedRequestPropertiesForAudiences(t,r){this.requestProperties[t]={endpointId:t,propertiesByAudience:r}}markQueryParametersForAudiences(t,r){this.queryParameters[t]={endpointId:t,parametersByAudience:r}}markInlinedWebhookPayloadPropertiesForAudiences(t,r){this.webhookProperties[t]={webhookId:t,propertiesByAudience:r}}addChannel(t,r,n,i){if(r==null)return;let o=new Set,s=new Set;for(let a of n.messages)YB._visit(a.body,{reference:({bodyType:c})=>{Y0(c,o,s)},inlinedBody:c=>{for(let u of c.extends)CQr(u,o,s);for(let u of c.properties)Y0(u.valueType,o,s)},_other:()=>{}});for(let a of n.queryParameters)Y0(a.valueType,o,s);s.add(t),this.channels[r]={channelId:r,referencedTypes:o,referencedSubpackages:s}}markChannelForAudiences(t,r,n){r!=null&&this.hasAudience(n)&&(this.channelsNeededForAudience.add(r),this.addSubpackages(t))}build(){let t=new Set,r=new Set;for(let a of this.endpointsNeededForAudience.keys()){let c=this.getEndpointNode(a);for(let u of c.referencedErrors){if(r.has(u))continue;r.add(u);let l=this.getErrorNode(u);this.addReferencedTypes(t,l.referencedTypes)}this.addReferencedTypes(t,c.referencedTypes)}this.addReferencedTypes(t,this.typesNeededForAudience);for(let a of this.webhooksNeededForAudience.keys()){let c=this.getWebhookNode(a);this.addReferencedTypes(t,c.referencedTypes)}for(let a of this.channelsNeededForAudience.keys()){let c=this.getChannelNode(a);this.addReferencedTypes(t,c.referencedTypes)}let n={},i={},o={},s={};if(this.audiences.type==="filtered"){let a=this.audiences.audiences;for(let[c,u]of Object.entries(this.properties))t.has(c)&&(n[c]=IQr(u.propertiesByAudience,a));for(let[c,u]of Object.entries(this.requestProperties))this.endpointsNeededForAudience.has(c)&&(i[c]=IQr(u.propertiesByAudience,a));for(let[c,u]of Object.entries(this.queryParameters))this.endpointsNeededForAudience.has(c)&&(o[c]=IQr(u.parametersByAudience,a));for(let[c,u]of Object.entries(this.webhookProperties))this.webhooksNeededForAudience.has(c)&&(s[c]=IQr(u.propertiesByAudience,a))}return new vQr({types:t,excludedProperties:n,errors:r,excludedRequestProperties:i,excludedQueryParameters:o,environments:this.environmentsNeededForAudience,services:this.servicesNeededForAudience,endpoints:this.endpointsNeededForAudience,webhooks:this.webhooksNeededForAudience,excludedWebhookPayloadProperties:s,subpackages:this.subpackagesNeededForAudience,channels:this.channelsNeededForAudience})}markTypeForService(t,r){let n=this.typesReferencedByService[t]??=new Set;if(n.has(r))return;n.add(r);let i=this.getTypeNode(t);for(let o of i.allDescendants)this.markTypeForService(this.resolveTypeId(o),r)}resolveTypeId(t){return this.schemaIdToGraphTypeId.get(t)??t}addReferencedTypes(t,r){for(let n of r){if(t.has(n))continue;t.add(n);let i=this.getTypeNode(n);if(this.audiences.type==="filtered")for(let o of this.audiences.audiences){let s=i.descendantsByAudience[o];if(s!=null)s.forEach(a=>{t.add(this.resolveTypeId(a))});else{i.allDescendants.forEach(a=>{t.add(this.resolveTypeId(a))});break}}else i.allDescendants.forEach(o=>{t.add(this.resolveTypeId(o))})}}getTypeNode(t){let r=this.types[t];if(r==null)throw new Error(`Failed to find type node with id ${t}`);return r}getErrorNode(t){let r=this.errors[t];if(r==null)throw new Error(`Failed to find error node with id ${t}`);return r}getEndpointNode(t){let r=this.endpoints[t];if(r==null)throw new Error(`Failed to find endpoint node with id ${t}`);return r}getWebhookNode(t){let r=this.webhooks[t];if(r==null)throw new Error(`Failed to find webhook node with id ${t}`);return r}getChannelNode(t){let r=this.channels[t];if(r==null)throw new Error(`Failed to find channel node with id ${t}`);return r}hasNoAudiences(){return this.audiences.type==="none"}hasAudience(t){let r=this.audiences;switch(r.type){case"none":return!0;case"filtered":return t.some(n=>r.audiences.has(n));default:we(r)}}addSubpackages(t){for(let r=1;r<=t.allParts.length;++r){let n={...t,allParts:t.allParts.slice(0,r)};this.subpackagesNeededForAudience.add(Zu.generateSubpackageId(n))}}};function IQr(e,t){let r=new Set;for(let i of t)e[i]?.forEach(o=>r.add(o));let n=new Set;for(let i of Object.values(e))i.forEach(o=>{r.has(o)||n.add(o)});return n}function I9f(e){switch(e.type){case"all":return{type:"none"};case"select":return{type:"filtered",audiences:new Set(e.audiences)};default:we(e)}}function Y0(e,t,r){_r._visit(e,{container:n=>{C9f(n,t,r)},named:n=>{CQr(n,t,r)},primitive:vt,unknown:vt,_other:vt})}function CQr(e,t,r){t.add(Zu.generateTypeId(e)),r.add(e.fernFilepath)}function C9f(e,t,r){Js._visit(e,{list:n=>{Y0(n,t,r)},map:n=>{Y0(n.keyType,t,r),Y0(n.valueType,t,r)},optional:n=>{Y0(n,t,r)},nullable:n=>{Y0(n,t,r)},set:n=>{Y0(n,t,r)},literal:vt,_other:vt})}jt();var w9f=[ir.AvailabilityStatus.GeneralAvailability];function Tpe(e){return e!=null&&!w9f.includes(e.status)}var rpo=class{errors;constructor(){this.errors=[]}add(t){this.errors.push({message:t})}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}},LLt=class{errors;constructor(){this.errors=new rpo}async check({from:t,to:r}){let n=this.toInternalIr(t),i=this.toInternalIr(r),o=hve(n),s=hve(i);if(o===s)return{bump:"no_change",isBreaking:!1,errors:[]};let a=this.checkBreaking({from:n,to:i});return{bump:a.isBreaking?"major":"minor",isBreaking:a.isBreaking,errors:a.errors}}toInternalIr(t){return{types:t.types,errors:t.errors,services:t.services}}checkBreaking({from:t,to:r}){this.checkTypeBreakingChanges({from:t.types,to:r.types}),this.checkErrorsBreakingChanges({from:t.errors,to:r.errors}),this.checkServicesBreakingChanges({from:t.services,to:r.services});let n=this.errors.hasErrors();return{bump:n?"major":"minor",isBreaking:n,errors:this.errors.getErrors()}}checkTypeBreakingChanges({from:t,to:r}){for(let[n,i]of Object.entries(t)){if(Tpe(i.availability))continue;let o=r[n];if(!o){this.errors.add(`Type "${n}" was removed.`);continue}if(Tpe(o.availability)){this.errors.add(`Type "${n}" was moved from stable to unstable availability status.`);continue}this.areTypeDeclarationsCompatible({from:i,to:o})||this.errors.add(`Type "${n}" has an incompatible change.`)}}checkErrorsBreakingChanges({from:t,to:r}){for(let[n,i]of Object.entries(t)){let o=Object.values(r).find(s=>s.name.errorId===i.name.errorId);if(!o){this.errors.add(`Error "${i.name.errorId}" with status code "${i.statusCode}" was removed.`);continue}this.checkErrorBreakingChanges({from:i,to:o})}}checkErrorBreakingChanges({from:t,to:r}){if(t.type!=null){if(r.type==null){this.errors.add(`Error "${t.name.errorId}" with status code "${t.statusCode}" had its type removed.`);return}this.areTypeReferencesCompatible({from:t.type,to:r.type})||this.errors.add(`Error "${t.name.errorId}" type reference changed.`)}this.areDeclaredErrorNamesCompatible({from:t.name,to:r.name})||this.errors.add(`Error "${t.name.errorId}" name changed.`),this.areNameAndWireValuesCompatible({from:t.discriminantValue,to:r.discriminantValue})||this.errors.add(`Error "${t.name.errorId}" discriminant value changed.`)}checkServicesBreakingChanges({from:t,to:r}){for(let[n,i]of Object.entries(t)){if(Tpe(i.availability)||(i.endpoints?.every(s=>Tpe(s.availability))??!1))continue;let o=r[n];if(!o){this.errors.add(`Service "${n}" was removed.`);continue}if(Tpe(o.availability)){this.errors.add(`Service "${n}" was moved from stable to unstable availability status.`);continue}this.checkServiceBreakingChanges({id:n,from:i,to:o})}}checkServiceBreakingChanges({id:t,from:r,to:n}){this.checkHeadersBreakingChanges({id:t,from:r.headers,to:n.headers}),this.checkEndpointsBreakingChanges({id:t,from:r,to:n})}checkEndpointsBreakingChanges({id:t,from:r,to:n}){let i=Object.fromEntries(r.endpoints.map(s=>[s.id,s])),o=Object.fromEntries(n.endpoints.map(s=>[s.id,s]));for(let[s,a]of Object.entries(i)){if(Tpe(a.availability))continue;let c=o[s];if(!c){this.errors.add(`Endpoint "${s}" was removed.`);continue}if(Tpe(c.availability)){this.errors.add(`Endpoint "${s}" was moved from stable to unstable availability status.`);continue}this.checkEndpointBreakingChanges({id:s,from:a,to:c})}}checkEndpointBreakingChanges({id:t,from:r,to:n}){this.checkHttpMethodsBreakingChanges({id:t,from:r.method,to:n.method}),this.checkHttpPathsBreakingChanges({id:t,from:r.fullPath,to:n.fullPath}),this.checkPathParametersBreakingChanges({id:t,from:r.pathParameters,to:n.pathParameters}),this.checkQueryParametersBreakingChanges({id:t,from:r.queryParameters,to:n.queryParameters}),this.checkHeadersBreakingChanges({id:t,from:r.headers,to:n.headers}),r.requestBody!=null&&(n.requestBody!=null?this.checkHttpRequestBodiesCompatible({id:t,from:r.requestBody,to:n.requestBody}):this.errors.add(`Request body was removed from endpoint "${r.id}".`)),r.response!=null&&(n.response!=null?this.checkHttpResponseBreakingChanges({id:t,from:r.response,to:n.response}):this.errors.add(`Response was removed from endpoint "${r.id}".`)),(r.pagination!=null&&n.pagination==null||r.pagination==null&&n.pagination!=null)&&this.errors.add(`Pagination was ${r.pagination!=null?"added":"removed"} from endpoint "${r.id}".`)}checkPathParametersBreakingChanges({id:t,from:r,to:n}){let i=Object.fromEntries(r.map(s=>[qr(s.name),s])),o=Object.fromEntries(n.map(s=>[qr(s.name),s]));for(let[s,a]of Object.entries(i)){let c=o[s];if(!c){this.errors.add(`Path parameter "${s}" was removed from endpoint "${t}".`);continue}this.areTypeReferencesCompatible({from:a.valueType,to:c.valueType})||this.errors.add(`Path parameter "${s}" type changed in endpoint "${t}".`)}}checkQueryParametersBreakingChanges({id:t,from:r,to:n}){let i=Object.fromEntries(r.map(s=>[or(s.name),s])),o=Object.fromEntries(n.map(s=>[or(s.name),s]));this.checkForNewRequiredTypeReferences({from:Object.fromEntries(Object.entries(i).map(([s,a])=>[s,a.valueType])),to:Object.fromEntries(Object.entries(o).map(([s,a])=>[s,a.valueType]))});for(let[s,a]of Object.entries(i)){let c=o[s];if(!c){this.errors.add(`Query parameter "${s}" was removed from endpoint "${t}".`);continue}this.areTypeReferencesCompatible({from:a.valueType,to:c.valueType})||this.errors.add(`Query parameter "${s}" type changed in endpoint "${t}".`),a.allowMultiple!==c.allowMultiple&&this.errors.add(`Query parameter "${s}" allow-multiple values changed in endpoint "${t}".`)}}checkHeadersBreakingChanges({id:t,from:r,to:n}){let i=Object.fromEntries(r.map(s=>[or(s.name),s])),o=Object.fromEntries(n.map(s=>[or(s.name),s]));this.checkForNewRequiredTypeReferences({from:Object.fromEntries(Object.entries(i).map(([s,a])=>[s,a.valueType])),to:Object.fromEntries(Object.entries(o).map(([s,a])=>[s,a.valueType]))});for(let[s,a]of Object.entries(i)){let c=o[s];if(!c){this.errors.add(`Header "${s}" was removed from ${t}.`);continue}this.areTypeReferencesCompatible({from:a.valueType,to:c.valueType})||this.errors.add(`Header "${s}" type changed in ${t}.`)}}checkHttpMethodsBreakingChanges({id:t,from:r,to:n}){r!==n&&this.errors.add(`HTTP method changed in ${t}.`)}checkHttpPathsBreakingChanges({id:t,from:r,to:n}){this.areHttpPathsCompatible({from:r,to:n})||this.errors.add(`HTTP path changed in ${t}.`)}areHttpPathsCompatible({from:t,to:r}){if(t.head!==r.head||t.parts.length!==r.parts.length)return!1;for(let n=0;n<t.parts.length;n++){let i=t.parts[n];if(i==null)return!1;let o=r.parts[n];if(o==null||i.pathParameter!==o.pathParameter||i.tail!==o.tail)return!1}return!0}checkHttpRequestBodiesCompatible({id:t,from:r,to:n}){switch(r.type){case"inlinedRequestBody":if(n.type==="inlinedRequestBody"&&this.areInlinedRequestBodiesCompatible({from:r,to:n}))return;break;case"reference":if(n.type==="reference"&&this.areReferenceRequestBodiesCompatible({from:r,to:n}))return;break;case"fileUpload":if(n.type==="fileUpload"&&this.areFileUploadRequestBodiesCompatible({from:r,to:n}))return;break;case"bytes":if(n.type==="bytes")return;break;default:we(r)}this.errors.add(`Request body type changed from "${r.type}" to "${n.type}" in endpoint "${t}".`)}areInlinedRequestBodiesCompatible({from:t,to:r}){let n=this.getInlinedRequestBody(t),i=this.getInlinedRequestBody(r);return this.checkForNewInlinedRequestBodyProperties({from:n,to:i}),Object.entries(n).every(([o,s])=>{let a=i[o];return a?this.areTypeReferencesCompatible({from:s,to:a}):(this.errors.add(`Request body property "${o}" was removed.`),!1)})}areReferenceRequestBodiesCompatible({from:t,to:r}){return this.areTypeReferencesCompatible({from:t.requestBodyType,to:r.requestBodyType})}areFileUploadRequestBodiesCompatible({from:t,to:r}){let n=this.getFileUploadRequest(t.properties),i=this.getFileUploadRequest(r.properties);this.checkForNewFileUploadRequestProperties({from:n,to:i});for(let[o,s]of Object.entries(n)){let a=i[o];if(!a)return this.errors.add(`File upload property "${o}" was removed.`),!1;if(s==="file"&&a!=="file")return this.errors.add(`File upload property "${o}" type changed.`),!1;if(s==="fileArray"&&a!=="fileArray")return this.errors.add(`File upload property "${o}" type changed.`),!1;if(s!=="file"&&s!=="fileArray"&&a!=="file"&&a!=="fileArray"&&!this.areTypeReferencesCompatible({from:s,to:a}))return this.errors.add(`File upload property "${o}" type changed.`),!1}return!0}checkHttpResponseBreakingChanges({id:t,from:r,to:n}){if(r.statusCode!==n.statusCode&&this.errors.add(`Response status code changed from "${r.statusCode}" to "${n.statusCode}".`),!(r.body==null&&n.body==null)){if(r.body==null||n.body==null){this.errors.add(`Response body was ${r.body==null?"added":"removed"}.`);return}switch(r.body.type){case"json":if(n.body.type==="json"){this.areJsonResponsesCompatible({from:r.body.value,to:n.body.value});return}break;case"fileDownload":if(n.body.type==="fileDownload")return;break;case"text":if(n.body.type==="text")return;break;case"bytes":if(n.body.type==="bytes")return;break;case"streaming":if(n.body.type==="streaming"){this.areStreamingResponsesCompatible({from:r.body.value,to:n.body.value});return}break;case"streamParameter":if(n.body.type==="streamParameter"){this.areStreamingResponsesCompatible({from:r.body.streamResponse,to:n.body.streamResponse});return}break;default:we(r.body)}this.errors.add(`HTTP response type "${r.body.type}" defined for endpoint "${t}" is not compatible with type "${n.body.type}".`)}}areJsonResponsesCompatible({from:t,to:r}){return this.areTypeReferencesCompatible({from:t.responseBodyType,to:r.responseBodyType})}areStreamingResponsesCompatible({from:t,to:r}){switch(t.type){case"json":if(r.type==="json")return this.areTypeReferencesCompatible({from:t.payload,to:r.payload});break;case"sse":if(r.type==="sse")return this.areTypeReferencesCompatible({from:t.payload,to:r.payload});break;case"text":if(r.type==="text")return!0;break;default:we(t)}return this.errors.add(`Streaming response type "${t.type}" is not compatible with type "${r.type}".`),!1}areTypeDeclarationsCompatible({from:t,to:r}){return Tpe(t.availability)?!0:this.areDeclaredTypeNamesCompatible({from:t.name,to:r.name})&&this.areTypeShapesCompatible({from:t.shape,to:r.shape})}areTypeShapesCompatible({from:t,to:r}){switch(t.type){case"alias":if(r.type==="alias")return this.areAliasTypesCompatible({from:t,to:r});break;case"enum":if(r.type==="enum")return this.areEnumTypesCompatible({from:t,to:r});break;case"object":if(r.type==="object")return this.areObjectTypesCompatible({from:t,to:r});break;case"union":if(r.type==="union")return this.areUnionTypesCompatible({from:t,to:r});break;case"undiscriminatedUnion":if(r.type==="undiscriminatedUnion")return this.areUndiscriminatedUnionTypesCompatible({from:t,to:r});break;default:we(t)}return this.errors.add(`Type "${t.type}" is not compatible with type "${r.type}".`),!1}areAliasTypesCompatible({from:t,to:r}){return this.areTypeReferencesCompatible({from:t.aliasOf,to:r.aliasOf})}areEnumTypesCompatible({from:t,to:r}){let n=Object.fromEntries(t.values.map(o=>[or(o.name),o])),i=Object.fromEntries(r.values.map(o=>[or(o.name),o]));return Object.keys(n).length!==Object.keys(i).length?!1:Object.values(n).every(o=>{let s=i[or(o.name)];return s?this.areNameAndWireValuesCompatible({from:o.name,to:s.name}):(this.errors.add(`Enum value "${or(o.name)}" was removed.`),!1)})}areObjectTypesCompatible({from:t,to:r}){let n=Object.fromEntries([...t.properties.map(o=>[or(o.name),o]),...t.extendedProperties?.map(o=>[or(o.name),o])??[]]),i=Object.fromEntries([...r.properties.map(o=>[or(o.name),o]),...r.extendedProperties?.map(o=>[or(o.name),o])??[]]);return this.checkForNewRequiredTypeReferences({from:Object.fromEntries(Object.entries(n).map(([o,s])=>[o,s.valueType])),to:Object.fromEntries(Object.entries(i).map(([o,s])=>[o,s.valueType]))}),Object.values(n).every(o=>{let s=i[or(o.name)];return s?this.areObjectPropertiesCompatible({from:o,to:s}):(this.errors.add(`Object property "${or(o.name)}" was removed.`),!1)})}areObjectPropertiesCompatible({from:t,to:r}){return this.areNameAndWireValuesCompatible({from:t.name,to:r.name})&&this.areTypeReferencesCompatible({from:t.valueType,to:r.valueType})}areUnionTypesCompatible({from:t,to:r}){if(!this.areNameAndWireValuesCompatible({from:t.discriminant,to:r.discriminant}))return this.errors.add(`Union type with discriminant value "${or(t.discriminant)}" changed.`),!1;let n=new Set(t.extends.map(u=>this.getKeyForDeclaration(u))),i=new Set(r.extends.map(u=>this.getKeyForDeclaration(u)));for(let u of n)if(!i.has(u))return this.errors.add(`Extended type "${u}" was removed.`),!1;let o=Object.fromEntries(t.baseProperties.map(u=>[or(u.name),u])),s=Object.fromEntries(r.baseProperties.map(u=>[or(u.name),u]));for(let u of Object.values(o)){let l=s[or(u.name)];if(!l)return this.errors.add(`Union type with discriminant value "${or(u.name)}" no longer has a property named "${or(u.name)}".`),!1;if(!this.areObjectPropertiesCompatible({from:u,to:l}))return!1}this.checkForNewRequiredTypeReferences({from:Object.fromEntries(Object.entries(o).map(([u,l])=>[u,l.valueType])),to:Object.fromEntries(Object.entries(s).map(([u,l])=>[u,l.valueType]))});let a=Object.fromEntries(t.types.map(u=>[or(u.discriminantValue),u])),c=Object.fromEntries(r.types.map(u=>[or(u.discriminantValue),u]));return Object.values(a).every(u=>{let l=c[or(u.discriminantValue)];return l?this.areSingleUnionTypesCompatible({from:u.shape,to:l.shape}):(this.errors.add(`Union type for discriminant value "${or(u.discriminantValue)}" was removed.`),!1)})}areSingleUnionTypesCompatible({from:t,to:r}){switch(t.propertiesType){case"samePropertiesAsObject":if(r.propertiesType==="samePropertiesAsObject")return this.areDeclaredTypeNamesCompatible({from:t,to:r});break;case"singleProperty":if(r.propertiesType==="singleProperty")return this.areNameAndWireValuesCompatible({from:t.name,to:r.name})&&this.areTypeReferencesCompatible({from:t.type,to:r.type});break;case"noProperties":if(r.propertiesType==="noProperties")return!0;break;default:we(t)}return this.errors.add(`Single union type of style "${t.propertiesType}" is not compatible with style "${r.propertiesType}".`),!1}areUndiscriminatedUnionTypesCompatible({from:t,to:r}){return t.members.every((n,i)=>{let o=r.members[i];return o?this.areTypeReferencesCompatible({from:n.type,to:o.type}):(this.errors.add(`Undiscriminated union member at index ${i} was removed.`),!1)})}checkForNewRequiredTypeReferences({from:t,to:r}){for(let[n,i]of Object.entries(r))t[n]||(i.type!=="container"||i.container.type!=="optional")&&this.errors.add(`Required property "${n}" was added.`)}checkForNewFileUploadRequestProperties({from:t,to:r}){for(let[n,i]of Object.entries(r))t[n]||i==="file"||i==="fileArray"||(i.type!=="container"||i.container.type!=="optional")&&this.errors.add(`Required property "${n}" was added.`)}checkForNewInlinedRequestBodyProperties({from:t,to:r}){for(let[n,i]of Object.entries(r))t[n]||(i.type!=="container"||i.container.type!=="optional")&&this.errors.add(`Required property "${n}" was added.`)}areTypeReferencesCompatible({from:t,to:r}){switch(t.type){case"primitive":if(r.type==="primitive")return this.arePrimitiveTypesCompatible({from:t,to:r});break;case"container":if(r.type==="container")return this.areContainerTypesCompatible({from:t.container,to:r.container});break;case"named":if(r.type==="named")return this.areNamedTypesCompatible({from:t,to:r});break;case"unknown":if(r.type==="unknown")return!0;break;default:we(t)}return this.errors.add(`TypeReference "${t.type}" is not compatible with type "${r.type}".`),!1}arePrimitiveTypesCompatible({from:t,to:r}){return t.primitive.v1===r.primitive.v1}areContainerTypesCompatible({from:t,to:r}){switch(t.type){case"list":if(r.type==="list")return this.areTypeReferencesCompatible({from:t.list,to:r.list});break;case"set":if(r.type==="set")return this.areTypeReferencesCompatible({from:t.set,to:r.set});break;case"map":if(r.type==="map")return this.areTypeReferencesCompatible({from:t.keyType,to:r.keyType})&&this.areTypeReferencesCompatible({from:t.valueType,to:r.valueType});break;case"optional":if(r.type==="optional")return this.areTypeReferencesCompatible({from:t.optional,to:r.optional});break;case"nullable":if(r.type==="nullable")return this.areTypeReferencesCompatible({from:t.nullable,to:r.nullable});break;case"literal":if(r.type==="literal")return this.areLiteralsCompatible({from:t.literal,to:r.literal});break;default:we(t)}return this.errors.add(`Container type "${t.type}" is not compatible with type "${r.type}".`),!1}areNamedTypesCompatible({from:t,to:r}){return this.areNamesCompatible({from:t.name,to:r.name})&&this.areFernFilepathsCompatible({from:t.fernFilepath,to:r.fernFilepath})}areDeclaredTypeNamesCompatible({from:t,to:r}){return this.areNamesCompatible({from:t.name,to:r.name})&&this.areFernFilepathsCompatible({from:t.fernFilepath,to:r.fernFilepath})}areDeclaredErrorNamesCompatible({from:t,to:r}){return this.areNamesCompatible({from:t.name,to:r.name})&&this.areFernFilepathsCompatible({from:t.fernFilepath,to:r.fernFilepath})}areNameAndWireValuesCompatible({from:t,to:r}){return this.areNamesCompatible({from:gQr(t),to:gQr(r)})&&or(t)===or(r)}areLiteralsCompatible({from:t,to:r}){switch(t.type){case"boolean":if(r.type==="boolean")return t.boolean===r.boolean;break;case"string":if(r.type==="string")return t.string===r.string;break;default:we(t)}return!1}areFernFilepathsCompatible({from:t,to:r}){return t.allParts.length!==r.allParts.length?!1:t.allParts.every((n,i)=>{let o=r.allParts[i];return o==null?!1:this.areNamesCompatible({from:n,to:o})})}areNamesCompatible({from:t,to:r}){return qr(t)===qr(r)}getInlinedRequestBody(t){let r={};for(let n of[...t.extendedProperties??[],...t.properties])r[or(n.name)]=n.valueType;return r}getFileUploadRequest(t){let r={};for(let n of t)switch(n.type){case"file":r[or(n.value.key)]="file";break;case"bodyProperty":r[or(n.name)]=n.valueType;break;default:we(n)}return r}getKeyForDeclaration({name:t,fernFilepath:r}){return`${r.allParts.map(i=>qr(i)).join(".")}.${qr(t)}`}};function aLe(e,t,r){let{environments:n,changedBaseUrlIds1:i,changedBaseUrlIds2:o}=S9f(e.environments,t.environments,r),{services:s,websocketChannels:a}=T9f(e,t,i,o);return{apiName:e.apiName,basePath:e.basePath,selfHosted:e.selfHosted&&t.selfHosted,apiDisplayName:e.apiDisplayName??t.apiDisplayName,apiDocs:e.apiDocs??t.apiDocs,auth:{requirement:e.auth?.requirement??t.auth?.requirement,schemes:t.auth?.schemes?.length!=null&&t.auth.schemes.length>(e.auth?.schemes?.length??0)?t.auth.schemes:e.auth?.schemes??[],docs:e.auth?.docs??t.auth?.docs},headers:$uc([...e.headers??[],...t.headers??[]]),environments:n,types:{...e.types??{},...t.types??{}},constants:{...e.constants??{},...t.constants??{}},errors:{...e.errors??{},...t.errors??{}},services:s,webhookGroups:{...e.webhookGroups??{},...t.webhookGroups??{}},subpackages:x9f(e.subpackages,t.subpackages),websocketChannels:a,rootPackage:{service:e.rootPackage.service??t.rootPackage.service,types:[...e.rootPackage.types??[],...t.rootPackage.types??[]],errors:[...e.rootPackage.errors??[],...t.rootPackage.errors??[]],subpackages:[...e.rootPackage.subpackages??[],...(t.rootPackage.subpackages??[]).filter(c=>!e.rootPackage.subpackages?.includes(c))],fernFilepath:e.rootPackage.fernFilepath??t.rootPackage.fernFilepath,webhooks:e.rootPackage.webhooks??t.rootPackage.webhooks,websocket:e.rootPackage.websocket??t.rootPackage.websocket,hasEndpointsInTree:e.rootPackage.hasEndpointsInTree||t.rootPackage.hasEndpointsInTree,hasWebSocketInTree:(e.rootPackage.hasWebSocketInTree??!1)||(t.rootPackage.hasWebSocketInTree??!1)||void 0,navigationConfig:e.rootPackage.navigationConfig??t.rootPackage.navigationConfig,docs:e.rootPackage.docs??t.rootPackage.docs},fdrApiDefinitionId:e.fdrApiDefinitionId??t.fdrApiDefinitionId,apiVersion:e.apiVersion??t.apiVersion,idempotencyHeaders:$uc([...e.idempotencyHeaders??[],...t.idempotencyHeaders??[]]),pathParameters:[...e.pathParameters??[],...t.pathParameters??[]],errorDiscriminationStrategy:e.errorDiscriminationStrategy??t.errorDiscriminationStrategy,variables:[...e.variables??[],...t.variables??[]],serviceTypeReferenceInfo:e.serviceTypeReferenceInfo??t.serviceTypeReferenceInfo,readmeConfig:e.readmeConfig??t.readmeConfig,sourceConfig:e.sourceConfig??t.sourceConfig,publishConfig:e.publishConfig??t.publishConfig,dynamic:e.dynamic??t.dynamic,sdkConfig:e.sdkConfig??t.sdkConfig,audiences:[...e.audiences??[],...t.audiences??[]],generationMetadata:e.generationMetadata??t.generationMetadata,apiPlayground:e.apiPlayground??t.apiPlayground,casingsConfig:e.casingsConfig??t.casingsConfig}}function x9f(e,t){let r=e;for(let[n,i]of Object.entries(t))r[n]==null?r[n]=i:r[n]={name:i.name,displayName:i.displayName,fernFilepath:i.fernFilepath,hasEndpointsInTree:r[n].hasEndpointsInTree||i.hasEndpointsInTree,hasWebSocketInTree:(r[n].hasWebSocketInTree??!1)||(i.hasWebSocketInTree??!1)||void 0,navigationConfig:r[n].navigationConfig??i.navigationConfig,docs:r[n].docs??i.docs,service:r[n].service??i.service,subpackages:[...r[n].subpackages??[],...(i.subpackages??[]).filter(o=>!r[n]?.subpackages?.includes(o))],webhooks:r[n].webhooks??i.webhooks,websocket:r[n].websocket??i.websocket,errors:[...r[n].errors??[],...i.errors??[]],types:[...r[n].types??[],...i.types??[]]};return r}function S9f(e,t,r){if(e==null&&t==null)return{environments:void 0,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};if(t==null)return{environments:e,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};if(e==null)return{environments:t,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};if(JSON.stringify(e)===JSON.stringify(t))return{environments:e,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};let n=Zuc(e),i=Zuc(t);if(n&&i&&e.environments.type==="singleBaseUrl"&&t.environments.type==="singleBaseUrl")return{environments:{defaultEnvironment:e.defaultEnvironment??t.defaultEnvironment,environments:k0.singleBaseUrl({environments:[...e.environments.environments,...t.environments.environments]})},changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};let o=n?t.defaultEnvironment:e.defaultEnvironment,s=e.environments,a=t.environments;if(s.type==="singleBaseUrl"&&a.type==="singleBaseUrl"){let c=n?a:s,u=n?s:a,l={},{deconflictedEnvironments2:p,changedBaseUrlIds2:d}=B9f(c,u,r);if(c.environments[0]==null)return{environments:t,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0};let f="Base",m=r.generateName("Base");return c.environments.forEach(h=>{l[h.id]=f}),{environments:{defaultEnvironment:o,environments:k0.multipleBaseUrls({baseUrls:[{id:f,name:m},...p.environments.map(h=>({id:h.id,name:h.name}))],environments:c.environments.map(h=>({id:h.id,name:h.name,urls:{[f]:h.url,...Object.fromEntries(p.environments.map(A=>[A.id,A.url]))},docs:void 0,audiences:h.audiences,defaultUrls:void 0,urlTemplates:void 0,urlVariables:void 0}))})},changedBaseUrlIds1:n?d:l,changedBaseUrlIds2:n?l:d}}if(s.type==="multipleBaseUrls"&&a.type==="singleBaseUrl"||s.type==="singleBaseUrl"&&a.type==="multipleBaseUrls"){let c=s.type==="singleBaseUrl"?s:a,u=s.type==="multipleBaseUrls"?s:a,{deconflictedEnvironments1:l,changedBaseUrlIds1:p}=O9f(c,u,r);return{environments:{defaultEnvironment:o,environments:k0.multipleBaseUrls({baseUrls:[...u.baseUrls,...l.environments.map(d=>({id:d.id,name:d.name}))],environments:u.environments.map(d=>({...d,urls:{...d.urls,...Object.fromEntries(l.environments.map(f=>[f.id,f.url]))}}))})},changedBaseUrlIds1:s.type==="singleBaseUrl"?p:void 0,changedBaseUrlIds2:s.type==="singleBaseUrl"?void 0:p}}if(s.type==="multipleBaseUrls"&&a.type==="multipleBaseUrls"){let{deconflictedEnvironments:c,changedBaseUrlIds:u}=P9f(s,a,r);return{environments:{defaultEnvironment:o,environments:k0.multipleBaseUrls({baseUrls:[...s.baseUrls,...c.baseUrls],environments:s.environments.flatMap(l=>c.environments.map(p=>({...l,urls:{...l.urls,...p.urls}})))})},changedBaseUrlIds1:void 0,changedBaseUrlIds2:u}}return{environments:e??t,changedBaseUrlIds1:void 0,changedBaseUrlIds2:void 0}}function T9f(e,t,r,n){if(r!=null)for(let[s,a]of Object.entries(r)){for(let c of Object.values(e.services))for(let u of Object.values(c.endpoints))u.baseUrl==s&&(u.baseUrl=a),u.v2BaseUrls?.includes(s)&&(u.v2BaseUrls=u.v2BaseUrls.map(l=>l===s?a:l));for(let c of Object.values(e.websocketChannels??{}))c.baseUrl==s&&(c.baseUrl=a)}if(n!=null)for(let[s,a]of Object.entries(n)){for(let c of Object.values(t.services))for(let u of Object.values(c.endpoints))u.baseUrl==s&&(u.baseUrl=a),u.v2BaseUrls?.includes(s)&&(u.v2BaseUrls=u.v2BaseUrls.map(l=>l===s?a:l));for(let c of Object.values(t.websocketChannels??{}))c.baseUrl==s&&(c.baseUrl=a)}let i=e.services;for(let[s,a]of Object.entries(t.services))i[s]==null?i[s]=a:i[s]={availability:a.availability,name:a.name,displayName:a.displayName,basePath:a.basePath,endpoints:[...i[s].endpoints??[],...a.endpoints],pathParameters:[...i[s].pathParameters??[],...a.pathParameters??[]],headers:[...i[s].headers??[],...a.headers??[]],encoding:a.encoding,transport:a.transport,audiences:[...i[s].audiences??[],...a.audiences??[]]};let o={...e.websocketChannels??{},...t.websocketChannels??{}};return{services:i,websocketChannels:o}}function B9f(e,t,r){let n={},i=new Set(e.environments.map(u=>u.id)),o=new Set(e.environments.map(u=>u.name)),s=new Map(e.environments.map(u=>[u.url,u.id])),a=t.environments.filter(u=>{let l=s.get(u.url);return l!=null?(n[u.id]=l,!1):!0}).map(u=>{if(i.has(u.id)||o.has(u.name)){let l=npo(u.id,i);return n[u.id]=l,{...u,id:l,name:r.generateName(l)}}return u});return{deconflictedEnvironments2:k0.singleBaseUrl({environments:a}),changedBaseUrlIds2:n}}function O9f(e,t,r){let n={},i=new Set(t.baseUrls.map(c=>c.id)),o=new Set(t.baseUrls.map(c=>c.name)),s=e.environments.map(c=>{if(i.has(c.id)||o.has(c.name)){let u=npo(c.id,i);return n[c.id]=u,{...c,id:u,name:r.generateName(u)}}return c});return{deconflictedEnvironments1:k0.singleBaseUrl({environments:s}),changedBaseUrlIds1:n}}function P9f(e,t,r){let n={},i=new Set(e.baseUrls.map(u=>u.id)),o=new Set(e.baseUrls.map(u=>u.name)),s=t.baseUrls.map(u=>{if(i.has(u.id)||o.has(u.name)){let l=npo(u.id,i);return n[u.id]=l,{...u,id:l,name:r.generateName(l)}}return u}),a=t.environments.map(u=>({...u,urls:Object.fromEntries(Object.entries(u.urls).map(([l,p])=>[n[l]??l,p]))}));return{deconflictedEnvironments:k0.multipleBaseUrls({baseUrls:s,environments:a}),changedBaseUrlIds:n}}function Zuc(e){return e.environments.type==="singleBaseUrl"?e.environments.environments.some(t=>t.url&&(t.url.startsWith("ws://")||t.url.startsWith("wss://"))):e.environments.type==="multipleBaseUrls"?e.environments.environments.some(t=>Object.values(t.urls).some(r=>r&&(r.startsWith("ws://")||r.startsWith("wss://")))):!1}function $uc(e){let t=new Set;return e.filter(r=>{let n=or(r.name).toLowerCase();return t.has(n)?!1:(t.add(n),!0)})}function npo(e,t){let r=e,n=1;for(;t.has(r);)r=`${e}-${n}`,n++;return r}Ut();Ry();function jQ({relativeFilepath:e,casingsGenerator:t}){let r=TU(e),n=JS(e,{stripExtension:!0}),i=r==="."?[]:r.split("/").map(a=>t.generateName(a)),o=n!==xNe?t.generateName(n):void 0,s=[];return s.push(...i),o!=null&&s.push(o),{allParts:s,packagePath:i,file:o}}Ry();function Eve({referencedIn:e,importPath:t}){return Uv(TU(e),t)}function H3({reference:e,referencedIn:t,imports:r}){let[n,i,...o]=e.split(".");if(n==null||o.length>0)return;if(i==null)return{typeName:n,relativeFilepath:t};let a=r[n];if(a!=null)return{relativeFilepath:Eve({referencedIn:t,importPath:a}),typeName:i}}function _1({typeName:e,file:t}){let r=H3({reference:e,referencedIn:t.relativeFilepath,imports:t.imports});if(r==null)throw new R({message:"Failed to locate type: "+e,code:R.Code.ResolutionError});let n={name:t.casingsGenerator.generateName(r.typeName),fernFilepath:jQ({relativeFilepath:r.relativeFilepath,casingsGenerator:t.casingsGenerator}),displayName:void 0};return{...n,typeId:Zu.generateTypeId(n)}}jt();function zLt(e){if(e!=null)return e=e.replace(/\*\//g,"* /"),e.endsWith(`
3050
- `)||e.endsWith("\r")?e.substring(0,e.length-1):e}var D9f={docs:void 0,availability:void 0};function V1(e){return typeof e=="string"?D9f:{docs:zLt(e.docs),availability:QQ(e.availability)}}function QQ(e){if(e!=null)return{status:R9f(typeof e=="string"?e:e.status),message:typeof e!="string"?e.message:void 0}}function elc(e){return typeof e=="string"?[]:e.audiences??[]}function R9f(e){switch(e){case"in-development":return Hm.InDevelopment;case"pre-release":return Hm.PreRelease;case"deprecated":return Hm.Deprecated;case"generally-available":return Hm.GeneralAvailability;case"alpha":return Hm.Alpha;case"beta":return Hm.Beta;case"preview":return Hm.Preview;case"legacy":return Hm.Legacy;default:we(e)}}jt();function tlc({object:e,file:t}){return Mc.object({extends:vW(e.extends).map(r=>_1({typeName:r,file:t})),properties:ULt(e,t),extraProperties:e["extra-properties"]??!1,extendedProperties:void 0})}function ULt(e,t){return e.properties==null?[]:Object.entries(e.properties).map(([r,n])=>({...V1(n),name:t.casingsGenerator.generateNameAndWireValue({wireValue:r,name:kw({propertyKey:r,property:n}).name}),valueType:t.parseTypeReference(n),propertyAccess:vve({property:n}),defaultValue:typeof n!="string"?n.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}}}))}function vW(e){return e==null?[]:typeof e=="string"?[e]:e}function kw({propertyKey:e,property:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function vve({property:e}){if(typeof e=="string")return;let t=e.access;if(t!=null)switch(t){case"read-only":return W2e.ReadOnly;case"write-only":return W2e.WriteOnly;default:we(t)}}function nlc({request:e,file:t}){let r=e!=null?ARt(e):void 0;if(r!=null)return dd.bytes({isOptional:r.isOptional,contentType:typeof e=="string"?void 0:e?.["content-type"],docs:typeof e=="string"?void 0:e?.docs,v2Examples:void 0});if(typeof e=="string")return dd.reference(wQr({requestBody:e,file:t}));if(e?.body==null)return;let n=$2e(e);if(n!=null)return dd.fileUpload({contentType:e["content-type"],name:t.casingsGenerator.generateName(n.name),properties:n.properties.map(i=>i.isFile?i.isArray?dw.file(qj.fileArray({key:t.casingsGenerator.generateNameAndWireValue({wireValue:i.key,name:i.key}),isOptional:i.isOptional,contentType:i.contentType,docs:i.docs})):dw.file(qj.file({key:t.casingsGenerator.generateNameAndWireValue({wireValue:i.key,name:i.key}),isOptional:i.isOptional,contentType:i.contentType,docs:i.docs})):dw.bodyProperty({...rlc({propertyKey:i.key,propertyDefinition:i.propertyType,docs:i.docs,availability:QQ(i.availability),file:t}),style:i.style??k9f(i.contentType),contentType:i.contentType})),docs:e.docs,v2Examples:void 0});if(Wg(e.body)){if(e.name==null)throw new R({message:"Name is missing for inlined request",code:R.Code.InternalError});return dd.inlinedRequestBody({name:t.casingsGenerator.generateName(e.name),extends:vW(e.body.extends).map(i=>_1({typeName:i,file:t})),contentType:e["content-type"],docs:e.docs,properties:e.body.properties!=null?Object.entries(e.body.properties).map(([i,o])=>rlc({propertyKey:i,propertyDefinition:o,docs:typeof o!="string"?o.docs:void 0,availability:typeof o!="string"?QQ(o.availability):void 0,file:t})):[],extraProperties:e.body["extra-properties"]??!1,extendedProperties:void 0,v2Examples:void 0})}return dd.reference(wQr({requestBody:e.body,file:t,contentType:e["content-type"]}))}var F9f={"application/json":"json"};function k9f(e){return e?F9f[e]:void 0}function wQr({requestBody:e,file:t,contentType:r}){return{docs:typeof e!="string"?e.docs:void 0,requestBodyType:t.parseTypeReference(e),contentType:r,v2Examples:void 0}}function rlc({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:kw({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t),defaultValue:typeof t!="string"?t.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}},propertyAccess:void 0}}Ut();jt();Ut();function cLe({typeResolver:e,file:t,resolvedType:r,property:n}){switch(r._type){case"container":if(r.container._type==="optional")return cLe({typeResolver:e,file:t,resolvedType:r.container.itemType,property:n});break;case"named":if(Of(r.declaration))return ipo({typeResolver:e,file:r.file,objectSchema:r.declaration,property:n});break;case"primitive":case"unknown":break;default:we(r)}throw new R({message:"Internal error; response must be an object in order to return a property as a response",code:R.Code.InternalError})}function ipo({typeResolver:e,file:t,objectSchema:r,property:n}){let o=ilc(r,t,e)[n];if(o==null)throw new R({message:`Object does not have a property named ${n}.`,code:R.Code.ReferenceError});return o}function ilc(e,t,r){let n=[];typeof e.extends=="string"?n=[e.extends]:Array.isArray(e.extends)&&(n=e.extends);let i={};for(let s of n){let a=N9f(s,t,r);Object.entries(a).map(([c,u])=>{i[c]=u})}return ULt(e,t).forEach(s=>{let a=qr(s.name);i[a]=s}),i}function N9f(e,t,r){let n=r.resolveNamedTypeOrThrow({referenceToNamedType:e,file:t});if(n._type==="named"&&Of(n.declaration))return ilc(n.declaration,t,r);throw new R({message:`Extended type ${e} must be another named type`,code:R.Code.InternalError})}function xQr({typeResolver:e,file:t,resolvedType:r,propertyComponents:n}){if(n.length===0)return;if(n.length===1)return cLe({typeResolver:e,file:t,resolvedType:r,property:n[0]??""});let i=slc(r);if(i!=null)return SQr({typeResolver:e,file:t,objectSchema:i,propertyComponents:n})}function SQr({typeResolver:e,file:t,objectSchema:r,propertyComponents:n}){if(n.length===0)return;if(n.length===1)return ipo({typeResolver:e,file:t,objectSchema:r,property:n[0]??""});let i=j9f({typeResolver:e,file:t,objectSchema:r,property:n[0]??""}),o=e.resolveTypeOrThrow({type:i,file:t});return xQr({typeResolver:e,file:ert(o)??t,resolvedType:o,propertyComponents:n.slice(1)})}function j9f({typeResolver:e,file:t,objectSchema:r,property:n}){let o=olc({typeResolver:e,file:t,objectSchema:r})[n];if(o==null)throw new R({message:`Response does not have a property named ${n}.`,code:R.Code.ReferenceError});return o}function olc({typeResolver:e,file:t,objectSchema:r}){let n=[];typeof r.extends=="string"?n=[r.extends]:Array.isArray(r.extends)&&(n=r.extends);let i={};for(let o of n){let s=Q9f({typeResolver:e,file:t,extendedType:o});Object.entries(s).map(([a,c])=>{i[a]=c})}return r.properties!=null&&Object.entries(r.properties).map(([o,s])=>{i[o]=typeof s=="string"?s:s.type}),i}function Q9f({typeResolver:e,file:t,extendedType:r}){let n=e.resolveNamedTypeOrThrow({referenceToNamedType:r,file:t});if(n._type==="named"&&Of(n.declaration))return olc({typeResolver:e,file:ert(n)??t,objectSchema:n.declaration});throw new R({message:`Extended type ${r} must be another named type.`,code:R.Code.InternalError})}function ert(e){if(e!=null){if(e._type==="named")return e.file;if(e._type==="container"&&e.container._type==="optional")return ert(e.container.itemType)}}function slc(e){if(e!=null){if(e._type==="named"&&Of(e.declaration))return e.declaration;if(e._type==="container"&&e.container._type==="optional")return slc(e.container.itemType)}}function IW(e){return e.substring(9)?.split(".")??[]}function FO(e){return e.substring(10)?.split(".")??[]}var TQr="request",_Lt="body";function clc({request:e,endpointKey:t,endpoint:r,service:n,file:i,typeResolver:o,propertyResolver:s}){let a=M9f({request:e,service:n,file:i,typeResolver:o});if(a!=null)return{shape:a,requestParameterName:i.casingsGenerator.generateName(TQr),streamParameter:r["stream-condition"]!=null?s.resolveRequestPropertyOrThrow({file:i,endpoint:t,propertyComponents:IW(r["stream-condition"])}):void 0}}function M9f({service:e,request:t,file:r,typeResolver:n}){let i=()=>{if(typeof t=="string"||t?.name==null)throw new R({message:"Name is missing for request wrapper",code:R.Code.InternalError});return zU.wrapper({wrapperName:r.casingsGenerator.generateName(t.name),bodyKey:r.casingsGenerator.generateName(_Lt),includePathParameters:z9f(t),onlyPathParameters:L9f({request:t,file:r,typeResolver:n})})};if(!opo({headers:e.headers??{},file:r,typeResolver:n}))return i();if(t==null)return;if(typeof t=="string")return zU.justRequestBody(alc({requestBody:t,file:r}));let{body:o}=t;if(BQr({request:t,file:r,typeResolver:n})||o!=null&&Wg(o))return i();if(o!=null)return zU.justRequestBody(alc({requestBody:o,file:r}))}function alc({requestBody:e,file:t,contentType:r}){let n=typeof e=="string"?KU(e):KU(e.type);return n!=null?c9.bytes({isOptional:n.isOptional,contentType:r,docs:void 0,v2Examples:void 0}):c9.typeReference(wQr({requestBody:e,file:t,contentType:r}))}function BQr({request:e,file:t,typeResolver:r}){let{headers:n={},"path-parameters":i={},"query-parameters":o={}}=e;return!opo({headers:n,file:t,typeResolver:r})||Lh(i)>0||Lh(o)>0}function L9f({request:e,file:t,typeResolver:r}){let{headers:n={},"path-parameters":i={},"query-parameters":o={}}=e;return Lh(i)>0&&opo({headers:n,file:t,typeResolver:r})&&Lh(o)===0&&e.body==null}function z9f(e){return typeof e!="string"&&e?.["path-parameters"]!=null}function opo({headers:e,file:t,typeResolver:r}){return Object.values(e).filter(n=>{let i=typeof n=="string"?n:n.type,o=r.resolveTypeOrThrow({type:i,file:t});return!(o._type==="container"&&o.container._type==="literal")}).length===0}jt();Ut();var jQr=xe(eh(),1);function CW(e){return typeof e.request!="string"&&e.request?.["path-parameters"]?e.request?.["path-parameters"]:e["path-parameters"]!=null?e["path-parameters"]:{}}function OQr(e,t){let r=U9f(e);if(r.length===0)return t;let n=new Map;for(let s of t)n.set(qr(s.name),s);let i=[],o=new Set;for(let s of r){let a=n.get(s);a!=null&&(i.push(a),o.add(s))}for(let s of t)o.has(qr(s.name))||i.push(s);return i}function U9f(e){let t=[],r=/{([^}]+)}/g,n;for(;(n=r.exec(e))!==null;)n[1]!=null&&t.push(n[1]);return t}function ulc({codeSample:e,file:t}){return Oki(e,{language:r=>A3.language({name:r.name!=null?t.casingsGenerator.generateName(r.name):void 0,docs:r.docs,language:r.language,code:r.code,install:r.install}),sdk:r=>A3.sdk({name:r.name!=null?t.casingsGenerator.generateName(r.name):void 0,docs:r.docs,sdk:_9f(r.sdk),code:r.code})})}function _9f(e){switch(e){case"js":return"javascript";case"node":return"javascript";case"ts":return"typescript";case"nodets":return"typescript";case"golang":return"go";case"dotnet":return"csharp";case"c#":return"csharp";case"jvm":return"java";default:return e}}function VLt(e){if(e!=null){if(typeof e=="string")return j0.string(e);if(typeof e=="boolean")return j0.boolean(e)}}jt();Ut();var klc=xe(eh(),1);Ut();function Ive({errorName:e,file:t}){let r=H3({reference:e,referencedIn:t.relativeFilepath,imports:t.imports});if(r==null)throw new R({message:"Failed to locate error "+e,code:R.Code.ResolutionError});let n={name:t.casingsGenerator.generateName(r.typeName),fernFilepath:jQ({relativeFilepath:r.relativeFilepath,casingsGenerator:t.casingsGenerator})};return{...n,errorId:Zu.generateErrorId(n)}}function llc(e){if(typeof e=="string"||e.availability==null)return;let t=typeof e.availability=="string"?{status:e.availability}:e.availability;return QQ(e.availability)}function plc(e){if(typeof e!="string")return e["display-name"]}function spo(e){if(typeof e!="string")return e.docs}var flc="value";function dlc({union:e,file:t,typeResolver:r}){let n=Bpe(e),i=e["default-variant"],o=Object.entries(e.union).map(([a,c])=>{let u=typeof c=="string"?c:typeof c.type=="string"?c.type:void 0,l=t.casingsGenerator.generateNameAndWireValue({wireValue:a,name:rrt({unionKey:a,rawSingleUnionType:c}).name}),p=spo(c);if(u==null)return{discriminantValue:l,docs:p,shape:s1.noProperties(),displayName:void 0,availability:void 0};let d=t.parseTypeReference(u);return{discriminantValue:l,shape:apo({rawSingleUnionType:c,rawValueType:u,parsedValueType:d,file:t,typeResolver:r}),docs:spo(c),displayName:plc(c),availability:llc(c)}}),s=i!=null?o.find(a=>(typeof a.discriminantValue=="string"?a.discriminantValue:a.discriminantValue.wireValue)===i):void 0;return Mc.union({discriminant:t.casingsGenerator.generateNameAndWireValue({wireValue:n,name:trt(e).name}),extends:vW(e.extends).map(a=>_1({typeName:a,file:t})),baseProperties:e["base-properties"]!=null?Object.entries(e["base-properties"]).map(([a,c])=>({...V1(c),name:t.casingsGenerator.generateNameAndWireValue({wireValue:a,name:kw({propertyKey:a,property:c}).name}),valueType:t.parseTypeReference(c),propertyAccess:vve({property:c}),defaultValue:typeof c!="string"?c.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}}})):[],types:o,default:s,discriminatorContext:W9f({union:e})})}function Bpe(e){return e.discriminant==null?"type":typeof e.discriminant=="string"?e.discriminant:e.discriminant.value}function trt(e){return e.discriminant!=null&&typeof e.discriminant!="string"&&e.discriminant.name!=null?{name:e.discriminant.name,wasExplicitlySet:!0}:{name:Bpe(e),wasExplicitlySet:!1}}function rrt({unionKey:e,rawSingleUnionType:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function apo({rawSingleUnionType:e,rawValueType:t,parsedValueType:r,file:n,typeResolver:i}){let o=typeof e!="string"?e.key:void 0,s=i.resolveTypeOrThrow({type:t,file:n}),a=G9f(s),c=mlc(s);return!a&&c._type==="named"&&Of(c.declaration)&&o==null?s1.samePropertiesAsObject(c.name):s1.singleProperty({name:n.casingsGenerator.generateNameAndWireValue({wireValue:q9f(o),name:V9f(o)}),type:r})}function V9f(e){return e!=null?typeof e=="string"?e:e.name??e.value:flc}function q9f(e){return e!=null?typeof e=="string"?e:e.value:flc}function G9f(e){return e._type==="container"&&(e.container._type==="nullable"||e.container._type==="optional")}function mlc(e){return e._type==="container"&&(e.container._type==="nullable"||e.container._type==="optional")?mlc(e.container.itemType):e}function W9f({union:e}){return(typeof e.discriminant=="object"&&e.discriminant?.context)==="protocol"?Kce.Protocol:Kce.Data}jt();Ut();jt();Ut();function iV(e,t){return[{message:`Expected example to be ${t}. Example is: ${typeof e!="number"?JSON.stringify(e):e}`}]}function hlc({rawAlias:e,example:t,file:r,typeResolver:n,exampleResolver:i,workspace:o,breadcrumbs:s,depth:a}){return q1({rawTypeReference:typeof e=="string"?e:e.type,example:t,file:r,typeResolver:n,exampleResolver:i,workspace:o,breadcrumbs:s,depth:a+1})}function glc({rawEnum:e,example:t,breadcrumbs:r}){let n=e.enum.map(s=>typeof s=="string"?s:s.value),i=n.map(s=>` - ${s}`).join(`
3050
+ `)||e.endsWith("\r")?e.substring(0,e.length-1):e}var D9f={docs:void 0,availability:void 0};function V1(e){return typeof e=="string"?D9f:{docs:zLt(e.docs),availability:QQ(e.availability)}}function QQ(e){if(e!=null)return{status:R9f(typeof e=="string"?e:e.status),message:typeof e!="string"?e.message:void 0}}function elc(e){return typeof e=="string"?[]:e.audiences??[]}function R9f(e){switch(e){case"in-development":return Hm.InDevelopment;case"pre-release":return Hm.PreRelease;case"deprecated":return Hm.Deprecated;case"generally-available":return Hm.GeneralAvailability;case"alpha":return Hm.Alpha;case"beta":return Hm.Beta;case"preview":return Hm.Preview;case"legacy":return Hm.Legacy;default:we(e)}}jt();function tlc({object:e,file:t}){return Mc.object({extends:vW(e.extends).map(r=>_1({typeName:r,file:t})),properties:ULt(e,t),extraProperties:e["extra-properties"]??!1,extendedProperties:void 0})}function ULt(e,t){return e.properties==null?[]:Object.entries(e.properties).map(([r,n])=>({...V1(n),name:t.casingsGenerator.generateNameAndWireValue({wireValue:r,name:kw({propertyKey:r,property:n}).name}),valueType:t.parseTypeReference(n),propertyAccess:vve({property:n}),defaultValue:typeof n!="string"?n.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}}}))}function vW(e){return e==null?[]:typeof e=="string"?[e]:e}function kw({propertyKey:e,property:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function vve({property:e}){if(typeof e=="string")return;let t=e.access;if(t!=null)switch(t){case"read-only":return W2e.ReadOnly;case"write-only":return W2e.WriteOnly;default:we(t)}}function nlc({request:e,file:t}){let r=e!=null?ARt(e):void 0;if(r!=null)return dd.bytes({isOptional:r.isOptional,contentType:typeof e=="string"?void 0:e?.["content-type"],docs:typeof e=="string"?void 0:e?.docs,v2Examples:void 0});if(typeof e=="string")return dd.reference(wQr({requestBody:e,file:t}));if(e?.body==null)return;let n=$2e(e);if(n!=null)return dd.fileUpload({contentType:e["content-type"],name:t.casingsGenerator.generateName(n.name),properties:n.properties.map(i=>i.isFile?i.isArray?dw.file(qj.fileArray({key:t.casingsGenerator.generateNameAndWireValue({wireValue:i.key,name:i.key}),isOptional:i.isOptional,contentType:i.contentType,docs:i.docs})):dw.file(qj.file({key:t.casingsGenerator.generateNameAndWireValue({wireValue:i.key,name:i.key}),isOptional:i.isOptional,contentType:i.contentType,docs:i.docs})):dw.bodyProperty({...rlc({propertyKey:i.key,propertyDefinition:i.propertyType,docs:i.docs,availability:QQ(i.availability),file:t}),style:i.style??k9f(i.contentType),contentType:i.contentType})),docs:e.docs,v2Examples:void 0});if(Wg(e.body)){if(e.name==null)throw new R({message:"Name is missing for inlined request",code:R.Code.InternalError});return dd.inlinedRequestBody({name:t.casingsGenerator.generateName(e.name),extends:vW(e.body.extends).map(i=>_1({typeName:i,file:t})),contentType:e["content-type"],docs:e.docs,properties:e.body.properties!=null?Object.entries(e.body.properties).map(([i,o])=>rlc({propertyKey:i,propertyDefinition:o,docs:typeof o!="string"?o.docs:void 0,availability:typeof o!="string"?QQ(o.availability):void 0,file:t})):[],extraProperties:e.body["extra-properties"]??!1,extendedProperties:void 0,v2Examples:void 0})}return dd.reference(wQr({requestBody:e.body,file:t,contentType:e["content-type"]}))}var F9f={"application/json":"json"};function k9f(e){return e?F9f[e]:void 0}function wQr({requestBody:e,file:t,contentType:r}){return{docs:typeof e!="string"?e.docs:void 0,requestBodyType:t.parseTypeReference(e),contentType:r,v2Examples:void 0}}function rlc({propertyKey:e,propertyDefinition:t,docs:r,availability:n,file:i}){return{docs:r,availability:n,name:i.casingsGenerator.generateNameAndWireValue({wireValue:e,name:kw({propertyKey:e,property:t}).name}),valueType:i.parseTypeReference(t),defaultValue:typeof t!="string"?t.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}},propertyAccess:void 0}}Ut();jt();Ut();function cLe({typeResolver:e,file:t,resolvedType:r,property:n}){switch(r._type){case"container":if(r.container._type==="optional")return cLe({typeResolver:e,file:t,resolvedType:r.container.itemType,property:n});break;case"named":if(Of(r.declaration))return ipo({typeResolver:e,file:r.file,objectSchema:r.declaration,property:n});break;case"primitive":case"unknown":break;default:we(r)}throw new R({message:`Response must be an object in order to return property ${n} as a response.`,code:R.Code.ReferenceError})}function ipo({typeResolver:e,file:t,objectSchema:r,property:n}){let o=ilc(r,t,e)[n];if(o==null)throw new R({message:`Object does not have a property named ${n}.`,code:R.Code.ReferenceError});return o}function ilc(e,t,r){let n=[];typeof e.extends=="string"?n=[e.extends]:Array.isArray(e.extends)&&(n=e.extends);let i={};for(let s of n){let a=N9f(s,t,r);Object.entries(a).map(([c,u])=>{i[c]=u})}return ULt(e,t).forEach(s=>{let a=qr(s.name);i[a]=s}),i}function N9f(e,t,r){let n=r.resolveNamedTypeOrThrow({referenceToNamedType:e,file:t});if(n._type==="named"&&Of(n.declaration))return ilc(n.declaration,t,r);throw new R({message:`Extended type ${e} must be another named type`,code:R.Code.InternalError})}function xQr({typeResolver:e,file:t,resolvedType:r,propertyComponents:n}){if(n.length===0)return;if(n.length===1)return cLe({typeResolver:e,file:t,resolvedType:r,property:n[0]??""});let i=slc(r);if(i!=null)return SQr({typeResolver:e,file:t,objectSchema:i,propertyComponents:n})}function SQr({typeResolver:e,file:t,objectSchema:r,propertyComponents:n}){if(n.length===0)return;if(n.length===1)return ipo({typeResolver:e,file:t,objectSchema:r,property:n[0]??""});let i=j9f({typeResolver:e,file:t,objectSchema:r,property:n[0]??""}),o=e.resolveTypeOrThrow({type:i,file:t});return xQr({typeResolver:e,file:ert(o)??t,resolvedType:o,propertyComponents:n.slice(1)})}function j9f({typeResolver:e,file:t,objectSchema:r,property:n}){let o=olc({typeResolver:e,file:t,objectSchema:r})[n];if(o==null)throw new R({message:`Response does not have a property named ${n}.`,code:R.Code.ReferenceError});return o}function olc({typeResolver:e,file:t,objectSchema:r}){let n=[];typeof r.extends=="string"?n=[r.extends]:Array.isArray(r.extends)&&(n=r.extends);let i={};for(let o of n){let s=Q9f({typeResolver:e,file:t,extendedType:o});Object.entries(s).map(([a,c])=>{i[a]=c})}return r.properties!=null&&Object.entries(r.properties).map(([o,s])=>{i[o]=typeof s=="string"?s:s.type}),i}function Q9f({typeResolver:e,file:t,extendedType:r}){let n=e.resolveNamedTypeOrThrow({referenceToNamedType:r,file:t});if(n._type==="named"&&Of(n.declaration))return olc({typeResolver:e,file:ert(n)??t,objectSchema:n.declaration});throw new R({message:`Extended type ${r} must be another named type.`,code:R.Code.InternalError})}function ert(e){if(e!=null){if(e._type==="named")return e.file;if(e._type==="container"&&e.container._type==="optional")return ert(e.container.itemType)}}function slc(e){if(e!=null){if(e._type==="named"&&Of(e.declaration))return e.declaration;if(e._type==="container"&&e.container._type==="optional")return slc(e.container.itemType)}}function IW(e){return e.substring(9)?.split(".")??[]}function FO(e){return e.substring(10)?.split(".")??[]}var TQr="request",_Lt="body";function clc({request:e,endpointKey:t,endpoint:r,service:n,file:i,typeResolver:o,propertyResolver:s}){let a=M9f({request:e,service:n,file:i,typeResolver:o});if(a!=null)return{shape:a,requestParameterName:i.casingsGenerator.generateName(TQr),streamParameter:r["stream-condition"]!=null?s.resolveRequestPropertyOrThrow({file:i,endpoint:t,propertyComponents:IW(r["stream-condition"])}):void 0}}function M9f({service:e,request:t,file:r,typeResolver:n}){let i=()=>{if(typeof t=="string"||t?.name==null)throw new R({message:"Name is missing for request wrapper",code:R.Code.InternalError});return zU.wrapper({wrapperName:r.casingsGenerator.generateName(t.name),bodyKey:r.casingsGenerator.generateName(_Lt),includePathParameters:z9f(t),onlyPathParameters:L9f({request:t,file:r,typeResolver:n})})};if(!opo({headers:e.headers??{},file:r,typeResolver:n}))return i();if(t==null)return;if(typeof t=="string")return zU.justRequestBody(alc({requestBody:t,file:r}));let{body:o}=t;if(BQr({request:t,file:r,typeResolver:n})||o!=null&&Wg(o))return i();if(o!=null)return zU.justRequestBody(alc({requestBody:o,file:r}))}function alc({requestBody:e,file:t,contentType:r}){let n=typeof e=="string"?KU(e):KU(e.type);return n!=null?c9.bytes({isOptional:n.isOptional,contentType:r,docs:void 0,v2Examples:void 0}):c9.typeReference(wQr({requestBody:e,file:t,contentType:r}))}function BQr({request:e,file:t,typeResolver:r}){let{headers:n={},"path-parameters":i={},"query-parameters":o={}}=e;return!opo({headers:n,file:t,typeResolver:r})||Lh(i)>0||Lh(o)>0}function L9f({request:e,file:t,typeResolver:r}){let{headers:n={},"path-parameters":i={},"query-parameters":o={}}=e;return Lh(i)>0&&opo({headers:n,file:t,typeResolver:r})&&Lh(o)===0&&e.body==null}function z9f(e){return typeof e!="string"&&e?.["path-parameters"]!=null}function opo({headers:e,file:t,typeResolver:r}){return Object.values(e).filter(n=>{let i=typeof n=="string"?n:n.type,o=r.resolveTypeOrThrow({type:i,file:t});return!(o._type==="container"&&o.container._type==="literal")}).length===0}jt();Ut();var jQr=xe(eh(),1);function CW(e){return typeof e.request!="string"&&e.request?.["path-parameters"]?e.request?.["path-parameters"]:e["path-parameters"]!=null?e["path-parameters"]:{}}function OQr(e,t){let r=U9f(e);if(r.length===0)return t;let n=new Map;for(let s of t)n.set(qr(s.name),s);let i=[],o=new Set;for(let s of r){let a=n.get(s);a!=null&&(i.push(a),o.add(s))}for(let s of t)o.has(qr(s.name))||i.push(s);return i}function U9f(e){let t=[],r=/{([^}]+)}/g,n;for(;(n=r.exec(e))!==null;)n[1]!=null&&t.push(n[1]);return t}function ulc({codeSample:e,file:t}){return Oki(e,{language:r=>A3.language({name:r.name!=null?t.casingsGenerator.generateName(r.name):void 0,docs:r.docs,language:r.language,code:r.code,install:r.install}),sdk:r=>A3.sdk({name:r.name!=null?t.casingsGenerator.generateName(r.name):void 0,docs:r.docs,sdk:_9f(r.sdk),code:r.code})})}function _9f(e){switch(e){case"js":return"javascript";case"node":return"javascript";case"ts":return"typescript";case"nodets":return"typescript";case"golang":return"go";case"dotnet":return"csharp";case"c#":return"csharp";case"jvm":return"java";default:return e}}function VLt(e){if(e!=null){if(typeof e=="string")return j0.string(e);if(typeof e=="boolean")return j0.boolean(e)}}jt();Ut();var klc=xe(eh(),1);Ut();function Ive({errorName:e,file:t}){let r=H3({reference:e,referencedIn:t.relativeFilepath,imports:t.imports});if(r==null)throw new R({message:"Failed to locate error "+e,code:R.Code.ResolutionError});let n={name:t.casingsGenerator.generateName(r.typeName),fernFilepath:jQ({relativeFilepath:r.relativeFilepath,casingsGenerator:t.casingsGenerator})};return{...n,errorId:Zu.generateErrorId(n)}}function llc(e){if(typeof e=="string"||e.availability==null)return;let t=typeof e.availability=="string"?{status:e.availability}:e.availability;return QQ(e.availability)}function plc(e){if(typeof e!="string")return e["display-name"]}function spo(e){if(typeof e!="string")return e.docs}var flc="value";function dlc({union:e,file:t,typeResolver:r}){let n=Bpe(e),i=e["default-variant"],o=Object.entries(e.union).map(([a,c])=>{let u=typeof c=="string"?c:typeof c.type=="string"?c.type:void 0,l=t.casingsGenerator.generateNameAndWireValue({wireValue:a,name:rrt({unionKey:a,rawSingleUnionType:c}).name}),p=spo(c);if(u==null)return{discriminantValue:l,docs:p,shape:s1.noProperties(),displayName:void 0,availability:void 0};let d=t.parseTypeReference(u);return{discriminantValue:l,shape:apo({rawSingleUnionType:c,rawValueType:u,parsedValueType:d,file:t,typeResolver:r}),docs:spo(c),displayName:plc(c),availability:llc(c)}}),s=i!=null?o.find(a=>(typeof a.discriminantValue=="string"?a.discriminantValue:a.discriminantValue.wireValue)===i):void 0;return Mc.union({discriminant:t.casingsGenerator.generateNameAndWireValue({wireValue:n,name:trt(e).name}),extends:vW(e.extends).map(a=>_1({typeName:a,file:t})),baseProperties:e["base-properties"]!=null?Object.entries(e["base-properties"]).map(([a,c])=>({...V1(c),name:t.casingsGenerator.generateNameAndWireValue({wireValue:a,name:kw({propertyKey:a,property:c}).name}),valueType:t.parseTypeReference(c),propertyAccess:vve({property:c}),defaultValue:typeof c!="string"?c.default:void 0,v2Examples:{userSpecifiedExamples:{},autogeneratedExamples:{}}})):[],types:o,default:s,discriminatorContext:W9f({union:e})})}function Bpe(e){return e.discriminant==null?"type":typeof e.discriminant=="string"?e.discriminant:e.discriminant.value}function trt(e){return e.discriminant!=null&&typeof e.discriminant!="string"&&e.discriminant.name!=null?{name:e.discriminant.name,wasExplicitlySet:!0}:{name:Bpe(e),wasExplicitlySet:!1}}function rrt({unionKey:e,rawSingleUnionType:t}){return typeof t!="string"&&t.name!=null?{name:t.name,wasExplicitlySet:!0}:{name:e,wasExplicitlySet:!1}}function apo({rawSingleUnionType:e,rawValueType:t,parsedValueType:r,file:n,typeResolver:i}){let o=typeof e!="string"?e.key:void 0,s=i.resolveTypeOrThrow({type:t,file:n}),a=G9f(s),c=mlc(s);return!a&&c._type==="named"&&Of(c.declaration)&&o==null?s1.samePropertiesAsObject(c.name):s1.singleProperty({name:n.casingsGenerator.generateNameAndWireValue({wireValue:q9f(o),name:V9f(o)}),type:r})}function V9f(e){return e!=null?typeof e=="string"?e:e.name??e.value:flc}function q9f(e){return e!=null?typeof e=="string"?e:e.value:flc}function G9f(e){return e._type==="container"&&(e.container._type==="nullable"||e.container._type==="optional")}function mlc(e){return e._type==="container"&&(e.container._type==="nullable"||e.container._type==="optional")?mlc(e.container.itemType):e}function W9f({union:e}){return(typeof e.discriminant=="object"&&e.discriminant?.context)==="protocol"?Kce.Protocol:Kce.Data}jt();Ut();jt();Ut();function iV(e,t){return[{message:`Expected example to be ${t}. Example is: ${typeof e!="number"?JSON.stringify(e):e}`}]}function hlc({rawAlias:e,example:t,file:r,typeResolver:n,exampleResolver:i,workspace:o,breadcrumbs:s,depth:a}){return q1({rawTypeReference:typeof e=="string"?e:e.type,example:t,file:r,typeResolver:n,exampleResolver:i,workspace:o,breadcrumbs:s,depth:a+1})}function glc({rawEnum:e,example:t,breadcrumbs:r}){let n=e.enum.map(s=>typeof s=="string"?s:s.value),i=n.map(s=>` - ${s}`).join(`
3051
3051
  `);if(typeof t!="string")return iV(t,"a string");if(n.includes(t))return[];let o=t;return typeof t=="string"&&t.startsWith("\\$")&&(o=t.slice(1)),n.includes(o)?[]:[{message:`"${t}" is not a valid example for this enum. Enum values are:
3052
3052
  `+i}]}jt();Ut();ao();Ry();ao();function qLt({type:e,file:t,_default:r,validation:n}){return WI({type:e,_default:r,validation:n,visitor:{primitive:_r.primitive,unknown:_r.unknown,map:({keyType:i,valueType:o})=>_r.container(Js.map({keyType:i,valueType:o})),list:i=>_r.container(Js.list(i)),set:i=>_r.container(Js.set(i)),optional:i=>_r.container(Js.optional(i)),nullable:i=>_r.container(Js.nullable(i)),literal:i=>_r.container(Js.literal(i)),named:i=>_r.named({..._1({typeName:i,file:t}),default:void 0,inline:void 0})}})}function Ope({casingsGenerator:e,rootApiFile:t}){return Du({relativeFilepath:oa.of("."),definitionFile:{imports:t.imports},casingsGenerator:e,rootApiFile:t})}function Du({defaultUrl:e,relativeFilepath:t,definitionFile:r,casingsGenerator:n,rootApiFile:i}){let o={defaultUrl:e,relativeFilepath:t,fernFilepath:jQ({relativeFilepath:t,casingsGenerator:n}),imports:Ip(r.imports??{},oa.of),definitionFile:r,parseTypeReference:s=>typeof s=="string"?qLt({type:s,_default:void 0,validation:void 0,file:o}):qLt({type:s.type,_default:s.default,validation:s.validation,file:o}),casingsGenerator:n,rootApiFile:i};return o}var GLt=rS({generationLanguage:void 0,keywords:void 0,smartCasing:!1});function oV({typeName:e,objectDeclaration:t,filepathOfDeclaration:r,definitionFile:n,workspace:i,typeResolver:o,smartCasing:s,path:a=[],seen:c={}}){let u=[];if(e!=null){let d=c[r]??=new Set;if(d.has(e))return u;d.add(e)}let l=GLt;s&&(l=rS({generationLanguage:void 0,keywords:void 0,smartCasing:s}));let p=Du({relativeFilepath:r,definitionFile:n,casingsGenerator:l,rootApiFile:i.definition.rootApiFile.contents});if(t.properties!=null)for(let[d,f]of Object.entries(t.properties)){let m=typeof f=="string"?f:f.type,h=o.resolveType({type:m,file:p});h!=null&&u.push({wireKey:d,name:kw({propertyKey:d,property:f}).name,filepathOfDeclaration:r,path:a,propertyType:m,resolvedPropertyType:h,isOptional:h._type==="container"&&h.container._type==="optional",isNullable:h._type==="container"&&h.container._type==="nullable"})}if(t.extends!=null){let d=typeof t.extends=="string"?[t.extends]:t.extends;for(let f of d){let m=o.resolveNamedType({referenceToNamedType:f,file:p});if(m?._type==="named"&&Of(m.declaration)){let h=B_(i,m.filepath);h!=null&&u.push(...oV({typeName:m.rawName,objectDeclaration:m.declaration,filepathOfDeclaration:m.filepath,definitionFile:h,workspace:i,typeResolver:o,smartCasing:s,path:[...a,{reference:f,followedVia:"extension"},...m.objectPath.map(A=>({reference:A.reference,followedVia:"alias"}))],seen:c}))}}}return u}function WLt({property:e,prefixBreadcrumbs:t=[]}){return[...t,...H9f(e.path),e.wireKey].join(" -> ")}function H9f(e){return e.map(K9f)}function K9f(e){return[J9f(e),e.reference].join(" ")}function J9f(e){switch(e.followedVia){case"alias":return"(alias of)";case"extension":return"(extends)"}}function uLe({typeName:e,typeNameForBreadcrumb:t,rawObject:r,file:n,typeResolver:i,exampleResolver:o,workspace:s,example:a,breadcrumbs:c,depth:u}){if(!xo(a))return iV(a,"an object");let l=[],p=oV({typeName:e,objectDeclaration:r,typeResolver:i,definitionFile:n.definitionFile,workspace:s,filepathOfDeclaration:n.relativeFilepath,smartCasing:!1}),d=BOi(p,m=>m.wireKey),f=p.filter(m=>!m.isNullable&&!m.isOptional&&m.resolvedPropertyType._type!=="unknown");for(let m of f)if(!(m.resolvedPropertyType._type==="container"&&m.resolvedPropertyType.container._type==="literal")&&typeof a[m.wireKey]>"u"){let A=`Example is missing required property "${c.length>0?`${c.join(".")}.${m.wireKey}`:m.wireKey}"`;l.push({message:A})}for(let[m,h]of Object.entries(a)){let A=d[m];if(!r["extra-properties"])if(A==null)l.push({message:`Unexpected property "${m}"`});else{let y=B_(s,A.filepathOfDeclaration);if(y==null)throw new R({message:"Service file does not exist for property: "+A.wireKey,code:R.Code.InternalError});l.push(...q1({rawTypeReference:A.propertyType,example:h,file:Du({relativeFilepath:A.filepathOfDeclaration,definitionFile:y,casingsGenerator:n.casingsGenerator,rootApiFile:s.definition.rootApiFile.contents}),workspace:s,typeResolver:i,exampleResolver:o,breadcrumbs:[...c,`${m}`],depth:u+1}))}}return l}function Alc({rawUnion:e,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:o,breadcrumbs:s,depth:a}){let c=[];for(let u of e.union){let l=q1({rawTypeReference:typeof u=="string"?u:u.type,example:t,typeResolver:r,exampleResolver:n,file:i,workspace:o,breadcrumbs:s,depth:a+1});if(l.length===0)return[];c.length===0&&c.push(...l)}return c}jt();function blc({typeName:e,rawUnion:t,example:r,typeResolver:n,exampleResolver:i,file:o,workspace:s,breadcrumbs:a,depth:c}){if(!xo(r))return iV(r,"an object");let u=Bpe(t),{[u]:l,...p}=r;if(l==null)return[{message:`Missing discriminant property ("${u}")`}];if(typeof l!="string")return iV(l,"a string");let d=t.union[l];if(l.startsWith("\\$")&&(d=t.union[l.slice(1)]),d==null)return[{message:`Invalid discriminant property: "${l}". Allowed discriminant values:
3053
3053
  `+Object.keys(t.union).map(C=>` - ${C}`).join(`
@@ -3222,7 +3222,7 @@ ${VNc.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Bwo(th
3222
3222
  `+sze.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?sze.default.cyan(ZNc(t,this.opt.mask)):sze.default.italic(sze.default.dim("[hidden]")):this.opt.mask?ZNc(t,this.opt.mask):sze.default.italic(sze.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 C7r=xe(uS(),1);var Xjc=xe(uxo(),1),v7r=require("child_process"),Tot=require("fs"),E7r=xe(require("path"),1),Zjc=xe(require("os"),1),$jc=require("crypto"),Hxo=xe(Jjc(),1);var A7r=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var L_t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var y7r=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var b7r=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function I7r(e="",t,r){let n=new Kxo(e,r);n.runAsync((i,o)=>{if(i)setImmediate(t,i,void 0);else try{n.cleanup(),setImmediate(t,void 0,o)}catch(s){setImmediate(t,s,void 0)}})}function Yjc(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function q4d(e){let t=[],r="";for(let n=0;n<e.length;n++){let i=e.charAt(n);n>0&&i===" "&&e[n-1]!=="\\"&&r.length>0?(t.push(r),r=""):r=`${r}${i}`}return r.length>0&&t.push(r),t}var Kxo=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=q4d(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??Zjc.default.tmpdir(),r=(0,$jc.randomUUID)(),n=Yjc(this.fileOptions.prefix),i=Yjc(this.fileOptions.postfix),o=`${n}${r}${i}`,s=E7r.default.resolve(t,o),a=E7r.default.resolve(t)+E7r.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let c={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(c.mode=this.fileOptions.mode),(0,Tot.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new A7r(t)}}readTemporaryFile(){try{let t=(0,Tot.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,Xjc.detect)(t)??"utf8";Hxo.default.encodingExists(r)||(r="utf8"),this.text=Hxo.default.decode(t,r)}}catch(t){throw new y7r(t)}}removeTemporaryFile(){try{(0,Tot.unlinkSync)(this.tempFile)}catch(t){throw new b7r(t)}}launchEditor(){try{let t=(0,v7r.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new L_t(t)}}launchEditorAsync(t){try{(0,v7r.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new L_t(r)}}};var eQc=xe(gz(),1);var z_t=class extends lS{_run(t){this.done=t,this.editorResult=new eQc.Subject;let r=GO(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?C7r.default.dim("Received"):C7r.default.dim("Press <enter> to launch your preferred editor."),t&&(r=C7r.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),I7r(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 oQc=require("stream");var nQc=xe(require("readline"),1),iQc=xe(rQc(),1),lze=class{constructor(t){this.rl||=nQc.default.createInterface(W4d(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 W4d(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){let i=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw i.isTtyError=!0,i}let r=new iQc.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var U_t=class extends lze{constructor(t={}){super(t),this.log=new oQc.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return w_t(this.rl,this.bottomBar.split(`
3223
3223
  `).length),this}updateBottomBar(t){return w_t(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+`
3224
3224
  `}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&&G8r(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var qd=xe(gz(),1),cQc=xe(t_t(),1);var w7r=xe(gz(),1),sQc=xe(t_t(),1),x7r=function(e,t,r){return typeof e[t]!="function"?(0,w7r.of)(e):(0,w7r.from)((0,sQc.default)(e[t])(r).then(n=>(e[t]=n,e)))};var aQc={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},Bot=class extends lze{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,qd.from)(t):(0,qd.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,qd.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,qd.from)([t]),this.process=n.pipe((0,qd.concatMap)(this.processQuestion.bind(this)),(0,qd.publish)()),this.process.connect(),this.process.pipe((0,qd.reduce)((i,o)=>(aQc.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,qd.defer)(()=>(0,qd.of)(t).pipe((0,qd.concatMap)(this.setDefaultType.bind(this)),(0,qd.concatMap)(this.filterIfRunnable.bind(this)),(0,qd.concatMap)(()=>x7r(t,"message",this.answers)),(0,qd.concatMap)(()=>x7r(t,"default",this.answers)),(0,qd.concatMap)(()=>x7r(t,"choices",this.answers)),(0,qd.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,qd.defer)(()=>(0,qd.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,qd.defer)(()=>(0,qd.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&aQc.get(this.answers,t.name)!==void 0)return qd.EMPTY;if(t.when===!1)return qd.EMPTY;if(typeof t.when!="function")return(0,qd.of)(t);let{answers:r}=this;return(0,qd.defer)(()=>(0,qd.from)((0,cQc.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,qd.filter)(n=>n!=null)))}};function uQc(e){let t=function(r,n){let i;try{i=new Bot(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",S_t),this.registerPrompt("input",oze),this.registerPrompt("number",T_t),this.registerPrompt("confirm",B_t),this.registerPrompt("rawlist",O_t),this.registerPrompt("expand",P_t),this.registerPrompt("checkbox",D_t),this.registerPrompt("password",R_t),this.registerPrompt("editor",z_t)},t.restoreDefaultPrompts(),t}var Yxo=uQc();function K4d(e,t){Yxo.registerPrompt(e,t)}function J4d(){Yxo.restoreDefaultPrompts()}var Y4d={prompt:Yxo,ui:{BottomBar:U_t,Prompt:Bot},createPromptModule:uQc,registerPrompt:K4d,restoreDefaultPrompts:J4d,Separator:a6},tp=Y4d;var Oot=require("path");function pQc(){let e=X4d();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function X4d(e=process.argv[1]?(0,Oot.dirname)(process.argv[1]):process.cwd(),t=Oot.sep==="\\"){let r=t?lQc(e):e;return n=>{if(!n)return;let i=t?lQc(n):n,{dir:o,base:s,ext:a}=Oot.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let c=decodeURIComponent(s);o||(o=".");let u=o.lastIndexOf("/node_modules");if(u>-1)return`${o.slice(u+14).replace(/\//g,".")}:${c}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}function lQc(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var Xxo=e=>{if("flags"in e){let t=fQc(e.flags),r=dQc(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,Zxo(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,Z4d(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function Z4d(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 fQc=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,__t(r)]).filter(([,t])=>t!==void 0)),dQc=e=>{let t=e??{};return Object.fromEntries(Object.keys(t).filter(r=>{let n=t[r];return n.enabled&&n.metadata&&n.metadata.payload!==void 0}).map(r=>{let n=t[r].metadata?.payload;return[r,n?Zxo(n):void 0]}))};var __t=e=>e===void 0?void 0:e.variant??e.enabled,Zxo=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};function mQc(){return"CompressionStream"in globalThis}async function S7r(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var T7r="0123456789abcdef",B7r=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=T7r.charAt(this.bytes[r]>>>4),t+=T7r.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+=T7r.charAt(this.bytes[r]>>>4),t+=T7r.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},$xo=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??$4d()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let n=this.generateOrAbortCore(t,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,r)),n}generateOrAbortCore(t,r){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+r>=this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return B7r.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,B7r.ofInner(t)}},$4d=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),hQc,uCe=()=>eUd().toString(),eUd=()=>(hQc||(hQc=new $xo)).generate();var u6=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e.DeviceId="device_id",e})({});var tUd=["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"],gQc=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return tUd.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var nUd=Array.isArray,AQc=Object.prototype,rZ0=AQc.hasOwnProperty,eSo=AQc.toString,tSo=nUd||function(e){return eSo.call(e)==="[object Array]"};var rSo=e=>e===Object(e)&&!tSo(e);var V_t=e=>e===void 0,q_t=e=>eSo.call(e)=="[object String]",yQc=e=>q_t(e)&&e.trim().length===0;var bQc=e=>eSo.call(e)=="[object Number]"&&e===e;var nSo=e=>e instanceof Error;function O7r(e){return e===null||typeof e!="object"}function pze(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function EQc(e){return pze(e,"ErrorEvent")}function Pot(e){return typeof Event<"u"&&iUd(e,Event)}function vQc(e){return pze(e,"Object")}function iUd(e,t){try{return e instanceof t}catch{return!1}}function G_t(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),bQc(e)?e>r?(n.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(n.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(n.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+i),G_t(i||r,t,r,n))}var oUd=864e5,P7r=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=G_t(t.bucketSize,0,100,t._logger),this._refillRate=G_t(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=G_t(t.refillInterval,0,oUd,t._logger)}_applyRefill(t,r){let n=r-t.lastAccess,i=Math.floor(n/this._refillInterval);if(i>0){let o=i*this._refillRate;t.tokens=Math.min(t.tokens+o,this._bucketSize),t.lastAccess=t.lastAccess+i*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),n=String(t),i=this._buckets[n];return i?this._applyRefill(i,r):(i={tokens:this._bucketSize,lastAccess:r},this._buckets[n]=i),i.tokens===0?!0:(i.tokens--,i.tokens===0&&this._onBucketRateLimited?.(t),i.tokens===0)}stop(){this._buckets={}}};var D7r=class{add(t){let r=uCe();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 sUd(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var IQc=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>IQc(`${e} ${o}`,t,r)}},aUd=e=>e();function CQc(e,t=aUd){return IQc(e,t,sUd())}var Rot="Mobile",F7r="iOS",Dot="Android",wQc="Tablet",mZ0=Dot+" "+wQc;var cUd="Apple",hZ0=cUd+" Watch",xQc="Safari",k7r="BlackBerry",SQc="Samsung",uUd=SQc+"Browser",lUd=SQc+" Internet",N7r="Chrome",pUd=N7r+" OS",fUd=N7r+" "+F7r,TQc="Internet Explorer",dUd=TQc+" "+Rot,oSo="Opera",gZ0=oSo+" Mini",BQc="Edge",mUd="Microsoft "+BQc,sSo="Firefox",hUd=sSo+" "+F7r,aSo="Nintendo",cSo="PlayStation",R7r="Xbox",gUd=Dot+" "+Rot,AUd=Rot+" "+xQc,W_t="Windows",yUd=W_t+" Phone";var OQc="Generic",AZ0=OQc+" "+Rot.toLowerCase(),yZ0=OQc+" "+wQc.toLowerCase(),bUd="Konqueror",B2="(\\d+(\\.\\d+)?)",iSo=new RegExp("Version/"+B2),bZ0=new RegExp(R7r,"i"),EZ0=new RegExp(cSo+" \\w+","i"),vZ0=new RegExp(aSo+" \\w+","i"),EUd=new RegExp(k7r+"|PlayBook|BB10","i"),vUd={"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 IZ0={[dUd]:[new RegExp("rv:"+B2)],[mUd]:[new RegExp(BQc+"?\\/"+B2)],[N7r]:[new RegExp("("+N7r+"|CrMo)\\/"+B2)],[fUd]:[new RegExp("CriOS\\/"+B2)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+B2)],[xQc]:[iSo],[AUd]:[iSo],[oSo]:[new RegExp("("+oSo+"|OPR)\\/"+B2)],[sSo]:[new RegExp(sSo+"\\/"+B2)],[hUd]:[new RegExp("FxiOS\\/"+B2)],[bUd]:[new RegExp("Konqueror[:/]?"+B2,"i")],[k7r]:[new RegExp(k7r+" "+B2),iSo],[gUd]:[new RegExp("android\\s"+B2,"i")],[lUd]:[new RegExp(uUd+"\\/"+B2)],[TQc]:[new RegExp("(rv:|MSIE )"+B2)],Mozilla:[new RegExp("rv:"+B2)]};var CZ0=[[new RegExp(R7r+"; "+R7r+" (.*?)[);]","i"),e=>[R7r,e&&e[1]||""]],[new RegExp(aSo,"i"),[aSo,""]],[new RegExp(cSo,"i"),[cSo,""]],[EUd,[k7r,""]],[new RegExp(W_t,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[yUd,""];if(new RegExp(Rot).test(t)&&!/IEMobile\b/.test(t))return[W_t+" "+Rot,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=vUd[n]||"";return/arm/i.test(t)&&(i="RT"),[W_t,i]}return[W_t,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[F7r,t.join(".")]}return[F7r,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=V_t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Dot+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Dot+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[Dot,t.join(".")]}return[Dot,""]}],[/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/,[pUd,""]],[/Linux|debian/i,["Linux",""]]];var PQc="utf8";function DQc(e,t){if(!e||typeof e!="string"||IUd(e))throw new Error(t)}function IUd(e){return e.trim().length===0}function RQc(e){return e?.replace(/\/+$/,"")}async function FQc(e,t){let r=null;for(let n=0;n<t.retryCount+1;n++){n>0&&await new Promise(i=>setTimeout(i,t.retryDelay));try{return await e()}catch(i){if(r=i,!t.retryCheck(i))throw i}}throw r}function j7r(){return new Date().toISOString()}function Bfe(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var kQc=e=>e instanceof Error;function uSo(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Q7r=class{constructor(){this.events={},this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),()=>{this.events[t]=this.events[t].filter(n=>n!==r)}}emit(t,r){for(let n of this.events[t]||[])n(r);for(let n of this.events["*"]||[])n(t,r)}};var fze=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()}},Fot=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function NQc(e){if(e instanceof fze){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 lSo(e){return typeof e=="object"&&(e instanceof fze||e instanceof Fot)}function jQc(e){return typeof e=="object"&&e instanceof fze&&e.status===413}var H_t=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new D7r,this._events=new Q7r,this._isInitialized=!1,DQc(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=RQc(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:lSo},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=CQc("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!mQc()||(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(u6.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(u6.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(u6.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!1){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:Xxo(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof fze)return{type:"api_error",statusCode:t.status};if(t instanceof Fot){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let c=__t(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(u6.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(u6.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(u6.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(u6.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(u6.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=Bfe(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:j7r()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await S7r(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:j7r(),uuid:n?.uuid?n.uuid:uCe()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await NQc(t)})}async flush(){let t=uSo([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),uSo([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(u6.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=async()=>{let m=(this.getPersistedProperty(u6.Queue)||[]).slice(i.length);this.setPersistedProperty(u6.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:j7r()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await S7r(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},d={retryCheck:f=>jQc(f)?!1:lSo(f)};try{await this.fetchWithRetry(u,p,d)}catch(f){if(jQc(f)&&o.length>1){this.maxBatchSize=Math.max(1,Math.floor(o.length/2)),this._logger.warn(`Received 413 when sending batch of size ${o.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw f instanceof Fot||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,PQc)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await FQc(async()=>{let a=new AbortController,c=i??this.requestTimeout,u=Bfe(()=>a.abort(),c),l=null;try{l=await this.fetch(t,{signal:a.signal,...r})}catch(d){throw new Fot(d)}finally{clearTimeout(u)}if(!(r.mode==="no-cors")&&(l.status<200||l.status>=400))throw new fze(l,s);return l},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(u6.Queue)||[]).length===0||(await this.flush(),r)););}catch(o){if(!lSo(o))throw o;await NQc(o)}},i;try{return await Promise.race([new Promise((o,s)=>{i=Bfe(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,s("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}finally{clearTimeout(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 l6={};re(l6,{DOMExceptionCoercer:()=>mSo,ErrorCoercer:()=>hSo,ErrorEventCoercer:()=>gSo,ErrorPropertiesBuilder:()=>pSo,EventCoercer:()=>bSo,ObjectCoercer:()=>ySo,PrimitiveCoercer:()=>ESo,PromiseRejectionEventCoercer:()=>vSo,ReduceableCache:()=>ISo,StringCoercer:()=>ASo,chromeStackLineParser:()=>fSo,createDefaultStackParser:()=>QUd,createStackParser:()=>HQc,geckoStackLineParser:()=>dSo,nodeStackLineParser:()=>VQc,opera10StackLineParser:()=>zQc,opera11StackLineParser:()=>UQc,reverseAndStripFrames:()=>WQc,winjsStackLineParser:()=>LQc});var M7r,QQc,L7r;function MQc(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return L7r&&r.length===QQc||(QQc=r.length,L7r=r.reduce((n,i)=>{M7r||(M7r={});let o=M7r[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let u=s[a]?.filename,l=t[i];if(u&&l){n[u]=l,M7r[i]=[u,l];break}}}return n},{})),L7r}var wUd=4,pSo=class{constructor(t,r,n=[]){this.coercers=t,this.stackParser=r,this.modifiers=n}buildFromUnknown(t,r={}){let i=r&&r.mechanism||{handled:!0,type:"generic"},s=this.buildCoercingContext(i,r,0).apply(t),a=this.buildParsingContext(r),c=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(c,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&tSo(r.stacktrace.frames)&&(r.stacktrace.frames=await this.applyModifiers(r.stacktrace.frames));return t}coerceFallback(t){return{type:"Error",value:"Unknown error",stack:t.syntheticException?.stack,synthetic:!0}}parseStacktrace(t,r){let n;t.cause!=null&&(n=this.parseStacktrace(t.cause,r));let i;return t.stack!=""&&t.stack!=null&&(i=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?r.skipFirstLines:0),r.chunkIdMap)),{...t,cause:n,stack:i}}applyChunkIds(t,r){return t.map(n=>(n.filename&&r&&(n.chunk_id=r[n.filename]),n))}applyCoercers(t,r){for(let n of this.coercers)if(n.match(t))return n.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let n of this.modifiers)r=await n(r);return r}convertToExceptionList(t,r){let n={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(n.stacktrace={type:"raw",frames:t.stack});let i=[n];return t.cause!=null&&i.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),i}buildParsingContext(t){return{chunkIdMap:MQc(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=wUd){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var HO="?";function dee(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?HO:r,in_app:!0};return V_t(n)||(o.lineno=n),V_t(i)||(o.colno=i),o}var z7r=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:HO,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var xUd=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,SUd=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,TUd=/\((\S*)(?::(\d+))(?::(\d+))\)/,fSo=(e,t)=>{let r=xUd.exec(e);if(r){let[,i,o,s]=r;return dee(t,i,HO,+o,+s)}let n=SUd.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=TUd.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=z7r(n[1]||HO,n[2]);return dee(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var BUd=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,OUd=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,dSo=(e,t)=>{let r=BUd.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=OUd.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||HO;return[o,i]=z7r(o,i),dee(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var PUd=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,LQc=(e,t)=>{let r=PUd.exec(e);return r?dee(t,r[2],r[1]||HO,+r[3],r[4]?+r[4]:void 0):void 0};var DUd=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,zQc=(e,t)=>{let r=DUd.exec(e);return r?dee(t,r[2],r[3]||HO,+r[1]):void 0},RUd=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,UQc=(e,t)=>{let r=RUd.exec(e);return r?dee(t,r[5],r[3]||r[4]||HO,+r[1],+r[2]):void 0};var FUd=/^\s*[-]{4,}$/,kUd=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,VQc=(e,t)=>{let r=e.match(kUd);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||HO,o=s?`${s}.${a}`:a);let c=r[2]?.startsWith("file://")?r[2].slice(7):r[2],u=r[5]==="native";return c?.match(/\/[A-Z]:/)&&(c=c.slice(1)),!c&&r[5]&&!u&&(c=r[5]),{filename:c?decodeURI(c):void 0,module:void 0,function:o,lineno:_Qc(r[3]),colno:_Qc(r[4]),in_app:NUd(c||"",u),platform:t}}if(e.match(FUd))return{filename:e,platform:t}};function NUd(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 _Qc(e){return parseInt(e||"",10)||void 0}var qQc=/\(error: (.*)\)/,GQc=50;function WQc(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,GQc).map(r=>({...r,filename:r.filename||jUd(t).filename,function:r.function||HO}))}function jUd(e){return e[e.length-1]||{}}function QUd(){return HQc("web:javascript",fSo,dSo)}function HQc(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
3225
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=qQc.test(a)?a.replace(qQc,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=GQc)break}}return WQc(i)}}var mSo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=q_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return pze(t,"DOMException")}isDOMError(t){return pze(t,"DOMError")}};var hSo=class{match(t){return nSo(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var gSo=class{constructor(){}match(t){return EQc(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var MUd=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,ASo=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(MUd);return i&&(r=i[1],n=i[2]),[r,n]}};var KQc=["fatal","error","warning","log","info","debug"];function U7r(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var ySo=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Pot(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=U7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return q_t(t)&&!yQc(t)&&KQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(kQc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var bSo=class{match(t){return Pot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${U7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var ESo=class{match(t){return O7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var vSo=class{match(t){return pze(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!Pot(t))return!1;try{let r=t.detail;return r!=null&&typeof r=="object"&&"reason"in r}catch{return!1}}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return O7r(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){try{if("reason"in t)return t.reason;if("detail"in t&&t.detail!=null&&typeof t.detail=="object"&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var ISo=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 XQc=require("fs"),ZQc=require("readline"),_7r=new l6.ReduceableCache(25),$Qc=new l6.ReduceableCache(20),CSo=7,LUd=1e3,zUd=1e4;async function e6c(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||qUd(s)||GUd(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if($Qc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=HUd(o);if(s.every(c=>WUd(i,c)))continue;let a=KUd(_7r,i,{});n.push(UUd(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&_Ud(e,_7r),_7r.reduce(),e}function UUd(e,t,r){return new Promise(n=>{let i=(0,XQc.createReadStream)(e),o=(0,ZQc.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function d(){$Qc.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=JUd(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let m=t[c];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function _Ud(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;VUd(r.lineno,r,n)}}function VUd(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=t6c(e);i<e;i++){let o=r[i];if(o===void 0)return void JQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void JQc(t);t.context_line=r[e];let n=r6c(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function JQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function qUd(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function GUd(e){return e.lineno!==void 0&&e.lineno>zUd||e.colno!==void 0&&e.colno>LUd}function WUd(e,t){let r=_7r.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function HUd(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=YQc(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+CSo:(i.push(n),n=YQc(o)),t++}return i}function YQc(e){return[t6c(e),r6c(e)]}function t6c(e){return Math.max(1,e-CSo)}function r6c(e){return e+CSo}function KUd(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function JUd(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function YUd(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function n6c(e,t){globalThis.process?.on("uncaughtException",YUd(e,t))}function i6c(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var XUd=2e3,pH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new P7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return rSo(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i},s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n,properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(n6c(this.onException.bind(this),this.onFatalError.bind(this)),i6c(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(XUd),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var o6c="5.29.1";var K_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function s6c(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var ZUd=6e4,$Ud=1152921504606847e3,e_d=["is_not"],kot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Gd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},mee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},V7r=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let c=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,c)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(u){u instanceof mee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${t}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${u}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(c=>this.featureFlagsByKey[c]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async c=>{try{let{value:u,payload:l}=await this.computeFlagAndPayloadLocally(c,a);n[c.key]=u,l&&(i[c.key]=l)}catch(u){u instanceof mee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new Gd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Gd("Flag has unknown group type index");if(!(u in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[u];return await this.matchFeatureFlagProperties(t,i[u],l,r)}{let u=this.getBucketingValueForFlag(t,n,o);if(u===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new Gd(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,u,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new Gd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Gd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Gd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Gd(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[c]=p}catch(p){throw new Gd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Gd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Gd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof mee)throw l;if(l instanceof Gd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new Gd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?p6c(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):l6c(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await a6c(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await a6c(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(ZUd,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new kot(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new kot(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new kot(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof kot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=Bfe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function a6c(e,t,r=""){let n=await s6c(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/$Ud}function l6c(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new Gd("Operator is_not_set is not supported")}else throw new Gd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!e_d.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return c6c(String(i))&&String(s).match(String(i))!==null;case"not_regex":return c6c(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Gd("Date operations cannot be performed on boolean values");let u=o_d(String(i));if(u==null&&(u=u6c(i)),u==null)throw new Gd(`Invalid date: ${i}`);let l=u6c(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return UV(KO(String(s)),KO(String(i)))===0;case"semver_neq":return UV(KO(String(s)),KO(String(i)))!==0;case"semver_gt":return UV(KO(String(s)),KO(String(i)))>0;case"semver_gte":return UV(KO(String(s)),KO(String(i)))>=0;case"semver_lt":return UV(KO(String(s)),KO(String(i)))<0;case"semver_lte":return UV(KO(String(s)),KO(String(i)))<=0;case"semver_tilde":{let u=KO(String(s)),{lower:l,upper:p}=r_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}case"semver_caret":{let u=KO(String(s)),{lower:l,upper:p}=n_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}case"semver_wildcard":{let u=KO(String(s)),{lower:l,upper:p}=i_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}default:throw new Gd(`Unknown operator: ${o}`)}}function t_d(e,t){if(!(e in t))throw new mee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function p6c(e,t,r,n=!1){let i=String(e.value);t_d(i,r);let o=r[i];return f6c(o,t,r,n)}function f6c(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=f6c(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof mee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=p6c(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=l6c(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof mee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("can't match cohort without a given cohort property value");return i==="AND"}function c6c(e){try{return new RegExp(e),!0}catch{return!1}}function KO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Gd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new Gd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function UV(e,t){for(let r=0;r<3;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return 0}function r_d(e){let t=KO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function n_d(e){let t=KO(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function i_d(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Gd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new Gd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new Gd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function u6c(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 Gd(`${e} is in an invalid date format`)}throw new Gd(`The date provided ${e} must be a string, number, or date object`)}function o_d(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var q7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var s_d=100,d6c=3e4,a_d=5e4,c_d=50,u_d=500,G7r=class extends H_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new q7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,s_d):d6c,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),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 V7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||a_d}enqueue(t,r,n){super.enqueue(t,r,n),this.scheduleDebouncedFlush()}async flush(){let t=super.flush(),r=this.options.waitUntil;if(r&&!this._waitUntilCycle)try{r(t.catch(()=>{}))}catch{}return t}scheduleDebouncedFlush(){let t=this.options.waitUntil;if(!t||this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let s,a=new Promise(c=>{s=c});try{t(a)}catch{return}this._waitUntilCycle={resolve:s,startedAt:Date.now(),timer:void 0}}let r=Date.now()-this._waitUntilCycle.startedAt,n=this.options.waitUntilMaxWaitMs??u_d,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??c_d;this._waitUntilCycle.timer=Bfe(()=>{this.resolveWaitUntilFlush()},o)}_consumeWaitUntilCycle(){let t=this._waitUntilCycle;return t&&(clearTimeout(t.timer),this._waitUntilCycle=void 0),t?.resolve}async resolveWaitUntilFlush(){let t=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{t?.()}}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 o6c}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=d6c){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let k=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:k!==!1,variant:typeof k=="string"?k:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof mee||O instanceof Gd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=K_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(K_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(K_t.QUOTA_LIMITED);let k=B.flags[t];if(k===void 0)O.push(K_t.FLAG_MISSING);else{I=k.metadata?.id,w=k.metadata?.version,C=k.reason?.description??k.reason?.code;let P;if(k.metadata?.payload!==void 0)try{P=JSON.parse(k.metadata.payload)}catch{P=k.metadata.payload}f={key:t,enabled:k.enabled,variant:k.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let k={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(k.$feature_flag_definitions_loaded_at=P)}y&&(k.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:k,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=Bfe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(vQc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!pH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(pH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=uCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&gQc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var m6c=require("async_hooks"),W7r=class{constructor(){this.storage=new m6c.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var h6c="posthog-node";function l_d(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[wSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var wSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=h6c,this.name=h6c,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(l_d(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pH.errorPropertiesBuilder=new l6.ErrorPropertiesBuilder([new l6.EventCoercer,new l6.ErrorCoercer,new l6.ObjectCoercer,new l6.StringCoercer,new l6.PrimitiveCoercer],l6.createStackParser("node:javascript",l6.nodeStackLineParser),[pQc(),e6c]);var lCe=class extends G7r{getLibraryId(){return"posthog-node"}initializeContext(){return new W7r}};var H7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new lCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.35.3",usingAccessToken:!0,...Xae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}};var J_t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nr();var Not=require("fs/promises"),g6c=require("os"),A6c=require("path");var p_d="id",f_d=".fern",Y_t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new lCe(r),this.userId=t==null?void 0:M0o(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:"5.35.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Xae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}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 Hf({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=JQ(),r=nt(Ht.of((0,g6c.homedir)()),Ne.of(f_d),Ne.of(p_d));try{await cr(r)?this.persistedDistinctId=(await(0,Not.readFile)(r)).toString():(await(0,Not.mkdir)((0,A6c.dirname)(r),{recursive:!0}),await(0,Not.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var xSo;async function X_t(){return xSo==null&&(xSo=await d_d()),xSo}async function d_d(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new J_t;let r=await Vnt();return r!=null?new Y_t({token:r,posthogApiKey:e}):await xV()!=null?new H7r({posthogApiKey:e}):new Y_t({token:void 0,posthogApiKey:e})}catch{return new J_t}}jt();Ut();var Z_t=xe(require("process"),1);i9e();var E6c=xe(Ufo(),1),v6c=xe(b6c(),1);function cT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=HG(e),e.length===0))return 0;e=e.replace((0,v6c.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(E6c.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function K7r(e){let t=0;for(let r of e.split(`
3225
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=qQc.test(a)?a.replace(qQc,"$1"):a;if(!c.match(/\S*Error: /)){for(let u of t){let l=u(c,e);if(l){i.push(l);break}}if(i.length>=GQc)break}}return WQc(i)}}var mSo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=q_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return pze(t,"DOMException")}isDOMError(t){return pze(t,"DOMError")}};var hSo=class{match(t){return nSo(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var gSo=class{constructor(){}match(t){return EQc(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var MUd=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,ASo=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(MUd);return i&&(r=i[1],n=i[2]),[r,n]}};var KQc=["fatal","error","warning","log","info","debug"];function U7r(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var ySo=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return Pot(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=U7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return q_t(t)&&!yQc(t)&&KQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(kQc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var bSo=class{match(t){return Pot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${U7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var ESo=class{match(t){return O7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var vSo=class{match(t){return pze(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!Pot(t))return!1;try{let r=t.detail;return r!=null&&typeof r=="object"&&"reason"in r}catch{return!1}}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return O7r(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){try{if("reason"in t)return t.reason;if("detail"in t&&t.detail!=null&&typeof t.detail=="object"&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var ISo=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 XQc=require("fs"),ZQc=require("readline"),_7r=new l6.ReduceableCache(25),$Qc=new l6.ReduceableCache(20),CSo=7,LUd=1e3,zUd=1e4;async function e6c(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||qUd(s)||GUd(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if($Qc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=HUd(o);if(s.every(c=>WUd(i,c)))continue;let a=KUd(_7r,i,{});n.push(UUd(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&_Ud(e,_7r),_7r.reduce(),e}function UUd(e,t,r){return new Promise(n=>{let i=(0,XQc.createReadStream)(e),o=(0,ZQc.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,c=0,u=t[c];if(u===void 0)return void s();let l=u[0],p=u[1];function d(){$Qc.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=JUd(f,0),a>=p)){if(c===t.length-1){o.close(),o.removeAllListeners();return}c++;let m=t[c];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function _Ud(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;VUd(r.lineno,r,n)}}function VUd(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=t6c(e);i<e;i++){let o=r[i];if(o===void 0)return void JQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void JQc(t);t.context_line=r[e];let n=r6c(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function JQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function qUd(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function GUd(e){return e.lineno!==void 0&&e.lineno>zUd||e.colno!==void 0&&e.colno>LUd}function WUd(e,t){let r=_7r.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function HUd(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=YQc(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+CSo:(i.push(n),n=YQc(o)),t++}return i}function YQc(e){return[t6c(e),r6c(e)]}function t6c(e){return Math.max(1,e-CSo)}function r6c(e){return e+CSo}function KUd(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function JUd(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function YUd(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function n6c(e,t){globalThis.process?.on("uncaughtException",YUd(e,t))}function i6c(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var XUd=2e3,pH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new P7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return rSo(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i},s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n,properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(n6c(this.onException.bind(this),this.onFatalError.bind(this)),i6c(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(XUd),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var o6c="5.29.1";var K_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function s6c(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var ZUd=6e4,$Ud=1152921504606847e3,e_d=["is_not"],kot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Gd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},mee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},V7r=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let c=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,c)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(u){u instanceof mee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${t}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${u}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(c=>this.featureFlagsByKey[c]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async c=>{try{let{value:u,payload:l}=await this.computeFlagAndPayloadLocally(c,a);n[c.key]=u,l&&(i[c.key]=l)}catch(u){u instanceof mee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new Gd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Gd("Flag has unknown group type index");if(!(u in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[u];return await this.matchFeatureFlagProperties(t,i[u],l,r)}{let u=this.getBucketingValueForFlag(t,n,o);if(u===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new Gd(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,u,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new Gd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Gd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Gd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Gd(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[c]=p}catch(p){throw new Gd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Gd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Gd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof mee)throw l;if(l instanceof Gd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new Gd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?p6c(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):l6c(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await a6c(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await a6c(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(ZUd,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new kot(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new kot(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new kot(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof kot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=Bfe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function a6c(e,t,r=""){let n=await s6c(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/$Ud}function l6c(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new Gd("Operator is_not_set is not supported")}else throw new Gd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!e_d.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(u,l){return Array.isArray(u)?u.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(u).toLowerCase()===String(l).toLowerCase()}function c(u,l,p){if(p==="gt")return u>l;if(p==="gte")return u>=l;if(p==="lt")return u<l;if(p==="lte")return u<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return c6c(String(i))&&String(s).match(String(i))!==null;case"not_regex":return c6c(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Gd("Date operations cannot be performed on boolean values");let u=o_d(String(i));if(u==null&&(u=u6c(i)),u==null)throw new Gd(`Invalid date: ${i}`);let l=u6c(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return UV(KO(String(s)),KO(String(i)))===0;case"semver_neq":return UV(KO(String(s)),KO(String(i)))!==0;case"semver_gt":return UV(KO(String(s)),KO(String(i)))>0;case"semver_gte":return UV(KO(String(s)),KO(String(i)))>=0;case"semver_lt":return UV(KO(String(s)),KO(String(i)))<0;case"semver_lte":return UV(KO(String(s)),KO(String(i)))<=0;case"semver_tilde":{let u=KO(String(s)),{lower:l,upper:p}=r_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}case"semver_caret":{let u=KO(String(s)),{lower:l,upper:p}=n_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}case"semver_wildcard":{let u=KO(String(s)),{lower:l,upper:p}=i_d(String(i));return UV(u,l)>=0&&UV(u,p)<0}default:throw new Gd(`Unknown operator: ${o}`)}}function t_d(e,t){if(!(e in t))throw new mee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function p6c(e,t,r,n=!1){let i=String(e.value);t_d(i,r);let o=r[i];return f6c(o,t,r,n)}function f6c(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=f6c(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof mee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=p6c(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=l6c(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof mee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("can't match cohort without a given cohort property value");return i==="AND"}function c6c(e){try{return new RegExp(e),!0}catch{return!1}}function KO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Gd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new Gd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function UV(e,t){for(let r=0;r<3;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return 0}function r_d(e){let t=KO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function n_d(e){let t=KO(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function i_d(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Gd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new Gd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new Gd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function u6c(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 Gd(`${e} is in an invalid date format`)}throw new Gd(`The date provided ${e} must be a string, number, or date object`)}function o_d(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var q7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var s_d=100,d6c=3e4,a_d=5e4,c_d=50,u_d=500,G7r=class extends H_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new q7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,s_d):d6c,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),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 V7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new pH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||a_d}enqueue(t,r,n){super.enqueue(t,r,n),this.scheduleDebouncedFlush()}async flush(){let t=super.flush(),r=this.options.waitUntil;if(r&&!this._waitUntilCycle)try{r(t.catch(()=>{}))}catch{}return t}scheduleDebouncedFlush(){let t=this.options.waitUntil;if(!t||this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let s,a=new Promise(c=>{s=c});try{t(a)}catch{return}this._waitUntilCycle={resolve:s,startedAt:Date.now(),timer:void 0}}let r=Date.now()-this._waitUntilCycle.startedAt,n=this.options.waitUntilMaxWaitMs??u_d,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??c_d;this._waitUntilCycle.timer=Bfe(()=>{this.resolveWaitUntilFlush()},o)}_consumeWaitUntilCycle(){let t=this._waitUntilCycle;return t&&(clearTimeout(t.timer),this._waitUntilCycle=void 0),t?.resolve}async resolveWaitUntilFlush(){let t=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{t?.()}}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 o6c}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=d6c){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let k=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:k!==!1,variant:typeof k=="string"?k:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof mee||O instanceof Gd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=K_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(K_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(K_t.QUOTA_LIMITED);let k=B.flags[t];if(k===void 0)O.push(K_t.FLAG_MISSING);else{I=k.metadata?.id,w=k.metadata?.version,C=k.reason?.description??k.reason?.code;let P;if(k.metadata?.payload!==void 0)try{P=JSON.parse(k.metadata.payload)}catch{P=k.metadata.payload}f={key:t,enabled:k.enabled,variant:k.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let k={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(k.$feature_flag_definitions_loaded_at=P)}y&&(k.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:k,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=Bfe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(vQc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!pH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(pH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!pH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(pH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=uCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&gQc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var m6c=require("async_hooks"),W7r=class{constructor(){this.storage=new m6c.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var h6c="posthog-node";function l_d(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let c=s.tags[wSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var wSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=h6c,this.name=h6c,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(l_d(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};pH.errorPropertiesBuilder=new l6.ErrorPropertiesBuilder([new l6.EventCoercer,new l6.ErrorCoercer,new l6.ObjectCoercer,new l6.StringCoercer,new l6.PrimitiveCoercer],l6.createStackParser("node:javascript",l6.nodeStackLineParser),[pQc(),e6c]);var lCe=class extends G7r{getLibraryId(){return"posthog-node"}initializeContext(){return new W7r}};var H7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new lCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.35.4",usingAccessToken:!0,...Xae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}};var J_t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nr();var Not=require("fs/promises"),g6c=require("os"),A6c=require("path");var p_d="id",f_d=".fern",Y_t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new lCe(r),this.userId=t==null?void 0:M0o(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:"5.35.4",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Xae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}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 Hf({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=JQ(),r=nt(Ht.of((0,g6c.homedir)()),Ne.of(f_d),Ne.of(p_d));try{await cr(r)?this.persistedDistinctId=(await(0,Not.readFile)(r)).toString():(await(0,Not.mkdir)((0,A6c.dirname)(r),{recursive:!0}),await(0,Not.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var xSo;async function X_t(){return xSo==null&&(xSo=await d_d()),xSo}async function d_d(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new J_t;let r=await Vnt();return r!=null?new Y_t({token:r,posthogApiKey:e}):await xV()!=null?new H7r({posthogApiKey:e}):new Y_t({token:void 0,posthogApiKey:e})}catch{return new J_t}}jt();Ut();var Z_t=xe(require("process"),1);i9e();var E6c=xe(Ufo(),1),v6c=xe(b6c(),1);function cT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=HG(e),e.length===0))return 0;e=e.replace((0,v6c.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(E6c.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function K7r(e){let t=0;for(let r of e.split(`
3226
3226
  `))t=Math.max(t,cT(r));return t}var U6c=xe(TSo(),1);var h_d=/[\p{Lu}]/u,g_d=/[\p{Ll}]/u,w6c=/^[\p{Lu}](?![\p{Lu}])/gu,T6c=/([\p{Alpha}\p{N}_]|$)/u,BSo=/[_.\- ]+/,A_d=new RegExp("^"+BSo.source),x6c=new RegExp(BSo.source+T6c.source,"gu"),S6c=new RegExp("\\d+"+T6c.source,"gu"),y_d=(e,t,r,n)=>{let i=!1,o=!1,s=!1,a=!1;for(let c=0;c<e.length;c++){let u=e[c];a=c>2?e[c-3]==="-":!0,i&&h_d.test(u)?(e=e.slice(0,c)+"-"+e.slice(c),i=!1,s=o,o=!0,c++):o&&s&&g_d.test(u)&&(!a||n)?(e=e.slice(0,c-1)+"-"+e.slice(c-1),s=o,o=!1,i=!0):(i=t(u)===u&&r(u)!==u,s=o,o=r(u)===u&&t(u)!==u)}return e},b_d=(e,t)=>(w6c.lastIndex=0,e.replace(w6c,r=>t(r))),E_d=(e,t)=>(x6c.lastIndex=0,S6c.lastIndex=0,e.replace(x6c,(r,n)=>t(n)).replace(S6c,r=>t(r)));function OSo(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?BSo.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=y_d(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(A_d,""),e=t.preserveConsecutiveUppercase?b_d(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),E_d(e,n))}var FSo=xe(O6c(),1);i9e();var P6c=(e=0)=>t=>`\x1B[${t+e}m`,D6c=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,R6c=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,iE={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},FtE=Object.keys(iE.modifier),w_d=Object.keys(iE.color),x_d=Object.keys(iE.bgColor),ktE=[...w_d,...x_d];function S_d(){let e=new Map;for(let[t,r]of Object.entries(iE)){for(let[n,i]of Object.entries(r))iE[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=iE[n],e.set(i[0],i[1]);Object.defineProperty(iE,t,{value:r,enumerable:!1})}return Object.defineProperty(iE,"codes",{value:e,enumerable:!1}),iE.color.close="\x1B[39m",iE.bgColor.close="\x1B[49m",iE.color.ansi=P6c(),iE.color.ansi256=D6c(),iE.color.ansi16m=R6c(),iE.bgColor.ansi=P6c(10),iE.bgColor.ansi256=D6c(10),iE.bgColor.ansi16m=R6c(10),Object.defineProperties(iE,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>iE.rgbToAnsi256(...iE.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>iE.ansi256ToAnsi(iE.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>iE.ansi256ToAnsi(iE.hexToAnsi256(t)),enumerable:!1}}),iE}var T_d=S_d(),F6c=T_d;var J7r=new Set(["\x1B","\x9B"]),B_d=39,DSo="\x07",j6c="[",O_d="]",Q6c="m",RSo=`${O_d}8;;`,k6c=e=>`${J7r.values().next().value}${j6c}${e}${Q6c}`,N6c=e=>`${J7r.values().next().value}${RSo}${e}${DSo}`,P_d=e=>e.split(" ").map(t=>cT(t)),PSo=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=cT(HG(e[e.length-1]));for(let[a,c]of n.entries()){let u=cT(c);if(s+u<=r?e[e.length-1]+=c:(e.push(c),s=0),J7r.has(c)&&(i=!0,o=n.slice(a+1).join("").startsWith(RSo)),i){o?c===DSo&&(i=!1,o=!1):c===Q6c&&(i=!1);continue}s+=u,s===r&&a<n.length-1&&(e.push(""),s=0)}!s&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},D_d=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(cT(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},R_d=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=P_d(e),a=[""];for(let[u,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=cT(a[a.length-1]);if(u!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),p=0),(p>0||r.trim===!1)&&(a[a.length-1]+=" ",p++)),r.hard&&s[u]>t){let d=t-p,f=1+Math.floor((s[u]-d-1)/t);Math.floor((s[u]-1)/t)<f&&a.push(""),PSo(a,l,t);continue}if(p+s[u]>t&&p>0&&s[u]>0){if(r.wordWrap===!1&&p<t){PSo(a,l,t);continue}a.push("")}if(p+s[u]>t&&r.wordWrap===!1){PSo(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(u=>D_d(u)));let c=[...a.join(`
3227
3227
  `)];for(let[u,l]of c.entries()){if(n+=l,J7r.has(l)){let{groups:d}=new RegExp(`(?:\\${j6c}(?<code>\\d+)m|\\${RSo}(?<uri>.*)${DSo})`).exec(c.slice(u).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===B_d?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=F6c.codes.get(Number(i));c[u+1]===`
3228
3228
  `?(o&&(n+=N6c("")),i&&p&&(n+=k6c(p))):l===`
@@ -3809,7 +3809,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
3809
3809
  Add a 'docs:' section to your fern.yml to get started.`,code:R.Code.ConfigError});let o=await new jPe({context:t}).check({workspace:n,strict:r.strict}),s=new Set(o.mdxParseErrors.map(p=>p.displayRelativeFilepath)),a=new Set(o.mdxParseErrors.map(p=>p.rawMessage)),c=o.violations.filter(p=>!(s.size>0&&CPm(p,s,a))),u=o.hasErrors||r.strict&&o.hasWarnings;if(r.json){let p=this.buildJsonResponse({result:o,filteredViolations:c,hasErrors:u});if(t.stdout.info(JSON.stringify(p,null,2)),u)throw new R({code:R.Code.ValidationError});return}if(c.length>0)for(let p of c){let d=p.severity==="warning"?ye.yellow:ye.red;process.stderr.write(`${d(`${p.displayRelativeFilepath}:${p.line}:${p.column}: ${p.message}`)}
3810
3810
  `)}let l=0;if(o.mdxParseErrors.length>0){for(let p of o.mdxParseErrors)t.stderr.info(`
3811
3811
  ${p.toString()}
3812
- `);r.fix?l+=await Z$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!NYn()&&await $$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new Q0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new R({code:R.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Xr.warning} ${ye.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(ye.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Xr.success} ${ye.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>bee(o)),...t.mdxParseErrors.map(o=>({severity:"error",rule:o.code.code,filepath:o.displayRelativeFilepath,...o.line!=null?{line:o.line}:{},...o.column!=null?{column:o.column}:{},message:`[${o.code.code}] ${o.code.title}: ${o.rawMessage}`}))]),{success:!n,results:i}}};function CPm(e,t,r){if(!/failed to parse|failed to initialize/i.test(e.message))return!1;for(let n of r)if(n.length>0&&e.message.includes(n))return!0;for(let n of t){if(e.message.includes(n))return!0;let i=n.split("/").filter(Boolean);for(let o=i.length;o>=2;o--){let s=i.slice(i.length-o).join("/");if(e.message.includes(s))return!0}if(i.length===1){let o=i[0];if(o!=null&&e.message.includes(o))return!0}}return!1}function a_o(e){let t=new s_o;ji(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}Hb();Ut();var mlu=xe(require("net"),1),hlu=xe(require("os"),1),rei=class extends Error{constructor(t){super(`${t} is locked`)}},U0t={old:new Set,young:new Set},wPm=1e3*15,glu=new Set;var Qqt,xPm=()=>{let e=hlu.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},flu=e=>new Promise((t,r)=>{let n=mlu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),dlu=async(e,t)=>{if(e.host||e.port===0)return flu(e);for(let r of t)try{await flu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},SPm=e=>U0t.old.has(e)||U0t.young.has(e)||glu.has(e),TPm=function*(e){e&&(yield*e),yield 0};async function MPe(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let s=e.exclude;if(typeof s[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let a of s){if(typeof a!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(a))throw new TypeError(`Number ${a} in the exclude option is not a safe integer and can't be used`)}r=new Set(s)}let{reserve:n,...i}=e??{};Qqt===void 0&&(Qqt=setTimeout(()=>{Qqt=void 0,U0t.old=U0t.young,U0t.young=new Set},wPm),Qqt.unref&&Qqt.unref());let o=xPm();for(let s of TPm(t))try{if(r.has(s))continue;let a=await dlu({...i,port:s},o);for(;SPm(a);){if(s!==0)throw new rei(s);a=await dlu({...i,port:s},o)}return n?glu.add(a):U0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof rei))throw a}throw new Error("No available ports found")}Ut();var blu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,Alu="docs.buildwithfern.com",ylu=62;function AUe(e){let t=e.toLowerCase().trim();t.startsWith("https://")?t=t.slice(8):t.startsWith("http://")&&(t=t.slice(7));let r=t.indexOf("/");return r!==-1&&(t=t.slice(0,r)),blu.test(t)}function Elu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Mqt({orgId:e,previewId:t}){let r=Elu(t),n=`${e}-preview-${r}.${Alu}`;if(n.length<=ylu)return n;let i=`${e}-preview-`,o=ylu-i.length;if(o<8)throw new R({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:R.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${Alu}`}jt();lg();nr();oS();Ut();var H8o=require("child_process"),Lvu=xe(l_o(),1),K8o=xe(_ei(),1),J8o=xe(require("fs"),1),VUe=require("fs/promises"),zvu=xe(require("http"),1),Z8o=xe(require("path"),1);var yhu=require("events"),Hei=xe(require("fs"),1),TUe=xe(require("path"),1);var ehu=xe(require("os"),1),thu=300,GPe=20,uGt=1e7,rhu=ehu.default.platform();var _jm=rhu==="darwin",OVo=rhu==="win32",WPe=_jm||OVo,nhu=3e3,ihu=2e4,PVo=1250;var vie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(vie||(vie={}));var SUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(SUe||(SUe={}));var lGt;(function(e){e.CHANGE="change",e.ERROR="error"})(lGt||(lGt={}));var Wc;(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"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var Vjm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,k=o-B,P=Math.min(O,k);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Vei=Vjm;var kVo=xe(require("fs"),1),Gei=xe(require("path"),1);var Kd=xe(require("fs"),1),pP=require("util");var Zde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Iie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var DVo=xe(require("process"),1),ohu=DVo.default.getuid?!DVo.default.getuid():!1,shu=1e4,OM=()=>{};var pGt={isChangeErrorOk:e=>{if(!pGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!ohu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!pGt.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(!pGt.isNodeError(e))throw e;if(!pGt.isChangeErrorOk(e))throw e}},RC=pGt;var RVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=shu,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},ahu=new RVo;var $de=(e,t)=>function(n){return function i(...o){return ahu.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},eme=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var qjm={attempt:{chmod:Zde((0,pP.promisify)(Kd.default.chmod),RC.onChangeError),chown:Zde((0,pP.promisify)(Kd.default.chown),RC.onChangeError),close:Zde((0,pP.promisify)(Kd.default.close),OM),fsync:Zde((0,pP.promisify)(Kd.default.fsync),OM),mkdir:Zde((0,pP.promisify)(Kd.default.mkdir),OM),realpath:Zde((0,pP.promisify)(Kd.default.realpath),OM),stat:Zde((0,pP.promisify)(Kd.default.stat),OM),unlink:Zde((0,pP.promisify)(Kd.default.unlink),OM),chmodSync:Iie(Kd.default.chmodSync,RC.onChangeError),chownSync:Iie(Kd.default.chownSync,RC.onChangeError),closeSync:Iie(Kd.default.closeSync,OM),existsSync:Iie(Kd.default.existsSync,OM),fsyncSync:Iie(Kd.default.fsync,OM),mkdirSync:Iie(Kd.default.mkdirSync,OM),realpathSync:Iie(Kd.default.realpathSync,OM),statSync:Iie(Kd.default.statSync,OM),unlinkSync:Iie(Kd.default.unlinkSync,OM)},retry:{close:$de((0,pP.promisify)(Kd.default.close),RC.isRetriableError),fsync:$de((0,pP.promisify)(Kd.default.fsync),RC.isRetriableError),open:$de((0,pP.promisify)(Kd.default.open),RC.isRetriableError),readFile:$de((0,pP.promisify)(Kd.default.readFile),RC.isRetriableError),rename:$de((0,pP.promisify)(Kd.default.rename),RC.isRetriableError),stat:$de((0,pP.promisify)(Kd.default.stat),RC.isRetriableError),write:$de((0,pP.promisify)(Kd.default.write),RC.isRetriableError),writeFile:$de((0,pP.promisify)(Kd.default.writeFile),RC.isRetriableError),closeSync:eme(Kd.default.closeSync,RC.isRetriableError),fsyncSync:eme(Kd.default.fsyncSync,RC.isRetriableError),openSync:eme(Kd.default.openSync,RC.isRetriableError),readFileSync:eme(Kd.default.readFileSync,RC.isRetriableError),renameSync:eme(Kd.default.renameSync,RC.isRetriableError),statSync:eme(Kd.default.statSync,RC.isRetriableError),writeSync:eme(Kd.default.writeSync,RC.isRetriableError),writeFileSync:eme(Kd.default.writeFileSync,RC.isRetriableError)}},chu=qjm;var qei=xe(require("fs"),1),fGt=xe(require("path"),1);var FVo=()=>{};var Gjm=()=>{let e=FVo,t=FVo,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},uhu=Gjm;var Wjm=()=>{let{promise:e,resolve:t,isPending:r}=uhu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},lhu=Wjm;var phu={then:e=>{e()}};var fhu=e=>Array.isArray(e)?e:[e],dhu=e=>typeof e=="function";var Hjm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=fhu(o).map(oe=>dhu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:k,decrement:P}=lhu(),U=0,X=(oe,ae,Se,ve)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(ve>=n)&&(U>=i||fe(ae,ve+1)))},$=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,ve)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(ve>=n||U>=i||Le(ae,ve+1)))},le=(oe,ae,Se,ve,Qe)=>{c.aborted||a(ae)||(ve.isDirectory()?X(oe,ae,Se,Qe):ve.isFile()?$(oe,ae,Se):ve.isSymbolicLink()&&ne(oe,ae,Se,Qe))},ge=(oe,ae,Se,ve)=>{if(c.aborted)return;let Qe=ae===fGt.default.sep?"":fGt.default.sep,qe=Se.name,ut=`${ae}${Qe}${qe}`;a(ut)||(Se.isDirectory()?X(oe,ut,qe,ve):Se.isFile()?$(oe,ut,qe):Se.isSymbolicLink()&&ne(oe,ut,qe,ve))},me=(oe,ae,Se,ve)=>{for(let Qe=0,qe=Se.length;Qe<qe;Qe++)ge(oe,ae,Se[Qe],ve)},fe=(oe,ae)=>{c.aborted||ae>n||U>=i||(k(),qei.default.readdir(oe,{withFileTypes:!0},(Se,ve)=>{if(Se||c.aborted||!ve.length)return P();(u(ve)||phu).then(()=>{let qe=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};me(qe,oe,ve,ae),P()})}))},Le=(oe,ae)=>{k(),qei.default.realpath(oe,(Se,ve)=>{if(Se||c.aborted)return P();qei.default.stat(ve,(Qe,qe)=>{if(Qe||c.aborted)return P();let ut=fGt.default.basename(ve),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};le(bt,ve,ut,qe,ae),P()})})};return(async(oe,ae=1)=>(oe=fGt.default.normalize(oe),C.add(oe),fe(oe,ae),await O,c.aborted?x:B))(e)},mhu=Hjm;var Cie={lang:{debounce:Vei,attempt:e=>{try{return e()}catch(t){return Cie.lang.castError(t)}},castArray:e=>Cie.lang.isArray(e)?e:[e],castError:e=>Cie.lang.isError(e)?e:Cie.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(Cie.lang.isNaN(e))return Cie.lang.isNaN(t);if(Cie.lang.isPrimitive(e)||Cie.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(Gei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?kVo.default.realpathSync.native(e):kVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Gei.default.sep&&t.length-e.length>Gei.default.sep.length,poll:(e,t=ihu)=>chu.retry.stat(t)(e,{bigint:!0}).catch(Cie.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await mhu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Ep=Cie;var Wei=xe(require("path"),1);var NVo=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||Ep.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=thu){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=Ep.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??GPe:Math.min(1,this.options.depth??GPe),s=this.options.limit??uGt,[a,c]=await Ep.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())Ep.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!WPe&&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(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Wei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Wei.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(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=SUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Wei.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){OVo&&t.code==="EPERM"?this.onWatcherChange(SUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(lGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(lGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(SUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&WPe&&this.options.native!==!1?this.options.depth??GPe:Math.min(1,this.options.depth??GPe),n=this.options.limit??uGt,[i,o]=await Ep.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(SUe.CHANGE,a,t)}))}}},hhu=NVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},dGt=kN;var mGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=PVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(Ep.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),dGt.remove(u)},u=()=>{c(),a()};dGt.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=PVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),dGt.remove(u)},u=()=>{c(),a()};dGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,vie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,vie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,vie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,vie.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};mGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};mGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var ghu=mGt;var jVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ep.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(Ep.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ep.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ep.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},QVo=jVo;var MVo=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}},Ahu=MVo;var LVo=class{constructor(){this.inos={},this.paths=new QVo,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ep.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Ahu(n)}reset(){this.inos={},this.paths=new QVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?vie.FILE:vie.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},zVo=LVo;var UVo=class e extends yhu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new ghu(this),this._roots=new Set,this._poller=new zVo,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(Ep.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(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ep.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)Ep.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new hhu(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=Ep.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=TUe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??GPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&WPe&&l.options.native!==!1)))return!0;if(!WPe)break;let u=TUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Ep.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||WPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Hei.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=TUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||WPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??GPe,a=r.limit??uGt,[c]=await Ep.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=Ep.fs.getDepth(t);for(let p of c){let d=Ep.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=TUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new zVo,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ep.lang.noop;if(this.pollerExists(t,r))return Ep.lang.noop;let i={...r,interval:r.pollingInterval??nhu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),Hei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),Hei.default.unwatchFile(t,n)};return Ep.lang.attempt(s),()=>Ep.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=Ep.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Ep.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=TUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ep.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=TUe.default.dirname(t);return(await Ep.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ep.lang.noop){if(Ep.lang.isFunction(t))return this.watch([],{},t);if(Ep.lang.isUndefined(t))return this.watch([],r,n);if(Ep.lang.isFunction(r))return this.watch(t,{},r);if(Ep.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ep.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ep.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Kei=UVo;uti();nr();var W7=require("fs/promises"),Cgu=require("os"),l5o=xe(require("path"),1),E6m=".fern",v6m="logs",u5o=100*1024*1024;function I6m(){return"cli@5.35.3"}var FUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t,r){if(this.initialized)return;this.consoleLogger=t;let n=r??nt(nt(Ht.of((0,Cgu.homedir)()),Ne.of(E6m)),Ne.of(v6m));await cr(n)||await(0,W7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,Ne.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${l5o.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
3812
+ `);r.fix?l+=await Z$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!NYn()&&await $$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new Q0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new R({code:R.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Xr.warning} ${ye.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(ye.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Xr.success} ${ye.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>bee(o)),...t.mdxParseErrors.map(o=>({severity:"error",rule:o.code.code,filepath:o.displayRelativeFilepath,...o.line!=null?{line:o.line}:{},...o.column!=null?{column:o.column}:{},message:`[${o.code.code}] ${o.code.title}: ${o.rawMessage}`}))]),{success:!n,results:i}}};function CPm(e,t,r){if(!/failed to parse|failed to initialize/i.test(e.message))return!1;for(let n of r)if(n.length>0&&e.message.includes(n))return!0;for(let n of t){if(e.message.includes(n))return!0;let i=n.split("/").filter(Boolean);for(let o=i.length;o>=2;o--){let s=i.slice(i.length-o).join("/");if(e.message.includes(s))return!0}if(i.length===1){let o=i[0];if(o!=null&&e.message.includes(o))return!0}}return!1}function a_o(e){let t=new s_o;ji(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}Hb();Ut();var mlu=xe(require("net"),1),hlu=xe(require("os"),1),rei=class extends Error{constructor(t){super(`${t} is locked`)}},U0t={old:new Set,young:new Set},wPm=1e3*15,glu=new Set;var Qqt,xPm=()=>{let e=hlu.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},flu=e=>new Promise((t,r)=>{let n=mlu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),dlu=async(e,t)=>{if(e.host||e.port===0)return flu(e);for(let r of t)try{await flu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},SPm=e=>U0t.old.has(e)||U0t.young.has(e)||glu.has(e),TPm=function*(e){e&&(yield*e),yield 0};async function MPe(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let s=e.exclude;if(typeof s[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let a of s){if(typeof a!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(a))throw new TypeError(`Number ${a} in the exclude option is not a safe integer and can't be used`)}r=new Set(s)}let{reserve:n,...i}=e??{};Qqt===void 0&&(Qqt=setTimeout(()=>{Qqt=void 0,U0t.old=U0t.young,U0t.young=new Set},wPm),Qqt.unref&&Qqt.unref());let o=xPm();for(let s of TPm(t))try{if(r.has(s))continue;let a=await dlu({...i,port:s},o);for(;SPm(a);){if(s!==0)throw new rei(s);a=await dlu({...i,port:s},o)}return n?glu.add(a):U0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof rei))throw a}throw new Error("No available ports found")}Ut();var blu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,Alu="docs.buildwithfern.com",ylu=62;function AUe(e){let t=e.toLowerCase().trim();t.startsWith("https://")?t=t.slice(8):t.startsWith("http://")&&(t=t.slice(7));let r=t.indexOf("/");return r!==-1&&(t=t.slice(0,r)),blu.test(t)}function Elu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Mqt({orgId:e,previewId:t}){let r=Elu(t),n=`${e}-preview-${r}.${Alu}`;if(n.length<=ylu)return n;let i=`${e}-preview-`,o=ylu-i.length;if(o<8)throw new R({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:R.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${Alu}`}jt();lg();nr();oS();Ut();var H8o=require("child_process"),Lvu=xe(l_o(),1),K8o=xe(_ei(),1),J8o=xe(require("fs"),1),VUe=require("fs/promises"),zvu=xe(require("http"),1),Z8o=xe(require("path"),1);var yhu=require("events"),Hei=xe(require("fs"),1),TUe=xe(require("path"),1);var ehu=xe(require("os"),1),thu=300,GPe=20,uGt=1e7,rhu=ehu.default.platform();var _jm=rhu==="darwin",OVo=rhu==="win32",WPe=_jm||OVo,nhu=3e3,ihu=2e4,PVo=1250;var vie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(vie||(vie={}));var SUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(SUe||(SUe={}));var lGt;(function(e){e.CHANGE="change",e.ERROR="error"})(lGt||(lGt={}));var Wc;(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"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var Vjm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,k=o-B,P=Math.min(O,k);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Vei=Vjm;var kVo=xe(require("fs"),1),Gei=xe(require("path"),1);var Kd=xe(require("fs"),1),pP=require("util");var Zde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Iie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var DVo=xe(require("process"),1),ohu=DVo.default.getuid?!DVo.default.getuid():!1,shu=1e4,OM=()=>{};var pGt={isChangeErrorOk:e=>{if(!pGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!ohu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!pGt.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(!pGt.isNodeError(e))throw e;if(!pGt.isChangeErrorOk(e))throw e}},RC=pGt;var RVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=shu,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},ahu=new RVo;var $de=(e,t)=>function(n){return function i(...o){return ahu.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},eme=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var qjm={attempt:{chmod:Zde((0,pP.promisify)(Kd.default.chmod),RC.onChangeError),chown:Zde((0,pP.promisify)(Kd.default.chown),RC.onChangeError),close:Zde((0,pP.promisify)(Kd.default.close),OM),fsync:Zde((0,pP.promisify)(Kd.default.fsync),OM),mkdir:Zde((0,pP.promisify)(Kd.default.mkdir),OM),realpath:Zde((0,pP.promisify)(Kd.default.realpath),OM),stat:Zde((0,pP.promisify)(Kd.default.stat),OM),unlink:Zde((0,pP.promisify)(Kd.default.unlink),OM),chmodSync:Iie(Kd.default.chmodSync,RC.onChangeError),chownSync:Iie(Kd.default.chownSync,RC.onChangeError),closeSync:Iie(Kd.default.closeSync,OM),existsSync:Iie(Kd.default.existsSync,OM),fsyncSync:Iie(Kd.default.fsync,OM),mkdirSync:Iie(Kd.default.mkdirSync,OM),realpathSync:Iie(Kd.default.realpathSync,OM),statSync:Iie(Kd.default.statSync,OM),unlinkSync:Iie(Kd.default.unlinkSync,OM)},retry:{close:$de((0,pP.promisify)(Kd.default.close),RC.isRetriableError),fsync:$de((0,pP.promisify)(Kd.default.fsync),RC.isRetriableError),open:$de((0,pP.promisify)(Kd.default.open),RC.isRetriableError),readFile:$de((0,pP.promisify)(Kd.default.readFile),RC.isRetriableError),rename:$de((0,pP.promisify)(Kd.default.rename),RC.isRetriableError),stat:$de((0,pP.promisify)(Kd.default.stat),RC.isRetriableError),write:$de((0,pP.promisify)(Kd.default.write),RC.isRetriableError),writeFile:$de((0,pP.promisify)(Kd.default.writeFile),RC.isRetriableError),closeSync:eme(Kd.default.closeSync,RC.isRetriableError),fsyncSync:eme(Kd.default.fsyncSync,RC.isRetriableError),openSync:eme(Kd.default.openSync,RC.isRetriableError),readFileSync:eme(Kd.default.readFileSync,RC.isRetriableError),renameSync:eme(Kd.default.renameSync,RC.isRetriableError),statSync:eme(Kd.default.statSync,RC.isRetriableError),writeSync:eme(Kd.default.writeSync,RC.isRetriableError),writeFileSync:eme(Kd.default.writeFileSync,RC.isRetriableError)}},chu=qjm;var qei=xe(require("fs"),1),fGt=xe(require("path"),1);var FVo=()=>{};var Gjm=()=>{let e=FVo,t=FVo,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},uhu=Gjm;var Wjm=()=>{let{promise:e,resolve:t,isPending:r}=uhu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},lhu=Wjm;var phu={then:e=>{e()}};var fhu=e=>Array.isArray(e)?e:[e],dhu=e=>typeof e=="function";var Hjm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=fhu(o).map(oe=>dhu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:k,decrement:P}=lhu(),U=0,X=(oe,ae,Se,ve)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(ve>=n)&&(U>=i||fe(ae,ve+1)))},$=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,ve)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(ve>=n||U>=i||Le(ae,ve+1)))},le=(oe,ae,Se,ve,Qe)=>{c.aborted||a(ae)||(ve.isDirectory()?X(oe,ae,Se,Qe):ve.isFile()?$(oe,ae,Se):ve.isSymbolicLink()&&ne(oe,ae,Se,Qe))},ge=(oe,ae,Se,ve)=>{if(c.aborted)return;let Qe=ae===fGt.default.sep?"":fGt.default.sep,qe=Se.name,ut=`${ae}${Qe}${qe}`;a(ut)||(Se.isDirectory()?X(oe,ut,qe,ve):Se.isFile()?$(oe,ut,qe):Se.isSymbolicLink()&&ne(oe,ut,qe,ve))},me=(oe,ae,Se,ve)=>{for(let Qe=0,qe=Se.length;Qe<qe;Qe++)ge(oe,ae,Se[Qe],ve)},fe=(oe,ae)=>{c.aborted||ae>n||U>=i||(k(),qei.default.readdir(oe,{withFileTypes:!0},(Se,ve)=>{if(Se||c.aborted||!ve.length)return P();(u(ve)||phu).then(()=>{let qe=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};me(qe,oe,ve,ae),P()})}))},Le=(oe,ae)=>{k(),qei.default.realpath(oe,(Se,ve)=>{if(Se||c.aborted)return P();qei.default.stat(ve,(Qe,qe)=>{if(Qe||c.aborted)return P();let ut=fGt.default.basename(ve),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};le(bt,ve,ut,qe,ae),P()})})};return(async(oe,ae=1)=>(oe=fGt.default.normalize(oe),C.add(oe),fe(oe,ae),await O,c.aborted?x:B))(e)},mhu=Hjm;var Cie={lang:{debounce:Vei,attempt:e=>{try{return e()}catch(t){return Cie.lang.castError(t)}},castArray:e=>Cie.lang.isArray(e)?e:[e],castError:e=>Cie.lang.isError(e)?e:Cie.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(Cie.lang.isNaN(e))return Cie.lang.isNaN(t);if(Cie.lang.isPrimitive(e)||Cie.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(Gei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?kVo.default.realpathSync.native(e):kVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Gei.default.sep&&t.length-e.length>Gei.default.sep.length,poll:(e,t=ihu)=>chu.retry.stat(t)(e,{bigint:!0}).catch(Cie.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await mhu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Ep=Cie;var Wei=xe(require("path"),1);var NVo=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||Ep.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=thu){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=Ep.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??GPe:Math.min(1,this.options.depth??GPe),s=this.options.limit??uGt,[a,c]=await Ep.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())Ep.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!WPe&&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(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Wei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Wei.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(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=SUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Wei.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){OVo&&t.code==="EPERM"?this.onWatcherChange(SUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(lGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(lGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(SUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&WPe&&this.options.native!==!1?this.options.depth??GPe:Math.min(1,this.options.depth??GPe),n=this.options.limit??uGt,[i,o]=await Ep.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(SUe.CHANGE,a,t)}))}}},hhu=NVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},dGt=kN;var mGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=PVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(Ep.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),dGt.remove(u)},u=()=>{c(),a()};dGt.add(u,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;c();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=PVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let c=()=>{s.unlink.delete(n),dGt.remove(u)},u=()=>{c(),a()};dGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,vie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,vie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,vie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,vie.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};mGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};mGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var ghu=mGt;var jVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ep.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(Ep.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ep.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ep.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},QVo=jVo;var MVo=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}},Ahu=MVo;var LVo=class{constructor(){this.inos={},this.paths=new QVo,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ep.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Ahu(n)}reset(){this.inos={},this.paths=new QVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?vie.FILE:vie.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},zVo=LVo;var UVo=class e extends yhu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new ghu(this),this._roots=new Set,this._poller=new zVo,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(Ep.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(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ep.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)Ep.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new hhu(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=Ep.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=TUe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??GPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&WPe&&l.options.native!==!1)))return!0;if(!WPe)break;let u=TUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Ep.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||WPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Hei.default.watch(a,c),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=TUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||WPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??GPe,a=r.limit??uGt,[c]=await Ep.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=Ep.fs.getDepth(t);for(let p of c){let d=Ep.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=TUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new zVo,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ep.lang.noop;if(this.pollerExists(t,r))return Ep.lang.noop;let i={...r,interval:r.pollingInterval??nhu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),Hei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),Hei.default.unwatchFile(t,n)};return Ep.lang.attempt(s),()=>Ep.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=Ep.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Ep.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=TUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ep.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=TUe.default.dirname(t);return(await Ep.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ep.lang.noop){if(Ep.lang.isFunction(t))return this.watch([],{},t);if(Ep.lang.isUndefined(t))return this.watch([],r,n);if(Ep.lang.isFunction(r))return this.watch(t,{},r);if(Ep.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ep.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ep.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Kei=UVo;uti();nr();var W7=require("fs/promises"),Cgu=require("os"),l5o=xe(require("path"),1),E6m=".fern",v6m="logs",u5o=100*1024*1024;function I6m(){return"cli@5.35.4"}var FUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t,r){if(this.initialized)return;this.consoleLogger=t;let n=r??nt(nt(Ht.of((0,Cgu.homedir)()),Ne.of(E6m)),Ne.of(v6m));await cr(n)||await(0,W7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,Ne.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${l5o.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
3813
3813
  `);await(0,W7.writeFile)(this.logFilePath,s,"utf-8"),this.initialized=!0,this.enforceLogSizeLimit(n)}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
3814
3814
  `;try{await(0,W7.appendFile)(this.logFilePath,r,"utf-8")}catch{}}async logFrontendMetrics(t){let r={timestamp:t.timestamp,source:t.source,level:t.level,eventType:this.getEventType(t.payload,t.isAggregate),isAggregate:t.isAggregate,data:t.payload};await this.writeEntry(r)}async logCliMetric(t,r="info"){let n={timestamp:t.timestamp,source:I6m(),level:r,eventType:t.type,data:{durationMs:t.durationMs,metadata:t.metadata}};await this.writeEntry(n)}async logCliMemory(){let t=process.memoryUsage(),r={type:"cli_memory",timestamp:new Date().toISOString(),metadata:{heapUsed:t.heapUsed,heapTotal:t.heapTotal,external:t.external,rss:t.rss,heapUsedMB:Math.round(t.heapUsed/1024/1024*100)/100,heapTotalMB:Math.round(t.heapTotal/1024/1024*100)/100,rssMB:Math.round(t.rss/1024/1024*100)/100}};await this.logCliMetric(r)}async logCliReloadStart(){let t={type:"cli_reload_start",timestamp:new Date().toISOString()};await this.logCliMetric(t)}async logCliReloadFinish(t,r){let n={type:"cli_reload_finish",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliDocsGeneration(t,r){let n={type:"cli_docs_generation",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliValidation(t,r){let n={type:"cli_validation",timestamp:new Date().toISOString(),durationMs:t,metadata:{success:r}};await this.logCliMetric(n)}async enforceLogSizeLimit(t){try{let n=(await(0,W7.readdir)(t)).filter(c=>c.endsWith(".log")),i=[];for(let c of n){let u=l5o.default.join(t,c);try{let l=await(0,W7.stat)(u);i.push({name:c,fullPath:u,size:l.size,mtimeMs:l.mtimeMs})}catch{}}let o=i.reduce((c,u)=>c+u.size,0),s=Math.round(o/1024/1024*100)/100,a=u5o/1024/1024;if(o<=u5o){this.consoleLogger?.debug(`Log directory size ${s} MB does not exceed ${a} MB cap`);return}this.consoleLogger?.info(`Rotating logs: total size ${s} MB exceeds ${a} MB cap`),i.sort((c,u)=>c.mtimeMs-u.mtimeMs);for(let c of i){if(o<=u5o)break;if(!(this.logFilePath!=null&&c.fullPath===this.logFilePath))try{await(0,W7.unlink)(c.fullPath),o-=c.size}catch{}}}catch{}}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 lti={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function wgu(e){let t=C6m();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i,extractLocaleFromPath:o}=e,s=new Map;function a(u){let l=JSON.stringify(u),p=[];for(let[d]of s)try{d.send(l)}catch{p.push(d)}for(let d of p){let f=s.get(d);f&&(clearInterval(f.pingInterval),s.delete(d))}}let c=t.serve({port:r,async fetch(u,l){if(u.method==="OPTIONS")return new Response(null,{status:204,headers:lti});let p=new URL(u.url);if(u.headers.get("upgrade")?.toLowerCase()==="websocket"){l.upgrade(u,{data:{connectionId:`${Date.now()}`}});return}if(u.method==="POST"&&p.pathname==="/v2/registry/docs/load-with-url")try{let f=await u.json(),m=o?.(f?.url);return new Response(JSON.stringify(i(m)),{headers:{"Content-Type":"application/json",...lti}})}catch{return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...lti}})}let d=/^\/_local\/(.*)/.exec(p.pathname);return u.method==="GET"&&d!=null?new Response(t.file(`/${d[1]}`),{headers:lti}):new Response("Not Found",{status:404})},websocket:{open(u){let{connectionId:l}=u.data,p=setInterval(()=>{let d=s.get(u);if(!d)return;let f=Date.now();if(f-d.lastPong>9e4){u.close();return}try{u.send(JSON.stringify({type:"ping",timestamp:f}))}catch{u.close()}},3e4);s.set(u,{pingInterval:p,lastPong:Date.now()});try{u.send(JSON.stringify({type:"connected",connectionId:l}))}catch{}},message(u,l){try{let p=JSON.parse(l.toString());if(p.type==="pong"){let d=s.get(u);d&&(d.lastPong=Date.now())}else FUe.isMetricsMessage(p)&&n.logFrontendMetrics(p)}catch{}},close(u){let l=s.get(u);l&&(clearInterval(l.pingInterval),s.delete(u))}}});return{sendData:a,stop:u=>c.stop(u)}}function C6m(){return globalThis.Bun}nr();oS();Ut();var Svu=require("child_process"),Cri=xe(b5o(),1),Tvu=xe(R8o(),1),vv=require("fs"),QN=require("fs/promises"),Bvu=require("os"),jN=xe(require("path"),1),Ovu=xe(pw(),1),Pvu=xe(xvu(),1),_Ue=process.platform==="win32",Iri=ye.cyan("[docs]:"),$zm="etag",e4m=23,V8o=e=>e.padEnd(e4m," "),t4m="preview",r4m="app-preview",n4m="bundle",i4m=".next",o4m="standalone",s4m=".fern",a4m="packages/fern-docs/bundle/.next/server/instrumentation.js",c4m='Cannot find matching keyid: {"signatures":',u4m="ERR_PNPM_IGNORED_BUILDS";function l4m(e){try{let r=(0,Svu.execSync)('reg query "HKLM\\SYSTEM\\CurrentControlSet\\Control\\FileSystem" /v LongPathsEnabled',{encoding:"utf-8",timeout:5e3}).match(/LongPathsEnabled\s+REG_DWORD\s+0x(\d+)/i);if(r!=null&&r[1]==="1")return}catch(t){e.debug(`Registry query for LongPathsEnabled failed: ${t}`)}throw new R({message:`Windows long path support is not enabled. The docs bundle contains deeply nested .pnpm paths that exceed the 260-character MAX_PATH limit.
3815
3815
 
@@ -4341,7 +4341,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
4341
4341
 
4342
4342
  Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`:r}function EJm(e,t,r){return t!=null&&t.includes("Invalid authorization token")?`Your authentication token is invalid or expired. Please run '${r}' to re-authenticate.`:`You are not authorized to publish docs under organization '${e}'. Please run '${r}' to ensure you are logged in with the correct account.
4343
4343
 
4344
- Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function vJm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function IJm(e){try{return new URL(xN(e)).pathname}catch{return}}async function CJm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await wJm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function k9o(e){return e.replace(/^https:\/\//,"")}async function wJm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&k9o(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await xJm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function xJm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function SJm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&k9o(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=t_e({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=k9o(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=lLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function TJm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);try{(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}catch(c){r.logger.warn(`Network error uploading dynamic IR for ${n}:${i}: ${c}`)}}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function BJm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(ye.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function OJm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function iPu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var R9t=[60*1e3,300*1e3,300*1e3];async function F9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:x=>i.failAndThrow(void 0,x,{code:R.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:R.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:R.Code.ConfigError});return}let y=A.find(x=>x.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:R.Code.ConfigError});return}let I=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(iOu);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&oOu(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let C;return await i.runInteractiveTask({name:y.url},async()=>{let x=performance.now(),B=()=>tPu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let k=0;;k++)try{C=await B();break}catch(P){if(!(P instanceof cvt)||k>=R9t.length){if(P instanceof cvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:R.Code.NetworkError});throw P}let U=R9t[k]??R9t[R9t.length-1]??6e4,X=U/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${X} minute${X===1?"":"s"} (attempt ${k+1}/${R9t.length})...`),await new Promise($=>setTimeout($,U))}let O=performance.now()-x;i.logger.debug(`Docs publishing completed in ${O.toFixed(0)}ms`)}),C}Ut();var Zii=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,previewId:n,skipUpload:i}){let o=new Cd({context:this.context,task:this.task});try{let s=await F9t({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:o,token:this.token,instanceUrl:t,preview:r,previewId:n,disableTemplates:void 0,skipUpload:i,cliVersion:"5.35.3",loginCommand:"fern auth login"});return o.getResult()===Uf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Gn(s)}}}};jt();var uvt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
4344
+ Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function vJm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function IJm(e){try{return new URL(xN(e)).pathname}catch{return}}async function CJm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await wJm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function k9o(e){return e.replace(/^https:\/\//,"")}async function wJm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&k9o(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await xJm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function xJm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function SJm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&k9o(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=t_e({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=k9o(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=lLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function TJm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);try{(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}catch(c){r.logger.warn(`Network error uploading dynamic IR for ${n}:${i}: ${c}`)}}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function BJm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(ye.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function OJm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function iPu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var R9t=[60*1e3,300*1e3,300*1e3];async function F9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:x=>i.failAndThrow(void 0,x,{code:R.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:R.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:R.Code.ConfigError});return}let y=A.find(x=>x.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:R.Code.ConfigError});return}let I=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(iOu);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&oOu(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let C;return await i.runInteractiveTask({name:y.url},async()=>{let x=performance.now(),B=()=>tPu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let k=0;;k++)try{C=await B();break}catch(P){if(!(P instanceof cvt)||k>=R9t.length){if(P instanceof cvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:R.Code.NetworkError});throw P}let U=R9t[k]??R9t[R9t.length-1]??6e4,X=U/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${X} minute${X===1?"":"s"} (attempt ${k+1}/${R9t.length})...`),await new Promise($=>setTimeout($,U))}let O=performance.now()-x;i.logger.debug(`Docs publishing completed in ${O.toFixed(0)}ms`)}),C}Ut();var Zii=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,previewId:n,skipUpload:i}){let o=new Cd({context:this.context,task:this.task});try{let s=await F9t({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:o,token:this.token,instanceUrl:t,preview:r,previewId:n,disableTemplates:void 0,skipUpload:i,cliVersion:"5.35.4",loginCommand:"fern auth login"});return o.getResult()===Uf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Gn(s)}}}};jt();var uvt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
4345
4345
  `),this.stream.write(`${ye.cyan("\u25C6")} ${ye.bold(t.title)}
4346
4346
  `),t.subtitle!=null&&this.stream.write(` ${ye.dim(t.subtitle)}
4347
4347
  `),this.stream.write(`
@@ -5008,7 +5008,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
5008
5008
  `),h="";return c&&(h=l.style.error(c)),[`${p} ${f} ${s}`,[m,h].filter(Boolean).join(`
5009
5009
  `)]});var Wcg=ZC((e,t)=>{let{validate:r=()=>!0}=e,n=Fv(e.theme),[i,o]=vu("idle"),[s,a]=vu(),[c,u]=vu(""),l=YC({status:i,theme:n});XC(async(h,A)=>{if(i==="idle")if(JC(h)){let y=c;o("loading");let I=await r(y);I===!0?(u(y),o("done"),t(y)):(A.write(c),a(I||"You must provide a valid value"),o("idle"))}else u(A.line),a(void 0)});let p=n.style.message(e.message,i),d="",f;e.mask?d=(typeof e.mask=="string"?e.mask:"*").repeat(c.length):i!=="done"&&(f=`${n.style.help("[input is masked]")}${XSt}`),i==="done"&&(d=n.style.answer(d));let m="";return s&&(m=n.style.error(s)),[[l,p,e.mask?d:f].join(" "),m]});var J8e=xe(uS(),1);var Hcg={icon:{cursor:zw.pointer},style:{disabled:e=>J8e.default.dim(`- ${e}`),searchTerm:e=>J8e.default.cyan(e),description:e=>J8e.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${J8e.default.bold(t)} ${J8e.default.dim(r)}`).join(J8e.default.dim(" \u2022 "))},helpMode:"always"};function H0s(e){return!Pd.isSeparator(e)&&!e.disabled}function Kcg(e){return e.map(t=>{if(Pd.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var Jcg=ZC((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,i=Fv(Hcg,e.theme),[o,s]=vu("loading"),[a,c]=vu(""),[u,l]=vu([]),[p,d]=vu(),f=YC({status:o,theme:i}),m=BL(()=>{let U=u.findIndex(H0s),X=u.findLastIndex(H0s);return{first:U,last:X}},[u]),[h=m.first,A]=vu();v4(()=>{let U=new AbortController;return s("loading"),d(void 0),(async()=>{try{let $=await e.source(a||void 0,{signal:U.signal});U.signal.aborted||(A(void 0),d(void 0),l(Kcg($)),s("idle"))}catch($){!U.signal.aborted&&$ instanceof Error&&d($.message)}})(),()=>{U.abort()}},[a]);let y=u[h];XC(async(U,X)=>{if(JC(U))if(y){s("loading");let $=await n(y.value);s("idle"),$===!0?(s("done"),t(y.value)):y.name===a?d($||"You must provide a valid value"):(X.write(y.name),c(y.name))}else X.write(a);else if(qhe(U)&&y)X.clearLine(0),X.write(y.name),c(y.name);else if(o!=="loading"&&(TP(U)||TL(U))){if(X.clearLine(0),TP(U)&&h!==m.first||TL(U)&&h!==m.last){let $=TP(U)?-1:1,ne=h;do ne=(ne+$+u.length)%u.length;while(!H0s(u[ne]));A(ne)}}else c(X.line)});let I=i.style.message(e.message,o),w;if(i.helpMode!=="never")if(e.instructions){let{pager:U,navigation:X}=e.instructions;w=i.style.help(u.length>r?U:X)}else w=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let C=G8e({items:u,active:h,renderItem({item:U,isActive:X}){if(Pd.isSeparator(U))return` ${U.separator}`;if(U.disabled){let le=typeof U.disabled=="string"?U.disabled:"(disabled)";return i.style.disabled(`${U.name} ${le}`)}let $=X?i.style.highlight:le=>le,ne=X?i.icon.cursor:" ";return $(`${ne} ${U.name}`)},pageSize:r,loop:!1}),x;p?x=i.style.error(p):u.length===0&&a!==""&&o==="idle"&&(x=i.style.error("No results found"));let B;if(o==="done"&&y)return[f,I,i.style.answer(y.short)].filter(Boolean).join(" ").trimEnd();B=i.style.searchTerm(a);let O=y?.description,k=[f,I,B].filter(Boolean).join(" ").trimEnd(),P=[x??C," ",O?i.style.description(O):"",w].filter(Boolean).join(`
5010
5010
  `).trimEnd();return[k,P]});var $St=xe(uS(),1);var Ycg={icon:{cursor:zw.pointer},style:{disabled:e=>$St.default.dim(`- ${e}`),description:e=>$St.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${$St.default.bold(t)} ${$St.default.dim(r)}`).join($St.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function ZSt(e){return!Pd.isSeparator(e)&&!e.disabled}function Xcg(e){return e.map(t=>{if(Pd.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var K0s=ZC((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=Fv(Ycg,e.theme),{keybindings:o}=i,[s,a]=vu("idle"),c=YC({status:s,theme:i}),u=q8e(),l=!o.includes("vim"),p=BL(()=>Xcg(e.choices),[e.choices]),d=BL(()=>{let O=p.findIndex(ZSt),k=p.findLastIndex(ZSt);if(O===-1)throw new Aae("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:k}},[p]),f=BL(()=>"default"in e?p.findIndex(O=>ZSt(O)&&O.value===e.default):-1,[e.default,p]),[m,h]=vu(f===-1?d.first:f),A=p[m];XC((O,k)=>{if(clearTimeout(u.current),JC(O))a("done"),t(A.value);else if(TP(O,o)||TL(O,o)){if(k.clearLine(0),r||TP(O,o)&&m!==d.first||TL(O,o)&&m!==d.last){let P=TP(O,o)?-1:1,U=m;do U=(U+P+p.length)%p.length;while(!ZSt(p[U]));h(U)}}else if(rXt(O)&&!Number.isNaN(Number(k.line))){let P=Number(k.line)-1,U=-1,X=p.findIndex(ne=>Pd.isSeparator(ne)?!1:(U++,U===P)),$=p[X];$!=null&&ZSt($)&&h(X),u.current=setTimeout(()=>{k.clearLine(0)},700)}else if(U8e(O))k.clearLine(0);else if(l){let P=k.line.toLowerCase(),U=p.findIndex(X=>Pd.isSeparator(X)||!ZSt(X)?!1:X.name.toLowerCase().startsWith(P));U!==-1&&h(U),u.current=setTimeout(()=>{k.clearLine(0)},700)}}),v4(()=>()=>{clearTimeout(u.current)},[]);let y=i.style.message(e.message,s),I;if(i.helpMode!=="never")if(e.instructions){let{pager:O,navigation:k}=e.instructions;I=i.style.help(p.length>n?O:k)}else I=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let w=0,C=G8e({items:p,active:m,renderItem({item:O,isActive:k,index:P}){if(Pd.isSeparator(O))return w++,` ${O.separator}`;let U=i.indexMode==="number"?`${P+1-w}. `:"";if(O.disabled){let ne=typeof O.disabled=="string"?O.disabled:"(disabled)";return i.style.disabled(`${U}${O.name} ${ne}`)}let X=k?i.style.highlight:ne=>ne,$=k?i.icon.cursor:" ";return X(`${$} ${U}${O.name}`)},pageSize:n,loop:r});if(s==="done")return[c,y,i.style.answer(A.short)].filter(Boolean).join(" ");let{description:x}=A;return`${[[c,y].filter(Boolean).join(" "),C," ",x?i.style.description(x):"",I].filter(Boolean).join(`
5011
- `).trimEnd()}${XSt}`});ao();var yae={GENERATION_STARTED:"generation_started",GENERATION_COMPLETED:"generation_completed",GENERATION_FAILED:"generation_failed",VERIFICATION_FAILED:"verification_failed",SDK_PR_CREATED:"sdk_pr_created",UPGRADE_APPLIED:"upgrade_applied",MAJOR_VERSION_BUMP:"major_version_bump"},Zcg={[yae.GENERATION_STARTED]:!1,[yae.GENERATION_COMPLETED]:!1,[yae.GENERATION_FAILED]:!0,[yae.VERIFICATION_FAILED]:!0,[yae.SDK_PR_CREATED]:!1,[yae.UPGRADE_APPLIED]:!1,[yae.MAJOR_VERSION_BUMP]:!1};function xnl(e){return Zcg[e]}function Snl(e,t){return{automation_mode:!0,surface:"cli",action:t.action,run_id:t.run_id,github_run_id:t.github_run_id,github_run_url:t.github_run_url,org:t.org,config_repo:t.config_repo,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,trigger:t.trigger,cli_version:t.cli_version,...e.errorCode!==void 0?{error_code:e.errorCode}:{},...e.attributes??{}}}function Tnl(e,t){function r(i,o,s){s!=null&&(i[o]=s)}let n={surface:"cli",automation_mode:"true"};return r(n,"event",e.event),r(n,"action",t.action),r(n,"run_id",t.run_id),r(n,"org",t.org),r(n,"config_repo",t.config_repo),r(n,"trigger",t.trigger),r(n,"error_code",e.errorCode??"none"),n}function Bnl(e,t){return{github_run_id:t.github_run_id,github_run_url:t.github_run_url,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,cli_version:t.cli_version,...e.attributes??{}}}function Onl(e,t){return{event:e.event,timestamp:new Date().toISOString(),surface:"cli",action:t.action,run_id:t.run_id,github_run_id:t.github_run_id,github_run_url:t.github_run_url,org:t.org,config_repo:t.config_repo,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,trigger:t.trigger,cli_version:t.cli_version,...e.errorCode!==void 0?{error_code:e.errorCode}:{},...e.attributes??{}}}function Pnl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?yae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?yae.VERIFICATION_FAILED:yae.GENERATION_FAILED}var $cg="",eug="FERN_AUTOMATION_EVENTS_ORIGIN",tug=3e3,nyi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[eug]??$cg)),e.instance}constructor(t){this.origin=t}resolveEndpoint(){if(this.origin.length!==0)return`${this.origin.replace(/\/$/,"")}/v1/automation/events`}post(t,r){this.inflight.push(this.send(t,r))}async shutdown(){let t=this.inflight;this.inflight=[],t.length>0&&await Promise.allSettled(t)}async send(t,r){let n=this.resolveEndpoint();if(n==null)return;let i=new AbortController,o=setTimeout(()=>i.abort(),tug);try{let s={"content-type":"application/json"},a=await xV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Onl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Dnl(){let{fern_run_id:e,github_run_id:t}=Xae();return{action:process.env.FERN_ACTION,run_id:e,github_run_id:t,github_run_url:process.env.FERN_GITHUB_RUN_URL,org:void 0,config_repo:process.env.FERN_CONFIG_REPO,config_commit_sha:process.env.FERN_CONFIG_COMMIT_SHA,config_branch:process.env.FERN_CONFIG_BRANCH,config_pr_number:process.env.FERN_CONFIG_PR_NUMBER,trigger:process.env.GITHUB_EVENT_NAME,cli_version:"5.35.3"}}function Rnl(){return process.env.FERN_AUTOMATION==="true"}var iyi=class{constructor(t,r=nyi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=Dnl()}reporter;automationEventApiClient;context;setOrganization(t){this.context={...this.context,org:t}}emit(t,r){let n=this.captureSentryForFailure({event:t,context:this.context,error:r?.error}),i=n==null?t:{...t,attributes:{...t.attributes??{},sentry_event_id:n}};this.capturePostHogEvent({event:i,context:this.context}),this.captureAutomationEventApiEvent(i,this.context)}async flush(){await this.automationEventApiClient.shutdown()}capturePostHogEvent({event:t,context:r}){this.reporter.instrumentPostHogAutomationEvent({distinctId:r.run_id??void 0,event:t.event,properties:Snl(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!xnl(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:Tnl(t,r),context:{automation:Bnl(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};Ut();function oyi(e,t,r){if(t instanceof pu)return;let n=vAe(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new R({message:s,code:n});Rnl()?nug(i,e,n,s,a):rug(e,o,n,a)}function rug(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),n9e(r)&&e.captureException(n,{tags:{"error.code":r}})}function nug(e,t,r,n,i){let o=Pnl(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}Ut();function Y8e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function syi({cliName:e,packageVersion:t,isLocal:r}){return Y8e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var ayi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(syi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new R({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:R.Code.ConfigError});this.sentry=gPt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[zqe(),Hge(),Kge(),Dge(),Wge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),APt()}}captureException(t,r){if(this.sentry!=null)try{let n=r?.tags,i=r?.context,o=n!=null&&Object.keys(n).length>0,s=i!=null&&Object.values(i).some(a=>a!=null);return!o&&!s?this.sentry.captureException(t):FB(a=>{if(o&&a.setTags(n),i!=null)for(let[c,u]of Object.entries(i))u!=null&&a.setContext(c,u);return this.sentry?.captureException(t,void 0,a)})}catch{return}}async flush(){this.sentry!=null&&await Promise.resolve(this.sentry.flush(2e3)).catch(()=>{})}};Ut();var cyi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new R({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:R.Code.InternalError});this.originalWrite=process.stdout.write,process.stdout.write=process.stderr.write.bind(process.stderr),this.redirected=!0}restore(){!this.redirected||this.originalWrite==null||(process.stdout.write=this.originalWrite,this.originalWrite=void 0,this.redirected=!1)}async withRedirect(t){this.redirect();try{return await t()}finally{this.restore()}}};jt();Hb();Ut();var sXt=class{result=Uf.Success;lastFailureMessage=void 0;logImmediately;logPrefix;title;subtasks=[];shouldBufferLogs;bufferedLogs=[];status="notStarted";onResult;instrumentPostHogEventImpl;captureExceptionImpl;emitAutomationTelemetryEventImpl;constructor({logImmediately:t,logPrefix:r,title:n,takeOverTerminal:i,onResult:o,shouldBufferLogs:s,instrumentPostHogEvent:a,captureException:c,emitAutomationTelemetryEvent:u}){this.logImmediately=t,this.logPrefix=r??"",this.title=n,this.takeOverTerminal=i,this.onResult=o,this.shouldBufferLogs=s,this.instrumentPostHogEventImpl=a,this.captureExceptionImpl=c,this.emitAutomationTelemetryEventImpl=u}start(){return this.status="running",this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.status="finished",this.flushLogs(),this.onResult?.(this.getResult()))}isFinished(){return this.status==="finished"}takeOverTerminal;failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),this.finish(),new pu}failWithoutThrowing(t,r,n){this.result=Uf.Failure,!(r instanceof pu)&&(t!=null&&(this.lastFailureMessage=t),a3t({message:t,error:r,logger:this.logger}),oyi(this,r,{...n,message:t}))}getLastFailureMessage(){return this.lastFailureMessage}captureException(t,r){return this.captureExceptionImpl?.(t,r)}emitAutomationTelemetryEvent(t,r){this.emitAutomationTelemetryEventImpl(t,r)}getResult(){return this.result}instrumentPostHogEvent(t){this.instrumentPostHogEventImpl(t)}logAtLevel(t,...r){this.logAtLevelWithOverrides(t,r)}logAtLevelWithOverrides(t,r,n={}){this.log({parts:r,level:t,time:new Date,...n})}log(t){this.bufferedLogs.push({...t,prefix:this.logPrefix}),this.shouldBufferLogs||this.flushLogs()}flushLogs(){this.logImmediately(this.bufferedLogs),this.bufferedLogs=[]}logger=UI(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new J0s({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${ye.blackBright(t)} `,takeOverTerminal:this.takeOverTerminal,onResult:this.onResult,shouldBufferLogs:this.shouldBufferLogs,instrumentPostHogEvent:i=>this.instrumentPostHogEventImpl(i),captureException:this.captureExceptionImpl,emitAutomationTelemetryEvent:this.emitAutomationTelemetryEventImpl});return this.subtasks.push(n),n}async runInteractiveTask(t,r){let n=this.addInteractiveTask(t).start();try{await r(n)}catch(i){n.failWithoutThrowing(void 0,i)}finally{n.finish()}return n.getResult()===Uf.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
5011
+ `).trimEnd()}${XSt}`});ao();var yae={GENERATION_STARTED:"generation_started",GENERATION_COMPLETED:"generation_completed",GENERATION_FAILED:"generation_failed",VERIFICATION_FAILED:"verification_failed",SDK_PR_CREATED:"sdk_pr_created",UPGRADE_APPLIED:"upgrade_applied",MAJOR_VERSION_BUMP:"major_version_bump"},Zcg={[yae.GENERATION_STARTED]:!1,[yae.GENERATION_COMPLETED]:!1,[yae.GENERATION_FAILED]:!0,[yae.VERIFICATION_FAILED]:!0,[yae.SDK_PR_CREATED]:!1,[yae.UPGRADE_APPLIED]:!1,[yae.MAJOR_VERSION_BUMP]:!1};function xnl(e){return Zcg[e]}function Snl(e,t){return{automation_mode:!0,surface:"cli",action:t.action,run_id:t.run_id,github_run_id:t.github_run_id,github_run_url:t.github_run_url,org:t.org,config_repo:t.config_repo,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,trigger:t.trigger,cli_version:t.cli_version,...e.errorCode!==void 0?{error_code:e.errorCode}:{},...e.attributes??{}}}function Tnl(e,t){function r(i,o,s){s!=null&&(i[o]=s)}let n={surface:"cli",automation_mode:"true"};return r(n,"event",e.event),r(n,"action",t.action),r(n,"run_id",t.run_id),r(n,"org",t.org),r(n,"config_repo",t.config_repo),r(n,"trigger",t.trigger),r(n,"error_code",e.errorCode??"none"),n}function Bnl(e,t){return{github_run_id:t.github_run_id,github_run_url:t.github_run_url,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,cli_version:t.cli_version,...e.attributes??{}}}function Onl(e,t){return{event:e.event,timestamp:new Date().toISOString(),surface:"cli",action:t.action,run_id:t.run_id,github_run_id:t.github_run_id,github_run_url:t.github_run_url,org:t.org,config_repo:t.config_repo,config_commit_sha:t.config_commit_sha,config_branch:t.config_branch,config_pr_number:t.config_pr_number,trigger:t.trigger,cli_version:t.cli_version,...e.errorCode!==void 0?{error_code:e.errorCode}:{},...e.attributes??{}}}function Pnl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?yae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?yae.VERIFICATION_FAILED:yae.GENERATION_FAILED}var $cg="",eug="FERN_AUTOMATION_EVENTS_ORIGIN",tug=3e3,nyi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[eug]??$cg)),e.instance}constructor(t){this.origin=t}resolveEndpoint(){if(this.origin.length!==0)return`${this.origin.replace(/\/$/,"")}/v1/automation/events`}post(t,r){this.inflight.push(this.send(t,r))}async shutdown(){let t=this.inflight;this.inflight=[],t.length>0&&await Promise.allSettled(t)}async send(t,r){let n=this.resolveEndpoint();if(n==null)return;let i=new AbortController,o=setTimeout(()=>i.abort(),tug);try{let s={"content-type":"application/json"},a=await xV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Onl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Dnl(){let{fern_run_id:e,github_run_id:t}=Xae();return{action:process.env.FERN_ACTION,run_id:e,github_run_id:t,github_run_url:process.env.FERN_GITHUB_RUN_URL,org:void 0,config_repo:process.env.FERN_CONFIG_REPO,config_commit_sha:process.env.FERN_CONFIG_COMMIT_SHA,config_branch:process.env.FERN_CONFIG_BRANCH,config_pr_number:process.env.FERN_CONFIG_PR_NUMBER,trigger:process.env.GITHUB_EVENT_NAME,cli_version:"5.35.4"}}function Rnl(){return process.env.FERN_AUTOMATION==="true"}var iyi=class{constructor(t,r=nyi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=Dnl()}reporter;automationEventApiClient;context;setOrganization(t){this.context={...this.context,org:t}}emit(t,r){let n=this.captureSentryForFailure({event:t,context:this.context,error:r?.error}),i=n==null?t:{...t,attributes:{...t.attributes??{},sentry_event_id:n}};this.capturePostHogEvent({event:i,context:this.context}),this.captureAutomationEventApiEvent(i,this.context)}async flush(){await this.automationEventApiClient.shutdown()}capturePostHogEvent({event:t,context:r}){this.reporter.instrumentPostHogAutomationEvent({distinctId:r.run_id??void 0,event:t.event,properties:Snl(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!xnl(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:Tnl(t,r),context:{automation:Bnl(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};Ut();function oyi(e,t,r){if(t instanceof pu)return;let n=vAe(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new R({message:s,code:n});Rnl()?nug(i,e,n,s,a):rug(e,o,n,a)}function rug(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),n9e(r)&&e.captureException(n,{tags:{"error.code":r}})}function nug(e,t,r,n,i){let o=Pnl(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}Ut();function Y8e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function syi({cliName:e,packageVersion:t,isLocal:r}){return Y8e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var ayi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(syi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new R({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:R.Code.ConfigError});this.sentry=gPt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[zqe(),Hge(),Kge(),Dge(),Wge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),APt()}}captureException(t,r){if(this.sentry!=null)try{let n=r?.tags,i=r?.context,o=n!=null&&Object.keys(n).length>0,s=i!=null&&Object.values(i).some(a=>a!=null);return!o&&!s?this.sentry.captureException(t):FB(a=>{if(o&&a.setTags(n),i!=null)for(let[c,u]of Object.entries(i))u!=null&&a.setContext(c,u);return this.sentry?.captureException(t,void 0,a)})}catch{return}}async flush(){this.sentry!=null&&await Promise.resolve(this.sentry.flush(2e3)).catch(()=>{})}};Ut();var cyi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new R({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:R.Code.InternalError});this.originalWrite=process.stdout.write,process.stdout.write=process.stderr.write.bind(process.stderr),this.redirected=!0}restore(){!this.redirected||this.originalWrite==null||(process.stdout.write=this.originalWrite,this.originalWrite=void 0,this.redirected=!1)}async withRedirect(t){this.redirect();try{return await t()}finally{this.restore()}}};jt();Hb();Ut();var sXt=class{result=Uf.Success;lastFailureMessage=void 0;logImmediately;logPrefix;title;subtasks=[];shouldBufferLogs;bufferedLogs=[];status="notStarted";onResult;instrumentPostHogEventImpl;captureExceptionImpl;emitAutomationTelemetryEventImpl;constructor({logImmediately:t,logPrefix:r,title:n,takeOverTerminal:i,onResult:o,shouldBufferLogs:s,instrumentPostHogEvent:a,captureException:c,emitAutomationTelemetryEvent:u}){this.logImmediately=t,this.logPrefix=r??"",this.title=n,this.takeOverTerminal=i,this.onResult=o,this.shouldBufferLogs=s,this.instrumentPostHogEventImpl=a,this.captureExceptionImpl=c,this.emitAutomationTelemetryEventImpl=u}start(){return this.status="running",this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.status="finished",this.flushLogs(),this.onResult?.(this.getResult()))}isFinished(){return this.status==="finished"}takeOverTerminal;failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),this.finish(),new pu}failWithoutThrowing(t,r,n){this.result=Uf.Failure,!(r instanceof pu)&&(t!=null&&(this.lastFailureMessage=t),a3t({message:t,error:r,logger:this.logger}),oyi(this,r,{...n,message:t}))}getLastFailureMessage(){return this.lastFailureMessage}captureException(t,r){return this.captureExceptionImpl?.(t,r)}emitAutomationTelemetryEvent(t,r){this.emitAutomationTelemetryEventImpl(t,r)}getResult(){return this.result}instrumentPostHogEvent(t){this.instrumentPostHogEventImpl(t)}logAtLevel(t,...r){this.logAtLevelWithOverrides(t,r)}logAtLevelWithOverrides(t,r,n={}){this.log({parts:r,level:t,time:new Date,...n})}log(t){this.bufferedLogs.push({...t,prefix:this.logPrefix}),this.shouldBufferLogs||this.flushLogs()}flushLogs(){this.logImmediately(this.bufferedLogs),this.bufferedLogs=[]}logger=UI(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new J0s({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${ye.blackBright(t)} `,takeOverTerminal:this.takeOverTerminal,onResult:this.onResult,shouldBufferLogs:this.shouldBufferLogs,instrumentPostHogEvent:i=>this.instrumentPostHogEventImpl(i),captureException:this.captureExceptionImpl,emitAutomationTelemetryEvent:this.emitAutomationTelemetryEventImpl});return this.subtasks.push(n),n}async runInteractiveTask(t,r){let n=this.addInteractiveTask(t).start();try{await r(n)}catch(i){n.failWithoutThrowing(void 0,i)}finally{n.finish()}return n.getResult()===Uf.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
5012
5012
  `)}},J0s=class extends sXt{name;subtitle;constructor({name:t,subtitle:r,...n}){super(n),this.name=t,this.subtitle=r}start(){return super.start(),this.logAtLevelWithOverrides(qn.Info,["Started."],{omitOnTTY:!0}),this.flushLogs(),this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.result===Uf.Success?this.logAtLevelWithOverrides(qn.Info,["Finished."],{omitOnTTY:!0}):this.logAtLevelWithOverrides(qn.Error,["Failed."],{omitOnTTY:!0}),super.finish())}setSubtitle(t){this.subtitle=t}print({spinner:t}){let r=[this.name];return this.subtitle!=null&&r.push(ye.dim(this.subtitle)),r.push(...this.subtasks.map(n=>n.print({spinner:t}))),Dj({prefix:this.getIcon({spinner:t}),content:r.join(`
5013
5013
  `)})}printInteractiveTasks({spinner:t}){return this.print({spinner:t})}getIcon({spinner:t}){let r=this.subtasks.length>0;switch(this.status){case"notStarted":return r?ye.dim("\u25B8 "):ye.dim("\u25E6 ");case"running":return r?ye.cyan("\u25BE "):t;case"finished":switch(this.getResult()){case Uf.Success:return r?ye.green("\u25BE "):ye.green("\u2713 ");case Uf.Failure:return r?ye.red("\u25BE "):ye.red("x ")}}}getResult(){if(this.result===Uf.Failure)return Uf.Failure;for(let t of this.subtasks)if(t.getResult()===Uf.Failure)return Uf.Failure;return Uf.Success}};Ut();var Fnl=xe(LMe(),1);function knl(e){return e.filter(t=>t.isUpgradeAvailable).length>0}function iug(e){return(e.cliUpgradeInfo?.isUpgradeAvailable??!1)||knl(e.generatorUpgradeInfo)}async function Nnl({cliEnvironment:e,upgradeInfo:t}){if(!iug(t)||e.packageVersion==t.cliUpgradeInfo?.latestVersion)return;let r=`${ye.underline("Upgrades available")}
5014
5014
 
@@ -5017,7 +5017,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
5017
5017
  Run ${ye.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
5018
5018
  Run ${ye.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),jot(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function Y0s({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!knl(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,c)=>a.generatorName.localeCompare(c.generatorName)||a.currentVersion.localeCompare(c.currentVersion));for(let a of s)i+=`
5019
5019
  ${await oug(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+ye.dim(a.currentVersion)+ye.reset(" \u2192 ")+ye.green(a.latestVersion);return i+=`
5020
- `,n?jot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function oug(e){let r=await new Fnl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new R({message:`Generator ${e} not found`,code:R.Code.ConfigError});return r.body.displayName}Ut();async function sug({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=OMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await j1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=OMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await j1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await G3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?py(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function Qnl(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c;try{c=_Q(a.latestVersion,a.previousVersion)}catch{throw new R({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:R.Code.ConfigError})}r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function uyi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await sug({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...Qnl(u,c,t.logger));else s.push(...Qnl(a.versions,void 0,t.logger))}return s}Ut();async function Ghe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await KRt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new R({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:R.Code.NetworkError})}}var Mnl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],lyi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new cyi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await X_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new w3t(t,r),this.isLocal=n??!1,this.posthogManager=i;let o=this.getPackageName(),s=this.getPackageVersion(),a=this.getCliName();(o==null||s==null||a==null)&&this.exitProgram(),this.environment={packageName:o,packageVersion:s,cliName:a},this.sentryClient=new ayi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new iyi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.35.3"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${ye.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new pu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof pu)&&(a3t({message:t,error:r,logger:this.logger}),oyi(this,r,{...n,message:t}))}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
5020
+ `,n?jot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function oug(e){let r=await new Fnl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new R({message:`Generator ${e} not found`,code:R.Code.ConfigError});return r.body.displayName}Ut();async function sug({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=OMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await j1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,c,u,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][c]==null&&(s.versions[a][c]={});let p=OMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await j1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function jnl({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await G3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?py(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function Qnl(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c;try{c=_Q(a.latestVersion,a.previousVersion)}catch{throw new R({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:R.Code.ConfigError})}r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function uyi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await sug({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[c,u]of Object.entries(a.versions))s.push(...Qnl(u,c,t.logger));else s.push(...Qnl(a.versions,void 0,t.logger))}return s}Ut();async function Ghe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await KRt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new R({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:R.Code.NetworkError})}}var Mnl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],lyi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new cyi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await X_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new w3t(t,r),this.isLocal=n??!1,this.posthogManager=i;let o=this.getPackageName(),s=this.getPackageVersion(),a=this.getCliName();(o==null||s==null||a==null)&&this.exitProgram(),this.environment={packageName:o,packageVersion:s,cliName:a},this.sentryClient=new ayi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new iyi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.35.4"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${ye.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new pu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof pu)&&(a3t({message:t,error:r,logger:this.logger}),oyi(this,r,{...n,message:t}))}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
5021
5021
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish();try{await this.posthogManager.flush()}catch{}await this.sentryClient.flush(),await this.automationTelemetryManager.flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await Nnl({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
5022
5022
  `)||(r+=`
5023
5023
  `),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=OOi(t.map(n=>n.type==="docs"?"docs":n.workspaceName??"api"),n=>n.length);r!=null&&(this.longestWorkspaceName=r)}project;registerProject(t){this.project=t,this.automationTelemetryManager.setOrganization(t.config.organization)}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 sXt(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw n.failWithoutThrowing(void 0,o),new pu}finally{n.finish()}return i}instrumentPostHogEvent(t){this.isLocal||this.posthogManager.sendEvent(t)}instrumentPostHogAutomationEvent(t){this.isLocal||this.posthogManager.sendAutomationEvent(t)}captureException(t,r){return this.sentryClient.captureException(t,r)}emitAutomationTelemetryEvent(t,r){this.automationTelemetryManager.emit(t,r)}logger=UI((t,...r)=>this.log(t,...r));stderr=UI((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=t.type==="docs"?"docs":t.workspaceName??"api",n=Lnl(r),i=1+(this.longestWorkspaceName!=null?Lnl(this.longestWorkspaceName):n).length,o=n.padEnd(i),s=Mnl[this.numTasks++%Mnl.length],a=ye.hex(s)(o);return{...this.constructTaskInit(),logPrefix:a,title:ye.hex(s).bold(r)}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Uf.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:t=>{this.instrumentPostHogEvent(t)},shouldBufferLogs:!1,captureException:(t,r)=>this.sentryClient.captureException(t,r),emitAutomationTelemetryEvent:(t,r)=>this.emitAutomationTelemetryEvent(t,r)}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>Fx.indexOf(i.level)>=Fx.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===qn.Debug,stderr:r||this.jsonMode})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await Ghe({cliEnvironment:this.environment,includePreReleases:t}),n=_Q(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await uyi({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await K0s({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:ye.yellow("?"),style:{answer:i=>ye.cyan(i),message:i=>ye.bold(i),highlight:i=>ye.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.35.3",
2
+ "version": "5.35.4",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",