fern-api 5.27.1 → 5.27.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +7 -7
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -71,7 +71,7 @@ ${m.join(`
|
|
|
71
71
|
`;d.forEach(m=>{f+=m}),t.fail(f)}};let c={};o.conflicts=function(p,d){Ks("<string|object> [array|string]",[p,d],arguments.length),typeof p=="object"?Object.keys(p).forEach(f=>{o.conflicts(f,p[f])}):(e.global(p),c[p]||(c[p]=[]),Array.isArray(d)?d.forEach(f=>o.conflicts(p,f)):c[p].push(d))},o.getConflicting=()=>c,o.conflicting=function(p){Object.keys(p).forEach(d=>{c[d]&&c[d].forEach(f=>{f&&p[d]!==void 0&&p[f]!==void 0&&t.fail(n("Arguments %s and %s are mutually exclusive",d,f))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(c).forEach(d=>{c[d].forEach(f=>{f&&p[r.Parser.camelCase(d)]!==void 0&&p[r.Parser.camelCase(f)]!==void 0&&t.fail(n("Arguments %s and %s are mutually exclusive",d,f))})})},o.recommendCommands=function(p,d){d=d.sort((A,y)=>y.length-A.length);let m=null,h=1/0;for(let A=0,y;(y=d[A])!==void 0;A++){let I=_8s(p,y);I<=3&&I<h&&(h=I,m=y)}m&&t.fail(n("Did you mean %s?",m))},o.reset=function(p){return s=uAe(s,d=>!p[d]),c=uAe(c,d=>!p[d]),o};let u=[];return o.freeze=function(){u.push({implied:s,conflicting:c})},o.unfreeze=function(){let p=u.pop();w2(p,void 0,r),{implied:s,conflicting:c}=p},o}var q8s,W8s=K(()=>{"use strict";iir();zGe();V8s();air();q8s=["$0","--","_"]});function VGe(e,t,r,n){fPt=n;let i={};if(Object.prototype.hasOwnProperty.call(e,"extends")){if(typeof e.extends!="string")return i;let o=/\.json|\..*rc$/.test(e.extends),s=null;if(o)s=y5l(t,e.extends);else try{s=require.resolve(e.extends)}catch{return e}A5l(s),KTi.push(s),i=o?JSON.parse(fPt.readFileSync(s,"utf8")):require(e.extends),delete e.extends,i=VGe(i,fPt.path.dirname(s),r,fPt)}return KTi=[],r?H8s(i,e):Object.assign({},i,e)}function A5l(e){if(KTi.indexOf(e)>-1)throw new Ub(`Circular extended configurations: '${e}'.`)}function y5l(e,t){return fPt.path.resolve(e,t)}function H8s(e,t){let r={};function n(i){return i&&typeof i=="object"&&!Array.isArray(i)}Object.assign(r,e);for(let i of Object.keys(t))n(t[i])&&n(r[i])?r[i]=H8s(e[i],t[i]):r[i]=t[i];return r}var KTi,fPt,JTi=K(()=>{"use strict";QGe();KTi=[]});function d7s(e){return(t=[],r=e.process.cwd(),n)=>{let i=new sBi(t,r,n,e);return Object.defineProperty(i,"argv",{get:()=>i.parse(),enumerable:!0}),i.help(),i.version(),i}}function F8s(e){return!!e&&typeof e.getInternalMethods=="function"}var ia,Dt,zI,Z2e,dPt,aU,i3,uir,pAe,$2e,lir,cU,pir,uU,jJ,o3,lU,fir,qGe,KS,sc,dir,mir,s3,eke,GGe,tke,fAe,hir,Qu,rke,nke,ike,jl,gir,QJ,Qv,K8s,J8s,YTi,Y8s,X8s,Z8s,oke,$8s,XTi,e7s,t7s,ZTi,dAe,WGe,$Ti,eBi,tBi,rBi,nBi,r7s,n7s,i7s,o7s,s7s,a7s,c7s,u7s,Air,l7s,ske,p7s,iBi,mPt,oBi,f7s,ake,sBi,qTi=K(()=>{"use strict";VTi();zGe();QGe();j8s();iir();U8s();W8s();air();JTi();LTi();UGe();zTi();GTi();ia=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},Dt=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};K8s=Symbol("copyDoubleDash"),J8s=Symbol("copyDoubleDash"),YTi=Symbol("deleteFromParserHintObject"),Y8s=Symbol("emitWarning"),X8s=Symbol("freeze"),Z8s=Symbol("getDollarZero"),oke=Symbol("getParserConfiguration"),$8s=Symbol("getUsageConfiguration"),XTi=Symbol("guessLocale"),e7s=Symbol("guessVersion"),t7s=Symbol("parsePositionalNumbers"),ZTi=Symbol("pkgUp"),dAe=Symbol("populateParserHintArray"),WGe=Symbol("populateParserHintSingleValueDictionary"),$Ti=Symbol("populateParserHintArrayDictionary"),eBi=Symbol("populateParserHintDictionary"),tBi=Symbol("sanitizeKey"),rBi=Symbol("setKey"),nBi=Symbol("unfreeze"),r7s=Symbol("validateAsync"),n7s=Symbol("getCommandInstance"),i7s=Symbol("getContext"),o7s=Symbol("getHasOutput"),s7s=Symbol("getLoggerInstance"),a7s=Symbol("getParseContext"),c7s=Symbol("getUsageInstance"),u7s=Symbol("getValidationInstance"),Air=Symbol("hasParseCallback"),l7s=Symbol("isGlobalContext"),ske=Symbol("postProcess"),p7s=Symbol("rebase"),iBi=Symbol("reset"),mPt=Symbol("runYargsParserAndExecuteCommands"),oBi=Symbol("runValidation"),f7s=Symbol("setHasOutput"),ake=Symbol("kTrackManuallySetKeys"),sBi=class{constructor(t=[],r,n,i){this.customScriptName=!1,this.parsed=!1,zI.set(this,void 0),Z2e.set(this,void 0),dPt.set(this,{commands:[],fullCommands:[]}),aU.set(this,null),i3.set(this,null),uir.set(this,"show-hidden"),pAe.set(this,null),$2e.set(this,!0),lir.set(this,{}),cU.set(this,!0),pir.set(this,[]),uU.set(this,void 0),jJ.set(this,{}),o3.set(this,!1),lU.set(this,null),fir.set(this,!0),qGe.set(this,void 0),KS.set(this,""),sc.set(this,void 0),dir.set(this,void 0),mir.set(this,{}),s3.set(this,null),eke.set(this,null),GGe.set(this,{}),tke.set(this,{}),fAe.set(this,void 0),hir.set(this,!1),Qu.set(this,void 0),rke.set(this,!1),nke.set(this,!1),ike.set(this,!1),jl.set(this,void 0),gir.set(this,{}),QJ.set(this,null),Qv.set(this,void 0),ia(this,Qu,i,"f"),ia(this,fAe,t,"f"),ia(this,Z2e,r,"f"),ia(this,dir,n,"f"),ia(this,uU,new oir(this),"f"),this.$0=this[Z8s](),this[iBi](),ia(this,zI,Dt(this,zI,"f"),"f"),ia(this,jl,Dt(this,jl,"f"),"f"),ia(this,Qv,Dt(this,Qv,"f"),"f"),ia(this,sc,Dt(this,sc,"f"),"f"),Dt(this,sc,"f").showHiddenOpt=Dt(this,uir,"f"),ia(this,qGe,this[J8s](),"f")}addHelpOpt(t,r){let n="help";return Ks("[string|boolean] [string]",[t,r],arguments.length),Dt(this,lU,"f")&&(this[YTi](Dt(this,lU,"f")),ia(this,lU,null,"f")),t===!1&&r===void 0?this:(ia(this,lU,typeof t=="string"?t:n,"f"),this.boolean(Dt(this,lU,"f")),this.describe(Dt(this,lU,"f"),r||Dt(this,jl,"f").deferY18nLookup("Show help")),this)}help(t,r){return this.addHelpOpt(t,r)}addShowHiddenOpt(t,r){if(Ks("[string|boolean] [string]",[t,r],arguments.length),t===!1&&r===void 0)return this;let n=typeof t=="string"?t:Dt(this,uir,"f");return this.boolean(n),this.describe(n,r||Dt(this,jl,"f").deferY18nLookup("Show hidden options")),Dt(this,sc,"f").showHiddenOpt=n,this}showHidden(t,r){return this.addShowHiddenOpt(t,r)}alias(t,r){return Ks("<object|string|array> [string|array]",[t,r],arguments.length),this[$Ti](this.alias.bind(this),"alias",t,r),this}array(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("array",t),this[ake](t),this}boolean(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("boolean",t),this[ake](t),this}check(t,r){return Ks("<function> [boolean]",[t,r],arguments.length),this.middleware((n,i)=>X2e(()=>t(n,i.getOptions()),o=>(o?(typeof o=="string"||o instanceof Error)&&Dt(this,jl,"f").fail(o.toString(),o):Dt(this,jl,"f").fail(Dt(this,Qu,"f").y18n.__("Argument check failed: %s",t.toString())),n),o=>(Dt(this,jl,"f").fail(o.message?o.message:o.toString(),o),n)),!1,r),this}choices(t,r){return Ks("<object|string|array> [string|array]",[t,r],arguments.length),this[$Ti](this.choices.bind(this),"choices",t,r),this}coerce(t,r){if(Ks("<object|string|array> [function]",[t,r],arguments.length),Array.isArray(t)){if(!r)throw new Ub("coerce callback must be provided");for(let n of t)this.coerce(n,r);return this}else if(typeof t=="object"){for(let n of Object.keys(t))this.coerce(n,t[n]);return this}if(!r)throw new Ub("coerce callback must be provided");return Dt(this,sc,"f").key[t]=!0,Dt(this,uU,"f").addCoerceMiddleware((n,i)=>{let o;return Object.prototype.hasOwnProperty.call(n,t)?X2e(()=>(o=i.getAliases(),r(n[t])),a=>{n[t]=a;let c=i.getInternalMethods().getParserConfiguration()["strip-aliased"];if(o[t]&&c!==!0)for(let u of o[t])n[u]=a;return n},a=>{throw new Ub(a.message)}):n},t),this}conflicts(t,r){return Ks("<string|object> [string|array]",[t,r],arguments.length),Dt(this,Qv,"f").conflicts(t,r),this}config(t="config",r,n){return Ks("[object|string] [string|function] [function]",[t,r,n],arguments.length),typeof t=="object"&&!Array.isArray(t)?(t=VGe(t,Dt(this,Z2e,"f"),this[oke]()["deep-merge-config"]||!1,Dt(this,Qu,"f")),Dt(this,sc,"f").configObjects=(Dt(this,sc,"f").configObjects||[]).concat(t),this):(typeof r=="function"&&(n=r,r=void 0),this.describe(t,r||Dt(this,jl,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(t)?t:[t]).forEach(i=>{Dt(this,sc,"f").config[i]=n||!0}),this)}completion(t,r,n){return Ks("[string] [string|boolean|function] [function]",[t,r,n],arguments.length),typeof r=="function"&&(n=r,r=void 0),ia(this,i3,t||Dt(this,i3,"f")||"completion","f"),!r&&r!==!1&&(r="generate completion script"),this.command(Dt(this,i3,"f"),r),n&&Dt(this,aU,"f").registerFunction(n),this}command(t,r,n,i,o,s){return Ks("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[t,r,n,i,o,s],arguments.length),Dt(this,zI,"f").addHandler(t,r,n,i,o,s),this}commands(t,r,n,i,o,s){return this.command(t,r,n,i,o,s)}commandDir(t,r){Ks("<string> [object]",[t,r],arguments.length);let n=Dt(this,dir,"f")||Dt(this,Qu,"f").require;return Dt(this,zI,"f").addDirectory(t,n,Dt(this,Qu,"f").getCallerFile(),r),this}count(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("count",t),this[ake](t),this}default(t,r,n){return Ks("<object|string|array> [*] [string]",[t,r,n],arguments.length),n&&(MTi(t,Dt(this,Qu,"f")),Dt(this,sc,"f").defaultDescription[t]=n),typeof r=="function"&&(MTi(t,Dt(this,Qu,"f")),Dt(this,sc,"f").defaultDescription[t]||(Dt(this,sc,"f").defaultDescription[t]=Dt(this,jl,"f").functionDescription(r)),r=r.call()),this[WGe](this.default.bind(this),"default",t,r),this}defaults(t,r,n){return this.default(t,r,n)}demandCommand(t=1,r,n,i){return Ks("[number] [number|string] [string|null|undefined] [string|null|undefined]",[t,r,n,i],arguments.length),typeof r!="number"&&(n=r,r=1/0),this.global("_",!1),Dt(this,sc,"f").demandedCommands._={min:t,max:r,minMsg:n,maxMsg:i},this}demand(t,r,n){return Array.isArray(r)?(r.forEach(i=>{w2(n,!0,Dt(this,Qu,"f")),this.demandOption(i,n)}),r=1/0):typeof r!="number"&&(n=r,r=1/0),typeof t=="number"?(w2(n,!0,Dt(this,Qu,"f")),this.demandCommand(t,r,n,n)):Array.isArray(t)?t.forEach(i=>{w2(n,!0,Dt(this,Qu,"f")),this.demandOption(i,n)}):typeof n=="string"?this.demandOption(t,n):(n===!0||typeof n>"u")&&this.demandOption(t),this}demandOption(t,r){return Ks("<object|string|array> [string]",[t,r],arguments.length),this[WGe](this.demandOption.bind(this),"demandedOptions",t,r),this}deprecateOption(t,r){return Ks("<string> [string|boolean]",[t,r],arguments.length),Dt(this,sc,"f").deprecatedOptions[t]=r,this}describe(t,r){return Ks("<object|string|array> [string]",[t,r],arguments.length),this[rBi](t,!0),Dt(this,jl,"f").describe(t,r),this}detectLocale(t){return Ks("<boolean>",[t],arguments.length),ia(this,$2e,t,"f"),this}env(t){return Ks("[string|boolean]",[t],arguments.length),t===!1?delete Dt(this,sc,"f").envPrefix:Dt(this,sc,"f").envPrefix=t||"",this}epilogue(t){return Ks("<string>",[t],arguments.length),Dt(this,jl,"f").epilog(t),this}epilog(t){return this.epilogue(t)}example(t,r){return Ks("<string|array> [string]",[t,r],arguments.length),Array.isArray(t)?t.forEach(n=>this.example(...n)):Dt(this,jl,"f").example(t,r),this}exit(t,r){ia(this,o3,!0,"f"),ia(this,pAe,r,"f"),Dt(this,cU,"f")&&Dt(this,Qu,"f").process.exit(t)}exitProcess(t=!0){return Ks("[boolean]",[t],arguments.length),ia(this,cU,t,"f"),this}fail(t){if(Ks("<function|boolean>",[t],arguments.length),typeof t=="boolean"&&t!==!1)throw new Ub("Invalid first argument. Expected function or boolean 'false'");return Dt(this,jl,"f").failFn(t),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(t,r){return Ks("<array> [function]",[t,r],arguments.length),r?Dt(this,aU,"f").getCompletion(t,r):new Promise((n,i)=>{Dt(this,aU,"f").getCompletion(t,(o,s)=>{o?i(o):n(s)})})}getDemandedOptions(){return Ks([],0),Dt(this,sc,"f").demandedOptions}getDemandedCommands(){return Ks([],0),Dt(this,sc,"f").demandedCommands}getDeprecatedOptions(){return Ks([],0),Dt(this,sc,"f").deprecatedOptions}getDetectLocale(){return Dt(this,$2e,"f")}getExitProcess(){return Dt(this,cU,"f")}getGroups(){return Object.assign({},Dt(this,jJ,"f"),Dt(this,tke,"f"))}getHelp(){if(ia(this,o3,!0,"f"),!Dt(this,jl,"f").hasCachedHelpMessage()){if(!this.parsed){let r=this[mPt](Dt(this,fAe,"f"),void 0,void 0,0,!0);if(_b(r))return r.then(()=>Dt(this,jl,"f").help())}let t=Dt(this,zI,"f").runDefaultBuilderOn(this);if(_b(t))return t.then(()=>Dt(this,jl,"f").help())}return Promise.resolve(Dt(this,jl,"f").help())}getOptions(){return Dt(this,sc,"f")}getStrict(){return Dt(this,rke,"f")}getStrictCommands(){return Dt(this,nke,"f")}getStrictOptions(){return Dt(this,ike,"f")}global(t,r){return Ks("<string|array> [boolean]",[t,r],arguments.length),t=[].concat(t),r!==!1?Dt(this,sc,"f").local=Dt(this,sc,"f").local.filter(n=>t.indexOf(n)===-1):t.forEach(n=>{Dt(this,sc,"f").local.includes(n)||Dt(this,sc,"f").local.push(n)}),this}group(t,r){Ks("<string|array> <string>",[t,r],arguments.length);let n=Dt(this,tke,"f")[r]||Dt(this,jJ,"f")[r];Dt(this,tke,"f")[r]&&delete Dt(this,tke,"f")[r];let i={};return Dt(this,jJ,"f")[r]=(n||[]).concat(t).filter(o=>i[o]?!1:i[o]=!0),this}hide(t){return Ks("<string>",[t],arguments.length),Dt(this,sc,"f").hiddenOptions.push(t),this}implies(t,r){return Ks("<string|object> [number|string|array]",[t,r],arguments.length),Dt(this,Qv,"f").implies(t,r),this}locale(t){return Ks("[string]",[t],arguments.length),t===void 0?(this[XTi](),Dt(this,Qu,"f").y18n.getLocale()):(ia(this,$2e,!1,"f"),Dt(this,Qu,"f").y18n.setLocale(t),this)}middleware(t,r,n){return Dt(this,uU,"f").addMiddleware(t,!!r,n)}nargs(t,r){return Ks("<string|object|array> [number]",[t,r],arguments.length),this[WGe](this.nargs.bind(this),"narg",t,r),this}normalize(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("normalize",t),this}number(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("number",t),this[ake](t),this}option(t,r){if(Ks("<string|object> [object]",[t,r],arguments.length),typeof t=="object")Object.keys(t).forEach(n=>{this.options(n,t[n])});else{typeof r!="object"&&(r={}),this[ake](t),Dt(this,QJ,"f")&&(t==="version"||r?.alias==="version")&&this[Y8s](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
72
72
|
`),void 0,"versionWarning"),Dt(this,sc,"f").key[t]=!0,r.alias&&this.alias(t,r.alias);let n=r.deprecate||r.deprecated;n&&this.deprecateOption(t,n);let i=r.demand||r.required||r.require;i&&this.demand(t,i),r.demandOption&&this.demandOption(t,typeof r.demandOption=="string"?r.demandOption:void 0),r.conflicts&&this.conflicts(t,r.conflicts),"default"in r&&this.default(t,r.default),r.implies!==void 0&&this.implies(t,r.implies),r.nargs!==void 0&&this.nargs(t,r.nargs),r.config&&this.config(t,r.configParser),r.normalize&&this.normalize(t),r.choices&&this.choices(t,r.choices),r.coerce&&this.coerce(t,r.coerce),r.group&&this.group(t,r.group),(r.boolean||r.type==="boolean")&&(this.boolean(t),r.alias&&this.boolean(r.alias)),(r.array||r.type==="array")&&(this.array(t),r.alias&&this.array(r.alias)),(r.number||r.type==="number")&&(this.number(t),r.alias&&this.number(r.alias)),(r.string||r.type==="string")&&(this.string(t),r.alias&&this.string(r.alias)),(r.count||r.type==="count")&&this.count(t),typeof r.global=="boolean"&&this.global(t,r.global),r.defaultDescription&&(Dt(this,sc,"f").defaultDescription[t]=r.defaultDescription),r.skipValidation&&this.skipValidation(t);let o=r.describe||r.description||r.desc,s=Dt(this,jl,"f").getDescriptions();(!Object.prototype.hasOwnProperty.call(s,t)||typeof o=="string")&&this.describe(t,o),r.hidden&&this.hide(t),r.requiresArg&&this.requiresArg(t)}return this}options(t,r){return this.option(t,r)}parse(t,r,n){Ks("[string|array] [function|boolean|object] [function]",[t,r,n],arguments.length),this[X8s](),typeof t>"u"&&(t=Dt(this,fAe,"f")),typeof r=="object"&&(ia(this,eke,r,"f"),r=n),typeof r=="function"&&(ia(this,s3,r,"f"),r=!1),r||ia(this,fAe,t,"f"),Dt(this,s3,"f")&&ia(this,cU,!1,"f");let i=this[mPt](t,!!r),o=this.parsed;return Dt(this,aU,"f").setParsed(this.parsed),_b(i)?i.then(s=>(Dt(this,s3,"f")&&Dt(this,s3,"f").call(this,Dt(this,pAe,"f"),s,Dt(this,KS,"f")),s)).catch(s=>{throw Dt(this,s3,"f")&&Dt(this,s3,"f")(s,this.parsed.argv,Dt(this,KS,"f")),s}).finally(()=>{this[nBi](),this.parsed=o}):(Dt(this,s3,"f")&&Dt(this,s3,"f").call(this,Dt(this,pAe,"f"),i,Dt(this,KS,"f")),this[nBi](),this.parsed=o,i)}parseAsync(t,r,n){let i=this.parse(t,r,n);return _b(i)?i:Promise.resolve(i)}parseSync(t,r,n){let i=this.parse(t,r,n);if(_b(i))throw new Ub(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return i}parserConfiguration(t){return Ks("<object>",[t],arguments.length),ia(this,mir,t,"f"),this}pkgConf(t,r){Ks("<string> [string]",[t,r],arguments.length);let n=null,i=this[ZTi](r||Dt(this,Z2e,"f"));return i[t]&&typeof i[t]=="object"&&(n=VGe(i[t],r||Dt(this,Z2e,"f"),this[oke]()["deep-merge-config"]||!1,Dt(this,Qu,"f")),Dt(this,sc,"f").configObjects=(Dt(this,sc,"f").configObjects||[]).concat(n)),this}positional(t,r){Ks("<string> <object>",[t,r],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];r=uAe(r,(s,a)=>s==="type"&&!["string","number","boolean"].includes(a)?!1:n.includes(s));let i=Dt(this,dPt,"f").fullCommands[Dt(this,dPt,"f").fullCommands.length-1],o=i?Dt(this,zI,"f").cmdToParseOptions(i):{array:[],alias:{},default:{},demand:{}};return LGe(o).forEach(s=>{let a=o[s];Array.isArray(a)?a.indexOf(t)!==-1&&(r[s]=!0):a[t]&&!(s in r)&&(r[s]=a[t])}),this.group(t,Dt(this,jl,"f").getPositionalGroupName()),this.option(t,r)}recommendCommands(t=!0){return Ks("[boolean]",[t],arguments.length),ia(this,hir,t,"f"),this}required(t,r,n){return this.demand(t,r,n)}require(t,r,n){return this.demand(t,r,n)}requiresArg(t){return Ks("<array|string|object> [number]",[t],arguments.length),typeof t=="string"&&Dt(this,sc,"f").narg[t]?this:(this[WGe](this.requiresArg.bind(this),"narg",t,NaN),this)}showCompletionScript(t,r){return Ks("[string] [string]",[t,r],arguments.length),t=t||this.$0,Dt(this,qGe,"f").log(Dt(this,aU,"f").generateCompletionScript(t,r||Dt(this,i3,"f")||"completion")),this}showHelp(t){if(Ks("[string|function]",[t],arguments.length),ia(this,o3,!0,"f"),!Dt(this,jl,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[mPt](Dt(this,fAe,"f"),void 0,void 0,0,!0);if(_b(n))return n.then(()=>{Dt(this,jl,"f").showHelp(t)}),this}let r=Dt(this,zI,"f").runDefaultBuilderOn(this);if(_b(r))return r.then(()=>{Dt(this,jl,"f").showHelp(t)}),this}return Dt(this,jl,"f").showHelp(t),this}scriptName(t){return this.customScriptName=!0,this.$0=t,this}showHelpOnFail(t,r){return Ks("[boolean|string] [string]",[t,r],arguments.length),Dt(this,jl,"f").showHelpOnFail(t,r),this}showVersion(t){return Ks("[string|function]",[t],arguments.length),Dt(this,jl,"f").showVersion(t),this}skipValidation(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("skipValidation",t),this}strict(t){return Ks("[boolean]",[t],arguments.length),ia(this,rke,t!==!1,"f"),this}strictCommands(t){return Ks("[boolean]",[t],arguments.length),ia(this,nke,t!==!1,"f"),this}strictOptions(t){return Ks("[boolean]",[t],arguments.length),ia(this,ike,t!==!1,"f"),this}string(t){return Ks("<array|string>",[t],arguments.length),this[dAe]("string",t),this[ake](t),this}terminalWidth(){return Ks([],0),Dt(this,Qu,"f").process.stdColumns}updateLocale(t){return this.updateStrings(t)}updateStrings(t){return Ks("<object>",[t],arguments.length),ia(this,$2e,!1,"f"),Dt(this,Qu,"f").y18n.updateLocale(t),this}usage(t,r,n,i){if(Ks("<string|null|undefined> [string|boolean] [function|object] [function]",[t,r,n,i],arguments.length),r!==void 0){if(w2(t,null,Dt(this,Qu,"f")),(t||"").match(/^\$0( |$)/))return this.command(t,r,n,i);throw new Ub(".usage() description must start with $0 if being used as alias for .command()")}else return Dt(this,jl,"f").usage(t),this}usageConfiguration(t){return Ks("<object>",[t],arguments.length),ia(this,gir,t,"f"),this}version(t,r,n){let i="version";if(Ks("[boolean|string] [string] [string]",[t,r,n],arguments.length),Dt(this,QJ,"f")&&(this[YTi](Dt(this,QJ,"f")),Dt(this,jl,"f").version(void 0),ia(this,QJ,null,"f")),arguments.length===0)n=this[e7s](),t=i;else if(arguments.length===1){if(t===!1)return this;n=t,t=i}else arguments.length===2&&(n=r,r=void 0);return ia(this,QJ,typeof t=="string"?t:i,"f"),r=r||Dt(this,jl,"f").deferY18nLookup("Show version number"),Dt(this,jl,"f").version(n||void 0),this.boolean(Dt(this,QJ,"f")),this.describe(Dt(this,QJ,"f"),r),this}wrap(t){return Ks("<number|null|undefined>",[t],arguments.length),Dt(this,jl,"f").wrap(t),this}[(zI=new WeakMap,Z2e=new WeakMap,dPt=new WeakMap,aU=new WeakMap,i3=new WeakMap,uir=new WeakMap,pAe=new WeakMap,$2e=new WeakMap,lir=new WeakMap,cU=new WeakMap,pir=new WeakMap,uU=new WeakMap,jJ=new WeakMap,o3=new WeakMap,lU=new WeakMap,fir=new WeakMap,qGe=new WeakMap,KS=new WeakMap,sc=new WeakMap,dir=new WeakMap,mir=new WeakMap,s3=new WeakMap,eke=new WeakMap,GGe=new WeakMap,tke=new WeakMap,fAe=new WeakMap,hir=new WeakMap,Qu=new WeakMap,rke=new WeakMap,nke=new WeakMap,ike=new WeakMap,jl=new WeakMap,gir=new WeakMap,QJ=new WeakMap,Qv=new WeakMap,K8s)](t){if(!t._||!t["--"])return t;t._.push.apply(t._,t["--"]);try{delete t["--"]}catch{}return t}[J8s](){return{log:(...t)=>{this[Air]()||console.log(...t),ia(this,o3,!0,"f"),Dt(this,KS,"f").length&&ia(this,KS,Dt(this,KS,"f")+`
|
|
73
73
|
`,"f"),ia(this,KS,Dt(this,KS,"f")+t.join(" "),"f")},error:(...t)=>{this[Air]()||console.error(...t),ia(this,o3,!0,"f"),Dt(this,KS,"f").length&&ia(this,KS,Dt(this,KS,"f")+`
|
|
74
|
-
`,"f"),ia(this,KS,Dt(this,KS,"f")+t.join(" "),"f")}}}[YTi](t){LGe(Dt(this,sc,"f")).forEach(r=>{if((i=>i==="configObjects")(r))return;let n=Dt(this,sc,"f")[r];Array.isArray(n)?n.includes(t)&&n.splice(n.indexOf(t),1):typeof n=="object"&&delete n[t]}),delete Dt(this,jl,"f").getDescriptions()[t]}[Y8s](t,r,n){Dt(this,lir,"f")[n]||(Dt(this,Qu,"f").process.emitWarning(t,r),Dt(this,lir,"f")[n]=!0)}[X8s](){Dt(this,pir,"f").push({options:Dt(this,sc,"f"),configObjects:Dt(this,sc,"f").configObjects.slice(0),exitProcess:Dt(this,cU,"f"),groups:Dt(this,jJ,"f"),strict:Dt(this,rke,"f"),strictCommands:Dt(this,nke,"f"),strictOptions:Dt(this,ike,"f"),completionCommand:Dt(this,i3,"f"),output:Dt(this,KS,"f"),exitError:Dt(this,pAe,"f"),hasOutput:Dt(this,o3,"f"),parsed:this.parsed,parseFn:Dt(this,s3,"f"),parseContext:Dt(this,eke,"f")}),Dt(this,jl,"f").freeze(),Dt(this,Qv,"f").freeze(),Dt(this,zI,"f").freeze(),Dt(this,uU,"f").freeze()}[Z8s](){let t="",r;return/\b(node|iojs|electron)(\.exe)?$/.test(Dt(this,Qu,"f").process.argv()[0])?r=Dt(this,Qu,"f").process.argv().slice(1,2):r=Dt(this,Qu,"f").process.argv().slice(0,1),t=r.map(n=>{let i=this[p7s](Dt(this,Z2e,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&i.length<n.length?i:n}).join(" ").trim(),Dt(this,Qu,"f").getEnv("_")&&Dt(this,Qu,"f").getProcessArgvBin()===Dt(this,Qu,"f").getEnv("_")&&(t=Dt(this,Qu,"f").getEnv("_").replace(`${Dt(this,Qu,"f").path.dirname(Dt(this,Qu,"f").process.execPath())}/`,"")),t}[oke](){return Dt(this,mir,"f")}[$8s](){return Dt(this,gir,"f")}[XTi](){if(!Dt(this,$2e,"f"))return;let t=Dt(this,Qu,"f").getEnv("LC_ALL")||Dt(this,Qu,"f").getEnv("LC_MESSAGES")||Dt(this,Qu,"f").getEnv("LANG")||Dt(this,Qu,"f").getEnv("LANGUAGE")||"en_US";this.locale(t.replace(/[.:].*/,""))}[e7s](){return this[ZTi]().version||"unknown"}[t7s](t){let r=t["--"]?t["--"]:t._;for(let n=0,i;(i=r[n])!==void 0;n++)Dt(this,Qu,"f").Parser.looksLikeNumber(i)&&Number.isSafeInteger(Math.floor(parseFloat(`${i}`)))&&(r[n]=Number(i));return t}[ZTi](t){let r=t||"*";if(Dt(this,GGe,"f")[r])return Dt(this,GGe,"f")[r];let n={};try{let i=t||Dt(this,Qu,"f").mainFilename;!t&&Dt(this,Qu,"f").path.extname(i)&&(i=Dt(this,Qu,"f").path.dirname(i));let o=Dt(this,Qu,"f").findUp(i,(s,a)=>{if(a.includes("package.json"))return"package.json"});w2(o,void 0,Dt(this,Qu,"f")),n=JSON.parse(Dt(this,Qu,"f").readFileSync(o,"utf8"))}catch{}return Dt(this,GGe,"f")[r]=n||{},Dt(this,GGe,"f")[r]}[dAe](t,r){r=[].concat(r),r.forEach(n=>{n=this[tBi](n),Dt(this,sc,"f")[t].push(n)})}[WGe](t,r,n,i){this[eBi](t,r,n,i,(o,s,a)=>{Dt(this,sc,"f")[o][s]=a})}[$Ti](t,r,n,i){this[eBi](t,r,n,i,(o,s,a)=>{Dt(this,sc,"f")[o][s]=(Dt(this,sc,"f")[o][s]||[]).concat(a)})}[eBi](t,r,n,i,o){if(Array.isArray(n))n.forEach(s=>{t(s,i)});else if((s=>typeof s=="object")(n))for(let s of LGe(n))t(s,n[s]);else o(r,this[tBi](n),i)}[tBi](t){return t==="__proto__"?"___proto___":t}[rBi](t,r){return this[WGe](this[rBi].bind(this),"key",t,r),this}[nBi](){var t,r,n,i,o,s,a,c,u,l,p,d;let f=Dt(this,pir,"f").pop();w2(f,void 0,Dt(this,Qu,"f"));let m;t=this,r=this,n=this,i=this,o=this,s=this,a=this,c=this,u=this,l=this,p=this,d=this,{options:{set value(h){ia(t,sc,h,"f")}}.value,configObjects:m,exitProcess:{set value(h){ia(r,cU,h,"f")}}.value,groups:{set value(h){ia(n,jJ,h,"f")}}.value,output:{set value(h){ia(i,KS,h,"f")}}.value,exitError:{set value(h){ia(o,pAe,h,"f")}}.value,hasOutput:{set value(h){ia(s,o3,h,"f")}}.value,parsed:this.parsed,strict:{set value(h){ia(a,rke,h,"f")}}.value,strictCommands:{set value(h){ia(c,nke,h,"f")}}.value,strictOptions:{set value(h){ia(u,ike,h,"f")}}.value,completionCommand:{set value(h){ia(l,i3,h,"f")}}.value,parseFn:{set value(h){ia(p,s3,h,"f")}}.value,parseContext:{set value(h){ia(d,eke,h,"f")}}.value}=f,Dt(this,sc,"f").configObjects=m,Dt(this,jl,"f").unfreeze(),Dt(this,Qv,"f").unfreeze(),Dt(this,zI,"f").unfreeze(),Dt(this,uU,"f").unfreeze()}[r7s](t,r){return X2e(r,n=>(t(n),n))}getInternalMethods(){return{getCommandInstance:this[n7s].bind(this),getContext:this[i7s].bind(this),getHasOutput:this[o7s].bind(this),getLoggerInstance:this[s7s].bind(this),getParseContext:this[a7s].bind(this),getParserConfiguration:this[oke].bind(this),getUsageConfiguration:this[$8s].bind(this),getUsageInstance:this[c7s].bind(this),getValidationInstance:this[u7s].bind(this),hasParseCallback:this[Air].bind(this),isGlobalContext:this[l7s].bind(this),postProcess:this[ske].bind(this),reset:this[iBi].bind(this),runValidation:this[oBi].bind(this),runYargsParserAndExecuteCommands:this[mPt].bind(this),setHasOutput:this[f7s].bind(this)}}[n7s](){return Dt(this,zI,"f")}[i7s](){return Dt(this,dPt,"f")}[o7s](){return Dt(this,o3,"f")}[s7s](){return Dt(this,qGe,"f")}[a7s](){return Dt(this,eke,"f")||{}}[c7s](){return Dt(this,jl,"f")}[u7s](){return Dt(this,Qv,"f")}[Air](){return!!Dt(this,s3,"f")}[l7s](){return Dt(this,fir,"f")}[ske](t,r,n,i){return n||_b(t)||(r||(t=this[K8s](t)),(this[oke]()["parse-positional-numbers"]||this[oke]()["parse-positional-numbers"]===void 0)&&(t=this[t7s](t)),i&&(t=Y2e(t,this,Dt(this,uU,"f").getMiddleware(),!1))),t}[iBi](t={}){ia(this,sc,Dt(this,sc,"f")||{},"f");let r={};r.local=Dt(this,sc,"f").local||[],r.configObjects=Dt(this,sc,"f").configObjects||[];let n={};r.local.forEach(s=>{n[s]=!0,(t[s]||[]).forEach(a=>{n[a]=!0})}),Object.assign(Dt(this,tke,"f"),Object.keys(Dt(this,jJ,"f")).reduce((s,a)=>{let c=Dt(this,jJ,"f")[a].filter(u=>!(u in n));return c.length>0&&(s[a]=c),s},{})),ia(this,jJ,{},"f");let i=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],o=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];return i.forEach(s=>{r[s]=(Dt(this,sc,"f")[s]||[]).filter(a=>!n[a])}),o.forEach(s=>{r[s]=uAe(Dt(this,sc,"f")[s],a=>!n[a])}),r.envPrefix=Dt(this,sc,"f").envPrefix,ia(this,sc,r,"f"),ia(this,jl,Dt(this,jl,"f")?Dt(this,jl,"f").reset(n):N8s(this,Dt(this,Qu,"f")),"f"),ia(this,Qv,Dt(this,Qv,"f")?Dt(this,Qv,"f").reset(n):G8s(this,Dt(this,jl,"f"),Dt(this,Qu,"f")),"f"),ia(this,zI,Dt(this,zI,"f")?Dt(this,zI,"f").reset():R8s(Dt(this,jl,"f"),Dt(this,Qv,"f"),Dt(this,uU,"f"),Dt(this,Qu,"f")),"f"),Dt(this,aU,"f")||ia(this,aU,z8s(this,Dt(this,jl,"f"),Dt(this,zI,"f"),Dt(this,Qu,"f")),"f"),Dt(this,uU,"f").reset(),ia(this,i3,null,"f"),ia(this,KS,"","f"),ia(this,pAe,null,"f"),ia(this,o3,!1,"f"),this.parsed=!1,this}[p7s](t,r){return Dt(this,Qu,"f").path.relative(t,r)}[mPt](t,r,n,i=0,o=!1){let s=!!n||o;t=t||Dt(this,fAe,"f"),Dt(this,sc,"f").__=Dt(this,Qu,"f").y18n.__,Dt(this,sc,"f").configuration=this[oke]();let a=!!Dt(this,sc,"f").configuration["populate--"],c=Object.assign({},Dt(this,sc,"f").configuration,{"populate--":!0}),u=Dt(this,Qu,"f").Parser.detailed(t,Object.assign({},Dt(this,sc,"f"),{configuration:{"parse-positional-numbers":!1,...c}})),l=Object.assign(u.argv,Dt(this,eke,"f")),p,d=u.aliases,f=!1,m=!1;Object.keys(l).forEach(h=>{h===Dt(this,lU,"f")&&l[h]?f=!0:h===Dt(this,QJ,"f")&&l[h]&&(m=!0)}),l.$0=this.$0,this.parsed=u,i===0&&Dt(this,jl,"f").clearCachedHelpMessage();try{if(this[XTi](),r)return this[ske](l,a,!!n,!1);Dt(this,lU,"f")&&[Dt(this,lU,"f")].concat(d[Dt(this,lU,"f")]||[]).filter(w=>w.length>1).includes(""+l._[l._.length-1])&&(l._.pop(),f=!0),ia(this,fir,!1,"f");let h=Dt(this,zI,"f").getCommands(),A=Dt(this,aU,"f").completionKey in l,y=f||A||o;if(l._.length){if(h.length){let I;for(let w=i||0,C;l._[w]!==void 0;w++)if(C=String(l._[w]),h.includes(C)&&C!==Dt(this,i3,"f")){let x=Dt(this,zI,"f").runCommand(C,this,u,w+1,o,f||m||o);return this[ske](x,a,!!n,!1)}else if(!I&&C!==Dt(this,i3,"f")){I=C;break}!Dt(this,zI,"f").hasDefaultCommand()&&Dt(this,hir,"f")&&I&&!y&&Dt(this,Qv,"f").recommendCommands(I,h)}Dt(this,i3,"f")&&l._.includes(Dt(this,i3,"f"))&&!A&&(Dt(this,cU,"f")&&lAe(!0),this.showCompletionScript(),this.exit(0))}if(Dt(this,zI,"f").hasDefaultCommand()&&!y){let I=Dt(this,zI,"f").runCommand(null,this,u,0,o,f||m||o);return this[ske](I,a,!!n,!1)}if(A){Dt(this,cU,"f")&&lAe(!0),t=[].concat(t);let I=t.slice(t.indexOf(`--${Dt(this,aU,"f").completionKey}`)+1);return Dt(this,aU,"f").getCompletion(I,(w,C)=>{if(w)throw new Ub(w.message);(C||[]).forEach(x=>{Dt(this,qGe,"f").log(x)}),this.exit(0)}),this[ske](l,!a,!!n,!1)}if(Dt(this,o3,"f")||(f?(Dt(this,cU,"f")&&lAe(!0),s=!0,this.showHelp("log"),this.exit(0)):m&&(Dt(this,cU,"f")&&lAe(!0),s=!0,Dt(this,jl,"f").showVersion("log"),this.exit(0))),!s&&Dt(this,sc,"f").skipValidation.length>0&&(s=Object.keys(l).some(I=>Dt(this,sc,"f").skipValidation.indexOf(I)>=0&&l[I]===!0)),!s){if(u.error)throw new Ub(u.error.message);if(!A){let I=this[oBi](d,{},u.error);n||(p=Y2e(l,this,Dt(this,uU,"f").getMiddleware(),!0)),p=this[r7s](I,p??l),_b(p)&&!n&&(p=p.then(()=>Y2e(l,this,Dt(this,uU,"f").getMiddleware(),!1)))}}}catch(h){if(h instanceof Ub)Dt(this,jl,"f").fail(h.message,h);else throw h}return this[ske](p??l,a,!!n,!0)}[oBi](t,r,n,i){let o={...this.getDemandedOptions()};return s=>{if(n)throw new Ub(n.message);Dt(this,Qv,"f").nonOptionCount(s),Dt(this,Qv,"f").requiredArguments(s,o);let a=!1;Dt(this,nke,"f")&&(a=Dt(this,Qv,"f").unknownCommands(s)),Dt(this,rke,"f")&&!a?Dt(this,Qv,"f").unknownArguments(s,t,r,!!i):Dt(this,ike,"f")&&Dt(this,Qv,"f").unknownArguments(s,t,{},!1,!1),Dt(this,Qv,"f").limitedChoices(s),Dt(this,Qv,"f").implications(s),Dt(this,Qv,"f").conflicting(s)}}[f7s](){ia(this,o3,!0,"f")}[ake](t){if(typeof t=="string")Dt(this,sc,"f").key[t]=!0;else for(let r of t)Dt(this,sc,"f").key[r]=!0}}});var m7s={};re(m7s,{default:()=>aBi});var b5l,aBi,cBi=K(()=>{"use strict";QTi();qTi();b5l=d7s(rir),aBi=b5l});var h7s={};re(h7s,{Parser:()=>eir,applyExtends:()=>E5l,hideBin:()=>jGe});var E5l,yir=K(()=>{"use strict";JTi();NTi();kTi();QTi();E5l=(e,t,r)=>VGe(e,t,r,rir)});function HGe(e){return v5l[e]}function I5l(e){return e instanceof Error&&(e.name==="ParseError"||e.name==="JsonError")}function C5l(e){return e instanceof Error&&e.message.includes("globalThis")}function S5l(e){if(!(e instanceof Error))return;let t=e.code;return typeof t=="string"?t:void 0}function KGe(e,t){if(t!=null)return t;if(e instanceof j)return e.code;if(I5l(e))return j.Code.ParseError;if(C5l(e))return j.Code.EnvironmentError;let r=S5l(e);if(r!=null){if(w5l.has(r))return j.Code.EnvironmentError;if(x5l.has(r))return j.Code.NetworkError}return j.Code.InternalError}var j,v5l,w5l,x5l,g7s=K(()=>{"use strict";j=class e extends Error{code;docsLink;constructor({message:t,code:r,docsLink:n}){super(t),Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.docsLink=n}static authRequired(t){return new e({message:t??"Authentication required. Please run 'fern login' or set the FERN_TOKEN environment variable.",code:e.Code.AuthError})}static unauthorized(t){return new e({message:t??"Unauthorized. Please run 'fern auth login' or set the FERN_TOKEN environment variable.",code:e.Code.AuthError})}static notFound(t){return new e({message:t,code:e.Code.ConfigError})}static badRequest(t){return new e({message:t,code:e.Code.NetworkError})}static validationError(t){return new e({message:t,code:e.Code.ValidationError})}static internalError(t){return new e({message:t,code:e.Code.InternalError})}};(function(e){e.Code={InternalError:"INTERNAL_ERROR",ResolutionError:"RESOLUTION_ERROR",IrConversionError:"IR_CONVERSION_ERROR",ContainerError:"CONTAINER_ERROR",VersionError:"VERSION_ERROR",ParseError:"PARSE_ERROR",EnvironmentError:"ENVIRONMENT_ERROR",ReferenceError:"REFERENCE_ERROR",ValidationError:"VALIDATION_ERROR",NetworkError:"NETWORK_ERROR",AuthError:"AUTH_ERROR",ConfigError:"CONFIG_ERROR",UserError:"USER_ERROR"}})(j||(j={}));v5l={[j.Code.InternalError]:!0,[j.Code.ResolutionError]:!0,[j.Code.IrConversionError]:!0,[j.Code.ContainerError]:!1,[j.Code.VersionError]:!1,[j.Code.ParseError]:!1,[j.Code.EnvironmentError]:!1,[j.Code.ReferenceError]:!1,[j.Code.ValidationError]:!1,[j.Code.NetworkError]:!1,[j.Code.AuthError]:!1,[j.Code.ConfigError]:!1,[j.Code.UserError]:!1};w5l=new Set(["ENOENT","EACCES","EPERM","EINTR","EISDIR","ENOTDIR","EEXIST","EPIPE","ENOSPC","EROFS","EMFILE","ENFILE","EBUSY","EADDRINUSE"]),x5l=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT","EHOSTUNREACH","ENETUNREACH","EAI_AGAIN","EPROTO"])});var qn,Fx,bir=K(()=>{"use strict";qn={Trace:"trace",Debug:"debug",Info:"info",Warn:"warn",Error:"error"},Fx=Object.values(qn)});function UI(e){return new uBi(e)}var uBi,Eir=K(()=>{"use strict";bir();uBi=class{log;enabled;constructor(t,r=!0){this.log=t,this.enabled=r}disable(){this.enabled=!1}enable(){this.enabled=!0}debug(...t){this.enabled&&this.log(qn.Debug,...t)}info(...t){this.enabled&&this.log(qn.Info,...t)}warn(...t){this.enabled&&this.log(qn.Warn,...t)}error(...t){this.enabled&&this.log(qn.Error,...t)}trace(...t){this.enabled&&this.log(qn.Trace,...t)}}});function T5l(e,...t){B5l(e)(...t)}function B5l(e){switch(e){case qn.Trace:return console.trace;case qn.Debug:return console.debug;case qn.Info:return console.info;case qn.Warn:return console.warn;case qn.Error:return console.error}}var vir,A7s=K(()=>{"use strict";Eir();bir();vir=Object.freeze(UI(T5l))});function lBi({onlyFirst:e=!1}={}){let i="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(i,e?void 0:"g")}var y7s=K(()=>{"use strict"});function VG(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return!e.includes("\x1B")&&!e.includes("\x9B")?e:e.replace(O5l,"")}var O5l,JGe=K(()=>{"use strict";y7s();O5l=lBi()});function Pj({prefix:e,content:t,includePrefixOnAllLines:r=!1}){let n=VG(e).length;return`${e}${t.replaceAll(`
|
|
74
|
+
`,"f"),ia(this,KS,Dt(this,KS,"f")+t.join(" "),"f")}}}[YTi](t){LGe(Dt(this,sc,"f")).forEach(r=>{if((i=>i==="configObjects")(r))return;let n=Dt(this,sc,"f")[r];Array.isArray(n)?n.includes(t)&&n.splice(n.indexOf(t),1):typeof n=="object"&&delete n[t]}),delete Dt(this,jl,"f").getDescriptions()[t]}[Y8s](t,r,n){Dt(this,lir,"f")[n]||(Dt(this,Qu,"f").process.emitWarning(t,r),Dt(this,lir,"f")[n]=!0)}[X8s](){Dt(this,pir,"f").push({options:Dt(this,sc,"f"),configObjects:Dt(this,sc,"f").configObjects.slice(0),exitProcess:Dt(this,cU,"f"),groups:Dt(this,jJ,"f"),strict:Dt(this,rke,"f"),strictCommands:Dt(this,nke,"f"),strictOptions:Dt(this,ike,"f"),completionCommand:Dt(this,i3,"f"),output:Dt(this,KS,"f"),exitError:Dt(this,pAe,"f"),hasOutput:Dt(this,o3,"f"),parsed:this.parsed,parseFn:Dt(this,s3,"f"),parseContext:Dt(this,eke,"f")}),Dt(this,jl,"f").freeze(),Dt(this,Qv,"f").freeze(),Dt(this,zI,"f").freeze(),Dt(this,uU,"f").freeze()}[Z8s](){let t="",r;return/\b(node|iojs|electron)(\.exe)?$/.test(Dt(this,Qu,"f").process.argv()[0])?r=Dt(this,Qu,"f").process.argv().slice(1,2):r=Dt(this,Qu,"f").process.argv().slice(0,1),t=r.map(n=>{let i=this[p7s](Dt(this,Z2e,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&i.length<n.length?i:n}).join(" ").trim(),Dt(this,Qu,"f").getEnv("_")&&Dt(this,Qu,"f").getProcessArgvBin()===Dt(this,Qu,"f").getEnv("_")&&(t=Dt(this,Qu,"f").getEnv("_").replace(`${Dt(this,Qu,"f").path.dirname(Dt(this,Qu,"f").process.execPath())}/`,"")),t}[oke](){return Dt(this,mir,"f")}[$8s](){return Dt(this,gir,"f")}[XTi](){if(!Dt(this,$2e,"f"))return;let t=Dt(this,Qu,"f").getEnv("LC_ALL")||Dt(this,Qu,"f").getEnv("LC_MESSAGES")||Dt(this,Qu,"f").getEnv("LANG")||Dt(this,Qu,"f").getEnv("LANGUAGE")||"en_US";this.locale(t.replace(/[.:].*/,""))}[e7s](){return this[ZTi]().version||"unknown"}[t7s](t){let r=t["--"]?t["--"]:t._;for(let n=0,i;(i=r[n])!==void 0;n++)Dt(this,Qu,"f").Parser.looksLikeNumber(i)&&Number.isSafeInteger(Math.floor(parseFloat(`${i}`)))&&(r[n]=Number(i));return t}[ZTi](t){let r=t||"*";if(Dt(this,GGe,"f")[r])return Dt(this,GGe,"f")[r];let n={};try{let i=t||Dt(this,Qu,"f").mainFilename;!t&&Dt(this,Qu,"f").path.extname(i)&&(i=Dt(this,Qu,"f").path.dirname(i));let o=Dt(this,Qu,"f").findUp(i,(s,a)=>{if(a.includes("package.json"))return"package.json"});w2(o,void 0,Dt(this,Qu,"f")),n=JSON.parse(Dt(this,Qu,"f").readFileSync(o,"utf8"))}catch{}return Dt(this,GGe,"f")[r]=n||{},Dt(this,GGe,"f")[r]}[dAe](t,r){r=[].concat(r),r.forEach(n=>{n=this[tBi](n),Dt(this,sc,"f")[t].push(n)})}[WGe](t,r,n,i){this[eBi](t,r,n,i,(o,s,a)=>{Dt(this,sc,"f")[o][s]=a})}[$Ti](t,r,n,i){this[eBi](t,r,n,i,(o,s,a)=>{Dt(this,sc,"f")[o][s]=(Dt(this,sc,"f")[o][s]||[]).concat(a)})}[eBi](t,r,n,i,o){if(Array.isArray(n))n.forEach(s=>{t(s,i)});else if((s=>typeof s=="object")(n))for(let s of LGe(n))t(s,n[s]);else o(r,this[tBi](n),i)}[tBi](t){return t==="__proto__"?"___proto___":t}[rBi](t,r){return this[WGe](this[rBi].bind(this),"key",t,r),this}[nBi](){var t,r,n,i,o,s,a,c,u,l,p,d;let f=Dt(this,pir,"f").pop();w2(f,void 0,Dt(this,Qu,"f"));let m;t=this,r=this,n=this,i=this,o=this,s=this,a=this,c=this,u=this,l=this,p=this,d=this,{options:{set value(h){ia(t,sc,h,"f")}}.value,configObjects:m,exitProcess:{set value(h){ia(r,cU,h,"f")}}.value,groups:{set value(h){ia(n,jJ,h,"f")}}.value,output:{set value(h){ia(i,KS,h,"f")}}.value,exitError:{set value(h){ia(o,pAe,h,"f")}}.value,hasOutput:{set value(h){ia(s,o3,h,"f")}}.value,parsed:this.parsed,strict:{set value(h){ia(a,rke,h,"f")}}.value,strictCommands:{set value(h){ia(c,nke,h,"f")}}.value,strictOptions:{set value(h){ia(u,ike,h,"f")}}.value,completionCommand:{set value(h){ia(l,i3,h,"f")}}.value,parseFn:{set value(h){ia(p,s3,h,"f")}}.value,parseContext:{set value(h){ia(d,eke,h,"f")}}.value}=f,Dt(this,sc,"f").configObjects=m,Dt(this,jl,"f").unfreeze(),Dt(this,Qv,"f").unfreeze(),Dt(this,zI,"f").unfreeze(),Dt(this,uU,"f").unfreeze()}[r7s](t,r){return X2e(r,n=>(t(n),n))}getInternalMethods(){return{getCommandInstance:this[n7s].bind(this),getContext:this[i7s].bind(this),getHasOutput:this[o7s].bind(this),getLoggerInstance:this[s7s].bind(this),getParseContext:this[a7s].bind(this),getParserConfiguration:this[oke].bind(this),getUsageConfiguration:this[$8s].bind(this),getUsageInstance:this[c7s].bind(this),getValidationInstance:this[u7s].bind(this),hasParseCallback:this[Air].bind(this),isGlobalContext:this[l7s].bind(this),postProcess:this[ske].bind(this),reset:this[iBi].bind(this),runValidation:this[oBi].bind(this),runYargsParserAndExecuteCommands:this[mPt].bind(this),setHasOutput:this[f7s].bind(this)}}[n7s](){return Dt(this,zI,"f")}[i7s](){return Dt(this,dPt,"f")}[o7s](){return Dt(this,o3,"f")}[s7s](){return Dt(this,qGe,"f")}[a7s](){return Dt(this,eke,"f")||{}}[c7s](){return Dt(this,jl,"f")}[u7s](){return Dt(this,Qv,"f")}[Air](){return!!Dt(this,s3,"f")}[l7s](){return Dt(this,fir,"f")}[ske](t,r,n,i){return n||_b(t)||(r||(t=this[K8s](t)),(this[oke]()["parse-positional-numbers"]||this[oke]()["parse-positional-numbers"]===void 0)&&(t=this[t7s](t)),i&&(t=Y2e(t,this,Dt(this,uU,"f").getMiddleware(),!1))),t}[iBi](t={}){ia(this,sc,Dt(this,sc,"f")||{},"f");let r={};r.local=Dt(this,sc,"f").local||[],r.configObjects=Dt(this,sc,"f").configObjects||[];let n={};r.local.forEach(s=>{n[s]=!0,(t[s]||[]).forEach(a=>{n[a]=!0})}),Object.assign(Dt(this,tke,"f"),Object.keys(Dt(this,jJ,"f")).reduce((s,a)=>{let c=Dt(this,jJ,"f")[a].filter(u=>!(u in n));return c.length>0&&(s[a]=c),s},{})),ia(this,jJ,{},"f");let i=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],o=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];return i.forEach(s=>{r[s]=(Dt(this,sc,"f")[s]||[]).filter(a=>!n[a])}),o.forEach(s=>{r[s]=uAe(Dt(this,sc,"f")[s],a=>!n[a])}),r.envPrefix=Dt(this,sc,"f").envPrefix,ia(this,sc,r,"f"),ia(this,jl,Dt(this,jl,"f")?Dt(this,jl,"f").reset(n):N8s(this,Dt(this,Qu,"f")),"f"),ia(this,Qv,Dt(this,Qv,"f")?Dt(this,Qv,"f").reset(n):G8s(this,Dt(this,jl,"f"),Dt(this,Qu,"f")),"f"),ia(this,zI,Dt(this,zI,"f")?Dt(this,zI,"f").reset():R8s(Dt(this,jl,"f"),Dt(this,Qv,"f"),Dt(this,uU,"f"),Dt(this,Qu,"f")),"f"),Dt(this,aU,"f")||ia(this,aU,z8s(this,Dt(this,jl,"f"),Dt(this,zI,"f"),Dt(this,Qu,"f")),"f"),Dt(this,uU,"f").reset(),ia(this,i3,null,"f"),ia(this,KS,"","f"),ia(this,pAe,null,"f"),ia(this,o3,!1,"f"),this.parsed=!1,this}[p7s](t,r){return Dt(this,Qu,"f").path.relative(t,r)}[mPt](t,r,n,i=0,o=!1){let s=!!n||o;t=t||Dt(this,fAe,"f"),Dt(this,sc,"f").__=Dt(this,Qu,"f").y18n.__,Dt(this,sc,"f").configuration=this[oke]();let a=!!Dt(this,sc,"f").configuration["populate--"],c=Object.assign({},Dt(this,sc,"f").configuration,{"populate--":!0}),u=Dt(this,Qu,"f").Parser.detailed(t,Object.assign({},Dt(this,sc,"f"),{configuration:{"parse-positional-numbers":!1,...c}})),l=Object.assign(u.argv,Dt(this,eke,"f")),p,d=u.aliases,f=!1,m=!1;Object.keys(l).forEach(h=>{h===Dt(this,lU,"f")&&l[h]?f=!0:h===Dt(this,QJ,"f")&&l[h]&&(m=!0)}),l.$0=this.$0,this.parsed=u,i===0&&Dt(this,jl,"f").clearCachedHelpMessage();try{if(this[XTi](),r)return this[ske](l,a,!!n,!1);Dt(this,lU,"f")&&[Dt(this,lU,"f")].concat(d[Dt(this,lU,"f")]||[]).filter(w=>w.length>1).includes(""+l._[l._.length-1])&&(l._.pop(),f=!0),ia(this,fir,!1,"f");let h=Dt(this,zI,"f").getCommands(),A=Dt(this,aU,"f").completionKey in l,y=f||A||o;if(l._.length){if(h.length){let I;for(let w=i||0,C;l._[w]!==void 0;w++)if(C=String(l._[w]),h.includes(C)&&C!==Dt(this,i3,"f")){let x=Dt(this,zI,"f").runCommand(C,this,u,w+1,o,f||m||o);return this[ske](x,a,!!n,!1)}else if(!I&&C!==Dt(this,i3,"f")){I=C;break}!Dt(this,zI,"f").hasDefaultCommand()&&Dt(this,hir,"f")&&I&&!y&&Dt(this,Qv,"f").recommendCommands(I,h)}Dt(this,i3,"f")&&l._.includes(Dt(this,i3,"f"))&&!A&&(Dt(this,cU,"f")&&lAe(!0),this.showCompletionScript(),this.exit(0))}if(Dt(this,zI,"f").hasDefaultCommand()&&!y){let I=Dt(this,zI,"f").runCommand(null,this,u,0,o,f||m||o);return this[ske](I,a,!!n,!1)}if(A){Dt(this,cU,"f")&&lAe(!0),t=[].concat(t);let I=t.slice(t.indexOf(`--${Dt(this,aU,"f").completionKey}`)+1);return Dt(this,aU,"f").getCompletion(I,(w,C)=>{if(w)throw new Ub(w.message);(C||[]).forEach(x=>{Dt(this,qGe,"f").log(x)}),this.exit(0)}),this[ske](l,!a,!!n,!1)}if(Dt(this,o3,"f")||(f?(Dt(this,cU,"f")&&lAe(!0),s=!0,this.showHelp("log"),this.exit(0)):m&&(Dt(this,cU,"f")&&lAe(!0),s=!0,Dt(this,jl,"f").showVersion("log"),this.exit(0))),!s&&Dt(this,sc,"f").skipValidation.length>0&&(s=Object.keys(l).some(I=>Dt(this,sc,"f").skipValidation.indexOf(I)>=0&&l[I]===!0)),!s){if(u.error)throw new Ub(u.error.message);if(!A){let I=this[oBi](d,{},u.error);n||(p=Y2e(l,this,Dt(this,uU,"f").getMiddleware(),!0)),p=this[r7s](I,p??l),_b(p)&&!n&&(p=p.then(()=>Y2e(l,this,Dt(this,uU,"f").getMiddleware(),!1)))}}}catch(h){if(h instanceof Ub)Dt(this,jl,"f").fail(h.message,h);else throw h}return this[ske](p??l,a,!!n,!0)}[oBi](t,r,n,i){let o={...this.getDemandedOptions()};return s=>{if(n)throw new Ub(n.message);Dt(this,Qv,"f").nonOptionCount(s),Dt(this,Qv,"f").requiredArguments(s,o);let a=!1;Dt(this,nke,"f")&&(a=Dt(this,Qv,"f").unknownCommands(s)),Dt(this,rke,"f")&&!a?Dt(this,Qv,"f").unknownArguments(s,t,r,!!i):Dt(this,ike,"f")&&Dt(this,Qv,"f").unknownArguments(s,t,{},!1,!1),Dt(this,Qv,"f").limitedChoices(s),Dt(this,Qv,"f").implications(s),Dt(this,Qv,"f").conflicting(s)}}[f7s](){ia(this,o3,!0,"f")}[ake](t){if(typeof t=="string")Dt(this,sc,"f").key[t]=!0;else for(let r of t)Dt(this,sc,"f").key[r]=!0}}});var m7s={};re(m7s,{default:()=>aBi});var b5l,aBi,cBi=K(()=>{"use strict";QTi();qTi();b5l=d7s(rir),aBi=b5l});var h7s={};re(h7s,{Parser:()=>eir,applyExtends:()=>E5l,hideBin:()=>jGe});var E5l,yir=K(()=>{"use strict";JTi();NTi();kTi();QTi();E5l=(e,t,r)=>VGe(e,t,r,rir)});function HGe(e){return v5l[e]}function I5l(e){return e instanceof Error&&(e.name==="ParseError"||e.name==="JsonError")}function C5l(e){return e instanceof Error&&e.message.includes("globalThis")}function S5l(e){if(!(e instanceof Error))return;let t=e.code;if(typeof t=="string")return t;let r=e.cause;if(r instanceof Error){let n=r.code;if(typeof n=="string")return n}}function KGe(e,t){if(t!=null)return t;if(e instanceof j)return e.code;if(I5l(e))return j.Code.ParseError;if(C5l(e))return j.Code.EnvironmentError;let r=S5l(e);if(r!=null){if(w5l.has(r))return j.Code.EnvironmentError;if(x5l.has(r))return j.Code.NetworkError}return j.Code.InternalError}var j,v5l,w5l,x5l,g7s=K(()=>{"use strict";j=class e extends Error{code;docsLink;constructor({message:t,code:r,docsLink:n}){super(t),Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.docsLink=n}static authRequired(t){return new e({message:t??"Authentication required. Please run 'fern login' or set the FERN_TOKEN environment variable.",code:e.Code.AuthError})}static unauthorized(t){return new e({message:t??"Unauthorized. Please run 'fern auth login' or set the FERN_TOKEN environment variable.",code:e.Code.AuthError})}static notFound(t){return new e({message:t,code:e.Code.ConfigError})}static badRequest(t){return new e({message:t,code:e.Code.NetworkError})}static validationError(t){return new e({message:t,code:e.Code.ValidationError})}static internalError(t){return new e({message:t,code:e.Code.InternalError})}};(function(e){e.Code={InternalError:"INTERNAL_ERROR",ResolutionError:"RESOLUTION_ERROR",IrConversionError:"IR_CONVERSION_ERROR",ContainerError:"CONTAINER_ERROR",VersionError:"VERSION_ERROR",ParseError:"PARSE_ERROR",EnvironmentError:"ENVIRONMENT_ERROR",ReferenceError:"REFERENCE_ERROR",ValidationError:"VALIDATION_ERROR",NetworkError:"NETWORK_ERROR",AuthError:"AUTH_ERROR",ConfigError:"CONFIG_ERROR",UserError:"USER_ERROR"}})(j||(j={}));v5l={[j.Code.InternalError]:!0,[j.Code.ResolutionError]:!0,[j.Code.IrConversionError]:!0,[j.Code.ContainerError]:!1,[j.Code.VersionError]:!1,[j.Code.ParseError]:!1,[j.Code.EnvironmentError]:!1,[j.Code.ReferenceError]:!1,[j.Code.ValidationError]:!1,[j.Code.NetworkError]:!1,[j.Code.AuthError]:!1,[j.Code.ConfigError]:!1,[j.Code.UserError]:!1};w5l=new Set(["ENOENT","EACCES","EPERM","EINTR","EISDIR","ENOTDIR","EEXIST","EPIPE","ENOSPC","EROFS","EMFILE","ENFILE","EBUSY","EADDRINUSE","ENOTEMPTY","ENOMEM"]),x5l=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT","EHOSTUNREACH","ENETUNREACH","EAI_AGAIN","EPROTO"])});var qn,Fx,bir=K(()=>{"use strict";qn={Trace:"trace",Debug:"debug",Info:"info",Warn:"warn",Error:"error"},Fx=Object.values(qn)});function UI(e){return new uBi(e)}var uBi,Eir=K(()=>{"use strict";bir();uBi=class{log;enabled;constructor(t,r=!0){this.log=t,this.enabled=r}disable(){this.enabled=!1}enable(){this.enabled=!0}debug(...t){this.enabled&&this.log(qn.Debug,...t)}info(...t){this.enabled&&this.log(qn.Info,...t)}warn(...t){this.enabled&&this.log(qn.Warn,...t)}error(...t){this.enabled&&this.log(qn.Error,...t)}trace(...t){this.enabled&&this.log(qn.Trace,...t)}}});function T5l(e,...t){B5l(e)(...t)}function B5l(e){switch(e){case qn.Trace:return console.trace;case qn.Debug:return console.debug;case qn.Info:return console.info;case qn.Warn:return console.warn;case qn.Error:return console.error}}var vir,A7s=K(()=>{"use strict";Eir();bir();vir=Object.freeze(UI(T5l))});function lBi({onlyFirst:e=!1}={}){let i="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(i,e?void 0:"g")}var y7s=K(()=>{"use strict"});function VG(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return!e.includes("\x1B")&&!e.includes("\x9B")?e:e.replace(O5l,"")}var O5l,JGe=K(()=>{"use strict";y7s();O5l=lBi()});function Pj({prefix:e,content:t,includePrefixOnAllLines:r=!1}){let n=VG(e).length;return`${e}${t.replaceAll(`
|
|
75
75
|
`,`
|
|
76
76
|
${r?e:" ".repeat(n)}`)}`}var b7s=K(()=>{"use strict";JGe()});function mAe(e,t){return e=e.slice(),e.push(t),e}function hBi(e,t){return t=t.slice(),t.unshift(e),t}function em(e,t,r,n,i){if(!(this instanceof em))try{return new em(e,t,r,n,i)}catch(s){if(!s.avoidNew)throw s;return s.value}typeof e=="string"&&(i=n,n=r,r=t,t=e,e=null);let o=e&&typeof e=="object";if(e=e||{},this.json=e.json||r,this.path=e.path||t,this.resultType=e.resultType||"value",this.flatten=e.flatten||!1,this.wrap=Object.hasOwn(e,"wrap")?e.wrap:!0,this.sandbox=e.sandbox||{},this.eval=e.eval===void 0?"safe":e.eval,this.ignoreEvalErrors=typeof e.ignoreEvalErrors>"u"?!1:e.ignoreEvalErrors,this.parent=e.parent||null,this.parentProperty=e.parentProperty||null,this.callback=e.callback||n||null,this.otherTypeCallback=e.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},e.autostart!==!1){let s={path:o?e.path:t};o?"json"in e&&(s.json=e.json):s.json=r;let a=this.evaluate(s);if(!a||typeof a!="object")throw new gBi(a);return a}}var v7s,fBi,dBi,Dj,P5l,MJ,D5l,R5l,F5l,E7s,k5l,N5l,pBi,j5l,YGe,Q5l,Gg,mBi,gBi,I7s=K(()=>{"use strict";v7s=we(require("vm"),1),fBi=class{add(t,r,n){if(typeof arguments[0]!="string")for(let i in arguments[0])this.add(i,arguments[0][i],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(i){this[i]=this[i]||[],r&&this[i][n?"unshift":"push"](r)},this)}run(t,r){this[t]=this[t]||[],this[t].forEach(function(n){n.call(r&&r.context?r.context:r,r)})}},dBi=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(r=>{if(typeof r!="object"||!r.name||!r.init)throw new Error("Invalid JSEP plugin format");this.registered[r.name]||(r.init(this.jsep),this.registered[r.name]=r)})}},Dj=class e{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,r,n){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=r,n?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,r){return e.literals[t]=r,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(r=>r.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let r=new Error(t+" at character "+this.index);throw r.index=this.index,r.description=t,r}runHook(t,r){if(e.hooks[t]){let n={context:this,node:r};return e.hooks.run(t,n),n.node}return r}searchHook(t){if(e.hooks[t]){let r={context:this};return e.hooks[t].find(function(n){return n.call(r.context,r),r.node}),r.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),r=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",r)}gobbleExpressions(t){let r=[],n,i;for(;this.index<this.expr.length;)if(n=this.code,n===e.SEMCOL_CODE||n===e.COMMA_CODE)this.index++;else if(i=this.gobbleExpression())r.push(i);else if(this.index<this.expr.length){if(n===t)break;this.throwError('Unexpected "'+this.char+'"')}return r}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,e.max_binop_len),r=t.length;for(;r>0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=r,t;t=t.substr(0,--r)}return!1}gobbleBinaryExpression(){let t,r,n,i,o,s,a,c,u;if(s=this.gobbleToken(),!s||(r=this.gobbleBinaryOp(),!r))return s;for(o={value:r,prec:e.binaryPrecedence(r),right_a:e.right_associative.has(r)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+r),i=[s,o,a];r=this.gobbleBinaryOp();){if(n=e.binaryPrecedence(r),n===0){this.index-=r.length;break}o={value:r,prec:n,right_a:e.right_associative.has(r)},u=r;let l=p=>o.right_a&&p.right_a?n>p.prec:n<=p.prec;for(;i.length>2&&l(i[i.length-2]);)a=i.pop(),r=i.pop().value,s=i.pop(),t={type:e.BINARY_EXP,operator:r,left:s,right:a},i.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),i.push(o,t)}for(c=i.length-1,t=i[c];c>1;)t={type:e.BINARY_EXP,operator:i[c-1].value,left:i[c-2],right:t},c-=2;return t}gobbleToken(){let t,r,n,i;if(this.gobbleSpaces(),i=this.searchHook("gobble-token"),i)return this.runHook("after-token",i);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)i=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)i=this.gobbleArray();else{for(r=this.expr.substr(this.index,e.max_unop_len),n=r.length;n>0;){if(e.unary_ops.hasOwnProperty(r)&&(!e.isIdentifierStart(this.code)||this.index+r.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+r.length)))){this.index+=n;let o=this.gobbleToken();return o||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:e.UNARY_EXP,operator:r,argument:o,prefix:!0})}r=r.substr(0,--n)}e.isIdentifierStart(t)?(i=this.gobbleIdentifier(),e.literals.hasOwnProperty(i.name)?i={type:e.LITERAL,value:e.literals[i.name],raw:i.name}:i.name===e.this_str&&(i={type:e.THIS_EXP})):t===e.OPAREN_CODE&&(i=this.gobbleGroup())}return i?(i=this.gobbleTokenProperty(i),this.runHook("after-token",i)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let r=this.code;for(;r===e.PERIOD_CODE||r===e.OBRACK_CODE||r===e.OPAREN_CODE||r===e.QUMARK_CODE;){let n;if(r===e.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==e.PERIOD_CODE)break;n=!0,this.index+=2,this.gobbleSpaces(),r=this.code}this.index++,r===e.OBRACK_CODE?(t={type:e.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},t.property||this.throwError('Unexpected "'+this.char+'"'),this.gobbleSpaces(),r=this.code,r!==e.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):r===e.OPAREN_CODE?t={type:e.CALL_EXP,arguments:this.gobbleArguments(e.CPAREN_CODE),callee:t}:(r===e.PERIOD_CODE||n)&&(n&&this.index--,this.gobbleSpaces(),t={type:e.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),n&&(t.optional=!0),this.gobbleSpaces(),r=this.code}return t}gobbleNumericLiteral(){let t="",r,n;for(;e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===e.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(r=this.char,r==="e"||r==="E"){for(t+=this.expr.charAt(this.index++),r=this.char,(r==="+"||r==="-")&&(t+=this.expr.charAt(this.index++));e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return n=this.code,e.isIdentifierStart(n)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(n===e.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===e.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:e.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",r=this.index,n=this.expr.charAt(this.index++),i=!1;for(;this.index<this.expr.length;){let o=this.expr.charAt(this.index++);if(o===n){i=!0;break}else if(o==="\\")switch(o=this.expr.charAt(this.index++),o){case"n":t+=`
|
|
77
77
|
`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=o}else t+=o}return i||this.throwError('Unclosed quote after "'+t+'"'),{type:e.LITERAL,value:t,raw:this.expr.substring(r,this.index)}}gobbleIdentifier(){let t=this.code,r=this.index;for(e.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,e.isIdentifierPart(t));)this.index++;return{type:e.IDENTIFIER,name:this.expr.slice(r,this.index)}}gobbleArguments(t){let r=[],n=!1,i=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let o=this.code;if(o===t){n=!0,this.index++,t===e.CPAREN_CODE&&i&&i>=r.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(o===e.COMMA_CODE){if(this.index++,i++,i!==r.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=r.length;s<i;s++)r.push(null)}}else if(r.length!==i&&i!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===e.COMPOUND)&&this.throwError("Expected comma"),r.push(s)}}return n||this.throwError("Expected "+String.fromCharCode(t)),r}gobbleGroup(){this.index++;let t=this.gobbleExpressions(e.CPAREN_CODE);if(this.code===e.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:e.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:e.ARRAY_EXP,elements:this.gobbleArguments(e.CBRACK_CODE)}}},P5l=new fBi;Object.assign(Dj,{hooks:P5l,plugins:new dBi(Dj),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"??":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Dj.max_unop_len=Dj.getMaxKeyLen(Dj.unary_ops);Dj.max_binop_len=Dj.getMaxKeyLen(Dj.binary_ops);MJ=e=>new Dj(e).parse(),D5l=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Dj).filter(e=>!D5l.includes(e)&&MJ[e]===void 0).forEach(e=>{MJ[e]=Dj[e]});MJ.Jsep=Dj;R5l="ConditionalExpression",F5l={name:"ternary",init(e){e.hooks.add("after-expression",function(r){if(r.node&&this.code===e.QUMARK_CODE){this.index++;let n=r.node,i=this.gobbleExpression();if(i||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),r.node={type:R5l,test:n,consequent:i,alternate:o},n.operator&&e.binary_ops[n.operator]<=.9){let s=n;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;r.node.test=s.right,s.right=r.node,r.node=n}}else this.throwError("Expected :")}})}};MJ.plugins.register(F5l);E7s=47,k5l=92,N5l={name:"regex",init(e){e.hooks.add("gobble-token",function(r){if(this.code===E7s){let n=++this.index,i=!1;for(;this.index<this.expr.length;){if(this.code===E7s&&!i){let o=this.expr.slice(n,this.index),s="";for(;++this.index<this.expr.length;){let c=this.code;if(c>=97&&c<=122||c>=65&&c<=90||c>=48&&c<=57)s+=this.char;else break}let a;try{a=new RegExp(o,s)}catch(c){this.throwError(c.message)}return r.node={type:e.LITERAL,value:a,raw:this.expr.slice(n-1,this.index)},r.node=this.gobbleTokenProperty(r.node),r.node}this.code===e.OBRACK_CODE?i=!0:i&&this.code===e.CBRACK_CODE&&(i=!1),this.index+=this.code===k5l?2:1}this.throwError("Unclosed Regex")}})}},pBi=43,j5l=45,YGe={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[pBi,j5l],assignmentPrecedence:.9,init(e){let t=[e.IDENTIFIER,e.MEMBER_EXP];YGe.assignmentOperators.forEach(n=>e.addBinaryOp(n,YGe.assignmentPrecedence,!0)),e.hooks.add("gobble-token",function(i){let o=this.code;YGe.updateOperators.some(s=>s===o&&s===this.expr.charCodeAt(this.index+1))&&(this.index+=2,i.node={type:"UpdateExpression",operator:o===pBi?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!i.node.argument||!t.includes(i.node.argument.type))&&this.throwError(`Unexpected ${i.node.operator}`))}),e.hooks.add("after-token",function(i){if(i.node){let o=this.code;YGe.updateOperators.some(s=>s===o&&s===this.expr.charCodeAt(this.index+1))&&(t.includes(i.node.type)||this.throwError(`Unexpected ${i.node.operator}`),this.index+=2,i.node={type:"UpdateExpression",operator:o===pBi?"++":"--",argument:i.node,prefix:!1})}}),e.hooks.add("after-expression",function(i){i.node&&r(i.node)});function r(n){YGe.assignmentOperators.has(n.operator)?(n.type="AssignmentExpression",r(n.left),r(n.right)):n.operator||Object.values(n).forEach(i=>{i&&typeof i=="object"&&r(i)})}}};MJ.plugins.register(N5l,YGe);MJ.addUnaryOp("typeof");MJ.addUnaryOp("void");MJ.addLiteral("null",null);MJ.addLiteral("undefined",void 0);Q5l=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"]),Gg={evalAst(e,t){switch(e.type){case"BinaryExpression":case"LogicalExpression":return Gg.evalBinaryExpression(e,t);case"Compound":return Gg.evalCompound(e,t);case"ConditionalExpression":return Gg.evalConditionalExpression(e,t);case"Identifier":return Gg.evalIdentifier(e,t);case"Literal":return Gg.evalLiteral(e,t);case"MemberExpression":return Gg.evalMemberExpression(e,t);case"UnaryExpression":return Gg.evalUnaryExpression(e,t);case"ArrayExpression":return Gg.evalArrayExpression(e,t);case"CallExpression":return Gg.evalCallExpression(e,t);case"AssignmentExpression":return Gg.evalAssignmentExpression(e,t);default:throw SyntaxError("Unexpected expression",e)}},evalBinaryExpression(e,t){return{"||":(n,i)=>n||i(),"&&":(n,i)=>n&&i(),"|":(n,i)=>n|i(),"^":(n,i)=>n^i(),"&":(n,i)=>n&i(),"==":(n,i)=>n==i(),"!=":(n,i)=>n!=i(),"===":(n,i)=>n===i(),"!==":(n,i)=>n!==i(),"<":(n,i)=>n<i(),">":(n,i)=>n>i(),"<=":(n,i)=>n<=i(),">=":(n,i)=>n>=i(),"<<":(n,i)=>n<<i(),">>":(n,i)=>n>>i(),">>>":(n,i)=>n>>>i(),"+":(n,i)=>n+i(),"-":(n,i)=>n-i(),"*":(n,i)=>n*i(),"/":(n,i)=>n/i(),"%":(n,i)=>n%i()}[e.operator](Gg.evalAst(e.left,t),()=>Gg.evalAst(e.right,t))},evalCompound(e,t){let r;for(let n=0;n<e.body.length;n++){e.body[n].type==="Identifier"&&["var","let","const"].includes(e.body[n].name)&&e.body[n+1]&&e.body[n+1].type==="AssignmentExpression"&&(n+=1);let i=e.body[n];r=Gg.evalAst(i,t)}return r},evalConditionalExpression(e,t){return Gg.evalAst(e.test,t)?Gg.evalAst(e.consequent,t):Gg.evalAst(e.alternate,t)},evalIdentifier(e,t){if(Object.hasOwn(t,e.name))return t[e.name];throw ReferenceError(`${e.name} is not defined`)},evalLiteral(e){return e.value},evalMemberExpression(e,t){let r=String(e.computed?Gg.evalAst(e.property):e.property.name),n=Gg.evalAst(e.object,t);if(n==null)throw TypeError(`Cannot read properties of ${n} (reading '${r}')`);if(!Object.hasOwn(n,r)&&Q5l.has(r))throw TypeError(`Cannot read properties of ${n} (reading '${r}')`);let i=n[r];return typeof i=="function"?i.bind(n):i},evalUnaryExpression(e,t){return{"-":n=>-Gg.evalAst(n,t),"!":n=>!Gg.evalAst(n,t),"~":n=>~Gg.evalAst(n,t),"+":n=>+Gg.evalAst(n,t),typeof:n=>typeof Gg.evalAst(n,t),void:n=>{Gg.evalAst(n,t)}}[e.operator](e.argument)},evalArrayExpression(e,t){return e.elements.map(r=>Gg.evalAst(r,t))},evalCallExpression(e,t){let r=e.arguments.map(i=>Gg.evalAst(i,t)),n=Gg.evalAst(e.callee,t);if(n===Function)throw new Error("Function constructor is disabled");return n(...r)},evalAssignmentExpression(e,t){if(e.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let r=e.left.name,n=Gg.evalAst(e.right,t);return t[r]=n,t[r]}},mBi=class{constructor(t){this.code=t,this.ast=MJ(this.code)}runInNewContext(t){let r=Object.assign(Object.create(null),t);return Gg.evalAst(this.ast,r)}};gBi=class extends Error{constructor(t){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=t,this.name="NewError"}};em.prototype.evaluate=function(e,t,r,n){let i=this.parent,o=this.parentProperty,{flatten:s,wrap:a}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,r=r||this.callback,this.currOtherTypeCallback=n||this.otherTypeCallback,t=t||this.json,e=e||this.path,e&&typeof e=="object"&&!Array.isArray(e)){if(!e.path&&e.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(e,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:t}=e),s=Object.hasOwn(e,"flatten")?e.flatten:s,this.currResultType=Object.hasOwn(e,"resultType")?e.resultType:this.currResultType,this.currSandbox=Object.hasOwn(e,"sandbox")?e.sandbox:this.currSandbox,a=Object.hasOwn(e,"wrap")?e.wrap:a,this.currEval=Object.hasOwn(e,"eval")?e.eval:this.currEval,r=Object.hasOwn(e,"callback")?e.callback:r,this.currOtherTypeCallback=Object.hasOwn(e,"otherTypeCallback")?e.otherTypeCallback:this.currOtherTypeCallback,i=Object.hasOwn(e,"parent")?e.parent:i,o=Object.hasOwn(e,"parentProperty")?e.parentProperty:o,e=e.path}if(i=i||null,o=o||null,Array.isArray(e)&&(e=em.toPathString(e)),!e&&e!==""||!t)return;let c=em.toPathArray(e);c[0]==="$"&&c.length>1&&c.shift(),this._hasParentSelector=null;let u=this._trace(c,t,["$"],i,o,r).filter(function(l){return l&&!l.isParentSelector});return u.length?!a&&u.length===1&&!u[0].hasArrExpr?this._getPreferredOutput(u[0]):u.reduce((l,p)=>{let d=this._getPreferredOutput(p);return s&&Array.isArray(d)?l=l.concat(d):l.push(d),l},[]):a?[]:void 0};em.prototype._getPreferredOutput=function(e){let t=this.currResultType;switch(t){case"all":{let r=Array.isArray(e.path)?e.path:em.toPathArray(e.path);return e.pointer=em.toPointer(r),e.path=typeof e.path=="string"?e.path:em.toPathString(e.path),e}case"value":case"parent":case"parentProperty":return e[t];case"path":return em.toPathString(e[t]);case"pointer":return em.toPointer(e.path);default:throw new TypeError("Unknown result type")}};em.prototype._handleCallback=function(e,t,r){if(t){let n=this._getPreferredOutput(e);e.path=typeof e.path=="string"?e.path:em.toPathString(e.path),t(n,r,e)}};em.prototype._trace=function(e,t,r,n,i,o,s,a){let c;if(!e.length)return c={path:r,value:t,parent:n,parentProperty:i,hasArrExpr:s},this._handleCallback(c,o,"value"),c;let u=e[0],l=e.slice(1),p=[];function d(f){Array.isArray(f)?f.forEach(m=>{p.push(m)}):p.push(f)}if((typeof u!="string"||a)&&t&&Object.hasOwn(t,u))d(this._trace(l,t[u],mAe(r,u),t,u,o,s));else if(u==="*")this._walk(t,f=>{d(this._trace(l,t[f],mAe(r,f),t,f,o,!0,!0))});else if(u==="..")d(this._trace(l,t,r,n,i,o,s)),this._walk(t,f=>{typeof t[f]=="object"&&d(this._trace(e.slice(),t[f],mAe(r,f),t,f,o,!0))});else{if(u==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:l,isParentSelector:!0};if(u==="~")return c={path:mAe(r,u),value:i,parent:n,parentProperty:null},this._handleCallback(c,o,"property"),c;if(u==="$")d(this._trace(l,t,r,null,null,o,s));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(u))d(this._slice(u,l,t,r,n,i,o));else if(u.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let f=u.replace(/^\?\((.*?)\)$/u,"$1"),m=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(f);m?this._walk(t,h=>{let A=[m[2]],y=m[1]?t[h][m[1]]:t[h];this._trace(A,y,r,n,i,o,!0).length>0&&d(this._trace(l,t[h],mAe(r,h),t,h,o,!0))}):this._walk(t,h=>{this._eval(f,t[h],h,r,n,i)&&d(this._trace(l,t[h],mAe(r,h),t,h,o,!0))})}else if(u[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");d(this._trace(hBi(this._eval(u,t,r.at(-1),r.slice(0,-1),n,i),l),t,r,n,i,o,s))}else if(u[0]==="@"){let f=!1,m=u.slice(1,-2);switch(m){case"scalar":(!t||!["object","function"].includes(typeof t))&&(f=!0);break;case"boolean":case"string":case"undefined":case"function":typeof t===m&&(f=!0);break;case"integer":Number.isFinite(t)&&!(t%1)&&(f=!0);break;case"number":Number.isFinite(t)&&(f=!0);break;case"nonFinite":typeof t=="number"&&!Number.isFinite(t)&&(f=!0);break;case"object":t&&typeof t===m&&(f=!0);break;case"array":Array.isArray(t)&&(f=!0);break;case"other":f=this.currOtherTypeCallback(t,r,n,i);break;case"null":t===null&&(f=!0);break;default:throw new TypeError("Unknown value type "+m)}if(f)return c={path:r,value:t,parent:n,parentProperty:i},this._handleCallback(c,o,"value"),c}else if(u[0]==="`"&&t&&Object.hasOwn(t,u.slice(1))){let f=u.slice(1);d(this._trace(l,t[f],mAe(r,f),t,f,o,s,!0))}else if(u.includes(",")){let f=u.split(",");for(let m of f)d(this._trace(hBi(m,l),t,r,n,i,o,!0))}else!a&&t&&Object.hasOwn(t,u)&&d(this._trace(l,t[u],mAe(r,u),t,u,o,s,!0))}if(this._hasParentSelector)for(let f=0;f<p.length;f++){let m=p[f];if(m&&m.isParentSelector){let h=this._trace(m.expr,t,m.path,n,i,o,s);if(Array.isArray(h)){p[f]=h[0];let A=h.length;for(let y=1;y<A;y++)f++,p.splice(f,0,h[y])}else p[f]=h}}return p};em.prototype._walk=function(e,t){if(Array.isArray(e)){let r=e.length;for(let n=0;n<r;n++)t(n)}else e&&typeof e=="object"&&Object.keys(e).forEach(r=>{t(r)})};em.prototype._slice=function(e,t,r,n,i,o,s){if(!Array.isArray(r))return;let a=r.length,c=e.split(":"),u=c[2]&&Number.parseInt(c[2])||1,l=c[0]&&Number.parseInt(c[0])||0,p=c[1]&&Number.parseInt(c[1])||a;l=l<0?Math.max(0,l+a):Math.min(a,l),p=p<0?Math.max(0,p+a):Math.min(a,p);let d=[];for(let f=l;f<p;f+=u)this._trace(hBi(f,t),r,n,i,o,s,!0).forEach(h=>{d.push(h)});return d};em.prototype._eval=function(e,t,r,n,i,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=i,this.currSandbox._$_property=r,this.currSandbox._$_root=this.json,this.currSandbox._$_v=t;let s=e.includes("@path");s&&(this.currSandbox._$_path=em.toPathString(n.concat([r])));let a=this.currEval+"Script:"+e;if(!em.cache[a]){let c=e.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(s&&(c=c.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)em.cache[a]=new this.safeVm.Script(c);else if(this.currEval==="native")em.cache[a]=new this.vm.Script(c);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let u=this.currEval;em.cache[a]=new u(c)}else if(typeof this.currEval=="function")em.cache[a]={runInNewContext:u=>this.currEval(c,u)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return em.cache[a].runInNewContext(this.currSandbox)}catch(c){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+c.message+": "+e)}};em.cache={};em.toPathString=function(e){let t=e,r=t.length,n="$";for(let i=1;i<r;i++)/^(~|\^|@.*?\(\))$/u.test(t[i])||(n+=/^[0-9*]+$/u.test(t[i])?"["+t[i]+"]":"['"+t[i]+"']");return n};em.toPointer=function(e){let t=e,r=t.length,n="";for(let i=1;i<r;i++)/^(~|\^|@.*?\(\))$/u.test(t[i])||(n+="/"+t[i].toString().replaceAll("~","~0").replaceAll("/","~1"));return n};em.toPathArray=function(e){let{cache:t}=em;if(t[e])return t[e].concat();let r=[],i=e.replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu,";$&;").replaceAll(/[['](\??\(.*?\))[\]'](?!.\])/gu,function(o,s){return"[#"+(r.push(s)-1)+"]"}).replaceAll(/\[['"]([^'\]]*)['"]\]/gu,function(o,s){return"['"+s.replaceAll(".","%@%").replaceAll("~","%%@@%%")+"']"}).replaceAll("~",";~;").replaceAll(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu,";").replaceAll("%@%",".").replaceAll("%%@@%%","~").replaceAll(/(?:;)?(\^+)(?:;)?/gu,function(o,s){return";"+s.split("").join(";")+";"}).replaceAll(/;;;|;;/gu,";..;").replaceAll(/;$|'?\]|'$/gu,"").split(";").map(function(o){let s=o.match(/#(\d+)/u);return!s||!s[1]?o:r[s[1]]});return t[e]=i,t[e].concat()};em.prototype.safeVm={Script:mBi};em.prototype.vm=v7s.default});var M5l,Iir,ABi=K(()=>{"use strict";M5l=typeof global=="object"&&global&&global.Object===Object&&global,Iir=M5l});var L5l,z5l,lw,qG=K(()=>{"use strict";ABi();L5l=typeof self=="object"&&self&&self.Object===Object&&self,z5l=Iir||L5l||Function("return this")(),lw=z5l});var U5l,x2,XGe=K(()=>{"use strict";qG();U5l=lw.Symbol,x2=U5l});function q5l(e){var t=_5l.call(e,hPt),r=e[hPt];try{e[hPt]=void 0;var n=!0}catch{}var i=V5l.call(e);return n&&(t?e[hPt]=r:delete e[hPt]),i}var C7s,_5l,V5l,hPt,w7s,x7s=K(()=>{"use strict";XGe();C7s=Object.prototype,_5l=C7s.hasOwnProperty,V5l=C7s.toString,hPt=x2?x2.toStringTag:void 0;w7s=q5l});function H5l(e){return W5l.call(e)}var G5l,W5l,S7s,T7s=K(()=>{"use strict";G5l=Object.prototype,W5l=G5l.toString;S7s=H5l});function Y5l(e){return e==null?e===void 0?J5l:K5l:B7s&&B7s in Object(e)?w7s(e):S7s(e)}var K5l,J5l,B7s,S2,hAe=K(()=>{"use strict";XGe();x7s();T7s();K5l="[object Null]",J5l="[object Undefined]",B7s=x2?x2.toStringTag:void 0;S2=Y5l});function X5l(e){return e!=null&&typeof e=="object"}var MB,xce=K(()=>{"use strict";MB=X5l});function $5l(e){return typeof e=="symbol"||MB(e)&&S2(e)==Z5l}var Z5l,LJ,ZGe=K(()=>{"use strict";hAe();xce();Z5l="[object Symbol]";LJ=$5l});function e8l(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}var $Ge,Cir=K(()=>{"use strict";$Ge=e8l});var t8l,IA,Rj=K(()=>{"use strict";t8l=Array.isArray,IA=t8l});function D7s(e){if(typeof e=="string")return e;if(IA(e))return $Ge(e,D7s)+"";if(LJ(e))return P7s?P7s.call(e):"";var t=e+"";return t=="0"&&1/e==-r8l?"-0":t}var r8l,O7s,P7s,R7s,F7s=K(()=>{"use strict";XGe();Cir();Rj();ZGe();r8l=1/0,O7s=x2?x2.prototype:void 0,P7s=O7s?O7s.toString:void 0;R7s=D7s});function i8l(e){for(var t=e.length;t--&&n8l.test(e.charAt(t)););return t}var n8l,k7s,N7s=K(()=>{"use strict";n8l=/\s/;k7s=i8l});function s8l(e){return e&&e.slice(0,k7s(e)+1).replace(o8l,"")}var o8l,j7s,Q7s=K(()=>{"use strict";N7s();o8l=/^\s+/;j7s=s8l});function a8l(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Mv,GG=K(()=>{"use strict";Mv=a8l});function f8l(e){if(typeof e=="number")return e;if(LJ(e))return M7s;if(Mv(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Mv(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=j7s(e);var r=u8l.test(e);return r||l8l.test(e)?p8l(e.slice(2),r?2:8):c8l.test(e)?M7s:+e}var M7s,c8l,u8l,l8l,p8l,L7s,z7s=K(()=>{"use strict";Q7s();GG();ZGe();M7s=NaN,c8l=/^[-+]0x[0-9a-f]+$/i,u8l=/^0b[01]+$/i,l8l=/^0o[0-7]+$/i,p8l=parseInt;L7s=f8l});function m8l(e){if(!e)return e===0?e:0;if(e=L7s(e),e===U7s||e===-U7s){var t=e<0?-1:1;return t*d8l}return e===e?e:0}var U7s,d8l,_7s,V7s=K(()=>{"use strict";z7s();U7s=1/0,d8l=17976931348623157e292;_7s=m8l});function h8l(e){var t=_7s(e),r=t%1;return t===t?r?t-r:t:0}var q7s,G7s=K(()=>{"use strict";V7s();q7s=h8l});function g8l(e){return e}var e9e,wir=K(()=>{"use strict";e9e=g8l});function v8l(e){if(!Mv(e))return!1;var t=S2(e);return t==y8l||t==b8l||t==A8l||t==E8l}var A8l,y8l,b8l,E8l,t9e,xir=K(()=>{"use strict";hAe();GG();A8l="[object AsyncFunction]",y8l="[object Function]",b8l="[object GeneratorFunction]",E8l="[object Proxy]";t9e=v8l});var I8l,Sir,W7s=K(()=>{"use strict";qG();I8l=lw["__core-js_shared__"],Sir=I8l});function C8l(e){return!!H7s&&H7s in e}var H7s,K7s,J7s=K(()=>{"use strict";W7s();H7s=(function(){var e=/[^.]+$/.exec(Sir&&Sir.keys&&Sir.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();K7s=C8l});function S8l(e){if(e!=null){try{return x8l.call(e)}catch{}try{return e+""}catch{}}return""}var w8l,x8l,Sce,yBi=K(()=>{"use strict";w8l=Function.prototype,x8l=w8l.toString;Sce=S8l});function k8l(e){if(!Mv(e)||K7s(e))return!1;var t=t9e(e)?F8l:B8l;return t.test(Sce(e))}var T8l,B8l,O8l,P8l,D8l,R8l,F8l,Y7s,X7s=K(()=>{"use strict";xir();J7s();GG();yBi();T8l=/[\\^$.*+?()[\]{}|]/g,B8l=/^\[object .+?Constructor\]$/,O8l=Function.prototype,P8l=Object.prototype,D8l=O8l.toString,R8l=P8l.hasOwnProperty,F8l=RegExp("^"+D8l.call(R8l).replace(T8l,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Y7s=k8l});function N8l(e,t){return e?.[t]}var Z7s,$7s=K(()=>{"use strict";Z7s=N8l});function j8l(e,t){var r=Z7s(e,t);return Y7s(r)?r:void 0}var Fj,gAe=K(()=>{"use strict";X7s();$7s();Fj=j8l});var Q8l,Tir,eqs=K(()=>{"use strict";gAe();qG();Q8l=Fj(lw,"WeakMap"),Tir=Q8l});var tqs,M8l,rqs,nqs=K(()=>{"use strict";GG();tqs=Object.create,M8l=(function(){function e(){}return function(t){if(!Mv(t))return{};if(tqs)return tqs(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),rqs=M8l});function L8l(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var iqs,oqs=K(()=>{"use strict";iqs=L8l});function z8l(){}var kj,bBi=K(()=>{"use strict";kj=z8l});function U8l(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}var sqs,aqs=K(()=>{"use strict";sqs=U8l});function G8l(e){var t=0,r=0;return function(){var n=q8l(),i=V8l-(n-r);if(r=n,i>0){if(++t>=_8l)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var _8l,V8l,q8l,cqs,uqs=K(()=>{"use strict";_8l=800,V8l=16,q8l=Date.now;cqs=G8l});function W8l(e){return function(){return e}}var lqs,pqs=K(()=>{"use strict";lqs=W8l});var H8l,r9e,EBi=K(()=>{"use strict";gAe();H8l=(function(){try{var e=Fj(Object,"defineProperty");return e({},"",{}),e}catch{}})(),r9e=H8l});var K8l,fqs,dqs=K(()=>{"use strict";pqs();EBi();wir();K8l=r9e?function(e,t){return r9e(e,"toString",{configurable:!0,enumerable:!1,value:lqs(t),writable:!0})}:e9e,fqs=K8l});var J8l,mqs,hqs=K(()=>{"use strict";dqs();uqs();J8l=cqs(fqs),mqs=J8l});function Y8l(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}var gqs,Aqs=K(()=>{"use strict";gqs=Y8l});function X8l(e){return e!==e}var yqs,bqs=K(()=>{"use strict";yqs=X8l});function Z8l(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}var Eqs,vqs=K(()=>{"use strict";Eqs=Z8l});function $8l(e,t,r){return t===t?Eqs(e,t,r):gqs(e,yqs,r)}var Iqs,Cqs=K(()=>{"use strict";Aqs();bqs();vqs();Iqs=$8l});function e7l(e,t){var r=e==null?0:e.length;return!!r&&Iqs(e,t,0)>-1}var Bir,vBi=K(()=>{"use strict";Cqs();Bir=e7l});function n7l(e,t){var r=typeof e;return t=t??t7l,!!t&&(r=="number"||r!="symbol"&&r7l.test(e))&&e>-1&&e%1==0&&e<t}var t7l,r7l,AAe,gPt=K(()=>{"use strict";t7l=9007199254740991,r7l=/^(?:0|[1-9]\d*)$/;AAe=n7l});function i7l(e,t,r){t=="__proto__"&&r9e?r9e(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var Nj,yAe=K(()=>{"use strict";EBi();Nj=i7l});function o7l(e,t){return e===t||e!==e&&t!==t}var a3,cke=K(()=>{"use strict";a3=o7l});function c7l(e,t,r){var n=e[t];(!(a7l.call(e,t)&&a3(n,r))||r===void 0&&!(t in e))&&Nj(e,t,r)}var s7l,a7l,Oir,IBi=K(()=>{"use strict";yAe();cke();s7l=Object.prototype,a7l=s7l.hasOwnProperty;Oir=c7l});function u7l(e,t,r,n){var i=!r;r||(r={});for(var o=-1,s=t.length;++o<s;){var a=t[o],c=n?n(r[a],e[a],a,r,e):void 0;c===void 0&&(c=e[a]),i?Nj(r,a,c):Oir(r,a,c)}return r}var wqs,xqs=K(()=>{"use strict";IBi();yAe();wqs=u7l});function l7l(e,t,r){return t=Sqs(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,o=Sqs(n.length-t,0),s=Array(o);++i<o;)s[i]=n[t+i];i=-1;for(var a=Array(t+1);++i<t;)a[i]=n[i];return a[t]=r(s),iqs(e,this,a)}}var Sqs,Tqs,Bqs=K(()=>{"use strict";oqs();Sqs=Math.max;Tqs=l7l});function p7l(e,t){return mqs(Tqs(e,t,e9e),e+"")}var Pir,CBi=K(()=>{"use strict";wir();Bqs();hqs();Pir=p7l});function d7l(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f7l}var f7l,n9e,Dir=K(()=>{"use strict";f7l=9007199254740991;n9e=d7l});function m7l(e){return e!=null&&n9e(e.length)&&!t9e(e)}var jj,bAe=K(()=>{"use strict";xir();Dir();jj=m7l});function h7l(e,t,r){if(!Mv(r))return!1;var n=typeof t;return(n=="number"?jj(r)&&AAe(t,r.length):n=="string"&&t in r)?a3(r[t],e):!1}var Rir,wBi=K(()=>{"use strict";cke();bAe();gPt();GG();Rir=h7l});function g7l(e){return Pir(function(t,r){var n=-1,i=r.length,o=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,s&&Rir(r[0],r[1],s)&&(o=i<3?void 0:o,i=1),t=Object(t);++n<i;){var a=r[n];a&&e(t,a,n,o)}return t})}var Fir,xBi=K(()=>{"use strict";CBi();wBi();Fir=g7l});function y7l(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||A7l;return e===r}var A7l,EAe,APt=K(()=>{"use strict";A7l=Object.prototype;EAe=y7l});function b7l(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}var Oqs,Pqs=K(()=>{"use strict";Oqs=b7l});function v7l(e){return MB(e)&&S2(e)==E7l}var E7l,SBi,Dqs=K(()=>{"use strict";hAe();xce();E7l="[object Arguments]";SBi=v7l});var Rqs,I7l,C7l,w7l,WG,i9e=K(()=>{"use strict";Dqs();xce();Rqs=Object.prototype,I7l=Rqs.hasOwnProperty,C7l=Rqs.propertyIsEnumerable,w7l=SBi((function(){return arguments})())?SBi:function(e){return MB(e)&&I7l.call(e,"callee")&&!C7l.call(e,"callee")},WG=w7l});function x7l(){return!1}var Fqs,kqs=K(()=>{"use strict";Fqs=x7l});var Qqs,Nqs,S7l,jqs,T7l,B7l,Tce,yPt=K(()=>{"use strict";qG();kqs();Qqs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nqs=Qqs&&typeof module=="object"&&module&&!module.nodeType&&module,S7l=Nqs&&Nqs.exports===Qqs,jqs=S7l?lw.Buffer:void 0,T7l=jqs?jqs.isBuffer:void 0,B7l=T7l||Fqs,Tce=B7l});function $7l(e){return MB(e)&&n9e(e.length)&&!!Vb[S2(e)]}var O7l,P7l,D7l,R7l,F7l,k7l,N7l,j7l,Q7l,M7l,L7l,z7l,U7l,_7l,V7l,q7l,G7l,W7l,H7l,K7l,J7l,Y7l,X7l,Z7l,Vb,Mqs,Lqs=K(()=>{"use strict";hAe();Dir();xce();O7l="[object Arguments]",P7l="[object Array]",D7l="[object Boolean]",R7l="[object Date]",F7l="[object Error]",k7l="[object Function]",N7l="[object Map]",j7l="[object Number]",Q7l="[object Object]",M7l="[object RegExp]",L7l="[object Set]",z7l="[object String]",U7l="[object WeakMap]",_7l="[object ArrayBuffer]",V7l="[object DataView]",q7l="[object Float32Array]",G7l="[object Float64Array]",W7l="[object Int8Array]",H7l="[object Int16Array]",K7l="[object Int32Array]",J7l="[object Uint8Array]",Y7l="[object Uint8ClampedArray]",X7l="[object Uint16Array]",Z7l="[object Uint32Array]",Vb={};Vb[q7l]=Vb[G7l]=Vb[W7l]=Vb[H7l]=Vb[K7l]=Vb[J7l]=Vb[Y7l]=Vb[X7l]=Vb[Z7l]=!0;Vb[O7l]=Vb[P7l]=Vb[_7l]=Vb[D7l]=Vb[V7l]=Vb[R7l]=Vb[F7l]=Vb[k7l]=Vb[N7l]=Vb[j7l]=Vb[Q7l]=Vb[M7l]=Vb[L7l]=Vb[z7l]=Vb[U7l]=!1;Mqs=$7l});function eql(e){return function(t){return e(t)}}var kir,TBi=K(()=>{"use strict";kir=eql});var zqs,bPt,tql,BBi,rql,OBi,Uqs=K(()=>{"use strict";ABi();zqs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bPt=zqs&&typeof module=="object"&&module&&!module.nodeType&&module,tql=bPt&&bPt.exports===zqs,BBi=tql&&Iir.process,rql=(function(){try{var e=bPt&&bPt.require&&bPt.require("util").types;return e||BBi&&BBi.binding&&BBi.binding("util")}catch{}})(),OBi=rql});var _qs,nql,vAe,EPt=K(()=>{"use strict";Lqs();TBi();Uqs();_qs=OBi&&OBi.isTypedArray,nql=_qs?kir(_qs):Mqs,vAe=nql});function sql(e,t){var r=IA(e),n=!r&&WG(e),i=!r&&!n&&Tce(e),o=!r&&!n&&!i&&vAe(e),s=r||n||i||o,a=s?Oqs(e.length,String):[],c=a.length;for(var u in e)(t||oql.call(e,u))&&!(s&&(u=="length"||i&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||AAe(u,c)))&&a.push(u);return a}var iql,oql,Nir,PBi=K(()=>{"use strict";Pqs();i9e();Rj();yPt();gPt();EPt();iql=Object.prototype,oql=iql.hasOwnProperty;Nir=sql});function aql(e,t){return function(r){return e(t(r))}}var jir,DBi=K(()=>{"use strict";jir=aql});var cql,Vqs,qqs=K(()=>{"use strict";DBi();cql=jir(Object.keys,Object),Vqs=cql});function pql(e){if(!EAe(e))return Vqs(e);var t=[];for(var r in Object(e))lql.call(e,r)&&r!="constructor"&&t.push(r);return t}var uql,lql,o9e,Qir=K(()=>{"use strict";APt();qqs();uql=Object.prototype,lql=uql.hasOwnProperty;o9e=pql});function fql(e){return jj(e)?Nir(e):o9e(e)}var s9e,Mir=K(()=>{"use strict";PBi();Qir();bAe();s9e=fql});function dql(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Gqs,Wqs=K(()=>{"use strict";Gqs=dql});function gql(e){if(!Mv(e))return Gqs(e);var t=EAe(e),r=[];for(var n in e)n=="constructor"&&(t||!hql.call(e,n))||r.push(n);return r}var mql,hql,Hqs,Kqs=K(()=>{"use strict";GG();APt();Wqs();mql=Object.prototype,hql=mql.hasOwnProperty;Hqs=gql});function Aql(e){return jj(e)?Nir(e,!0):Hqs(e)}var a9e,Lir=K(()=>{"use strict";PBi();Kqs();bAe();a9e=Aql});function Eql(e,t){if(IA(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||LJ(e)?!0:bql.test(e)||!yql.test(e)||t!=null&&e in Object(t)}var yql,bql,c9e,zir=K(()=>{"use strict";Rj();ZGe();yql=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bql=/^\w*$/;c9e=Eql});var vql,Bce,vPt=K(()=>{"use strict";gAe();vql=Fj(Object,"create"),Bce=vql});function Iql(){this.__data__=Bce?Bce(null):{},this.size=0}var Jqs,Yqs=K(()=>{"use strict";vPt();Jqs=Iql});function Cql(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xqs,Zqs=K(()=>{"use strict";Xqs=Cql});function Tql(e){var t=this.__data__;if(Bce){var r=t[e];return r===wql?void 0:r}return Sql.call(t,e)?t[e]:void 0}var wql,xql,Sql,$qs,eGs=K(()=>{"use strict";vPt();wql="__lodash_hash_undefined__",xql=Object.prototype,Sql=xql.hasOwnProperty;$qs=Tql});function Pql(e){var t=this.__data__;return Bce?t[e]!==void 0:Oql.call(t,e)}var Bql,Oql,tGs,rGs=K(()=>{"use strict";vPt();Bql=Object.prototype,Oql=Bql.hasOwnProperty;tGs=Pql});function Rql(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Bce&&t===void 0?Dql:t,this}var Dql,nGs,iGs=K(()=>{"use strict";vPt();Dql="__lodash_hash_undefined__";nGs=Rql});function u9e(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var RBi,oGs=K(()=>{"use strict";Yqs();Zqs();eGs();rGs();iGs();u9e.prototype.clear=Jqs;u9e.prototype.delete=Xqs;u9e.prototype.get=$qs;u9e.prototype.has=tGs;u9e.prototype.set=nGs;RBi=u9e});function Fql(){this.__data__=[],this.size=0}var sGs,aGs=K(()=>{"use strict";sGs=Fql});function kql(e,t){for(var r=e.length;r--;)if(a3(e[r][0],t))return r;return-1}var IAe,IPt=K(()=>{"use strict";cke();IAe=kql});function Qql(e){var t=this.__data__,r=IAe(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():jql.call(t,r,1),--this.size,!0}var Nql,jql,cGs,uGs=K(()=>{"use strict";IPt();Nql=Array.prototype,jql=Nql.splice;cGs=Qql});function Mql(e){var t=this.__data__,r=IAe(t,e);return r<0?void 0:t[r][1]}var lGs,pGs=K(()=>{"use strict";IPt();lGs=Mql});function Lql(e){return IAe(this.__data__,e)>-1}var fGs,dGs=K(()=>{"use strict";IPt();fGs=Lql});function zql(e,t){var r=this.__data__,n=IAe(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var mGs,hGs=K(()=>{"use strict";IPt();mGs=zql});function l9e(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var CAe,CPt=K(()=>{"use strict";aGs();uGs();pGs();dGs();hGs();l9e.prototype.clear=sGs;l9e.prototype.delete=cGs;l9e.prototype.get=lGs;l9e.prototype.has=fGs;l9e.prototype.set=mGs;CAe=l9e});var Uql,wAe,Uir=K(()=>{"use strict";gAe();qG();Uql=Fj(lw,"Map"),wAe=Uql});function _ql(){this.size=0,this.__data__={hash:new RBi,map:new(wAe||CAe),string:new RBi}}var gGs,AGs=K(()=>{"use strict";oGs();CPt();Uir();gGs=_ql});function Vql(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yGs,bGs=K(()=>{"use strict";yGs=Vql});function qql(e,t){var r=e.__data__;return yGs(t)?r[typeof t=="string"?"string":"hash"]:r.map}var xAe,wPt=K(()=>{"use strict";bGs();xAe=qql});function Gql(e){var t=xAe(this,e).delete(e);return this.size-=t?1:0,t}var EGs,vGs=K(()=>{"use strict";wPt();EGs=Gql});function Wql(e){return xAe(this,e).get(e)}var IGs,CGs=K(()=>{"use strict";wPt();IGs=Wql});function Hql(e){return xAe(this,e).has(e)}var wGs,xGs=K(()=>{"use strict";wPt();wGs=Hql});function Kql(e,t){var r=xAe(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var SGs,TGs=K(()=>{"use strict";wPt();SGs=Kql});function p9e(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var uke,_ir=K(()=>{"use strict";AGs();vGs();CGs();xGs();TGs();p9e.prototype.clear=gGs;p9e.prototype.delete=EGs;p9e.prototype.get=IGs;p9e.prototype.has=wGs;p9e.prototype.set=SGs;uke=p9e});function FBi(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Jql);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(FBi.Cache||uke),r}var Jql,BGs,OGs=K(()=>{"use strict";_ir();Jql="Expected a function";FBi.Cache=uke;BGs=FBi});function Xql(e){var t=BGs(e,function(n){return r.size===Yql&&r.clear(),n}),r=t.cache;return t}var Yql,PGs,DGs=K(()=>{"use strict";OGs();Yql=500;PGs=Xql});var Zql,$ql,eGl,RGs,FGs=K(()=>{"use strict";DGs();Zql=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$ql=/\\(\\)?/g,eGl=PGs(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Zql,function(r,n,i,o){t.push(i?o.replace($ql,"$1"):n||r)}),t}),RGs=eGl});function tGl(e){return e==null?"":R7s(e)}var zJ,f9e=K(()=>{"use strict";F7s();zJ=tGl});function rGl(e,t){return IA(e)?e:c9e(e,t)?[e]:RGs(zJ(e))}var SAe,xPt=K(()=>{"use strict";Rj();zir();FGs();f9e();SAe=rGl});function iGl(e){if(typeof e=="string"||LJ(e))return e;var t=e+"";return t=="0"&&1/e==-nGl?"-0":t}var nGl,UJ,d9e=K(()=>{"use strict";ZGe();nGl=1/0;UJ=iGl});function oGl(e,t){t=SAe(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[UJ(t[r++])];return r&&r==n?e:void 0}var m9e,Vir=K(()=>{"use strict";xPt();d9e();m9e=oGl});function sGl(e,t,r){var n=e==null?void 0:m9e(e,t);return n===void 0?r:n}var kGs,NGs=K(()=>{"use strict";Vir();kGs=sGl});function aGl(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}var h9e,qir=K(()=>{"use strict";h9e=aGl});function cGl(e){return IA(e)||WG(e)||!!(jGs&&e&&e[jGs])}var jGs,QGs,MGs=K(()=>{"use strict";XGe();i9e();Rj();jGs=x2?x2.isConcatSpreadable:void 0;QGs=cGl});function LGs(e,t,r,n,i){var o=-1,s=e.length;for(r||(r=QGs),i||(i=[]);++o<s;){var a=e[o];t>0&&r(a)?t>1?LGs(a,t-1,r,n,i):h9e(i,a):n||(i[i.length]=a)}return i}var zGs,UGs=K(()=>{"use strict";qir();MGs();zGs=LGs});var uGl,g9e,Gir=K(()=>{"use strict";DBi();uGl=jir(Object.getPrototypeOf,Object),g9e=uGl});function hGl(e){if(!MB(e)||S2(e)!=lGl)return!1;var t=g9e(e);if(t===null)return!0;var r=dGl.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&_Gs.call(r)==mGl}var lGl,pGl,fGl,_Gs,dGl,mGl,SPt,kBi=K(()=>{"use strict";hAe();Gir();xce();lGl="[object Object]",pGl=Function.prototype,fGl=Object.prototype,_Gs=pGl.toString,dGl=fGl.hasOwnProperty,mGl=_Gs.call(Object);SPt=hGl});function gGl(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++n<i;)o[n]=e[n+t];return o}var Wir,NBi=K(()=>{"use strict";Wir=gGl});function AGl(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:Wir(e,t,r)}var VGs,qGs=K(()=>{"use strict";NBi();VGs=AGl});function SGl(e){return xGl.test(e)}var yGl,bGl,EGl,vGl,IGl,CGl,wGl,xGl,A9e,Hir=K(()=>{"use strict";yGl="\\ud800-\\udfff",bGl="\\u0300-\\u036f",EGl="\\ufe20-\\ufe2f",vGl="\\u20d0-\\u20ff",IGl=bGl+EGl+vGl,CGl="\\ufe0e\\ufe0f",wGl="\\u200d",xGl=RegExp("["+wGl+yGl+IGl+CGl+"]");A9e=SGl});function TGl(e){return e.split("")}var GGs,WGs=K(()=>{"use strict";GGs=TGl});function zGl(e){return e.match(LGl)||[]}var HGs,BGl,OGl,PGl,DGl,RGl,FGl,jBi,QBi,kGl,KGs,JGs,YGs,NGl,XGs,ZGs,jGl,QGl,MGl,LGl,$Gs,e9s=K(()=>{"use strict";HGs="\\ud800-\\udfff",BGl="\\u0300-\\u036f",OGl="\\ufe20-\\ufe2f",PGl="\\u20d0-\\u20ff",DGl=BGl+OGl+PGl,RGl="\\ufe0e\\ufe0f",FGl="["+HGs+"]",jBi="["+DGl+"]",QBi="\\ud83c[\\udffb-\\udfff]",kGl="(?:"+jBi+"|"+QBi+")",KGs="[^"+HGs+"]",JGs="(?:\\ud83c[\\udde6-\\uddff]){2}",YGs="[\\ud800-\\udbff][\\udc00-\\udfff]",NGl="\\u200d",XGs=kGl+"?",ZGs="["+RGl+"]?",jGl="(?:"+NGl+"(?:"+[KGs,JGs,YGs].join("|")+")"+ZGs+XGs+")*",QGl=ZGs+XGs+jGl,MGl="(?:"+[KGs+jBi+"?",jBi,JGs,YGs,FGl].join("|")+")",LGl=RegExp(QBi+"(?="+QBi+")|"+MGl+QGl,"g");$Gs=zGl});function UGl(e){return A9e(e)?$Gs(e):GGs(e)}var t9s,r9s=K(()=>{"use strict";WGs();Hir();e9s();t9s=UGl});function _Gl(e){return function(t){t=zJ(t);var r=A9e(t)?t9s(t):void 0,n=r?r[0]:t.charAt(0),i=r?VGs(r,1).join(""):t.slice(1);return n[e]()+i}}var n9s,i9s=K(()=>{"use strict";qGs();Hir();r9s();f9e();n9s=_Gl});var VGl,rl,Kir=K(()=>{"use strict";i9s();VGl=n9s("toUpperCase"),rl=VGl});function qGl(e){return rl(zJ(e).toLowerCase())}var TPt,MBi=K(()=>{"use strict";f9e();Kir();TPt=qGl});function GGl(e,t,r,n){var i=-1,o=e==null?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}var o9s,s9s=K(()=>{"use strict";o9s=GGl});function WGl(e){return function(t){return e?.[t]}}var a9s,c9s=K(()=>{"use strict";a9s=WGl});var HGl,KGl,u9s,l9s=K(()=>{"use strict";c9s();HGl={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},KGl=a9s(HGl),u9s=KGl});function r9l(e){return e=zJ(e),e&&e.replace(JGl,u9s).replace(t9l,"")}var JGl,YGl,XGl,ZGl,$Gl,e9l,t9l,p9s,f9s=K(()=>{"use strict";l9s();f9e();JGl=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,YGl="\\u0300-\\u036f",XGl="\\ufe20-\\ufe2f",ZGl="\\u20d0-\\u20ff",$Gl=YGl+XGl+ZGl,e9l="["+$Gl+"]",t9l=RegExp(e9l,"g");p9s=r9l});function i9l(e){return e.match(n9l)||[]}var n9l,d9s,m9s=K(()=>{"use strict";n9l=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;d9s=i9l});function s9l(e){return o9l.test(e)}var o9l,h9s,g9s=K(()=>{"use strict";o9l=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;h9s=s9l});function O9l(e){return e.match(B9l)||[]}var v9s,a9l,c9l,u9l,l9l,I9s,C9s,p9l,f9l,d9l,m9l,w9s,h9l,x9s,S9s,A9s,g9l,T9s,A9l,B9s,O9s,y9l,b9l,E9l,P9s,D9s,y9e,v9l,y9s,I9l,b9s,E9s,R9s,F9s,C9l,w9l,x9l,S9l,T9l,B9l,k9s,N9s=K(()=>{"use strict";v9s="\\ud800-\\udfff",a9l="\\u0300-\\u036f",c9l="\\ufe20-\\ufe2f",u9l="\\u20d0-\\u20ff",l9l=a9l+c9l+u9l,I9s="\\u2700-\\u27bf",C9s="a-z\\xdf-\\xf6\\xf8-\\xff",p9l="\\xac\\xb1\\xd7\\xf7",f9l="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",d9l="\\u2000-\\u206f",m9l=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",w9s="A-Z\\xc0-\\xd6\\xd8-\\xde",h9l="\\ufe0e\\ufe0f",x9s=p9l+f9l+d9l+m9l,S9s="['\u2019]",A9s="["+x9s+"]",g9l="["+l9l+"]",T9s="\\d+",A9l="["+I9s+"]",B9s="["+C9s+"]",O9s="[^"+v9s+x9s+T9s+I9s+C9s+w9s+"]",y9l="\\ud83c[\\udffb-\\udfff]",b9l="(?:"+g9l+"|"+y9l+")",E9l="[^"+v9s+"]",P9s="(?:\\ud83c[\\udde6-\\uddff]){2}",D9s="[\\ud800-\\udbff][\\udc00-\\udfff]",y9e="["+w9s+"]",v9l="\\u200d",y9s="(?:"+B9s+"|"+O9s+")",I9l="(?:"+y9e+"|"+O9s+")",b9s="(?:"+S9s+"(?:d|ll|m|re|s|t|ve))?",E9s="(?:"+S9s+"(?:D|LL|M|RE|S|T|VE))?",R9s=b9l+"?",F9s="["+h9l+"]?",C9l="(?:"+v9l+"(?:"+[E9l,P9s,D9s].join("|")+")"+F9s+R9s+")*",w9l="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",x9l="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",S9l=F9s+R9s+C9l,T9l="(?:"+[A9l,P9s,D9s].join("|")+")"+S9l,B9l=RegExp([y9e+"?"+B9s+"+"+b9s+"(?="+[A9s,y9e,"$"].join("|")+")",I9l+"+"+E9s+"(?="+[A9s,y9e+y9s,"$"].join("|")+")",y9e+"?"+y9s+"+"+b9s,y9e+"+"+E9s,x9l,w9l,T9s,T9l].join("|"),"g");k9s=O9l});function P9l(e,t,r){return e=zJ(e),t=r?void 0:t,t===void 0?h9s(e)?k9s(e):d9s(e):e.match(t)||[]}var BPt,LBi=K(()=>{"use strict";m9s();g9s();f9e();N9s();BPt=P9l});function F9l(e){return function(t){return o9s(BPt(p9s(t).replace(R9l,"")),e,"")}}var D9l,R9l,TAe,OPt=K(()=>{"use strict";s9s();f9s();LBi();D9l="['\u2019]",R9l=RegExp(D9l,"g");TAe=F9l});var k9l,si,j9s=K(()=>{"use strict";MBi();OPt();k9l=TAe(function(e,t,r){return t=t.toLowerCase(),e+(r?TPt(t):t)}),si=k9l});function Q9l(e,t,r){(r?Rir(e,t,r):t===void 0)?t=1:t=j9l(q7s(t),0);var n=e==null?0:e.length;if(!n||t<1)return[];for(var i=0,o=0,s=Array(N9l(n/t));i<n;)s[o++]=Wir(e,i,i+=t);return s}var N9l,j9l,PPt,Q9s=K(()=>{"use strict";NBi();wBi();G7s();N9l=Math.ceil,j9l=Math.max;PPt=Q9l});function M9l(){this.__data__=new CAe,this.size=0}var M9s,L9s=K(()=>{"use strict";CPt();M9s=M9l});function L9l(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var z9s,U9s=K(()=>{"use strict";z9s=L9l});function z9l(e){return this.__data__.get(e)}var _9s,V9s=K(()=>{"use strict";_9s=z9l});function U9l(e){return this.__data__.has(e)}var q9s,G9s=K(()=>{"use strict";q9s=U9l});function V9l(e,t){var r=this.__data__;if(r instanceof CAe){var n=r.__data__;if(!wAe||n.length<_9l-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new uke(n)}return r.set(e,t),this.size=r.size,this}var _9l,W9s,H9s=K(()=>{"use strict";CPt();Uir();_ir();_9l=200;W9s=V9l});function b9e(e){var t=this.__data__=new CAe(e);this.size=t.size}var BAe,Jir=K(()=>{"use strict";CPt();L9s();U9s();V9s();G9s();H9s();b9e.prototype.clear=M9s;b9e.prototype.delete=z9s;b9e.prototype.get=_9s;b9e.prototype.has=q9s;b9e.prototype.set=W9s;BAe=b9e});function G9l(e,t){if(t)return e.slice();var r=e.length,n=Y9s?Y9s(r):new e.constructor(r);return e.copy(n),n}var X9s,K9s,q9l,J9s,Y9s,Z9s,$9s=K(()=>{"use strict";qG();X9s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,K9s=X9s&&typeof module=="object"&&module&&!module.nodeType&&module,q9l=K9s&&K9s.exports===X9s,J9s=q9l?lw.Buffer:void 0,Y9s=J9s?J9s.allocUnsafe:void 0;Z9s=G9l});function W9l(e,t){for(var r=-1,n=e==null?0:e.length,i=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[i++]=s)}return o}var eWs,tWs=K(()=>{"use strict";eWs=W9l});function H9l(){return[]}var Yir,zBi=K(()=>{"use strict";Yir=H9l});var K9l,J9l,rWs,Y9l,Xir,UBi=K(()=>{"use strict";tWs();zBi();K9l=Object.prototype,J9l=K9l.propertyIsEnumerable,rWs=Object.getOwnPropertySymbols,Y9l=rWs?function(e){return e==null?[]:(e=Object(e),eWs(rWs(e),function(t){return J9l.call(e,t)}))}:Yir,Xir=Y9l});var X9l,Z9l,nWs,iWs=K(()=>{"use strict";qir();Gir();UBi();zBi();X9l=Object.getOwnPropertySymbols,Z9l=X9l?function(e){for(var t=[];e;)h9e(t,Xir(e)),e=g9e(e);return t}:Yir,nWs=Z9l});function $9l(e,t,r){var n=t(e);return IA(e)?n:h9e(n,r(e))}var Zir,_Bi=K(()=>{"use strict";qir();Rj();Zir=$9l});function eWl(e){return Zir(e,s9e,Xir)}var VBi,oWs=K(()=>{"use strict";_Bi();UBi();Mir();VBi=eWl});function tWl(e){return Zir(e,a9e,nWs)}var sWs,aWs=K(()=>{"use strict";_Bi();iWs();Lir();sWs=tWl});var rWl,$ir,cWs=K(()=>{"use strict";gAe();qG();rWl=Fj(lw,"DataView"),$ir=rWl});var nWl,eor,uWs=K(()=>{"use strict";gAe();qG();nWl=Fj(lw,"Promise"),eor=nWl});var iWl,OAe,qBi=K(()=>{"use strict";gAe();qG();iWl=Fj(lw,"Set"),OAe=iWl});var lWs,oWl,pWs,fWs,dWs,mWs,sWl,aWl,cWl,uWl,lWl,lke,pke,tor=K(()=>{"use strict";cWs();Uir();uWs();qBi();eqs();hAe();yBi();lWs="[object Map]",oWl="[object Object]",pWs="[object Promise]",fWs="[object Set]",dWs="[object WeakMap]",mWs="[object DataView]",sWl=Sce($ir),aWl=Sce(wAe),cWl=Sce(eor),uWl=Sce(OAe),lWl=Sce(Tir),lke=S2;($ir&&lke(new $ir(new ArrayBuffer(1)))!=mWs||wAe&&lke(new wAe)!=lWs||eor&&lke(eor.resolve())!=pWs||OAe&&lke(new OAe)!=fWs||Tir&&lke(new Tir)!=dWs)&&(lke=function(e){var t=S2(e),r=t==oWl?e.constructor:void 0,n=r?Sce(r):"";if(n)switch(n){case sWl:return mWs;case aWl:return lWs;case cWl:return pWs;case uWl:return fWs;case lWl:return dWs}return t});pke=lke});var pWl,E9e,GBi=K(()=>{"use strict";qG();pWl=lw.Uint8Array,E9e=pWl});function fWl(e){var t=new e.constructor(e.byteLength);return new E9e(t).set(new E9e(e)),t}var hWs,gWs=K(()=>{"use strict";GBi();hWs=fWl});function dWl(e,t){var r=t?hWs(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var AWs,yWs=K(()=>{"use strict";gWs();AWs=dWl});function mWl(e){return typeof e.constructor=="function"&&!EAe(e)?rqs(g9e(e)):{}}var bWs,EWs=K(()=>{"use strict";nqs();Gir();APt();bWs=mWl});function hWl(e){for(var t=-1,r=e==null?0:e.length,n=0,i=[];++t<r;){var o=e[t];o&&(i[n++]=o)}return i}var pU,vWs=K(()=>{"use strict";pU=hWl});function AWl(e){return this.__data__.set(e,gWl),this}var gWl,IWs,CWs=K(()=>{"use strict";gWl="__lodash_hash_undefined__";IWs=AWl});function yWl(e){return this.__data__.has(e)}var wWs,xWs=K(()=>{"use strict";wWs=yWl});function ror(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new uke;++t<r;)this.add(e[t])}var v9e,nor=K(()=>{"use strict";_ir();CWs();xWs();ror.prototype.add=ror.prototype.push=IWs;ror.prototype.has=wWs;v9e=ror});function bWl(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var SWs,TWs=K(()=>{"use strict";SWs=bWl});function EWl(e,t){return e.has(t)}var I9e,ior=K(()=>{"use strict";I9e=EWl});function CWl(e,t,r,n,i,o){var s=r&vWl,a=e.length,c=t.length;if(a!=c&&!(s&&c>a))return!1;var u=o.get(e),l=o.get(t);if(u&&l)return u==t&&l==e;var p=-1,d=!0,f=r&IWl?new v9e:void 0;for(o.set(e,t),o.set(t,e);++p<a;){var m=e[p],h=t[p];if(n)var A=s?n(h,m,p,t,e,o):n(m,h,p,e,t,o);if(A!==void 0){if(A)continue;d=!1;break}if(f){if(!SWs(t,function(y,I){if(!I9e(f,I)&&(m===y||i(m,y,r,n,o)))return f.push(I)})){d=!1;break}}else if(!(m===h||i(m,h,r,n,o))){d=!1;break}}return o.delete(e),o.delete(t),d}var vWl,IWl,oor,WBi=K(()=>{"use strict";nor();TWs();ior();vWl=1,IWl=2;oor=CWl});function wWl(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}var BWs,OWs=K(()=>{"use strict";BWs=wWl});function xWl(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var C9e,sor=K(()=>{"use strict";C9e=xWl});function LWl(e,t,r,n,i,o,s){switch(r){case MWl:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case QWl:return!(e.byteLength!=t.byteLength||!o(new E9e(e),new E9e(t)));case BWl:case OWl:case RWl:return a3(+e,+t);case PWl:return e.name==t.name&&e.message==t.message;case FWl:case NWl:return e==t+"";case DWl:var a=BWs;case kWl:var c=n&SWl;if(a||(a=C9e),e.size!=t.size&&!c)return!1;var u=s.get(e);if(u)return u==t;n|=TWl,s.set(e,t);var l=oor(a(e),a(t),n,i,o,s);return s.delete(e),l;case jWl:if(HBi)return HBi.call(e)==HBi.call(t)}return!1}var SWl,TWl,BWl,OWl,PWl,DWl,RWl,FWl,kWl,NWl,jWl,QWl,MWl,PWs,HBi,DWs,RWs=K(()=>{"use strict";XGe();GBi();cke();WBi();OWs();sor();SWl=1,TWl=2,BWl="[object Boolean]",OWl="[object Date]",PWl="[object Error]",DWl="[object Map]",RWl="[object Number]",FWl="[object RegExp]",kWl="[object Set]",NWl="[object String]",jWl="[object Symbol]",QWl="[object ArrayBuffer]",MWl="[object DataView]",PWs=x2?x2.prototype:void 0,HBi=PWs?PWs.valueOf:void 0;DWs=LWl});function VWl(e,t,r,n,i,o){var s=r&zWl,a=VBi(e),c=a.length,u=VBi(t),l=u.length;if(c!=l&&!s)return!1;for(var p=c;p--;){var d=a[p];if(!(s?d in t:_Wl.call(t,d)))return!1}var f=o.get(e),m=o.get(t);if(f&&m)return f==t&&m==e;var h=!0;o.set(e,t),o.set(t,e);for(var A=s;++p<c;){d=a[p];var y=e[d],I=t[d];if(n)var w=s?n(I,y,d,t,e,o):n(y,I,d,e,t,o);if(!(w===void 0?y===I||i(y,I,r,n,o):w)){h=!1;break}A||(A=d=="constructor")}if(h&&!A){var C=e.constructor,x=t.constructor;C!=x&&"constructor"in e&&"constructor"in t&&!(typeof C=="function"&&C instanceof C&&typeof x=="function"&&x instanceof x)&&(h=!1)}return o.delete(e),o.delete(t),h}var zWl,UWl,_Wl,FWs,kWs=K(()=>{"use strict";oWs();zWl=1,UWl=Object.prototype,_Wl=UWl.hasOwnProperty;FWs=VWl});function WWl(e,t,r,n,i,o){var s=IA(e),a=IA(t),c=s?jWs:pke(e),u=a?jWs:pke(t);c=c==NWs?aor:c,u=u==NWs?aor:u;var l=c==aor,p=u==aor,d=c==u;if(d&&Tce(e)){if(!Tce(t))return!1;s=!0,l=!1}if(d&&!l)return o||(o=new BAe),s||vAe(e)?oor(e,t,r,n,i,o):DWs(e,t,c,r,n,i,o);if(!(r&qWl)){var f=l&&QWs.call(e,"__wrapped__"),m=p&&QWs.call(t,"__wrapped__");if(f||m){var h=f?e.value():e,A=m?t.value():t;return o||(o=new BAe),i(h,A,r,n,o)}}return d?(o||(o=new BAe),FWs(e,t,r,n,i,o)):!1}var qWl,NWs,jWs,aor,GWl,QWs,MWs,LWs=K(()=>{"use strict";Jir();WBi();RWs();kWs();tor();Rj();yPt();EPt();qWl=1,NWs="[object Arguments]",jWs="[object Array]",aor="[object Object]",GWl=Object.prototype,QWs=GWl.hasOwnProperty;MWs=WWl});function zWs(e,t,r,n,i){return e===t?!0:e==null||t==null||!MB(e)&&!MB(t)?e!==e&&t!==t:MWs(e,t,r,n,zWs,i)}var PAe,DPt=K(()=>{"use strict";LWs();xce();PAe=zWs});function JWl(e,t,r,n){var i=r.length,o=i,s=!n;if(e==null)return!o;for(e=Object(e);i--;){var a=r[i];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<o;){a=r[i];var c=a[0],u=e[c],l=a[1];if(s&&a[2]){if(u===void 0&&!(c in e))return!1}else{var p=new BAe;if(n)var d=n(u,l,c,e,t,p);if(!(d===void 0?PAe(l,u,HWl|KWl,n,p):d))return!1}}return!0}var HWl,KWl,UWs,_Ws=K(()=>{"use strict";Jir();DPt();HWl=1,KWl=2;UWs=JWl});function YWl(e){return e===e&&!Mv(e)}var cor,KBi=K(()=>{"use strict";GG();cor=YWl});function XWl(e){for(var t=s9e(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,cor(i)]}return t}var VWs,qWs=K(()=>{"use strict";KBi();Mir();VWs=XWl});function ZWl(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var uor,JBi=K(()=>{"use strict";uor=ZWl});function $Wl(e){var t=VWs(e);return t.length==1&&t[0][2]?uor(t[0][0],t[0][1]):function(r){return r===e||UWs(r,e,t)}}var GWs,WWs=K(()=>{"use strict";_Ws();qWs();JBi();GWs=$Wl});function eHl(e,t){return e!=null&&t in Object(e)}var HWs,KWs=K(()=>{"use strict";HWs=eHl});function tHl(e,t,r){t=SAe(t,e);for(var n=-1,i=t.length,o=!1;++n<i;){var s=UJ(t[n]);if(!(o=e!=null&&r(e,s)))break;e=e[s]}return o||++n!=i?o:(i=e==null?0:e.length,!!i&&n9e(i)&&AAe(s,i)&&(IA(e)||WG(e)))}var JWs,YWs=K(()=>{"use strict";xPt();i9e();Rj();gPt();Dir();d9e();JWs=tHl});function rHl(e,t){return e!=null&&JWs(e,t,HWs)}var XWs,ZWs=K(()=>{"use strict";KWs();YWs();XWs=rHl});function oHl(e,t){return c9e(e)&&cor(t)?uor(UJ(e),t):function(r){var n=kGs(r,e);return n===void 0&&n===t?XWs(r,e):PAe(t,n,nHl|iHl)}}var nHl,iHl,$Ws,eHs=K(()=>{"use strict";DPt();NGs();ZWs();zir();KBi();JBi();d9e();nHl=1,iHl=2;$Ws=oHl});function sHl(e){return function(t){return t?.[e]}}var lor,YBi=K(()=>{"use strict";lor=sHl});function aHl(e){return function(t){return m9e(t,e)}}var tHs,rHs=K(()=>{"use strict";Vir();tHs=aHl});function cHl(e){return c9e(e)?lor(UJ(e)):tHs(e)}var nHs,iHs=K(()=>{"use strict";YBi();rHs();zir();d9e();nHs=cHl});function uHl(e){return typeof e=="function"?e:e==null?e9e:typeof e=="object"?IA(e)?$Ws(e[0],e[1]):GWs(e):nHs(e)}var fU,fke=K(()=>{"use strict";WWs();eHs();wir();Rj();iHs();fU=uHl});function lHl(e,t,r,n){for(var i=-1,o=e==null?0:e.length;++i<o;){var s=e[i];t(n,s,r(s),e)}return n}var oHs,sHs=K(()=>{"use strict";oHs=lHl});function pHl(e){return function(t,r,n){for(var i=-1,o=Object(t),s=n(t),a=s.length;a--;){var c=s[e?a:++i];if(r(o[c],c,o)===!1)break}return t}}var aHs,cHs=K(()=>{"use strict";aHs=pHl});var fHl,por,XBi=K(()=>{"use strict";cHs();fHl=aHs(),por=fHl});function dHl(e,t){return e&&por(e,t,s9e)}var w9e,dor=K(()=>{"use strict";XBi();Mir();w9e=dHl});function mHl(e,t){return function(r,n){if(r==null)return r;if(!jj(r))return e(r,n);for(var i=r.length,o=t?i:-1,s=Object(r);(t?o--:++o<i)&&n(s[o],o,s)!==!1;);return r}}var uHs,lHs=K(()=>{"use strict";bAe();uHs=mHl});var hHl,pHs,fHs=K(()=>{"use strict";dor();lHs();hHl=uHs(w9e),pHs=hHl});function gHl(e,t,r,n){return pHs(e,function(i,o,s){t(n,i,r(i),s)}),n}var dHs,mHs=K(()=>{"use strict";fHs();dHs=gHl});function AHl(e,t){return function(r,n){var i=IA(r)?oHs:dHs,o=t?t():{};return i(r,e,fU(n,2),o)}}var mor,ZBi=K(()=>{"use strict";sHs();mHs();fke();Rj();mor=AHl});function yHl(e,t,r){(r!==void 0&&!a3(e[t],r)||r===void 0&&!(t in e))&&Nj(e,t,r)}var RPt,$Bi=K(()=>{"use strict";yAe();cke();RPt=yHl});function bHl(e){return MB(e)&&jj(e)}var FPt,eOi=K(()=>{"use strict";bAe();xce();FPt=bHl});function EHl(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var kPt,tOi=K(()=>{"use strict";kPt=EHl});function vHl(e){return wqs(e,a9e(e))}var hHs,gHs=K(()=>{"use strict";xqs();Lir();hHs=vHl});function IHl(e,t,r,n,i,o,s){var a=kPt(e,r),c=kPt(t,r),u=s.get(c);if(u){RPt(e,r,u);return}var l=o?o(a,c,r+"",e,t,s):void 0,p=l===void 0;if(p){var d=IA(c),f=!d&&Tce(c),m=!d&&!f&&vAe(c);l=c,d||f||m?IA(a)?l=a:FPt(a)?l=sqs(a):f?(p=!1,l=Z9s(c,!0)):m?(p=!1,l=AWs(c,!0)):l=[]:SPt(c)||WG(c)?(l=a,WG(a)?l=hHs(a):(!Mv(a)||t9e(a))&&(l=bWs(c))):p=!1}p&&(s.set(c,l),i(l,c,n,o,s),s.delete(c)),RPt(e,r,l)}var AHs,yHs=K(()=>{"use strict";$Bi();$9s();yWs();aqs();EWs();i9e();Rj();eOi();yPt();xir();GG();kBi();EPt();tOi();gHs();AHs=IHl});function bHs(e,t,r,n,i){e!==t&&por(t,function(o,s){if(i||(i=new BAe),Mv(o))AHs(e,t,s,r,bHs,n,i);else{var a=n?n(kPt(e,s),o,s+"",e,t,i):void 0;a===void 0&&(a=o),RPt(e,s,a)}},a9e)}var hor,rOi=K(()=>{"use strict";Jir();$Bi();XBi();yHs();GG();Lir();tOi();hor=bHs});var CHl,gor,EHs=K(()=>{"use strict";rOi();xBi();CHl=Fir(function(e,t,r,n){hor(e,t,r,n)}),gor=CHl});function wHl(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}var Aor,nOi=K(()=>{"use strict";Aor=wHl});function SHl(e,t,r,n){var i=-1,o=Bir,s=!0,a=e.length,c=[],u=t.length;if(!a)return c;r&&(t=$Ge(t,kir(r))),n?(o=Aor,s=!1):t.length>=xHl&&(o=I9e,s=!1,t=new v9e(t));e:for(;++i<a;){var l=e[i],p=r==null?l:r(l);if(l=n||l!==0?l:0,s&&p===p){for(var d=u;d--;)if(t[d]===p)continue e;c.push(l)}else o(t,p,n)||c.push(l)}return c}var xHl,vHs,IHs=K(()=>{"use strict";nor();vBi();nOi();Cir();TBi();ior();xHl=200;vHs=SHl});var THl,yor,CHs=K(()=>{"use strict";IHs();UGs();CBi();eOi();THl=Pir(function(e,t){return FPt(e)?vHs(e,zGs(t,1,FPt,!0)):[]}),yor=THl});function BHl(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var iOi,wHs=K(()=>{"use strict";iOi=BHl});var OHl,PHl,DHl,oOi,xHs=K(()=>{"use strict";yAe();ZBi();OHl=Object.prototype,PHl=OHl.hasOwnProperty,DHl=mor(function(e,t,r){PHl.call(e,r)?e[r].push(t):Nj(e,r,[t])}),oOi=DHl});function RHl(e,t){return e>t}var SHs,THs=K(()=>{"use strict";SHs=RHl});function kHl(e){return typeof e=="string"||!IA(e)&&MB(e)&&S2(e)==FHl}var FHl,BHs,OHs=K(()=>{"use strict";hAe();Rj();xce();FHl="[object String]";BHs=kHl});function LHl(e){if(e==null)return!0;if(jj(e)&&(IA(e)||typeof e=="string"||typeof e.splice=="function"||Tce(e)||vAe(e)||WG(e)))return!e.length;var t=pke(e);if(t==NHl||t==jHl)return!e.size;if(EAe(e))return!o9e(e).length;for(var r in e)if(MHl.call(e,r))return!1;return!0}var NHl,jHl,QHl,MHl,sOi,PHs=K(()=>{"use strict";Qir();tor();i9e();Rj();bAe();yPt();APt();EPt();NHl="[object Map]",jHl="[object Set]",QHl=Object.prototype,MHl=QHl.hasOwnProperty;sOi=LHl});function zHl(e,t){return PAe(e,t)}var Lv,aOi=K(()=>{"use strict";DPt();Lv=zHl});function UHl(e,t,r){r=typeof r=="function"?r:void 0;var n=r?r(e,t):void 0;return n===void 0?PAe(e,t,void 0,r):!!n}var _J,DHs=K(()=>{"use strict";DPt();_J=UHl});function _Hl(e){return e===null}var cOi,RHs=K(()=>{"use strict";cOi=_Hl});var VHl,qm,FHs=K(()=>{"use strict";OPt();VHl=TAe(function(e,t,r){return e+(r?"-":"")+t.toLowerCase()}),qm=VHl});var qHl,uOi,kHs=K(()=>{"use strict";yAe();ZBi();qHl=mor(function(e,t,r){Nj(e,r,t)}),uOi=qHl});function GHl(e,t){var r={};return t=fU(t,3),w9e(e,function(n,i,o){Nj(r,t(n,i,o),n)}),r}var NPt,NHs=K(()=>{"use strict";yAe();dor();fke();NPt=GHl});function WHl(e,t){var r={};return t=fU(t,3),w9e(e,function(n,i,o){Nj(r,i,t(n,i,o))}),r}var Ip,jHs=K(()=>{"use strict";yAe();dor();fke();Ip=WHl});function HHl(e,t,r){for(var n=-1,i=e.length;++n<i;){var o=e[n],s=t(o);if(s!=null&&(a===void 0?s===s&&!LJ(s):r(s,a)))var a=s,c=o}return c}var QHs,MHs=K(()=>{"use strict";ZGe();QHs=HHl});function KHl(e,t){return e&&e.length?QHs(e,fU(t,2),SHs):void 0}var lOi,LHs=K(()=>{"use strict";MHs();THs();fke();lOi=KHl});var JHl,bor,zHs=K(()=>{"use strict";rOi();xBi();JHl=Fir(function(e,t,r){hor(e,t,r)}),bor=JHl});function XHl(e){if(typeof e!="function")throw new TypeError(YHl);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var YHl,UHs,_Hs=K(()=>{"use strict";YHl="Expected a function";UHs=XHl});function ZHl(e,t,r,n){if(!Mv(e))return e;t=SAe(t,e);for(var i=-1,o=t.length,s=o-1,a=e;a!=null&&++i<o;){var c=UJ(t[i]),u=r;if(c==="__proto__"||c==="constructor"||c==="prototype")return e;if(i!=s){var l=a[c];u=n?n(l,c,a):void 0,u===void 0&&(u=Mv(l)?l:AAe(t[i+1])?[]:{})}Oir(a,c,u),a=a[c]}return e}var VHs,qHs=K(()=>{"use strict";IBi();xPt();gPt();GG();d9e();VHs=ZHl});function $Hl(e,t,r){for(var n=-1,i=t.length,o={};++n<i;){var s=t[n],a=m9e(e,s);r(a,s)&&VHs(o,SAe(s,e),a)}return o}var GHs,WHs=K(()=>{"use strict";Vir();qHs();xPt();GHs=$Hl});function eKl(e,t){if(e==null)return{};var r=$Ge(sWs(e),function(n){return[n]});return t=fU(t),GHs(e,r,function(n,i){return t(n,i[0])})}var dke,pOi=K(()=>{"use strict";Cir();fke();WHs();aWs();dke=eKl});function tKl(e,t){return dke(e,UHs(fU(t)))}var fOi,HHs=K(()=>{"use strict";fke();_Hs();pOi();fOi=tKl});var rKl,KHs,JHs=K(()=>{"use strict";YBi();rKl=lor("length"),KHs=rKl});function mKl(e){for(var t=YHs.lastIndex=0;YHs.test(e);)++t;return t}var XHs,nKl,iKl,oKl,sKl,aKl,cKl,dOi,mOi,uKl,ZHs,$Hs,eKs,lKl,tKs,rKs,pKl,fKl,dKl,YHs,nKs,iKs=K(()=>{"use strict";XHs="\\ud800-\\udfff",nKl="\\u0300-\\u036f",iKl="\\ufe20-\\ufe2f",oKl="\\u20d0-\\u20ff",sKl=nKl+iKl+oKl,aKl="\\ufe0e\\ufe0f",cKl="["+XHs+"]",dOi="["+sKl+"]",mOi="\\ud83c[\\udffb-\\udfff]",uKl="(?:"+dOi+"|"+mOi+")",ZHs="[^"+XHs+"]",$Hs="(?:\\ud83c[\\udde6-\\uddff]){2}",eKs="[\\ud800-\\udbff][\\udc00-\\udfff]",lKl="\\u200d",tKs=uKl+"?",rKs="["+aKl+"]?",pKl="(?:"+lKl+"(?:"+[ZHs,$Hs,eKs].join("|")+")"+rKs+tKs+")*",fKl=rKs+tKs+pKl,dKl="(?:"+[ZHs+dOi+"?",dOi,$Hs,eKs,cKl].join("|")+")",YHs=RegExp(mOi+"(?="+mOi+")|"+dKl+fKl,"g");nKs=mKl});function hKl(e){return A9e(e)?nKs(e):KHs(e)}var oKs,sKs=K(()=>{"use strict";JHs();Hir();iKs();oKs=hKl});function yKl(e){if(e==null)return 0;if(jj(e))return BHs(e)?oKs(e):e.length;var t=pke(e);return t==gKl||t==AKl?e.size:o9e(e).length}var gKl,AKl,Lh,aKs=K(()=>{"use strict";Qir();tor();bAe();OHs();sKs();gKl="[object Map]",AKl="[object Set]";Lh=yKl});var bKl,mke,cKs=K(()=>{"use strict";OPt();bKl=TAe(function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}),mke=bKl});var EKl,hke,uKs=K(()=>{"use strict";OPt();Kir();EKl=TAe(function(e,t,r){return e+(r?" ":"")+rl(t)}),hke=EKl});var vKl,IKl,lKs,pKs=K(()=>{"use strict";qBi();bBi();sor();vKl=1/0,IKl=OAe&&1/C9e(new OAe([,-0]))[1]==vKl?function(e){return new OAe(e)}:kj,lKs=IKl});function wKl(e,t,r){var n=-1,i=Bir,o=e.length,s=!0,a=[],c=a;if(r)s=!1,i=Aor;else if(o>=CKl){var u=t?null:lKs(e);if(u)return C9e(u);s=!1,i=I9e,c=new v9e}else c=t?[]:a;e:for(;++n<o;){var l=e[n],p=t?t(l):l;if(l=r||l!==0?l:0,s&&p===p){for(var d=c.length;d--;)if(c[d]===p)continue e;t&&c.push(p),a.push(l)}else i(c,p,r)||(c!==a&&c.push(p),a.push(l))}return a}var CKl,fKs,dKs=K(()=>{"use strict";nor();vBi();nOi();ior();pKs();sor();CKl=200;fKs=wKl});function xKl(e,t){return t=typeof t=="function"?t:void 0,e&&e.length?fKs(e,void 0,t):[]}var x9e,mKs=K(()=>{"use strict";dKs();x9e=xKl});var ao=K(()=>{"use strict";j9s();Q9s();vWs();CHs();cke();xHs();PHs();aOi();DHs();RHs();kBi();FHs();kHs();wHs();NHs();jHs();LHs();zHs();EHs();bBi();HHs();pOi();aKs();cKs();uKs();mKs();Kir();LBi();});function S9e({data:e,overlay:t}){let r=structuredClone(e);for(let n of t.actions){let i=em({path:n.target,json:r,resultType:"all"});for(let{value:o,parent:s,parentProperty:a}of i){if(s==null){if(n.remove)throw new Error(`Cannot remove the root object with path: ${n.target}`);if(typeof n.update!="object"||n.update==null)throw new Error(`Update values must be objects or arrays. Value provided for path ${n.target} is of type ${typeof n.update}`);bor(r,n.update);continue}if(typeof s!="object")throw new Error(`Invalid target returned for json path: ${n.target}`);let c=s;if(n.remove)if(Array.isArray(c)){let u=c.findIndex(l=>l===o);u!==-1&&c.splice(u,1)}else delete c[a];else{if(typeof n.update!="object"||n.update==null)throw new Error(`Update values must be objects or arrays. Value provided for path ${n.target} is of type ${typeof n.update}`);if(Array.isArray(o)&&!Array.isArray(n.update))o.push(n.update);else{if(typeof o!="object"||o==null)throw new Error(`Invalid target value type for json path: ${n.target}: ${typeof o}`);let u=bor(o,n.update);if(Array.isArray(c)){let l=Number(a);if(Number.isNaN(l))throw new Error(`Invalid array index resolved for json path query: ${n.target}: ${a}`);c[l]=u}else c[a]=u}}}}return r}var hKs=K(()=>{"use strict";I7s();ao()});function gKs(e,t){if(!e)throw new Error(t??"Expected condition to be truthy but got falsy.")}function ey(e,t){if(e===void 0)throw new Error(t??"Expected value to be defined but got undefined.")}function T2(e,t){if(e===null)throw new Error(t??"Expected value to be non-null but got null.")}function Eor(e,t){if(typeof e!="string")throw new Error(t??`Expected value to be a string but got ${typeof e}.`)}function Ce(e){throw new Error("Unexpected value: "+JSON.stringify(e))}function hOi(e){}function AKs(e){}var vor=K(()=>{"use strict"});function Oce(e){return new Promise(t=>setTimeout(()=>t(),e))}var gOi=K(()=>{"use strict"});async function yKs(e,t,{alwaysDelay:r=!1}={}){let n=Oce(t);try{let i=await e;return r&&await n,i}catch(i){throw await n,i}}var bKs=K(()=>{"use strict";gOi()});var EKs,vKs,IKs=K(()=>{"use strict";EKs=Object.freeze([]),vKs=Object.freeze({})});var Wi={};re(Wi,{BASE64:()=>TKl,BIG_INTEGER:()=>LKl,BOOLEAN:()=>BKl,DATE:()=>OKl,DATE_TIME:()=>PKl,DATE_TIME_RFC_2822:()=>DKl,DOUBLE:()=>RKl,FLOAT:()=>FKl,INT:()=>kKl,INT64:()=>NKl,SAMPLE_STRINGS:()=>zKl,STRING:()=>SKl,UINT:()=>jKl,UINT64:()=>QKl,UUID:()=>MKl});var SKl,TKl,BKl,OKl,PKl,DKl,RKl,FKl,kKl,NKl,jKl,QKl,MKl,LKl,zKl,CKs=K(()=>{"use strict";SKl="string",TKl="SGVsbG8gd29ybGQh",BKl=!0,OKl="2023-01-15",PKl="2024-01-15T09:30:00Z",DKl="Tue, 15 Jan 2024 09:30:00 +0000",RKl=1.1,FKl=1.1,kKl=1,NKl=1e6,jKl=1,QKl=1e6,MKl="d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32",LKl="123456789123456789",zKl=["x","xy","foo","buzz","alpha","banana","apricot","mandarin","nectarine","strawberry","pomegranate","blackcurrant"]});function Kn(e){if(typeof e=="string")return e.length>0?e:"Unknown error";if(e instanceof Error||typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string")return e.message.length>0?e.message:"Unknown error";let t=String(e);return t.length>0?t:"Unknown error"}var wKs=K(()=>{"use strict"});function Ior(e){let t=new Set,r=new Set,n=[];for(let i of e)t.has(i)&&!r.has(i)&&(r.add(i),n.push(i)),t.add(i);return n}var xKs=K(()=>{"use strict"});function SKs(e){return e}var TKs=K(()=>{"use strict"});function Ha(e){return e!=null}var AOi=K(()=>{"use strict"});var jPt=v(DAe=>{"use strict";DAe.removeLeadingAndTrailingHTTPWhitespace=e=>e.replace(/^[ \t\n\r]+/u,"").replace(/[ \t\n\r]+$/u,"");DAe.removeTrailingHTTPWhitespace=e=>e.replace(/[ \t\n\r]+$/u,"");DAe.isHTTPWhitespaceChar=e=>e===" "||e===" "||e===`
|
|
@@ -3223,7 +3223,7 @@ ${cNc.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&cwo(th
|
|
|
3223
3223
|
`+Y3e.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?Y3e.default.cyan(ANc(t,this.opt.mask)):Y3e.default.italic(Y3e.default.dim("[hidden]")):this.opt.mask?ANc(t,this.opt.mask):Y3e.default.italic(Y3e.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 s7r=we(lS(),1);var gjc=we(Vwo(),1),i7r=require("child_process"),yot=require("fs"),n7r=we(require("path"),1),Ajc=we(require("os"),1),yjc=require("crypto"),Txo=we(mjc(),1);var e7r=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var D_t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var t7r=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var r7r=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function o7r(e="",t,r){let n=new Bxo(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 hjc(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function Dzd(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 Bxo=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=Dzd(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??Ajc.default.tmpdir(),r=(0,yjc.randomUUID)(),n=hjc(this.fileOptions.prefix),i=hjc(this.fileOptions.postfix),o=`${n}${r}${i}`,s=n7r.default.resolve(t,o),a=n7r.default.resolve(t)+n7r.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,yot.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new e7r(t)}}readTemporaryFile(){try{let t=(0,yot.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,gjc.detect)(t)??"utf8";Txo.default.encodingExists(r)||(r="utf8"),this.text=Txo.default.decode(t,r)}}catch(t){throw new t7r(t)}}removeTemporaryFile(){try{(0,yot.unlinkSync)(this.tempFile)}catch(t){throw new r7r(t)}}launchEditor(){try{let t=(0,i7r.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new D_t(t)}}launchEditorAsync(t){try{(0,i7r.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new D_t(r)}}};var bjc=we(mz(),1);var R_t=class extends pS{_run(t){this.done=t,this.editorResult=new bjc.Subject;let r=qO(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"?s7r.default.dim("Received"):s7r.default.dim("Press <enter> to launch your preferred editor."),t&&(r=s7r.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),o7r(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 wjc=require("stream");var Ijc=we(require("readline"),1),Cjc=we(vjc(),1),eze=class{constructor(t){this.rl||=Ijc.default.createInterface(Fzd(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 Fzd(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 Cjc.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var F_t=class extends eze{constructor(t={}){super(t),this.log=new wjc.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return g_t(this.rl,this.bottomBar.split(`
|
|
3224
3224
|
`).length),this}updateBottomBar(t){return g_t(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=t,this.render(),this.rl.output.mute(),this}writeLog(t){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(t.toString())),this.render(),this.rl.output.mute(),this}enforceLF(t){return/[\n\r]$/.test(t)?t:t+`
|
|
3225
3225
|
`}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&&B8r(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Vd=we(mz(),1),Tjc=we(HUt(),1);var a7r=we(mz(),1),xjc=we(HUt(),1),c7r=function(e,t,r){return typeof e[t]!="function"?(0,a7r.of)(e):(0,a7r.from)((0,xjc.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Sjc={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},bot=class extends eze{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,Vd.from)(t):(0,Vd.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,Vd.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,Vd.from)([t]),this.process=n.pipe((0,Vd.concatMap)(this.processQuestion.bind(this)),(0,Vd.publish)()),this.process.connect(),this.process.pipe((0,Vd.reduce)((i,o)=>(Sjc.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,Vd.defer)(()=>(0,Vd.of)(t).pipe((0,Vd.concatMap)(this.setDefaultType.bind(this)),(0,Vd.concatMap)(this.filterIfRunnable.bind(this)),(0,Vd.concatMap)(()=>c7r(t,"message",this.answers)),(0,Vd.concatMap)(()=>c7r(t,"default",this.answers)),(0,Vd.concatMap)(()=>c7r(t,"choices",this.answers)),(0,Vd.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Vd.defer)(()=>(0,Vd.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Vd.defer)(()=>(0,Vd.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Sjc.get(this.answers,t.name)!==void 0)return Vd.EMPTY;if(t.when===!1)return Vd.EMPTY;if(typeof t.when!="function")return(0,Vd.of)(t);let{answers:r}=this;return(0,Vd.defer)(()=>(0,Vd.from)((0,Tjc.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Vd.filter)(n=>n!=null)))}};function Bjc(e){let t=function(r,n){let i;try{i=new bot(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",y_t),this.registerPrompt("input",J3e),this.registerPrompt("number",b_t),this.registerPrompt("confirm",E_t),this.registerPrompt("rawlist",v_t),this.registerPrompt("expand",I_t),this.registerPrompt("checkbox",C_t),this.registerPrompt("password",w_t),this.registerPrompt("editor",R_t)},t.restoreDefaultPrompts(),t}var Pxo=Bjc();function Nzd(e,t){Pxo.registerPrompt(e,t)}function jzd(){Pxo.restoreDefaultPrompts()}var Qzd={prompt:Pxo,ui:{BottomBar:F_t,Prompt:bot},createPromptModule:Bjc,registerPrompt:Nzd,restoreDefaultPrompts:jzd,Separator:a6},tp=Qzd;var Eot=require("path");function Pjc(){let e=Mzd();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function Mzd(e=process.argv[1]?(0,Eot.dirname)(process.argv[1]):process.cwd(),t=Eot.sep==="\\"){let r=t?Ojc(e):e;return n=>{if(!n)return;let i=t?Ojc(n):n,{dir:o,base:s,ext:a}=Eot.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 Ojc(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var Dxo=e=>{if("flags"in e){let t=Djc(e.flags),r=Rjc(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,Rxo(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,Lzd(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function Lzd(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 Djc=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,k_t(r)]).filter(([,t])=>t!==void 0)),Rjc=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?Rxo(n):void 0]}))};var k_t=e=>e===void 0?void 0:e.variant??e.enabled,Rxo=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};function Fjc(){return"CompressionStream"in globalThis}async function u7r(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var l7r="0123456789abcdef",p7r=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+=l7r.charAt(this.bytes[r]>>>4),t+=l7r.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+=l7r.charAt(this.bytes[r]>>>4),t+=l7r.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}},Fxo=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??zzd()}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 p7r.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,p7r.ofInner(t)}},zzd=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),kjc,tCe=()=>Uzd().toString(),Uzd=()=>(kjc||(kjc=new Fxo)).generate();var u6=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e.DeviceId="device_id",e})({});var _zd=["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"],Njc=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return _zd.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var qzd=Array.isArray,jjc=Object.prototype,tY0=jjc.hasOwnProperty,kxo=jjc.toString,Nxo=qzd||function(e){return kxo.call(e)==="[object Array]"};var jxo=e=>e===Object(e)&&!Nxo(e);var N_t=e=>e===void 0,j_t=e=>kxo.call(e)=="[object String]",Qjc=e=>j_t(e)&&e.trim().length===0;var Mjc=e=>kxo.call(e)=="[object Number]"&&e===e;var Qxo=e=>e instanceof Error;function f7r(e){return e===null||typeof e!="object"}function tze(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function Ljc(e){return tze(e,"ErrorEvent")}function vot(e){return typeof Event<"u"&&Gzd(e,Event)}function zjc(e){return tze(e,"Object")}function Gzd(e,t){try{return e instanceof t}catch{return!1}}function Q_t(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),Mjc(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),Q_t(i||r,t,r,n))}var Wzd=864e5,d7r=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=Q_t(t.bucketSize,0,100,t._logger),this._refillRate=Q_t(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=Q_t(t.refillInterval,0,Wzd,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 m7r=class{add(t){let r=tCe();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 Hzd(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var Ujc=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>Ujc(`${e} ${o}`,t,r)}},Kzd=e=>e();function _jc(e,t=Kzd){return Ujc(e,t,Hzd())}var Cot="Mobile",g7r="iOS",Iot="Android",Vjc="Tablet",dY0=Iot+" "+Vjc;var Jzd="Apple",mY0=Jzd+" Watch",qjc="Safari",A7r="BlackBerry",Gjc="Samsung",Yzd=Gjc+"Browser",Xzd=Gjc+" Internet",y7r="Chrome",Zzd=y7r+" OS",$zd=y7r+" "+g7r,Wjc="Internet Explorer",e4d=Wjc+" "+Cot,Lxo="Opera",hY0=Lxo+" Mini",Hjc="Edge",t4d="Microsoft "+Hjc,zxo="Firefox",r4d=zxo+" "+g7r,Uxo="Nintendo",_xo="PlayStation",h7r="Xbox",n4d=Iot+" "+Cot,i4d=Cot+" "+qjc,M_t="Windows",o4d=M_t+" Phone";var Kjc="Generic",gY0=Kjc+" "+Cot.toLowerCase(),AY0=Kjc+" "+Vjc.toLowerCase(),s4d="Konqueror",Bk="(\\d+(\\.\\d+)?)",Mxo=new RegExp("Version/"+Bk),yY0=new RegExp(h7r,"i"),bY0=new RegExp(_xo+" \\w+","i"),EY0=new RegExp(Uxo+" \\w+","i"),a4d=new RegExp(A7r+"|PlayBook|BB10","i"),c4d={"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 vY0={[e4d]:[new RegExp("rv:"+Bk)],[t4d]:[new RegExp(Hjc+"?\\/"+Bk)],[y7r]:[new RegExp("("+y7r+"|CrMo)\\/"+Bk)],[$zd]:[new RegExp("CriOS\\/"+Bk)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Bk)],[qjc]:[Mxo],[i4d]:[Mxo],[Lxo]:[new RegExp("("+Lxo+"|OPR)\\/"+Bk)],[zxo]:[new RegExp(zxo+"\\/"+Bk)],[r4d]:[new RegExp("FxiOS\\/"+Bk)],[s4d]:[new RegExp("Konqueror[:/]?"+Bk,"i")],[A7r]:[new RegExp(A7r+" "+Bk),Mxo],[n4d]:[new RegExp("android\\s"+Bk,"i")],[Xzd]:[new RegExp(Yzd+"\\/"+Bk)],[Wjc]:[new RegExp("(rv:|MSIE )"+Bk)],Mozilla:[new RegExp("rv:"+Bk)]};var IY0=[[new RegExp(h7r+"; "+h7r+" (.*?)[);]","i"),e=>[h7r,e&&e[1]||""]],[new RegExp(Uxo,"i"),[Uxo,""]],[new RegExp(_xo,"i"),[_xo,""]],[a4d,[A7r,""]],[new RegExp(M_t,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[o4d,""];if(new RegExp(Cot).test(t)&&!/IEMobile\b/.test(t))return[M_t+" "+Cot,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=c4d[n]||"";return/arm/i.test(t)&&(i="RT"),[M_t,i]}return[M_t,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[g7r,t.join(".")]}return[g7r,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=N_t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Iot+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Iot+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[Iot,t.join(".")]}return[Iot,""]}],[/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/,[Zzd,""]],[/Linux|debian/i,["Linux",""]]];var Jjc="utf8";function Yjc(e,t){if(!e||typeof e!="string"||u4d(e))throw new Error(t)}function u4d(e){return e.trim().length===0}function Xjc(e){return e?.replace(/\/+$/,"")}async function Zjc(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 b7r(){return new Date().toISOString()}function wfe(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var $jc=e=>e instanceof Error;function Vxo(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var E7r=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 rze=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()}},wot=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function eQc(e){if(e instanceof rze){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 qxo(e){return typeof e=="object"&&(e instanceof rze||e instanceof wot)}function tQc(e){return typeof e=="object"&&e instanceof rze&&e.status===413}var L_t=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new m7r,this._events=new E7r,this._isInitialized=!1,Yjc(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Xjc(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:qxo},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=_jc("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!Fjc()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(u6.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(u6.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(u6.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!1){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:Dxo(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof rze)return{type:"api_error",statusCode:t.status};if(t instanceof wot){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=k_t(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(u6.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(u6.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(u6.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(u6.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(u6.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=wfe(()=>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:b7r()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await u7r(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:b7r(),uuid:n?.uuid?n.uuid:tCe()};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 eQc(t)})}async flush(){let t=Vxo([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),Vxo([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(u6.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=async()=>{let m=(this.getPersistedProperty(u6.Queue)||[]).slice(i.length);this.setPersistedProperty(u6.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:b7r()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await u7r(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},d={retryCheck:f=>tQc(f)?!1:qxo(f)};try{await this.fetchWithRetry(u,p,d)}catch(f){if(tQc(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 wot||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,Jjc)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await Zjc(async()=>{let a=new AbortController,c=i??this.requestTimeout,u=wfe(()=>a.abort(),c),l=null;try{l=await this.fetch(t,{signal:a.signal,...r})}catch(d){throw new wot(d)}finally{clearTimeout(u)}if(!(r.mode==="no-cors")&&(l.status<200||l.status>=400))throw new rze(l,s);return l},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(u6.Queue)||[]).length===0||(await this.flush(),r)););}catch(o){if(!qxo(o))throw o;await eQc(o)}},i;try{return await Promise.race([new Promise((o,s)=>{i=wfe(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,s("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}finally{clearTimeout(i)}}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var l6={};re(l6,{DOMExceptionCoercer:()=>Kxo,ErrorCoercer:()=>Jxo,ErrorEventCoercer:()=>Yxo,ErrorPropertiesBuilder:()=>Gxo,EventCoercer:()=>$xo,ObjectCoercer:()=>Zxo,PrimitiveCoercer:()=>eSo,PromiseRejectionEventCoercer:()=>tSo,ReduceableCache:()=>rSo,StringCoercer:()=>Xxo,chromeStackLineParser:()=>Wxo,createDefaultStackParser:()=>w4d,createStackParser:()=>fQc,geckoStackLineParser:()=>Hxo,nodeStackLineParser:()=>cQc,opera10StackLineParser:()=>oQc,opera11StackLineParser:()=>sQc,reverseAndStripFrames:()=>pQc,winjsStackLineParser:()=>iQc});var v7r,rQc,I7r;function nQc(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return I7r&&r.length===rQc||(rQc=r.length,I7r=r.reduce((n,i)=>{v7r||(v7r={});let o=v7r[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,v7r[i]=[u,l];break}}}return n},{})),I7r}var p4d=4,Gxo=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&&Nxo(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:nQc(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=p4d){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 WO="?";function lee(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?WO:r,in_app:!0};return N_t(n)||(o.lineno=n),N_t(i)||(o.colno=i),o}var C7r=(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]:WO,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var f4d=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,d4d=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,m4d=/\((\S*)(?::(\d+))(?::(\d+))\)/,Wxo=(e,t)=>{let r=f4d.exec(e);if(r){let[,i,o,s]=r;return lee(t,i,WO,+o,+s)}let n=d4d.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=m4d.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=C7r(n[1]||WO,n[2]);return lee(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var h4d=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,g4d=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Hxo=(e,t)=>{let r=h4d.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=g4d.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]||WO;return[o,i]=C7r(o,i),lee(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var A4d=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,iQc=(e,t)=>{let r=A4d.exec(e);return r?lee(t,r[2],r[1]||WO,+r[3],r[4]?+r[4]:void 0):void 0};var y4d=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,oQc=(e,t)=>{let r=y4d.exec(e);return r?lee(t,r[2],r[3]||WO,+r[1]):void 0},b4d=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,sQc=(e,t)=>{let r=b4d.exec(e);return r?lee(t,r[5],r[3]||r[4]||WO,+r[1],+r[2]):void 0};var E4d=/^\s*[-]{4,}$/,v4d=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,cQc=(e,t)=>{let r=e.match(v4d);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||WO,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:aQc(r[3]),colno:aQc(r[4]),in_app:I4d(c||"",u),platform:t}}if(e.match(E4d))return{filename:e,platform:t}};function I4d(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 aQc(e){return parseInt(e||"",10)||void 0}var uQc=/\(error: (.*)\)/,lQc=50;function pQc(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,lQc).map(r=>({...r,filename:r.filename||C4d(t).filename,function:r.function||WO}))}function C4d(e){return e[e.length-1]||{}}function w4d(){return fQc("web:javascript",Wxo,Hxo)}function fQc(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
3226
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=uQc.test(a)?a.replace(uQc,"$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>=lQc)break}}return pQc(i)}}var Kxo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=j_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return tze(t,"DOMException")}isDOMError(t){return tze(t,"DOMError")}};var Jxo=class{match(t){return Qxo(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 Yxo=class{constructor(){}match(t){return Ljc(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 x4d=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Xxo=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(x4d);return i&&(r=i[1],n=i[2]),[r,n]}};var dQc=["fatal","error","warning","log","info","debug"];function w7r(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 Zxo=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 vot(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=w7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return j_t(t)&&!Qjc(t)&&dQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if($jc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var $xo=class{match(t){return vot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${w7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var eSo=class{match(t){return f7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var tSo=class{match(t){return tze(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!vot(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 f7r(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 rSo=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 gQc=require("fs"),AQc=require("readline"),x7r=new l6.ReduceableCache(25),yQc=new l6.ReduceableCache(20),nSo=7,S4d=1e3,T4d=1e4;async function bQc(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"||D4d(s)||R4d(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(yQc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=k4d(o);if(s.every(c=>F4d(i,c)))continue;let a=N4d(x7r,i,{});n.push(B4d(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&O4d(e,x7r),x7r.reduce(),e}function B4d(e,t,r){return new Promise(n=>{let i=(0,gQc.createReadStream)(e),o=(0,AQc.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(){yQc.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]=j4d(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 O4d(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;P4d(r.lineno,r,n)}}function P4d(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=EQc(e);i<e;i++){let o=r[i];if(o===void 0)return void mQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void mQc(t);t.context_line=r[e];let n=vQc(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 mQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function D4d(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function R4d(e){return e.lineno!==void 0&&e.lineno>T4d||e.colno!==void 0&&e.colno>S4d}function F4d(e,t){let r=x7r.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 k4d(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=hQc(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+nSo:(i.push(n),n=hQc(o)),t++}return i}function hQc(e){return[EQc(e),vQc(e)]}function EQc(e){return Math.max(1,e-nSo)}function vQc(e){return e+nSo}function N4d(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function j4d(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function Q4d(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 IQc(e,t){globalThis.process?.on("uncaughtException",Q4d(e,t))}function CQc(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var M4d=2e3,aH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new d7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return jxo(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()&&(IQc(this.onException.bind(this),this.onFatalError.bind(this)),CQc(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(M4d),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var wQc="5.29.1";var z_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function xQc(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 L4d=6e4,z4d=1152921504606847e3,U4d=["is_not"],xot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},qd=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)}},S7r=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 qd?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 qd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new qd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new qd("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 qd(`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 qd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new qd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new qd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new qd(`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 qd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new qd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new qd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof pee)throw l;if(l instanceof qd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new qd("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"?PQc(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):OQc(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await SQc(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await SQc(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(L4d,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 xot(`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 xot(`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 xot(`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 xot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=wfe(()=>{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 SQc(e,t,r=""){let n=await xQc(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/z4d}function OQc(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new qd("Operator is_not_set is not supported")}else throw new qd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!U4d.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 TQc(String(i))&&String(s).match(String(i))!==null;case"not_regex":return TQc(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new qd("Date operations cannot be performed on boolean values");let u=W4d(String(i));if(u==null&&(u=BQc(i)),u==null)throw new qd(`Invalid date: ${i}`);let l=BQc(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return QV(HO(String(s)),HO(String(i)))===0;case"semver_neq":return QV(HO(String(s)),HO(String(i)))!==0;case"semver_gt":return QV(HO(String(s)),HO(String(i)))>0;case"semver_gte":return QV(HO(String(s)),HO(String(i)))>=0;case"semver_lt":return QV(HO(String(s)),HO(String(i)))<0;case"semver_lte":return QV(HO(String(s)),HO(String(i)))<=0;case"semver_tilde":{let u=HO(String(s)),{lower:l,upper:p}=V4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}case"semver_caret":{let u=HO(String(s)),{lower:l,upper:p}=q4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}case"semver_wildcard":{let u=HO(String(s)),{lower:l,upper:p}=G4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}default:throw new qd(`Unknown operator: ${o}`)}}function _4d(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function PQc(e,t,r,n=!1){let i=String(e.value);_4d(i,r);let o=r[i];return DQc(o,t,r,n)}function DQc(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=DQc(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof qd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new qd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=PQc(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=OQc(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof qd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new qd("can't match cohort without a given cohort property value");return i==="AND"}function TQc(e){try{return new RegExp(e),!0}catch{return!1}}function HO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new qd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new qd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function QV(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 V4d(e){let t=HO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function q4d(e){let t=HO(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 G4d(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new qd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new qd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new qd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function BQc(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 qd(`${e} is in an invalid date format`)}throw new qd(`The date provided ${e} must be a string, number, or date object`)}function W4d(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 T7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var H4d=100,RQc=3e4,K4d=5e4,J4d=50,Y4d=500,B7r=class extends L_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new T7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,H4d):RQc,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new S7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new aH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||K4d}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??Y4d,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??J4d;this._waitUntilCycle.timer=wfe(()=>{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 wQc}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=RQc){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let F=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:F!==!1,variant:typeof F=="string"?F:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof qd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=z_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(z_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(z_t.QUOTA_LIMITED);let F=B.flags[t];if(F===void 0)O.push(z_t.FLAG_MISSING);else{I=F.metadata?.id,w=F.metadata?.version,C=F.reason?.description??F.reason?.code;let P;if(F.metadata?.payload!==void 0)try{P=JSON.parse(F.metadata.payload)}catch{P=F.metadata.payload}f={key:t,enabled:F.enabled,variant:F.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let F={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(F.$feature_flag_definitions_loaded_at=P)}y&&(F.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:F,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=wfe(()=>{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(zjc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!aH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(aH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!aH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(aH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=tCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&Njc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var FQc=require("async_hooks"),O7r=class{constructor(){this.storage=new FQc.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 kQc="posthog-node";function X4d(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[iSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var iSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=kQc,this.name=kQc,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(X4d(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};aH.errorPropertiesBuilder=new l6.ErrorPropertiesBuilder([new l6.EventCoercer,new l6.ErrorCoercer,new l6.ObjectCoercer,new l6.StringCoercer,new l6.PrimitiveCoercer],l6.createStackParser("node:javascript",l6.nodeStackLineParser),[Pjc(),bQc]);var rCe=class extends B7r{getLibraryId(){return"posthog-node"}initializeContext(){return new O7r}};var P7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new rCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.27.1",usingAccessToken:!0,...Kae()}})}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 U_t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};or();var Sot=require("fs/promises"),NQc=require("os"),jQc=require("path");var Z4d="id",$4d=".fern",__t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new rCe(r),this.userId=t==null?void 0:y0o(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.27.1",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Kae()}})}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 Wf({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=nt(Yt.of((0,NQc.homedir)()),ke.of($4d),ke.of(Z4d));await cr(t)||(await(0,Sot.mkdir)((0,jQc.dirname)(t),{recursive:!0}),await(0,Sot.writeFile)(t,KQ())),this.persistedDistinctId=(await(0,Sot.readFile)(t)).toString()}return this.persistedDistinctId}};var oSo;async function V_t(){return oSo==null&&(oSo=await eUd()),oSo}async function eUd(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new U_t;let r=await knt();return r!=null?new __t({token:r,posthogApiKey:e}):await vV()!=null?new P7r({posthogApiKey:e}):new __t({token:void 0,posthogApiKey:e})}catch{return new U_t}}jt();_t();var q_t=we(require("process"),1);JGe();var LQc=we(Efo(),1),zQc=we(MQc(),1);function uT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=VG(e),e.length===0))return 0;e=e.replace((0,zQc.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(LQc.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function D7r(e){let t=0;for(let r of e.split(`
|
|
3226
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=uQc.test(a)?a.replace(uQc,"$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>=lQc)break}}return pQc(i)}}var Kxo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=j_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return tze(t,"DOMException")}isDOMError(t){return tze(t,"DOMError")}};var Jxo=class{match(t){return Qxo(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 Yxo=class{constructor(){}match(t){return Ljc(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 x4d=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,Xxo=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(x4d);return i&&(r=i[1],n=i[2]),[r,n]}};var dQc=["fatal","error","warning","log","info","debug"];function w7r(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 Zxo=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 vot(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=w7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return j_t(t)&&!Qjc(t)&&dQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if($jc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var $xo=class{match(t){return vot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${w7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var eSo=class{match(t){return f7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var tSo=class{match(t){return tze(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!vot(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 f7r(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 rSo=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 gQc=require("fs"),AQc=require("readline"),x7r=new l6.ReduceableCache(25),yQc=new l6.ReduceableCache(20),nSo=7,S4d=1e3,T4d=1e4;async function bQc(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"||D4d(s)||R4d(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(yQc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=k4d(o);if(s.every(c=>F4d(i,c)))continue;let a=N4d(x7r,i,{});n.push(B4d(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&O4d(e,x7r),x7r.reduce(),e}function B4d(e,t,r){return new Promise(n=>{let i=(0,gQc.createReadStream)(e),o=(0,AQc.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(){yQc.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]=j4d(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 O4d(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;P4d(r.lineno,r,n)}}function P4d(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=EQc(e);i<e;i++){let o=r[i];if(o===void 0)return void mQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void mQc(t);t.context_line=r[e];let n=vQc(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 mQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function D4d(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function R4d(e){return e.lineno!==void 0&&e.lineno>T4d||e.colno!==void 0&&e.colno>S4d}function F4d(e,t){let r=x7r.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 k4d(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=hQc(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+nSo:(i.push(n),n=hQc(o)),t++}return i}function hQc(e){return[EQc(e),vQc(e)]}function EQc(e){return Math.max(1,e-nSo)}function vQc(e){return e+nSo}function N4d(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function j4d(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function Q4d(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 IQc(e,t){globalThis.process?.on("uncaughtException",Q4d(e,t))}function CQc(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var M4d=2e3,aH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new d7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return jxo(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()&&(IQc(this.onException.bind(this),this.onFatalError.bind(this)),CQc(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(M4d),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var wQc="5.29.1";var z_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function xQc(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 L4d=6e4,z4d=1152921504606847e3,U4d=["is_not"],xot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},qd=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)}},S7r=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 qd?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 qd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new qd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new qd("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 qd(`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 qd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new qd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new qd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new qd(`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 qd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new qd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new qd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof pee)throw l;if(l instanceof qd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new qd("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"?PQc(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):OQc(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await SQc(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await SQc(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(L4d,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 xot(`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 xot(`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 xot(`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 xot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=wfe(()=>{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 SQc(e,t,r=""){let n=await xQc(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/z4d}function OQc(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new qd("Operator is_not_set is not supported")}else throw new qd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!U4d.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 TQc(String(i))&&String(s).match(String(i))!==null;case"not_regex":return TQc(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new qd("Date operations cannot be performed on boolean values");let u=W4d(String(i));if(u==null&&(u=BQc(i)),u==null)throw new qd(`Invalid date: ${i}`);let l=BQc(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return QV(HO(String(s)),HO(String(i)))===0;case"semver_neq":return QV(HO(String(s)),HO(String(i)))!==0;case"semver_gt":return QV(HO(String(s)),HO(String(i)))>0;case"semver_gte":return QV(HO(String(s)),HO(String(i)))>=0;case"semver_lt":return QV(HO(String(s)),HO(String(i)))<0;case"semver_lte":return QV(HO(String(s)),HO(String(i)))<=0;case"semver_tilde":{let u=HO(String(s)),{lower:l,upper:p}=V4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}case"semver_caret":{let u=HO(String(s)),{lower:l,upper:p}=q4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}case"semver_wildcard":{let u=HO(String(s)),{lower:l,upper:p}=G4d(String(i));return QV(u,l)>=0&&QV(u,p)<0}default:throw new qd(`Unknown operator: ${o}`)}}function _4d(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function PQc(e,t,r,n=!1){let i=String(e.value);_4d(i,r);let o=r[i];return DQc(o,t,r,n)}function DQc(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=DQc(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof qd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new qd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=PQc(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=OQc(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof qd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new qd("can't match cohort without a given cohort property value");return i==="AND"}function TQc(e){try{return new RegExp(e),!0}catch{return!1}}function HO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new qd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new qd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function QV(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 V4d(e){let t=HO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function q4d(e){let t=HO(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 G4d(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new qd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new qd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new qd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function BQc(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 qd(`${e} is in an invalid date format`)}throw new qd(`The date provided ${e} must be a string, number, or date object`)}function W4d(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 T7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var H4d=100,RQc=3e4,K4d=5e4,J4d=50,Y4d=500,B7r=class extends L_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new T7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,H4d):RQc,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new S7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new aH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||K4d}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??Y4d,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??J4d;this._waitUntilCycle.timer=wfe(()=>{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 wQc}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=RQc){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let F=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:F!==!1,variant:typeof F=="string"?F:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof qd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=z_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(z_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(z_t.QUOTA_LIMITED);let F=B.flags[t];if(F===void 0)O.push(z_t.FLAG_MISSING);else{I=F.metadata?.id,w=F.metadata?.version,C=F.reason?.description??F.reason?.code;let P;if(F.metadata?.payload!==void 0)try{P=JSON.parse(F.metadata.payload)}catch{P=F.metadata.payload}f={key:t,enabled:F.enabled,variant:F.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let F={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(F.$feature_flag_definitions_loaded_at=P)}y&&(F.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:F,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=wfe(()=>{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(zjc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!aH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(aH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!aH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(aH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=tCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&Njc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var FQc=require("async_hooks"),O7r=class{constructor(){this.storage=new FQc.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 kQc="posthog-node";function X4d(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[iSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var iSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=kQc,this.name=kQc,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(X4d(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};aH.errorPropertiesBuilder=new l6.ErrorPropertiesBuilder([new l6.EventCoercer,new l6.ErrorCoercer,new l6.ObjectCoercer,new l6.StringCoercer,new l6.PrimitiveCoercer],l6.createStackParser("node:javascript",l6.nodeStackLineParser),[Pjc(),bQc]);var rCe=class extends B7r{getLibraryId(){return"posthog-node"}initializeContext(){return new O7r}};var P7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new rCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.27.2",usingAccessToken:!0,...Kae()}})}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 U_t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};or();var Sot=require("fs/promises"),NQc=require("os"),jQc=require("path");var Z4d="id",$4d=".fern",__t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new rCe(r),this.userId=t==null?void 0:y0o(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.27.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Kae()}})}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 Wf({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=nt(Yt.of((0,NQc.homedir)()),ke.of($4d),ke.of(Z4d));await cr(t)||(await(0,Sot.mkdir)((0,jQc.dirname)(t),{recursive:!0}),await(0,Sot.writeFile)(t,KQ())),this.persistedDistinctId=(await(0,Sot.readFile)(t)).toString()}return this.persistedDistinctId}};var oSo;async function V_t(){return oSo==null&&(oSo=await eUd()),oSo}async function eUd(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new U_t;let r=await knt();return r!=null?new __t({token:r,posthogApiKey:e}):await vV()!=null?new P7r({posthogApiKey:e}):new __t({token:void 0,posthogApiKey:e})}catch{return new U_t}}jt();_t();var q_t=we(require("process"),1);JGe();var LQc=we(Efo(),1),zQc=we(MQc(),1);function uT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=VG(e),e.length===0))return 0;e=e.replace((0,zQc.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(LQc.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function D7r(e){let t=0;for(let r of e.split(`
|
|
3227
3227
|
`))t=Math.max(t,uT(r));return t}var s6c=we(aSo(),1);var rUd=/[\p{Lu}]/u,nUd=/[\p{Ll}]/u,VQc=/^[\p{Lu}](?![\p{Lu}])/gu,WQc=/([\p{Alpha}\p{N}_]|$)/u,cSo=/[_.\- ]+/,iUd=new RegExp("^"+cSo.source),qQc=new RegExp(cSo.source+WQc.source,"gu"),GQc=new RegExp("\\d+"+WQc.source,"gu"),oUd=(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&&rUd.test(u)?(e=e.slice(0,c)+"-"+e.slice(c),i=!1,s=o,o=!0,c++):o&&s&&nUd.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},sUd=(e,t)=>(VQc.lastIndex=0,e.replace(VQc,r=>t(r))),aUd=(e,t)=>(qQc.lastIndex=0,GQc.lastIndex=0,e.replace(qQc,(r,n)=>t(n)).replace(GQc,r=>t(r)));function uSo(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?cSo.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=oUd(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(iUd,""),e=t.preserveConsecutiveUppercase?sUd(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),aUd(e,n))}var dSo=we(KQc(),1);JGe();var JQc=(e=0)=>t=>`\x1B[${t+e}m`,YQc=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,XQc=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,iE={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},R$0=Object.keys(iE.modifier),pUd=Object.keys(iE.color),fUd=Object.keys(iE.bgColor),F$0=[...pUd,...fUd];function dUd(){let e=new Map;for(let[t,r]of Object.entries(iE)){for(let[n,i]of Object.entries(r))iE[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=iE[n],e.set(i[0],i[1]);Object.defineProperty(iE,t,{value:r,enumerable:!1})}return Object.defineProperty(iE,"codes",{value:e,enumerable:!1}),iE.color.close="\x1B[39m",iE.bgColor.close="\x1B[49m",iE.color.ansi=JQc(),iE.color.ansi256=YQc(),iE.color.ansi16m=XQc(),iE.bgColor.ansi=JQc(10),iE.bgColor.ansi256=YQc(10),iE.bgColor.ansi16m=XQc(10),Object.defineProperties(iE,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>iE.rgbToAnsi256(...iE.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>iE.ansi256ToAnsi(iE.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>iE.ansi256ToAnsi(iE.hexToAnsi256(t)),enumerable:!1}}),iE}var mUd=dUd(),ZQc=mUd;var R7r=new Set(["\x1B","\x9B"]),hUd=39,pSo="\x07",t6c="[",gUd="]",r6c="m",fSo=`${gUd}8;;`,$Qc=e=>`${R7r.values().next().value}${t6c}${e}${r6c}`,e6c=e=>`${R7r.values().next().value}${fSo}${e}${pSo}`,AUd=e=>e.split(" ").map(t=>uT(t)),lSo=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=uT(VG(e[e.length-1]));for(let[a,c]of n.entries()){let u=uT(c);if(s+u<=r?e[e.length-1]+=c:(e.push(c),s=0),R7r.has(c)&&(i=!0,o=n.slice(a+1).join("").startsWith(fSo)),i){o?c===pSo&&(i=!1,o=!1):c===r6c&&(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())},yUd=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(uT(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},bUd=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=AUd(e),a=[""];for(let[u,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=uT(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(""),lSo(a,l,t);continue}if(p+s[u]>t&&p>0&&s[u]>0){if(r.wordWrap===!1&&p<t){lSo(a,l,t);continue}a.push("")}if(p+s[u]>t&&r.wordWrap===!1){lSo(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(u=>yUd(u)));let c=[...a.join(`
|
|
3228
3228
|
`)];for(let[u,l]of c.entries()){if(n+=l,R7r.has(l)){let{groups:d}=new RegExp(`(?:\\${t6c}(?<code>\\d+)m|\\${fSo}(?<uri>.*)${pSo})`).exec(c.slice(u).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===hUd?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=ZQc.codes.get(Number(i));c[u+1]===`
|
|
3229
3229
|
`?(o&&(n+=e6c("")),i&&p&&(n+=$Qc(p))):l===`
|
|
@@ -3810,7 +3810,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
|
|
|
3810
3810
|
Add a 'docs:' section to your fern.yml to get started.`,code:j.Code.ConfigError});let o=await new BPe({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&&aOm(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 j({code:j.Code.ValidationError});return}if(c.length>0)for(let p of c){let d=p.severity==="warning"?Ee.yellow:Ee.red;process.stderr.write(`${d(`${p.displayRelativeFilepath}:${p.line}:${p.column}: ${p.message}`)}
|
|
3811
3811
|
`)}let l=0;if(o.mdxParseErrors.length>0){for(let p of o.mdxParseErrors)t.stderr.info(`
|
|
3812
3812
|
${p.toString()}
|
|
3813
|
-
`);r.fix?l+=await N$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!AYn()&&await j$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new B0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new j({code:j.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${tn.warning} ${Ee.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(Ee.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${tn.success} ${Ee.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 aOm(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 zUo(e){let t=new LUo;Ki(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}))}D0();_t();var Duu=we(require("net"),1),Ruu=we(require("os"),1),L$n=class extends Error{constructor(t){super(`${t} is locked`)}},R0t={old:new Set,young:new Set},cOm=1e3*15,Fuu=new Set;var Bqt,uOm=()=>{let e=Ruu.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},Ouu=e=>new Promise((t,r)=>{let n=Duu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Puu=async(e,t)=>{if(e.host||e.port===0)return Ouu(e);for(let r of t)try{await Ouu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},lOm=e=>R0t.old.has(e)||R0t.young.has(e)||Fuu.has(e),pOm=function*(e){e&&(yield*e),yield 0};async function PPe(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??{};Bqt===void 0&&(Bqt=setTimeout(()=>{Bqt=void 0,R0t.old=R0t.young,R0t.young=new Set},cOm),Bqt.unref&&Bqt.unref());let o=uOm();for(let s of pOm(t))try{if(r.has(s))continue;let a=await Puu({...i,port:s},o);for(;lOm(a);){if(s!==0)throw new L$n(s);a=await Puu({...i,port:s},o)}return n?Fuu.add(a):R0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof L$n))throw a}throw new Error("No available ports found")}_t();var juu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,kuu="docs.buildwithfern.com",Nuu=62;function cUe(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)),juu.test(t)}function Quu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Oqt({orgId:e,previewId:t}){let r=Quu(t),n=`${e}-preview-${r}.${kuu}`;if(n.length<=Nuu)return n;let i=`${e}-preview-`,o=Nuu-i.length;if(o<8)throw new j({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:j.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${kuu}`}jt();lg();or();sS();_t();var S8o=require("child_process"),rvu=we(VUo(),1),T8o=we(xei(),1),B8o=we(require("fs"),1),kUe=require("fs/promises"),nvu=we(require("http"),1),D8o=we(require("path"),1);var Nmu=require("events"),Pei=we(require("fs"),1),yUe=we(require("path"),1);var Amu=we(require("os"),1),ymu=300,QPe=20,eGt=1e7,bmu=Amu.default.platform();var SNm=bmu==="darwin",cVo=bmu==="win32",MPe=SNm||cVo,Emu=3e3,vmu=2e4,uVo=1250;var Aie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Aie||(Aie={}));var AUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(AUe||(AUe={}));var tGt;(function(e){e.CHANGE="change",e.ERROR="error"})(tGt||(tGt={}));var Wc;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var TNm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,F=o-B,P=Math.min(O,F);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Sei=TNm;var dVo=we(require("fs"),1),Bei=we(require("path"),1);var Hd=we(require("fs"),1),lP=require("util");var Hde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},yie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var lVo=we(require("process"),1),Imu=lVo.default.getuid?!lVo.default.getuid():!1,Cmu=1e4,OM=()=>{};var rGt={isChangeErrorOk:e=>{if(!rGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Imu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!rGt.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(!rGt.isNodeError(e))throw e;if(!rGt.isChangeErrorOk(e))throw e}},FC=rGt;var pVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Cmu,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()}}}}},wmu=new pVo;var Kde=(e,t)=>function(n){return function i(...o){return wmu.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)})}},Jde=(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 BNm={attempt:{chmod:Hde((0,lP.promisify)(Hd.default.chmod),FC.onChangeError),chown:Hde((0,lP.promisify)(Hd.default.chown),FC.onChangeError),close:Hde((0,lP.promisify)(Hd.default.close),OM),fsync:Hde((0,lP.promisify)(Hd.default.fsync),OM),mkdir:Hde((0,lP.promisify)(Hd.default.mkdir),OM),realpath:Hde((0,lP.promisify)(Hd.default.realpath),OM),stat:Hde((0,lP.promisify)(Hd.default.stat),OM),unlink:Hde((0,lP.promisify)(Hd.default.unlink),OM),chmodSync:yie(Hd.default.chmodSync,FC.onChangeError),chownSync:yie(Hd.default.chownSync,FC.onChangeError),closeSync:yie(Hd.default.closeSync,OM),existsSync:yie(Hd.default.existsSync,OM),fsyncSync:yie(Hd.default.fsync,OM),mkdirSync:yie(Hd.default.mkdirSync,OM),realpathSync:yie(Hd.default.realpathSync,OM),statSync:yie(Hd.default.statSync,OM),unlinkSync:yie(Hd.default.unlinkSync,OM)},retry:{close:Kde((0,lP.promisify)(Hd.default.close),FC.isRetriableError),fsync:Kde((0,lP.promisify)(Hd.default.fsync),FC.isRetriableError),open:Kde((0,lP.promisify)(Hd.default.open),FC.isRetriableError),readFile:Kde((0,lP.promisify)(Hd.default.readFile),FC.isRetriableError),rename:Kde((0,lP.promisify)(Hd.default.rename),FC.isRetriableError),stat:Kde((0,lP.promisify)(Hd.default.stat),FC.isRetriableError),write:Kde((0,lP.promisify)(Hd.default.write),FC.isRetriableError),writeFile:Kde((0,lP.promisify)(Hd.default.writeFile),FC.isRetriableError),closeSync:Jde(Hd.default.closeSync,FC.isRetriableError),fsyncSync:Jde(Hd.default.fsyncSync,FC.isRetriableError),openSync:Jde(Hd.default.openSync,FC.isRetriableError),readFileSync:Jde(Hd.default.readFileSync,FC.isRetriableError),renameSync:Jde(Hd.default.renameSync,FC.isRetriableError),statSync:Jde(Hd.default.statSync,FC.isRetriableError),writeSync:Jde(Hd.default.writeSync,FC.isRetriableError),writeFileSync:Jde(Hd.default.writeFileSync,FC.isRetriableError)}},xmu=BNm;var Tei=we(require("fs"),1),nGt=we(require("path"),1);var fVo=()=>{};var ONm=()=>{let e=fVo,t=fVo,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},Smu=ONm;var PNm=()=>{let{promise:e,resolve:t,isPending:r}=Smu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Tmu=PNm;var Bmu={then:e=>{e()}};var Omu=e=>Array.isArray(e)?e:[e],Pmu=e=>typeof e=="function";var DNm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Omu(o).map(oe=>Pmu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:F,decrement:P}=Tmu(),U=0,J=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(Ie>=n)&&(U>=i||he(ae,Ie+1)))},$=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(Ie>=n||U>=i||Le(ae,Ie+1)))},fe=(oe,ae,Se,Ie,je)=>{c.aborted||a(ae)||(Ie.isDirectory()?J(oe,ae,Se,je):Ie.isFile()?$(oe,ae,Se):Ie.isSymbolicLink()&&ne(oe,ae,Se,je))},be=(oe,ae,Se,Ie)=>{if(c.aborted)return;let je=ae===nGt.default.sep?"":nGt.default.sep,qe=Se.name,pt=`${ae}${je}${qe}`;a(pt)||(Se.isDirectory()?J(oe,pt,qe,Ie):Se.isFile()?$(oe,pt,qe):Se.isSymbolicLink()&&ne(oe,pt,qe,Ie))},ce=(oe,ae,Se,Ie)=>{for(let je=0,qe=Se.length;je<qe;je++)be(oe,ae,Se[je],Ie)},he=(oe,ae)=>{c.aborted||ae>n||U>=i||(F(),Tei.default.readdir(oe,{withFileTypes:!0},(Se,Ie)=>{if(Se||c.aborted||!Ie.length)return P();(u(Ie)||Bmu).then(()=>{let qe=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ce(qe,oe,Ie,ae),P()})}))},Le=(oe,ae)=>{F(),Tei.default.realpath(oe,(Se,Ie)=>{if(Se||c.aborted)return P();Tei.default.stat(Ie,(je,qe)=>{if(je||c.aborted)return P();let pt=nGt.default.basename(Ie),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};fe(bt,Ie,pt,qe,ae),P()})})};return(async(oe,ae=1)=>(oe=nGt.default.normalize(oe),C.add(oe),he(oe,ae),await O,c.aborted?x:B))(e)},Dmu=DNm;var bie={lang:{debounce:Sei,attempt:e=>{try{return e()}catch(t){return bie.lang.castError(t)}},castArray:e=>bie.lang.isArray(e)?e:[e],castError:e=>bie.lang.isError(e)?e:bie.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(bie.lang.isNaN(e))return bie.lang.isNaN(t);if(bie.lang.isPrimitive(e)||bie.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(Bei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?dVo.default.realpathSync.native(e):dVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Bei.default.sep&&t.length-e.length>Bei.default.sep.length,poll:(e,t=vmu)=>xmu.retry.stat(t)(e,{bigint:!0}).catch(bie.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 Dmu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Ep=bie;var Oei=we(require("path"),1);var mVo=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||Ep.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=ymu){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=Ep.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??QPe:Math.min(1,this.options.depth??QPe),s=this.options.limit??eGt,[a,c]=await Ep.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())Ep.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!MPe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Oei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Oei.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=AUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Oei.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){cVo&&t.code==="EPERM"?this.onWatcherChange(AUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(tGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(tGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(AUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&MPe&&this.options.native!==!1?this.options.depth??QPe:Math.min(1,this.options.depth??QPe),n=this.options.limit??eGt,[i,o]=await Ep.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(AUe.CHANGE,a,t)}))}}},Rmu=mVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},iGt=kN;var oGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=uVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(Ep.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),iGt.remove(u)},u=()=>{c(),a()};iGt.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=uVo){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),iGt.remove(u)},u=()=>{c(),a()};iGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,Aie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,Aie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,Aie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,Aie.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}}};oGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};oGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var Fmu=oGt;var hVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ep.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(Ep.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ep.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ep.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},gVo=hVo;var AVo=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}},kmu=AVo;var yVo=class{constructor(){this.inos={},this.paths=new gVo,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ep.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new kmu(n)}reset(){this.inos={},this.paths=new gVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Aie.FILE:Aie.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)}}},bVo=yVo;var EVo=class e extends Nmu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new Fmu(this),this._roots=new Set,this._poller=new bVo,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(Ep.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ep.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)Ep.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new Rmu(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=Ep.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=yUe.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??QPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&MPe&&l.options.native!==!1)))return!0;if(!MPe)break;let u=yUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Ep.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||MPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Pei.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=yUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||MPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??QPe,a=r.limit??eGt,[c]=await Ep.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=Ep.fs.getDepth(t);for(let p of c){let d=Ep.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=yUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new bVo,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ep.lang.noop;if(this.pollerExists(t,r))return Ep.lang.noop;let i={...r,interval:r.pollingInterval??Emu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),Pei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),Pei.default.unwatchFile(t,n)};return Ep.lang.attempt(s),()=>Ep.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=Ep.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Ep.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=yUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ep.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=yUe.default.dirname(t);return(await Ep.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ep.lang.noop){if(Ep.lang.isFunction(t))return this.watch([],{},t);if(Ep.lang.isUndefined(t))return this.watch([],r,n);if(Ep.lang.isFunction(r))return this.watch(t,{},r);if(Ep.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ep.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ep.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Dei=EVo;Wei();or();var _7=require("fs/promises"),zhu=require("os"),VVo=we(require("path"),1),nQm=".fern",iQm="logs",_Vo=100*1024*1024;function oQm(){return"cli@5.27.1"}var wUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t){if(this.initialized)return;this.consoleLogger=t;let r=nt(Yt.of((0,zhu.homedir)()),ke.of(nQm)),n=nt(r,ke.of(iQm));await cr(n)||await(0,_7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,ke.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${VVo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
3813
|
+
`);r.fix?l+=await N$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!AYn()&&await j$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new B0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new j({code:j.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${tn.warning} ${Ee.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(Ee.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${tn.success} ${Ee.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 aOm(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 zUo(e){let t=new LUo;Ki(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}))}D0();_t();var Duu=we(require("net"),1),Ruu=we(require("os"),1),L$n=class extends Error{constructor(t){super(`${t} is locked`)}},R0t={old:new Set,young:new Set},cOm=1e3*15,Fuu=new Set;var Bqt,uOm=()=>{let e=Ruu.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},Ouu=e=>new Promise((t,r)=>{let n=Duu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Puu=async(e,t)=>{if(e.host||e.port===0)return Ouu(e);for(let r of t)try{await Ouu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},lOm=e=>R0t.old.has(e)||R0t.young.has(e)||Fuu.has(e),pOm=function*(e){e&&(yield*e),yield 0};async function PPe(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??{};Bqt===void 0&&(Bqt=setTimeout(()=>{Bqt=void 0,R0t.old=R0t.young,R0t.young=new Set},cOm),Bqt.unref&&Bqt.unref());let o=uOm();for(let s of pOm(t))try{if(r.has(s))continue;let a=await Puu({...i,port:s},o);for(;lOm(a);){if(s!==0)throw new L$n(s);a=await Puu({...i,port:s},o)}return n?Fuu.add(a):R0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof L$n))throw a}throw new Error("No available ports found")}_t();var juu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,kuu="docs.buildwithfern.com",Nuu=62;function cUe(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)),juu.test(t)}function Quu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Oqt({orgId:e,previewId:t}){let r=Quu(t),n=`${e}-preview-${r}.${kuu}`;if(n.length<=Nuu)return n;let i=`${e}-preview-`,o=Nuu-i.length;if(o<8)throw new j({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:j.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${kuu}`}jt();lg();or();sS();_t();var S8o=require("child_process"),rvu=we(VUo(),1),T8o=we(xei(),1),B8o=we(require("fs"),1),kUe=require("fs/promises"),nvu=we(require("http"),1),D8o=we(require("path"),1);var Nmu=require("events"),Pei=we(require("fs"),1),yUe=we(require("path"),1);var Amu=we(require("os"),1),ymu=300,QPe=20,eGt=1e7,bmu=Amu.default.platform();var SNm=bmu==="darwin",cVo=bmu==="win32",MPe=SNm||cVo,Emu=3e3,vmu=2e4,uVo=1250;var Aie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Aie||(Aie={}));var AUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(AUe||(AUe={}));var tGt;(function(e){e.CHANGE="change",e.ERROR="error"})(tGt||(tGt={}));var Wc;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var TNm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,F=o-B,P=Math.min(O,F);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Sei=TNm;var dVo=we(require("fs"),1),Bei=we(require("path"),1);var Hd=we(require("fs"),1),lP=require("util");var Hde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},yie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var lVo=we(require("process"),1),Imu=lVo.default.getuid?!lVo.default.getuid():!1,Cmu=1e4,OM=()=>{};var rGt={isChangeErrorOk:e=>{if(!rGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Imu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!rGt.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(!rGt.isNodeError(e))throw e;if(!rGt.isChangeErrorOk(e))throw e}},FC=rGt;var pVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Cmu,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()}}}}},wmu=new pVo;var Kde=(e,t)=>function(n){return function i(...o){return wmu.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)})}},Jde=(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 BNm={attempt:{chmod:Hde((0,lP.promisify)(Hd.default.chmod),FC.onChangeError),chown:Hde((0,lP.promisify)(Hd.default.chown),FC.onChangeError),close:Hde((0,lP.promisify)(Hd.default.close),OM),fsync:Hde((0,lP.promisify)(Hd.default.fsync),OM),mkdir:Hde((0,lP.promisify)(Hd.default.mkdir),OM),realpath:Hde((0,lP.promisify)(Hd.default.realpath),OM),stat:Hde((0,lP.promisify)(Hd.default.stat),OM),unlink:Hde((0,lP.promisify)(Hd.default.unlink),OM),chmodSync:yie(Hd.default.chmodSync,FC.onChangeError),chownSync:yie(Hd.default.chownSync,FC.onChangeError),closeSync:yie(Hd.default.closeSync,OM),existsSync:yie(Hd.default.existsSync,OM),fsyncSync:yie(Hd.default.fsync,OM),mkdirSync:yie(Hd.default.mkdirSync,OM),realpathSync:yie(Hd.default.realpathSync,OM),statSync:yie(Hd.default.statSync,OM),unlinkSync:yie(Hd.default.unlinkSync,OM)},retry:{close:Kde((0,lP.promisify)(Hd.default.close),FC.isRetriableError),fsync:Kde((0,lP.promisify)(Hd.default.fsync),FC.isRetriableError),open:Kde((0,lP.promisify)(Hd.default.open),FC.isRetriableError),readFile:Kde((0,lP.promisify)(Hd.default.readFile),FC.isRetriableError),rename:Kde((0,lP.promisify)(Hd.default.rename),FC.isRetriableError),stat:Kde((0,lP.promisify)(Hd.default.stat),FC.isRetriableError),write:Kde((0,lP.promisify)(Hd.default.write),FC.isRetriableError),writeFile:Kde((0,lP.promisify)(Hd.default.writeFile),FC.isRetriableError),closeSync:Jde(Hd.default.closeSync,FC.isRetriableError),fsyncSync:Jde(Hd.default.fsyncSync,FC.isRetriableError),openSync:Jde(Hd.default.openSync,FC.isRetriableError),readFileSync:Jde(Hd.default.readFileSync,FC.isRetriableError),renameSync:Jde(Hd.default.renameSync,FC.isRetriableError),statSync:Jde(Hd.default.statSync,FC.isRetriableError),writeSync:Jde(Hd.default.writeSync,FC.isRetriableError),writeFileSync:Jde(Hd.default.writeFileSync,FC.isRetriableError)}},xmu=BNm;var Tei=we(require("fs"),1),nGt=we(require("path"),1);var fVo=()=>{};var ONm=()=>{let e=fVo,t=fVo,r=!1,n=!1;return{promise:new Promise((c,u)=>{e=l=>(r=!0,c(l)),t=l=>(n=!0,u(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},Smu=ONm;var PNm=()=>{let{promise:e,resolve:t,isPending:r}=Smu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Tmu=PNm;var Bmu={then:e=>{e()}};var Omu=e=>Array.isArray(e)?e:[e],Pmu=e=>typeof e=="function";var DNm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=Omu(o).map(oe=>Pmu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:F,decrement:P}=Tmu(),U=0,J=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(Ie>=n)&&(U>=i||he(ae,Ie+1)))},$=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(Ie>=n||U>=i||Le(ae,Ie+1)))},fe=(oe,ae,Se,Ie,je)=>{c.aborted||a(ae)||(Ie.isDirectory()?J(oe,ae,Se,je):Ie.isFile()?$(oe,ae,Se):Ie.isSymbolicLink()&&ne(oe,ae,Se,je))},be=(oe,ae,Se,Ie)=>{if(c.aborted)return;let je=ae===nGt.default.sep?"":nGt.default.sep,qe=Se.name,pt=`${ae}${je}${qe}`;a(pt)||(Se.isDirectory()?J(oe,pt,qe,Ie):Se.isFile()?$(oe,pt,qe):Se.isSymbolicLink()&&ne(oe,pt,qe,Ie))},ce=(oe,ae,Se,Ie)=>{for(let je=0,qe=Se.length;je<qe;je++)be(oe,ae,Se[je],Ie)},he=(oe,ae)=>{c.aborted||ae>n||U>=i||(F(),Tei.default.readdir(oe,{withFileTypes:!0},(Se,Ie)=>{if(Se||c.aborted||!Ie.length)return P();(u(Ie)||Bmu).then(()=>{let qe=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ce(qe,oe,Ie,ae),P()})}))},Le=(oe,ae)=>{F(),Tei.default.realpath(oe,(Se,Ie)=>{if(Se||c.aborted)return P();Tei.default.stat(Ie,(je,qe)=>{if(je||c.aborted)return P();let pt=nGt.default.basename(Ie),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};fe(bt,Ie,pt,qe,ae),P()})})};return(async(oe,ae=1)=>(oe=nGt.default.normalize(oe),C.add(oe),he(oe,ae),await O,c.aborted?x:B))(e)},Dmu=DNm;var bie={lang:{debounce:Sei,attempt:e=>{try{return e()}catch(t){return bie.lang.castError(t)}},castArray:e=>bie.lang.isArray(e)?e:[e],castError:e=>bie.lang.isError(e)?e:bie.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(bie.lang.isNaN(e))return bie.lang.isNaN(t);if(bie.lang.isPrimitive(e)||bie.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(Bei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?dVo.default.realpathSync.native(e):dVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Bei.default.sep&&t.length-e.length>Bei.default.sep.length,poll:(e,t=vmu)=>xmu.retry.stat(t)(e,{bigint:!0}).catch(bie.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 Dmu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Ep=bie;var Oei=we(require("path"),1);var mVo=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||Ep.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=ymu){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,c)=>{let u=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...c]),p=this.eventsDeduplicate([...u,...l]);this.onTargetEvents(p)},s=Ep.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??QPe:Math.min(1,this.options.depth??QPe),s=this.options.limit??eGt,[a,c]=await Ep.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),u=[...a,...c];return await Promise.all(u.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())Ep.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!MPe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Oei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Oei.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=AUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Oei.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){cVo&&t.code==="EPERM"?this.onWatcherChange(AUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(tGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(tGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(AUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&MPe&&this.options.native!==!1?this.options.depth??QPe:Math.min(1,this.options.depth??QPe),n=this.options.limit??eGt,[i,o]=await Ep.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(AUe.CHANGE,a,t)}))}}},Rmu=mVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},iGt=kN;var oGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=uVo){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(Ep.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let c=()=>{s.add.delete(n),iGt.remove(u)},u=()=>{c(),a()};iGt.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=uVo){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),iGt.remove(u)},u=()=>{c(),a()};iGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,Aie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,Aie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,Aie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,Aie.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}}};oGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};oGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var Fmu=oGt;var hVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Ep.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(Ep.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(Ep.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Ep.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Ep.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},gVo=hVo;var AVo=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}},kmu=AVo;var yVo=class{constructor(){this.inos={},this.paths=new gVo,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await Ep.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new kmu(n)}reset(){this.inos={},this.paths=new gVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Aie.FILE:Aie.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)}}},bVo=yVo;var EVo=class e extends Nmu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new Fmu(this),this._roots=new Set,this._poller=new bVo,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(Ep.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Ep.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Ep.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)Ep.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new Rmu(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=Ep.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=yUe.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??QPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&MPe&&l.options.native!==!1)))return!0;if(!MPe)break;let u=yUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Ep.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let c=!r.recursive||MPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:Pei.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=yUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||MPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??QPe,a=r.limit??eGt,[c]=await Ep.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,n,i,o);if(c.length){let l=Ep.fs.getDepth(t);for(let p of c){let d=Ep.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=yUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new bVo,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return Ep.lang.noop;if(this.pollerExists(t,r))return Ep.lang.noop;let i={...r,interval:r.pollingInterval??Emu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),Pei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),Pei.default.unwatchFile(t,n)};return Ep.lang.attempt(s),()=>Ep.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=Ep.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Ep.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=yUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Ep.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=yUe.default.dirname(t);return(await Ep.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Ep.lang.noop){if(Ep.lang.isFunction(t))return this.watch([],{},t);if(Ep.lang.isUndefined(t))return this.watch([],r,n);if(Ep.lang.isFunction(r))return this.watch(t,{},r);if(Ep.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Ep.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Ep.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Dei=EVo;Wei();or();var _7=require("fs/promises"),zhu=require("os"),VVo=we(require("path"),1),nQm=".fern",iQm="logs",_Vo=100*1024*1024;function oQm(){return"cli@5.27.2"}var wUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t){if(this.initialized)return;this.consoleLogger=t;let r=nt(Yt.of((0,zhu.homedir)()),ke.of(nQm)),n=nt(r,ke.of(iQm));await cr(n)||await(0,_7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,ke.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${VVo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
3814
3814
|
`);await(0,_7.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)+`
|
|
3815
3815
|
`;try{await(0,_7.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:oQm(),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,_7.readdir)(t)).filter(c=>c.endsWith(".log")),i=[];for(let c of n){let u=VVo.default.join(t,c);try{let l=await(0,_7.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=_Vo/1024/1024;if(o<=_Vo){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<=_Vo)break;if(!(this.logFilePath!=null&&c.fullPath===this.logFilePath))try{await(0,_7.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 Hei={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function Uhu(e){let t=sQm();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:Hei});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",...Hei}})}catch{return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...Hei}})}let d=/^\/_local\/(.*)/.exec(p.pathname);return u.method==="GET"&&d!=null?new Response(t.file(`/${d[1]}`),{headers:Hei}):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 wUe.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 sQm(){return globalThis.Bun}or();sS();_t();var VEu=require("child_process"),sri=we(ZVo(),1),qEu=we(p8o(),1),Ev=require("fs"),QN=require("fs/promises"),GEu=require("os"),jN=we(require("path"),1),WEu=we(jx(),1),HEu=we(_Eu(),1),FUe=process.platform==="win32",ori=Ee.cyan("[docs]:"),j3m="etag",Q3m=23,I8o=e=>e.padEnd(Q3m," "),M3m="preview",L3m="app-preview",z3m="bundle",U3m=".next",_3m="standalone",V3m=".fern",q3m="packages/fern-docs/bundle/.next/server/instrumentation.js",G3m='Cannot find matching keyid: {"signatures":',W3m="ERR_PNPM_IGNORED_BUILDS";function H3m(e){try{let r=(0,VEu.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 j({message:`Windows long path support is not enabled. The docs bundle contains deeply nested .pnpm paths that exceed the 260-character MAX_PATH limit.
|
|
3816
3816
|
|
|
@@ -4236,7 +4236,7 @@ js:
|
|
|
4236
4236
|
${i.error?.message??"Unknown error"}`,code:j.Code.ParseError})}or();var Cvu=require("fs"),gri=require("fs/promises"),wvu=require("stream/promises");async function xvu({snippetsS3PreSignedReadUrl:e,absolutePathToLocalSnippetJSON:t,context:r}){try{await Gzm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}),r.logger.info(Ee.green(`Downloaded to ${t}`))}catch{r.logger.debug(Ee.yellow("Failed to download snippet.json from output."))}}async function Gzm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await Wy.get(e,{responseType:"stream"});await cr(t)&&await(0,gri.rm)(t,{recursive:!0}),await(0,gri.mkdir)(Fn(t),{recursive:!0}),await(0,wvu.pipeline)(r.data,(0,Cvu.createWriteStream)(t))}or();async function Svu({generatorInvocation:e,context:t}){if(e.absolutePathToLocalOutput==null)return;let r=nt(e.absolutePathToLocalOutput,ke.of(lD));if(await cr(r))return t.logger.debug(`Auto-discovered ${lD} at ${r}`),r}jt();lg();var sTu=we(GUe(),1);_t();or();_t();var Nvu=we(A3t(),1),Eri=require("fs/promises");ks();var jvu=we(eh(),1),Qvu=require("util"),Mvu=require("zlib");_t();var u4m=2e3,Fvu=12e4,n7o=5,l4m=.5,WUe=class e extends Error{retryAfterSeconds;constructor(t){super("Received 429 Too Many Requests"),Object.setPrototypeOf(this,e.prototype),this.retryAfterSeconds=t}};async function kvu({fn:e,retryRateLimited:t,logger:r,onRateLimitedWithoutRetry:n,delayFn:i=o=>new Promise(s=>setTimeout(s,o))}){if(!t)try{return await e()}catch(o){if(o instanceof WUe)return n();throw o}for(let o=0;o<=n7o;o++)try{return await e()}catch(s){if(s instanceof WUe&&o<n7o){let a=Math.min(u4m*2**o,Fvu),c=s.retryAfterSeconds!=null?s.retryAfterSeconds*1e3:void 0,u=c!=null?Math.max(a,c):a,l=1+(Math.random()-.5)*l4m,p=Math.round(Math.min(Math.max(u*l,c??0),Fvu));r.warn(`Received 429 Too Many Requests. Retrying in ${(p/1e3).toFixed(1)}s (attempt ${o+1}/${n7o})...`),await i(p)}else throw s}throw new j({message:"Exceeded maximum retries for 429 Too Many Requests.",code:j.Code.InternalError})}var p4m=(0,Qvu.promisify)(Mvu.gzip);async function Lvu({projectConfig:e,workspace:t,organization:r,intermediateRepresentation:n,generatorInvocation:i,version:o,context:s,shouldLogS3Url:a,token:c,whitelabel:u,replay:l,irVersionOverride:p,absolutePathToPreview:d,fiddlePreview:f,pushPreviewBranch:m,fernignorePath:h,skipFernignore:A,retryRateLimited:y,automationMode:I,autoMerge:w,skipIfNoDiff:C,verify:x,loginCommand:B="fern login"}){let O;if(A)O="";else if(h!=null)try{O=await(0,Eri.readFile)(h,"utf-8")}catch(P){s.failAndThrow(`Failed to read fernignore file at ${h}: ${P}`,void 0,{code:j.Code.ConfigError})}let F=await kvu({fn:()=>f4m({projectConfig:e,workspace:t,organization:r,generatorInvocation:i,version:o,context:s,shouldLogS3Url:a,token:c,whitelabel:u,replay:l,absolutePathToPreview:d,fiddlePreview:f,pushPreviewBranch:m,fernignoreContents:O,automationMode:I,autoMerge:w,skipIfNoDiff:C,verify:x,loginCommand:B}),retryRateLimited:y,logger:s.logger,onRateLimitedWithoutRetry:()=>s.failAndThrow("Received 429 Too Many Requests. Re-run with --retry-rate-limited to automatically retry.",void 0,{code:j.Code.NetworkError})});return await d4m({intermediateRepresentation:n,job:F,context:s,generatorInvocation:i,irVersionOverride:p}),F}async function f4m({projectConfig:e,workspace:t,organization:r,generatorInvocation:n,version:i,context:o,shouldLogS3Url:s,token:a,whitelabel:c,replay:u,absolutePathToPreview:l,fiddlePreview:p,pushPreviewBranch:d,fernignoreContents:f,skipIfNoDiff:m,verify:h,loginCommand:A}){let y=Npe({token:a.value}),I={id:n.name,version:n.version,outputMode:n.outputMode,customConfig:n.config,publishMetadata:n.publishMetadata},w={apiName:t.definition.rootApiFile.contents.name,version:i,organizationName:r,generators:[I],uploadToS3:y4m({outputMode:n.outputMode,generatorInvocation:n,absolutePathToPreview:l,shouldLogS3Url:s}),whitelabel:c,replay:u!=null?{enabled:u.enabled}:void 0,preview:p??l!=null,pushPreviewBranch:d,fernignoreContents:f,skipIfNoDiff:m,verify:h},C=await y.remoteGen.createJobV3(w);if(!C.ok){let x=C.error;if(x?.content?.reason==="status-code"&&x.content.statusCode===429){let O=g4m(x);throw new WUe(O)}let B=h4m(x);return B!=null?o.failAndThrow(B,void 0,{code:j.Code.ConfigError}):A4m(x)._visit({illegalApiNameError:()=>o.failAndThrow("API name is invalid: "+t.definition.rootApiFile.contents.name,void 0,{code:j.Code.ConfigError}),illegalApiVersionError:()=>o.failAndThrow("API version is invalid: "+i,void 0,{code:j.Code.ConfigError}),cannotPublishToNpmScope:({validScope:O,invalidScope:F})=>o.failAndThrow(`You do not have permission to publish to ${F} (expected ${O})`,void 0,{code:j.Code.AuthError}),cannotPublishToMavenGroup:({validGroup:O,invalidGroup:F})=>o.failAndThrow(`You do not have permission to publish to ${F} (expected ${O})`,void 0,{code:j.Code.AuthError}),cannotPublishPypiPackage:({validPrefix:O,invalidPackageName:F})=>o.failAndThrow(`You do not have permission to publish to ${F} (expected ${O})`,void 0,{code:j.Code.AuthError}),generatorsDoNotExistError:O=>o.failAndThrow("Generators do not exist: "+O.nonExistentGenerators.map(F=>`${F.id}@${F.version}`).join(", "),void 0,{code:j.Code.ConfigError}),insufficientPermissions:()=>o.failAndThrow(`You do not have permission to run this generator for organization '${r}'. Please run '${A}' to ensure you are logged in with the correct account.
|
|
4237
4237
|
|
|
4238
4238
|
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`,void 0,{code:j.Code.AuthError}),orgNotConfiguredForWhitelabel:()=>o.failAndThrow("Your org is not configured for white-labeling. Please reach out to support@buildwithfern.com.",void 0,{code:j.Code.AuthError}),branchDoesNotExist:O=>o.failAndThrow(`Branch ${O.branch} does not exist in repository ${O.repositoryOwner}/${O.repositoryName}`,void 0,{code:j.Code.ConfigError}),rateLimitExceeded:()=>{throw new WUe},_other:O=>{o.logger.debug(`Failed to create job: ${JSON.stringify(O)}`);let F=m4m(O);return F!=null?o.failAndThrow(F,void 0,{code:j.Code.NetworkError}):o.failAndThrow("Failed to create job. Please try again or contact support@buildwithfern.com for assistance.",void 0,{code:j.Code.NetworkError})}})}return C.body}async function d4m({intermediateRepresentation:e,generatorInvocation:t,job:r,context:n,irVersionOverride:i}){let o=await yLe(t).then(f=>f==null?void 0:"v"+f.toString()),s=i??o,a=s==null?await J8t({intermediateRepresentation:e,context:n,targetGenerator:{name:t.name,version:t.version}}):await i6o({intermediateRepresentation:e,context:n,irVersion:s,targetGenerator:{name:t.name,version:t.version}}),c=new Nvu.default,u=await uar(a,{onWrite:f=>{n.logger.debug("Wrote IR to disk: "+f)}}),l=new TextEncoder().encode(u),p=await p4m(l);n.logger.debug(`Compressed IR from ${l.byteLength} bytes to ${p.length} bytes (${((1-p.length/l.byteLength)*100).toFixed(1)}% reduction)`),c.append("file",p,{filename:"ir.json",contentType:"application/octet-stream"});let d=(0,jvu.default)(bLe(),`/api/remote-gen/jobs/${r.jobId}/start`);try{await Wy.post(d,c,{headers:c.getHeaders(),maxBodyLength:1/0})}catch(f){let m=f instanceof gAc?f.response?.data:f;n.logger.debug(`POST ${d} failed with ${JSON.stringify(f)}`),n.failAndThrow("Failed to start job",m,{code:j.Code.NetworkError})}}function m4m(e){let t;if(e?.reason==="status-code"?t=e.body:e?.content?.reason==="status-code"&&(t=e.content.body),typeof t?.content?.message=="string")return t.content.message;if(typeof t?.message=="string")return t.message}function h4m(e){let t=e?.content?.reason==="status-code"?e.content.body:void 0;return t?.error!=="GithubAppNotInstalled"?void 0:typeof t?.content?.message=="string"?t.content.message:`The Fern GitHub App is not installed on ${typeof t?.content?.repositoryName=="string"?t.content.repositoryName:"the target repository"}. Please install it (https://github.com/apps/fern-api) and try again.`}function g4m(e){let t=e?.content?.body?.content?.retryAfter;return typeof t=="number"&&t>0?t:void 0}function A4m(e){if(e?.content?.reason==="status-code"){let t=e.content.body;switch(t?.error){case"IllegalApiNameError":return Yr.remoteGen.createJobV3.Error.illegalApiNameError();case"IllegalApiVersionError":return Yr.remoteGen.createJobV3.Error.illegalApiVersionError(t.content);case"GeneratorsDoNotExistError":return Yr.remoteGen.createJobV3.Error.generatorsDoNotExistError(t.content);case"CannotPublishToNpmScope":return Yr.remoteGen.createJobV3.Error.cannotPublishToNpmScope(t.content);case"CannotPublishToMavenScope":return Yr.remoteGen.createJobV3.Error.cannotPublishToMavenGroup(t.content);case"CannotPublishPypiPackage":return Yr.remoteGen.createJobV3.Error.cannotPublishPypiPackage(t.content);case"InsufficientPermissions":return Yr.remoteGen.createJobV3.Error.insufficientPermissions(t.content);case"OrgNotConfiguredForWhitelabel":return Yr.remoteGen.createJobV3.Error.orgNotConfiguredForWhitelabel(t.content);case"BranchDoesNotExist":return Yr.remoteGen.createJobV3.Error.branchDoesNotExist(t.content)}}return e}function y4m({outputMode:e,generatorInvocation:t,absolutePathToPreview:r,shouldLogS3Url:n}){return e.type==="downloadFiles"||t.absolutePathToLocalSnippets!=null||r!=null||n}_t();var zvu=Npe();var b4m=3;function Uvu({job:e,taskId:t,taskHandler:r,context:n}){let i=0,o=async()=>{let s=await zvu.remoteGen.getJobStatus(e.jobId);if(s.ok)return s.body[t];n.logger.debug("Failed to get job status.",JSON.stringify(s.error.content))};return new Promise((s,a)=>{c();async function c(){try{let u=await o();if(u==null)i++,i===b4m&&n.failAndThrow(`Failed to get job status after ${i} attempts.`,void 0,{code:j.Code.NetworkError}),setTimeout(c,2e3+1e3*i);else{i=0;let l=await r.processUpdate(u);r.isFinished?s(l):setTimeout(c,2e3)}}catch(u){a(u)}}})}jt();or();var $1u=we(Oni(),1);D0();sS();_t();var Rni=require("fs"),NM=require("fs/promises"),i_e=we(require("path"),1),hGo=require("stream/promises");var Pni=we(Z1u(),1);function pme(e,t,{target:r="stdout",...n}={}){return Pni.default[r]?IW.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}pme.isSupported=Pni.default.stdout;pme.stderr=(e,t,r={})=>pme(e,t,{target:"stderr",...r});pme.stderr.isSupported=Pni.default.stderr;var Fni=we(jx(),1),eTu=we(Uti(),1);var Vqm=/^Pipeline: raw result \(\d+ bytes\): (\{.*\})$/,Dni=class{context;generatorInvocation;absolutePathToPreview;telemetryContext;lengthOfLastLogs=0;cachedReplayResult;replayEventEmitted=!1;taskStartedAtMs=Date.now();constructor({interactiveTaskContext:t,generatorInvocation:r,absolutePathToPreview:n,telemetryContext:i}){this.context=t,this.generatorInvocation=r,this.absolutePathToPreview=n,this.telemetryContext=i}async processUpdate(t){t==null&&this.context.failAndThrow("Task is missing on job status",void 0,{code:j.Code.InternalError});let r=t.packages.map(i=>i.coordinate._visit({npm:o=>`${o.name}@${o.version}`,maven:o=>`${o.group}:${o.artifact}:${o.version}`,pypi:o=>`${o.name} ${o.version}`,ruby:o=>`${o.name}:${o.version}`,nuget:o=>`${o.name} ${o.version}`,crates:o=>`${o.name} ${o.version}`,_other:()=>"<unknown package>"}));t.packages.length>0&&this.#n==null&&(this.#n=t.packages[0]?.coordinate._visit({npm:i=>i.version,maven:i=>i.version,pypi:i=>i.version,ruby:i=>i.version,nuget:i=>i.version,crates:i=>i.version,_other:()=>{}})),this.#i==null&&(this.#i=pvu(t.packages)),this.absolutePathToPreview==null&&this.context.setSubtitle(r.length>0?r.map(i=>`\u25E6 ${i}`).join(`
|
|
4239
|
-
`):void 0);for(let i of t.logs.slice(this.lengthOfLastLogs))this.context.logger.log(Xqm(i.level),i.message),this.#n==null&&(this.#n=Gqm(i.message)??this.#n),this.cachedReplayResult==null&&(this.cachedReplayResult=Wqm(i.message));this.lengthOfLastLogs=t.logs.length;let n=i=>{this.context.logger.debug(`Generated files. ${pme("View here",i,{fallback:(o,s)=>`${o}: ${s}`})}`)};return await t.status._visit({notStarted:Ct,running:Ct,failed:({message:i,s3PreSignedReadUrl:o})=>{o!=null&&n(o),this.context.failAndThrow(i,void 0,{code:j.Code.ContainerError})},finished:async i=>{if(i.s3PreSignedReadUrlV2!=null){n(i.s3PreSignedReadUrlV2);let o=this.getAbsolutePathToLocalOutput();o!=null&&await Jqm({s3PreSignedReadUrl:i.s3PreSignedReadUrlV2,absolutePathToLocalOutput:o,context:this.context})}if(this.absolutePathToPreview==null)for(let o of r)this.context.logger.info(`Published ${o}`);this.#e=!0,this.#t=i.createdSnippets!=null?i.createdSnippets:!1,this.#r=i.snippetsS3PreSignedReadUrl,this.#o=i.pullRequestUrl,this.#s=i.noChangesDetected,i.actualVersion!=null&&(this.#n=i.actualVersion),this.emitReplayTelemetryIfReady()},_other:()=>{this.context.logger.warn("Received unknown update type: "+t.status.type)}}),this.#e?{createdSnippets:this.#t,snippetsS3PreSignedReadUrl:this.#r,actualVersion:this.#n,pullRequestUrl:this.#o,noChangesDetected:this.#s,publishTarget:this.#i}:void 0}getAbsolutePathToLocalOutput(){return this.absolutePathToPreview!=null?nt(this.absolutePathToPreview,ke.of(i_e.default.basename(this.generatorInvocation.name))):this.generatorInvocation.absolutePathToLocalOutput}emitReplayTelemetryIfReady(){if(!this.replayEventEmitted&&this.cachedReplayResult!=null&&!this.telemetryContext.disableTelemetry)try{let t={success:!0,steps:{replay:this.cachedReplayResult},warnings:[]},n={...(0,$1u.buildReplayTelemetryProps)({pipelineResult:t,generatorName:this.generatorInvocation.name,generatorVersion:this.generatorInvocation.version,cliVersion:this.telemetryContext.cliVersion,repoUri:Hqm(this.generatorInvocation),automationMode:this.telemetryContext.automationMode,autoMerge:this.telemetryContext.autoMerge,skipIfNoDiff:this.telemetryContext.skipIfNoDiff,hasBreakingChanges:!1,versionArg:this.telemetryContext.versionArg,versionBump:this.telemetryContext.versionBump,replayConfigEnabled:this.telemetryContext.replayConfigEnabled,noReplayFlag:this.telemetryContext.noReplayFlag,githubMode:Kqm(this.generatorInvocation),previewMode:this.absolutePathToPreview!=null,durationMs:Date.now()-this.taskStartedAtMs}),surface:"fiddle",org_id:this.telemetryContext.orgId};this.context.instrumentPostHogEvent({command:"replay",properties:n}),this.context.logger.debug(`[telemetry] replay event sent: ${JSON.stringify(n)}`),this.replayEventEmitted=!0}catch(t){this.context.logger.debug(`[telemetry] failed to send replay event: ${String(t)}`)}}#e=!1;get isFinished(){return this.#e}#t=!1;get createdSnippets(){return this.#t}#r=void 0;get snippetsS3PreSignedReadUrl(){return this.#r}#n=void 0;get actualVersion(){return this.#n}#i=void 0;get publishTarget(){return this.#i}#o=void 0;get pullRequestUrl(){return this.#o}#s=void 0;get noChangesDetected(){return this.#s}},qqm=/Tagging release (v?\d+\.\d+\.\d+(?:-[\w.-]+)?)/;function Gqm(e){let t=e.match(qqm);if(t?.[1]!=null)return t[1].replace(/^v/,"")}function Wqm(e){let t=e.match(Vqm);if(t?.[1]!=null)try{return JSON.parse(t[1])?.steps?.replay}catch{return}}function Hqm(e){let t=e.raw?.github;return t==null?"":"uri"in t&&typeof t.uri=="string"?t.uri:"repository"in t&&typeof t.repository=="string"?t.repository:""}function Kqm(e){let t=e.raw?.github;return t!=null&&"mode"in t&&t.mode==="pull-request"?"pull-request":"push"}async function Jqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){try{let n=await Zqm(t),i=await $qm(t);n&&i?await eGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}):n&&!i?await tGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}):await Yqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}),r.logger.info(Ee.green(`Downloaded to ${t}`))}catch(n){r.failAndThrow("Failed to download files",n,{code:j.Code.NetworkError})}}async function Yqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await Wy.get(e,{responseType:"stream"}),n=await Fni.default.dir({prefix:"fern",unsafeCleanup:!0}),i=i_e.default.join(n.path,"output.zip");await(0,hGo.pipeline)(r.data,(0,Rni.createWriteStream)(i)),await mGo(t),await(0,NM.mkdir)(t,{recursive:!0}),await nTu(i,t)}async function mGo(e){await cr(e)&&(await tTu(e),await(0,NM.rm)(e,{recursive:!0,force:!0}))}async function tTu(e){try{let t=await(0,NM.readdir)(e,{withFileTypes:!0});for(let r of t){let n=Yt.of(i_e.default.join(e,r.name));r.isDirectory()&&await tTu(n);try{await(0,NM.chmod)(n,493)}catch{}}await(0,NM.chmod)(e,493)}catch{}}function Xqm(e){switch(e){case"DEBUG":return qn.Debug;case"INFO":return qn.Info;case"WARN":return qn.Warn;case"ERROR":return qn.Error;default:return qn.Info}}async function Zqm(e){let t=nt(e,ke.of(lD));return await cr(t)}async function $qm(e){let t=nt(e,ke.of(".git"));return await cr(t)}async function dK(e,t,r){return(await mu(r.logger,"git",e,{cwd:t,doNotPipeOutput:!0})).stdout}async function eGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){let n=nt(t,ke.of(lD)),i=await Lye({absolutePathToFernignore:n});await dK(["rm","-rf","."],t,r),await rTu({s3PreSignedReadUrl:e,outputPath:t}),await dK(["add","."],t,r),await dK(["reset","--",...i],t,r),await dK(["restore","."],t,r)}async function tGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){let n=Yt.of((await Fni.default.dir({})).path),i=nt(t,ke.of(lD)),o=await Lye({absolutePathToFernignore:i});await(0,NM.cp)(t,n,{recursive:!0}),await dK(["init"],n,r),await dK(["add","."],n,r),await dK(["-c","user.name=fern","-c","user.email=hey@buildwithfern.com","-c","commit.gpgsign=false","commit","--allow-empty","--no-verify","-m","init"],n,r),await dK(["rm","-rf","."],n,r),await rTu({s3PreSignedReadUrl:e,outputPath:n}),await dK(["add","."],n,r),await dK(["reset","--",...o],n,r),await dK(["restore","."],n,r),await mGo(nt(n,ke.of(".git"))),await mGo(t),await(0,NM.cp)(n,t,{recursive:!0})}async function rTu({s3PreSignedReadUrl:e,outputPath:t}){let r=await Wy.get(e,{responseType:"stream"}),n=await Fni.default.dir({prefix:"fern",unsafeCleanup:!0}),i=i_e.default.join(n.path,"output.zip");await(0,hGo.pipeline)(r.data,(0,Rni.createWriteStream)(i)),await nTu(i,t)}async function nTu(e,t){return new Promise((r,n)=>{eTu.default.open(e,{lazyEntries:!0},(i,o)=>{if(i||!o){n(i??new Error("Failed to open zip file"));return}o.on("error",n),o.on("end",r),o.on("entry",s=>{let a=i_e.default.join(t,s.fileName);if(s.fileName.endsWith("/")){(0,NM.mkdir)(a,{recursive:!0}).then(()=>o.readEntry()).catch(n);return}(0,NM.mkdir)(i_e.default.dirname(a),{recursive:!0}).then(()=>{o.openReadStream(s,(c,u)=>{if(c||!u){n(c??new Error("Failed to open read stream"));return}u.pipe((0,Rni.createWriteStream)(a)).on("finish",()=>o.readEntry()).on("error",n)})}).catch(n)}),o.readEntry()})})}or();sS();_t();var kni=require("fs/promises"),iTu=we(jx(),1),rGm="proto.zip",p9t=class{sourceTypes;context;sources;constructor(t,r){this.context=t,this.sources=Object.fromEntries(r.map(n=>[n.id,n])),this.sourceTypes=new Set(Object.values(this.sources).map(n=>n.type))}async uploadSources(t){for(let[r,n]of Object.entries(t)){let i=this.getSourceOrThrow(r);await this.uploadSource(i,n.uploadUrl)}return this.convertFdrSourceUploadsToSourceConfig(t)}async uploadSource(t,r){let n=await this.getUploadCommand(t),i=await(0,kni.readFile)(n.absoluteFilePath),o=await fetch(r,{method:"PUT",body:i,headers:{"Content-Type":"application/octet-stream"}});await n.cleanup(),o.ok||this.context.failAndThrow(`Failed to upload source file: ${t.absoluteFilePath}. Status: ${o.status}, ${o.statusText}`,void 0,{code:j.Code.NetworkError})}async getUploadCommand(t){if(t.type==="protobuf"){let r=await this.zipSource(t.absoluteFilePath);return{absoluteFilePath:r,cleanup:async()=>{this.context.logger.debug(`Removing ${r}`),await(0,kni.unlink)(r)}}}return{absoluteFilePath:t.absoluteFilePath,cleanup:async()=>{}}}async zipSource(t){let r=await iTu.default.dir(),n=nt(Yt.of(r.path),ke.of(rGm));return this.context.logger.debug(`Zipping source ${t} into ${n}`),await mu(this.context.logger,"zip",["-r",n,"."],{cwd:t,doNotPipeOutput:!0}),n}convertFdrSourceUploadsToSourceConfig(t){let r=[];for(let[n,i]of Object.entries(t))switch(this.getSourceOrThrow(n).type){case"protobuf":r.push(qj.proto({id:n,protoRootUrl:i.downloadUrl}));continue;case"openapi":r.push(qj.openapi());continue;case"asyncapi":continue}return{sources:r}}getSourceOrThrow(t){let r=this.sources[t];return r==null&&this.context.failAndThrow(`Internal error; server responded with source id "${t}" which does not exist in the workspace.`,void 0,{code:j.Code.InternalError}),r}};async function aTu({projectConfig:e,organization:t,workspace:r,interactiveTaskContext:n,generatorInvocation:i,version:o,audiences:s,shouldLogS3Url:a,token:c,whitelabel:u,replay:l,irVersionOverride:p,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,readme:A,fernignorePath:y,skipFernignore:I,dynamicIrOnly:w,retryRateLimited:C,requireEnvVars:x,automationMode:B,autoMerge:O,skipIfNoDiff:F,verify:P,noReplay:U,disableTelemetry:J,loginCommand:$}){let ne=Ak({token:c.value}),be=await A4t("https://registry.buildwithfern.com/health",n.logger),ce=zn.getPackageName({generatorInvocation:i}),he=f??d!=null,Le=He=>Dy(He,{onError:xe=>{!he&&x&&n.failAndThrow(void 0,xe,{code:j.Code.EnvironmentError})}},{substituteAsEmpty:he}),Ne=Le(i),oe=_Ue({apiName:r.definition.rootApiFile.contents.name,organization:t,generatorInvocation:Ne}),ae=o??await URt({packageName:ce,generatorInvocation:i});o!=null&&(he?n.logger.warn(`Skipping version availability check in preview mode. Version ${o} may already exist on the package registry.`):await pgr({version:o,packageName:ce,generatorInvocation:i,context:n}));let Se=rA({workspace:r,generationLanguage:i.language,keywords:i.keywords,smartCasing:i.smartCasing,exampleGeneration:{disabled:i.disableExamples,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!1},audiences:s,readme:A,packageName:ce,version:ae,context:n,sourceResolver:new Kh(n,r),dynamicGeneratorConfig:oe,generationMetadata:{cliVersion:r.cliVersion,generatorName:i.name,generatorVersion:i.version,generatorConfig:i.config,originGitCommit:vY(),originGitCommitIsDirty:IY(),invokedBy:bY(),requestedVersion:o,ciProvider:EY()}}),Ie=Wf({token:c.value});if(!be){let He=await Ie.organization.get(e.organization);He.ok&&(He.body.isWhitelabled&&(Se.readmeConfig==null&&(Se.readmeConfig=oGm),Se.readmeConfig.whiteLabel=!0),Se.selfHosted=He.body.selfHostedSdKs)}let je=r.getSources(),qe,pt,bt=wN({ir:Se,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},context:n});try{let He=await ne.api.register.registerApiDefinition({orgId:hn.OrgId(t),apiId:hn.ApiId(Vr(Se.apiName)),definition:bt,sources:je.length>0?iGm(je):void 0});qe=He.apiDefinitionId,pt=He.sources??void 0}catch(He){new p9t(n,je).sourceTypes.has("protobuf")&&n.failAndThrow(`Failed to register API definition: ${JSON.stringify(He)}`)}let st=new p9t(n,je);if(pt==null&&st.sourceTypes.has("protobuf")&&n.failAndThrow("Did not successfully upload Protobuf source files.",void 0,{code:j.Code.NetworkError}),pt!=null){n.logger.debug("Uploading source files ...");let He=await st.uploadSources(pt);n.logger.debug("Setting IR source configuration ..."),Se.sourceConfig=He}if(w){if(n.logger.info("Dynamic IR only mode: skipping SDK generation and uploading dynamic IR only"),o==null){n.failAndThrow("Version is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}if(i.language==null){n.failAndThrow("Language is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}if(ce==null){n.failAndThrow("Package name is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}try{await oTu({fdr:ne,organization:t,version:o,language:i.language,packageName:ce,ir:Se,smartCasing:i.smartCasing,dynamicGeneratorConfig:oe,context:n})}catch(He){n.failAndThrow(`Failed to upload dynamic IR: ${Kn(He)}`,void 0,{code:j.Code.NetworkError})}return{createdSnippets:!1,snippetsS3PreSignedReadUrl:void 0,actualVersion:o,pullRequestUrl:void 0,noChangesDetected:void 0,publishTarget:void 0}}let Ut=await Lvu({projectConfig:e,workspace:r,organization:t,generatorInvocation:Ne,context:n,version:ae,intermediateRepresentation:{...Se,fdrApiDefinitionId:qe,publishConfig:nGm({generatorInvocation:Ne})},shouldLogS3Url:a,token:c,whitelabel:u!=null?Le(u):void 0,replay:l,irVersionOverride:p,absolutePathToPreview:d,fiddlePreview:m,pushPreviewBranch:h,fernignorePath:y,skipFernignore:I,retryRateLimited:C,automationMode:B,autoMerge:O,skipIfNoDiff:F,verify:P,loginCommand:$});n.logger.debug(`Job ID: ${Ut.jobId}`);let ir=Ut.taskIds[0];if(ir==null){n.failAndThrow("Did not receive a task ID.",void 0,{code:j.Code.NetworkError});return}n.logger.debug(`Task ID: ${ir}`);let Ae=new Dni({job:Ut,taskId:ir,generatorInvocation:i,interactiveTaskContext:n,absolutePathToPreview:d,telemetryContext:{cliVersion:r.cliVersion,orgId:e.organization,automationMode:B===!0,autoMerge:O===!0,skipIfNoDiff:F===!0,versionArg:o==null?"none":(0,sTu.isAutoVersion)(o)?"auto":"explicit",versionBump:void 0,replayConfigEnabled:l?.enabled===!0,noReplayFlag:U===!0,disableTelemetry:J===!0}}),le=await Uvu({job:Ut,taskHandler:Ae,taskId:ir,context:n});if(le!=null&&le.actualVersion==null){let He=sGm(ae);He!=null&&(le={...le,actualVersion:He})}let Qe=le?.actualVersion??ae;if(le!=null&&Qe!=null&&i.language!=null&&ce!=null&&!he)try{await oTu({fdr:ne,organization:t,version:Qe,language:i.language,packageName:ce,ir:Se,smartCasing:i.smartCasing,dynamicGeneratorConfig:oe,context:n})}catch(He){n.logger.warn(`Failed to upload dynamic IR for SDK generation: ${Kn(He)}`)}return le}function nGm({generatorInvocation:e}){return e.outputMode._visit({downloadFiles:()=>{},github:()=>{},githubV2:()=>{},publish:()=>{},publishV2:t=>t._visit({mavenOverride:()=>{},pypiOverride:()=>{},nugetOverride:()=>{},npmOverride:()=>{},rubyGemsOverride:()=>{},cratesOverride:()=>{},postman:r=>{let n;return e.raw?.output?.location==="postman"&&(n=e.raw.output?.["collection-id"]),sr.PublishingConfig.direct({target:sr.PublishTarget.postman({apiKey:r.apiKey,workspaceId:r.workspaceId,collectionId:n})})},_other:()=>{}}),_other:()=>{}})}function iGm(e){return Object.fromEntries(Object.values(e).map(t=>[t.id,{type:t.type==="protobuf"?"proto":t.type}]))}var oGm={defaultEndpoint:void 0,bannerLink:void 0,introduction:void 0,apiReferenceLink:void 0,apiName:void 0,disabledFeatures:void 0,whiteLabel:void 0,customSections:void 0,features:void 0,exampleStyle:void 0};async function oTu({fdr:e,organization:t,version:r,language:n,packageName:i,ir:o,smartCasing:s,dynamicGeneratorConfig:a,context:c}){c.logger.debug(`Uploading dynamic IR for ${n} SDK...`);let u;try{u=await e.api.register.getSdkDynamicIrUploadUrls({orgId:hn.OrgId(t),version:r,snippetConfiguration:{[n]:i}})}catch(m){c.logger.warn(`Failed to get dynamic IR upload URLs (non-fatal, dynamic snippets may be stale): ${m}`);return}let l=u.uploadUrls[n]?.uploadUrl;if(l==null){c.logger.warn(`No upload URL returned for ${n}`);return}let p=rLe({ir:o,disableExamples:!0,smartCasing:s,generationLanguage:n,generatorConfig:a}),d=JSON.stringify(p),f=await fetch(l,{method:"PUT",body:d,headers:{"Content-Type":"application/octet-stream","Content-Length":d.length.toString()}});f.ok?c.logger.debug(`Uploaded dynamic IR for ${n}:${i} (${r})`):c.logger.warn(`Failed to upload dynamic IR for ${n}: ${f.status}`)}function sGm(e){if(e!=null&&e.toUpperCase()!=="AUTO")return e}async function nDe({projectConfig:e,organization:t,workspace:r,context:n,generatorGroup:i,version:o,shouldLogS3Url:s,token:a,whitelabel:c,replay:u,absolutePathToPreview:l,isPreview:p,fiddlePreview:d,pushPreviewBranch:f,mode:m,fernignorePath:h,skipFernignore:A,dynamicIrOnly:y,validateWorkspace:I,retryRateLimited:w,requireEnvVars:C,automationMode:x,autoMerge:B,skipIfNoDiff:O,verify:F,noReplay:P,disableTelemetry:U,automation:J,occurrenceTracker:$,loginCommand:ne}){if(i.generators.length===0)return n.logger.warn("No generators specified."),null;let fe=[],be=$??new LUe;$==null&&be.recordOccurrences(i.generators);let ce=r.generatorsConfiguration?.absolutePathToConfiguration,he=await Promise.all(i.generators.map(Le=>n.runInteractiveTask({name:Le.name},Ne=>aGm({generatorInvocation:Le,interactiveTaskContext:Ne,projectConfig:e,organization:t,workspace:r,context:n,generatorGroup:i,version:o,shouldLogS3Url:s,token:a,whitelabel:c,replay:u,absolutePathToPreview:l,isPreview:p,fiddlePreview:d,pushPreviewBranch:f,mode:m,fernignorePath:h,skipFernignore:A,dynamicIrOnly:y,validateWorkspace:I,retryRateLimited:w,requireEnvVars:C,automationMode:x,autoMerge:B,skipIfNoDiff:O,verify:F,noReplay:P,disableTelemetry:U,automation:J,generatorsYmlAbsolutePath:ce,occurrenceTracker:be,loginCommand:ne,onSnippetsProduced:oe=>fe.push(oe)}))));if(J==null&&he.some(Le=>!Le))throw new pu;return{snippetsProducedBy:fe}}async function aGm({generatorInvocation:e,interactiveTaskContext:t,projectConfig:r,organization:n,workspace:i,context:o,generatorGroup:s,version:a,shouldLogS3Url:c,token:u,whitelabel:l,replay:p,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,mode:A,fernignorePath:y,skipFernignore:I,dynamicIrOnly:w,validateWorkspace:C,retryRateLimited:x,requireEnvVars:B,automationMode:O,autoMerge:F,skipIfNoDiff:P,verify:U,noReplay:J,disableTelemetry:$,automation:ne,generatorsYmlAbsolutePath:fe,occurrenceTracker:be,loginCommand:ce,onSnippetsProduced:he}){let Le=Date.now();try{let Ne=zXe(e),oe=await i.toFernWorkspace({context:o},Ne,e.apiOverride?.specs);C&&await lK({workspace:oe,context:o,logWarnings:!1,ossWorkspace:i instanceof Ud?i:void 0});let ae=I?void 0:y??await Svu({generatorInvocation:e,context:t}),Se=await aTu({projectConfig:r,organization:n,workspace:oe,interactiveTaskContext:t,generatorInvocation:{...e,outputMode:e.outputMode._visit({downloadFiles:()=>e.outputMode,github:Ie=>Yr.OutputMode.github({...Ie,makePr:A==="pull-request"}),githubV2:Ie=>A==="pull-request"?Yr.OutputMode.githubV2(Yr.GithubOutputModeV2.pullRequest(Ie)):e.outputMode,publish:()=>e.outputMode,publishV2:()=>e.outputMode,_other:()=>e.outputMode})},version:a,audiences:s.audiences,shouldLogS3Url:c,token:u,whitelabel:l,replay:p,readme:e.readme,irVersionOverride:e.irVersionOverride,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,fernignorePath:ae,skipFernignore:I,dynamicIrOnly:w,retryRateLimited:x,requireEnvVars:B,automationMode:O,autoMerge:F,skipIfNoDiff:P,verify:U,noReplay:J,disableTelemetry:$,loginCommand:ce});if(Se?.createdSnippets&&(he(e),e.absolutePathToLocalSnippets!=null&&Se.snippetsS3PreSignedReadUrl!=null&&await xvu({snippetsS3PreSignedReadUrl:Se.snippetsS3PreSignedReadUrl,absolutePathToLocalSnippetJSON:e.absolutePathToLocalSnippets,context:t})),ne!=null){let Ie=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;ne.recorder.recordSuccess({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,version:Se?.actualVersion??null,durationMs:Date.now()-Le,pullRequestUrl:Se?.pullRequestUrl,noChangesDetected:Se?.noChangesDetected,publishTarget:Se?.publishTarget,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:Ie})}}catch(Ne){if(ne==null)throw Ne;if(Ne instanceof pu){let Se=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;throw ne.recorder.recordFailure({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,errorMessage:t.getLastFailureMessage()??"Generator failed",durationMs:Date.now()-Le,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:Se}),Ne}let oe=Kn(Ne),ae=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;ne.recorder.recordFailure({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,errorMessage:oe,durationMs:Date.now()-Le,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:ae}),t.failWithoutThrowing(oe)}}jt();_t();jt();lg();or();_t();var rBu=require("crypto"),m9t=require("fs/promises");ao();var MGo=we(ALe(),1);jt();var HTu=we(WTu(),1);ao();var KTu=require("util"),K9m=(0,KTu.promisify)(HTu.default);async function JTu(e,t,r){let n=PPt(e,t),i=[];for(let o of n){let s=await Promise.all(o.map(async a=>{try{let c=await K9m(a);return c==null||c.height==null||c.width==null?void 0:{filePath:a,width:c.width,height:c.height,blurDataUrl:void 0}}catch(c){r.logger.error(`Failed to measure image size for ${a}. ${c?.message}`);return}}));i.push(...s.filter(Ha))}return new Map(i.map(o=>[o.filePath,o]))}async function jGo(e,t,r){let n=new Array(t.length),i=new Set;for(let o=0;o<t.length;o++){let s=t[o];if(s===void 0)continue;let a=(async()=>{let c=await r(s,o);n[o]=c})().then(()=>{i.delete(a)});i.add(a),i.size>=e&&await Promise.race(i)}return await Promise.all(i),n}var J9m=10,YTu=10,pii=parseInt(process.env.FERN_DOCS_ASSET_HASH_CONCURRENCY??"32",10);function Y9m(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}var GEt=class extends Error{constructor(){super("Another docs publish is currently in progress for this domain."),this.name="DocsPublishConflictError"}};async function XTu({fdrOrigin:e,token:t,domain:r,basepath:n}){try{await Wy.post(`${e}/docs-deployment/unlock`,{domain:r,basepath:n},{headers:{Authorization:`Bearer ${t}`}})}catch{}}async function ZTu(e){let t=await(0,m9t.readFile)(e);return(0,rBu.createHash)("sha256").update(new Uint8Array(t)).digest("hex")}function X9m(e){return e.replace(/\.\.\//g,"_dot_dot_/")}async function nBu({token:e,organization:t,docsWorkspace:r,domain:n,customDomains:i,apiWorkspaces:o,ossWorkspaces:s,context:a,preview:c,previewId:u,editThisPage:l,disableTemplates:p=!1,skipUpload:d=!1,withAiExamples:f=!0,excludeApis:m=!1,targetAudiences:h,docsUrl:A,cliVersion:y,ciSource:I,deployerAuthor:w,loginCommand:C="fern login",multiSource:x=!1}){let B=process.env.FERN_FDR_ORIGIN??process.env.OVERRIDE_FDR_ORIGIN??"https://registry.buildwithfern.com"??"https://registry.buildwithfern.com";await A4t(`${B}/health`,a.logger)&&a.logger.debug("Detected air-gapped environment - skipping external FDR service calls");let F={};y!=null&&(F["X-CLI-Version"]=y),I!=null&&(F["X-CI-Source"]=JSON.stringify(I),a.logger.debug(`CI source detected: ${I.type} (${I.repo??"unknown repo"})`)),w?.username!=null&&(F["X-Deployer-Author"]=w.username),w?.email!=null&&(F["X-Deployer-Author-Email"]=w.email);let P=Ak({token:e.value,...Object.keys(F).length>0&&{headers:F}}),U={type:"public"};m&&a.logger.debug("Experimental flag 'exclude-apis' is enabled - API references will be excluded from S3 upload");let J,$=i[0]??n,ne=oWm(n),fe=r.config.experimental&&r.config.experimental.dynamicSnippets===!1;r.config.experimental?.basepathAware===!0&&a.logger.warn("experimental.basepath-aware is deprecated. Use 'multi-source: true' on the instance instead.");let be=x||r.config.experimental?.basepathAware===!0;be&&a.logger.debug("Basepath-aware mode is enabled - using basepath-aware S3 key format");let ce=!1,he=()=>{ce&&!c&&(ce=!1,a.logger.debug("Unlocking docs deploy due to early exit..."),XTu({fdrOrigin:B,token:e.value,domain:n,basepath:ne}))},Le=async()=>{ce&&!c&&(ce=!1,a.logger.debug("Unlocking docs deploy due to signal..."),await XTu({fdrOrigin:B,token:e.value,domain:n,basepath:ne})),process.exit(1)};process.on("SIGINT",Le),process.on("SIGTERM",Le);try{let Ne=await _7t({docsWorkspace:r,organization:t,fdrOrigin:B,token:e.value,taskContext:a}),oe=new Qz({domain:n,docsWorkspace:Ne,ossWorkspaces:s,apiWorkspaces:o,taskContext:a,editThisPage:l,uploadFiles:async He=>{let xe=He.map(T=>({...T,sanitizedPath:X9m(T.relativeFilePath)})),Fe=new Map(xe.map(T=>[T.absoluteFilePath,T])),vt=new Map(xe.map(T=>[T.sanitizedPath,T.absoluteFilePath])),Je=xe.map(T=>({...T,mediaType:MGo.lookup(T.absoluteFilePath)})).filter(T=>T.mediaType!==!1).filter(T=>ld.parse(T.mediaType)?.isImage()??!1).map(T=>T.absoluteFilePath),Zt=await JTu(Je,J9m,a);a.logger.debug(`Hashing ${Zt.size} image files with concurrency ${pii}...`);let Nt=performance.now(),er=Array.from(Zt.values()),ar=(await jGo(pii,er,async T=>{let _=Fe.get(T.filePath);if(_==null)return null;let ee=_.sanitizedPath;return{filePath:hn.docs.v1.write.FilePath(wDt(ee)),width:T.width,height:T.height,blurDataUrl:T.blurDataUrl,alt:void 0,fileHash:await ZTu(_.absoluteFilePath)}})).filter(T=>T!=null),Ri=performance.now()-Nt;a.logger.debug(`Hashed ${ar.length} images in ${Ri.toFixed(0)}ms`);let g=xe.filter(({absoluteFilePath:T})=>!Zt.has(T));a.logger.debug(`Hashing ${g.length} non-image files with concurrency ${pii}...`);let b=performance.now(),E=await jGo(pii,g,async T=>({path:hn.docs.v1.write.FilePath(wDt(T.sanitizedPath)),fileHash:await ZTu(T.absoluteFilePath)})),S=performance.now()-b;if(a.logger.debug(`Hashed ${E.length} non-image files in ${S.toFixed(0)}ms`),c){let T;try{T=await P.docs.v2.write.startDocsPreviewRegister({orgId:hn.OrgId(t),authConfig:U,filepaths:E,images:ar,basePath:ne,previewId:u!=null?Y9m(u):void 0})}catch(_){return await tBu(_,a,t,n,C)}if($=T.previewUrl,J=T.docsRegistrationId,a.logger.debug(`Received preview registration ID: ${J}`),d)a.logger.debug("Skip-upload mode: skipping file uploads for docs preview");else{let _=new Set(T.skippedFiles||[]),ee=Object.fromEntries(Object.entries(T.uploadUrls).filter(([ft])=>!_.has(ft))),Ge=Object.keys(ee).length,xt=_.size;Ge>0?(a.logger.debug(`Uploading ${Ge} files (${xt} skipped)...`),await $Tu(ee,r.absoluteFilePath,a,YTu,vt)):a.logger.debug(`No files to upload (all ${xt} up to date)`)}return eBu(T.uploadUrls,r.absoluteFilePath,vt)}else{let T;try{T=await P.docs.v2.write.startDocsRegister({domain:n,customDomains:i,authConfig:U,orgId:hn.OrgId(t),filepaths:E,images:ar,...be&&{basepathAware:!0}})}catch(ee){return tBu(ee,a,t,n,C)}J=T.docsRegistrationId,ce=!0,a.logger.debug(`Received production registration ID: ${J}`);let _=T.skippedFiles?.length||0;if(_>0&&a.logger.info(`Skipped ${_} unchanged file${_===1?"":"s"} (already uploaded)`),d)a.logger.debug("Skip-upload mode: skipping file uploads for docs");else{let ee=new Set(T.skippedFiles||[]),Ge=Object.fromEntries(Object.entries(T.uploadUrls).filter(([ft])=>!ee.has(ft))),xt=Object.keys(Ge).length;xt>0?(a.logger.info(`\u2191 Uploading ${xt} files...`),await $Tu(Ge,r.absoluteFilePath,a,YTu,vt)):a.logger.info("No files to upload (all up to date)")}return eBu(T.uploadUrls,r.absoluteFilePath,vt)}},registerApi:async({ir:He,snippetsConfig:xe,playgroundConfig:Fe,apiName:vt,workspace:gt,graphqlOperations:Je,graphqlTypes:Zt})=>{let Nt=wN({ir:He,snippetsConfig:xe,playgroundConfig:Fe,graphqlOperations:Je,graphqlTypes:Zt,context:a,apiNameOverride:vt}),er=fWm(f,r.config.aiExamples?.style??r.config.experimental?.aiExampleStyleInstructions);if(er){let b=gt?.getSources()?.filter(E=>E.type==="openapi").map(E=>({absoluteFilePath:E.absoluteFilePath,absoluteFilePathToOverrides:E.absoluteFilePathToOverrides}));b==null||b.length===0?a.logger.debug("Skipping AI example enhancement: no OpenAPI source file paths available"):Nt=await e0t(Nt,er,a,e,t,b)}let Vn,ar=new Set;if(Object.keys(xe).length===0)a.logger.debug("No snippets configuration defined, skipping snippet generation...");else if(!fe){let g=await sWm({fdr:P,workspace:gt,organization:t,context:a,snippetsConfig:xe});g&&Object.keys(g).length>0&&(Vn=g,ar=new Set(Object.keys(g)),a.logger.debug(`Using existing SDK dynamic IRs for: ${Object.keys(g).join(", ")}`));let b=await uWm({workspace:gt,organization:t,context:a,snippetsConfig:xe,skipLanguages:ar});b&&(Vn={...Vn,...b})}let Ri;try{Ri=await P.api.register.registerApiDefinition({orgId:hn.OrgId(t),apiId:hn.ApiId(vt??Vr(He.apiName)),definition:Nt,dynamicIRs:Vn})}catch(g){let b=sBu(g);return a.logger.error(`FDR registerApiDefinition failed. Error details:
|
|
4239
|
+
`):void 0);for(let i of t.logs.slice(this.lengthOfLastLogs))this.context.logger.log(Xqm(i.level),i.message),this.#n==null&&(this.#n=Gqm(i.message)??this.#n),this.cachedReplayResult==null&&(this.cachedReplayResult=Wqm(i.message));this.lengthOfLastLogs=t.logs.length;let n=i=>{this.context.logger.debug(`Generated files. ${pme("View here",i,{fallback:(o,s)=>`${o}: ${s}`})}`)};return await t.status._visit({notStarted:Ct,running:Ct,failed:({message:i,s3PreSignedReadUrl:o})=>{o!=null&&n(o),this.context.failAndThrow(i,void 0,{code:j.Code.ContainerError})},finished:async i=>{if(i.s3PreSignedReadUrlV2!=null){n(i.s3PreSignedReadUrlV2);let o=this.getAbsolutePathToLocalOutput();o!=null&&await Jqm({s3PreSignedReadUrl:i.s3PreSignedReadUrlV2,absolutePathToLocalOutput:o,context:this.context})}if(this.absolutePathToPreview==null)for(let o of r)this.context.logger.info(`Published ${o}`);this.#e=!0,this.#t=i.createdSnippets!=null?i.createdSnippets:!1,this.#r=i.snippetsS3PreSignedReadUrl,this.#o=i.pullRequestUrl,this.#s=i.noChangesDetected,i.actualVersion!=null&&(this.#n=i.actualVersion),this.emitReplayTelemetryIfReady()},_other:()=>{this.context.logger.warn("Received unknown update type: "+t.status.type)}}),this.#e?{createdSnippets:this.#t,snippetsS3PreSignedReadUrl:this.#r,actualVersion:this.#n,pullRequestUrl:this.#o,noChangesDetected:this.#s,publishTarget:this.#i}:void 0}getAbsolutePathToLocalOutput(){return this.absolutePathToPreview!=null?nt(this.absolutePathToPreview,ke.of(i_e.default.basename(this.generatorInvocation.name))):this.generatorInvocation.absolutePathToLocalOutput}emitReplayTelemetryIfReady(){if(!this.replayEventEmitted&&this.cachedReplayResult!=null&&!this.telemetryContext.disableTelemetry)try{let t={success:!0,steps:{replay:this.cachedReplayResult},warnings:[]},n={...(0,$1u.buildReplayTelemetryProps)({pipelineResult:t,generatorName:this.generatorInvocation.name,generatorVersion:this.generatorInvocation.version,cliVersion:this.telemetryContext.cliVersion,repoUri:Hqm(this.generatorInvocation),automationMode:this.telemetryContext.automationMode,autoMerge:this.telemetryContext.autoMerge,skipIfNoDiff:this.telemetryContext.skipIfNoDiff,hasBreakingChanges:!1,versionArg:this.telemetryContext.versionArg,versionBump:this.telemetryContext.versionBump,replayConfigEnabled:this.telemetryContext.replayConfigEnabled,noReplayFlag:this.telemetryContext.noReplayFlag,githubMode:Kqm(this.generatorInvocation),previewMode:this.absolutePathToPreview!=null,durationMs:Date.now()-this.taskStartedAtMs}),surface:"fiddle",org_id:this.telemetryContext.orgId};this.context.instrumentPostHogEvent({command:"replay",properties:n}),this.context.logger.debug(`[telemetry] replay event sent: ${JSON.stringify(n)}`),this.replayEventEmitted=!0}catch(t){this.context.logger.debug(`[telemetry] failed to send replay event: ${String(t)}`)}}#e=!1;get isFinished(){return this.#e}#t=!1;get createdSnippets(){return this.#t}#r=void 0;get snippetsS3PreSignedReadUrl(){return this.#r}#n=void 0;get actualVersion(){return this.#n}#i=void 0;get publishTarget(){return this.#i}#o=void 0;get pullRequestUrl(){return this.#o}#s=void 0;get noChangesDetected(){return this.#s}},qqm=/Tagging release (v?\d+\.\d+\.\d+(?:-[\w.-]+)?)/;function Gqm(e){let t=e.match(qqm);if(t?.[1]!=null)return t[1].replace(/^v/,"")}function Wqm(e){let t=e.match(Vqm);if(t?.[1]!=null)try{return JSON.parse(t[1])?.steps?.replay}catch{return}}function Hqm(e){let t=e.raw?.github;return t==null?"":"uri"in t&&typeof t.uri=="string"?t.uri:"repository"in t&&typeof t.repository=="string"?t.repository:""}function Kqm(e){let t=e.raw?.github;return t!=null&&"mode"in t&&t.mode==="pull-request"?"pull-request":"push"}async function Jqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){try{let n=await Zqm(t),i=await $qm(t);n&&i?await eGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}):n&&!i?await tGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}):await Yqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}),r.logger.info(Ee.green(`Downloaded to ${t}`))}catch(n){r.failAndThrow("Failed to download files",n,{code:j.Code.NetworkError})}}async function Yqm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t}){let r=await Wy.get(e,{responseType:"stream"}),n=await Fni.default.dir({prefix:"fern",unsafeCleanup:!0}),i=i_e.default.join(n.path,"output.zip");await(0,hGo.pipeline)(r.data,(0,Rni.createWriteStream)(i)),await mGo(t),await(0,NM.mkdir)(t,{recursive:!0}),await nTu(i,t)}async function mGo(e){await cr(e)&&(await tTu(e),await(0,NM.rm)(e,{recursive:!0,force:!0}))}async function tTu(e){try{let t=await(0,NM.readdir)(e,{withFileTypes:!0});for(let r of t){let n=Yt.of(i_e.default.join(e,r.name));r.isDirectory()&&await tTu(n);try{await(0,NM.chmod)(n,493)}catch{}}await(0,NM.chmod)(e,493)}catch{}}function Xqm(e){switch(e){case"DEBUG":return qn.Debug;case"INFO":return qn.Info;case"WARN":return qn.Warn;case"ERROR":return qn.Error;default:return qn.Info}}async function Zqm(e){let t=nt(e,ke.of(lD));return await cr(t)}async function $qm(e){let t=nt(e,ke.of(".git"));return await cr(t)}async function dK(e,t,r){return(await mu(r.logger,"git",e,{cwd:t,doNotPipeOutput:!0})).stdout}async function eGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){let n=nt(t,ke.of(lD)),i=await Lye({absolutePathToFernignore:n});await dK(["rm","-rf","."],t,r),await rTu({s3PreSignedReadUrl:e,outputPath:t}),await dK(["add","."],t,r),await dK(["reset","--",...i],t,r),await dK(["restore","."],t,r)}async function tGm({s3PreSignedReadUrl:e,absolutePathToLocalOutput:t,context:r}){let n=Yt.of((await Fni.default.dir({})).path),i=nt(t,ke.of(lD)),o=await Lye({absolutePathToFernignore:i});await(0,NM.cp)(t,n,{recursive:!0}),await dK(["init"],n,r),await dK(["add","."],n,r),await dK(["-c","user.name=fern","-c","user.email=hey@buildwithfern.com","-c","commit.gpgsign=false","commit","--allow-empty","--no-verify","-m","init"],n,r),await dK(["rm","-rf","."],n,r),await rTu({s3PreSignedReadUrl:e,outputPath:n}),await dK(["add","."],n,r),await dK(["reset","--",...o],n,r),await dK(["restore","."],n,r),await mGo(nt(n,ke.of(".git"))),await mGo(t),await(0,NM.cp)(n,t,{recursive:!0})}async function rTu({s3PreSignedReadUrl:e,outputPath:t}){let r=await Wy.get(e,{responseType:"stream"}),n=await Fni.default.dir({prefix:"fern",unsafeCleanup:!0}),i=i_e.default.join(n.path,"output.zip");await(0,hGo.pipeline)(r.data,(0,Rni.createWriteStream)(i)),await nTu(i,t)}async function nTu(e,t){return new Promise((r,n)=>{eTu.default.open(e,{lazyEntries:!0},(i,o)=>{if(i||!o){n(i??new Error("Failed to open zip file"));return}o.on("error",n),o.on("end",r),o.on("entry",s=>{let a=i_e.default.join(t,s.fileName);if(s.fileName.endsWith("/")){(0,NM.mkdir)(a,{recursive:!0}).then(()=>o.readEntry()).catch(n);return}(0,NM.mkdir)(i_e.default.dirname(a),{recursive:!0}).then(()=>{o.openReadStream(s,(c,u)=>{if(c||!u){n(c??new Error("Failed to open read stream"));return}u.pipe((0,Rni.createWriteStream)(a)).on("finish",()=>o.readEntry()).on("error",n)})}).catch(n)}),o.readEntry()})})}or();sS();_t();var kni=require("fs/promises"),iTu=we(jx(),1),rGm="proto.zip",p9t=class{sourceTypes;context;sources;constructor(t,r){this.context=t,this.sources=Object.fromEntries(r.map(n=>[n.id,n])),this.sourceTypes=new Set(Object.values(this.sources).map(n=>n.type))}async uploadSources(t){for(let[r,n]of Object.entries(t)){let i=this.getSourceOrThrow(r);await this.uploadSource(i,n.uploadUrl)}return this.convertFdrSourceUploadsToSourceConfig(t)}async uploadSource(t,r){let n=await this.getUploadCommand(t),i=await(0,kni.readFile)(n.absoluteFilePath),o;try{o=await fetch(r,{method:"PUT",body:i,headers:{"Content-Type":"application/octet-stream"}})}catch(s){await n.cleanup(),this.context.failAndThrow(`Network error uploading source file: ${t.absoluteFilePath}`,s,{code:j.Code.NetworkError});return}await n.cleanup(),o.ok||this.context.failAndThrow(`Failed to upload source file: ${t.absoluteFilePath}. Status: ${o.status}, ${o.statusText}`,void 0,{code:j.Code.NetworkError})}async getUploadCommand(t){if(t.type==="protobuf"){let r=await this.zipSource(t.absoluteFilePath);return{absoluteFilePath:r,cleanup:async()=>{this.context.logger.debug(`Removing ${r}`),await(0,kni.unlink)(r)}}}return{absoluteFilePath:t.absoluteFilePath,cleanup:async()=>{}}}async zipSource(t){let r=await iTu.default.dir(),n=nt(Yt.of(r.path),ke.of(rGm));return this.context.logger.debug(`Zipping source ${t} into ${n}`),await mu(this.context.logger,"zip",["-r",n,"."],{cwd:t,doNotPipeOutput:!0}),n}convertFdrSourceUploadsToSourceConfig(t){let r=[];for(let[n,i]of Object.entries(t))switch(this.getSourceOrThrow(n).type){case"protobuf":r.push(qj.proto({id:n,protoRootUrl:i.downloadUrl}));continue;case"openapi":r.push(qj.openapi());continue;case"asyncapi":continue}return{sources:r}}getSourceOrThrow(t){let r=this.sources[t];return r==null&&this.context.failAndThrow(`Internal error; server responded with source id "${t}" which does not exist in the workspace.`,void 0,{code:j.Code.InternalError}),r}};async function aTu({projectConfig:e,organization:t,workspace:r,interactiveTaskContext:n,generatorInvocation:i,version:o,audiences:s,shouldLogS3Url:a,token:c,whitelabel:u,replay:l,irVersionOverride:p,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,readme:A,fernignorePath:y,skipFernignore:I,dynamicIrOnly:w,retryRateLimited:C,requireEnvVars:x,automationMode:B,autoMerge:O,skipIfNoDiff:F,verify:P,noReplay:U,disableTelemetry:J,loginCommand:$}){let ne=Ak({token:c.value}),be=await A4t("https://registry.buildwithfern.com/health",n.logger),ce=zn.getPackageName({generatorInvocation:i}),he=f??d!=null,Le=He=>Dy(He,{onError:xe=>{!he&&x&&n.failAndThrow(void 0,xe,{code:j.Code.EnvironmentError})}},{substituteAsEmpty:he}),Ne=Le(i),oe=_Ue({apiName:r.definition.rootApiFile.contents.name,organization:t,generatorInvocation:Ne}),ae=o??await URt({packageName:ce,generatorInvocation:i});o!=null&&(he?n.logger.warn(`Skipping version availability check in preview mode. Version ${o} may already exist on the package registry.`):await pgr({version:o,packageName:ce,generatorInvocation:i,context:n}));let Se=rA({workspace:r,generationLanguage:i.language,keywords:i.keywords,smartCasing:i.smartCasing,exampleGeneration:{disabled:i.disableExamples,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!1},audiences:s,readme:A,packageName:ce,version:ae,context:n,sourceResolver:new Kh(n,r),dynamicGeneratorConfig:oe,generationMetadata:{cliVersion:r.cliVersion,generatorName:i.name,generatorVersion:i.version,generatorConfig:i.config,originGitCommit:vY(),originGitCommitIsDirty:IY(),invokedBy:bY(),requestedVersion:o,ciProvider:EY()}}),Ie=Wf({token:c.value});if(!be){let He=await Ie.organization.get(e.organization);He.ok&&(He.body.isWhitelabled&&(Se.readmeConfig==null&&(Se.readmeConfig=oGm),Se.readmeConfig.whiteLabel=!0),Se.selfHosted=He.body.selfHostedSdKs)}let je=r.getSources(),qe,pt,bt=wN({ir:Se,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},context:n});try{let He=await ne.api.register.registerApiDefinition({orgId:hn.OrgId(t),apiId:hn.ApiId(Vr(Se.apiName)),definition:bt,sources:je.length>0?iGm(je):void 0});qe=He.apiDefinitionId,pt=He.sources??void 0}catch(He){new p9t(n,je).sourceTypes.has("protobuf")&&n.failAndThrow(`Failed to register API definition: ${JSON.stringify(He)}`)}let st=new p9t(n,je);if(pt==null&&st.sourceTypes.has("protobuf")&&n.failAndThrow("Did not successfully upload Protobuf source files.",void 0,{code:j.Code.NetworkError}),pt!=null){n.logger.debug("Uploading source files ...");let He=await st.uploadSources(pt);n.logger.debug("Setting IR source configuration ..."),Se.sourceConfig=He}if(w){if(n.logger.info("Dynamic IR only mode: skipping SDK generation and uploading dynamic IR only"),o==null){n.failAndThrow("Version is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}if(i.language==null){n.failAndThrow("Language is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}if(ce==null){n.failAndThrow("Package name is required for dynamic IR only mode",void 0,{code:j.Code.ConfigError});return}try{await oTu({fdr:ne,organization:t,version:o,language:i.language,packageName:ce,ir:Se,smartCasing:i.smartCasing,dynamicGeneratorConfig:oe,context:n})}catch(He){n.failAndThrow(`Failed to upload dynamic IR: ${Kn(He)}`,void 0,{code:j.Code.NetworkError})}return{createdSnippets:!1,snippetsS3PreSignedReadUrl:void 0,actualVersion:o,pullRequestUrl:void 0,noChangesDetected:void 0,publishTarget:void 0}}let Ut=await Lvu({projectConfig:e,workspace:r,organization:t,generatorInvocation:Ne,context:n,version:ae,intermediateRepresentation:{...Se,fdrApiDefinitionId:qe,publishConfig:nGm({generatorInvocation:Ne})},shouldLogS3Url:a,token:c,whitelabel:u!=null?Le(u):void 0,replay:l,irVersionOverride:p,absolutePathToPreview:d,fiddlePreview:m,pushPreviewBranch:h,fernignorePath:y,skipFernignore:I,retryRateLimited:C,automationMode:B,autoMerge:O,skipIfNoDiff:F,verify:P,loginCommand:$});n.logger.debug(`Job ID: ${Ut.jobId}`);let ir=Ut.taskIds[0];if(ir==null){n.failAndThrow("Did not receive a task ID.",void 0,{code:j.Code.NetworkError});return}n.logger.debug(`Task ID: ${ir}`);let Ae=new Dni({job:Ut,taskId:ir,generatorInvocation:i,interactiveTaskContext:n,absolutePathToPreview:d,telemetryContext:{cliVersion:r.cliVersion,orgId:e.organization,automationMode:B===!0,autoMerge:O===!0,skipIfNoDiff:F===!0,versionArg:o==null?"none":(0,sTu.isAutoVersion)(o)?"auto":"explicit",versionBump:void 0,replayConfigEnabled:l?.enabled===!0,noReplayFlag:U===!0,disableTelemetry:J===!0}}),le=await Uvu({job:Ut,taskHandler:Ae,taskId:ir,context:n});if(le!=null&&le.actualVersion==null){let He=sGm(ae);He!=null&&(le={...le,actualVersion:He})}let Qe=le?.actualVersion??ae;if(le!=null&&Qe!=null&&i.language!=null&&ce!=null&&!he)try{await oTu({fdr:ne,organization:t,version:Qe,language:i.language,packageName:ce,ir:Se,smartCasing:i.smartCasing,dynamicGeneratorConfig:oe,context:n})}catch(He){n.logger.warn(`Failed to upload dynamic IR for SDK generation: ${Kn(He)}`)}return le}function nGm({generatorInvocation:e}){return e.outputMode._visit({downloadFiles:()=>{},github:()=>{},githubV2:()=>{},publish:()=>{},publishV2:t=>t._visit({mavenOverride:()=>{},pypiOverride:()=>{},nugetOverride:()=>{},npmOverride:()=>{},rubyGemsOverride:()=>{},cratesOverride:()=>{},postman:r=>{let n;return e.raw?.output?.location==="postman"&&(n=e.raw.output?.["collection-id"]),sr.PublishingConfig.direct({target:sr.PublishTarget.postman({apiKey:r.apiKey,workspaceId:r.workspaceId,collectionId:n})})},_other:()=>{}}),_other:()=>{}})}function iGm(e){return Object.fromEntries(Object.values(e).map(t=>[t.id,{type:t.type==="protobuf"?"proto":t.type}]))}var oGm={defaultEndpoint:void 0,bannerLink:void 0,introduction:void 0,apiReferenceLink:void 0,apiName:void 0,disabledFeatures:void 0,whiteLabel:void 0,customSections:void 0,features:void 0,exampleStyle:void 0};async function oTu({fdr:e,organization:t,version:r,language:n,packageName:i,ir:o,smartCasing:s,dynamicGeneratorConfig:a,context:c}){c.logger.debug(`Uploading dynamic IR for ${n} SDK...`);let u;try{u=await e.api.register.getSdkDynamicIrUploadUrls({orgId:hn.OrgId(t),version:r,snippetConfiguration:{[n]:i}})}catch(f){c.logger.warn(`Failed to get dynamic IR upload URLs (non-fatal, dynamic snippets may be stale): ${f}`);return}let l=u.uploadUrls[n]?.uploadUrl;if(l==null){c.logger.warn(`No upload URL returned for ${n}`);return}let p=rLe({ir:o,disableExamples:!0,smartCasing:s,generationLanguage:n,generatorConfig:a}),d=JSON.stringify(p);try{let f=await fetch(l,{method:"PUT",body:d,headers:{"Content-Type":"application/octet-stream","Content-Length":d.length.toString()}});f.ok?c.logger.debug(`Uploaded dynamic IR for ${n}:${i} (${r})`):c.logger.warn(`Failed to upload dynamic IR for ${n}: ${f.status}`)}catch(f){c.logger.warn(`Network error uploading dynamic IR for ${n}: ${f}`)}}function sGm(e){if(e!=null&&e.toUpperCase()!=="AUTO")return e}async function nDe({projectConfig:e,organization:t,workspace:r,context:n,generatorGroup:i,version:o,shouldLogS3Url:s,token:a,whitelabel:c,replay:u,absolutePathToPreview:l,isPreview:p,fiddlePreview:d,pushPreviewBranch:f,mode:m,fernignorePath:h,skipFernignore:A,dynamicIrOnly:y,validateWorkspace:I,retryRateLimited:w,requireEnvVars:C,automationMode:x,autoMerge:B,skipIfNoDiff:O,verify:F,noReplay:P,disableTelemetry:U,automation:J,occurrenceTracker:$,loginCommand:ne}){if(i.generators.length===0)return n.logger.warn("No generators specified."),null;let fe=[],be=$??new LUe;$==null&&be.recordOccurrences(i.generators);let ce=r.generatorsConfiguration?.absolutePathToConfiguration,he=await Promise.all(i.generators.map(Le=>n.runInteractiveTask({name:Le.name},Ne=>aGm({generatorInvocation:Le,interactiveTaskContext:Ne,projectConfig:e,organization:t,workspace:r,context:n,generatorGroup:i,version:o,shouldLogS3Url:s,token:a,whitelabel:c,replay:u,absolutePathToPreview:l,isPreview:p,fiddlePreview:d,pushPreviewBranch:f,mode:m,fernignorePath:h,skipFernignore:A,dynamicIrOnly:y,validateWorkspace:I,retryRateLimited:w,requireEnvVars:C,automationMode:x,autoMerge:B,skipIfNoDiff:O,verify:F,noReplay:P,disableTelemetry:U,automation:J,generatorsYmlAbsolutePath:ce,occurrenceTracker:be,loginCommand:ne,onSnippetsProduced:oe=>fe.push(oe)}))));if(J==null&&he.some(Le=>!Le))throw new pu;return{snippetsProducedBy:fe}}async function aGm({generatorInvocation:e,interactiveTaskContext:t,projectConfig:r,organization:n,workspace:i,context:o,generatorGroup:s,version:a,shouldLogS3Url:c,token:u,whitelabel:l,replay:p,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,mode:A,fernignorePath:y,skipFernignore:I,dynamicIrOnly:w,validateWorkspace:C,retryRateLimited:x,requireEnvVars:B,automationMode:O,autoMerge:F,skipIfNoDiff:P,verify:U,noReplay:J,disableTelemetry:$,automation:ne,generatorsYmlAbsolutePath:fe,occurrenceTracker:be,loginCommand:ce,onSnippetsProduced:he}){let Le=Date.now();try{let Ne=zXe(e),oe=await i.toFernWorkspace({context:o},Ne,e.apiOverride?.specs);C&&await lK({workspace:oe,context:o,logWarnings:!1,ossWorkspace:i instanceof Ud?i:void 0});let ae=I?void 0:y??await Svu({generatorInvocation:e,context:t}),Se=await aTu({projectConfig:r,organization:n,workspace:oe,interactiveTaskContext:t,generatorInvocation:{...e,outputMode:e.outputMode._visit({downloadFiles:()=>e.outputMode,github:Ie=>Yr.OutputMode.github({...Ie,makePr:A==="pull-request"}),githubV2:Ie=>A==="pull-request"?Yr.OutputMode.githubV2(Yr.GithubOutputModeV2.pullRequest(Ie)):e.outputMode,publish:()=>e.outputMode,publishV2:()=>e.outputMode,_other:()=>e.outputMode})},version:a,audiences:s.audiences,shouldLogS3Url:c,token:u,whitelabel:l,replay:p,readme:e.readme,irVersionOverride:e.irVersionOverride,absolutePathToPreview:d,isPreview:f,fiddlePreview:m,pushPreviewBranch:h,fernignorePath:ae,skipFernignore:I,dynamicIrOnly:w,retryRateLimited:x,requireEnvVars:B,automationMode:O,autoMerge:F,skipIfNoDiff:P,verify:U,noReplay:J,disableTelemetry:$,loginCommand:ce});if(Se?.createdSnippets&&(he(e),e.absolutePathToLocalSnippets!=null&&Se.snippetsS3PreSignedReadUrl!=null&&await xvu({snippetsS3PreSignedReadUrl:Se.snippetsS3PreSignedReadUrl,absolutePathToLocalSnippetJSON:e.absolutePathToLocalSnippets,context:t})),ne!=null){let Ie=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;ne.recorder.recordSuccess({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,version:Se?.actualVersion??null,durationMs:Date.now()-Le,pullRequestUrl:Se?.pullRequestUrl,noChangesDetected:Se?.noChangesDetected,publishTarget:Se?.publishTarget,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:Ie})}}catch(Ne){if(ne==null)throw Ne;if(Ne instanceof pu){let Se=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;throw ne.recorder.recordFailure({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,errorMessage:t.getLastFailureMessage()??"Generator failed",durationMs:Date.now()-Le,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:Se}),Ne}let oe=Kn(Ne),ae=fe!=null?await UUe(fe,e.name,be.lookup(e)):void 0;ne.recorder.recordFailure({apiName:i.workspaceName,groupName:s.groupName,generatorName:e.name,errorMessage:oe,durationMs:Date.now()-Le,outputRepoUrl:zUe(e),generatorsYmlAbsolutePath:fe,generatorsYmlLineNumber:ae}),t.failWithoutThrowing(oe)}}jt();_t();jt();lg();or();_t();var rBu=require("crypto"),m9t=require("fs/promises");ao();var MGo=we(ALe(),1);jt();var HTu=we(WTu(),1);ao();var KTu=require("util"),K9m=(0,KTu.promisify)(HTu.default);async function JTu(e,t,r){let n=PPt(e,t),i=[];for(let o of n){let s=await Promise.all(o.map(async a=>{try{let c=await K9m(a);return c==null||c.height==null||c.width==null?void 0:{filePath:a,width:c.width,height:c.height,blurDataUrl:void 0}}catch(c){r.logger.error(`Failed to measure image size for ${a}. ${c?.message}`);return}}));i.push(...s.filter(Ha))}return new Map(i.map(o=>[o.filePath,o]))}async function jGo(e,t,r){let n=new Array(t.length),i=new Set;for(let o=0;o<t.length;o++){let s=t[o];if(s===void 0)continue;let a=(async()=>{let c=await r(s,o);n[o]=c})().then(()=>{i.delete(a)});i.add(a),i.size>=e&&await Promise.race(i)}return await Promise.all(i),n}var J9m=10,YTu=10,pii=parseInt(process.env.FERN_DOCS_ASSET_HASH_CONCURRENCY??"32",10);function Y9m(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}var GEt=class extends Error{constructor(){super("Another docs publish is currently in progress for this domain."),this.name="DocsPublishConflictError"}};async function XTu({fdrOrigin:e,token:t,domain:r,basepath:n}){try{await Wy.post(`${e}/docs-deployment/unlock`,{domain:r,basepath:n},{headers:{Authorization:`Bearer ${t}`}})}catch{}}async function ZTu(e){let t=await(0,m9t.readFile)(e);return(0,rBu.createHash)("sha256").update(new Uint8Array(t)).digest("hex")}function X9m(e){return e.replace(/\.\.\//g,"_dot_dot_/")}async function nBu({token:e,organization:t,docsWorkspace:r,domain:n,customDomains:i,apiWorkspaces:o,ossWorkspaces:s,context:a,preview:c,previewId:u,editThisPage:l,disableTemplates:p=!1,skipUpload:d=!1,withAiExamples:f=!0,excludeApis:m=!1,targetAudiences:h,docsUrl:A,cliVersion:y,ciSource:I,deployerAuthor:w,loginCommand:C="fern login",multiSource:x=!1}){let B=process.env.FERN_FDR_ORIGIN??process.env.OVERRIDE_FDR_ORIGIN??"https://registry.buildwithfern.com"??"https://registry.buildwithfern.com";await A4t(`${B}/health`,a.logger)&&a.logger.debug("Detected air-gapped environment - skipping external FDR service calls");let F={};y!=null&&(F["X-CLI-Version"]=y),I!=null&&(F["X-CI-Source"]=JSON.stringify(I),a.logger.debug(`CI source detected: ${I.type} (${I.repo??"unknown repo"})`)),w?.username!=null&&(F["X-Deployer-Author"]=w.username),w?.email!=null&&(F["X-Deployer-Author-Email"]=w.email);let P=Ak({token:e.value,...Object.keys(F).length>0&&{headers:F}}),U={type:"public"};m&&a.logger.debug("Experimental flag 'exclude-apis' is enabled - API references will be excluded from S3 upload");let J,$=i[0]??n,ne=oWm(n),fe=r.config.experimental&&r.config.experimental.dynamicSnippets===!1;r.config.experimental?.basepathAware===!0&&a.logger.warn("experimental.basepath-aware is deprecated. Use 'multi-source: true' on the instance instead.");let be=x||r.config.experimental?.basepathAware===!0;be&&a.logger.debug("Basepath-aware mode is enabled - using basepath-aware S3 key format");let ce=!1,he=()=>{ce&&!c&&(ce=!1,a.logger.debug("Unlocking docs deploy due to early exit..."),XTu({fdrOrigin:B,token:e.value,domain:n,basepath:ne}))},Le=async()=>{ce&&!c&&(ce=!1,a.logger.debug("Unlocking docs deploy due to signal..."),await XTu({fdrOrigin:B,token:e.value,domain:n,basepath:ne})),process.exit(1)};process.on("SIGINT",Le),process.on("SIGTERM",Le);try{let Ne=await _7t({docsWorkspace:r,organization:t,fdrOrigin:B,token:e.value,taskContext:a}),oe=new Qz({domain:n,docsWorkspace:Ne,ossWorkspaces:s,apiWorkspaces:o,taskContext:a,editThisPage:l,uploadFiles:async He=>{let xe=He.map(T=>({...T,sanitizedPath:X9m(T.relativeFilePath)})),Fe=new Map(xe.map(T=>[T.absoluteFilePath,T])),vt=new Map(xe.map(T=>[T.sanitizedPath,T.absoluteFilePath])),Je=xe.map(T=>({...T,mediaType:MGo.lookup(T.absoluteFilePath)})).filter(T=>T.mediaType!==!1).filter(T=>ld.parse(T.mediaType)?.isImage()??!1).map(T=>T.absoluteFilePath),Zt=await JTu(Je,J9m,a);a.logger.debug(`Hashing ${Zt.size} image files with concurrency ${pii}...`);let Nt=performance.now(),er=Array.from(Zt.values()),ar=(await jGo(pii,er,async T=>{let _=Fe.get(T.filePath);if(_==null)return null;let ee=_.sanitizedPath;return{filePath:hn.docs.v1.write.FilePath(wDt(ee)),width:T.width,height:T.height,blurDataUrl:T.blurDataUrl,alt:void 0,fileHash:await ZTu(_.absoluteFilePath)}})).filter(T=>T!=null),Ri=performance.now()-Nt;a.logger.debug(`Hashed ${ar.length} images in ${Ri.toFixed(0)}ms`);let g=xe.filter(({absoluteFilePath:T})=>!Zt.has(T));a.logger.debug(`Hashing ${g.length} non-image files with concurrency ${pii}...`);let b=performance.now(),E=await jGo(pii,g,async T=>({path:hn.docs.v1.write.FilePath(wDt(T.sanitizedPath)),fileHash:await ZTu(T.absoluteFilePath)})),S=performance.now()-b;if(a.logger.debug(`Hashed ${E.length} non-image files in ${S.toFixed(0)}ms`),c){let T;try{T=await P.docs.v2.write.startDocsPreviewRegister({orgId:hn.OrgId(t),authConfig:U,filepaths:E,images:ar,basePath:ne,previewId:u!=null?Y9m(u):void 0})}catch(_){return await tBu(_,a,t,n,C)}if($=T.previewUrl,J=T.docsRegistrationId,a.logger.debug(`Received preview registration ID: ${J}`),d)a.logger.debug("Skip-upload mode: skipping file uploads for docs preview");else{let _=new Set(T.skippedFiles||[]),ee=Object.fromEntries(Object.entries(T.uploadUrls).filter(([ft])=>!_.has(ft))),Ge=Object.keys(ee).length,xt=_.size;Ge>0?(a.logger.debug(`Uploading ${Ge} files (${xt} skipped)...`),await $Tu(ee,r.absoluteFilePath,a,YTu,vt)):a.logger.debug(`No files to upload (all ${xt} up to date)`)}return eBu(T.uploadUrls,r.absoluteFilePath,vt)}else{let T;try{T=await P.docs.v2.write.startDocsRegister({domain:n,customDomains:i,authConfig:U,orgId:hn.OrgId(t),filepaths:E,images:ar,...be&&{basepathAware:!0}})}catch(ee){return tBu(ee,a,t,n,C)}J=T.docsRegistrationId,ce=!0,a.logger.debug(`Received production registration ID: ${J}`);let _=T.skippedFiles?.length||0;if(_>0&&a.logger.info(`Skipped ${_} unchanged file${_===1?"":"s"} (already uploaded)`),d)a.logger.debug("Skip-upload mode: skipping file uploads for docs");else{let ee=new Set(T.skippedFiles||[]),Ge=Object.fromEntries(Object.entries(T.uploadUrls).filter(([ft])=>!ee.has(ft))),xt=Object.keys(Ge).length;xt>0?(a.logger.info(`\u2191 Uploading ${xt} files...`),await $Tu(Ge,r.absoluteFilePath,a,YTu,vt)):a.logger.info("No files to upload (all up to date)")}return eBu(T.uploadUrls,r.absoluteFilePath,vt)}},registerApi:async({ir:He,snippetsConfig:xe,playgroundConfig:Fe,apiName:vt,workspace:gt,graphqlOperations:Je,graphqlTypes:Zt})=>{let Nt=wN({ir:He,snippetsConfig:xe,playgroundConfig:Fe,graphqlOperations:Je,graphqlTypes:Zt,context:a,apiNameOverride:vt}),er=fWm(f,r.config.aiExamples?.style??r.config.experimental?.aiExampleStyleInstructions);if(er){let b=gt?.getSources()?.filter(E=>E.type==="openapi").map(E=>({absoluteFilePath:E.absoluteFilePath,absoluteFilePathToOverrides:E.absoluteFilePathToOverrides}));b==null||b.length===0?a.logger.debug("Skipping AI example enhancement: no OpenAPI source file paths available"):Nt=await e0t(Nt,er,a,e,t,b)}let Vn,ar=new Set;if(Object.keys(xe).length===0)a.logger.debug("No snippets configuration defined, skipping snippet generation...");else if(!fe){let g=await sWm({fdr:P,workspace:gt,organization:t,context:a,snippetsConfig:xe});g&&Object.keys(g).length>0&&(Vn=g,ar=new Set(Object.keys(g)),a.logger.debug(`Using existing SDK dynamic IRs for: ${Object.keys(g).join(", ")}`));let b=await uWm({workspace:gt,organization:t,context:a,snippetsConfig:xe,skipLanguages:ar});b&&(Vn={...Vn,...b})}let Ri;try{Ri=await P.api.register.registerApiDefinition({orgId:hn.OrgId(t),apiId:hn.ApiId(vt??Vr(He.apiName)),definition:Nt,dynamicIRs:Vn})}catch(g){let b=sBu(g);return a.logger.error(`FDR registerApiDefinition failed. Error details:
|
|
4240
4240
|
${JSON.stringify(b,void 0,2)}`),vt!=null?a.failAndThrow(`Failed to publish docs because API definition (${vt}) could not be uploaded. Please contact support@buildwithfern.com`,b,{code:j.Code.NetworkError}):a.failAndThrow("Failed to publish docs because API definition could not be uploaded. Please contact support@buildwithfern.com",b,{code:j.Code.NetworkError})}return a.logger.debug(`Registered API Definition ${vt}: ${Ri.apiDefinitionId}`),Ri.dynamicIRs&&Vn&&(d?a.logger.debug("Skip-upload mode: skipping dynamic IR uploads"):await lWm({dynamicIRs:Vn,dynamicIRUploadUrls:Ri.dynamicIRs,context:a,apiId:Ri.apiDefinitionId})),Ri.apiDefinitionId},targetAudiences:h});a.logger.info("Resolving docs definition...");let ae=performance.now(),Se=await oe.resolve(),Ie=performance.now()-ae;if(r.config.settings?.substituteEnvVars){a.logger.debug("Applying environment variable substitution to docs definition...");let{jsFiles:He,...xe}=Se;Se={...Dy(xe,{onError:vt=>a.failAndThrow(void 0,vt,{code:j.Code.EnvironmentError})},{substituteAsEmpty:!1}),jsFiles:He}}let je=Object.keys(Se.pages).length,qe=o.length,pt=process.memoryUsage();if(a.logger.info(`Resolved docs definition in ${Ie.toFixed(0)}ms: ${je} pages${qe?`, ${qe} API workspaces`:""}`),a.logger.debug(`Memory after resolve: RSS=${(pt.rss/1024/1024).toFixed(2)}MB, Heap=${(pt.heapUsed/1024/1024).toFixed(2)}MB`),J==null)return he(),a.failAndThrow("Failed to publish docs.","Docs registration ID is missing.",{code:j.Code.InternalError});a.logger.info("Publishing docs to FDR...");let bt=performance.now();try{await P.docs.v2.write.finishDocsRegister({docsRegistrationId:J,docsDefinition:Se,excludeApis:m,...be&&!c&&{basepathAware:!0}})}catch(He){return a.failAndThrow("Failed to publish docs to "+n,He,{code:j.Code.NetworkError})}let st=performance.now()-bt;a.logger.debug(`Docs published to FDR in ${st.toFixed(0)}ms`);let Ut=oe.getTranslationPages(),ir=oe.getTranslationNavigationOverlays(),Ae=c?$:n;Ut!=null&&Object.keys(Ut).length>0&&(a.logger.info(`Registering translations for ${Object.keys(Ut).length} locale(s)...`),await Promise.all(Object.entries(Ut).map(async([He,xe])=>{try{let Fe=oe.getCollectedFileIds(),vt=oe.getDocsWorkspacePath(),gt=async T=>{let _=Cs(vt,T),ee=Hi(vt,ke.of(`translations/${He}/${_}`));return await cr(ee)?ee:T},Je=async T=>{let _=await gt(T),ee=await(0,m9t.readFile)(_,"utf-8"),Ge=ee.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return Ge!=null?ee.slice(Ge[0].length):ee},Zt=async T=>{let _=await gt(T);return(0,m9t.readFile)(_,"utf-8")},Nt=await Promise.all(Object.entries(xe).map(async([T,_])=>{try{let ee=Se.pages[T],Ge=Hi(vt,ke.of(T)),{markdown:xt}=await OF({markdown:_,absolutePathToFernFolder:vt,absolutePathToMarkdownFile:Ge,context:a,markdownLoader:Je}),ft=await kz({markdown:xt,absolutePathToFernFolder:vt,absolutePathToMarkdownFile:Ge,context:a,fileLoader:Zt}),mt=Nz({markdown:ft,absolutePathToFernFolder:vt,absolutePathToMarkdownFile:Ge}),qt=uP(mt);qt=Fz(qt,Fe,{},{absolutePathToMarkdownFile:Ge,absolutePathToFernFolder:vt},a);let ps=ee?.editThisPageUrl;if(ps!=null){let Cf=`/fern/${T}`,Tr=`/fern/translations/${He}/${T}`;ps=ps.replace(Cf,Tr)}return[T,{markdown:qt,rawMarkdown:qt,editThisPageUrl:ps,editThisPageLaunch:ee?.editThisPageLaunch}]}catch(ee){a.logger.warn(`Failed to process translated page "${T}" for locale "${He}": ${String(ee)}. Falling back to base page.`);return}})),er={...Se.pages,...Object.fromEntries(Nt.filter(T=>T!=null))},Vn=M4e(Se.config.root,xe,a),ar=ir?.[He],Ri=Se.config.announcement,g=Se.config.navbarLinks;ar!=null&&(Vn=L4e(Vn,ar),Ri=z4e(ar)??Ri,ar.navbarLinks!=null&&(g=ar.navbarLinks));let b={...Se,pages:er,config:{...Se.config,root:Vn,announcement:Ri,navbarLinks:g}},E=Object.keys(xe).length;a.logger.debug(`Sending translation for locale "${He}" (${E} page${E===1?"":"s"})`);let S=await fetch(`${B}/v2/registry/docs/translations/register`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.value}`,...F},body:JSON.stringify({domain:Ae,customDomains:c?[]:i,orgId:t,locale:He,docsDefinition:b})});if(!S.ok){let T=await S.text();throw new Error(`HTTP ${S.status}: ${T}`)}a.logger.debug(`Registered translations for locale "${He}"`)}catch(Fe){a.logger.warn(`Failed to register translations for locale "${He}": ${String(Fe)}`)}})));let le=xN($);await pWm({docsDefinition:Se,isPreview:c,context:a});let Qe=pme(le,le);return a.logger.info(Ee.green(`Published docs to ${Qe}`)),le}catch(Ne){throw he(),Ne}finally{ce=!1,process.removeListener("SIGINT",Le),process.removeListener("SIGTERM",Le)}}function iBu(e){return typeof e=="object"&&e!==null&&"uploadUrl"in e&&typeof e.uploadUrl=="string"&&"fileId"in e&&typeof e.fileId=="string"}function Z9m(e){if(typeof e=="string")return e;if(iBu(e))return e.uploadUrl;throw new Error(`Unexpected upload URL value: ${JSON.stringify(e)}`)}function $9m(e,t){return iBu(t)?$x.FileId(t.fileId):$x.FileId(e)}async function $Tu(e,t,r,n,i){let o=Date.now(),s=Object.keys(e).length;r.logger.debug(`Start uploading ${s} files...`);let a=PPt(Object.entries(e),n),c=0;for(let l of a){await Promise.all(l.map(async([d,f])=>{let m=i.get(d)||Hi(t,ke.of(d));try{let h=Z9m(f),A=MGo.lookup(m);await Wy.put(h,await(0,m9t.readFile)(m),{headers:{"Content-Type":A===!1?"application/octet-stream":A,"Cache-Control":"public, max-age=31536000, immutable"}})}catch(h){r.failAndThrow(`Failed to upload ${m}`,h,{code:j.Code.NetworkError})}}));let p=Date.now();c+=l.length,r.logger.debug(`Uploaded ${c}/${s} files in ${p-o}ms`)}let u=Date.now();r.logger.debug(`Finished uploading ${s} files in ${u-o}ms`)}function eBu(e,t,r){let n=[];for(let[i,o]of Object.entries(e)){let s=ke.of(i),a=r?.get(i)||Hi(t,s);n.push({relativeFilePath:s,absoluteFilePath:a,fileId:$9m(i,o)})}return n}async function tBu(e,t,r,n,i){t.instrumentPostHogEvent({command:"docs-generation",properties:{error:JSON.stringify(e)}});let o=sBu(e);t.logger.debug(`startDocsRegister failed for domain '${n}', org '${r}'. Error details:
|
|
4241
4241
|
${JSON.stringify(o,void 0,2)}`);let s=e,a=s?.content;if(a?.reason==="status-code"&&a?.statusCode===409)throw new GEt;let c=eWm(e,r,n,i);if(c!=null)return t.failAndThrow(c,void 0,{code:j.Code.AuthError});switch(s?.error){case"InvalidCustomDomainError":return t.failAndThrow("Your docs domain should end with docs.buildwithfern.com",void 0,{code:j.Code.ConfigError});case"InvalidDomainError":return t.failAndThrow("Please make sure that none of your custom domains are not overlapping (i.e. one is a substring of another)",void 0,{code:j.Code.ConfigError});case"UnauthorizedError":return t.failAndThrow(oBu(n,r,a,i),void 0,{code:j.Code.AuthError});case"UserNotInOrgError":return t.failAndThrow(`You do not belong to organization '${r}'. Please run '${i}' to ensure you are logged in with the correct account.
|
|
4242
4242
|
|
|
@@ -4244,7 +4244,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
|
|
|
4244
4244
|
|
|
4245
4245
|
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`:r}function nWm(e,t,r){return t!=null&&t.includes("Invalid authorization token")?`Your authentication token is invalid or expired. Please run '${r}' to re-authenticate.`:`You are not authorized to publish docs under organization '${e}'. Please run '${r}' to ensure you are logged in with the correct account.
|
|
4246
4246
|
|
|
4247
|
-
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function iWm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function oWm(e){try{return new URL(xN(e)).pathname}catch{return}}async function sWm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await aWm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function QGo(e){return e.replace(/^https:\/\//,"")}async function aWm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&QGo(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await cWm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function cWm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function uWm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&QGo(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=_Ue({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=QGo(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=rLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function lWm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function pWm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(Ee.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function fWm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function sBu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var h9t=[60*1e3,300*1e3,300*1e3];async function g9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:C=>i.failAndThrow(void 0,C,{code:j.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:j.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:j.Code.ConfigError});return}let y=A.find(C=>C.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:j.Code.ConfigError});return}let I=[];y.customDomain!=null&&(typeof y.customDomain=="string"?I.push(y.customDomain):Array.isArray(y.customDomain)&&I.push(...y.customDomain)),y.multiSource===!0&&dWm(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let w;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),x=()=>nBu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let O=0;;O++)try{w=await x();break}catch(F){if(!(F instanceof GEt)||O>=h9t.length){if(F instanceof GEt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:j.Code.NetworkError});throw F}let P=h9t[O]??h9t[h9t.length-1]??6e4,U=P/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${U} minute${U===1?"":"s"} (attempt ${O+1}/${h9t.length})...`),await new Promise(J=>setTimeout(J,P))}let B=performance.now()-C;i.logger.debug(`Docs publishing completed in ${B.toFixed(0)}ms`)}),w}function aBu(e){try{let t=e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`;return new URL(t).pathname}catch{return"/"}}function dWm(e,t,r){let n=aBu(e);for(let i of t){let o=aBu(i);o!=="/"&&n!==o&&r.failAndThrow(`When multi-source is enabled, the url and custom-domain must share the same basepath. Instance url '${e}' has basepath '${n}' but custom-domain '${i}' has basepath '${o}'.`,void 0,{code:j.Code.ConfigError})}}_t();var fii=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 Cm({context:this.context,task:this.task});try{let s=await g9t({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.27.1",loginCommand:"fern auth login"});return o.getResult()===zf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Kn(s)}}}};jt();var WEt=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(`
|
|
4247
|
+
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function iWm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function oWm(e){try{return new URL(xN(e)).pathname}catch{return}}async function sWm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await aWm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function QGo(e){return e.replace(/^https:\/\//,"")}async function aWm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&QGo(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await cWm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function cWm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function uWm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&QGo(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=_Ue({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=QGo(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=rLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function lWm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);try{(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}catch(c){r.logger.warn(`Network error uploading dynamic IR for ${n}:${i}: ${c}`)}}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function pWm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(Ee.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function fWm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function sBu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var h9t=[60*1e3,300*1e3,300*1e3];async function g9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:C=>i.failAndThrow(void 0,C,{code:j.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:j.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:j.Code.ConfigError});return}let y=A.find(C=>C.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:j.Code.ConfigError});return}let I=[];y.customDomain!=null&&(typeof y.customDomain=="string"?I.push(y.customDomain):Array.isArray(y.customDomain)&&I.push(...y.customDomain)),y.multiSource===!0&&dWm(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let w;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),x=()=>nBu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let O=0;;O++)try{w=await x();break}catch(F){if(!(F instanceof GEt)||O>=h9t.length){if(F instanceof GEt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:j.Code.NetworkError});throw F}let P=h9t[O]??h9t[h9t.length-1]??6e4,U=P/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${U} minute${U===1?"":"s"} (attempt ${O+1}/${h9t.length})...`),await new Promise(J=>setTimeout(J,P))}let B=performance.now()-C;i.logger.debug(`Docs publishing completed in ${B.toFixed(0)}ms`)}),w}function aBu(e){try{let t=e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`;return new URL(t).pathname}catch{return"/"}}function dWm(e,t,r){let n=aBu(e);for(let i of t){let o=aBu(i);o!=="/"&&n!==o&&r.failAndThrow(`When multi-source is enabled, the url and custom-domain must share the same basepath. Instance url '${e}' has basepath '${n}' but custom-domain '${i}' has basepath '${o}'.`,void 0,{code:j.Code.ConfigError})}}_t();var fii=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 Cm({context:this.context,task:this.task});try{let s=await g9t({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.27.2",loginCommand:"fern auth login"});return o.getResult()===zf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Kn(s)}}}};jt();var WEt=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(`
|
|
4248
4248
|
`),this.stream.write(`${Ee.cyan("\u25C6")} ${Ee.bold(t.title)}
|
|
4249
4249
|
`),t.subtitle!=null&&this.stream.write(` ${Ee.dim(t.subtitle)}
|
|
4250
4250
|
`),this.stream.write(`
|
|
@@ -4910,7 +4910,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
4910
4910
|
`),h="";return c&&(h=l.style.error(c)),[`${p} ${f} ${s}`,[m,h].filter(Boolean).join(`
|
|
4911
4911
|
`)]});var Eog=$C((e,t)=>{let{validate:r=()=>!0}=e,n=Dv(e.theme),[i,o]=vu("idle"),[s,a]=vu(),[c,u]=vu(""),l=XC({status:i,theme:n});ZC(async(h,A)=>{if(i==="idle")if(YC(h)){let y=c;o("loading");let I=await r(y);I===!0?(u(y),o("done"),t(y)):(A.write(c),a(I||"You must provide a valid value"),o("idle"))}else u(A.line),a(void 0)});let p=n.style.message(e.message,i),d="",f;e.mask?d=(typeof e.mask=="string"?e.mask:"*").repeat(c.length):i!=="done"&&(f=`${n.style.help("[input is masked]")}${FSt}`),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 N8e=we(lS(),1);var vog={icon:{cursor:zw.pointer},style:{disabled:e=>N8e.default.dim(`- ${e}`),searchTerm:e=>N8e.default.cyan(e),description:e=>N8e.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${N8e.default.bold(t)} ${N8e.default.dim(r)}`).join(N8e.default.dim(" \u2022 "))},helpMode:"always"};function Gbs(e){return!Td.isSeparator(e)&&!e.disabled}function Iog(e){return e.map(t=>{if(Td.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 Cog=$C((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,i=Dv(vog,e.theme),[o,s]=vu("loading"),[a,c]=vu(""),[u,l]=vu([]),[p,d]=vu(),f=XC({status:o,theme:i}),m=IL(()=>{let U=u.findIndex(Gbs),J=u.findLastIndex(Gbs);return{first:U,last:J}},[u]),[h=m.first,A]=vu();A4(()=>{let U=new AbortController;return s("loading"),d(void 0),(async()=>{try{let $=await e.source(a||void 0,{signal:U.signal});U.signal.aborted||(A(void 0),d(void 0),l(Iog($)),s("idle"))}catch($){!U.signal.aborted&&$ instanceof Error&&d($.message)}})(),()=>{U.abort()}},[a]);let y=u[h];ZC(async(U,J)=>{if(YC(U))if(y){s("loading");let $=await n(y.value);s("idle"),$===!0?(s("done"),t(y.value)):y.name===a?d($||"You must provide a valid value"):(J.write(y.name),c(y.name))}else J.write(a);else if(Nhe(U)&&y)J.clearLine(0),J.write(y.name),c(y.name);else if(o!=="loading"&&(SP(U)||vL(U))){if(J.clearLine(0),SP(U)&&h!==m.first||vL(U)&&h!==m.last){let $=SP(U)?-1:1,ne=h;do ne=(ne+$+u.length)%u.length;while(!Gbs(u[ne]));A(ne)}}else c(J.line)});let I=i.style.message(e.message,o),w;if(i.helpMode!=="never")if(e.instructions){let{pager:U,navigation:J}=e.instructions;w=i.style.help(u.length>r?U:J)}else w=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let C=D8e({items:u,active:h,renderItem({item:U,isActive:J}){if(Td.isSeparator(U))return` ${U.separator}`;if(U.disabled){let fe=typeof U.disabled=="string"?U.disabled:"(disabled)";return i.style.disabled(`${U.name} ${fe}`)}let $=J?i.style.highlight:fe=>fe,ne=J?i.icon.cursor:" ";return $(`${ne} ${U.name}`)},pageSize:r,loop:!1}),x;p?x=i.style.error(p):u.length===0&&a!==""&&o==="idle"&&(x=i.style.error("No results found"));let B;if(o==="done"&&y)return[f,I,i.style.answer(y.short)].filter(Boolean).join(" ").trimEnd();B=i.style.searchTerm(a);let O=y?.description,F=[f,I,B].filter(Boolean).join(" ").trimEnd(),P=[x??C," ",O?i.style.description(O):"",w].filter(Boolean).join(`
|
|
4912
4912
|
`).trimEnd();return[F,P]});var NSt=we(lS(),1);var wog={icon:{cursor:zw.pointer},style:{disabled:e=>NSt.default.dim(`- ${e}`),description:e=>NSt.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${NSt.default.bold(t)} ${NSt.default.dim(r)}`).join(NSt.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function kSt(e){return!Td.isSeparator(e)&&!e.disabled}function xog(e){return e.map(t=>{if(Td.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 Wbs=$C((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=Dv(wog,e.theme),{keybindings:o}=i,[s,a]=vu("idle"),c=XC({status:s,theme:i}),u=P8e(),l=!o.includes("vim"),p=IL(()=>xog(e.choices),[e.choices]),d=IL(()=>{let O=p.findIndex(kSt),F=p.findLastIndex(kSt);if(O===-1)throw new fae("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:F}},[p]),f=IL(()=>"default"in e?p.findIndex(O=>kSt(O)&&O.value===e.default):-1,[e.default,p]),[m,h]=vu(f===-1?d.first:f),A=p[m];ZC((O,F)=>{if(clearTimeout(u.current),YC(O))a("done"),t(A.value);else if(SP(O,o)||vL(O,o)){if(F.clearLine(0),r||SP(O,o)&&m!==d.first||vL(O,o)&&m!==d.last){let P=SP(O,o)?-1:1,U=m;do U=(U+P+p.length)%p.length;while(!kSt(p[U]));h(U)}}else if(QYt(O)&&!Number.isNaN(Number(F.line))){let P=Number(F.line)-1,U=-1,J=p.findIndex(ne=>Td.isSeparator(ne)?!1:(U++,U===P)),$=p[J];$!=null&&kSt($)&&h(J),u.current=setTimeout(()=>{F.clearLine(0)},700)}else if(T8e(O))F.clearLine(0);else if(l){let P=F.line.toLowerCase(),U=p.findIndex(J=>Td.isSeparator(J)||!kSt(J)?!1:J.name.toLowerCase().startsWith(P));U!==-1&&h(U),u.current=setTimeout(()=>{F.clearLine(0)},700)}}),A4(()=>()=>{clearTimeout(u.current)},[]);let y=i.style.message(e.message,s),I;if(i.helpMode!=="never")if(e.instructions){let{pager:O,navigation:F}=e.instructions;I=i.style.help(p.length>n?O:F)}else I=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let w=0,C=D8e({items:p,active:m,renderItem({item:O,isActive:F,index:P}){if(Td.isSeparator(O))return w++,` ${O.separator}`;let U=i.indexMode==="number"?`${P+1-w}. `:"";if(O.disabled){let ne=typeof O.disabled=="string"?O.disabled:"(disabled)";return i.style.disabled(`${U}${O.name} ${ne}`)}let J=F?i.style.highlight:ne=>ne,$=F?i.icon.cursor:" ";return J(`${$} ${U}${O.name}`)},pageSize:n,loop:r});if(s==="done")return[c,y,i.style.answer(A.short)].filter(Boolean).join(" ");let{description:x}=A;return`${[[c,y].filter(Boolean).join(" "),C," ",x?i.style.description(x):"",I].filter(Boolean).join(`
|
|
4913
|
-
`).trimEnd()}${FSt}`});ao();var dae={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"},Sog={[dae.GENERATION_STARTED]:!1,[dae.GENERATION_COMPLETED]:!1,[dae.GENERATION_FAILED]:!0,[dae.VERIFICATION_FAILED]:!0,[dae.SDK_PR_CREATED]:!1,[dae.UPGRADE_APPLIED]:!1,[dae.MAJOR_VERSION_BUMP]:!1};function Ctl(e){return Sog[e]}function wtl(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 xtl(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 Stl(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 Ttl(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 Btl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?dae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?dae.VERIFICATION_FAILED:dae.GENERATION_FAILED}var Tog="",Bog="FERN_AUTOMATION_EVENTS_ORIGIN",Oog=3e3,AAi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[Bog]??Tog)),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(),Oog);try{let s={"content-type":"application/json"},a=await vV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Ttl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Otl(){let{fern_run_id:e,github_run_id:t}=Kae();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.27.
|
|
4913
|
+
`).trimEnd()}${FSt}`});ao();var dae={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"},Sog={[dae.GENERATION_STARTED]:!1,[dae.GENERATION_COMPLETED]:!1,[dae.GENERATION_FAILED]:!0,[dae.VERIFICATION_FAILED]:!0,[dae.SDK_PR_CREATED]:!1,[dae.UPGRADE_APPLIED]:!1,[dae.MAJOR_VERSION_BUMP]:!1};function Ctl(e){return Sog[e]}function wtl(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 xtl(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 Stl(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 Ttl(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 Btl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?dae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?dae.VERIFICATION_FAILED:dae.GENERATION_FAILED}var Tog="",Bog="FERN_AUTOMATION_EVENTS_ORIGIN",Oog=3e3,AAi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[Bog]??Tog)),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(),Oog);try{let s={"content-type":"application/json"},a=await vV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Ttl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Otl(){let{fern_run_id:e,github_run_id:t}=Kae();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.27.2"}}function Ptl(){return process.env.FERN_AUTOMATION==="true"}var yAi=class{constructor(t,r=AAi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=Otl()}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:wtl(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!Ctl(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:xtl(t,r),context:{automation:Stl(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};_t();function bAi(e,t,r){if(t instanceof pu)return;let n=KGe(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new j({message:s,code:n});Ptl()?Dog(i,e,n,s,a):Pog(e,o,n,a)}function Pog(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),HGe(r)&&e.captureException(n,{tags:{"error.code":r}})}function Dog(e,t,r,n,i){let o=Btl(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}_t();function j8e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function EAi({cliName:e,packageVersion:t,isLocal:r}){return j8e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var vAi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(EAi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new j({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:j.Code.ConfigError});this.sentry=cPt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[Pqe(),zge(),Uge(),wge(),Lge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),uPt()}}captureException(t,r){if(this.sentry!=null)try{let n=r?.tags,i=r?.context,o=n!=null&&Object.keys(n).length>0,s=i!=null&&Object.values(i).some(a=>a!=null);return!o&&!s?this.sentry.captureException(t):FB(a=>{if(o&&a.setTags(n),i!=null)for(let[c,u]of Object.entries(i))u!=null&&a.setContext(c,u);return this.sentry?.captureException(t,void 0,a)})}catch{return}}async flush(){this.sentry!=null&&await Promise.resolve(this.sentry.flush(2e3)).catch(()=>{})}};_t();var IAi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new j({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:j.Code.InternalError});this.originalWrite=process.stdout.write,process.stdout.write=process.stderr.write.bind(process.stderr),this.redirected=!0}restore(){!this.redirected||this.originalWrite==null||(process.stdout.write=this.originalWrite,this.originalWrite=void 0,this.redirected=!1)}async withRedirect(t){this.redirect();try{return await t()}finally{this.restore()}}};jt();D0();_t();var UYt=class{result=zf.Success;lastFailureMessage=void 0;logImmediately;logPrefix;title;subtasks=[];shouldBufferLogs;bufferedLogs=[];status="notStarted";onResult;instrumentPostHogEventImpl;captureExceptionImpl;emitAutomationTelemetryEventImpl;constructor({logImmediately:t,logPrefix:r,title:n,takeOverTerminal:i,onResult:o,shouldBufferLogs:s,instrumentPostHogEvent:a,captureException:c,emitAutomationTelemetryEvent:u}){this.logImmediately=t,this.logPrefix=r??"",this.title=n,this.takeOverTerminal=i,this.onResult=o,this.shouldBufferLogs=s,this.instrumentPostHogEventImpl=a,this.captureExceptionImpl=c,this.emitAutomationTelemetryEventImpl=u}start(){return this.status="running",this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.status="finished",this.flushLogs(),this.onResult?.(this.getResult()))}isFinished(){return this.status==="finished"}takeOverTerminal;failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),this.finish(),new pu}failWithoutThrowing(t,r,n){this.result=zf.Failure,!(r instanceof pu)&&(t!=null&&(this.lastFailureMessage=t),ZLt({message:t,error:r,logger:this.logger}),bAi(this,r,{...n,message:t}))}getLastFailureMessage(){return this.lastFailureMessage}captureException(t,r){return this.captureExceptionImpl?.(t,r)}emitAutomationTelemetryEvent(t,r){this.emitAutomationTelemetryEventImpl(t,r)}getResult(){return this.result}instrumentPostHogEvent(t){this.instrumentPostHogEventImpl(t)}logAtLevel(t,...r){this.logAtLevelWithOverrides(t,r)}logAtLevelWithOverrides(t,r,n={}){this.log({parts:r,level:t,time:new Date,...n})}log(t){this.bufferedLogs.push({...t,prefix:this.logPrefix}),this.shouldBufferLogs||this.flushLogs()}flushLogs(){this.logImmediately(this.bufferedLogs),this.bufferedLogs=[]}logger=UI(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new Hbs({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${Ee.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()===zf.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
|
|
4914
4914
|
`)}},Hbs=class extends UYt{name;subtitle;constructor({name:t,subtitle:r,...n}){super(n),this.name=t,this.subtitle=r}start(){return super.start(),this.logAtLevelWithOverrides(qn.Info,["Started."],{omitOnTTY:!0}),this.flushLogs(),this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.result===zf.Success?this.logAtLevelWithOverrides(qn.Info,["Finished."],{omitOnTTY:!0}):this.logAtLevelWithOverrides(qn.Error,["Failed."],{omitOnTTY:!0}),super.finish())}setSubtitle(t){this.subtitle=t}print({spinner:t}){let r=[this.name];return this.subtitle!=null&&r.push(Ee.dim(this.subtitle)),r.push(...this.subtasks.map(n=>n.print({spinner:t}))),Pj({prefix:this.getIcon({spinner:t}),content:r.join(`
|
|
4915
4915
|
`)})}printInteractiveTasks({spinner:t}){return this.print({spinner:t})}getIcon({spinner:t}){let r=this.subtasks.length>0;switch(this.status){case"notStarted":return r?Ee.dim("\u25B8 "):Ee.dim("\u25E6 ");case"running":return r?Ee.cyan("\u25BE "):t;case"finished":switch(this.getResult()){case zf.Success:return r?Ee.green("\u25BE "):Ee.green("\u2713 ");case zf.Failure:return r?Ee.red("\u25BE "):Ee.red("x ")}}}getResult(){if(this.result===zf.Failure)return zf.Failure;for(let t of this.subtasks)if(t.getResult()===zf.Failure)return zf.Failure;return zf.Success}};_t();var Dtl=we(DMe(),1);function Rtl(e){return e.filter(t=>t.isUpgradeAvailable).length>0}function Rog(e){return(e.cliUpgradeInfo?.isUpgradeAvailable??!1)||Rtl(e.generatorUpgradeInfo)}async function Ftl({cliEnvironment:e,upgradeInfo:t}){if(!Rog(t)||e.packageVersion==t.cliUpgradeInfo?.latestVersion)return;let r=`${Ee.underline("Upgrades available")}
|
|
4916
4916
|
|
|
@@ -4919,7 +4919,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
4919
4919
|
Run ${Ee.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
4920
4920
|
Run ${Ee.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),Tot(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function Kbs({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!Rtl(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+=`
|
|
4921
4921
|
${await Fog(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+Ee.dim(a.currentVersion)+Ee.reset(" \u2192 ")+Ee.green(a.latestVersion);return i+=`
|
|
4922
|
-
`,n?Tot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Fog(e){let r=await new Dtl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new j({message:`Generator ${e} not found`,code:j.Code.ConfigError});return r.body.displayName}_t();async function kog({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await ktl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=vMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await Q1({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 ktl({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=vMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await Q1({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 ktl({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 q3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?ly(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 Ntl(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=UQ(a.latestVersion,a.previousVersion)}catch{throw new j({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:j.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 CAi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await kog({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(...Ntl(u,c,t.logger));else s.push(...Ntl(a.versions,void 0,t.logger))}return s}_t();async function jhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await zRt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new j({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:j.Code.NetworkError})}}var jtl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],wAi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new IAi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await V_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new h3t(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 vAi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new yAi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.27.
|
|
4922
|
+
`,n?Tot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function Fog(e){let r=await new Dtl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new j({message:`Generator ${e} not found`,code:j.Code.ConfigError});return r.body.displayName}_t();async function kog({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await ktl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=vMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await Q1({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 ktl({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=vMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await Q1({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 ktl({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 q3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?ly(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 Ntl(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=UQ(a.latestVersion,a.previousVersion)}catch{throw new j({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:j.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 CAi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await kog({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(...Ntl(u,c,t.logger));else s.push(...Ntl(a.versions,void 0,t.logger))}return s}_t();async function jhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await zRt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new j({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:j.Code.NetworkError})}}var jtl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],wAi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new IAi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await V_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new h3t(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 vAi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new yAi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.27.2"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${Ee.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new pu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof pu)&&(ZLt({message:t,error:r,logger:this.logger}),bAi(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)+`
|
|
4923
4923
|
`),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 Ftl({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
4924
4924
|
`)||(r+=`
|
|
4925
4925
|
`),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=lOi(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 UYt(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw n.failWithoutThrowing(void 0,o),new pu}finally{n.finish()}return i}instrumentPostHogEvent(t){this.isLocal||this.posthogManager.sendEvent(t)}instrumentPostHogAutomationEvent(t){this.isLocal||this.posthogManager.sendAutomationEvent(t)}captureException(t,r){return this.sentryClient.captureException(t,r)}emitAutomationTelemetryEvent(t,r){this.automationTelemetryManager.emit(t,r)}logger=UI((t,...r)=>this.log(t,...r));stderr=UI((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=t.type==="docs"?"docs":t.workspaceName??"api",n=Qtl(r),i=1+(this.longestWorkspaceName!=null?Qtl(this.longestWorkspaceName):n).length,o=n.padEnd(i),s=jtl[this.numTasks++%jtl.length],a=Ee.hex(s)(o);return{...this.constructTaskInit(),logPrefix:a,title:Ee.hex(s).bold(r)}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===zf.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:t=>{this.instrumentPostHogEvent(t)},shouldBufferLogs:!1,captureException:(t,r)=>this.sentryClient.captureException(t,r),emitAutomationTelemetryEvent:(t,r)=>this.emitAutomationTelemetryEvent(t,r)}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>Fx.indexOf(i.level)>=Fx.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===qn.Debug,stderr:r||this.jsonMode})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await jhe({cliEnvironment:this.environment,includePreReleases:t}),n=UQ(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await CAi({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await Wbs({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:Ee.yellow("?"),style:{answer:i=>Ee.cyan(i),message:i=>Ee.bold(i),highlight:i=>Ee.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
|