fern-api 5.65.7 → 5.65.8

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
@@ -461,7 +461,7 @@ return `+str.trim()+`;
461
461
  `?e+`
462
462
  `:e}});var GPc=b((RF0,qPc)=>{"use strict";var srd=IQt();qPc.exports=function(e,t){let r=srd(t);if(e.data==null&&(e.data={}),typeof r.excerpt=="function")return r.excerpt(e,r);let n=e.data.excerpt_separator||r.excerpt_separator;if(n==null&&(r.excerpt===!1||r.excerpt==null))return e;let i=typeof r.excerpt=="string"?r.excerpt:n||r.delimiters[0],o=e.content.indexOf(i);return o!==-1&&(e.excerpt=e.content.slice(0,o)),e}});var KPc=b((FF0,HPc)=>{"use strict";var WPc=EQt(),ard=Vfo(),WZe=Ukr();HPc.exports=function(e){return WPc(e)!=="object"&&(e={content:e}),WPc(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),WZe.define(e,"orig",WZe.toBuffer(e.content)),WZe.define(e,"language",e.language||""),WZe.define(e,"matter",e.matter||""),WZe.define(e,"stringify",function(t,r){return r&&r.language&&(e.language=r.language),ard(e,t,r)}),e.content=WZe.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var YPc=b((kF0,JPc)=>{"use strict";var crd=Ufo(),urd=IQt();JPc.exports=function(e,t,r){let n=urd(r),i=crd(e,n);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,n)}});var hL=b((NF0,$Pc)=>{"use strict";var lrd=require("fs"),prd=jPc(),_fo=IQt(),frd=Vfo(),XPc=GPc(),drd=Lfo(),mrd=KPc(),hrd=YPc(),ZPc=Ukr();function Ck(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let r=mrd(e),n=Ck.cache[r.content];if(!t){if(n)return r=Object.assign({},n),r.orig=n.orig,r;Ck.cache[r.content]=r}return grd(r,t)}function grd(e,t){let r=_fo(t),n=r.delimiters[0],i=`
463
463
  `+r.delimiters[1],o=e.content;r.language&&(e.language=r.language);let s=n.length;if(!ZPc.startsWith(o,n,s))return XPc(e,r),e;if(o.charAt(s)===n.slice(-1))return e;o=o.slice(s);let a=o.length,c=Ck.language(o,r);c.name&&(e.language=c.name,o=o.slice(c.raw.length));let u=o.indexOf(i);return u===-1&&(u=a),e.matter=o.slice(0,u),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=hrd(e.language,e.matter,r),u===a?e.content="":(e.content=o.slice(u+i.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===`
464
- `&&(e.content=e.content.slice(1))),XPc(e,r),(r.sections===!0||typeof r.section=="function")&&prd(e,r.section),e}Ck.engines=drd;Ck.stringify=function(e,t,r){return typeof e=="string"&&(e=Ck(e,r)),frd(e,t,r)};Ck.read=function(e,t){let r=lrd.readFileSync(e,"utf8"),n=Ck(r,t);return n.path=e,n};Ck.test=function(e,t){return ZPc.startsWith(e,_fo(t).delimiters[0])};Ck.language=function(e,t){let n=_fo(t).delimiters[0];Ck.test(e)&&(e=e.slice(n.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Ck.cache={};Ck.clearCache=function(){Ck.cache={}};$Pc.exports=Ck});function Vkr({name:e}){return e.replace(/\.(md|mdx)$/i,"").toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}function Gfo({name:e}){return e.replace(/\.(md|mdx)$/i,"").replace(/[-_]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}async function _kr({absolutePath:e,readFileFn:t=(r,n)=>(0,qfo.readFile)(r,n)}){try{let r=await t(e,"utf-8"),{data:n}=(0,tDc.default)(r),i;if(n.position!=null){let c=typeof n.position=="string"?parseFloat(n.position):n.position;typeof c=="number"&&Number.isFinite(c)&&(i=c)}let o=typeof n.title=="string"&&n.title.trim().length>0?n.title.trim():void 0,s=n.hidden===!0?!0:void 0,a=n.noindex===!0?!0:void 0;return{position:i,title:o,hidden:s,noindex:a}}catch{return{position:void 0,title:void 0,hidden:void 0,noindex:void 0}}}function eDc({frontmatterTitle:e,useFrontmatterTitles:t,fallbackName:r}){return t&&e!=null?e:Gfo({name:r})}async function Wfo({directoryPath:e,titleSource:t,getDir:r=ZA,readFileFn:n=(i,o)=>(0,qfo.readFile)(i,o)}){let i=await r(e),o=t==="frontmatter",s=i.filter(d=>d.type==="file"&&!d.name.startsWith("_")&&(d.name.toLowerCase().endsWith(".md")||d.name.toLowerCase().endsWith(".mdx"))),a=i.filter(d=>d.type==="directory"&&!d.name.startsWith("_")),c=await Promise.all(s.map(d=>_kr({absolutePath:d.absolutePath,readFileFn:n}))),u=s.map((d,f)=>{let m=c[f];return{type:"page",title:eDc({frontmatterTitle:m?.title,useFrontmatterTitles:o,fallbackName:d.name}),absolutePath:d.absolutePath,slug:Vkr({name:d.name}),icon:void 0,hidden:m?.hidden,noindex:m?.noindex,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0}}),l=await Promise.all(a.map(async d=>{let f=await Wfo({directoryPath:d.absolutePath,titleSource:t,getDir:r,readFileFn:n}),m=f.find(E=>E.type==="page"&&(E.slug==="index"||E.absolutePath.toLowerCase().endsWith("/index.mdx")||E.absolutePath.toLowerCase().endsWith("/index.md"))),g=m?f.filter(E=>E!==m):f,A=m?.type==="page"?await _kr({absolutePath:m.absolutePath,readFileFn:n}):void 0;return{section:{type:"section",title:eDc({frontmatterTitle:A?.title,useFrontmatterTitles:o,fallbackName:d.name}),slug:Vkr({name:d.name}),icon:void 0,contents:g,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:A?.hidden,skipUrlSlug:!1,overviewAbsolutePath:m?.type==="page"?m.absolutePath:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0},position:A?.position}})),p=[...u.map((d,f)=>({item:d,title:d.type==="page"?d.title:"",position:c[f]?.position})),...l.map(d=>({item:d.section,title:d.section.type==="section"?d.section.title:"",position:d.position}))];return p.sort((d,f)=>{let m=typeof d.position=="number",g=typeof f.position=="number";if(m&&!g)return-1;if(!m&&g)return 1;if(typeof d.position=="number"&&typeof f.position=="number"){let A=d.position-f.position;return A!==0?A:d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}return d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}),p.map(d=>d.item)}var qfo,tDc,rDc=h(()=>{"use strict";$t();qfo=require("fs/promises"),tDc=be(hL(),1)});function Ard(e){return!e||e.startsWith("<")?!1:e.startsWith(".")||e.includes("/")||e.includes("\\")||e.includes(":")}function A0(e,t){if(e)return Ard(e)?wb(e,t):e}async function oze({rawDocsConfiguration:e,absolutePathToFernFolder:t,absoluteFilepathToDocsConfig:r,context:n}){let{instances:i,title:o,tabs:s,products:a,versions:c,navigation:u,navbarLinks:l,footerLinks:p,defaultLanguage:d,metadata:f,redirects:m,logo:g,favicon:A,backgroundImage:y,colors:E,typography:v,layout:I,integrations:C,css:w,js:O,aiChat:P,aiSearch:T,agents:M,pageActions:K,experimental:Y}=e,X=vQt(e.landingPage,r),se=e.settings?.folderTitleSource,ue=Rrd({tabs:s,products:a,versions:c,navigation:u,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:se}),ie=ue.then(mr=>_Ac({files:tle({navigation:mr,landingPage:X}),absolutePathToFernFolder:t})),pe=yrd(g,r),Ce=wb(A,r),Fe=brd(y,r),ne=v!=null?Frd({rawTypography:v,absoluteFilepathToDocsConfig:r}):void 0,de=Erd(w,r),Oe=xrd(O,r),ve=tnd(f,r,n),ke=Prd({rawPath:e.integrations?.context7,absoluteFilepathToDocsConfig:r,context:n}),Ke=Hfo({rawPath:M?.llmsTxt,absoluteFilepathToDocsConfig:r}),st=Hfo({rawPath:M?.llmsFullTxt,absoluteFilepathToDocsConfig:r}),It=Hfo({rawPath:M?.robotsTxt,absoluteFilepathToDocsConfig:r}),pt=e.translations?.map(mr=>bh.DocsYmlSchemas.normalizeTranslationConfig(mr)).find(mr=>mr.default===!0)?.lang??(e.translations?.[0]!=null?bh.DocsYmlSchemas.normalizeTranslationConfig(e.translations[0]).lang:void 0),Zt=ie.then(mr=>nnd({translations:e.translations,defaultLocale:pt,pages:mr,absolutePathToFernFolder:t,context:n})),_t=ind({translations:e.translations,defaultLocale:pt,absolutePathToFernFolder:t,context:n}),[he,le,rt,mt,ye,De,ct,ot,Xe,nr,Xt,dr]=await Promise.all([ue,ie,ne,de,Oe,ve,ke,Ke,st,It,Zt,_t]),Un=Ord(e.theme),dn=Un?.tabs!=null&&typeof Un.tabs=="object"?Un.tabs:void 0,Fo=dn?.placement??I?.tabsPlacement??"sidebar",Mt=dn?.alignment??"left";return Fo==="sidebar"&&Mt==="center"&&n.logger.warn("Tabs alignment 'center' is not supported when tabs placement is 'sidebar'. The alignment will be ignored."),{title:o,instances:i,roles:e.roles,libraries:Wrd(e.libraries),pages:le,translationPages:Xt,translationNavigationOverlays:dr,landingPage:X,navigation:he,navbarLinks:cDc(l,r),footerLinks:end(p),defaultLanguage:d,languages:e.languages,translations:e.translations,announcement:e.announcement,metadata:De,redirects:m?.map(mr=>({...mr,permanent:mr?.permanent})),logo:pe,favicon:Ce,backgroundImage:Fe,colors:LAc(E,n),typography:rt,layout:Drd(I,dn?.alignment,dn?.placement),settings:Brd(e.settings),context7File:ct,llmsTxtFile:ot,llmsFullTxtFile:Xe,robotsTxtFile:nr,theme:Un,globalTheme:e.globalTheme,analyticsConfig:{...e.analytics,intercom:e.analytics?.intercom?{...e.analytics.intercom,appId:e.analytics.intercom.appId,apiBase:e.analytics.intercom.apiBase}:void 0,fullstory:e.analytics?.fullstory,posthog:e.analytics?.posthog?{...e.analytics.posthog,apiKey:e.analytics.posthog.apiKey,endpoint:e.analytics.posthog.endpoint}:void 0,segment:e.analytics?.segment,gtm:e.analytics?.gtm,ga4:e.analytics?.ga4,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},integrations:C!=null?{intercom:C.intercom??void 0}:void 0,css:mt,js:ye,aiChatConfig:T??P,agents:M,pageActions:Crd(K,r),header:wb(e.header,r),footer:wb(e.footer,r),experimental:Y}}function yrd(e,t){return e!=null?{dark:wb(e.dark,t),light:wb(e.light,t),height:e.height,href:e.href!=null?cn.Url(e.href):void 0,rightText:e.rightText}:void 0}function brd(e,t){if(e!=null)if(typeof e=="string"){let r=wb(e,t);return{dark:r,light:r}}else{let r=wb(e.dark,t),n=wb(e.light,t);return{dark:r,light:n}}}async function Erd(e,t){if(e==null)return;let r=typeof e=="string"?[e]:e;return{inline:await Promise.all(r.map(async n=>(await(0,Jle.readFile)(wb(n,t))).toString()))}}function Ird(e){return Object.hasOwn(e,"url")}function vrd(e){return Object.hasOwn(e,"path")}async function xrd(e,t){let r=[],n=[];if(e==null)return{files:[]};let i=Array.isArray(e)?e:[e];for(let o of i)typeof o=="string"?n.push({absolutePath:wb(o,t)}):Ird(o)?r.push({strategy:o.strategy,url:cn.Url(o.url)}):vrd(o)&&n.push({absolutePath:wb(o.path,t),strategy:o.strategy});return{remote:r,files:n}}function Crd(e,t){return e==null?void 0:{default:e.default!=null?Srd(e.default):void 0,options:{askAi:e.options?.askAi??!0,copyPage:e.options?.copyPage??!0,viewAsMarkdown:e.options?.viewAsMarkdown??!0,openAi:e.options?.chatgpt??!0,claude:e.options?.claude??!0,cursor:e.options?.cursor??!0,claudeCode:e.options?.claudeCode??!0,mcp:e.options?.mcp??!0,vscode:e.options?.vscode??!1,custom:(e.options?.custom??[]).map(n=>Trd(n,t)),skills:wrd(e.options?.skills)}}}function wrd(e){if(e!=null)return{title:e.title,description:e.description,learnMoreUrl:e.learnMoreUrl,repository:e.repository,installCommand:e.installCommand,skills:e.skills?.map(t=>({name:t.name,description:t.description,url:t.url}))}}function Srd(e){switch(e){case"copy-page":return"copyPage";case"view-as-markdown":return"viewAsMarkdown";case"ask-ai":return"askAi";case"chatgpt":return"openAi";case"claude":return"claude";case"cursor":return"cursor";case"claude-code":return"claudeCode";case"vscode":return"vscode";default:Ee(e)}}function Trd(e,t){return{title:e.title,subtitle:e.subtitle,url:e.url,icon:A0(e.icon,t),default:e.default}}function Ord(e){if(e==null)return;let t;if(e.tabs!=null&&typeof e.tabs=="object"){let r=e.tabs;t={style:r.style??"default",alignment:r.alignment,placement:r.placement}}else t=e.tabs??"default";return{sidebar:e.sidebar??"default",tabs:t,body:e.body??"default",pageActions:e.pageActions??"default",footerNav:e.footerNav??"default",languageSwitcher:e.languageSwitcher??"default",productSwitcher:e.productSwitcher??"default"}}function Brd(e){if(e==null)return;let t=(e.search?.defaultFilterByCurrentProduct??!1)||(e.defaultSearchFilters??!1),r=e.search?.prioritizeCurrentProduct??!1;return{darkModeCode:e.darkModeCode??!1,defaultSearchFilters:t,search:{prioritizeCurrentProduct:r,defaultFilterByCurrentProduct:t},language:e.language??"en",disableSearch:e.disableSearch??!1,hide404Page:e.hide404Page??!1,httpSnippets:e.httpSnippets??!0,searchText:e.searchText??void 0,useJavascriptAsTypescript:e.useJavascriptAsTypescript??!1,disableExplorerProxy:e.disableExplorerProxy??!1,disableEnvironmentEditing:e.disableEnvironmentEditing??!1,disableAnalytics:e.disableAnalytics??!1,websocketOneofDisplay:e.websocketOneofDisplay??void 0}}async function Hfo({rawPath:e,absoluteFilepathToDocsConfig:t}){if(e==null)return;let r=wb(e,t);return await(0,Jle.readFile)(r,"utf8"),r}async function Prd({rawPath:e,absoluteFilepathToDocsConfig:t,context:r}){if(e==null)return;let n=wb(e,t),i=await(0,Jle.readFile)(n,"utf8");try{JSON.parse(i)}catch(o){r.failAndThrow(`Invalid JSON in Context7 config file: ${e}`,o instanceof Error?o.message:String(o),{code:B.Code.ConfigError})}return n}function Drd(e,t,r){if(e==null&&t==null&&r==null)return;let n=t==="center"?"CENTER":"LEFT",i=r==="header"?"HEADER":r==="sidebar"?"SIDEBAR":void 0;return e==null?{...i!=null?{tabsPlacement:i}:{},tabsAlignment:n}:{pageWidth:e.pageWidth?.trim().toLowerCase()==="full"?{type:"full"}:qkr(e.pageWidth),contentWidth:qkr(e.contentWidth),sidebarWidth:qkr(e.sidebarWidth),headerHeight:qkr(e.headerHeight),searchbarPlacement:e.searchbarPlacement==="header"?"HEADER":e.searchbarPlacement==="header-tabs"?"HEADER_TABS":"SIDEBAR",switcherPlacement:!e.switcherPlacement||e.switcherPlacement==="header"?"HEADER":"SIDEBAR",tabsPlacement:i??(e.tabsPlacement==="header"?"HEADER":"SIDEBAR"),contentAlignment:e.contentAlignment==="left"?"LEFT":"CENTER",headerPosition:e.headerPosition==="static"?"ABSOLUTE":"FIXED",disableHeader:e.disableHeader??!1,hideNavLinks:e.hideNavLinks??!1,hideFeedback:e.hideFeedback??!1,mobileToc:e.mobileToc??!1,changelogLayout:e.changelogLayout,tabsAlignment:n}}function qkr(e){if(e==null)return;let t=e.trim().toLowerCase(),r=t.match(/^(\d+)px$/);if(r!=null&&r[1]!=null)return{type:"px",value:parseFloat(r[1])};let n=t.match(/^(\d+)rem$/);if(n!=null&&n[1]!=null)return{type:"rem",value:parseFloat(n[1])}}async function nDc({versions:e,absolutePathToFernFolder:t,context:r,folderTitleSource:n}){let i=[];for(let o of e){let s=ri(t,o.path),a;try{a=xr.load((await(0,Jle.readFile)(s)).toString())}catch(d){throw d instanceof xr.YAMLException?new B({message:`Failed to parse version file ${o.path}: ${d.message}`,code:B.Code.ParseError}):d}let c=[],u=Q6(a,[],c);c.length>0&&r.logger.warn(`Version file ${o.path} contained null/undefined sections that were ignored: ${c.map(d=>d.join(".")).join(", ")}`);let l=bh.RawSchemas.Serializer.VersionFileConfig.parseOrThrow(u),p=await Yfo({tabs:l.tabs,rawNavigationConfig:l.navigation,absolutePathToFernFolder:t,absolutePathToConfig:s,context:r,folderTitleSource:n});i.push({landingPage:vQt(l.landingPage,s),version:o.displayName,navigation:p,availability:o.availability,slug:o.slug,hidden:o.hidden,viewers:n1(o.viewers),orphaned:o.orphaned,featureFlags:r1(o.featureFlag),announcement:o.announcement})}return{type:"versioned",versions:i}}async function Rrd({tabs:e,products:t,versions:r,navigation:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a}){if(n!=null)return await Yfo({tabs:e,rawNavigationConfig:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a});if(t!=null){let c=[];for(let u of t){let l=u.image!=null?ri(i,u.image):void 0;if("path"in u){let p,d=ri(i,u.path),f;try{f=xr.load((await(0,Jle.readFile)(d)).toString())}catch(y){throw y instanceof xr.YAMLException?new B({message:`Failed to parse product file ${u.path}: ${y.message}`,code:B.Code.ParseError}):y}let m=[],g=Q6(f,[],m);m.length>0&&s.logger.warn(`Product file ${u.path} contained null/undefined sections that were ignored: ${m.map(y=>y.join(".")).join(", ")}`);let A=bh.RawSchemas.Serializer.ProductFileConfig.parseOrThrow(g);u.versions!=null&&u.versions.length>0?p=await nDc({versions:u.versions,absolutePathToFernFolder:i,context:s,folderTitleSource:a}):p=await Yfo({tabs:A.tabs,rawNavigationConfig:A.navigation,absolutePathToFernFolder:i,absolutePathToConfig:d,context:s,folderTitleSource:a}),c.push({type:"internal",landingPage:vQt(A.landingPage,d),product:u.displayName,navigation:p,slug:u.slug,subtitle:u.subtitle,icon:A0(u.icon,o)||"fa-solid fa-code",image:l,viewers:n1(u.viewers),orphaned:u.orphaned,featureFlags:r1(u.featureFlag),announcement:u.announcement})}else if("href"in u&&u.href!=null)c.push({type:"external",product:u.displayName,href:u.href,target:u.target,subtitle:u.subtitle,icon:A0(u.icon,o)||"fa-solid fa-code",image:l,viewers:n1(u.viewers),orphaned:u.orphaned,featureFlags:r1(u.featureFlag)});else throw new B({message:"Invalid product configuration: product must have either 'path' or valid 'href' property",code:B.Code.ConfigError})}return{type:"productgroup",products:c}}else if(r!=null)return await nDc({versions:r,absolutePathToFernFolder:i,context:s,folderTitleSource:a});throw new B({message:"Unexpected. Docs have neither navigation or versions defined.",code:B.Code.ConfigError})}function r1(e){if(e!=null)return typeof e=="string"?[{flag:e,match:!0,fallbackValue:void 0}]:Array.isArray(e)?e.map(t=>({flag:t.flag,match:t.match,fallbackValue:t.fallbackValue})):[{flag:e.flag,match:e.match??!0,fallbackValue:e.fallbackValue}]}async function Frd({rawTypography:e,absoluteFilepathToDocsConfig:t}){return{headingsFont:e.headingsFont!=null?await Kfo({rawFontConfig:e.headingsFont,absoluteFilepathToDocsConfig:t}):void 0,bodyFont:e.bodyFont!=null?await Kfo({rawFontConfig:e.bodyFont,absoluteFilepathToDocsConfig:t}):void 0,codeFont:e.codeFont!=null?await Kfo({rawFontConfig:e.codeFont,absoluteFilepathToDocsConfig:t}):void 0}}async function Kfo({rawFontConfig:e,absoluteFilepathToDocsConfig:t}){return{name:e.name,variants:await krd(e,t),display:e.display,fallback:e.fallback,fontVariationSettings:e.fontVariationSettings}}function krd(e,t){let r=[];return e.path!=null&&r.push({path:e.path,weight:e.weight,style:e.style}),e.paths?.forEach(n=>{typeof n=="string"?r.push({path:n,weight:e.weight,style:e.style}):r.push({path:n.path,weight:n.weight??e.weight,style:n.style??e.style})}),Promise.all(r.map(async n=>({absolutePath:wb(n.path,t),weight:Nrd(n.weight),style:n.style})))}function Nrd(e){return e==null?void 0:typeof e=="number"?[e.toString()]:e.split(/\D+/).filter(r=>r!==""&&["100","200","300","400","500","600","700","800","900"].includes(r))}async function jrd({tabs:e,item:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){let s=e[t.tab];if(s==null)throw new B({message:`Tab ${t.tab} is not defined in the tabs config.`,code:B.Code.ConfigError});if($rd(t)){let a=await Promise.all(t.variants.map(async c=>{let u=await Promise.all(c.layout.map(l=>Hkr({rawConfig:l,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:c.title,subtitle:c.subtitle,icon:A0(c.icon,n),layout:u,slug:c.slug,skipUrlSlug:c.skipSlug,hidden:c.hidden,default:c.default,viewers:n1(c.viewers),orphaned:c.orphaned,featureFlags:r1(c.featureFlag)}}));return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"variants",variants:a},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)}}if(Zrd(t)){let a=await Promise.all(t.layout.map(c=>Hkr({rawConfig:c,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"layout",layout:a},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)}}if(s.href!=null)return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"link",href:s.href,target:s.target},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)};if(s.changelog!=null)return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"changelog",changelog:await xS(wb(s.changelog,n),"{md,mdx}")},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)};Ee(s)}async function Yfo({tabs:e={},rawNavigationConfig:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){return Xrd(t)?{type:"tabbed",items:await Promise.all(t.map(a=>jrd({tabs:e,item:a,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}:{type:"untabbed",items:await Promise.all(t.map(s=>Hkr({rawConfig:s,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}}async function zrd({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){let o=wb(e.folder,r);await tr(o)||n.failAndThrow(`Folder not found: ${e.folder}`,void 0,{code:B.Code.ConfigError}),Xfo({context:n,sectionTitle:e.folder,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0});let s=e.titleSource??i,a=await Wfo({directoryPath:o,titleSource:s}),c=a.find(m=>m.type==="page"&&(m.slug==="index"||m.absolutePath.toLowerCase().endsWith("/index.mdx")||m.absolutePath.toLowerCase().endsWith("/index.md"))),u=c?a.filter(m=>m!==c):a,l=K7.default.basename(o),p=s==="frontmatter"&&c?.type==="page"?(await _kr({absolutePath:c.absolutePath})).title:void 0,d=e.title??p??Gfo({name:l}),f=e.slug??Vkr({name:l});return{type:"section",title:d,icon:A0(e.icon,r),contents:u,slug:f,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:c?.type==="page"?c.absolutePath:void 0,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability}}async function Hkr({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){if(sDc(e))return vQt(e,r);if(Lrd(e))return Xfo({context:n,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),{type:"section",title:e.section,icon:A0(e.icon,r),contents:await Promise.all(e.contents.map(o=>Hkr({rawConfig:o,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}))),slug:e.slug??void 0,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:wb(e.path,r),viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability};if(Urd(e))return{type:"apiSection",openrpc:e.openrpc,title:e.api,icon:A0(e.icon,r),apiName:e.apiName??void 0,audiences:e.audiences!=null?{type:"select",audiences:xQt(e.audiences)??[]}:{type:"all"},availability:e.availability,showErrors:e.displayErrors??!0,tagDescriptionPages:e.tagDescriptionPages??!1,snippetsConfiguration:e.snippets!=null?Mrd({rawConfig:e.snippets}):void 0,postman:e.postman,navigation:e.layout?.flatMap(o=>Wkr(o,r,n))??[],overviewAbsolutePath:wb(e.summary,r),collapsed:e.collapsed??void 0,hidden:e.hidden??void 0,slug:e.slug,skipUrlSlug:e.skipSlug??!1,flattened:e.flattened??!1,alphabetized:e.alphabetized??!1,paginated:e.paginated??!1,playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};if(aDc(e))return{type:"link",text:e.link,url:e.href,icon:A0(e.icon,r),target:e.target};if(Vrd(e))return{type:"changelog",changelog:await xS(wb(e.changelog,r),"{md,mdx}"),hidden:e.hidden??!1,icon:A0(e.icon,r),title:e.title??Qrd,slug:e.slug,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};if(_rd(e))return await zrd({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i});if(qrd(e))return{type:"librarySection",libraryName:e.library,title:e.title??void 0,slug:e.slug??void 0,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};Ee(e)}function vQt(e,t){if(e!=null)return{type:"page",title:e.page,absolutePath:wb(e.path,t),slug:e.slug,icon:A0(e.icon,t),hidden:e.hidden,noindex:e.noindex,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability}}function Wkr(e,t,r){return typeof e=="string"?[{type:"item",value:e}]:sDc(e)?[vQt(e,t)]:aDc(e)?[{type:"link",text:e.link,url:e.href,icon:A0(e.icon,t),target:e.target}]:Hrd(e)?(r!=null&&Xfo({context:r,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),[{type:"section",title:e.section,referencedSubpackages:e.referencedPackages??[],overviewAbsolutePath:wb(e.summary,t),contents:e.contents?.flatMap(n=>Wkr(n,t,r))??[],slug:e.slug,hidden:e.hidden,skipUrlSlug:e.skipSlug,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,availability:e.availability,icon:A0(e.icon,t),playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]):Krd(e)?[{type:"endpoint",endpoint:e.endpoint,title:e.title,icon:A0(e.icon,t),slug:e.slug,hidden:e.hidden,availability:e.availability,playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]:Jrd(e)?[{type:"operation",operation:e.operation,title:e.title,slug:e.slug,hidden:e.hidden,availability:e.availability,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]:Object.entries(e).map(([n,i])=>Yrd(i)?{type:"package",title:i.title,package:n,overviewAbsolutePath:wb(i.summary,t),contents:i.contents?.flatMap(o=>Wkr(o,t,r))??[],slug:i.slug,hidden:i.hidden,skipUrlSlug:i.skipSlug,icon:A0(i.icon,t),playground:i.playground,availability:i.availability,viewers:n1(i.viewers),orphaned:i.orphaned,featureFlags:r1(i.featureFlag)}:{type:"package",title:void 0,package:n,overviewAbsolutePath:void 0,contents:i.flatMap(o=>Wkr(o,t,r)),hidden:!1,slug:void 0,skipUrlSlug:!1,icon:void 0,playground:void 0,availability:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}function Mrd({rawConfig:e}){return{python:e.python,typescript:e.typescript,go:e.go,java:e.java,ruby:e.ruby,csharp:e.csharp,php:e.php,swift:e.swift}}function sDc(e){return oo(e)&&typeof e.page=="string"&&typeof e.path=="string"}function Lrd(e){return e.section!=null}function Urd(e){return e.api!=null}function aDc(e){return bh.RawSchemas,oo(e)&&typeof e.link=="string"&&typeof e.href=="string"}function Vrd(e){return oo(e)&&typeof e.changelog=="string"}function _rd(e){return oo(e)&&typeof e.folder=="string"}function qrd(e){return oo(e)&&typeof e.library=="string"}function Grd(e){return"git"in e}function Wrd(e){if(e==null)return;let t={};for(let[r,n]of Object.entries(e)){if(!Grd(n.input))throw new B({message:`Library '${r}' uses 'path' input which is not yet supported. Please use 'git' input.`,code:B.Code.ConfigError});t[r]={input:{git:n.input.git,subpath:n.input.subpath},output:{path:n.output.path},lang:n.lang}}return t}function Hrd(e){return oo(e)&&typeof e.section=="string"&&Array.isArray(e.contents)}function Krd(e){return oo(e)&&typeof e.endpoint=="string"}function Jrd(e){return oo(e)&&typeof e.operation=="string"}function Yrd(e){return!Array.isArray(e)}function wb(e,t){if(e!=null)return ri(yn(t),e)}function Xrd(e){return Array.isArray(e)&&e.length>0&&e[0].tab!=null}function Zrd(e){return"layout"in e&&Array.isArray(e.layout)}function $rd(e){return"variants"in e&&Array.isArray(e.variants)}function cDc(e,t){return e?.map(r=>{if(r.type==="github"){let i=r.value;return typeof i=="string"?{type:"github",url:cn.Url(i),viewers:void 0,target:void 0}:{type:"github",url:cn.Url(i.url),viewers:Jfo(i.viewers),target:i.target}}let n=Jfo(r.viewers);return r.type==="dropdown"?{type:"dropdown",text:r.text,icon:A0(r.icon,t),rightIcon:A0(r.rightIcon,t),rounded:r.rounded,viewers:n,links:r.links?.map(i=>({href:i.href,target:i.target,url:cn.Url(i.url??i.href??"/"),text:i.text,icon:A0(i.icon,t),rightIcon:A0(i.rightIcon,t),rounded:i.rounded,viewers:Jfo(i.viewers)}))??[]}:{type:r.type,text:r.text,url:cn.Url(r.href??r.url??"/"),target:r.target,icon:A0(r.icon,t),rightIcon:A0(r.rightIcon,t),rounded:r.rounded,viewers:n}})}function Jfo(e){if(e!=null)return Array.isArray(e)?e.map(t=>cn.docs.v1.commons.RoleId(t)):[cn.docs.v1.commons.RoleId(e)]}function end(e){if(e==null)return;let t=[];if(Object.keys(e).forEach(r=>{let n=e[r];n!=null&&t.push({type:r,value:cn.Url(n)})}),t.length!==0)return t}async function tnd(e,t,r){if(e!=null)return rnd(e,r),{"og:site_name":e.ogSiteName,"og:title":e.ogTitle,"og:description":e.ogDescription,"og:url":e.ogUrl,"og:image":await Gkr(e.ogImage,t),"og:image:width":e.ogImageWidth,"og:image:height":e.ogImageHeight,"og:locale":e.ogLocale,"og:logo":await Gkr(e.ogLogo,t),"twitter:title":e.twitterTitle,"twitter:description":e.twitterDescription,"twitter:image":await Gkr(e.twitterImage,t),"twitter:handle":e.twitterHandle,"twitter:site":e.twitterSite,"twitter:url":e.twitterUrl,"twitter:card":e.twitterCard,"og:dynamic":e.ogDynamic,"og:dynamic:background-image":await Gkr(e.ogDynamicBackgroundImage,t),"og:dynamic:text-color":e.ogDynamicTextColor,"og:dynamic:background-color":e.ogDynamicBackgroundColor,"og:dynamic:logo-color":e.ogDynamicLogoColor,"og:dynamic:show-logo":e.ogDynamicShowLogo,"og:dynamic:show-section":e.ogDynamicShowSection,"og:dynamic:show-description":e.ogDynamicShowDescription,"og:dynamic:show-url":e.ogDynamicShowUrl,"og:dynamic:show-gradient":e.ogDynamicShowGradient,nofollow:void 0,noindex:void 0,canonicalHost:e.canonicalHost}}function rnd(e,t){let r=e.ogDynamic===!0,n=[["og:dynamic:background-image",e.ogDynamicBackgroundImage],["og:dynamic:text-color",e.ogDynamicTextColor],["og:dynamic:background-color",e.ogDynamicBackgroundColor],["og:dynamic:logo-color",e.ogDynamicLogoColor],["og:dynamic:show-logo",e.ogDynamicShowLogo],["og:dynamic:show-section",e.ogDynamicShowSection],["og:dynamic:show-description",e.ogDynamicShowDescription],["og:dynamic:show-url",e.ogDynamicShowUrl],["og:dynamic:show-gradient",e.ogDynamicShowGradient]];if(r&&e.ogImage!=null&&t.logger.warn("[metadata] `og:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image. Remove `og:image` to rely entirely on dynamic generation, or set `og:dynamic: false` to use `og:image` site-wide."),r&&e.twitterImage!=null&&t.logger.warn("[metadata] `twitter:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image."),!r){let i=n.filter(([,o])=>o!=null).map(([o])=>o);i.length>0&&t.logger.warn(`[metadata] The following settings require \`og:dynamic: true\` and will be ignored: ${i.map(o=>`\`${o}\``).join(", ")}.`)}r&&e.ogDynamicShowLogo===!1&&e.ogDynamicLogoColor!=null&&t.logger.warn("[metadata] `og:dynamic:logo-color` has no effect because `og:dynamic:show-logo: false`. Remove one or the other."),e.ogImage==null&&(e.ogImageWidth!=null||e.ogImageHeight!=null)&&t.logger.warn("[metadata] `og:image:width` / `og:image:height` have no effect without `og:image`."),r&&typeof e.ogDynamicTextColor=="string"&&typeof e.ogDynamicBackgroundColor=="string"&&e.ogDynamicTextColor.trim().toLowerCase()===e.ogDynamicBackgroundColor.trim().toLowerCase()&&t.logger.warn(`[metadata] \`og:dynamic:text-color\` and \`og:dynamic:background-color\` are both set to \`${e.ogDynamicTextColor}\`, which will make text invisible in generated OG images.`)}async function Gkr(e,t){if(e==null)return;if(e.startsWith("http"))return{type:"url",value:e};let r=wb(e,t);return await tr(r)?{type:"filepath",value:r}:{type:"url",value:e}}function n1(e){if(e!=null){if(typeof e=="string")return[cn.docs.v1.commons.RoleId(e)];if(e.length!==0)return e.map(cn.docs.v1.commons.RoleId)}}function xQt(e){if(e!=null){if(typeof e=="string")return[e];if(e.length!==0)return e}}function Xfo({context:e,sectionTitle:t,collapsed:r,collapsible:n,collapsedByDefault:i}){n!=null&&r!=null&&e.failAndThrow(`Section "${t}": cannot use both "collapsible" and the deprecated "collapsed" property. Please use "collapsible" and "collapsed-by-default" instead.`,void 0,{code:B.Code.ConfigError}),i!=null&&n!==!0&&e.failAndThrow(`Section "${t}": "collapsed-by-default" requires "collapsible: true". "collapsed-by-default" has no effect on a non-collapsible section.`,void 0,{code:B.Code.ConfigError})}async function nnd({translations:e,defaultLocale:t,pages:r,absolutePathToFernFolder:n,context:i}){if(e==null||e.length===0)return;let o=K7.default.join(n,"translations"),s={},a=e.map(c=>bh.DocsYmlSchemas.normalizeTranslationConfig(c));return await Promise.all(a.map(async({lang:c})=>{if(c===t)return;let u=K7.default.join(o,c);if(!await tr(u)){i.failAndThrow(`Translation directory for locale "${c}" not found.
464
+ `&&(e.content=e.content.slice(1))),XPc(e,r),(r.sections===!0||typeof r.section=="function")&&prd(e,r.section),e}Ck.engines=drd;Ck.stringify=function(e,t,r){return typeof e=="string"&&(e=Ck(e,r)),frd(e,t,r)};Ck.read=function(e,t){let r=lrd.readFileSync(e,"utf8"),n=Ck(r,t);return n.path=e,n};Ck.test=function(e,t){return ZPc.startsWith(e,_fo(t).delimiters[0])};Ck.language=function(e,t){let n=_fo(t).delimiters[0];Ck.test(e)&&(e=e.slice(n.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Ck.cache={};Ck.clearCache=function(){Ck.cache={}};$Pc.exports=Ck});function Vkr({name:e}){return e.replace(/\.(md|mdx)$/i,"").toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}function Gfo({name:e}){return e.replace(/\.(md|mdx)$/i,"").replace(/[-_]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}async function _kr({absolutePath:e,readFileFn:t=(r,n)=>(0,qfo.readFile)(r,n)}){try{let r=await t(e,"utf-8"),{data:n}=(0,tDc.default)(r),i;if(n.position!=null){let c=typeof n.position=="string"?parseFloat(n.position):n.position;typeof c=="number"&&Number.isFinite(c)&&(i=c)}let o=typeof n.title=="string"&&n.title.trim().length>0?n.title.trim():void 0,s=n.hidden===!0?!0:void 0,a=n.noindex===!0?!0:void 0;return{position:i,title:o,hidden:s,noindex:a}}catch{return{position:void 0,title:void 0,hidden:void 0,noindex:void 0}}}function eDc({frontmatterTitle:e,useFrontmatterTitles:t,fallbackName:r}){return t&&e!=null?e:Gfo({name:r})}async function Wfo({directoryPath:e,titleSource:t,getDir:r=ZA,readFileFn:n=(i,o)=>(0,qfo.readFile)(i,o)}){let i=await r(e),o=t==="frontmatter",s=i.filter(d=>d.type==="file"&&!d.name.startsWith("_")&&(d.name.toLowerCase().endsWith(".md")||d.name.toLowerCase().endsWith(".mdx"))),a=i.filter(d=>d.type==="directory"&&!d.name.startsWith("_")),c=await Promise.all(s.map(d=>_kr({absolutePath:d.absolutePath,readFileFn:n}))),u=s.map((d,f)=>{let m=c[f];return{type:"page",title:eDc({frontmatterTitle:m?.title,useFrontmatterTitles:o,fallbackName:d.name}),absolutePath:d.absolutePath,slug:Vkr({name:d.name}),icon:void 0,hidden:m?.hidden,noindex:m?.noindex,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0}}),l=await Promise.all(a.map(async d=>{let f=await Wfo({directoryPath:d.absolutePath,titleSource:t,getDir:r,readFileFn:n}),m=f.find(E=>E.type==="page"&&(E.slug==="index"||E.absolutePath.toLowerCase().endsWith("/index.mdx")||E.absolutePath.toLowerCase().endsWith("/index.md"))),g=m?f.filter(E=>E!==m):f,A=m?.type==="page"?await _kr({absolutePath:m.absolutePath,readFileFn:n}):void 0;return{section:{type:"section",title:eDc({frontmatterTitle:A?.title,useFrontmatterTitles:o,fallbackName:d.name}),slug:Vkr({name:d.name}),icon:void 0,contents:g,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:A?.hidden,skipUrlSlug:!1,overviewAbsolutePath:m?.type==="page"?m.absolutePath:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0},position:A?.position}})),p=[...u.map((d,f)=>({item:d,title:d.type==="page"?d.title:"",position:c[f]?.position})),...l.map(d=>({item:d.section,title:d.section.type==="section"?d.section.title:"",position:d.position}))];return p.sort((d,f)=>{let m=typeof d.position=="number",g=typeof f.position=="number";if(m&&!g)return-1;if(!m&&g)return 1;if(typeof d.position=="number"&&typeof f.position=="number"){let A=d.position-f.position;return A!==0?A:d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}return d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}),p.map(d=>d.item)}var qfo,tDc,rDc=h(()=>{"use strict";$t();qfo=require("fs/promises"),tDc=be(hL(),1)});function Ard(e){return!e||e.startsWith("<")?!1:e.startsWith(".")||e.includes("/")||e.includes("\\")||e.includes(":")}function A0(e,t){if(e)return Ard(e)?wb(e,t):e}async function oze({rawDocsConfiguration:e,absolutePathToFernFolder:t,absoluteFilepathToDocsConfig:r,context:n}){let{instances:i,title:o,tabs:s,products:a,versions:c,navigation:u,navbarLinks:l,footerLinks:p,defaultLanguage:d,metadata:f,redirects:m,logo:g,favicon:A,backgroundImage:y,colors:E,typography:v,layout:I,integrations:C,css:w,js:O,aiChat:P,aiSearch:T,agents:M,pageActions:K,experimental:Y}=e,X=vQt(e.landingPage,r),se=e.settings?.folderTitleSource,ue=Rrd({tabs:s,products:a,versions:c,navigation:u,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:se}),ie=ue.then(mr=>_Ac({files:tle({navigation:mr,landingPage:X}),absolutePathToFernFolder:t})),pe=yrd(g,r),Ce=wb(A,r),Fe=brd(y,r),ne=v!=null?Frd({rawTypography:v,absoluteFilepathToDocsConfig:r}):void 0,de=Erd(w,r),Oe=xrd(O,r),ve=tnd(f,r,n),ke=Prd({rawPath:e.integrations?.context7,absoluteFilepathToDocsConfig:r,context:n}),Ke=Hfo({rawPath:M?.llmsTxt,absoluteFilepathToDocsConfig:r}),st=Hfo({rawPath:M?.llmsFullTxt,absoluteFilepathToDocsConfig:r}),It=Hfo({rawPath:M?.robotsTxt,absoluteFilepathToDocsConfig:r}),pt=e.translations?.map(mr=>bh.DocsYmlSchemas.normalizeTranslationConfig(mr)).find(mr=>mr.default===!0)?.lang??(e.translations?.[0]!=null?bh.DocsYmlSchemas.normalizeTranslationConfig(e.translations[0]).lang:void 0),Zt=ie.then(mr=>nnd({translations:e.translations,defaultLocale:pt,pages:mr,absolutePathToFernFolder:t,context:n})),_t=ind({translations:e.translations,defaultLocale:pt,absolutePathToFernFolder:t,context:n}),[he,le,rt,mt,ye,De,ct,ot,Xe,nr,Xt,dr]=await Promise.all([ue,ie,ne,de,Oe,ve,ke,Ke,st,It,Zt,_t]),Un=Ord(e.theme),dn=Un?.tabs!=null&&typeof Un.tabs=="object"?Un.tabs:void 0,Fo=dn?.placement??I?.tabsPlacement??"sidebar",Mt=dn?.alignment??"left";return Fo==="sidebar"&&Mt==="center"&&n.logger.warn("Tabs alignment 'center' is not supported when tabs placement is 'sidebar'. The alignment will be ignored."),{title:o,instances:i,roles:e.roles,libraries:Wrd(e.libraries),pages:le,translationPages:Xt,translationNavigationOverlays:dr,landingPage:X,navigation:he,navbarLinks:cDc(l,r),footerLinks:end(p),defaultLanguage:d,languages:e.languages,translations:e.translations,announcement:e.announcement,metadata:De,redirects:m?.map(mr=>({...mr,permanent:mr?.permanent})),logo:pe,favicon:Ce,backgroundImage:Fe,colors:LAc(E,n),typography:rt,layout:Drd(I,dn?.alignment,dn?.placement),settings:Brd(e.settings),context7File:ct,llmsTxtFile:ot,llmsFullTxtFile:Xe,robotsTxtFile:nr,theme:Un,globalTheme:e.globalTheme,analyticsConfig:{...e.analytics,intercom:e.analytics?.intercom?{...e.analytics.intercom,appId:e.analytics.intercom.appId,apiBase:e.analytics.intercom.apiBase}:void 0,fullstory:e.analytics?.fullstory,posthog:e.analytics?.posthog?{...e.analytics.posthog,apiKey:e.analytics.posthog.apiKey,endpoint:e.analytics.posthog.endpoint}:void 0,segment:e.analytics?.segment,gtm:e.analytics?.gtm,ga4:e.analytics?.ga4,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},integrations:C!=null?{intercom:C.intercom??void 0}:void 0,css:mt,js:ye,aiChatConfig:T??P,agents:M,pageActions:Crd(K,r),header:wb(e.header,r),footer:wb(e.footer,r),experimental:Y}}function yrd(e,t){return e!=null?{dark:wb(e.dark,t),light:wb(e.light,t),height:e.height,href:e.href!=null?cn.Url(e.href):void 0,rightText:e.rightText}:void 0}function brd(e,t){if(e!=null)if(typeof e=="string"){let r=wb(e,t);return{dark:r,light:r}}else{let r=wb(e.dark,t),n=wb(e.light,t);return{dark:r,light:n}}}async function Erd(e,t){if(e==null)return;let r=typeof e=="string"?[e]:e;return{inline:await Promise.all(r.map(async n=>(await(0,Jle.readFile)(wb(n,t))).toString()))}}function Ird(e){return Object.hasOwn(e,"url")}function vrd(e){return Object.hasOwn(e,"path")}async function xrd(e,t){let r=[],n=[];if(e==null)return{files:[]};let i=Array.isArray(e)?e:[e];for(let o of i)typeof o=="string"?n.push({absolutePath:wb(o,t)}):Ird(o)?r.push({strategy:o.strategy,url:cn.Url(o.url)}):vrd(o)&&n.push({absolutePath:wb(o.path,t),strategy:o.strategy});return{remote:r,files:n}}function Crd(e,t){return e==null?void 0:{default:e.default!=null?Srd(e.default):void 0,options:{askAi:e.options?.askAi??!0,copyPage:e.options?.copyPage??!0,viewAsMarkdown:e.options?.viewAsMarkdown??!0,openAi:e.options?.chatgpt??!0,claude:e.options?.claude??!0,cursor:e.options?.cursor??!0,claudeCode:e.options?.claudeCode??!0,mcp:e.options?.mcp??!0,vscode:e.options?.vscode??!1,custom:(e.options?.custom??[]).map(n=>Trd(n,t)),skills:wrd(e.options?.skills)}}}function wrd(e){if(e!=null)return{title:e.title,description:e.description,learnMoreUrl:e.learnMoreUrl,repository:e.repository,installCommand:e.installCommand,skills:e.skills?.map(t=>({name:t.name,description:t.description,url:t.url}))}}function Srd(e){switch(e){case"copy-page":return"copyPage";case"view-as-markdown":return"viewAsMarkdown";case"ask-ai":return"askAi";case"chatgpt":return"openAi";case"claude":return"claude";case"cursor":return"cursor";case"claude-code":return"claudeCode";case"vscode":return"vscode";default:Ee(e)}}function Trd(e,t){return{title:e.title,subtitle:e.subtitle,url:e.url,icon:A0(e.icon,t),default:e.default}}function Ord(e){if(e==null)return;let t;if(e.tabs!=null&&typeof e.tabs=="object"){let r=e.tabs;t={style:r.style??"default",alignment:r.alignment,placement:r.placement}}else t=e.tabs??"default";return{sidebar:e.sidebar??"default",tabs:t,body:e.body??"default",pageActions:e.pageActions??"default",footerNav:e.footerNav??"default",languageSwitcher:e.languageSwitcher??"default",productSwitcher:e.productSwitcher??"default"}}function Brd(e){if(e==null)return;let t=(e.search?.defaultFilterByCurrentProduct??!1)||(e.defaultSearchFilters??!1),r=e.search?.prioritizeCurrentProduct??!1;return{darkModeCode:e.darkModeCode??!1,defaultSearchFilters:t,search:{prioritizeCurrentProduct:r,defaultFilterByCurrentProduct:t},language:e.language??"en",disableSearch:e.disableSearch??!1,hide404Page:e.hide404Page??!1,httpSnippets:e.httpSnippets??!0,searchText:e.searchText??void 0,useJavascriptAsTypescript:e.useJavascriptAsTypescript??!1,disableExplorerProxy:e.disableExplorerProxy??!1,disableEnvironmentEditing:e.disableEnvironmentEditing??!1,disableAnalytics:e.disableAnalytics??!1,websocketOneofDisplay:e.websocketOneofDisplay??void 0}}async function Hfo({rawPath:e,absoluteFilepathToDocsConfig:t}){if(e==null)return;let r=wb(e,t);return await(0,Jle.readFile)(r,"utf8"),r}async function Prd({rawPath:e,absoluteFilepathToDocsConfig:t,context:r}){if(e==null)return;let n=wb(e,t),i=await(0,Jle.readFile)(n,"utf8");try{JSON.parse(i)}catch(o){r.failAndThrow(`Invalid JSON in Context7 config file: ${e}`,o instanceof Error?o.message:String(o),{code:B.Code.ConfigError})}return n}function Drd(e,t,r){if(e==null&&t==null&&r==null)return;let n=t==="center"?"CENTER":"LEFT",i=r==="header"?"HEADER":r==="sidebar"?"SIDEBAR":void 0;return e==null?{...i!=null?{tabsPlacement:i}:{},tabsAlignment:n}:{pageWidth:e.pageWidth?.trim().toLowerCase()==="full"?{type:"full"}:qkr(e.pageWidth),contentWidth:qkr(e.contentWidth),sidebarWidth:qkr(e.sidebarWidth),headerHeight:qkr(e.headerHeight),searchbarPlacement:e.searchbarPlacement==="header"?"HEADER":e.searchbarPlacement==="header-tabs"?"HEADER_TABS":"SIDEBAR",switcherPlacement:!e.switcherPlacement||e.switcherPlacement==="header"?"HEADER":"SIDEBAR",tabsPlacement:i??(e.tabsPlacement==="header"?"HEADER":"SIDEBAR"),contentAlignment:e.contentAlignment==="left"?"LEFT":"CENTER",headerPosition:e.headerPosition==="static"?"ABSOLUTE":"FIXED",disableHeader:e.disableHeader??!1,hideNavLinks:e.hideNavLinks??!1,hideFeedback:e.hideFeedback??!1,mobileToc:e.mobileToc??!1,changelogLayout:e.changelogLayout,tabsAlignment:n}}function qkr(e){if(e==null)return;let t=e.trim().toLowerCase(),r=t.match(/^(\d+)px$/);if(r!=null&&r[1]!=null)return{type:"px",value:parseFloat(r[1])};let n=t.match(/^(\d+)rem$/);if(n!=null&&n[1]!=null)return{type:"rem",value:parseFloat(n[1])}}async function nDc({versions:e,absolutePathToFernFolder:t,context:r,folderTitleSource:n}){let i=[];for(let o of e){let s=ri(t,o.path),a;try{a=xr.load((await(0,Jle.readFile)(s)).toString())}catch(d){throw d instanceof xr.YAMLException?new B({message:`Failed to parse version file ${o.path}: ${d.message}`,code:B.Code.ParseError}):d}let c=[],u=Q6(a,[],c);c.length>0&&r.logger.warn(`Version file ${o.path} contained null/undefined sections that were ignored: ${c.map(d=>d.join(".")).join(", ")}`);let l=bh.RawSchemas.Serializer.VersionFileConfig.parseOrThrow(u),p=await Yfo({tabs:l.tabs,rawNavigationConfig:l.navigation,absolutePathToFernFolder:t,absolutePathToConfig:s,context:r,folderTitleSource:n});i.push({landingPage:vQt(l.landingPage,s),version:o.displayName,navigation:p,availability:o.availability,slug:o.slug,hidden:o.hidden,viewers:n1(o.viewers),orphaned:o.orphaned,featureFlags:r1(o.featureFlag),announcement:o.announcement})}return{type:"versioned",versions:i}}async function Rrd({tabs:e,products:t,versions:r,navigation:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a}){if(n!=null)return await Yfo({tabs:e,rawNavigationConfig:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a});if(t!=null){let c=[];for(let u of t){let l=u.image!=null?ri(i,u.image):void 0;if("path"in u){let p,d=ri(i,u.path),f;try{f=xr.load((await(0,Jle.readFile)(d)).toString())}catch(y){throw y instanceof xr.YAMLException?new B({message:`Failed to parse product file ${u.path}: ${y.message}`,code:B.Code.ParseError}):y}let m=[],g=Q6(f,[],m);m.length>0&&s.logger.warn(`Product file ${u.path} contained null/undefined sections that were ignored: ${m.map(y=>y.join(".")).join(", ")}`);let A=bh.RawSchemas.Serializer.ProductFileConfig.parseOrThrow(g);u.versions!=null&&u.versions.length>0?p=await nDc({versions:u.versions,absolutePathToFernFolder:i,context:s,folderTitleSource:a}):p=await Yfo({tabs:A.tabs,rawNavigationConfig:A.navigation,absolutePathToFernFolder:i,absolutePathToConfig:d,context:s,folderTitleSource:a}),c.push({type:"internal",landingPage:vQt(A.landingPage,d),product:u.displayName,navigation:p,slug:u.slug,subtitle:u.subtitle,icon:A0(u.icon,o)||"fa-solid fa-code",image:l,viewers:n1(u.viewers),orphaned:u.orphaned,featureFlags:r1(u.featureFlag),announcement:u.announcement})}else if("href"in u&&u.href!=null)c.push({type:"external",product:u.displayName,href:u.href,target:u.target,subtitle:u.subtitle,icon:A0(u.icon,o)||"fa-solid fa-code",image:l,viewers:n1(u.viewers),orphaned:u.orphaned,featureFlags:r1(u.featureFlag)});else throw new B({message:"Invalid product configuration: product must have either 'path' or valid 'href' property",code:B.Code.ConfigError})}return{type:"productgroup",products:c}}else if(r!=null)return await nDc({versions:r,absolutePathToFernFolder:i,context:s,folderTitleSource:a});throw new B({message:"Unexpected. Docs have neither navigation or versions defined.",code:B.Code.ConfigError})}function r1(e){if(e!=null)return typeof e=="string"?[{flag:e,match:!0,fallbackValue:void 0}]:Array.isArray(e)?e.map(t=>({flag:t.flag,match:t.match,fallbackValue:t.fallbackValue})):[{flag:e.flag,match:e.match??!0,fallbackValue:e.fallbackValue}]}async function Frd({rawTypography:e,absoluteFilepathToDocsConfig:t}){return{headingsFont:e.headingsFont!=null?await Kfo({rawFontConfig:e.headingsFont,absoluteFilepathToDocsConfig:t}):void 0,bodyFont:e.bodyFont!=null?await Kfo({rawFontConfig:e.bodyFont,absoluteFilepathToDocsConfig:t}):void 0,codeFont:e.codeFont!=null?await Kfo({rawFontConfig:e.codeFont,absoluteFilepathToDocsConfig:t}):void 0}}async function Kfo({rawFontConfig:e,absoluteFilepathToDocsConfig:t}){return{name:e.name,variants:await krd(e,t),display:e.display,fallback:e.fallback,fontVariationSettings:e.fontVariationSettings}}function krd(e,t){let r=[];return e.path!=null&&r.push({path:e.path,weight:e.weight,style:e.style}),e.paths?.forEach(n=>{typeof n=="string"?r.push({path:n,weight:e.weight,style:e.style}):r.push({path:n.path,weight:n.weight??e.weight,style:n.style??e.style})}),Promise.all(r.map(async n=>({absolutePath:wb(n.path,t),weight:Nrd(n.weight),style:n.style})))}function Nrd(e){return e==null?void 0:typeof e=="number"?[e.toString()]:e.split(/\D+/).filter(r=>r!==""&&["100","200","300","400","500","600","700","800","900"].includes(r))}async function jrd({tabs:e,item:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){let s=e[t.tab];if(s==null)throw new B({message:`Tab ${t.tab} is not defined in the tabs config.`,code:B.Code.ConfigError});if($rd(t)){let a=await Promise.all(t.variants.map(async c=>{let u=await Promise.all(c.layout.map(l=>Hkr({rawConfig:l,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:c.title,subtitle:c.subtitle,icon:A0(c.icon,n),layout:u,slug:c.slug,skipUrlSlug:c.skipSlug,hidden:c.hidden,default:c.default,viewers:n1(c.viewers),orphaned:c.orphaned,featureFlags:r1(c.featureFlag)}}));return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"variants",variants:a},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)}}if(Zrd(t)){let a=await Promise.all(t.layout.map(c=>Hkr({rawConfig:c,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"layout",layout:a},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)}}if(s.href!=null)return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"link",href:s.href,target:s.target},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)};if(s.changelog!=null)return{title:s.displayName,icon:A0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"changelog",changelog:await xS(wb(s.changelog,n),"{md,mdx}")},viewers:n1(s.viewers),orphaned:s.orphaned,featureFlags:r1(s.featureFlag)};Ee(s)}async function Yfo({tabs:e={},rawNavigationConfig:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){return Xrd(t)?{type:"tabbed",items:await Promise.all(t.map(a=>jrd({tabs:e,item:a,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}:{type:"untabbed",items:await Promise.all(t.map(s=>Hkr({rawConfig:s,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}}async function zrd({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){let o=wb(e.folder,r);await tr(o)||n.failAndThrow(`Folder not found: ${e.folder}`,void 0,{code:B.Code.ConfigError}),Xfo({context:n,sectionTitle:e.folder,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0});let s=e.titleSource??i,a=await Wfo({directoryPath:o,titleSource:s}),c=a.find(m=>m.type==="page"&&(m.slug==="index"||m.absolutePath.toLowerCase().endsWith("/index.mdx")||m.absolutePath.toLowerCase().endsWith("/index.md"))),u=c?a.filter(m=>m!==c):a,l=K7.default.basename(o),p=s==="frontmatter"&&c?.type==="page"?(await _kr({absolutePath:c.absolutePath})).title:void 0,d=e.title??p??Gfo({name:l}),f=e.slug??Vkr({name:l});return{type:"section",title:d,icon:A0(e.icon,r),contents:u,slug:f,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:c?.type==="page"?c.absolutePath:void 0,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability}}async function Hkr({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){if(sDc(e))return vQt(e,r);if(Lrd(e))return Xfo({context:n,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),{type:"section",title:e.section,icon:A0(e.icon,r),contents:await Promise.all(e.contents.map(o=>Hkr({rawConfig:o,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}))),slug:e.slug??void 0,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:wb(e.path,r),viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability};if(Urd(e))return{type:"apiSection",openrpc:e.openrpc,title:e.api,icon:A0(e.icon,r),apiName:e.apiName??void 0,audiences:e.audiences!=null?{type:"select",audiences:xQt(e.audiences)??[]}:{type:"all"},availability:e.availability,showErrors:e.displayErrors??!0,tagDescriptionPages:e.tagDescriptionPages??!1,snippetsConfiguration:e.snippets!=null?Mrd({rawConfig:e.snippets}):void 0,postman:e.postman,navigation:e.layout?.flatMap(o=>Wkr(o,r,n))??[],overviewAbsolutePath:wb(e.summary,r),collapsed:e.collapsed??void 0,hidden:e.hidden??void 0,slug:e.slug,skipUrlSlug:e.skipSlug??!1,flattened:e.flattened??!1,alphabetized:e.alphabetized??!1,paginated:e.paginated??!1,playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};if(aDc(e))return{type:"link",text:e.link,url:e.href,icon:A0(e.icon,r),target:e.target};if(Vrd(e))return{type:"changelog",changelog:await xS(wb(e.changelog,r),"{md,mdx}"),hidden:e.hidden??!1,icon:A0(e.icon,r),title:e.title??Qrd,slug:e.slug,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};if(_rd(e))return await zrd({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i});if(qrd(e))return{type:"librarySection",libraryName:e.library,title:e.title??void 0,slug:e.slug??void 0,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)};Ee(e)}function vQt(e,t){if(e!=null)return{type:"page",title:e.page,absolutePath:wb(e.path,t),slug:e.slug,icon:A0(e.icon,t),hidden:e.hidden,noindex:e.noindex,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag),availability:e.availability}}function Wkr(e,t,r){return typeof e=="string"?[{type:"item",value:e}]:sDc(e)?[vQt(e,t)]:aDc(e)?[{type:"link",text:e.link,url:e.href,icon:A0(e.icon,t),target:e.target}]:Hrd(e)?(r!=null&&Xfo({context:r,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),[{type:"section",title:e.section,referencedSubpackages:e.referencedPackages??[],overviewAbsolutePath:wb(e.summary,t),contents:e.contents?.flatMap(n=>Wkr(n,t,r))??[],slug:e.slug,hidden:e.hidden,skipUrlSlug:e.skipSlug,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,availability:e.availability,icon:A0(e.icon,t),playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]):Krd(e)?[{type:"endpoint",endpoint:e.endpoint,title:e.title,icon:A0(e.icon,t),slug:e.slug,hidden:e.hidden,availability:e.availability,playground:e.playground,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]:Jrd(e)?[{type:"operation",operation:e.operation,title:e.title,slug:e.slug,hidden:e.hidden,availability:e.availability,viewers:n1(e.viewers),orphaned:e.orphaned,featureFlags:r1(e.featureFlag)}]:Object.entries(e).map(([n,i])=>Yrd(i)?{type:"package",title:i.title,package:n,overviewAbsolutePath:wb(i.summary,t),contents:i.contents?.flatMap(o=>Wkr(o,t,r))??[],slug:i.slug,hidden:i.hidden,skipUrlSlug:i.skipSlug,icon:A0(i.icon,t),playground:i.playground,availability:i.availability,viewers:n1(i.viewers),orphaned:i.orphaned,featureFlags:r1(i.featureFlag)}:{type:"package",title:void 0,package:n,overviewAbsolutePath:void 0,contents:i.flatMap(o=>Wkr(o,t,r)),hidden:!1,slug:void 0,skipUrlSlug:!1,icon:void 0,playground:void 0,availability:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}function Mrd({rawConfig:e}){return{python:e.python,typescript:e.typescript,go:e.go,java:e.java,ruby:e.ruby,csharp:e.csharp,php:e.php,swift:e.swift}}function sDc(e){return oo(e)&&typeof e.page=="string"&&typeof e.path=="string"}function Lrd(e){return e.section!=null}function Urd(e){return e.api!=null}function aDc(e){return bh.RawSchemas,oo(e)&&typeof e.link=="string"&&typeof e.href=="string"}function Vrd(e){return oo(e)&&typeof e.changelog=="string"}function _rd(e){return oo(e)&&typeof e.folder=="string"}function qrd(e){return oo(e)&&typeof e.library=="string"}function Grd(e){return"git"in e}function Wrd(e){if(e==null)return;let t={};for(let[r,n]of Object.entries(e)){let i=Grd(n.input)?{type:"git",git:n.input.git,subpath:n.input.subpath}:{type:"path",path:n.input.path};t[r]={input:i,output:{path:n.output.path},lang:n.lang}}return t}function Hrd(e){return oo(e)&&typeof e.section=="string"&&Array.isArray(e.contents)}function Krd(e){return oo(e)&&typeof e.endpoint=="string"}function Jrd(e){return oo(e)&&typeof e.operation=="string"}function Yrd(e){return!Array.isArray(e)}function wb(e,t){if(e!=null)return ri(yn(t),e)}function Xrd(e){return Array.isArray(e)&&e.length>0&&e[0].tab!=null}function Zrd(e){return"layout"in e&&Array.isArray(e.layout)}function $rd(e){return"variants"in e&&Array.isArray(e.variants)}function cDc(e,t){return e?.map(r=>{if(r.type==="github"){let i=r.value;return typeof i=="string"?{type:"github",url:cn.Url(i),viewers:void 0,target:void 0}:{type:"github",url:cn.Url(i.url),viewers:Jfo(i.viewers),target:i.target}}let n=Jfo(r.viewers);return r.type==="dropdown"?{type:"dropdown",text:r.text,icon:A0(r.icon,t),rightIcon:A0(r.rightIcon,t),rounded:r.rounded,viewers:n,links:r.links?.map(i=>({href:i.href,target:i.target,url:cn.Url(i.url??i.href??"/"),text:i.text,icon:A0(i.icon,t),rightIcon:A0(i.rightIcon,t),rounded:i.rounded,viewers:Jfo(i.viewers)}))??[]}:{type:r.type,text:r.text,url:cn.Url(r.href??r.url??"/"),target:r.target,icon:A0(r.icon,t),rightIcon:A0(r.rightIcon,t),rounded:r.rounded,viewers:n}})}function Jfo(e){if(e!=null)return Array.isArray(e)?e.map(t=>cn.docs.v1.commons.RoleId(t)):[cn.docs.v1.commons.RoleId(e)]}function end(e){if(e==null)return;let t=[];if(Object.keys(e).forEach(r=>{let n=e[r];n!=null&&t.push({type:r,value:cn.Url(n)})}),t.length!==0)return t}async function tnd(e,t,r){if(e!=null)return rnd(e,r),{"og:site_name":e.ogSiteName,"og:title":e.ogTitle,"og:description":e.ogDescription,"og:url":e.ogUrl,"og:image":await Gkr(e.ogImage,t),"og:image:width":e.ogImageWidth,"og:image:height":e.ogImageHeight,"og:locale":e.ogLocale,"og:logo":await Gkr(e.ogLogo,t),"twitter:title":e.twitterTitle,"twitter:description":e.twitterDescription,"twitter:image":await Gkr(e.twitterImage,t),"twitter:handle":e.twitterHandle,"twitter:site":e.twitterSite,"twitter:url":e.twitterUrl,"twitter:card":e.twitterCard,"og:dynamic":e.ogDynamic,"og:dynamic:background-image":await Gkr(e.ogDynamicBackgroundImage,t),"og:dynamic:text-color":e.ogDynamicTextColor,"og:dynamic:background-color":e.ogDynamicBackgroundColor,"og:dynamic:logo-color":e.ogDynamicLogoColor,"og:dynamic:show-logo":e.ogDynamicShowLogo,"og:dynamic:show-section":e.ogDynamicShowSection,"og:dynamic:show-description":e.ogDynamicShowDescription,"og:dynamic:show-url":e.ogDynamicShowUrl,"og:dynamic:show-gradient":e.ogDynamicShowGradient,nofollow:void 0,noindex:void 0,canonicalHost:e.canonicalHost}}function rnd(e,t){let r=e.ogDynamic===!0,n=[["og:dynamic:background-image",e.ogDynamicBackgroundImage],["og:dynamic:text-color",e.ogDynamicTextColor],["og:dynamic:background-color",e.ogDynamicBackgroundColor],["og:dynamic:logo-color",e.ogDynamicLogoColor],["og:dynamic:show-logo",e.ogDynamicShowLogo],["og:dynamic:show-section",e.ogDynamicShowSection],["og:dynamic:show-description",e.ogDynamicShowDescription],["og:dynamic:show-url",e.ogDynamicShowUrl],["og:dynamic:show-gradient",e.ogDynamicShowGradient]];if(r&&e.ogImage!=null&&t.logger.warn("[metadata] `og:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image. Remove `og:image` to rely entirely on dynamic generation, or set `og:dynamic: false` to use `og:image` site-wide."),r&&e.twitterImage!=null&&t.logger.warn("[metadata] `twitter:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image."),!r){let i=n.filter(([,o])=>o!=null).map(([o])=>o);i.length>0&&t.logger.warn(`[metadata] The following settings require \`og:dynamic: true\` and will be ignored: ${i.map(o=>`\`${o}\``).join(", ")}.`)}r&&e.ogDynamicShowLogo===!1&&e.ogDynamicLogoColor!=null&&t.logger.warn("[metadata] `og:dynamic:logo-color` has no effect because `og:dynamic:show-logo: false`. Remove one or the other."),e.ogImage==null&&(e.ogImageWidth!=null||e.ogImageHeight!=null)&&t.logger.warn("[metadata] `og:image:width` / `og:image:height` have no effect without `og:image`."),r&&typeof e.ogDynamicTextColor=="string"&&typeof e.ogDynamicBackgroundColor=="string"&&e.ogDynamicTextColor.trim().toLowerCase()===e.ogDynamicBackgroundColor.trim().toLowerCase()&&t.logger.warn(`[metadata] \`og:dynamic:text-color\` and \`og:dynamic:background-color\` are both set to \`${e.ogDynamicTextColor}\`, which will make text invisible in generated OG images.`)}async function Gkr(e,t){if(e==null)return;if(e.startsWith("http"))return{type:"url",value:e};let r=wb(e,t);return await tr(r)?{type:"filepath",value:r}:{type:"url",value:e}}function n1(e){if(e!=null){if(typeof e=="string")return[cn.docs.v1.commons.RoleId(e)];if(e.length!==0)return e.map(cn.docs.v1.commons.RoleId)}}function xQt(e){if(e!=null){if(typeof e=="string")return[e];if(e.length!==0)return e}}function Xfo({context:e,sectionTitle:t,collapsed:r,collapsible:n,collapsedByDefault:i}){n!=null&&r!=null&&e.failAndThrow(`Section "${t}": cannot use both "collapsible" and the deprecated "collapsed" property. Please use "collapsible" and "collapsed-by-default" instead.`,void 0,{code:B.Code.ConfigError}),i!=null&&n!==!0&&e.failAndThrow(`Section "${t}": "collapsed-by-default" requires "collapsible: true". "collapsed-by-default" has no effect on a non-collapsible section.`,void 0,{code:B.Code.ConfigError})}async function nnd({translations:e,defaultLocale:t,pages:r,absolutePathToFernFolder:n,context:i}){if(e==null||e.length===0)return;let o=K7.default.join(n,"translations"),s={},a=e.map(c=>bh.DocsYmlSchemas.normalizeTranslationConfig(c));return await Promise.all(a.map(async({lang:c})=>{if(c===t)return;let u=K7.default.join(o,c);if(!await tr(u)){i.failAndThrow(`Translation directory for locale "${c}" not found.
465
465
  Expected a directory at: ${u}
466
466
  Create the directory and add translated versions of your documentation pages.
467
467
  The directory should mirror the same relative paths referenced in your docs.yml navigation.
@@ -3036,7 +3036,7 @@ ${EOu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&uko(th
3036
3036
  `+K6e.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?K6e.default.cyan(BOu(t,this.opt.mask)):K6e.default.italic(K6e.default.dim("[hidden]")):this.opt.mask?BOu(t,this.opt.mask):K6e.default.italic(K6e.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 E9r=be(Dw(),1);var OBu=be(qko(),1),y9r=require("child_process"),Vnt=require("fs"),A9r=be(require("path"),1),BBu=be(require("os"),1),PBu=require("crypto"),O2o=be(SBu(),1);var m9r=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var $4t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var h9r=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var g9r=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function b9r(e="",t,r){let n=new B2o(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 TBu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function Mlm(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 B2o=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=Mlm(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??BBu.default.tmpdir(),r=(0,PBu.randomUUID)(),n=TBu(this.fileOptions.prefix),i=TBu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=A9r.default.resolve(t,o),a=A9r.default.resolve(t)+A9r.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,Vnt.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new m9r(t)}}readTemporaryFile(){try{let t=(0,Vnt.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,OBu.detect)(t)??"utf8";O2o.default.encodingExists(r)||(r="utf8"),this.text=O2o.default.decode(t,r)}}catch(t){throw new h9r(t)}}removeTemporaryFile(){try{(0,Vnt.unlinkSync)(this.tempFile)}catch(t){throw new g9r(t)}}launchEditor(){try{let t=(0,y9r.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new $4t(t)}}launchEditorAsync(t){try{(0,y9r.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new $4t(r)}}};var DBu=be(KL(),1);var eUt=class extends Rw{_run(t){this.done=t,this.editorResult=new DBu.Subject;let r=bB(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"?E9r.default.dim("Received"):E9r.default.dim("Press <enter> to launch your preferred editor."),t&&(r=E9r.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),b9r(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 jBu=require("stream");var kBu=be(require("readline"),1),NBu=be(FBu(),1),Z6e=class{constructor(t){this.rl||=kBu.default.createInterface(Ulm(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 Ulm(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 NBu.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var tUt=class extends Z6e{constructor(t={}){super(t),this.log=new jBu.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return z4t(this.rl,this.bottomBar.split(`
3037
3037
  `).length),this}updateBottomBar(t){return z4t(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+`
3038
3038
  `}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&&V8r(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Sd=be(KL(),1),MBu=be(h4t(),1);var I9r=be(KL(),1),QBu=be(h4t(),1),v9r=function(e,t,r){return typeof e[t]!="function"?(0,I9r.of)(e):(0,I9r.from)((0,QBu.default)(e[t])(r).then(n=>(e[t]=n,e)))};var zBu={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}},_nt=class extends Z6e{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,Sd.from)(t):(0,Sd.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,Sd.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,Sd.from)([t]),this.process=n.pipe((0,Sd.concatMap)(this.processQuestion.bind(this)),(0,Sd.publish)()),this.process.connect(),this.process.pipe((0,Sd.reduce)((i,o)=>(zBu.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,Sd.defer)(()=>(0,Sd.of)(t).pipe((0,Sd.concatMap)(this.setDefaultType.bind(this)),(0,Sd.concatMap)(this.filterIfRunnable.bind(this)),(0,Sd.concatMap)(()=>v9r(t,"message",this.answers)),(0,Sd.concatMap)(()=>v9r(t,"default",this.answers)),(0,Sd.concatMap)(()=>v9r(t,"choices",this.answers)),(0,Sd.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Sd.defer)(()=>(0,Sd.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Sd.defer)(()=>(0,Sd.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&zBu.get(this.answers,t.name)!==void 0)return Sd.EMPTY;if(t.when===!1)return Sd.EMPTY;if(typeof t.when!="function")return(0,Sd.of)(t);let{answers:r}=this;return(0,Sd.defer)(()=>(0,Sd.from)((0,MBu.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Sd.filter)(n=>n!=null)))}};function LBu(e){let t=function(r,n){let i;try{i=new _nt(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",L4t),this.registerPrompt("input",H6e),this.registerPrompt("number",U4t),this.registerPrompt("confirm",V4t),this.registerPrompt("rawlist",_4t),this.registerPrompt("expand",q4t),this.registerPrompt("checkbox",G4t),this.registerPrompt("password",W4t),this.registerPrompt("editor",eUt)},t.restoreDefaultPrompts(),t}var D2o=LBu();function _lm(e,t){D2o.registerPrompt(e,t)}function qlm(){D2o.restoreDefaultPrompts()}var Glm={prompt:D2o,ui:{BottomBar:tUt,Prompt:_nt},createPromptModule:LBu,registerPrompt:_lm,restoreDefaultPrompts:qlm,Separator:jQ},cu=Glm;var qnt=require("path");function VBu(){let e=Wlm();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function Wlm(e=process.argv[1]?(0,qnt.dirname)(process.argv[1]):process.cwd(),t=qnt.sep==="\\"){let r=t?UBu(e):e;return n=>{if(!n)return;let i=t?UBu(n):n,{dir:o,base:s,ext:a}=qnt.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 UBu(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var R2o=e=>{if("flags"in e){let t=_Bu(e.flags),r=qBu(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,F2o(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,Hlm(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function Hlm(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 _Bu=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,rUt(r)]).filter(([,t])=>t!==void 0)),qBu=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?F2o(n):void 0]}))};var rUt=e=>e===void 0?void 0:e.variant??e.enabled,F2o=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Hk=(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.LogsQueue="logs_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})({});function k2o(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}var Jlm="NativeGzipValidationError",Ylm=31,Xlm=139,Zlm=8,$lm=e=>e.length>=2&&e[0]===Ylm&&e[1]===Xlm;var nUt,epm=()=>{if(nUt)return nUt;nUt=[];for(let e=0;e<256;e++){let t=e;for(let r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;nUt[e]=t>>>0}return nUt},tpm=e=>{let t=epm(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(4294967295^r)>>>0},x9r=e=>{let t=new Error(`Native gzip produced invalid output: ${e}`);throw t.name=Jlm,t},rpm=async(e,t)=>{e.size<18&&x9r("too-short");let r=new Uint8Array(await e.slice(0,10).arrayBuffer());(!$lm(r)||r[2]!==Zlm)&&x9r("invalid-header");let n=new DataView(await e.slice(e.size-8).arrayBuffer());n.getUint32(0,!0)!==tpm(t)&&x9r("invalid-crc");let i=t.length>>>0;n.getUint32(4,!0)!==i&&x9r("invalid-size")};async function iUt(e,t=!0,r){try{let n=new TextEncoder().encode(e),i=new CompressionStream("gzip"),o=i.writable.getWriter(),s=o.write(n).then(()=>o.close()).catch(async u=>{try{await o.abort(u)}catch{}throw u}),a=new Response(i.readable).blob(),[c]=await Promise.all([a,s]);return await rpm(c,n),c}catch(n){if(r?.rethrow)throw n;return t&&console.error("Failed to gzip compress data",n),null}}var npm=["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"],GBu=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return npm.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var opm=Array.isArray,WBu=Object.prototype,phI=WBu.hasOwnProperty,N2o=WBu.toString,Gnt=opm||function(e){return N2o.call(e)==="[object Array]"};var oUt=e=>e===Object(e)&&!Gnt(e);var Wnt=e=>e===void 0,Eve=e=>N2o.call(e)=="[object String]",HBu=e=>Eve(e)&&e.trim().length===0;var sUt=e=>N2o.call(e)=="[object Number]"&&e===e;var j2o=e=>e instanceof Error;function C9r(e){return e===null||typeof e!="object"}function $6e(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function KBu(e){return $6e(e,"ErrorEvent")}function Hnt(e){return typeof Event<"u"&&spm(e,Event)}function JBu(e){return $6e(e,"Object")}function spm(e,t){try{return e instanceof t}catch{return!1}}function aUt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),sUt(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),aUt(i||r,t,r,n))}var apm=864e5,w9r=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=aUt(t.bucketSize,0,100,t._logger),this._refillRate=aUt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=aUt(t.refillInterval,0,apm,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 S9r="0123456789abcdef",T9r=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+=S9r.charAt(this.bytes[r]>>>4),t+=S9r.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+=S9r.charAt(this.bytes[r]>>>4),t+=S9r.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}},Q2o=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??cpm()}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 T9r.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,T9r.ofInner(t)}},cpm=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),YBu,cee=()=>upm().toString(),upm=()=>(YBu||(YBu=new Q2o)).generate();var O9r=class{add(t){let r=cee();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 lpm(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var XBu=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{debug:(...o)=>{n("debug",...o)},info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>XBu(`${e} ${o}`,t,r)}},ppm=e=>e();function ZBu(e,t=ppm){return XBu(e,t,lpm())}var Jnt="Mobile",P9r="iOS",Knt="Android",$Bu="Tablet",xhI=Knt+" "+$Bu;var dpm="Apple",ChI=dpm+" Watch",ePu="Safari",D9r="BlackBerry",tPu="Samsung",mpm=tPu+"Browser",hpm=tPu+" Internet",R9r="Chrome",gpm=R9r+" OS",Apm=R9r+" "+P9r,rPu="Internet Explorer",ypm=rPu+" "+Jnt,M2o="Opera",whI=M2o+" Mini",nPu="Edge",bpm="Microsoft "+nPu,L2o="Firefox",Epm=L2o+" "+P9r,U2o="Nintendo",V2o="PlayStation",B9r="Xbox",Ipm=Knt+" "+Jnt,vpm=Jnt+" "+ePu,cUt="Windows",xpm=cUt+" Phone";var iPu="Generic",ShI=iPu+" "+Jnt.toLowerCase(),ThI=iPu+" "+$Bu.toLowerCase(),Cpm="Konqueror",wpm="Oculus Browser",TD="(\\d+(\\.\\d+)?)",z2o=new RegExp("Version/"+TD),OhI=new RegExp(B9r,"i"),BhI=new RegExp(V2o+" \\w+","i"),PhI=new RegExp(U2o+" \\w+","i"),Spm=new RegExp(D9r+"|PlayBook|BB10","i"),Tpm={"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 DhI={[ypm]:[new RegExp("rv:"+TD)],[bpm]:[new RegExp(nPu+"?\\/"+TD)],[R9r]:[new RegExp("("+R9r+"|CrMo)\\/"+TD)],[Apm]:[new RegExp("CriOS\\/"+TD)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+TD)],[ePu]:[z2o],[vpm]:[z2o],[M2o]:[new RegExp("("+M2o+"|OPR)\\/"+TD)],[L2o]:[new RegExp(L2o+"\\/"+TD)],[Epm]:[new RegExp("FxiOS\\/"+TD)],[Cpm]:[new RegExp("Konqueror[:/]?"+TD,"i")],[D9r]:[new RegExp(D9r+" "+TD),z2o],[Ipm]:[new RegExp("android\\s"+TD,"i")],[hpm]:[new RegExp(mpm+"\\/"+TD)],[wpm]:[new RegExp("OculusBrowser\\/"+TD)],[rPu]:[new RegExp("(rv:|MSIE )"+TD)],Mozilla:[new RegExp("rv:"+TD)]};var RhI=[[new RegExp(B9r+"; "+B9r+" (.*?)[);]","i"),e=>[B9r,e&&e[1]||""]],[new RegExp(U2o,"i"),[U2o,""]],[new RegExp(V2o,"i"),[V2o,""]],[Spm,[D9r,""]],[new RegExp(cUt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[xpm,""];if(new RegExp(Jnt).test(t)&&!/IEMobile\b/.test(t))return[cUt+" "+Jnt,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=Tpm[n]||"";return/arm/i.test(t)&&(i="RT"),[cUt,i]}return[cUt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[P9r,t.join(".")]}return[P9r,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=Wnt(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Knt+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Knt+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[Knt,t.join(".")]}return[Knt,""]}],[/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/,[gpm,""]],[/Linux|debian/i,["Linux",""]]];var oPu="utf8";function sPu(e){return e?.replace(/\/+$/,"")}async function aPu(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 F9r(){return new Date().toISOString()}function uee(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var cPu=e=>e instanceof Error;function _2o(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var Opm={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},WhI=Opm.info;var k9r=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 tLe=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()}},eLe=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function uPu(e){if(e instanceof tLe){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 N9r(e){return typeof e=="object"&&(e instanceof tLe||e instanceof eLe)}function j9r(e){return typeof e=="object"&&e instanceof tLe&&e.status===413}var uUt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new O9r,this._events=new k9r,this._isInitialized=!1;let n=typeof t=="string"?t.trim():"",i=typeof r.host=="string"?r.host.trim():"",o=!n;this._logger=ZBu("[PostHog]",this.logMsgIfDebug.bind(this)),o&&this._logger.error("You must pass your PostHog project's api key. The client will be disabled."),this.apiKey=n,this.host=sPu(i||"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:N9r},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)||o,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,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=!k2o()||(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(Hk.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(Hk.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(Hk.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};n.$device_id&&(u.$device_id=n.$device_id),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:R2o(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof tLe)return{type:"api_error",statusCode:t.status};if(t instanceof eLe){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=rUt(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.disabled)return[];if(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(Hk.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(Hk.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(Hk.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(Hk.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(Hk.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=uee(()=>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:F9r()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await iUt(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await(await this.fetchWithRetry(a,u)).body?.cancel()?.catch(()=>{})}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:F9r(),uuid:n?.uuid?n.uuid:cee()};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 uPu(t)})}async flush(){if(this.disabled)return;let t=_2o([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),_2o([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(Hk.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(Hk.Queue)||[]).slice(i.length);this.setPersistedProperty(Hk.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:F9r()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await iUt(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},d={retryCheck:f=>j9r(f)?!1:N9r(f)};try{await(await this.fetchWithRetry(u,p,d)).body?.cancel()?.catch(()=>{})}catch(f){if(j9r(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 eLe||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async _sendLogsBatch(t){if(this.disabled)return{kind:"fatal",error:new Error("The client is disabled")};let r=JSON.stringify(t),n=`${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await iUt(r,this.isDebug),o={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...i!==null&&{"Content-Encoding":"gzip"}},body:i||r};try{return await this.fetchWithRetry(n,o,{retryCheck:s=>j9r(s)?!1:N9r(s)}),{kind:"ok"}}catch(s){return j9r(s)?{kind:"too-large"}:s instanceof eLe?{kind:"retry-later",error:s}:{kind:"fatal",error:s}}}async fetchWithRetry(t,r,n,i){let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,oPu)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await aPu(async()=>{let a=new AbortController,c=i??this.requestTimeout,u=uee(()=>a.abort(),c),l=null;try{l=await this.fetch(t,{signal:a.signal,...r})}catch(d){throw new eLe(d)}finally{clearTimeout(u)}if(!(r.mode==="no-cors")&&(l.status<200||l.status>=400))throw new tLe(l,s);return l},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;if(this.clearFlushTimer(),this.disabled)return;let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(Hk.Queue)||[]).length===0||(await this.flush(),r)););}catch(o){if(!N9r(o))throw o;await uPu(o)}},i;try{return await Promise.race([new Promise((o,s)=>{i=uee(()=>{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 zQ={};Z(zQ,{DEFAULT_EXCEPTION_STEPS_CONFIG:()=>U9r,DOMExceptionCoercer:()=>H2o,EXCEPTION_STEP_INTERNAL_FIELDS:()=>lUt,ErrorCoercer:()=>K2o,ErrorEventCoercer:()=>J2o,ErrorPropertiesBuilder:()=>q2o,EventCoercer:()=>Z2o,ExceptionStepsBuffer:()=>nNo,ObjectCoercer:()=>X2o,PrimitiveCoercer:()=>$2o,PromiseRejectionEventCoercer:()=>eNo,ReduceableCache:()=>tNo,StringCoercer:()=>Y2o,chromeStackLineParser:()=>G2o,createDefaultStackParser:()=>Gpm,createStackParser:()=>EPu,geckoStackLineParser:()=>W2o,getUtf8ByteLength:()=>vPu,nodeStackLineParser:()=>gPu,opera10StackLineParser:()=>dPu,opera11StackLineParser:()=>mPu,resolveExceptionStepsConfig:()=>rNo,reverseAndStripFrames:()=>bPu,stripReservedExceptionStepFields:()=>Kpm,winjsStackLineParser:()=>fPu});var Q9r,lPu,z9r;function pPu(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return z9r&&r.length===lPu||(lPu=r.length,z9r=r.reduce((n,i)=>{Q9r||(Q9r={});let o=Q9r[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,Q9r[i]=[u,l];break}}}return n},{})),z9r}var Rpm=4,q2o=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&&Gnt(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:pPu(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=Rpm){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 IB="?";function lee(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?IB:r,in_app:!0};return Wnt(n)||(o.lineno=n),Wnt(i)||(o.colno=i),o}var M9r=(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]:IB,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var Fpm=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,kpm=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Npm=/\((\S*)(?::(\d+))(?::(\d+))\)/,G2o=(e,t)=>{let r=Fpm.exec(e);if(r){let[,i,o,s]=r;return lee(t,i,IB,+o,+s)}let n=kpm.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=Npm.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=M9r(n[1]||IB,n[2]);return lee(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var jpm=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Qpm=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,W2o=(e,t)=>{let r=jpm.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=Qpm.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]||IB;return[o,i]=M9r(o,i),lee(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var zpm=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,fPu=(e,t)=>{let r=zpm.exec(e);return r?lee(t,r[2],r[1]||IB,+r[3],r[4]?+r[4]:void 0):void 0};var Mpm=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,dPu=(e,t)=>{let r=Mpm.exec(e);return r?lee(t,r[2],r[3]||IB,+r[1]):void 0},Lpm=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,mPu=(e,t)=>{let r=Lpm.exec(e);return r?lee(t,r[5],r[3]||r[4]||IB,+r[1],+r[2]):void 0};var Upm=/^\s*[-]{4,}$/,Vpm=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,gPu=(e,t)=>{let r=e.match(Vpm);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||IB,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:hPu(r[3]),colno:hPu(r[4]),in_app:_pm(c||"",u),platform:t}}if(e.match(Upm))return{filename:e,platform:t}};function _pm(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 hPu(e){return parseInt(e||"",10)||void 0}var APu=/\(error: (.*)\)/,yPu=50;function bPu(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,yPu).map(r=>({...r,filename:r.filename||qpm(t).filename,function:r.function||IB}))}function qpm(e){return e[e.length-1]||{}}function Gpm(){return EPu("web:javascript",G2o,W2o)}function EPu(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
3039
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=APu.test(a)?a.replace(APu,"$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>=yPu)break}}return bPu(i)}}var H2o=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Eve(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 $6e(t,"DOMException")}isDOMError(t){return $6e(t,"DOMError")}};var K2o=class{match(t){return j2o(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 J2o=class{constructor(){}match(t){return KBu(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 Wpm=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Y2o=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(Wpm);return i&&(r=i[1],n=i[2]),[r,n]}};var IPu=["fatal","error","warning","log","info","debug"];function L9r(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 X2o=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 Hnt(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=L9r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Eve(t)&&!HBu(t)&&IPu.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(cPu(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Z2o=class{match(t){return Hnt(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${L9r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var $2o=class{match(t){return C9r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var eNo=class{match(t){return $6e(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!Hnt(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 C9r(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 tNo=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 lUt={MESSAGE:"$message",TIMESTAMP:"$timestamp"},Hpm=new Set([lUt.MESSAGE,lUt.TIMESTAMP]),U9r={enabled:!0,max_bytes:32768};function rNo(e){return e?{enabled:e.enabled??U9r.enabled,max_bytes:Jpm(e.max_bytes,U9r.max_bytes)}:{...U9r}}function Kpm(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((n,i)=>Hpm.has(i)?(t.push(i),n):(n[i]=e[i],n),{}),droppedKeys:t}}var nNo=class{constructor(t){this._entries=[],this._totalBytes=0,this._config=rNo(t)}setConfig(t){this._config=rNo(t),this._trimToMaxBytes()}add(t){let r=Ypm(t);if(!r)return;let n=vPu(r.json);n>this._config.max_bytes||(this._entries.push({step:r.step,bytes:n}),this._totalBytes+=n,this._trimToMaxBytes())}getAttachable(){return this._entries.map(t=>t.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let t=this._entries.shift();t&&(this._totalBytes-=t.bytes)}}};function Jpm(e,t){if(!sUt(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}function Ypm(e){let t=Xpm(e);if(t)try{let r=JSON.parse(t);if(!oUt(r))return;let n=r,i=n[lUt.MESSAGE],o=n[lUt.TIMESTAMP];return!Eve(i)||i.trim().length===0||!Eve(o)&&!sUt(o)?void 0:{step:n,json:t}}catch{return}}function Xpm(e){let t=new WeakSet;try{return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString();if(!(typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(n&&typeof n=="object"){if(t.has(n))return"[Circular]";t.add(n)}return n}})}catch{return}}function vPu(e){if(typeof TextEncoder<"u")return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let n=0;n<t.length;n++)t[n]==="%"?(r+=1,n+=2):r+=1;return r}var wPu=require("fs"),SPu=require("readline"),V9r=new zQ.ReduceableCache(25),TPu=new zQ.ReduceableCache(20),iNo=7,Zpm=1e3,$pm=1e4;async function OPu(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"||nfm(s)||ifm(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(TPu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=sfm(o);if(s.every(c=>ofm(i,c)))continue;let a=afm(V9r,i,{});n.push(efm(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&tfm(e,V9r),V9r.reduce(),e}function efm(e,t,r){return new Promise(n=>{let i=(0,wPu.createReadStream)(e),o=(0,SPu.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(){TPu.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]=cfm(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 tfm(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;rfm(r.lineno,r,n)}}function rfm(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=BPu(e);i<e;i++){let o=r[i];if(o===void 0)return void xPu(t);t.pre_context.push(o)}if(r[e]===void 0)return void xPu(t);t.context_line=r[e];let n=PPu(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 xPu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function nfm(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function ifm(e){return e.lineno!==void 0&&e.lineno>$pm||e.colno!==void 0&&e.colno>Zpm}function ofm(e,t){let r=V9r.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 sfm(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=CPu(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+iNo:(i.push(n),n=CPu(o)),t++}return i}function CPu(e){return[BPu(e),PPu(e)]}function BPu(e){return Math.max(1,e-iNo)}function PPu(e){return e+iNo}function afm(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function cfm(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}var Ynt=require("path");function DPu(e=process.cwd()){let t=Ynt.sep==="\\",r=i=>t?i.replace(/\\/g,"/"):i,n=r(e);return async i=>{for(let o of i)!o.filename||o.filename.startsWith("node:")||o.filename.startsWith("data:")||(0,Ynt.isAbsolute)(o.filename)&&(o.filename=r((0,Ynt.relative)(n,r(o.filename))));return i}}function ufm(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 RPu(e,t){globalThis.process?.on("uncaughtException",ufm(e,t))}function FPu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var lfm=2e3,tH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new w9r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return oUt(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()&&(RPu(this.onException.bind(this),this.onFatalError.bind(this)),FPu(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(lfm),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var kPu="5.35.1";var ufe={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};var Xnt=class e{constructor(t){this._host=t.host,this._distinctId=t.distinctId,this._groups=t.groups,this._disableGeoip=t.disableGeoip,this._flags=t.flags,this._requestId=t.requestId,this._evaluatedAt=t.evaluatedAt,this._flagDefinitionsLoadedAt=t.flagDefinitionsLoadedAt,this._errorsWhileComputing=t.errorsWhileComputing??!1,this._quotaLimited=t.quotaLimited??!1,this._accessed=t.accessed??new Set,this._isSlice=t.isSlice??!1}isEnabled(t){let r=this._flags[t];return this._recordAccess(t),r?.enabled??!1}getFlag(t){let r=this._flags[t];if(this._recordAccess(t),!!r)return r.enabled?r.variant??!0:!1}getFlagPayload(t){return this._flags[t]?.payload}onlyAccessed(){let t={};for(let r of this._accessed){let n=this._flags[r];n&&(t[r]=n)}return this._cloneWith(t)}only(t){let r={},n=[];for(let i of t){let o=this._flags[i];o?r[i]=o:n.push(i)}return n.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${n.join(", ")}`),this._cloneWith(r)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let t={},r=[];for(let[n,i]of Object.entries(this._flags)){let o=i.enabled===!1?!1:i.variant??!0;t[`$feature/${n}`]=o,i.enabled&&r.push(n)}return r.length>0&&(r.sort(),t.$active_feature_flags=r),t}_cloneWith(t){return new e({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:t,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(t){if(this._accessed.add(t),this._distinctId===""||this._isSlice&&!(t in this._flags))return;let r=this._flags[t],n=r===void 0?void 0:r.enabled===!1?!1:r.variant??!0,i={$feature_flag:t,$feature_flag_response:n,$feature_flag_id:r?.id,$feature_flag_version:r?.version,$feature_flag_reason:r?.reason,locally_evaluated:r?.locallyEvaluated??!1,[`$feature/${t}`]:n,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:r?.locallyEvaluated?Date.now():this._evaluatedAt};r?.locallyEvaluated&&this._flagDefinitionsLoadedAt!==void 0&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let o=[];this._errorsWhileComputing&&o.push(ufe.ERRORS_WHILE_COMPUTING),this._quotaLimited&&o.push(ufe.QUOTA_LIMITED),r===void 0&&o.push(ufe.FLAG_MISSING),o.length>0&&(i.$feature_flag_error=o.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:t,response:n,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}};async function NPu(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 pfm=6e4,ffm=1152921504606847e3,dfm=["is_not","is_set"],Znt=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Td=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},pee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},_9r=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 pee||u instanceof Td?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 pee||u instanceof Td?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.active)return!1;if(t.ensure_experience_continuity)throw new Td("Flag has experience continuity enabled");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 Td("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 Td(`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 Td("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Td(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Td(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Td(`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 Td(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Td(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Td(`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=o.aggregation_group_type_index,{groups:c,groupProperties:u}=i,l=!1,p;for(let d of s)try{let f=d.aggregation_group_type_index!==void 0?d.aggregation_group_type_index:a,m=n,g=r;if(f!==a&&f!=null){let A=this.groupTypeMapping[String(f)];if(!A||!(A in c)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${t.key}': group type index ${f} not available`));continue}if(!(A in u)){l=!0;continue}m=u[A],g=c[A]}if(await this.isConditionMatch(t,g,d,m,i)){let A=d.variant,y=o.multivariate?.variants||[];p=A&&y.some(E=>E.key===A)?A:await this.getMatchingVariant(t,g)||!0;break}}catch(f){if(f instanceof pee)throw f;if(f instanceof Td)l=!0;else throw f}if(p!==void 0)return p;if(l)throw new Td("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"?await LPu(c,i,this.cohorts,this.debugMode,p=>this.evaluateFlagDependency(p,i,o)):u==="flag"?await this.evaluateFlagDependency(c,i,o):MPu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await jPu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await jPu(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(pfm,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 Znt(`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 Znt(`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 Znt(`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 Znt&&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}/flags/definitions?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=uee(()=>{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 jPu(e,t,r=""){let n=await NPu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/ffm}function MPu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")return!1}else{if(o==="is_not_set")return!0;throw new Td(`Property ${n} not found in propertyValues`)}let s=t[n];if(s==null&&!dfm.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 QPu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return QPu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:parseFloat(String(i)),l;return l=typeof s=="number"?s:s!=null?parseFloat(String(s)):NaN,Number.isFinite(u)&&Number.isFinite(l)?c(l,u,o):c(String(s),String(i),o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Td("Date operations cannot be performed on boolean values");let u=yfm(String(i));if(u==null&&(u=zPu(i)),u==null)throw new Td(`Invalid date: ${i}`);let l=zPu(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return C_(vB(String(s)),vB(String(i)))===0;case"semver_neq":return C_(vB(String(s)),vB(String(i)))!==0;case"semver_gt":return C_(vB(String(s)),vB(String(i)))>0;case"semver_gte":return C_(vB(String(s)),vB(String(i)))>=0;case"semver_lt":return C_(vB(String(s)),vB(String(i)))<0;case"semver_lte":return C_(vB(String(s)),vB(String(i)))<=0;case"semver_tilde":{let u=vB(String(s)),{lower:l,upper:p}=hfm(String(i));return C_(u,l)>=0&&C_(u,p)<0}case"semver_caret":{let u=vB(String(s)),{lower:l,upper:p}=gfm(String(i));return C_(u,l)>=0&&C_(u,p)<0}case"semver_wildcard":{let u=vB(String(s)),{lower:l,upper:p}=Afm(String(i));return C_(u,l)>=0&&C_(u,p)<0}default:throw new Td(`Unknown operator: ${o}`)}}function mfm(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}async function LPu(e,t,r,n=!1,i){let o=String(e.value);mfm(o,r);let s=r[o];return UPu(s,t,r,n,i)}async function UPu(e,t,r,n=!1,i){if(!e)return!0;let o=e.type,s=e.values;if(!s||s.length===0)return!0;let a=!1;if("values"in s[0]){for(let c of s)try{let u=await UPu(c,t,r,n,i);if(o==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof pee)throw u;if(u instanceof Td)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Td("Can't match cohort without a given cohort property value");return o==="AND"}for(let c of s)try{let u;if(c.type==="cohort")u=await LPu(c,t,r,n,i);else if(c.type==="flag"){if(!i)throw new Td(`Flag dependency '${c.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);u=await i(c)}else u=MPu(c,t);let l=c.negation||!1;if(o==="AND"){if(!u&&!l||u&&l)return!1}else if(u&&!l||!u&&l)return!0}catch(u){if(u instanceof pee)throw u;if(u instanceof Td)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Td("can't match cohort without a given cohort property value");return o==="AND"}function QPu(e){try{return new RegExp(e),!0}catch{return!1}}function VPu(e,t){if(!/^\d+$/.test(e))throw new Td(`Invalid semver: ${t}`);if(e.length>1&&e[0]==="0")throw new Td(`Invalid semver: ${t}`);return parseInt(e,10)}function vB(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Td(`Invalid semver: ${e}`);let n=r.split("."),i=c=>c===void 0||c===""?0:VPu(c,e),o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function C_(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 hfm(e){let t=vB(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function gfm(e){let t=vB(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 Afm(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Td(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=c=>{try{return VPu(c,e)}catch{throw new Td(`Invalid wildcard semver: ${e}`)}},o=i(n[0]),s,a;if(n.length===1)s=[o,0,0],a=[o+1,0,0];else{let c=i(n[1]);s=[o,c,0],a=[o,c+1,0]}return{lower:s,upper:a}}function zPu(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 Td(`${e} is in an invalid date format`)}throw new Td(`The date provided ${e} must be a string, number, or date object`)}function yfm(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 q9r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var bfm=100,_Pu=3e4,Efm=5e4,Ifm=50,vfm=500,xfm="https://us.i.posthog.com",qPu=new Set;function G9r(e,t){qPu.has(e)||(qPu.add(e),console.warn(`[PostHog] ${t}`))}function Cfm(e){return typeof e=="string"?e.trim():""}function wfm(e){return(typeof e=="string"?e.trim():"")||void 0}function Sfm(e){return(typeof e=="string"?e.trim():"")||xfm}function Tfm(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))t[`$feature/${n}`]=i;let r=Object.keys(e).filter(n=>e[n]!==!1).sort();return r.length>0&&(t.$active_feature_flags=r),t}var W9r=class extends uUt{constructor(t,r={}){let n=Cfm(t),i={...r,host:Sfm(r.host),personalApiKey:wfm(r.personalApiKey)};if(super(n,i),this._memoryStorage=new q9r,this.options=i,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof i.featureFlagsPollingInterval=="number"?Math.max(i.featureFlagsPollingInterval,bfm):_Pu,typeof i.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),typeof i.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),i.personalApiKey){if(i.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.');i.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new _9r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:n,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:s=>{this._events.emit("error",s)},onLoad:s=>{this._events.emit("localEvaluationFlagsLoaded",s)},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tH(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||Efm}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??vfm,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??Ifm;this._waitUntilCycle.timer=uee(()=>{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 kPu}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};await 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=_Pu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w: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,g,A,y,E,v,I;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(O){m=!0;let P=O.value;E=w.id,I="Evaluated locally",f={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof Td)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=ufe.UNKNOWN_ERROR;else{g=w.requestId,A=w.evaluatedAt;let O=[];w.errorsWhileComputingFlags&&O.push(ufe.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&O.push(ufe.QUOTA_LIMITED);let P=w.flags[t];if(P===void 0)O.push(ufe.FLAG_MISSING);else{E=P.metadata?.id,v=P.metadata?.version,I=P.reason?.description??P.reason?.code;let T;if(P.metadata?.payload!==void 0)try{T=JSON.parse(P.metadata.payload)}catch{T=P.metadata.payload}f={key:t,enabled:P.enabled,variant:P.variant,payload:T}}O.length>0&&(y=O.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:E,$feature_flag_version:v,$feature_flag_reason:I,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:g,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(O.$feature_flag_definitions_loaded_at=P)}y&&(O.$feature_flag_error=y),this._captureFlagCalledEventIfNeeded({distinctId:r,key:t,response:w,groups:s,disableGeoip:a,properties:O})}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){G9r("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");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(G9r("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request."),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){G9r("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return i===void 0?void 0:i.enabled===!1?!1:!!(i.variant??!0)||!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={},g={},A=!0;if(f&&(m=f.response,g=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||{}},g={...g,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(g={...g,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:g}}async evaluateFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags \u2014 pass it explicitly or use withContext()"),new Xnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});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={},m,g,A=!1,y=!1,E=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),v=new Set;if(E)for(let[C,w]of Object.entries(E.response)){let O=this.featureFlagsPoller?.featureFlagsByKey[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:E.payloads[C],id:O?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0},v.add(C)}if((E?E.fallbackToFlags:!0)&&!c){let C=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);if(C){m=C.requestId,g=C.evaluatedAt,A=!!C.errorsWhileComputingFlags,y=Array.isArray(C.quotaLimited)&&C.quotaLimited.includes("feature_flags");for(let[w,O]of Object.entries(C.flags)){if(v.has(w))continue;let P;if(O.metadata?.payload!==void 0)try{P=JSON.parse(O.metadata.payload)}catch{P=O.metadata.payload}f[w]={key:w,enabled:O.enabled,variant:O.variant,payload:P,id:O.metadata?.id,version:O.metadata?.version,reason:O.reason?.description??O.reason?.code,locallyEvaluated:!1}}}}if(this._flagOverrides!==void 0)for(let[C,w]of Object.entries(this._flagOverrides)){if(w===void 0){delete f[C];continue}let O=f[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:O?.payload,id:O?.id,version:O?.version,reason:O?.reason,locallyEvaluated:O?.locallyEvaluated??!1}}if(this._payloadOverrides!==void 0)for(let[C,w]of Object.entries(this._payloadOverrides)){let O=f[C];O&&(f[C]={...O,payload:w})}return new Xnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:n,groups:o,disableGeoip:s,flags:f,requestId:m,evaluatedAt:g,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:A,quotaLimited:y})}_captureFlagCalledEventIfNeeded(t){let{distinctId:r,key:n,response:i,groups:o,disableGeoip:s,properties:a}=t,c=`${n}_${i}`;r in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[r].includes(c)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(c):this.distinctIdHasSentFlagCalls[r]=[c],this.capture({distinctId:r,event:"$feature_flag_called",properties:a,groups:o,disableGeoip:s}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:t=>this._captureFlagCalledEventIfNeeded(t),logWarning:t=>{this.options.featureFlagsLogWarnings!==!1&&console.warn(`[PostHog] ${t}`)}}),this._featureFlagEvaluationsHost}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=uee(()=>{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(JBu(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,o){if(!tH.isPreviouslyCapturedError(t)){let s=new Error("PostHog syntheticException");this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:s},r,n).then(a=>this.capture({...a,uuid:i,flags:o})))}}async captureExceptionImmediate(t,r,n,i){if(!tH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");return this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.captureImmediate({...s,flags:i})))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l}=t,p=this.context?.get(),d=r||p?.distinctId,f={...this.props,...p?.properties||{},...i||{}};d||(d=cee(),f.$process_person_profile=!1),p?.sessionId&&!f.$session_id&&(f.$session_id=p.sessionId);let m=this._runBeforeSend({distinctId:d,event:n,properties:f,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l});if(!m)return Promise.reject(null);let g=await Promise.resolve().then(async()=>{if(s)return a&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),s._getEventProperties();if(a){G9r("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead \u2014 it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");let A=typeof a=="object"?a:void 0,y=await this.getFeatureFlagsForEvent(m.distinctId,o,u,A);return Tfm(y)}return{}}).catch(()=>({})).then(A=>({...A,...m.properties||{},$groups:m.groups||o}));return m.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof g.$raw_user_agent=="string"&&GBu(g.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(m.event="$bot_pageview",g.$browser_type="bot"),{distinctId:m.distinctId,event:m.event,properties:g,options:{timestamp:m.timestamp,disableGeoip:m.disableGeoip,uuid:m.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 GPu=require("async_hooks"),H9r=class{constructor(){this.storage=new GPu.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 WPu="posthog-node";function Ofm(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[oNo.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(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list: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 oNo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=WPu,this.name=WPu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(Ofm(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};tH.errorPropertiesBuilder=new zQ.ErrorPropertiesBuilder([new zQ.EventCoercer,new zQ.ErrorCoercer,new zQ.ObjectCoercer,new zQ.StringCoercer,new zQ.PrimitiveCoercer],zQ.createStackParser("node:javascript",zQ.nodeStackLineParser),[VBu(),OPu,DPu()]);var Ive=class extends W9r{getLibraryId(){return"posthog-node"}initializeContext(){return new H9r}};var K9r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new Ive(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.65.7",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 pUt=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nm();$t();var $nt=require("fs/promises"),HPu=require("os"),KPu=require("path");ztt();var Bfm="id",Pfm=".fern",fUt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new Ive(r),this.userId=t==null?void 0:OBo(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.65.7",...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 If({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=vD(),r=Ge(Lt.of((0,HPu.homedir)()),we.of(Pfm),we.of(Bfm));try{await tr(r)?this.persistedDistinctId=(await(0,$nt.readFile)(r)).toString():(await(0,$nt.mkdir)((0,KPu.dirname)(r),{recursive:!0}),await(0,$nt.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var sNo;async function dUt(){return sNo==null&&(sNo=await Dfm()),sNo}async function Dfm(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new pUt;let r=await mrt();return r!=null?new fUt({token:r,posthogApiKey:e}):await c_()!=null?new K9r({posthogApiKey:e}):new fUt({token:void 0,posthogApiKey:e})}catch{return new pUt}}bn();Rt();jt();xW();var mUt=be(require("process"),1);eGe();var XPu=be(tIo(),1),ZPu=be(YPu(),1);function k1(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=kG(e),e.length===0))return 0;e=e.replace((0,ZPu.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(XPu.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}bn();function J9r(e){let t=0;for(let r of e.split(`
3039
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=APu.test(a)?a.replace(APu,"$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>=yPu)break}}return bPu(i)}}var H2o=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Eve(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 $6e(t,"DOMException")}isDOMError(t){return $6e(t,"DOMError")}};var K2o=class{match(t){return j2o(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 J2o=class{constructor(){}match(t){return KBu(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 Wpm=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Y2o=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(Wpm);return i&&(r=i[1],n=i[2]),[r,n]}};var IPu=["fatal","error","warning","log","info","debug"];function L9r(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 X2o=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 Hnt(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=L9r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Eve(t)&&!HBu(t)&&IPu.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(cPu(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Z2o=class{match(t){return Hnt(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${L9r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var $2o=class{match(t){return C9r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var eNo=class{match(t){return $6e(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!Hnt(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 C9r(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 tNo=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 lUt={MESSAGE:"$message",TIMESTAMP:"$timestamp"},Hpm=new Set([lUt.MESSAGE,lUt.TIMESTAMP]),U9r={enabled:!0,max_bytes:32768};function rNo(e){return e?{enabled:e.enabled??U9r.enabled,max_bytes:Jpm(e.max_bytes,U9r.max_bytes)}:{...U9r}}function Kpm(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((n,i)=>Hpm.has(i)?(t.push(i),n):(n[i]=e[i],n),{}),droppedKeys:t}}var nNo=class{constructor(t){this._entries=[],this._totalBytes=0,this._config=rNo(t)}setConfig(t){this._config=rNo(t),this._trimToMaxBytes()}add(t){let r=Ypm(t);if(!r)return;let n=vPu(r.json);n>this._config.max_bytes||(this._entries.push({step:r.step,bytes:n}),this._totalBytes+=n,this._trimToMaxBytes())}getAttachable(){return this._entries.map(t=>t.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let t=this._entries.shift();t&&(this._totalBytes-=t.bytes)}}};function Jpm(e,t){if(!sUt(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}function Ypm(e){let t=Xpm(e);if(t)try{let r=JSON.parse(t);if(!oUt(r))return;let n=r,i=n[lUt.MESSAGE],o=n[lUt.TIMESTAMP];return!Eve(i)||i.trim().length===0||!Eve(o)&&!sUt(o)?void 0:{step:n,json:t}}catch{return}}function Xpm(e){let t=new WeakSet;try{return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString();if(!(typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(n&&typeof n=="object"){if(t.has(n))return"[Circular]";t.add(n)}return n}})}catch{return}}function vPu(e){if(typeof TextEncoder<"u")return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let n=0;n<t.length;n++)t[n]==="%"?(r+=1,n+=2):r+=1;return r}var wPu=require("fs"),SPu=require("readline"),V9r=new zQ.ReduceableCache(25),TPu=new zQ.ReduceableCache(20),iNo=7,Zpm=1e3,$pm=1e4;async function OPu(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"||nfm(s)||ifm(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(TPu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=sfm(o);if(s.every(c=>ofm(i,c)))continue;let a=afm(V9r,i,{});n.push(efm(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&tfm(e,V9r),V9r.reduce(),e}function efm(e,t,r){return new Promise(n=>{let i=(0,wPu.createReadStream)(e),o=(0,SPu.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(){TPu.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]=cfm(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 tfm(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;rfm(r.lineno,r,n)}}function rfm(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=BPu(e);i<e;i++){let o=r[i];if(o===void 0)return void xPu(t);t.pre_context.push(o)}if(r[e]===void 0)return void xPu(t);t.context_line=r[e];let n=PPu(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 xPu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function nfm(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function ifm(e){return e.lineno!==void 0&&e.lineno>$pm||e.colno!==void 0&&e.colno>Zpm}function ofm(e,t){let r=V9r.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 sfm(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=CPu(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+iNo:(i.push(n),n=CPu(o)),t++}return i}function CPu(e){return[BPu(e),PPu(e)]}function BPu(e){return Math.max(1,e-iNo)}function PPu(e){return e+iNo}function afm(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function cfm(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}var Ynt=require("path");function DPu(e=process.cwd()){let t=Ynt.sep==="\\",r=i=>t?i.replace(/\\/g,"/"):i,n=r(e);return async i=>{for(let o of i)!o.filename||o.filename.startsWith("node:")||o.filename.startsWith("data:")||(0,Ynt.isAbsolute)(o.filename)&&(o.filename=r((0,Ynt.relative)(n,r(o.filename))));return i}}function ufm(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 RPu(e,t){globalThis.process?.on("uncaughtException",ufm(e,t))}function FPu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var lfm=2e3,tH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new w9r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return oUt(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()&&(RPu(this.onException.bind(this),this.onFatalError.bind(this)),FPu(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(lfm),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var kPu="5.35.1";var ufe={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};var Xnt=class e{constructor(t){this._host=t.host,this._distinctId=t.distinctId,this._groups=t.groups,this._disableGeoip=t.disableGeoip,this._flags=t.flags,this._requestId=t.requestId,this._evaluatedAt=t.evaluatedAt,this._flagDefinitionsLoadedAt=t.flagDefinitionsLoadedAt,this._errorsWhileComputing=t.errorsWhileComputing??!1,this._quotaLimited=t.quotaLimited??!1,this._accessed=t.accessed??new Set,this._isSlice=t.isSlice??!1}isEnabled(t){let r=this._flags[t];return this._recordAccess(t),r?.enabled??!1}getFlag(t){let r=this._flags[t];if(this._recordAccess(t),!!r)return r.enabled?r.variant??!0:!1}getFlagPayload(t){return this._flags[t]?.payload}onlyAccessed(){let t={};for(let r of this._accessed){let n=this._flags[r];n&&(t[r]=n)}return this._cloneWith(t)}only(t){let r={},n=[];for(let i of t){let o=this._flags[i];o?r[i]=o:n.push(i)}return n.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${n.join(", ")}`),this._cloneWith(r)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let t={},r=[];for(let[n,i]of Object.entries(this._flags)){let o=i.enabled===!1?!1:i.variant??!0;t[`$feature/${n}`]=o,i.enabled&&r.push(n)}return r.length>0&&(r.sort(),t.$active_feature_flags=r),t}_cloneWith(t){return new e({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:t,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(t){if(this._accessed.add(t),this._distinctId===""||this._isSlice&&!(t in this._flags))return;let r=this._flags[t],n=r===void 0?void 0:r.enabled===!1?!1:r.variant??!0,i={$feature_flag:t,$feature_flag_response:n,$feature_flag_id:r?.id,$feature_flag_version:r?.version,$feature_flag_reason:r?.reason,locally_evaluated:r?.locallyEvaluated??!1,[`$feature/${t}`]:n,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:r?.locallyEvaluated?Date.now():this._evaluatedAt};r?.locallyEvaluated&&this._flagDefinitionsLoadedAt!==void 0&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let o=[];this._errorsWhileComputing&&o.push(ufe.ERRORS_WHILE_COMPUTING),this._quotaLimited&&o.push(ufe.QUOTA_LIMITED),r===void 0&&o.push(ufe.FLAG_MISSING),o.length>0&&(i.$feature_flag_error=o.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:t,response:n,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}};async function NPu(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 pfm=6e4,ffm=1152921504606847e3,dfm=["is_not","is_set"],Znt=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Td=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},pee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},_9r=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 pee||u instanceof Td?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 pee||u instanceof Td?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.active)return!1;if(t.ensure_experience_continuity)throw new Td("Flag has experience continuity enabled");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 Td("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 Td(`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 Td("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Td(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Td(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Td(`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 Td(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Td(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Td(`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=o.aggregation_group_type_index,{groups:c,groupProperties:u}=i,l=!1,p;for(let d of s)try{let f=d.aggregation_group_type_index!==void 0?d.aggregation_group_type_index:a,m=n,g=r;if(f!==a&&f!=null){let A=this.groupTypeMapping[String(f)];if(!A||!(A in c)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${t.key}': group type index ${f} not available`));continue}if(!(A in u)){l=!0;continue}m=u[A],g=c[A]}if(await this.isConditionMatch(t,g,d,m,i)){let A=d.variant,y=o.multivariate?.variants||[];p=A&&y.some(E=>E.key===A)?A:await this.getMatchingVariant(t,g)||!0;break}}catch(f){if(f instanceof pee)throw f;if(f instanceof Td)l=!0;else throw f}if(p!==void 0)return p;if(l)throw new Td("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"?await LPu(c,i,this.cohorts,this.debugMode,p=>this.evaluateFlagDependency(p,i,o)):u==="flag"?await this.evaluateFlagDependency(c,i,o):MPu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await jPu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await jPu(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(pfm,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 Znt(`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 Znt(`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 Znt(`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 Znt&&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}/flags/definitions?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=uee(()=>{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 jPu(e,t,r=""){let n=await NPu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/ffm}function MPu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")return!1}else{if(o==="is_not_set")return!0;throw new Td(`Property ${n} not found in propertyValues`)}let s=t[n];if(s==null&&!dfm.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 QPu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return QPu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:parseFloat(String(i)),l;return l=typeof s=="number"?s:s!=null?parseFloat(String(s)):NaN,Number.isFinite(u)&&Number.isFinite(l)?c(l,u,o):c(String(s),String(i),o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Td("Date operations cannot be performed on boolean values");let u=yfm(String(i));if(u==null&&(u=zPu(i)),u==null)throw new Td(`Invalid date: ${i}`);let l=zPu(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return C_(vB(String(s)),vB(String(i)))===0;case"semver_neq":return C_(vB(String(s)),vB(String(i)))!==0;case"semver_gt":return C_(vB(String(s)),vB(String(i)))>0;case"semver_gte":return C_(vB(String(s)),vB(String(i)))>=0;case"semver_lt":return C_(vB(String(s)),vB(String(i)))<0;case"semver_lte":return C_(vB(String(s)),vB(String(i)))<=0;case"semver_tilde":{let u=vB(String(s)),{lower:l,upper:p}=hfm(String(i));return C_(u,l)>=0&&C_(u,p)<0}case"semver_caret":{let u=vB(String(s)),{lower:l,upper:p}=gfm(String(i));return C_(u,l)>=0&&C_(u,p)<0}case"semver_wildcard":{let u=vB(String(s)),{lower:l,upper:p}=Afm(String(i));return C_(u,l)>=0&&C_(u,p)<0}default:throw new Td(`Unknown operator: ${o}`)}}function mfm(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}async function LPu(e,t,r,n=!1,i){let o=String(e.value);mfm(o,r);let s=r[o];return UPu(s,t,r,n,i)}async function UPu(e,t,r,n=!1,i){if(!e)return!0;let o=e.type,s=e.values;if(!s||s.length===0)return!0;let a=!1;if("values"in s[0]){for(let c of s)try{let u=await UPu(c,t,r,n,i);if(o==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof pee)throw u;if(u instanceof Td)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Td("Can't match cohort without a given cohort property value");return o==="AND"}for(let c of s)try{let u;if(c.type==="cohort")u=await LPu(c,t,r,n,i);else if(c.type==="flag"){if(!i)throw new Td(`Flag dependency '${c.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);u=await i(c)}else u=MPu(c,t);let l=c.negation||!1;if(o==="AND"){if(!u&&!l||u&&l)return!1}else if(u&&!l||!u&&l)return!0}catch(u){if(u instanceof pee)throw u;if(u instanceof Td)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Td("can't match cohort without a given cohort property value");return o==="AND"}function QPu(e){try{return new RegExp(e),!0}catch{return!1}}function VPu(e,t){if(!/^\d+$/.test(e))throw new Td(`Invalid semver: ${t}`);if(e.length>1&&e[0]==="0")throw new Td(`Invalid semver: ${t}`);return parseInt(e,10)}function vB(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Td(`Invalid semver: ${e}`);let n=r.split("."),i=c=>c===void 0||c===""?0:VPu(c,e),o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function C_(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 hfm(e){let t=vB(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function gfm(e){let t=vB(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 Afm(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Td(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=c=>{try{return VPu(c,e)}catch{throw new Td(`Invalid wildcard semver: ${e}`)}},o=i(n[0]),s,a;if(n.length===1)s=[o,0,0],a=[o+1,0,0];else{let c=i(n[1]);s=[o,c,0],a=[o,c+1,0]}return{lower:s,upper:a}}function zPu(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 Td(`${e} is in an invalid date format`)}throw new Td(`The date provided ${e} must be a string, number, or date object`)}function yfm(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 q9r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var bfm=100,_Pu=3e4,Efm=5e4,Ifm=50,vfm=500,xfm="https://us.i.posthog.com",qPu=new Set;function G9r(e,t){qPu.has(e)||(qPu.add(e),console.warn(`[PostHog] ${t}`))}function Cfm(e){return typeof e=="string"?e.trim():""}function wfm(e){return(typeof e=="string"?e.trim():"")||void 0}function Sfm(e){return(typeof e=="string"?e.trim():"")||xfm}function Tfm(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))t[`$feature/${n}`]=i;let r=Object.keys(e).filter(n=>e[n]!==!1).sort();return r.length>0&&(t.$active_feature_flags=r),t}var W9r=class extends uUt{constructor(t,r={}){let n=Cfm(t),i={...r,host:Sfm(r.host),personalApiKey:wfm(r.personalApiKey)};if(super(n,i),this._memoryStorage=new q9r,this.options=i,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof i.featureFlagsPollingInterval=="number"?Math.max(i.featureFlagsPollingInterval,bfm):_Pu,typeof i.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),typeof i.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),i.personalApiKey){if(i.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.');i.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new _9r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:n,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:s=>{this._events.emit("error",s)},onLoad:s=>{this._events.emit("localEvaluationFlagsLoaded",s)},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tH(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||Efm}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??vfm,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??Ifm;this._waitUntilCycle.timer=uee(()=>{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 kPu}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};await 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=_Pu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w: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,g,A,y,E,v,I;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(O){m=!0;let P=O.value;E=w.id,I="Evaluated locally",f={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof Td)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=ufe.UNKNOWN_ERROR;else{g=w.requestId,A=w.evaluatedAt;let O=[];w.errorsWhileComputingFlags&&O.push(ufe.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&O.push(ufe.QUOTA_LIMITED);let P=w.flags[t];if(P===void 0)O.push(ufe.FLAG_MISSING);else{E=P.metadata?.id,v=P.metadata?.version,I=P.reason?.description??P.reason?.code;let T;if(P.metadata?.payload!==void 0)try{T=JSON.parse(P.metadata.payload)}catch{T=P.metadata.payload}f={key:t,enabled:P.enabled,variant:P.variant,payload:T}}O.length>0&&(y=O.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:E,$feature_flag_version:v,$feature_flag_reason:I,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:g,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(O.$feature_flag_definitions_loaded_at=P)}y&&(O.$feature_flag_error=y),this._captureFlagCalledEventIfNeeded({distinctId:r,key:t,response:w,groups:s,disableGeoip:a,properties:O})}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){G9r("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");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(G9r("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request."),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){G9r("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return i===void 0?void 0:i.enabled===!1?!1:!!(i.variant??!0)||!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={},g={},A=!0;if(f&&(m=f.response,g=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||{}},g={...g,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(g={...g,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:g}}async evaluateFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags \u2014 pass it explicitly or use withContext()"),new Xnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});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={},m,g,A=!1,y=!1,E=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),v=new Set;if(E)for(let[C,w]of Object.entries(E.response)){let O=this.featureFlagsPoller?.featureFlagsByKey[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:E.payloads[C],id:O?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0},v.add(C)}if((E?E.fallbackToFlags:!0)&&!c){let C=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);if(C){m=C.requestId,g=C.evaluatedAt,A=!!C.errorsWhileComputingFlags,y=Array.isArray(C.quotaLimited)&&C.quotaLimited.includes("feature_flags");for(let[w,O]of Object.entries(C.flags)){if(v.has(w))continue;let P;if(O.metadata?.payload!==void 0)try{P=JSON.parse(O.metadata.payload)}catch{P=O.metadata.payload}f[w]={key:w,enabled:O.enabled,variant:O.variant,payload:P,id:O.metadata?.id,version:O.metadata?.version,reason:O.reason?.description??O.reason?.code,locallyEvaluated:!1}}}}if(this._flagOverrides!==void 0)for(let[C,w]of Object.entries(this._flagOverrides)){if(w===void 0){delete f[C];continue}let O=f[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:O?.payload,id:O?.id,version:O?.version,reason:O?.reason,locallyEvaluated:O?.locallyEvaluated??!1}}if(this._payloadOverrides!==void 0)for(let[C,w]of Object.entries(this._payloadOverrides)){let O=f[C];O&&(f[C]={...O,payload:w})}return new Xnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:n,groups:o,disableGeoip:s,flags:f,requestId:m,evaluatedAt:g,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:A,quotaLimited:y})}_captureFlagCalledEventIfNeeded(t){let{distinctId:r,key:n,response:i,groups:o,disableGeoip:s,properties:a}=t,c=`${n}_${i}`;r in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[r].includes(c)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(c):this.distinctIdHasSentFlagCalls[r]=[c],this.capture({distinctId:r,event:"$feature_flag_called",properties:a,groups:o,disableGeoip:s}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:t=>this._captureFlagCalledEventIfNeeded(t),logWarning:t=>{this.options.featureFlagsLogWarnings!==!1&&console.warn(`[PostHog] ${t}`)}}),this._featureFlagEvaluationsHost}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=uee(()=>{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(JBu(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,o){if(!tH.isPreviouslyCapturedError(t)){let s=new Error("PostHog syntheticException");this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:s},r,n).then(a=>this.capture({...a,uuid:i,flags:o})))}}async captureExceptionImmediate(t,r,n,i){if(!tH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");return this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.captureImmediate({...s,flags:i})))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l}=t,p=this.context?.get(),d=r||p?.distinctId,f={...this.props,...p?.properties||{},...i||{}};d||(d=cee(),f.$process_person_profile=!1),p?.sessionId&&!f.$session_id&&(f.$session_id=p.sessionId);let m=this._runBeforeSend({distinctId:d,event:n,properties:f,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l});if(!m)return Promise.reject(null);let g=await Promise.resolve().then(async()=>{if(s)return a&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),s._getEventProperties();if(a){G9r("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead \u2014 it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");let A=typeof a=="object"?a:void 0,y=await this.getFeatureFlagsForEvent(m.distinctId,o,u,A);return Tfm(y)}return{}}).catch(()=>({})).then(A=>({...A,...m.properties||{},$groups:m.groups||o}));return m.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof g.$raw_user_agent=="string"&&GBu(g.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(m.event="$bot_pageview",g.$browser_type="bot"),{distinctId:m.distinctId,event:m.event,properties:g,options:{timestamp:m.timestamp,disableGeoip:m.disableGeoip,uuid:m.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 GPu=require("async_hooks"),H9r=class{constructor(){this.storage=new GPu.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 WPu="posthog-node";function Ofm(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[oNo.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(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list: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 oNo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=WPu,this.name=WPu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(Ofm(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};tH.errorPropertiesBuilder=new zQ.ErrorPropertiesBuilder([new zQ.EventCoercer,new zQ.ErrorCoercer,new zQ.ObjectCoercer,new zQ.StringCoercer,new zQ.PrimitiveCoercer],zQ.createStackParser("node:javascript",zQ.nodeStackLineParser),[VBu(),OPu,DPu()]);var Ive=class extends W9r{getLibraryId(){return"posthog-node"}initializeContext(){return new H9r}};var K9r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new Ive(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.65.8",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 pUt=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nm();$t();var $nt=require("fs/promises"),HPu=require("os"),KPu=require("path");ztt();var Bfm="id",Pfm=".fern",fUt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new Ive(r),this.userId=t==null?void 0:OBo(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.65.8",...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 If({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=vD(),r=Ge(Lt.of((0,HPu.homedir)()),we.of(Pfm),we.of(Bfm));try{await tr(r)?this.persistedDistinctId=(await(0,$nt.readFile)(r)).toString():(await(0,$nt.mkdir)((0,KPu.dirname)(r),{recursive:!0}),await(0,$nt.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var sNo;async function dUt(){return sNo==null&&(sNo=await Dfm()),sNo}async function Dfm(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new pUt;let r=await mrt();return r!=null?new fUt({token:r,posthogApiKey:e}):await c_()!=null?new K9r({posthogApiKey:e}):new fUt({token:void 0,posthogApiKey:e})}catch{return new pUt}}bn();Rt();jt();xW();var mUt=be(require("process"),1);eGe();var XPu=be(tIo(),1),ZPu=be(YPu(),1);function k1(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=kG(e),e.length===0))return 0;e=e.replace((0,ZPu.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(XPu.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}bn();function J9r(e){let t=0;for(let r of e.split(`
3040
3040
  `))t=Math.max(t,k1(r));return t}var yDu=be(cNo(),1);var Ffm=/[\p{Lu}]/u,kfm=/[\p{Ll}]/u,tDu=/^[\p{Lu}](?![\p{Lu}])/gu,iDu=/([\p{Alpha}\p{N}_]|$)/u,uNo=/[_.\- ]+/,Nfm=new RegExp("^"+uNo.source),rDu=new RegExp(uNo.source+iDu.source,"gu"),nDu=new RegExp("\\d+"+iDu.source,"gu"),jfm=(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&&Ffm.test(u)?(e=e.slice(0,c)+"-"+e.slice(c),i=!1,s=o,o=!0,c++):o&&s&&kfm.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},Qfm=(e,t)=>(tDu.lastIndex=0,e.replace(tDu,r=>t(r))),zfm=(e,t)=>(rDu.lastIndex=0,nDu.lastIndex=0,e.replace(rDu,(r,n)=>t(n)).replace(nDu,r=>t(r)));function lNo(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?uNo.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=jfm(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(Nfm,""),e=t.preserveConsecutiveUppercase?Qfm(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),zfm(e,n))}var mNo=be(sDu(),1);eGe();var aDu=(e=0)=>t=>`\x1B[${t+e}m`,cDu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,uDu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,B0={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]}},zbI=Object.keys(B0.modifier),Vfm=Object.keys(B0.color),_fm=Object.keys(B0.bgColor),MbI=[...Vfm,..._fm];function qfm(){let e=new Map;for(let[t,r]of Object.entries(B0)){for(let[n,i]of Object.entries(r))B0[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=B0[n],e.set(i[0],i[1]);Object.defineProperty(B0,t,{value:r,enumerable:!1})}return Object.defineProperty(B0,"codes",{value:e,enumerable:!1}),B0.color.close="\x1B[39m",B0.bgColor.close="\x1B[49m",B0.color.ansi=aDu(),B0.color.ansi256=cDu(),B0.color.ansi16m=uDu(),B0.bgColor.ansi=aDu(10),B0.bgColor.ansi256=cDu(10),B0.bgColor.ansi16m=uDu(10),Object.defineProperties(B0,{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=>B0.rgbToAnsi256(...B0.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)=>B0.ansi256ToAnsi(B0.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>B0.ansi256ToAnsi(B0.hexToAnsi256(t)),enumerable:!1}}),B0}var Gfm=qfm(),lDu=Gfm;var Y9r=new Set(["\x1B","\x9B"]),Wfm=39,fNo="\x07",dDu="[",Hfm="]",mDu="m",dNo=`${Hfm}8;;`,pDu=e=>`${Y9r.values().next().value}${dDu}${e}${mDu}`,fDu=e=>`${Y9r.values().next().value}${dNo}${e}${fNo}`,Kfm=e=>e.split(" ").map(t=>k1(t)),pNo=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=k1(kG(e[e.length-1]));for(let[a,c]of n.entries()){let u=k1(c);if(s+u<=r?e[e.length-1]+=c:(e.push(c),s=0),Y9r.has(c)&&(i=!0,o=n.slice(a+1).join("").startsWith(dNo)),i){o?c===fNo&&(i=!1,o=!1):c===mDu&&(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())},Jfm=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(k1(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Yfm=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=Kfm(e),a=[""];for(let[u,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=k1(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(""),pNo(a,l,t);continue}if(p+s[u]>t&&p>0&&s[u]>0){if(r.wordWrap===!1&&p<t){pNo(a,l,t);continue}a.push("")}if(p+s[u]>t&&r.wordWrap===!1){pNo(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(u=>Jfm(u)));let c=[...a.join(`
3041
3041
  `)];for(let[u,l]of c.entries()){if(n+=l,Y9r.has(l)){let{groups:d}=new RegExp(`(?:\\${dDu}(?<code>\\d+)m|\\${dNo}(?<uri>.*)${fNo})`).exec(c.slice(u).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===Wfm?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=lDu.codes.get(Number(i));c[u+1]===`
3042
3042
  `?(o&&(n+=fDu("")),i&&p&&(n+=pDu(p))):l===`
@@ -3608,7 +3608,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
3608
3608
  Add a 'docs:' section to your fern.yml to get started.`,code:B.Code.ConfigError});let o=await new WBe({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&&gXm(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 B({code:B.Code.ValidationError});return}if(c.length>0)for(let p of c){let d=p.severity==="warning"?fe.yellow:fe.red;process.stderr.write(`${d(`${p.displayRelativeFilepath}:${p.line}:${p.column}: ${p.message}`)}
3609
3609
  `)}let l=0;if(o.mdxParseErrors.length>0){for(let p of o.mdxParseErrors)t.stderr.info(`
3610
3610
  ${p.toString()}
3611
- `);r.fix?l+=await fei(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!LYn()&&await dei(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new ibt({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new B({code:B.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Br.warning} ${fe.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(fe.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Br.success} ${fe.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=>gee(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 gXm(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 vJo(e){let t=new IJo;Zn(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}))}gb();jt();var inl=be(require("net"),1),onl=be(require("os"),1),gei=class extends Error{constructor(t){super(`${t} is locked`)}},cbt={old:new Set,young:new Set},AXm=1e3*15,snl=new Set;var r9t,yXm=()=>{let e=onl.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},rnl=e=>new Promise((t,r)=>{let n=inl.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),nnl=async(e,t)=>{if(e.host||e.port===0)return rnl(e);for(let r of t)try{await rnl({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},bXm=e=>cbt.old.has(e)||cbt.young.has(e)||snl.has(e),EXm=function*(e){e&&(yield*e),yield 0};async function KBe(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??{};r9t===void 0&&(r9t=setTimeout(()=>{r9t=void 0,cbt.old=cbt.young,cbt.young=new Set},AXm),r9t.unref&&r9t.unref());let o=yXm();for(let s of EXm(t))try{if(r.has(s))continue;let a=await nnl({...i,port:s},o);for(;bXm(a);){if(s!==0)throw new gei(s);a=await nnl({...i,port:s},o)}return n?snl.add(a):cbt.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof gei))throw a}throw new Error("No available ports found")}jt();var unl=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,anl="docs.buildwithfern.com",cnl=62;function c4e(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)),unl.test(t)}function lnl(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function n9t({orgId:e,previewId:t}){let r=lnl(t),n=`${e}-preview-${r}.${anl}`;if(n.length<=cnl)return n;let i=`${e}-preview-`,o=cnl-i.length;if(o<8)throw new B({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:B.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${anl}`}Rt();xC();zm();$t();Tw();jt();bn();var c$o=require("child_process"),khl=be(wJo(),1),u$o=be(rti(),1),l$o=be(require("fs"),1),k4e=require("fs/promises"),Nhl=be(require("http"),1),jhl=be(require("os"),1),Gri=be(require("path"),1);Ati();$t();var O9=require("fs/promises"),Kcl=require("os"),fXo=be(require("path"),1),ash=".fern",csh="logs",pXo=100*1024*1024;function ush(){return"cli@5.65.7"}var v4e=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??Ge(Ge(Lt.of((0,Kcl.homedir)()),we.of(ash)),we.of(csh));await tr(n)||await(0,O9.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Ge(n,we.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${fXo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
3611
+ `);r.fix?l+=await fei(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!LYn()&&await dei(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new ibt({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new B({code:B.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Br.warning} ${fe.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(fe.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Br.success} ${fe.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=>gee(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 gXm(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 vJo(e){let t=new IJo;Zn(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}))}gb();jt();var inl=be(require("net"),1),onl=be(require("os"),1),gei=class extends Error{constructor(t){super(`${t} is locked`)}},cbt={old:new Set,young:new Set},AXm=1e3*15,snl=new Set;var r9t,yXm=()=>{let e=onl.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},rnl=e=>new Promise((t,r)=>{let n=inl.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),nnl=async(e,t)=>{if(e.host||e.port===0)return rnl(e);for(let r of t)try{await rnl({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},bXm=e=>cbt.old.has(e)||cbt.young.has(e)||snl.has(e),EXm=function*(e){e&&(yield*e),yield 0};async function KBe(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??{};r9t===void 0&&(r9t=setTimeout(()=>{r9t=void 0,cbt.old=cbt.young,cbt.young=new Set},AXm),r9t.unref&&r9t.unref());let o=yXm();for(let s of EXm(t))try{if(r.has(s))continue;let a=await nnl({...i,port:s},o);for(;bXm(a);){if(s!==0)throw new gei(s);a=await nnl({...i,port:s},o)}return n?snl.add(a):cbt.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof gei))throw a}throw new Error("No available ports found")}jt();var unl=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,anl="docs.buildwithfern.com",cnl=62;function c4e(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)),unl.test(t)}function lnl(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function n9t({orgId:e,previewId:t}){let r=lnl(t),n=`${e}-preview-${r}.${anl}`;if(n.length<=cnl)return n;let i=`${e}-preview-`,o=cnl-i.length;if(o<8)throw new B({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:B.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${anl}`}Rt();xC();zm();$t();Tw();jt();bn();var c$o=require("child_process"),khl=be(wJo(),1),u$o=be(rti(),1),l$o=be(require("fs"),1),k4e=require("fs/promises"),Nhl=be(require("http"),1),jhl=be(require("os"),1),Gri=be(require("path"),1);Ati();$t();var O9=require("fs/promises"),Kcl=require("os"),fXo=be(require("path"),1),ash=".fern",csh="logs",pXo=100*1024*1024;function ush(){return"cli@5.65.8"}var v4e=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??Ge(Ge(Lt.of((0,Kcl.homedir)()),we.of(ash)),we.of(csh));await tr(n)||await(0,O9.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Ge(n,we.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${fXo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
3612
3612
  `);await(0,O9.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)+`
3613
3613
  `;try{await(0,O9.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:ush(),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,O9.readdir)(t)).filter(c=>c.endsWith(".log")),i=[];for(let c of n){let u=fXo.default.join(t,c);try{let l=await(0,O9.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=pXo/1024/1024;if(o<=pXo){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<=pXo)break;if(!(this.logFilePath!=null&&c.fullPath===this.logFilePath))try{await(0,O9.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 yti={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function Jcl(e){let t=lsh();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:yti});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",...yti}})}catch{return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...yti}})}let d=/^\/_local\/(.*)/.exec(p.pathname);return u.method==="GET"&&d!=null?new Response(t.file(`/${d[1]}`),{headers:yti}):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 v4e.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 lsh(){return globalThis.Bun}jt();var mul=require("events"),xti=be(require("fs"),1),C4e=be(require("path"),1);var Ycl=be(require("os"),1),Xcl=300,nPe=20,j9t=1e7,Zcl=Ycl.default.platform();var psh=Zcl==="darwin",dXo=Zcl==="win32",iPe=psh||dXo,$cl=3e3,eul=2e4,mXo=1250;var Eie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Eie||(Eie={}));var x4e;(function(e){e.CHANGE="change",e.RENAME="rename"})(x4e||(x4e={}));var Q9t;(function(e){e.CHANGE="change",e.ERROR="error"})(Q9t||(Q9t={}));var Cc;(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"})(Cc||(Cc={}));var tN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(tN||(tN={}));var fsh=(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 I=Date.now(),C=I-c,w=I-u,O=C>=t||w>=o;return[I,O]},p=I=>{if(u=I,!s)return;let C=s;s=void 0,e.apply(void 0,C)},d=()=>{E(0)},f=()=>{a&&(d(),p(Date.now()))},m=I=>{if(u=I,n)return p(I)},g=I=>{if(i&&s)return p(I);s=void 0},A=()=>{a=void 0;let[I,C]=l();return C?g(I):y(I)},y=I=>{let C=I-c,w=I-u,O=t-C,P=o-w,T=Math.min(O,P);return E(T)},E=I=>{a&&clearTimeout(a),!(I<=0)&&(a=setTimeout(A,I))},v=(...I)=>{let[C,w]=l(),O=!!a;if(s=I,c=C,(w||!a)&&E(t),w)return O?p(C):m(C)};return v.cancel=d,v.flush=f,v},bti=fsh;var yXo=be(require("fs"),1),Iti=be(require("path"),1);var Pd=be(require("fs"),1),zB=require("util");var Vde=(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 hXo=be(require("process"),1),tul=hXo.default.getuid?!hXo.default.getuid():!1,rul=1e4,nM=()=>{};var z9t={isChangeErrorOk:e=>{if(!z9t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!tul&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!z9t.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(!z9t.isNodeError(e))throw e;if(!z9t.isChangeErrorOk(e))throw e}},Xv=z9t;var gXo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=rul,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()}}}}},nul=new gXo;var _de=(e,t)=>function(n){return function i(...o){return nul.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)})}},qde=(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 dsh={attempt:{chmod:Vde((0,zB.promisify)(Pd.default.chmod),Xv.onChangeError),chown:Vde((0,zB.promisify)(Pd.default.chown),Xv.onChangeError),close:Vde((0,zB.promisify)(Pd.default.close),nM),fsync:Vde((0,zB.promisify)(Pd.default.fsync),nM),mkdir:Vde((0,zB.promisify)(Pd.default.mkdir),nM),realpath:Vde((0,zB.promisify)(Pd.default.realpath),nM),stat:Vde((0,zB.promisify)(Pd.default.stat),nM),unlink:Vde((0,zB.promisify)(Pd.default.unlink),nM),chmodSync:Iie(Pd.default.chmodSync,Xv.onChangeError),chownSync:Iie(Pd.default.chownSync,Xv.onChangeError),closeSync:Iie(Pd.default.closeSync,nM),existsSync:Iie(Pd.default.existsSync,nM),fsyncSync:Iie(Pd.default.fsync,nM),mkdirSync:Iie(Pd.default.mkdirSync,nM),realpathSync:Iie(Pd.default.realpathSync,nM),statSync:Iie(Pd.default.statSync,nM),unlinkSync:Iie(Pd.default.unlinkSync,nM)},retry:{close:_de((0,zB.promisify)(Pd.default.close),Xv.isRetriableError),fsync:_de((0,zB.promisify)(Pd.default.fsync),Xv.isRetriableError),open:_de((0,zB.promisify)(Pd.default.open),Xv.isRetriableError),readFile:_de((0,zB.promisify)(Pd.default.readFile),Xv.isRetriableError),rename:_de((0,zB.promisify)(Pd.default.rename),Xv.isRetriableError),stat:_de((0,zB.promisify)(Pd.default.stat),Xv.isRetriableError),write:_de((0,zB.promisify)(Pd.default.write),Xv.isRetriableError),writeFile:_de((0,zB.promisify)(Pd.default.writeFile),Xv.isRetriableError),closeSync:qde(Pd.default.closeSync,Xv.isRetriableError),fsyncSync:qde(Pd.default.fsyncSync,Xv.isRetriableError),openSync:qde(Pd.default.openSync,Xv.isRetriableError),readFileSync:qde(Pd.default.readFileSync,Xv.isRetriableError),renameSync:qde(Pd.default.renameSync,Xv.isRetriableError),statSync:qde(Pd.default.statSync,Xv.isRetriableError),writeSync:qde(Pd.default.writeSync,Xv.isRetriableError),writeFileSync:qde(Pd.default.writeFileSync,Xv.isRetriableError)}},iul=dsh;var Eti=be(require("fs"),1),M9t=be(require("path"),1);var AXo=()=>{};var msh=()=>{let e=AXo,t=AXo,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}},oul=msh;var hsh=()=>{let{promise:e,resolve:t,isPending:r}=oul(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},sul=hsh;var aul={then:e=>{e()}};var cul=e=>Array.isArray(e)?e:[e],uul=e=>typeof e=="function";var gsh=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=cul(o).map(ne=>uul(ne)?ne:de=>ne.test(de)),a=ne=>s.some(de=>de(ne)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,g={},A=[],y=new Set,E={},v={},I=new Set,C={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:g,symlinks:A,symlinksNames:y,symlinksNamesToPaths:E,map:v},{promise:O,increment:P,decrement:T}=sul(),M=0,K=(ne,de,Oe,ve)=>{I.has(de)||M>=i||(M+=1,ne.directories.push(de),ne.directoriesNames.add(Oe),l.push(de),p.add(Oe),d.propertyIsEnumerable(Oe)||(d[Oe]=[]),d[Oe].push(de),I.add(de),!(ve>=n)&&(M>=i||pe(de,ve+1)))},Y=(ne,de,Oe)=>{I.has(de)||M>=i||(M+=1,ne.files.push(de),ne.filesNames.add(Oe),f.push(de),m.add(Oe),g.propertyIsEnumerable(Oe)||(g[Oe]=[]),g[Oe].push(de),I.add(de))},X=(ne,de,Oe,ve)=>{I.has(de)||M>=i||(M+=1,ne.symlinks.push(de),ne.symlinksNames.add(Oe),A.push(de),y.add(Oe),E.propertyIsEnumerable(Oe)||(E[Oe]=[]),E[Oe].push(de),I.add(de),r&&(ve>=n||M>=i||Ce(de,ve+1)))},se=(ne,de,Oe,ve,ke)=>{c.aborted||a(de)||(ve.isDirectory()?K(ne,de,Oe,ke):ve.isFile()?Y(ne,de,Oe):ve.isSymbolicLink()&&X(ne,de,Oe,ke))},ue=(ne,de,Oe,ve)=>{if(c.aborted)return;let ke=de===M9t.default.sep?"":M9t.default.sep,Ke=Oe.name,st=`${de}${ke}${Ke}`;a(st)||(Oe.isDirectory()?K(ne,st,Ke,ve):Oe.isFile()?Y(ne,st,Ke):Oe.isSymbolicLink()&&X(ne,st,Ke,ve))},ie=(ne,de,Oe,ve)=>{for(let ke=0,Ke=Oe.length;ke<Ke;ke++)ue(ne,de,Oe[ke],ve)},pe=(ne,de)=>{c.aborted||de>n||M>=i||(P(),Eti.default.readdir(ne,{withFileTypes:!0},(Oe,ve)=>{if(Oe||c.aborted||!ve.length)return T();(u(ve)||aul).then(()=>{let Ke=v[ne]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ie(Ke,ne,ve,de),T()})}))},Ce=(ne,de)=>{P(),Eti.default.realpath(ne,(Oe,ve)=>{if(Oe||c.aborted)return T();Eti.default.stat(ve,(ke,Ke)=>{if(ke||c.aborted)return T();let st=M9t.default.basename(ve),It=v[ne]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};se(It,ve,st,Ke,de),T()})})};return(async(ne,de=1)=>(ne=M9t.default.normalize(ne),I.add(ne),pe(ne,de),await O,c.aborted?C:w))(e)},lul=gsh;var vie={lang:{debounce:bti,attempt:e=>{try{return e()}catch(t){return vie.lang.castError(t)}},castArray:e=>vie.lang.isArray(e)?e:[e],castError:e=>vie.lang.isError(e)?e:vie.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(vie.lang.isNaN(e))return vie.lang.isNaN(t);if(vie.lang.isPrimitive(e)||vie.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(Iti.default.sep).length-1),getRealPath:(e,t)=>{try{return t?yXo.default.realpathSync.native(e):yXo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Iti.default.sep&&t.length-e.length>Iti.default.sep.length,poll:(e,t=eul)=>iul.retry.stat(t)(e,{bigint:!0}).catch(vie.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 lul(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Zl=vie;var vti=be(require("path"),1);var bXo=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||Zl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Xcl){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=Zl.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===Cc.CHANGE&&a===Cc.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===Cc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Cc.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??nPe:Math.min(1,this.options.depth??nPe),s=this.options.limit??j9t,[a,c]=await Zl.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())Zl.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(Cc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!iPe&&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(Cc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Cc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(vti.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Cc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(vti.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(Cc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Cc.ADD?this.onTargetAdd(n):r===Cc.ADD_DIR?this.onTargetAddDir(n):r===Cc.CHANGE?this.onTargetChange(n):r===Cc.UNLINK?this.onTargetUnlink(n):r===Cc.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=x4e.CHANGE,r){if(this.watcher.isClosed())return;let n=vti.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){dXo&&t.code==="EPERM"?this.onWatcherChange(x4e.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Q9t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Q9t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(x4e.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&iPe&&this.options.native!==!1?this.options.depth??nPe:Math.min(1,this.options.depth??nPe),n=this.options.limit??j9t,[i,o]=await Zl.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(x4e.CHANGE,a,t)}))}}},pul=bXo;var rN={interval:100,intervalId:void 0,fns:new Map,init:()=>{rN.intervalId||(rN.intervalId=setInterval(rN.resolve,rN.interval))},reset:()=>{rN.intervalId&&(clearInterval(rN.intervalId),delete rN.intervalId)},add:(e,t)=>{rN.fns.set(e,Date.now()+t),rN.init()},remove:e=>{rN.fns.delete(e)},resolve:()=>{if(!rN.fns.size)return rN.reset();let e=Date.now();for(let[t,r]of rN.fns)r>=e||(rN.remove(t),t())}},L9t=rN;var U9t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=mXo){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(Zl.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),L9t.remove(u)},u=()=>{c(),a()};L9t.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=mXo){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),L9t.remove(u)},u=()=>{c(),a()};L9t.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,Cc.ADD,Eie.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,Cc.ADD_DIR,Eie.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,Cc.UNLINK,Eie.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,Cc.UNLINK_DIR,Eie.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}}};U9t.DIR_EVENTS={add:Cc.ADD_DIR,rename:Cc.RENAME_DIR,unlink:Cc.UNLINK_DIR};U9t.FILE_EVENTS={add:Cc.ADD,change:Cc.CHANGE,rename:Cc.RENAME,unlink:Cc.UNLINK};var ful=U9t;var EXo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Zl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Zl.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(Zl.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(Zl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Zl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Zl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},IXo=EXo;var vXo=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}},dul=vXo;var xXo=class{constructor(){this.inos={},this.paths=new IXo,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 Zl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new dul(n)}reset(){this.inos={},this.paths=new IXo,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,Cc.ADD,i),[Cc.ADD];if(i.isDirectory())return this.updateIno(t,Cc.ADD_DIR,i),[Cc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Cc.UNLINK,n),[Cc.UNLINK];if(n.isDirectory())return this.updateIno(t,Cc.UNLINK_DIR,n),[Cc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Cc.CHANGE,i),[Cc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Cc.UNLINK,n),this.updateIno(t,Cc.ADD_DIR,i),[Cc.UNLINK,Cc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Cc.UNLINK_DIR,n),this.updateIno(t,Cc.ADD,i),[Cc.UNLINK_DIR,Cc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Cc.UNLINK_DIR,n),this.updateIno(t,Cc.ADD_DIR,i),[Cc.UNLINK_DIR,Cc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Eie.FILE:Eie.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)}}},CXo=xXo;var wXo=class e extends mul.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(tN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(tN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(tN.READY,i)),this._locker=new ful(this),this._roots=new Set,this._poller=new CXo,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&&(Zl.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(tN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Zl.lang.castError(t);return this.emit(tN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(tN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(tN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Zl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Zl.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)Zl.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 pul(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=Zl.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=C4e.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??nPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&iPe&&l.options.native!==!1)))return!0;if(!iPe)break;let u=C4e.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Zl.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||iPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:xti.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=C4e.default.dirname(a),g=a;await this.watchDirectories([m],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||iPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??nPe,a=r.limit??j9t,[c]=await Zl.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=Zl.fs.getDepth(t);for(let p of c){let d=Zl.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(tN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(tN.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=C4e.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new CXo,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 Zl.lang.noop;if(this.pollerExists(t,r))return Zl.lang.noop;let i={...r,interval:r.pollingInterval??$cl},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(tN.CLOSE,a),xti.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(tN.CLOSE,a),xti.default.unwatchFile(t,n)};return Zl.lang.attempt(s),()=>Zl.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=Zl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Zl.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=C4e.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Zl.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=C4e.default.dirname(t);return(await Zl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Zl.lang.noop){if(Zl.lang.isFunction(t))return this.watch([],{},t);if(Zl.lang.isUndefined(t))return this.watch([],r,n);if(Zl.lang.isFunction(r))return this.watch(t,{},r);if(Zl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Zl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Zl.lang.noop&&this.on(tN.ALL,n),r.readdirMap=void 0,this.ready())}},hul=wXo;function Ash(e){return"code"in e&&typeof e.code=="string"}function gul(e){return e instanceof Error?e:new Error(String(e))}function Aul(e){return Ash(e)&&e.code==="ENOSPC"?"Unable to watch Fern docs files for changes because the system limit for file watchers was reached. Close other file-watching processes or increase the file watcher limit, then restart `fern docs dev`.":`Unable to watch Fern docs files for changes: ${e.message}`}async function Cti({absoluteFilePathToFern:e,additionalFilepaths:t,context:r}){let n=new hul([e,...t],{recursive:!0,ignoreInitial:!0,debounce:100,renameDetection:!0}),i=await new Promise(o=>{let s=()=>{n.off("error",a),o(void 0)},a=c=>{n.off("ready",s),o(gul(c))};n.once("ready",s),n.once("error",a)});return i!=null&&(n.close(),r.failAndThrow(Aul(i),i,{code:B.Code.EnvironmentError})),n.on("error",o=>{let s=gul(o);r.failWithoutThrowing(Aul(s),s,{code:B.Code.EnvironmentError}),n.close()}),n}$t();Tw();jt();bn();var bhl=require("child_process"),Qri=be(kXo(),1),Ehl=be(HZo(),1),_E=require("fs"),_B=require("fs/promises"),Ihl=require("os"),iN=be(require("path"),1),vhl=be(fI(),1),xhl=be(yhl(),1),F4e=process.platform==="win32",jri=fe.cyan("[docs]:"),Hlh="etag",Klh=23,i$o=e=>e.padEnd(Klh," "),Jlh="preview",Ylh="app-preview",Xlh="bundle",Zlh=".next",$lh="standalone",eph=".fern",tph="packages/fern-docs/bundle/.next/server/instrumentation.js",rph='Cannot find matching keyid: {"signatures":',nph="ERR_PNPM_IGNORED_BUILDS";function iph(e){try{let r=(0,bhl.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 B({message:`Windows long path support is not enabled. The docs bundle contains deeply nested .pnpm paths that exceed the 260-character MAX_PATH limit.
3614
3614
 
@@ -4187,7 +4187,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
4187
4187
  `);i.failAndThrow(s!=null?`No docs instance found matching '${s}'.
4188
4188
 
4189
4189
  Available instances:
4190
- ${C}`:"No docs instance found. Failed to register.",void 0,{code:B.Code.ConfigError});return}let E=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(v2l);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&x2l(y.url,E,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 I;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),w=()=>N3l({docsWorkspace:n,customDomains:E,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 P=0;;P++)try{I=await w();break}catch(T){if(!(T instanceof vvt)||P>=AWt.length){if(T instanceof vvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:B.Code.NetworkError});throw T}let M=AWt[P]??AWt[AWt.length-1]??6e4,K=M/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${K} minute${K===1?"":"s"} (attempt ${P+1}/${AWt.length})...`),await new Promise(Y=>setTimeout(Y,M))}let O=performance.now()-C;i.logger.debug(`Docs publishing completed in ${O.toFixed(0)}ms`)}),I}jt();var Lpi=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 od({context:this.context,task:this.task});try{let s=await yWt({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.65.7",loginCommand:"fern auth login"});return o.getResult()===Df.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Ln(s)}}}};Rt();bn();var xvt=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(`
4190
+ ${C}`:"No docs instance found. Failed to register.",void 0,{code:B.Code.ConfigError});return}let E=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(v2l);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&x2l(y.url,E,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 I;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),w=()=>N3l({docsWorkspace:n,customDomains:E,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 P=0;;P++)try{I=await w();break}catch(T){if(!(T instanceof vvt)||P>=AWt.length){if(T instanceof vvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:B.Code.NetworkError});throw T}let M=AWt[P]??AWt[AWt.length-1]??6e4,K=M/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${K} minute${K===1?"":"s"} (attempt ${P+1}/${AWt.length})...`),await new Promise(Y=>setTimeout(Y,M))}let O=performance.now()-C;i.logger.debug(`Docs publishing completed in ${O.toFixed(0)}ms`)}),I}jt();var Lpi=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 od({context:this.context,task:this.task});try{let s=await yWt({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.65.8",loginCommand:"fern auth login"});return o.getResult()===Df.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Ln(s)}}}};Rt();bn();var xvt=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(`
4191
4191
  `),this.stream.write(`${fe.cyan("\u25C6")} ${fe.bold(t.title)}
4192
4192
  `),t.subtitle!=null&&this.stream.write(` ${fe.dim(t.subtitle)}
4193
4193
  `),this.stream.write(`
@@ -4836,7 +4836,7 @@ ${r}`}function vyi(e){let t=this,{emitParseErrors:r,...n}={...t.data("settings")
4836
4836
  `),g="";return c&&(g=l.style.error(c)),[`${p} ${f} ${s}`,[m,g].filter(Boolean).join(`
4837
4837
  `)]});var dLg=Ax((e,t)=>{let{validate:r=()=>!0}=e,n=nI(e.theme),[i,o]=Zc("idle"),[s,a]=Zc(),[c,u]=Zc(""),l=hx({status:i,theme:n});gx(async(g,A)=>{if(i==="idle")if(mx(g)){let y=c;o("loading");let E=await r(y);E===!0?(u(y),o("done"),t(y)):(A.write(c),a(E||"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]")}${Qwt}`),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 U5e=be(Dw(),1);var mLg={icon:{cursor:oC.pointer},style:{disabled:e=>U5e.default.dim(`- ${e}`),searchTerm:e=>U5e.default.cyan(e),description:e=>U5e.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${U5e.default.bold(t)} ${U5e.default.dim(r)}`).join(U5e.default.dim(" \u2022 "))},helpMode:"always"};function AFs(e){return!fd.isSeparator(e)&&!e.disabled}function hLg(e){return e.map(t=>{if(fd.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 gLg=Ax((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,i=nI(mLg,e.theme),[o,s]=Zc("loading"),[a,c]=Zc(""),[u,l]=Zc([]),[p,d]=Zc(),f=hx({status:o,theme:i}),m=t6(()=>{let M=u.findIndex(AFs),K=u.findLastIndex(AFs);return{first:M,last:K}},[u]),[g=m.first,A]=Zc();e4(()=>{let M=new AbortController;return s("loading"),d(void 0),(async()=>{try{let Y=await e.source(a||void 0,{signal:M.signal});M.signal.aborted||(A(void 0),d(void 0),l(hLg(Y)),s("idle"))}catch(Y){!M.signal.aborted&&Y instanceof Error&&d(Y.message)}})(),()=>{M.abort()}},[a]);let y=u[g];gx(async(M,K)=>{if(mx(M))if(y){s("loading");let Y=await n(y.value);s("idle"),Y===!0?(s("done"),t(y.value)):y.name===a?d(Y||"You must provide a valid value"):(K.write(y.name),c(y.name))}else K.write(a);else if(Phe(M)&&y)K.clearLine(0),K.write(y.name),c(y.name);else if(o!=="loading"&&(nP(M)||e6(M))){if(K.clearLine(0),nP(M)&&g!==m.first||e6(M)&&g!==m.last){let Y=nP(M)?-1:1,X=g;do X=(X+Y+u.length)%u.length;while(!AFs(u[X]));A(X)}}else c(K.line)});let E=i.style.message(e.message,o),v;if(i.helpMode!=="never")if(e.instructions){let{pager:M,navigation:K}=e.instructions;v=i.style.help(u.length>r?M:K)}else v=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let I=Q5e({items:u,active:g,renderItem({item:M,isActive:K}){if(fd.isSeparator(M))return` ${M.separator}`;if(M.disabled){let se=typeof M.disabled=="string"?M.disabled:"(disabled)";return i.style.disabled(`${M.name} ${se}`)}let Y=K?i.style.highlight:se=>se,X=K?i.icon.cursor:" ";return Y(`${X} ${M.name}`)},pageSize:r,loop:!1}),C;p?C=i.style.error(p):u.length===0&&a!==""&&o==="idle"&&(C=i.style.error("No results found"));let w;if(o==="done"&&y)return[f,E,i.style.answer(y.short)].filter(Boolean).join(" ").trimEnd();w=i.style.searchTerm(a);let O=y?.description,P=[f,E,w].filter(Boolean).join(" ").trimEnd(),T=[C??I," ",O?i.style.description(O):"",v].filter(Boolean).join(`
4838
4838
  `).trimEnd();return[P,T]});var Mwt=be(Dw(),1);var ALg={icon:{cursor:oC.pointer},style:{disabled:e=>Mwt.default.dim(`- ${e}`),description:e=>Mwt.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${Mwt.default.bold(t)} ${Mwt.default.dim(r)}`).join(Mwt.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function zwt(e){return!fd.isSeparator(e)&&!e.disabled}function yLg(e){return e.map(t=>{if(fd.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 yFs=Ax((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=nI(ALg,e.theme),{keybindings:o}=i,[s,a]=Zc("idle"),c=hx({status:s,theme:i}),u=j5e(),l=!o.includes("vim"),p=t6(()=>yLg(e.choices),[e.choices]),d=t6(()=>{let O=p.findIndex(zwt),P=p.findLastIndex(zwt);if(O===-1)throw new bae("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:P}},[p]),f=t6(()=>"default"in e?p.findIndex(O=>zwt(O)&&O.value===e.default):-1,[e.default,p]),[m,g]=Zc(f===-1?d.first:f),A=p[m];gx((O,P)=>{if(clearTimeout(u.current),mx(O))a("done"),t(A.value);else if(nP(O,o)||e6(O,o)){if(P.clearLine(0),r||nP(O,o)&&m!==d.first||e6(O,o)&&m!==d.last){let T=nP(O,o)?-1:1,M=m;do M=(M+T+p.length)%p.length;while(!zwt(p[M]));g(M)}}else if(GJt(O)&&!Number.isNaN(Number(P.line))){let T=Number(P.line)-1,M=-1,K=p.findIndex(X=>fd.isSeparator(X)?!1:(M++,M===T)),Y=p[K];Y!=null&&zwt(Y)&&g(K),u.current=setTimeout(()=>{P.clearLine(0)},700)}else if(F5e(O))P.clearLine(0);else if(l){let T=P.line.toLowerCase(),M=p.findIndex(K=>fd.isSeparator(K)||!zwt(K)?!1:K.name.toLowerCase().startsWith(T));M!==-1&&g(M),u.current=setTimeout(()=>{P.clearLine(0)},700)}}),e4(()=>()=>{clearTimeout(u.current)},[]);let y=i.style.message(e.message,s),E;if(i.helpMode!=="never")if(e.instructions){let{pager:O,navigation:P}=e.instructions;E=i.style.help(p.length>n?O:P)}else E=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let v=0,I=Q5e({items:p,active:m,renderItem({item:O,isActive:P,index:T}){if(fd.isSeparator(O))return v++,` ${O.separator}`;let M=i.indexMode==="number"?`${T+1-v}. `:"";if(O.disabled){let X=typeof O.disabled=="string"?O.disabled:"(disabled)";return i.style.disabled(`${M}${O.name} ${X}`)}let K=P?i.style.highlight:X=>X,Y=P?i.icon.cursor:" ";return K(`${Y} ${M}${O.name}`)},pageSize:n,loop:r});if(s==="done")return[c,y,i.style.answer(A.short)].filter(Boolean).join(" ");let{description:C}=A;return`${[[c,y].filter(Boolean).join(" "),I," ",C?i.style.description(C):"",E].filter(Boolean).join(`
4839
- `).trimEnd()}${Qwt}`});bn();_i();var Eae={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"},bLg={[Eae.GENERATION_STARTED]:!1,[Eae.GENERATION_COMPLETED]:!1,[Eae.GENERATION_FAILED]:!0,[Eae.VERIFICATION_FAILED]:!0,[Eae.SDK_PR_CREATED]:!1,[Eae.UPGRADE_APPLIED]:!1,[Eae.MAJOR_VERSION_BUMP]:!1};function rop(e){return bLg[e]}function nop(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 iop(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 oop(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 sop(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 aop(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?Eae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?Eae.VERIFICATION_FAILED:Eae.GENERATION_FAILED}var ELg="",ILg="FERN_AUTOMATION_EVENTS_ORIGIN",vLg=3e3,ibi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[ILg]??ELg)),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(),vLg);try{let s={"content-type":"application/json"},a=await c_();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(sop(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function cop(){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.65.7"}}function uop(){return process.env.FERN_AUTOMATION==="true"}var obi=class{constructor(t,r=ibi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=cop()}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:nop(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!rop(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:iop(t,r),context:{automation:oop(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};jt();function sbi(e,t,r){if(t instanceof tu)return;let n=kke(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new B({message:s,code:n});uop()?CLg(i,e,n,s,a):xLg(e,o,n,a)}function xLg(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),oBt(r)&&e.captureException(n,{tags:{"error.code":r}})}function CLg(e,t,r,n,i){let o=aop(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}jt();function V5e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function abi({cliName:e,packageVersion:t,isLocal:r}){return V5e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var cbi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(abi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new B({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:B.Code.ConfigError});this.sentry=ZOt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[k9e(),kge(),Nge(),yge(),Fge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),$Ot()}}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):lO(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(()=>{})}};jt();var ubi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new B({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:B.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()}}};dpe();Rt();gb();jt();bn();var JJt=class{result=Df.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 tu}failWithoutThrowing(t,r,n){this.result=Df.Failure,!(r instanceof tu)&&(t!=null&&(this.lastFailureMessage=t),IMt({message:t,error:r,logger:this.logger}),sbi(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=uv(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new bFs({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${fe.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()===Df.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
4839
+ `).trimEnd()}${Qwt}`});bn();_i();var Eae={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"},bLg={[Eae.GENERATION_STARTED]:!1,[Eae.GENERATION_COMPLETED]:!1,[Eae.GENERATION_FAILED]:!0,[Eae.VERIFICATION_FAILED]:!0,[Eae.SDK_PR_CREATED]:!1,[Eae.UPGRADE_APPLIED]:!1,[Eae.MAJOR_VERSION_BUMP]:!1};function rop(e){return bLg[e]}function nop(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 iop(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 oop(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 sop(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 aop(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?Eae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?Eae.VERIFICATION_FAILED:Eae.GENERATION_FAILED}var ELg="",ILg="FERN_AUTOMATION_EVENTS_ORIGIN",vLg=3e3,ibi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[ILg]??ELg)),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(),vLg);try{let s={"content-type":"application/json"},a=await c_();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(sop(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function cop(){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.65.8"}}function uop(){return process.env.FERN_AUTOMATION==="true"}var obi=class{constructor(t,r=ibi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=cop()}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:nop(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!rop(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:iop(t,r),context:{automation:oop(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};jt();function sbi(e,t,r){if(t instanceof tu)return;let n=kke(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new B({message:s,code:n});uop()?CLg(i,e,n,s,a):xLg(e,o,n,a)}function xLg(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),oBt(r)&&e.captureException(n,{tags:{"error.code":r}})}function CLg(e,t,r,n,i){let o=aop(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}jt();function V5e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function abi({cliName:e,packageVersion:t,isLocal:r}){return V5e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var cbi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(abi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new B({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:B.Code.ConfigError});this.sentry=ZOt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[k9e(),kge(),Nge(),yge(),Fge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),$Ot()}}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):lO(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(()=>{})}};jt();var ubi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new B({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:B.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()}}};dpe();Rt();gb();jt();bn();var JJt=class{result=Df.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 tu}failWithoutThrowing(t,r,n){this.result=Df.Failure,!(r instanceof tu)&&(t!=null&&(this.lastFailureMessage=t),IMt({message:t,error:r,logger:this.logger}),sbi(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=uv(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new bFs({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${fe.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()===Df.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
4840
4840
  `)}},bFs=class extends JJt{name;subtitle;constructor({name:t,subtitle:r,...n}){super(n),this.name=t,this.subtitle=r}start(){return super.start(),this.logAtLevelWithOverrides(Vn.Info,["Started."],{omitOnTTY:!0}),this.flushLogs(),this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.result===Df.Success?this.logAtLevelWithOverrides(Vn.Info,["Finished."],{omitOnTTY:!0}):this.logAtLevelWithOverrides(Vn.Error,["Failed."],{omitOnTTY:!0}),super.finish())}setSubtitle(t){this.subtitle=t}print({spinner:t}){let r=[this.name];return this.subtitle!=null&&r.push(fe.dim(this.subtitle)),r.push(...this.subtasks.map(n=>n.print({spinner:t}))),$N({prefix:this.getIcon({spinner:t}),content:r.join(`
4841
4841
  `)})}printInteractiveTasks({spinner:t}){return this.print({spinner:t})}getIcon({spinner:t}){let r=this.subtasks.length>0;switch(this.status){case"notStarted":return r?fe.dim("\u25B8 "):fe.dim("\u25E6 ");case"running":return r?fe.cyan("\u25BE "):t;case"finished":switch(this.getResult()){case Df.Success:return r?fe.green("\u25BE "):fe.green("\u2713 ");case Df.Failure:return r?fe.red("\u25BE "):fe.red("x ")}}}getResult(){if(this.result===Df.Failure)return Df.Failure;for(let t of this.subtasks)if(t.getResult()===Df.Failure)return Df.Failure;return Df.Success}};jt();var lop=be(yze(),1);bn();function pop(e){return e.filter(t=>t.isUpgradeAvailable).length>0}function wLg(e){return(e.cliUpgradeInfo?.isUpgradeAvailable??!1)||pop(e.generatorUpgradeInfo)}async function fop({cliEnvironment:e,upgradeInfo:t}){if(!wLg(t)||e.packageVersion==t.cliUpgradeInfo?.latestVersion)return;let r=`${fe.underline("Upgrades available")}
4842
4842
 
@@ -4845,7 +4845,7 @@ ${r}`}function vyi(e){let t=this,{emitParseErrors:r,...n}={...t.data("settings")
4845
4845
  Run ${fe.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
4846
4846
  Run ${fe.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),eit(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function EFs({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!pop(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+=`
4847
4847
  ${await SLg(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+fe.dim(a.currentVersion)+fe.reset(" \u2192 ")+fe.green(a.latestVersion);return i+=`
4848
- `,n?eit(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function SLg(e){let r=await new lop.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new B({message:`Generator ${e} not found`,code:B.Code.ConfigError});return r.body.displayName}Qo();qEe();jt();async function TLg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await dop({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=cze(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await s1({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 dop({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=cze(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await s1({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 dop({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 yL({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?BA(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 mop(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=yQ(a.latestVersion,a.previousVersion)}catch{throw new B({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:B.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 lbi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await TLg({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(...mop(u,c,t.logger));else s.push(...mop(a.versions,void 0,t.logger))}return s}jt();j5i();async function Dhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await $Dt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new B({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:B.Code.NetworkError})}}var hop=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],pbi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Vn.Info;isLocal;stdoutRedirector=new ubi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await dUt();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new zMt(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 cbi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new obi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.65.7"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${fe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new tu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof tu)&&(IMt({message:t,error:r,logger:this.logger}),sbi(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)+`
4848
+ `,n?eit(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function SLg(e){let r=await new lop.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new B({message:`Generator ${e} not found`,code:B.Code.ConfigError});return r.body.displayName}Qo();qEe();jt();async function TLg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await dop({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=cze(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await s1({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 dop({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=cze(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await s1({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 dop({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 yL({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?BA(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 mop(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=yQ(a.latestVersion,a.previousVersion)}catch{throw new B({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:B.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 lbi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await TLg({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(...mop(u,c,t.logger));else s.push(...mop(a.versions,void 0,t.logger))}return s}jt();j5i();async function Dhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await $Dt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new B({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:B.Code.NetworkError})}}var hop=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],pbi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Vn.Info;isLocal;stdoutRedirector=new ubi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await dUt();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new zMt(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 cbi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new obi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.65.8"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${fe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new tu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof tu)&&(IMt({message:t,error:r,logger:this.logger}),sbi(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)+`
4849
4849
  `),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 fop({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
4850
4850
  `)||(r+=`
4851
4851
  `),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=DPi(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 JJt(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 tu}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=uv((t,...r)=>this.log(t,...r));stderr=uv((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=t.type==="docs"?"docs":t.workspaceName??"api",n=gop(r),i=1+(this.longestWorkspaceName!=null?gop(this.longestWorkspaceName):n).length,o=n.padEnd(i),s=hop[this.numTasks++%hop.length],a=fe.hex(s)(o);return{...this.constructTaskInit(),logPrefix:a,title:fe.hex(s).bold(r)}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Df.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=>$C.indexOf(i.level)>=$C.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Vn.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 Dhe({cliEnvironment:this.environment,includePreReleases:t}),n=yQ(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await lbi({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await yFs({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:fe.yellow("?"),style:{answer:i=>fe.cyan(i),message:i=>fe.bold(i),highlight:i=>fe.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.65.7",
2
+ "version": "5.65.8",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",