fern-api 5.57.0 → 5.58.0
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
|
@@ -1434,7 +1434,7 @@ ${n.map(o=>` ${o}`).join(`,
|
|
|
1434
1434
|
`)}
|
|
1435
1435
|
]`;case 1:return`${i} Did you mean ${r[0]}?`;case 2:return`${i} Did you mean ${r[0]} or ${r[1]}?`;default:return`${i} Did you mean ${r[0]}, ${r[1]}, or ${r[2]}?`}}function KXn(e){return`API section ${e} is specified multiple times, however will be only rendered once.`}function r5m(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}var e5m,t5m,lJu=h(()=>{"use strict";uJu();e5m=3,t5m=5});function JXn({children:e,findEndpointById:t,stringifyEndpointPathParts:r,disableEndpointPairs:n,apiDefinitionId:i}){if(n)return e;let o=[],s=new Map;return e.forEach(a=>{if(a.type!=="endpoint"){o.push(a);return}let c=t(a.endpointId);if(c==null)throw new B({message:`Endpoint ${a.endpointId} not found`,code:B.Code.InternalError});let u=`${c.method} ${r(c)}`,l=s.get(u);if(s.set(u,a),l==null||l.isResponseStream===a.isResponseStream){o.push(a);return}let p=o.indexOf(l),d=a.isResponseStream?a:l,f=a.isResponseStream?l:a,m={id:vt.V1.NodeId(`${i}:${f.endpointId}+${d.endpointId}`),type:"endpointPair",collapsed:void 0,stream:d,nonStream:f};o[p]=m}),o}var M7o=h(()=>{"use strict";zm();jt()});function pJu({left:e,right:t,findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}){return JXn({children:[...e,...t],findEndpointById:r,stringifyEndpointPathParts:n,disableEndpointPairs:i,apiDefinitionId:o}).filter(s=>s.type==="apiPackage"?s.children.length>0||s.overviewPageId!=null:!0)}var fJu=h(()=>{"use strict";M7o()});function Ayt(e,t){if(t!=null)return ko(e.absoluteFilePath,t)}var L7o=h(()=>{"use strict";Yt()});function dJu({docsWorkspace:e,page:t,parentSlug:r,idgen:n,markdownFilesToFullSlugs:i,markdownFilesToNoIndex:o,hideChildren:s,resolveIconFileId:a}){let c=vt.V1.PageId(Ayt(e,t.absolutePath)),u=r.apply({fullSlug:i.get(t.absolutePath)?.split("/"),urlSlug:t.slug??qf(t.title)});return{id:n.get(c),type:"page",collapsed:void 0,pageId:c,title:t.title,slug:u.get(),icon:a?a(t.icon):t.icon,hidden:s||t.hidden,noindex:t.noindex||o.get(t.absolutePath),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,availability:kg(t.availability)}}var mJu=h(()=>{"use strict";zm();Vi();WXn();L7o()});function hJu(e){return e.fieldPath}var gJu,YXn,AJu=h(()=>{"use strict";Dt();zm();Yt();jt();Vi();gJu=be(Nm(),1);HKu();j7o();WXn();ZKu();$Ku();lJu();R7o();fJu();M7o();F7o();mJu();L7o();YXn=class{apiSection;docsWorkspace;taskContext;markdownFilesToFullSlugs;markdownFilesToNoIndex;markdownFilesToTags;workspace;hideChildren;parentAvailability;openApiTags;apiDefinitionId;#e;#t=new Set;#r=new Set;#n=new Set;#i=new Set;#o=new Set;#s=new Set;#a=new Map;#c=[];#u;#d;#p;disableEndpointPairs;collectedFileIds=new Map;#f;#l;constructor(t,r,n,i,o,s,a,c,u,l,p,d,f,m,g){this.apiSection=t,this.docsWorkspace=i,this.taskContext=o,this.markdownFilesToFullSlugs=s,this.markdownFilesToNoIndex=a,this.markdownFilesToTags=c,this.workspace=p,this.hideChildren=d,this.parentAvailability=f,this.openApiTags=m,this.#f=new Map,this.#l=g??new Map,this.disableEndpointPairs=i.config.experimental?.disableStreamToggle??!1,this.apiDefinitionId=vt.V1.ApiDefinitionId(r.id),this.#e=BBe.create(r,o),this.collectedFileIds=l,this.#p=u,this.#u=this.apiSection.overviewAbsolutePath!=null?vt.V1.PageId(Ayt(this.docsWorkspace,this.apiSection.overviewAbsolutePath)):void 0;let A=this.apiSection.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(this.apiSection.overviewAbsolutePath):void 0;this.#d=n.apply({fullSlug:A?.split("/"),skipUrlSlug:this.apiSection.skipUrlSlug,urlSlug:this.apiSection.slug??qf(this.apiSection.title)});let y=this.apiSection.availability??this.parentAvailability;this.apiSection.navigation!=null&&(this.#c=this.#m(this.apiSection.navigation,this.#e.api.rootPackage,this.#d,y)),this.#c=this.#y(this.#c.map(E=>this.#x(E,y)),this.#C(this.#e.api.rootPackage,this.#d,y))}get(){let t=vt.V1.followRedirects(this.#c),r=new Q3e(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.workspace?.changelog?.files.map(i=>i.absoluteFilepath),this.docsWorkspace,this.#p).orUndefined(),n=this.#u;if(n==null&&!this.apiSection.tagDescriptionPages){let i=this.#c.find(o=>o.type==="apiPackage"&&o.overviewPageId!=null);i!=null&&(n=i.overviewPageId)}return{id:this.#p.get(this.apiDefinitionId),type:"apiReference",title:this.apiSection.title,apiDefinitionId:this.apiDefinitionId,overviewPageId:n,collapsed:this.apiSection.collapsed,collapsible:void 0,collapsedByDefault:void 0,paginated:this.apiSection.paginated,slug:this.#d.get(),icon:this.resolveIconFileId(this.apiSection.icon),hidden:this.hideChildren||this.apiSection.hidden,hideTitle:this.apiSection.flattened,showErrors:this.apiSection.showErrors,changelog:r?.toChangelogNode({parentSlug:this.#d,viewers:void 0,hidden:this.hideChildren}),children:this.#c,availability:kg(this.apiSection.availability??this.parentAvailability),pointsTo:t,noindex:void 0,playground:this.#w(this.apiSection.playground),postmanCollectionUrl:this.apiSection.postman,authed:void 0,viewers:this.apiSection.viewers,orphaned:this.apiSection.orphaned,featureFlags:this.apiSection.featureFlags}}getTagDescriptionContent(){return this.#f}createTagDescriptionPageId(t,r){if(!this.apiSection.tagDescriptionPages||!this.openApiTags)return;let n=GH(t)?t.name:void 0;if(!n)return;let i=this.openApiTags[n]??(r!=null?this.openApiTags[$n(r)]:void 0);if(!i||!i.description)return;let o=`tag-${n}.md`,s=Vt.of(`/${o}`),a=vt.V1.PageId(o),c=`# ${EP(i.id.replace(/[_-]/g," "))}
|
|
1436
1436
|
|
|
1437
|
-
${i.description}`;return this.#f.set(s,c),this.markdownFilesToNoIndex.set(s,!1),this.markdownFilesToTags.set(s,[n]),a}#m(t,r,n,i){r=this.#e.resolveSubpackage(r);let o=r!=null?BBe.getSubpackageId(r):void 0;return t.map(s=>fv(s)._visit({link:a=>({id:this.#p.get(a.url),type:"link",collapsed:void 0,title:a.text,icon:this.resolveIconFileId(a.icon),url:vt.Url(a.url),target:a.target}),page:a=>this.#h(a,n,i),package:a=>this.#g(a,n,i),section:a=>this.#E(a,n,i),item:({value:a})=>this.#b(a,o,n,i),endpoint:a=>this.#I(a,o,n,i),operation:a=>this.#v(a,o,n,i)})).filter(Oa)}#h(t,r,n){return dJu({page:{...t,availability:t.availability??n},parentSlug:r,docsWorkspace:this.docsWorkspace,markdownFilesToFullSlugs:this.markdownFilesToFullSlugs,markdownFilesToNoIndex:this.markdownFilesToNoIndex,idgen:this.#p,hideChildren:this.hideChildren,resolveIconFileId:this.resolveIconFileId.bind(this)})}#g(t,r,n){let i=t.overviewAbsolutePath!=null?vt.V1.PageId(Ayt(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.availability??n,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let c=BBe.getSubpackageId(a),u=i??this.createTagDescriptionPageId(a,t.package),l=this.#p.get(u??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(KXn(t.package)),this.#s.add(c),this.#a.set(l,[c]);let p=t.slug??(GH(a)?a.urlSlug:this.apiSection.slug??qf(this.apiSection.title)),d=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:p}),f=this.#m(t.contents,a,d,s);return{id:l,type:"apiPackage",collapsed:void 0,children:f,title:t.title??(GH(a)?a.displayName??EP(a.name):this.apiSection.title),slug:d.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:kg(s),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}else{this.taskContext.logger.warn(HXn(t.package,this.#e.subpackageLocators));let c=t.slug??qf(t.package),u=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=this.#m(t.contents,void 0,u,s);return{id:this.#p.get(i??`${this.apiDefinitionId}:${qf(t.package)}`),type:"apiPackage",collapsed:void 0,children:l,title:t.title??t.package,slug:u.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:kg(s),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}#E(t,r,n){let i=t.overviewAbsolutePath!=null?vt.V1.PageId(Ayt(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(t.overviewAbsolutePath):void 0,a=this.#p.get(i??o??r.get()),c=t.referencedSubpackages.map(f=>{let m=this.#e.getSubpackageByIdOrLocator(f),g=m!=null?BBe.getSubpackageId(m):void 0;if(g===void 0){this.taskContext.logger.error(HXn(f,this.#e.subpackageLocators));return}return{subpackageId:g,locator:f}}).filter(f=>f!=null).filter(Oa);this.#a.set(a,c.map(f=>f.subpackageId)),c.forEach(f=>{this.#s.has(f.subpackageId)&&this.taskContext.logger.error(KXn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??qf(t.title),l=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),p=t.availability??n,d=this.#m(t.contents,void 0,l,p);return{id:a,type:"apiPackage",children:d,title:t.title,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsed:t.collapsed,collapsible:t.collapsible,collapsedByDefault:t.collapsedByDefault,availability:kg(p),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:s,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#b(t,r,n,i){t=t.trim();let o=this.#e.getSubpackageByIdOrLocator(t)??this.#e.getSubpackageByIdOrLocator($n(t));if(o!=null){let s=BBe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(KXn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=GH(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",collapsed:void 0,children:[],title:GH(o)?o.displayName??EP(o.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:this.createTagDescriptionPageId(o,t),collapsible:void 0,collapsedByDefault:void 0,availability:kg(i),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}return this.#I({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,availability:void 0,playground:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0},r,n,i)}#I(t,r,n,i){let o=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.endpoints.get(xb.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(o!=null){let u=this.#e.getEndpointId(o);if(u==null)this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);else{this.#t.has(u)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${u}`),this.#t.add(u);let l=t.slug!=null?n.append(t.slug):n.apply(o);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"endpoint",collapsed:void 0,method:o.method,endpointId:u,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(o.availability)??kg(i),isResponseStream:o.response?.type.type==="stream",title:t.title??o.name??WR(o.path.parts),slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#w(o.includeInApiExplorer===!1?{...t.playground,hidden:!0}:t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}let s=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.webSockets.get(xb.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(s!=null){let u=this.#e.getWebSocketId(s);if(u==null)this.taskContext.logger.error(`Expected WebSocket ID for ${s.id}. Got undefined.`);else return this.#r.has(u)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${u}`),this.#r.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webSocket",collapsed:void 0,webSocketId:u,title:t.title??s.name??WR(s.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(s)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(s.availability)??kg(i),playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let a=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.webhooks.get(xb.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(vt.V1.WebhookId(t.endpoint));if(a!=null){let u=this.#e.getWebhookId(a);if(u==null)this.taskContext.logger.error(`Expected Webhook ID for ${a.id}. Got undefined.`);else return this.#n.has(u)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${u}`),this.#n.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webhook",collapsed:void 0,webhookId:u,method:a.method,title:t.title??a.name??(0,gJu.default)("/",...a.path),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(a.availability)??kg(i),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let c=this.#e.api.rootPackage.graphqlOperations?.find(u=>u.id===t.endpoint||u.name===t.endpoint);if(c!=null){let u=xb.GraphQlOperationId(c.id);if(this.#o.has(u)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${u}`);return}this.#o.add(u);let l=t.slug!=null?n.append(t.slug):n.append(c.name??c.id);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"graphql",collapsed:void 0,operationType:c.operationType,graphqlOperationId:xb.GraphQlOperationId(c.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability??i),title:t.title??c.displayName??c.name??c.id,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#v(t,r,n,i){let o=t.operation.trim().split(/\s+/,2);if(o.length!==2){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let[s,a]=o;if(!a){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let c=this.#e.api.rootPackage.graphqlOperations??[],u=c.filter(f=>{if(f.operationType!==s)return!1;if(a.includes(".")){if(f.id===a||f.name===a)return!0;let m=a.split("."),g=m[m.length-1],A=m.slice(0,-1).join(".");if(f.name===g||f.id===g)return f.id.startsWith(A+".")||this.#l.get(cn.GraphQlOperationId(f.id))===A}else return f.name===a||f.id===a;return!1});if(!a.includes(".")){let f=c.filter(m=>m.operationType===s&&(m.name===a||m.id===a));if(f.length>1){let m=f.map(g=>{let A=this.#l.get(cn.GraphQlOperationId(g.id));if(A)return`"${s} ${A}.${a}"`;let y=g.id.split("_");if(y.length>=3){let E=y[0];return`"${s} ${E}.${a}"`}return`"${s} ${g.id}"`}).join(", ");this.taskContext.logger.warn(`Ambiguous operation reference: "${t.operation}". Found ${f.length} operations with name "${a}". Using first match: "${m.split(", ")[0]}". Please use the full namespaced format for clarity. Available options: ${m}`)}}let l=u[0];if(l==null){this.taskContext.logger.error(`GraphQL operation not found in the API Reference layout: ${t.operation}`);return}let p=xb.GraphQlOperationId(l.id);if(this.#o.has(p)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${p}`);return}this.#o.add(p);let d=t.slug!=null?n.append(t.slug):n.append(l.name??l.id);return{id:this.#p.get(`${this.apiDefinitionId}:${p}`),type:"graphql",collapsed:void 0,operationType:l.operationType,graphqlOperationId:xb.GraphQlOperationId(l.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability??i),title:t.title??l.displayName??l.name??l.id,slug:d.get(),icon:void 0,hidden:this.hideChildren||t.hidden,playground:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#y(t,r){return pJu({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>WR(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#x(t,r){return Q7o({child:t,nodeIdToSubpackageId:this.#a,convertApiDefinitionPackageId:(n,i,o)=>this.#B(n,i,o),mergeAndFilterChildren:this.#y.bind(this)})}#C(t,r,n){let i=[];if(t.endpoints.forEach(o=>{if(o.protocol?.type==="grpc"){let s=this.#e.getGrpcId(o);if(s==null){this.taskContext.logger.error(`Expected Grpc ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#i.has(s))return;let a=r.apply(o);i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"grpc",collapsed:void 0,grpcId:s,title:o.name??WR(o.path.parts),method:o.protocol?.methodType??"UNARY",apiDefinitionId:this.apiDefinitionId,availability:kg(n),slug:a.get(),icon:void 0,hidden:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let s=this.#e.getEndpointId(o);if(s==null){this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#t.has(s))return;let a=r.apply(o);i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"endpoint",collapsed:void 0,method:o.method,endpointId:s,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),isResponseStream:o.response?.type.type==="stream",title:o.name??WR(o.path.parts),slug:a.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}}),t.websockets.forEach(o=>{let s=this.#e.getWebSocketId(o);if(s==null){this.taskContext.logger.error(`Expected WebSocket ID for ${o.id}. Got undefined.`);return}this.#r.has(s)||i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webSocket",collapsed:void 0,webSocketId:s,title:o.name??WR(o.path.parts),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.webhooks.forEach(o=>{let s=this.#e.getWebhookId(o);if(s==null){this.taskContext.logger.error(`Expected Webhook ID for ${o.id}. Got undefined.`);return}this.#n.has(s)||i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webhook",collapsed:void 0,webhookId:s,method:o.method,title:o.name??EP(o.id),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.subpackages.forEach(o=>{if(this.#s.has(o))return;let s=this.#e.getSubpackageByIdOrLocator(o);if(s==null){this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`);return}let a=GH(s)?r.apply(s):r,c=this.#B(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(xb.SubpackageId(o)),p=l?Array.from(l.endpoints.values()).some(d=>{let f=this.#e.getEndpointId(d);return f!=null&&this.#t.has(f)}):!1;(c.length>0||u!=null&&p)&&i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${o}`),type:"apiPackage",collapsed:void 0,children:c,title:GH(s)?s.displayName??EP(s.name):this.apiSection.title,slug:a.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.graphqlOperations!=null&&t.graphqlOperations.length>0){let o=this.#T(t.graphqlOperations,r,n);i.push(...o)}return i=this.mergeEndpointPairs(i),this.apiSection.alphabetized&&(i=i.sort((o,s)=>{let a=o.type==="endpointPair"?o.nonStream.title:o.title,c=s.type==="endpointPair"?s.nonStream.title:s.title;return a.localeCompare(c)})),i}#T(t,r,n){let i={},o={};for(let u of t){let l=xb.GraphQlOperationId(u.id);if(this.#o.has(l))continue;this.#o.add(l);let p=this.#l.get(cn.GraphQlOperationId(u.id)),d=u.operationType;p!=null?(i[p]==null&&(i[p]={}),i[p][d]==null&&(i[p][d]=[]),i[p][d].push(u)):(o[d]==null&&(o[d]=[]),o[d].push(u))}let s=[],a=["QUERY","MUTATION","SUBSCRIPTION"],c={QUERY:"Queries",MUTATION:"Mutations",SUBSCRIPTION:"Subscriptions"};for(let[u,l]of Object.entries(i)){let p=r.append(qf(u)),d=[];for(let m of a){let g=l[m];if(g==null||g.length===0)continue;let A=c[m],y=p.append(qf(A)),E=this.#A(g,y,n,m),v={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}:${m}`),type:"apiPackage",collapsed:void 0,children:E,title:A,slug:y.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};d.push(v)}let f={id:this.#p.get(`${this.apiDefinitionId}:graphql:namespace:${u}`),type:"apiPackage",collapsed:void 0,children:d,title:EP(u),slug:p.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(f)}for(let u of a){let l=o[u];if(l==null||l.length===0)continue;let p=c[u],d=r.append(qf(p)),f=this.#A(l,d,n,u),m={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}`),type:"apiPackage",collapsed:void 0,children:f,title:p,slug:d.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(m)}return s}#A(t,r,n,i){let o=i==="QUERY",s=new Map,a=[];for(let u of t){let l=hJu(u)?.[0];if(o&&l!=null){let p=s.get(l);p!=null?p.push(u):(s.set(l,[u]),a.push({type:"group",parentField:l}))}else a.push({type:"flat",operation:u})}let c=[];for(let u of a)if(u.type==="flat"){let l=hJu(u.operation),p=u.operation.name??u.operation.id,d=r;if(l!=null&&l.length>0)for(let f of l)d=d.append(qf(f));d=d.append(qf(p)),c.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${u.operation.id}`),type:"graphql",collapsed:void 0,operationType:u.operation.operationType,graphqlOperationId:xb.GraphQlOperationId(u.operation.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(n),title:u.operation.displayName??u.operation.name??u.operation.id,slug:d.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let l=s.get(u.parentField)??[],p=l[0];if(p==null)continue;let d=r.append(qf(u.parentField));c.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${p.id}`),type:"graphql",collapsed:void 0,operationType:p.operationType,graphqlOperationId:xb.GraphQlOperationId(p.id),graphqlOperationIds:l.map(f=>xb.GraphQlOperationId(f.id)),apiDefinitionId:this.apiDefinitionId,availability:kg(n),title:u.parentField,slug:d.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}return c}#B(t,r,n){let i=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return i==null?(this.taskContext.logger.debug(HXn(t||"unknown",[])),[]):this.#C(i,r,n)}#w(t){return XKu(t)}mergeEndpointPairs(t){return JXn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>WR(r.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}getFileId(t){let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t,void 0,{code:B.Code.InternalError})}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}}});function n5m(e){return yJu.default.createHash("sha256").update(e).digest("hex")}var yJu,XXn,bJu=h(()=>{"use strict";zm();jt();yJu=be(require("crypto"),1);XXn=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#r(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),n5m(r===0?t:`${t}-${r}`)}#n(t){let r=this.#r(t),n=0;for(;this.#t.has(r);)if(r=this.#r(t),n++,n>100)throw new B({message:`Infinite loop detected for id: ${t}`,code:B.Code.ReferenceError});return r}get(t){return vt.V1.NodeId(this.#n(t))}}});async function EJu({absolutePathToFernFolder:e}){let t=[];for(let r of i5m){let n=Ge(e,r);if(await $t(n)){let i=await sPt(n);t.push(...i.map(Vt.of))}}return t}var i5m,IJu=h(()=>{"use strict";Yt();i5m=[we.of(".well-known/skills"),we.of(".well-known/agent-skills")]});function vJu(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0,csharpSdk:e.csharp!=null?{package:typeof e.csharp=="string"?e.csharp:e.csharp.package,version:typeof e.csharp=="string"?void 0:e.csharp.version}:void 0,phpSdk:e.php!=null?{package:typeof e.php=="string"?e.php:e.php.package,version:typeof e.php=="string"?void 0:e.php.version}:void 0,swiftSdk:e.swift!=null?{package:typeof e.swift=="string"?e.swift:e.swift.package,version:typeof e.swift=="string"?void 0:e.swift.version}:void 0,rustSdk:e.rust!=null?{package:typeof e.rust=="string"?e.rust:e.rust.package,version:typeof e.rust=="string"?void 0:e.rust.version}:void 0}}var xJu=h(()=>{"use strict"});var ZXn,CJu=h(()=>{"use strict";ZXn=class{selectors;constructor(t){this.selectors=t}matches(t,r){for(let n of this.selectors)if(this.pathMatches(t,n.path)&&(!n.method||n.method===r))return!0;return!1}pathMatches(t,r){if(t===r)return!0;let n=t.split("/").filter(o=>o.length>0),i=r.split("/").filter(o=>o.length>0);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let s=n[o],a=i[o];if(!s||!a)return!1;let c=s.startsWith("{")&&s.endsWith("}"),u=a.startsWith("{")&&a.endsWith("}");if(!(c&&u)&&s!==a)return!1}return!0}getMatchingPaths(t){let r=[];for(let[n,i]of Object.entries(t)){if(!i)continue;let o=["get","put","post","delete","options","head","patch","trace"];for(let s of o)if(i[s]&&this.matches(n,s)){r.includes(n)||r.push(n);break}}return r}}});var $Xn,wJu=h(()=>{"use strict";$Xn=class{document;schemas=new Set;parameters=new Set;responses=new Set;requestBodies=new Set;securitySchemes=new Set;headers=new Set;examples=new Set;links=new Set;callbacks=new Set;constructor(t){this.document=t}collectFromOperation(t){if(t.parameters)for(let r of t.parameters)this.collectParameter(r);if(t.requestBody&&this.collectFromRequestBody(t.requestBody),t.responses)for(let r of Object.values(t.responses))this.collectFromResponse(r);if(t.callbacks)for(let[r,n]of Object.entries(t.callbacks))if(this.isReference(n))this.callbacks.add(this.extractComponentName(n.$ref));else for(let i of Object.values(n))this.collectFromPathItem(i);if(t.security)for(let r of t.security)for(let n of Object.keys(r))this.securitySchemes.add(n)}collectFromPathItem(t){if(t.parameters)for(let n of t.parameters)this.collectParameter(n);let r=[t.get,t.put,t.post,t.delete,t.options,t.head,t.patch,t.trace];for(let n of r)n&&this.collectFromOperation(n)}collectParameter(t){if(this.isReference(t)){this.parameters.add(this.extractComponentName(t.$ref));let r=this.resolveParameter(t.$ref);r&&this.collectParameter(r)}else{if(t.schema&&this.collectFromSchema(t.schema),t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}}collectFromRequestBody(t){if(this.isReference(t)){this.requestBodies.add(this.extractComponentName(t.$ref));let r=this.resolveRequestBody(t.$ref);r&&this.collectFromRequestBody(r)}else if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r)}collectFromResponse(t){if(this.isReference(t)){this.responses.add(this.extractComponentName(t.$ref));let r=this.resolveResponse(t.$ref);r&&this.collectFromResponse(r)}else{if(t.headers)for(let[r,n]of Object.entries(t.headers))this.isReference(n)?this.headers.add(this.extractComponentName(n.$ref)):n.schema&&this.collectFromSchema(n.schema);if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.links)for(let[r,n]of Object.entries(t.links))this.isReference(n)&&this.links.add(this.extractComponentName(n.$ref))}}collectFromMediaType(t){if(t.schema&&this.collectFromSchema(t.schema),t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}collectFromSchema(t){if(this.isReference(t)){let r=this.extractComponentName(t.$ref);if(!this.schemas.has(r)){this.schemas.add(r);let n=this.resolveSchema(t.$ref);n&&this.collectFromSchema(n)}}else{if(t.properties)for(let r of Object.values(t.properties))this.collectFromSchema(r);if(t.additionalProperties&&typeof t.additionalProperties=="object"&&this.collectFromSchema(t.additionalProperties),"items"in t&&t.items)if(Array.isArray(t.items))for(let r of t.items)this.collectFromSchema(r);else this.collectFromSchema(t.items);if(t.allOf)for(let r of t.allOf)this.collectFromSchema(r);if(t.oneOf)for(let r of t.oneOf)this.collectFromSchema(r);if(t.anyOf)for(let r of t.anyOf)this.collectFromSchema(r);t.not&&this.collectFromSchema(t.not)}}resolveSchema(t){let r=this.extractComponentName(t);return this.document.components?.schemas?.[r]}resolveParameter(t){let r=this.extractComponentName(t);return this.document.components?.parameters?.[r]}resolveResponse(t){let r=this.extractComponentName(t);return this.document.components?.responses?.[r]}resolveRequestBody(t){let r=this.extractComponentName(t);return this.document.components?.requestBodies?.[r]}isReference(t){return t!=null&&typeof t=="object"&&"$ref"in t}extractComponentName(t){let r=t.split("/");return r[r.length-1]??t}getSchemas(){return this.schemas}getParameters(){return this.parameters}getResponses(){return this.responses}getRequestBodies(){return this.requestBodies}getSecuritySchemes(){return this.securitySchemes}getHeaders(){return this.headers}getExamples(){return this.examples}getLinks(){return this.links}getCallbacks(){return this.callbacks}}});var i8t,SJu=h(()=>{"use strict";CJu();wJu();i8t=class{matcher;document;constructor(t){this.matcher=new ZXn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new $Xn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let d=c[p];d&&this.matcher.matches(a,p)&&(u[p]=d,r.collectFromOperation(d))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let d of p.tags)a.add(d)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}}});var TJu=h(()=>{"use strict";SJu()});var o5m,s5m,eZn,OJu=h(()=>{"use strict";Dt();om();jt();o5m=0,s5m=15e3,eZn=class{config;context;faiOrigin;venusOrigin;token;jwtPromise;organizationId;venusAirGappedResult;constructor(t,r,n,i){this.config={enabled:t.enabled,openaiApiKey:t.openaiApiKey,model:t.model??"gpt-4o-mini",maxRetries:t.maxRetries??o5m,requestTimeoutMs:t.requestTimeoutMs??s5m,styleInstructions:t.styleInstructions},this.context=r;let o="https://fai.buildwithfern.com";if(!o)throw new B({message:"DEFAULT_FAI_ORIGIN environment variable is not set. AI example enhancement requires this to be configured.",code:B.Code.EnvironmentError});this.faiOrigin=o,this.venusOrigin="https://venus.buildwithfern.com",this.token=n,this.organizationId=i}async isVenusAirGapped(){if(this.venusAirGappedResult!==void 0)return this.venusAirGappedResult;this.context.logger.debug(`Checking Venus connectivity at ${this.venusOrigin}/health`);try{return await fetch(`${this.venusOrigin}/health`,{method:"GET",signal:AbortSignal.timeout(5e3)}),this.venusAirGappedResult=!1,this.context.logger.debug("Venus connectivity check succeeded"),!1}catch(t){let r=zn(t);return PLt(r)?(this.venusAirGappedResult=!0,this.context.logger.debug(`Venus connectivity check failed - air-gapped mode: ${r}`),!0):(this.venusAirGappedResult=!1,!1)}}async getJwt(){return this.jwtPromise==null&&(this.jwtPromise=this.fetchJwtFromVenus()),this.jwtPromise}async fetchJwtFromVenus(){this.context.logger.debug("Fetching JWT from Venus for AI example enhancement"),this.context.logger.debug(`Token type: ${this.token.type}`),this.context.logger.debug(`Token value (first 10 chars): ${this.token.value.substring(0,10)}...`),this.context.logger.debug(`Token value starts with 'fern_': ${this.token.value.startsWith("fern_")}`),this.context.logger.debug(`Venus origin: ${this.venusOrigin}`),this.context.logger.debug(`Organization ID: ${this.organizationId}`);let t=await fetch(`${this.venusOrigin}/auth/jwt`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token.value}`},body:JSON.stringify({organizationId:this.organizationId}),signal:AbortSignal.timeout(1e4)});if(!t.ok){let n=await t.text();throw new B({message:`Failed to fetch JWT from Venus: ${t.status} ${n||t.statusText}`,code:B.Code.NetworkError})}let r=await t.json();return this.context.logger.debug(`Successfully obtained JWT from Venus (expires at ${r.expiresAt})`),r.token}async enhanceExample(t){if(!this.config.enabled)return{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};if(await this.isVenusAirGapped())return this.context.logger.debug("Skipping AI example enhancement - Venus is not reachable"),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};let n;try{n=await this.getJwt()}catch(s){return this.context.logger.warn(`Failed to obtain JWT from Venus: ${s}. AI example enhancement will be skipped.`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}let i,o=this.config.maxRetries+1;for(let s=1;s<=o;s++)try{this.context.logger.debug(`Enhancing example for ${t.method} ${t.endpointPath} via FAI (attempt ${s}/${o})`);let a={method:t.method,endpointPath:t.endpointPath,organizationId:t.organizationId,operationSummary:t.operationSummary,operationDescription:t.operationDescription,originalRequestExample:t.originalRequestExample,originalResponseExample:t.originalResponseExample,openApiSpec:t.openApiSpec,exampleStyleInstructions:t.exampleStyleInstructions??this.config.styleInstructions};this.context.logger.debug(`Sending to enhanceExamples: ${JSON.stringify({...a,openApiSpec:t.openApiSpec?`[OpenAPI spec present: ${t.openApiSpec.length} chars]`:"[No OpenAPI spec]"},null,2)}`);let c=await fetch(`${this.faiOrigin}/examples/enhance`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify(a),signal:AbortSignal.timeout(this.config.requestTimeoutMs)});if(!c.ok){let l=await c.text();throw new B({message:`FAI returned ${c.status}: ${l||c.statusText}`,code:B.Code.NetworkError})}let u=await c.json();return{enhancedRequestExample:u.enhancedRequestExample??t.originalRequestExample,enhancedResponseExample:u.enhancedResponseExample??t.originalResponseExample}}catch(a){if(i=a,this.context.logger.debug(`Attempt ${s} failed to enhance example: ${a}`),s<o){let c=Math.min(1e3*Math.pow(2,s-1),1e4);await new Promise(u=>setTimeout(u,c))}}return this.context.logger.error(`Failed to enhance example after ${o} attempts: ${i?.message}`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}}});function U7o(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=Object.keys(t);if(r.length===0||r.length>2)return!1;let n="type"in t&&typeof t.type=="string",i="value"in t;return n&&r.length===1||n&&i&&r.length===2||i&&r.length===1}function PBe(e){if(e==null)return e;if(Array.isArray(e))return e.map(PBe);if(typeof e!="object")return e;let t=e;if(U7o(t))return"value"in t?PBe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=PBe(i);o!==void 0&&(r[n]=o)}return r}function V7o(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function tZn(e,t,r,n){let i={},o={},s={};if(e==null||typeof e!="object"||Array.isArray(e))return{filteredBody:e,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s};let a=e,c={},u=new Set(Object.keys(t??{})),l=new Set(Object.keys(r??{})),p=new Set(Object.keys(n??{}));for(let[d,f]of Object.entries(a)){let m=d.toLowerCase().replace(/[-_]/g,""),g=!1,A=!1,y=!1;for(let E of u){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){g=!0,i[E]=f;break}}if(!g)for(let E of l){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){A=!0,o[E]=f;break}}if(!g&&!A)for(let E of p){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){y=!0,s[E]=f;break}}!g&&!A&&!y&&(c[d]=f)}return{filteredBody:c,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s}}var _7o=h(()=>{"use strict"});var yyt,BJu=h(()=>{"use strict";yyt=class e{static instance;currentApiId;queue=[];progress=new Map;constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}create(t,r,n){let i=`${t}-${Date.now()}-${Math.random()}`;return this.progress.set(i,{apiName:t,completed:0,total:r,endpointsSample:n}),this.queue.push(i),this.currentApiId||(this.currentApiId=i,this.updateSpinnerStatus()),i}update(t,r){let n=this.progress.get(t);n&&(n.completed=r,t===this.currentApiId&&this.updateSpinnerStatus())}finish(t){this.progress.delete(t);let r=this.queue.indexOf(t);r!==-1&&this.queue.splice(r,1),t===this.currentApiId&&(this.queue.length>0?(this.currentApiId=this.queue[0],this.updateSpinnerStatus()):(this.currentApiId=void 0,delete process.env.FERN_SPINNER_STATUS))}updateSpinnerStatus(){if(!this.currentApiId){delete process.env.FERN_SPINNER_STATUS;return}let t=this.progress.get(this.currentApiId);if(t){let r=`auto-generating examples for endpoints - ${t.apiName}`;t.endpointsSample&&(r+=` (${t.endpointsSample})`),r+=` - ${t.completed}/${t.total}`,process.env.FERN_SPINNER_STATUS=r}}}});async function a5m(e,t){let r=Vt.of(`${An(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,rZn.readFile)(r,"utf-8"),o=vr.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object"){for(let[u,l]of Object.entries(c))if(l&&typeof l=="object"&&"x-fern-examples"in l){let p=l["x-fern-examples"];if(Array.isArray(p)){for(let d of p)if(typeof d=="object"&&d!==null){let f=d;n.push({endpointPath:a,method:u.toUpperCase(),pathParameters:f["path-parameters"],queryParameters:f["query-parameters"],headers:f.headers,request:f.request,response:f.response})}}}}}t.logger.debug(`Parsed ${n.length} AI examples from ai_examples_override.yml`)}catch(i){t.logger.debug(`No existing ai_examples_override.yml found or error reading it: ${i}`)}return n}async function q7o({sourceFilePath:e,context:t}){let r=await a5m(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,rZn.readFile)(e,"utf-8");try{n=JSON.parse(u)}catch{n=vr.load(u)}}catch(u){return t.logger.warn(`Failed to read OpenAPI spec file: ${u}`),{validExamples:r,invalidExamples:[],totalExamples:r.length,validCount:r.length,invalidCount:0}}let i=new e_({logger:t.logger}),o=new Npe({namespace:void 0,generationLanguage:"typescript",logger:t.logger,smartCasing:!1,spec:n,exampleGenerationArgs:{disabled:!1},errorCollector:i,enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,settings:D7()}),s=new r6e({context:o}),{validExamples:a,invalidExamples:c}=s.validateAiExamples({aiExamples:r,spec:n});if(c.length>0){t.logger.info(`Found ${c.length} stale AI examples that need to be regenerated out of ${r.length} total`);for(let{example:u,validationResult:l}of c)t.logger.debug(`Stale AI example: ${u.method} ${u.endpointPath} - ${l.errors.map(p=>p.message).join(", ")}`)}return{validExamples:a,invalidExamples:c,totalExamples:r.length,validCount:a.length,invalidCount:c.length}}async function PJu({sourceFilePath:e,context:t}){let r=await q7o({sourceFilePath:e,context:t});if(r.invalidCount===0)return t.logger.debug("No invalid AI examples to remove"),{removedCount:0,remainingCount:r.totalExamples};let n=Vt.of(`${An(e)}/ai_examples_override.yml`);try{let i=await(0,rZn.readFile)(n,"utf-8"),o=vr.load(i);if(!o||!o.paths)return{removedCount:0,remainingCount:r.totalExamples};let s=new Set(r.invalidExamples.map(({example:u})=>`${u.method.toLowerCase()}:${u.endpointPath}`));for(let[u,l]of Object.entries(o.paths))if(l&&typeof l=="object"){for(let p of Object.keys(l)){let d=`${p.toLowerCase()}:${u}`;s.has(d)&&delete l[p]}Object.keys(l).length===0&&delete o.paths[u]}let{writeFile:a}=await import("fs/promises"),c=vr.dump(o,{indent:2,lineWidth:-1,noRefs:!0});return await a(n,c,"utf-8"),t.logger.info(`Removed ${r.invalidCount} invalid AI examples from ai_examples_override.yml`),{removedCount:r.invalidCount,remainingCount:r.validCount}}catch(i){return t.logger.warn(`Failed to remove invalid AI examples: ${i}`),{removedCount:0,remainingCount:r.totalExamples}}}var rZn,DJu=h(()=>{"use strict";Gp();Yt();yLr();ns();rZn=require("fs/promises");us()});async function G7o(e,t){let r=Vt.of(`${An(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,o8t.readFile)(r,"utf-8"),o=vr.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object")for(let u of Object.keys(c)){let l=`${u.toLowerCase()}:${a}`;n.add(l)}}t.logger.debug(`Loaded ${n.size} covered endpoints from ai_examples_override.yml`)}catch{t.logger.debug("No existing ai_examples_override.yml found or error reading it")}return n}async function nZn({enhancedExamples:e,sourceFilePath:t,context:r}){if(e.length===0){r.logger.debug("No enhanced examples to write");return}let n=new Map;for(let s of e){let a=n.get(s.endpoint)||[];a.push(s),n.set(s.endpoint,a)}let i={paths:{}};for(let[s,a]of n.entries()){let c=new Map;for(let u of a){let l=c.get(u.method.toLowerCase())||[];l.push(u),c.set(u.method.toLowerCase(),l)}i.paths[s]||(i.paths[s]={});for(let[u,l]of c.entries()){let p=l.map((f,m)=>{let g={},A={...f.pathParameters??{}},y={...f.queryParameters??{}},E={...f.headers??{}},v={...E};if(f.headerParameterNames)for(let M of f.headerParameterNames)M in v||(v[M]="");let I={};if(f.queryParameterNames)for(let M of f.queryParameterNames)I[M]=y[M]??"";let C={};if(f.pathParameterNames)for(let M of f.pathParameterNames)C[M]=A[M]??"";let w=f.requestBody;w!=null&&typeof w=="object"&&!Array.isArray(w)&&"body"in w&&(w=w.body);let T=PBe(w),P=T;if(T!==void 0){let{filteredBody:M,extractedPathParams:K,extractedQueryParams:Y,extractedHeaders:Z}=tZn(T,C,I,v);P=M;for(let[ae,le]of Object.entries(K))le!=null&&le!==""&&(A[ae]=le);for(let[ae,le]of Object.entries(Y))le!=null&&le!==""&&(y[ae]=le);for(let[ae,le]of Object.entries(Z))le!=null&&le!==""&&(E[ae]=le)}Object.keys(A).length>0&&(g["path-parameters"]=A),Object.keys(y).length>0&&(g["query-parameters"]=y),Object.keys(E).length>0&&(g.headers=E),P!==void 0&&!V7o(P)&&(g.request=P);let O=PBe(f.responseBody);return O!==void 0&&!V7o(O)&&(g.response={body:O}),g}),d=i.paths[s];d&&(d[u]={"x-fern-examples":p})}}let o=Vt.of(`${An(t)}/ai_examples_override.yml`);try{let s={};try{let u=await(0,o8t.readFile)(o,"utf-8"),l=vr.load(u);l&&typeof l=="object"&&(s=l)}catch{r.logger.debug("No existing ai_examples_override.yml found, creating new file")}let a={paths:{}};if(s.paths){for(let[u,l]of Object.entries(s.paths))if(l&&typeof l=="object"){a.paths[u]={};for(let[p,d]of Object.entries(l))d&&typeof d=="object"&&"x-fern-examples"in d&&(a.paths[u][p]={"x-fern-examples":d["x-fern-examples"]||[]})}}for(let[u,l]of Object.entries(i.paths)){a.paths[u]||(a.paths[u]={});for(let[p,d]of Object.entries(l))a.paths[u][p]?r.logger.debug(`Skipping ${p.toUpperCase()} ${u} - examples already exist in override file`):(a.paths[u][p]=d,r.logger.debug(`Adding new examples for ${p.toUpperCase()} ${u}`))}let c=vr.dump(a,{indent:2,lineWidth:-1,noRefs:!0});await(0,o8t.writeFile)(o,c,"utf-8"),r.logger.debug(`AI enhanced examples written to: ${o}`)}catch(s){throw r.logger.warn(`Failed to write AI examples override file: ${s}`),s}}var o8t,RJu=h(()=>{"use strict";Yt();o8t=require("fs/promises");us();_7o()});function c5m(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=VJe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function u5m(e,t){let r=e[0];if(r==null)return{openapi:"3.0.0",info:{title:"",version:""},paths:{}};let n={...r};n.paths={...n.paths},n.components&&(n.components={...n.components},n.components.schemas&&(n.components.schemas={...n.components.schemas}));for(let i of e.slice(1)){if(i.paths)for(let[o,s]of Object.entries(i.paths))n.paths[o]==null&&(n.paths[o]=s);if(i.components?.schemas){n.components||(n.components={}),n.components.schemas||(n.components.schemas={});for(let[o,s]of Object.entries(i.components.schemas))n.components.schemas[o]==null&&(n.components.schemas[o]=s)}}return t.logger.debug(`Combined spec has ${Object.keys(n.paths??{}).length} paths`),n}function jJu(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}function K7o(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=jJu(t,o);if(!s)return[];let a=i.paths[s];if(!a)return[];let c=a[r.toLowerCase()];if(!c)return[];let u=[],l=[...a.parameters??[],...c.parameters??[]];for(let p of l)"$ref"in p||p.in===n&&u.push(p.name);return u}catch{return[]}}function l5m(e,t,r){return K7o(e,t,r,"header")}function p5m(e,t,r){return K7o(e,t,r,"query")}function f5m(e,t,r){return K7o(e,t,r,"path")}async function d5m(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=VJe(e)}if(!n.openapi||!n.paths){r.logger.debug("Invalid OpenAPI spec structure, skipping pruning");return}let i=Object.keys(n.paths);r.logger.debug(`OpenAPI spec contains ${i.length} paths`);let o=[];for(let p of t){let d=jJu(p.path,i);d?(o.push({path:d,method:p.method.toLowerCase()}),r.logger.debug(`Mapped ${p.path} to OpenAPI path: ${d}`)):r.logger.debug(`No matching OpenAPI path found for ${p.path}`)}if(o.length===0){r.logger.debug("No endpoints matched in OpenAPI spec");return}let a=new i8t({document:n,endpoints:o}).prune();r.logger.debug(`Pruned OpenAPI spec for batch: ${a.statistics.originalEndpoints} \u2192 ${a.statistics.prunedEndpoints} endpoints, ${a.statistics.originalSchemas} \u2192 ${a.statistics.prunedSchemas} schemas`);let c=JSON.stringify(a.document,null,2);if(c.length>15e5){r.logger.debug(`Pruned OpenAPI spec still too large (${c.length} characters), skipping spec context for AI enhancement`);return}r.logger.debug(`Pruned spec size: ${c.length} characters (within limit)`);let u=o.map(p=>`${(p.method||"unknown").toUpperCase()}_${p.path.replace(/\//g,"_").replace(/[{}]/g,"")}`),l=`batch_${o.length}endpoints_${u.join("_").substring(0,100)}_pruned_spec.yaml`;return c}catch(n){return r.logger.debug(`Failed to prune OpenAPI spec: ${n}. Using original spec.`),e}}async function Eyt(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await m5m(e,t,r,n,i,o,s)}catch(a){return r.logger.debug(`AI example enhancement failed with error: ${a}. Continuing with original API definition to prevent CLI crash.`),r.logger.debug(`Full AI enhancement error stack: ${a instanceof Error?a.stack:String(a)}`),e}}async function m5m(e,t,r,n,i,o,s){let a=new eZn(t,r,n,i),c=new W7o,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let y=[];for(let E of o)try{let v=await(0,iZn.readFile)(E.absoluteFilePath,"utf-8");if(E.absoluteFilePathToOverrides!=null){let C=Array.isArray(E.absoluteFilePathToOverrides)?E.absoluteFilePathToOverrides:[E.absoluteFilePathToOverrides];try{let w;try{w=JSON.parse(v)}catch{w=VJe(v,{json:!0})}for(let T of C){let P=await(0,iZn.readFile)(T,"utf-8"),O;try{O=JSON.parse(P)}catch{O=VJe(P,{json:!0})}w=J4({data:w,overrides:O})}v=WFt(w),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(w){r.logger.debug(`Failed to apply overrides to spec: ${w}. Using raw spec.`)}}if(!c5m(v)){r.logger.debug(`Non-OpenAPI spec detected at ${E.absoluteFilePath}, skipping`);continue}let I;try{I=JSON.parse(v)}catch{I=VJe(v)}y.push(I),r.logger.debug(`Loaded OpenAPI spec from ${E.absoluteFilePath} (${v.length} characters)`)}catch(v){r.logger.debug(`Failed to read OpenAPI spec file ${E.absoluteFilePath}: ${v}`)}if(y.length>0){let E=u5m(y,r);u=JSON.stringify(E,null,2),r.logger.debug(`Combined ${y.length} OpenAPI spec(s) for AI enhancement`)}for(let E of o)try{let v=await G7o(E.absoluteFilePath,r),I=await q7o({sourceFilePath:E.absoluteFilePath,context:r});if(I.invalidCount>0){for(let{example:w}of I.invalidExamples){let T=`${w.method.toLowerCase()}:${w.endpointPath}`;l.add(T)}let C=await PJu({sourceFilePath:E.absoluteFilePath,context:r});r.logger.info(`Removed ${C.removedCount} stale AI examples from ${E.absoluteFilePath}, ${l.size} endpoints will be regenerated`)}else r.logger.debug("No stale AI examples found to remove")}catch(v){r.logger.debug(`Failed to clean up stale AI examples: ${v}`)}}let d=new Set;if(o!=null&&o.length>0){for(let y of o){let E=await G7o(y.absoluteFilePath,r);for(let v of E)l.has(v)||d.add(v)}l.size>0&&r.logger.debug(`Coverage adjusted: ${d.size} preserved, ${l.size} marked for regeneration`)}let f={count:0,total:0},m=[],g=await h5m(e,a,r,i,f,m,d,l,u,p,s,c);if(m.length>0&&p!=null)try{await nZn({enhancedExamples:m,sourceFilePath:p,context:r})}catch(y){r.logger.debug(`Failed to write AI examples override file: ${y}`)}let A=QJu(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${A}, Enhanced: ${f.count}/${f.total}, Covered: ${d.size}`),g}async function h5m(e,t,r,n,i,o,s,a,c,u,l,p){let d=[];for(let[C,w]of Object.entries(e.subpackages)){let T=FJu(w,s,a,r);d.push(...T.map(P=>({...P,packageId:C})))}let f=FJu(e.rootPackage,s,a,r);d.push(...f.map(C=>({...C,packageId:"root"})));let m=QJu(e);i.total+=d.length,r.logger.debug(`AI Examples Enhancement: ${d.length} endpoints need enhancement out of ${m} total endpoints (${s.size} already covered)`),r.logger.debug(`Collected ${d.length} work items across all packages`);let g=yyt.getInstance(),A=g.create(l||"API",d.length),y={count:0,total:d.length},E=await g5m(d,t,r,n,i,o,c,u,A,y,p);g.finish(A);let v={};for(let[C,w]of Object.entries(e.subpackages)){let T=kJu(w,E);v[C]=T}let I=kJu(e.rootPackage,E);return r.logger.debug(`AI Examples Enhancement Complete: ${y?.count||0}/${d.length} endpoints enhanced successfully (${m} total endpoints in API)`),{...e,subpackages:v,rootPackage:I}}function QJu(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function FJu(e,t,r,n){let i=[],o=new Set,s={totalEndpoints:e.endpoints.length,alreadyCovered:0,notAutogenerated:0,noExistingExamples:0,alreadyProcessed:0,noExamples:0,processed:0};for(let a of e.endpoints){let c=a;if(!b5m(c))for(let l of c.examples){let p=`${c.method.toLowerCase()}:${l.path}`;if(o.has(p)){s.alreadyProcessed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already processed in this run`);continue}let d=r?.has(p);if(!d&&t.has(p)){s.alreadyCovered++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already covered (has AI-enhanced examples)`);continue}if(!d&&!y5m(l,n,p)){s.notAutogenerated++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: has human-written examples (not auto-generated)`);continue}let f=byt(l.requestBodyV3),m=byt(l.responseBodyV3);if(!d&&!f&&!m){s.noExistingExamples++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: no existing request/response examples to enhance`);continue}i.push({endpoint:c,example:l,endpointKey:p}),s.processed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} selected for AI enhancement`),o.add(p);break}}return n&&(n.logger.debug(`Endpoint Filtering Results: ${s.processed}/${s.totalEndpoints} endpoints selected for AI enhancement`),n.logger.debug(`Filtering breakdown - Already covered: ${s.alreadyCovered}, Not auto-generated: ${s.notAutogenerated}, No existing examples: ${s.noExistingExamples}, No examples at all: ${s.noExamples}, Already processed: ${s.alreadyProcessed}, Selected: ${s.processed}`)),i}async function g5m(e,t,r,n,i,o,s,a,c,u,l){let p=parseInt(process.env.FERN_AI_MAX_CONCURRENT||"25",10);if(r.logger.debug(`Processing ${e.length} endpoints with max ${p} concurrent FAI calls using rolling window queue`),l?.shouldSkip())return r.logger.debug(`Circuit breaker is open after ${l.getFailureCount()} failures (threshold: ${l.getThreshold()}). Skipping AI enhancement for remaining endpoints.`),new Map;let d=0,f=0,m=Math.max(10,Math.floor(e.length/20)),g=(I,C)=>{if(c&&u&&yyt.getInstance().update(c,I.completed),l?.shouldSkip()){r.logger.debug(`Circuit breaker opened during processing. Processed ${I.completed} endpoints.`);return}a&&o.length>0&&I.completed-f>=m&&(nZn({enhancedExamples:o,sourceFilePath:a,context:r}).then(()=>{r.logger.debug(`Saved ${o.length} examples after ${I.completed} completions`)}).catch(T=>{r.logger.debug(`Failed to save incremental results: ${T}`)}),f=I.completed)},A=e.map((I,C)=>async()=>{try{if(l?.shouldSkip())return{endpointKey:I.endpointKey,success:!1,error:"Circuit breaker is open"};let w=await A5m(I,t,r,n,i,o,s,a,c,u,C+1,l);return w?{endpointKey:w.endpointKey,enhancedReq:w.enhancedReq,enhancedRes:w.enhancedRes,extractedHeaders:w.extractedHeaders,extractedPathParams:w.extractedPathParams,extractedQueryParams:w.extractedQueryParams,success:!0}:{endpointKey:I.endpointKey,success:!1,error:"processEndpoint returned null"}}catch(w){return r.logger.debug(`Work item factory error for ${I.endpointKey}: ${w}`),{endpointKey:I.endpointKey,success:!1,error:String(w)}}}),y=new H7o(p,g),E=await y.processAll(A);if(a&&o.length>0)try{await nZn({enhancedExamples:o,sourceFilePath:a,context:r}),r.logger.debug(`Final save: ${o.length} examples saved`)}catch(I){r.logger.debug(`Failed to save final results: ${I}`)}let v=y.getStats();return r.logger.debug(`Completed processing: ${v.completed} succeeded, ${v.failed} failed`),E}async function A5m(e,t,r,n,i,o,s,a,c,u,l,p){let d=e.endpointKey;r.logger.debug(`Processing endpoint ${l}: ${e.endpoint.method} ${e.example.path}`);let f;if(s&&(f=await d5m(s,[{path:e.example.path,method:e.endpoint.method}],r),f!=null&&f.length>4e4))return r.logger.debug(`Skipping AI enhancement for ${e.endpoint.method} ${e.example.path}: pruned OpenAPI spec is ${f.length} characters (>40k limit)`),null;let m={method:e.endpoint.method,endpointPath:e.example.path,organizationId:n,operationSummary:e.endpoint.summary,operationDescription:e.endpoint.description,originalRequestExample:byt(e.example.requestBodyV3),originalResponseExample:byt(e.example.responseBodyV3),pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,openApiSpec:f};try{let g=await t.enhanceExample(m);if(p?.recordSuccess(),g.enhancedRequestExample!=null&&m.originalRequestExample!=null){let E=I5m(g.enhancedRequestExample),v=E5m(m.originalRequestExample,"body");E.wasWrapped&&!v?g.enhancedRequestExample=NJu(E.inner,m.originalRequestExample):g.enhancedRequestExample=NJu(g.enhancedRequestExample,m.originalRequestExample)}let A=g.enhancedRequestExample!==m.originalRequestExample,y=g.enhancedResponseExample!==m.originalResponseExample;if(A||y){let E=f?l5m(f,e.example.path,e.endpoint.method):[],v=f?p5m(f,e.example.path,e.endpoint.method):[],I=f?f5m(f,e.example.path,e.endpoint.method):[],C={...e.example.headers??{}};if(E.length>0)for(let ce of E)ce in C||(C[ce]="");let w={};for(let ce of v)w[ce]=e.example.queryParameters?.[ce]??"";let T={};for(let ce of I)T[ce]=e.example.pathParameters?.[ce]??"";let P=PBe(g.enhancedRequestExample),{filteredBody:O,extractedPathParams:M,extractedQueryParams:K,extractedHeaders:Y}=tZn(P,T,w,C),Z={...e.example.headers??{}};for(let[ce,Te]of Object.entries(Y))Te!=null&&Te!==""&&(Z[ce]=Te);let ae={...e.example.pathParameters??{}};for(let[ce,Te]of Object.entries(M))Te!=null&&Te!==""&&(ae[ce]=Te);let le={...e.example.queryParameters??{}};for(let[ce,Te]of Object.entries(K))Te!=null&&Te!==""&&(le[ce]=Te);let oe={endpoint:e.example.path,method:e.endpoint.method,pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,requestBody:A?g.enhancedRequestExample:void 0,responseBody:y?g.enhancedResponseExample:void 0,headerParameterNames:E.length>0?E:void 0,queryParameterNames:v.length>0?v:void 0,pathParameterNames:I.length>0?I:void 0};return o.push(oe),i.count++,u&&u.count++,r.logger.debug(`Successfully enhanced ${e.endpoint.method} ${e.example.path}`),c&&u&&yyt.getInstance().update(c,u.count),{endpointKey:d,enhancedReq:O,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys(Z).length>0?Z:void 0,extractedPathParams:Object.keys(ae).length>0?ae:void 0,extractedQueryParams:Object.keys(le).length>0?le:void 0}}return r.logger.debug(`No changes needed for ${e.endpoint.method} ${e.example.path}`),{endpointKey:d,enhancedReq:g.enhancedRequestExample,enhancedRes:g.enhancedResponseExample}}catch(g){p?.recordFailure(),r.logger.debug(`Endpoint ${e.endpoint.method} ${e.example.path} failed: ${g}`)}return r.logger.debug(`Failed to enhance ${e.endpoint.method} ${e.example.path}`),null}function kJu(e,t){let r=e.endpoints.map(n=>{let i=n,o=i.examples.map(s=>{let a=`${i.method.toLowerCase()}:${s.path}`,c=t.get(a);if(c){let u={...s};if(c.enhancedReq!==void 0)if(u.requestBody=c.enhancedReq,s.requestBodyV3)if(typeof s.requestBodyV3.value=="object"&&s.requestBodyV3.value!==null&&!Array.isArray(s.requestBodyV3.value)&&Object.values(s.requestBodyV3.value).some(p=>U7o(p))){let p=c.enhancedReq,d=s.requestBodyV3.value,f={};for(let[m,g]of Object.entries(d))m in p?f[m]={...g,value:p[m]}:f[m]=g;u.requestBodyV3={...s.requestBodyV3,value:f}}else u.requestBodyV3={...s.requestBodyV3,value:c.enhancedReq};else u.requestBodyV3={type:"json",value:c.enhancedReq};return c.enhancedRes!==void 0&&(u.responseBody=c.enhancedRes,u.responseBodyV3=s.responseBodyV3?{...s.responseBodyV3,value:c.enhancedRes}:{type:"json",value:c.enhancedRes}),c.extractedHeaders!==void 0&&(u.headers={...s.headers??{},...c.extractedHeaders}),c.extractedPathParams!==void 0&&(u.pathParameters={...s.pathParameters??{},...c.extractedPathParams}),c.extractedQueryParams!==void 0&&(u.queryParameters={...s.queryParameters??{},...c.extractedQueryParams}),u}return s});return{...n,examples:o}});return{...e,endpoints:r}}function y5m(e,t,r){let i=byt(e.requestBodyV3),o=byt(e.responseBodyV3),s=oZn(i,t,`${r}:request`),a=oZn(o,t,`${r}:response`),c=s.total+a.total,u=s.autogenerated+a.autogenerated;if(c===0)return!0;let l=u/c,p=l>=.3;return t&&r&&(p?t.logger.debug(`Endpoint ${r} considered auto-generated: ${u}/${c} (${(l*100).toFixed(1)}%) values are generic`):t.logger.debug(`Endpoint ${r} flagged as human-written: only ${u}/${c} (${(l*100).toFixed(1)}%) values are generic (threshold: ${.3*100}%)`)),p}function oZn(e,t,r){if(e==null)return{autogenerated:0,total:0};if(typeof e=="string"){let n=e===Pi.STRING||e===Pi.BASE64||e===Pi.DATE||e===Pi.DATE_TIME||e===Pi.UUID||e===Pi.BIG_INTEGER||Pi.SAMPLE_STRINGS.includes(e)||e==="";return!n&&t&&r&&t.logger.debug(`Non-generic string found at ${r}: "${e}"`),{autogenerated:n?1:0,total:1}}if(typeof e=="number"){let n=e===Pi.DOUBLE||e===Pi.FLOAT||e===Pi.INT||e===Pi.INT64||e===Pi.UINT||e===Pi.UINT64||e===0;return!n&&t&&r&&t.logger.debug(`Non-generic number found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(typeof e=="boolean"){let n=e===Pi.BOOLEAN;return!n&&t&&r&&t.logger.debug(`Non-generic boolean found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(Array.isArray(e)){if(e.length===0)return{autogenerated:0,total:0};let n=0,i=0;return e.forEach((o,s)=>{let a=oZn(o,t,r?`${r}[${s}]`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}if(typeof e=="object"){let n=0,i=0;return Object.entries(e).forEach(([o,s])=>{let a=oZn(s,t,r?`${r}.${o}`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}return t&&r&&t.logger.debug(`Unknown type at ${r}: ${typeof e} = ${e}`),{autogenerated:0,total:1}}function b5m(e){try{let t=e;if(t.v2Examples?.userSpecifiedExamples&&typeof t.v2Examples.userSpecifiedExamples=="object"){let r=t.v2Examples.userSpecifiedExamples;return Object.keys(r).length>0}if(t.v2Responses?.responses){for(let r of t.v2Responses.responses)if(r.body?.v2Examples?.userSpecifiedExamples&&typeof r.body.v2Examples.userSpecifiedExamples=="object"){let n=r.body.v2Examples.userSpecifiedExamples;if(Object.keys(n).length>0)return!0}}return!1}catch{return!1}}function byt(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}function E5m(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&t in e}function I5m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"body"in e?{wasWrapped:!0,inner:e.body}:{wasWrapped:!1,inner:e}}function NJu(e,t){if(typeof e!="object"||e===null||typeof t!="object"||t===null||Array.isArray(e)||Array.isArray(t))return e;let r=e,n=t,i=!1;for(let s of Object.keys(n))if(!(s in r)){i=!0;break}if(!i)return e;let o={...r};for(let[s,a]of Object.entries(n))s in o||(o[s]=a);return o}var iZn,W7o,H7o,zJu=h(()=>{"use strict";Dt();TJu();iZn=require("fs/promises");us();OJu();_7o();BJu();DJu();RJu();W7o=class{failureCount=0;failureThreshold=30;isOpen=!1;recordFailure(){this.failureCount++,this.failureCount>=this.failureThreshold&&(this.isOpen=!0)}recordSuccess(){this.failureCount=0,this.isOpen=!1}shouldSkip(){return this.isOpen}getFailureCount(){return this.failureCount}getThreshold(){return this.failureThreshold}},H7o=class{progressCallback;maxConcurrency;activeRequests=new Map;pendingQueue=[];results=new Map;stats={pending:0,active:0,completed:0,failed:0,totalStarted:0};completedSinceLastCallback=[];constructor(t,r){this.progressCallback=r,this.maxConcurrency=t}async processAll(t){for(this.pendingQueue=[...t],this.stats.pending=this.pendingQueue.length,this.stats.totalStarted=this.pendingQueue.length;this.pendingQueue.length>0&&this.activeRequests.size<this.maxConcurrency;)this.startNext();for(;this.activeRequests.size>0;){let r=Array.from(this.activeRequests.entries()).map(([o,s])=>s.promise.then(a=>({id:o,result:a}))),{id:n,result:i}=await Promise.race(r);await this.handleCompletion(n,i),this.pendingQueue.length>0&&this.startNext()}return this.results}startNext(){if(this.pendingQueue.length===0||this.activeRequests.size>=this.maxConcurrency)return;let t=this.pendingQueue.shift();if(!t)return;let r=`req-${Date.now()}-${Math.random()}`,n=t(),i={id:r,promise:n,startTime:Date.now()};this.activeRequests.set(r,i),this.stats.pending=this.pendingQueue.length,this.stats.active=this.activeRequests.size}async handleCompletion(t,r){this.activeRequests.get(t)&&this.activeRequests.delete(t),r.success?(this.stats.completed++,this.results.set(r.endpointKey,{enhancedReq:r.enhancedReq,enhancedRes:r.enhancedRes,extractedHeaders:r.extractedHeaders,extractedPathParams:r.extractedPathParams,extractedQueryParams:r.extractedQueryParams})):this.stats.failed++,this.stats.active=this.activeRequests.size,this.completedSinceLastCallback.push(r),this.progressCallback&&(this.progressCallback({...this.stats},[...this.completedSinceLastCallback]),this.completedSinceLastCallback=[])}getStats(){return{...this.stats}}}});var J7o=h(()=>{"use strict";zJu()});function sZn(e){return typeof e=="string"?e:e.name}function DBe(e){if(e!=null)return typeof e=="string"?e:e.originalName}var Iyt=h(()=>{"use strict";tc()});function MJu({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return LJu({scheme:n,playgroundConfig:t,context:r})}}function LJu({scheme:e,playgroundConfig:t,context:r}){switch(e.type){case"basic":return{type:"basicAuth",passwordName:Lr(e.password),usernameName:Lr(e.username),description:e.docs,passwordAlwaysEmpty:e.passwordOmit};case"bearer":return{type:"bearerAuth",tokenName:Lr(e.token),description:e.docs};case"header":return{type:"header",headerWireValue:nr(e.name),nameOverride:Lr(sZn(e.name)),prefix:e.prefix,description:e.docs};case"oauth":{let n=e.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(i=>Lr(i.name)).join(".")||"$.body.access_token";return t?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:cn.EndpointId(e.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:n,headerName:e.configuration.tokenHeader,tokenPrefix:e.configuration.tokenPrefix,description:e.docs}}}:{type:"bearerAuth",tokenName:"token",description:e.docs}}case"inferred":{e.tokenEndpoint.authenticatedRequestHeaders.length>1&&r.logger.warn("Inferred auth scheme has multiple authenticated request headers. Only the `Authentication` or first header will be pushed to FDR.");let n=e.tokenEndpoint.authenticatedRequestHeaders.find(o=>o.headerName.toLowerCase()==="authorization");if(n)return n.responseProperty.propertyPath!=null&&n.responseProperty.propertyPath.length>0&&r.logger.warn("Inferred Authentication header has a property path. The property wirevalue will be pushed to FDR without property path."),{type:"bearerAuth",tokenName:nr(n.responseProperty.property.name),description:e.docs};let i=e.tokenEndpoint.authenticatedRequestHeaders[0];return i?{type:"header",headerWireValue:i.headerName,prefix:i.valuePrefix,nameOverride:void 0,description:e.docs}:{type:"bearerAuth",tokenName:"token",description:e.docs}}default:ve(e)}}function UJu({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=LJu({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[cn.AuthSchemeId(i.key)]=o)}return n}var VJu=h(()=>{"use strict";Dt();zm();Iyt()});function qJu(e){return e._visit({alias:t=>({type:"alias",value:Kp(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?nr(t.default.name):void 0,values:t.values.map(r=>({description:r.docs??void 0,value:nr(r.name),availability:zb(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>cn.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:cn.PropertyKey(nr(r.name)),valueType:Kp(r.valueType,r.defaultValue),availability:zb(r.availability),propertyAccess:r.propertyAccess})),extraProperties:T5m(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),description:n.docs,propertyAccess:n.propertyAccess}));return{type:"discriminatedUnion",discriminant:nr(t.discriminant),variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:nr(n.discriminantValue),displayName:n.displayName,availability:n.availability!=null?zb(n.availability):void 0,additionalProperties:rr.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[cn.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:cn.PropertyKey(nr(i.name)),valueType:Kp(i.type),description:void 0,availability:void 0,propertyAccess:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new B({message:"Unknown SingleUnionTypeProperties: "+n.shape.propertiesType,code:B.Code.InternalError})}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?Lr(r.type.name):void 0,description:r.docs??void 0,type:Kp(r.type),availability:void 0,displayName:r.type.type==="named"?r.type.displayName:void 0}))}),_other:()=>{throw new B({message:"Unknown Type shape: "+e.type,code:B.Code.InternalError})}})}function Kp(e,t){return e._visit({container:r=>rr.types.ContainerType._visit(r,{list:n=>({type:"list",itemType:Kp(n),minItems:void 0,maxItems:void 0}),map:({keyType:n,valueType:i})=>({type:"map",keyType:Kp(n),valueType:Kp(i),minProperties:void 0,maxProperties:void 0}),optional:n=>({type:"optional",itemType:Kp(n),defaultValue:t}),nullable:n=>({type:"nullable",itemType:Kp(n)}),set:n=>({type:"set",itemType:Kp(n),minItems:void 0,maxItems:void 0}),literal:n=>rr.types.Literal._visit(n,{boolean:i=>({type:"literal",value:{type:"booleanLiteral",value:i}}),string:i=>({type:"literal",value:{type:"stringLiteral",value:i}}),_other:()=>{throw new B({message:"Unknown literal type: "+n.type,code:B.Code.InternalError})}}),_other:()=>{throw new B({message:"Unknown container reference: "+r.type,code:B.Code.InternalError})}}),named:r=>({type:"id",value:cn.TypeId(r.typeId),default:void 0}),primitive:r=>({type:"primitive",value:rr.types.PrimitiveTypeV1._visit(r.v1,{integer:()=>x5m(r.v2),float:()=>_Ju(r.v2),double:()=>_Ju(r.v2),string:()=>v5m(r.v2),long:()=>C5m(r.v2),boolean:()=>({type:"boolean",default:r.v2?.type==="boolean"?r.v2.default:void 0}),dateTime:()=>({type:"datetime",default:void 0}),date:()=>({type:"date",default:void 0}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",mimeType:void 0,default:void 0}),bigInteger:()=>({type:"bigInteger",default:r.v2?.type==="bigInteger"?r.v2.default:void 0}),uint:()=>w5m(r.v2),uint64:()=>S5m(r.v2),dateTimeRfc2822:()=>({type:"datetime",default:void 0}),_other:()=>{throw new B({message:"Unknown primitive: "+r.v1,code:B.Code.InternalError})}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new B({message:"Unknown Type reference: "+e.type,code:B.Code.InternalError})}})}function v5m(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",format:t?.format,regex:t?.pattern,minLength:t?.minLength,maxLength:t?.maxLength,default:e!=null&&e.type==="string"?e.default:void 0}}function x5m(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="integer"?e.default:void 0}}function _Ju(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="double"?e.default:void 0}}function C5m(e){let t=e!=null&&e.type==="long"?e.validation:void 0;return{type:"long",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="long"?e.default:void 0}}function w5m(e){let t=e!=null&&e.type==="uint"?e.validation:void 0;return{type:"uint",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint"?e.default:void 0}}function S5m(e){let t=e!=null&&e.type==="uint64"?e.validation:void 0;return{type:"uint64",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint64"?e.default:void 0}}function T5m(e){return typeof e=="boolean"?e?Ur.unknown():void 0:typeof e=="string"?{type:"id",value:cn.TypeId(e),default:void 0}:Kp(e)}var Y7o=h(()=>{"use strict";zm();Mn();jt();X7o();Iyt()});function eWo(e,t,r,n){let i=e.service!=null?t.services[e.service]:void 0,o=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,s=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:i!=null?B5m(i,t):[],webhooks:o!=null?O5m(o):[],websockets:s!=null?[D5m(s,t)]:[],types:[...e.types.map(c=>cn.TypeId(c)),...Object.keys(n??{}).map(c=>cn.TypeId(c))],subpackages:e.subpackages.map(c=>cn.SubpackageId(c)),pointsTo:e.navigationConfig!=null?cn.SubpackageId(e.navigationConfig.pointsTo):void 0,graphqlOperations:r?Object.values(r):[]}}function O5m(e){return e.map(t=>{let r=[];if(t.v2Examples!=null){for(let[n,i]of Object.entries(t.v2Examples.userSpecifiedExamples))r.push({name:i.name??n,payload:i.payload});for(let[n,i]of Object.entries(t.v2Examples.autogeneratedExamples))r.push({name:i.name??n,payload:i.payload})}else r.push(...t.examples?.map(n=>({name:DBe(n.name),payload:n.payload.jsonExample}))??[]);return{description:t.docs??void 0,availability:zb(t.availability),id:cn.WebhookId(Lr(t.name)),path:[],method:t.method,name:t.displayName??Lke(Lr(t.name)),headers:t.headers.map(n=>({description:n.docs??void 0,key:nr(n.name),type:Kp(n.valueType,n.defaultValue),availability:zb(n.availability)})),payload:L5m(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map($7o).filter(Oa)}})}function B5m(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],o=[];if(n.v2Examples!=null){let a,c=n.v2Examples.userSpecifiedExamples,u=n.v2Examples.autogeneratedExamples,l=Object.values(c).map(d=>d.response?.statusCode).filter((d,f,m)=>m.indexOf(d)!==f).length>0;for(let[d,f]of Object.entries(c))a=WJu({shouldUseExampleName:f.displayName!=null||l,exampleName:f.displayName??d,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a);let p=Object.values(u).map(d=>d.response?.statusCode).filter((d,f,m)=>m.indexOf(d)!==f).length>0;for(let[d,f]of Object.entries(u))a=WJu({shouldUseExampleName:p,exampleName:f.displayName??d,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a)}else if(n.userSpecifiedExamples.length>0)o.push(...n.userSpecifiedExamples.map(a=>Z7o({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(Oa));else if(i!=null){let a=Z7o({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=Q$e({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=Z7o({autogeneratedExample:a,irEndpoint:n,ir:t});if(c!=null){let u={...c,responseBodyV3:{type:"filename",value:"<bytes>"}};o.push(u)}}}let s={slug:void 0,availability:zb(n.availability??e.availability),auth:n.auth,authV2:R5m(n.security),multiAuth:F5m(n.security,t.auth),description:n.docs??void 0,method:Q5m(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?cn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?k5m({environmentsConfig:t.environments,endpoint:n}):void 0,id:cn.EndpointId(Lr(n.name)),originalEndpointId:n.id,name:n.displayName??Lke(Lr(n.name)),path:n.basePath!=null?{pathParameters:n.pathParameters.map(a=>({description:a.docs??void 0,key:cn.PropertyKey(Lr(a.name)),type:Kp(a.valueType),availability:void 0,explode:a.explode})),parts:[...vyt(n.basePath),...vyt(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(a=>({description:a.docs??void 0,key:cn.PropertyKey(Lr(a.name)),type:Kp(a.valueType),availability:void 0,explode:a.explode})),parts:[...t.basePath!=null?vyt(t.basePath):[],...vyt(e.basePath),...vyt(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability),explode:a.explode})),headers:[...e.headers,...n.headers].map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability)})),request:n.requestBody!=null?GJu(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(GJu).filter(Oa)},response:n.response!=null?$7o(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map($7o).filter(Oa)},errors:void 0,errorsV2:z5m(n.errors,t),examples:o,protocol:n.source?._visit({openapi:()=>({type:"rest"}),openrpc:()=>({type:"openrpc",methodName:n.id}),proto:a=>({type:"grpc",methodName:n.id,methodType:a.methodType}),_other:()=>{}}),includeInApiExplorer:n.apiPlayground,subtitle:n.subtitle??void 0};P5m(s,n),r.push(s)}return r}function P5m(e,t){let r=t.v2Examples?.userSpecifiedExamples;if(r==null||Object.keys(r).length===0)return;let n=e;n.v2Examples={userSpecifiedExamples:r,autogeneratedExamples:{}}}function D5m(e,t){let r=[];if(e.v2Examples!=null&&(Object.keys(e.v2Examples.userSpecifiedExamples).length>0||Object.keys(e.v2Examples.autogeneratedExamples).length>0)){let n=Object.entries(e.v2Examples.userSpecifiedExamples),i=Object.entries(e.v2Examples.autogeneratedExamples),o=n.length>0?n[0]:i[0];if(o!=null){let[s,a]=o;r.push({name:s,description:"",path:a.baseUrl??"",pathParameters:a.pathParameters??{},queryParameters:a.queryParameters??{},headers:a.headers??{},messages:a.messages?.map(c=>({type:cn.WebSocketMessageId(c.type),body:c.body}))??[]})}}else r=e.examples.map(n=>({name:DBe(n.name),description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((i,o)=>(i[cn.PropertyKey(Lr(o.name))]=o.value.jsonExample,i),{}),queryParameters:n.queryParameters.reduce((i,o)=>(i[nr(o.name)]=o.value.jsonExample,i),{}),headers:n.headers.reduce((i,o)=>(i[nr(o.name)]=o.value.jsonExample,i),{}),messages:n.messages.map(i=>({type:cn.WebSocketMessageId(i.type),body:i.body.jsonExample}))}));return{auth:e.auth,availability:zb(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?cn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?N5m({environmentsConfig:t.environments,channel:e}):[],id:cn.WebSocketId(Lr(e.name)),name:e.displayName??Lke(Lr(e.name)),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:cn.PropertyKey(Lr(n.name)),type:Kp(n.valueType),availability:void 0,explode:n.explode})),parts:vyt(e.path)},headers:e.headers.map(n=>({key:nr(n.name),type:Kp(n.valueType,n.defaultValue),description:n.docs,availability:zb(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:nr(n.name),type:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:cn.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:V5m(n.body),description:n.docs,availability:zb(n.availability)})),examples:r}}function R5m(e){if(e==null)return;if(e.length===0)return[];let t=new Set(e.flatMap(r=>Object.keys(r)));return Array.from(t).map(r=>cn.AuthSchemeId(r))}function F5m(e,t){return e==null?t!=null&&t.requirement==="ANY"&&t.schemes.length>0?t.schemes.map(r=>({schemes:[cn.AuthSchemeId(r.key)]})):void 0:e.length===0?[]:e.map(r=>({schemes:Object.keys(r).map(n=>cn.AuthSchemeId(n))}))}function zb(e){if(e!=null)switch(e.status){case"DEPRECATED":return cn.Availability.Deprecated;case"LEGACY":return cn.Availability.Legacy;case"PRE_RELEASE":case"BETA":return cn.Availability.Beta;case"GENERAL_AVAILABILITY":return cn.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return cn.Availability.Beta;case"ALPHA":return cn.Availability.Alpha;case"PREVIEW":return cn.Availability.Preview;default:ve(e.status)}}function k5m({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl,i=t.v2BaseUrls;switch(r.type){case"singleBaseUrl":return r.environments.map(o=>({id:cn.EnvironmentId(o.id),baseUrl:o.url,audiences:o.audiences}));case"multipleBaseUrls":if(i!=null)return i.flatMap(s=>r.environments.map(a=>{let c=a.urls[s];if(c==null)throw new B({message:`Encountered undefined server name "${s}" at endpoint ${t.method.toUpperCase()} ${t.path}. Expected environment ${a.id} to contain url for ${s}`,code:B.Code.ValidationError});return{id:cn.EnvironmentId(s),baseUrl:c,audiences:a.audiences}})).filter((s,a,c)=>a===c.findIndex(u=>u.id===s.id&&u.baseUrl===s.baseUrl));if(n==null)throw new B({message:`Expected endpoint ${Lr(t.name)} to have base url.`,code:B.Code.IrConversionError});return r.environments.map(o=>{let s=o.urls[n];if(s==null)throw new B({message:`Encountered undefined server name "${n}" at endpoint ${t.method.toUpperCase()} ${t.path.head}. Expected environment ${o.id} to contain url for ${n}`,code:B.Code.ValidationError});return{id:cn.EnvironmentId(o.id),baseUrl:s,audiences:o.audiences}});default:ve(r)}}function N5m({environmentsConfig:e,channel:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:cn.EnvironmentId(i.id),baseUrl:j5m(i.url,"wss"),audiences:i.audiences}));case"multipleBaseUrls":if(n==null)throw new B({message:`Expected channel ${Lr(t.name)} to have base url.`,code:B.Code.IrConversionError});return r.environments.map(i=>{let o=i.urls[n];if(o==null)throw new B({message:`Encountered undefined server name ${o} at channel ${Lr(t.name)} ${t.path.head}. Expected environment ${i.id} to contain url for ${n}`,code:B.Code.IrConversionError});return{id:cn.EnvironmentId(i.id),baseUrl:o,audiences:i.audiences}});default:ve(r)}}function j5m(e,t){return e.replace(/^[^:]+/,t)}function Q5m(e){return rr.http.HttpMethod._visit(e,{get:()=>cn.HttpMethod.Get,post:()=>cn.HttpMethod.Post,put:()=>cn.HttpMethod.Put,patch:()=>cn.HttpMethod.Patch,delete:()=>cn.HttpMethod.Delete,head:()=>cn.HttpMethod.Head,_other:()=>{throw new B({message:"Unknown http method: "+e,code:B.Code.InternalError})}})}function vyt(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:cn.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function GJu(e){let t=rr.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??Pf.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>cn.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),propertyAccess:n.propertyAccess})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??Pf.APPLICATION_JSON,shape:{type:"reference",value:Kp(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:Lr(r.name),description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let o=i._visit({file:s=>({type:"file",key:cn.PropertyKey(nr(s.key)),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),fileArray:s=>({type:"fileArray",key:cn.PropertyKey(nr(s.key)),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),_other:()=>{}});if(o!=null)return{type:"file",value:o}},bodyProperty:i=>({type:"bodyProperty",key:cn.PropertyKey(nr(i.name)),valueType:Kp(i.valueType,i.defaultValue),contentType:i.contentType,description:i.docs??void 0,availability:zb(i.availability),exploded:i.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(Oa)},contentType:r.contentType,description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new B({message:"Unknown HttpRequestBody: "+e.type,code:B.Code.InternalError})}});return t!=null?{type:t,description:e.docs}:void 0}function $7o(e){let t=e.docs,r;return e.body!=null&&(r=rr.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:Kp(n.responseBodyType)}),text:()=>{},bytes:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:Kp(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:Kp(n.payload)},terminator:n.terminator}},_other:()=>{throw new B({message:"Unknown HttpResponse: "+e.body,code:B.Code.InternalError})}})),r!=null?{type:r,statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t}:e.statusCode!=null?{statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t,type:{type:"object",extends:[],properties:[],extraProperties:void 0}}:void 0}function z5m(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:Kp(i.type)},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,name:i.displayName??Lr(i.name.name),availability:void 0,examples:_5m(i,t),headers:i.headers!=null&&i.headers.length>0?i.headers.map(o=>({description:o.docs??void 0,key:nr(o.name),type:Kp(o.valueType,o.defaultValue),availability:zb(o.availability)})):void 0})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let o=[{key:cn.PropertyKey(nr(t.errorDiscriminationStrategy.discriminant)),valueType:{type:"literal",value:{type:"stringLiteral",value:Lr(sZn(i.discriminantValue))}},description:i.docs,availability:void 0,propertyAccess:void 0}];i.type!=null&&o.push({key:cn.PropertyKey(nr(t.errorDiscriminationStrategy.contentProperty)),valueType:Kp(i.type),description:i.docs,availability:void 0,propertyAccess:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:o,extraProperties:void 0},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,availability:void 0,name:i.displayName??Lr(i.name.name),examples:i.examples.map(s=>({name:DBe(s.name),responseBody:{type:"json",value:s.jsonExample},description:s.docs})),headers:i.headers!=null&&i.headers.length>0?i.headers.map(s=>({description:s.docs??void 0,key:nr(s.name),type:Kp(s.valueType,s.defaultValue),availability:zb(s.availability)})):void 0})}}return r}function WJu({shouldUseExampleName:e,exampleName:t,example:r,irEndpoint:n,irService:i,ir:o}){if(r==null)return;let s=u=>{if(u.valueType.type==="container"&&u.valueType.container.type==="literal")return u.valueType.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}});if(u.valueType.type==="container"&&u.valueType.container.type==="optional"&&u.valueType.container.optional.type==="container"&&u.valueType.container.optional.container.type==="literal")return u.valueType.container.optional.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}})},a={};o.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)}),i.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)}),n.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)});let c=r.response?.body!=null?r.response.body.value:void 0;return{name:e?t:void 0,description:"",path:r.request?.endpoint.path??"",pathParameters:r.request?.pathParameters??{},queryParameters:r.request?.queryParameters??{},headers:(()=>{let l={...r.request?.headers??{}};for(let[p,d]of Object.entries(a))(l[p]===null||l[p]===void 0)&&(l[p]=d);return l})(),requestBody:r.request?.requestBody,requestBodyV3:n.requestBody?._visit({inlinedRequestBody:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,reference:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,fileUpload:u=>{if(r.request==null)return;let l={};if(oo(r.request.requestBody)){let p=r.request.requestBody;for(let d of u.properties)d._visit({file:f=>{let m=p[nr(f.key)];if(f.type==="file")l[nr(f.key)]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(f.type==="fileArray"){let g=(Array.isArray(m)?m:[m]).filter(A=>typeof A=="string");l[nr(f.key)]={type:"filenames",value:g}}},bodyProperty:f=>{if(f.style==="exploded"){let m=p[nr(f.name)];l[nr(f.name)]={type:"exploded",value:Array.isArray(m)?m:[m]}}else l[nr(f.name)]={type:"json",value:p[nr(f.name)]}},_other:nj})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??n.response?.statusCode??200,responseBody:c??void 0,responseBodyV3:c!=null?r.response?.body?._visit({json:u=>({type:"json",value:u}),stream:u=>Array.isArray(u)&&u.length>0&&u.every(M5m)?{type:"sse",value:u}:{type:"stream",value:u},error:()=>{},_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+r.response?.body?.type,code:B.Code.InternalError})}}):void 0,codeSamples:r.codeSamples?.map(u=>({name:u.name,description:u.docs??void 0,install:void 0,language:u.language,code:u.code})).filter(Oa)}}function M5m(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function Z7o({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(a=>{let c;if(a.valueType.type==="container"&&a.valueType.container.type==="literal"?c=a.valueType.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}}):a.valueType.type==="container"&&a.valueType.container.type==="optional"&&a.valueType.container.optional.type==="container"&&a.valueType.container.optional.container.type==="literal"&&(c=a.valueType.container.optional.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}})),c!=null)return{name:a.name,value:{jsonExample:c,shape:rr.ExampleTypeReferenceShape.primitive(rr.ExamplePrimitive.string({original:c}))}}}).filter(Oa),o=e?.example??t?.example;if(o==null)return;let{codeSamples:s}=e??{codeSamples:[]};return{name:DBe(o.name),description:o.docs,path:o.url,pathParameters:[...o.rootPathParameters,...o.servicePathParameters,...o.endpointPathParameters].reduce((a,c)=>(a[cn.PropertyKey(Lr(c.name))]=c.value.jsonExample,a),{}),queryParameters:o.queryParameters.reduce((a,c)=>(a[nr(c.name)]=c.value.jsonExample,a),{}),headers:[...i,...o.serviceHeaders,...o.endpointHeaders].reduce((a,c)=>(a[nr(c.name)]=c.value.jsonExample,a),{}),requestBody:o.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,reference:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,fileUpload:a=>{if(o.request==null)return;let c={};if(oo(o.request.jsonExample)){let u=o.request.jsonExample;for(let l of a.properties)l._visit({file:p=>{let d=u[nr(p.key)];if(p.type==="file")c[nr(p.key)]={type:"filename",value:typeof d=="string"?d:"<file1>"};else if(p.type==="fileArray"){let f=(Array.isArray(d)?d:[d]).filter(m=>typeof m=="string");c[nr(p.key)]={type:"filenames",value:f}}},bodyProperty:p=>{if(p.style==="exploded"){let d=u[nr(p.name)];c[nr(p.name)]={type:"exploded",value:Array.isArray(d)?d:[d]}}else c[nr(p.name)]={type:"json",value:u[nr(p.name)]}},_other:nj})}return{type:"form",value:c}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??rr.http.ExampleResponse._visit(o.response,{ok:a=>a._visit({body:c=>c!=null?200:204,stream:c=>c.length>0?200:204,sse:c=>c.length>0?200:204,_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+a.type,code:B.Code.InternalError})}}),error:({error:a})=>{let c=n.errors[a.errorId];if(c==null)throw new B({message:"Cannot find error "+a.errorId,code:B.Code.ResolutionError});return c.statusCode},_other:()=>{throw new B({message:"Unknown ExampleResponse: "+o.response.type,code:B.Code.InternalError})}}),responseBody:o.response._visit({ok:a=>a._visit({body:c=>c?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:a=>a.body?.jsonExample,_other:()=>{}}),responseBodyV3:o.response._visit({ok:a=>a._visit({body:c=>c!=null?{type:"json",value:c.jsonExample}:void 0,stream:c=>({type:"stream",value:c.map(u=>u.jsonExample)}),sse:c=>({type:"sse",value:c.map(({event:u,data:l})=>({event:u,data:l.jsonExample}))}),_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+a.type,code:B.Code.InternalError})}}),error:a=>a.body!=null?{type:"json",value:a.body.jsonExample}:void 0,_other:()=>{throw new B({message:"Unknown ExampleResponse: "+o.response.type,code:B.Code.InternalError})}}),codeSamples:s?.map(a=>_6._visit(a,{language:c=>({language:c.language,code:c.code,name:DBe(c.name),description:c.docs??void 0,install:c.install}),sdk:c=>({language:c.sdk,code:c.code,name:DBe(c.name),description:c.docs??void 0,install:void 0}),_other:()=>{}})).filter(Oa)}}function L5m(e,t){return t!=null?{type:{type:"formData",name:Lr(t.name),description:t.docs??void 0,availability:void 0,properties:t.properties.map(r=>r._visit({file:n=>{let i=n._visit({file:o=>({type:"file",key:cn.PropertyKey(nr(o.key)),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),fileArray:o=>({type:"fileArray",key:cn.PropertyKey(nr(o.key)),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),_other:()=>{}});if(i!=null)return{type:"file",value:i}},bodyProperty:n=>({type:"bodyProperty",key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),contentType:n.contentType,description:n.docs??void 0,availability:zb(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(Oa)},description:t.docs??void 0}:U5m(e)}function U5m(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>cn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:cn.PropertyKey(nr(t.name)),valueType:Kp(t.valueType),availability:zb(t.availability),propertyAccess:void 0})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:Kp(e.payloadType)},description:e.docs};default:ve(e)}}function V5m(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>cn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:cn.PropertyKey(nr(t.name)),valueType:Kp(t.valueType),availability:zb(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Kp(e.bodyType)};default:ve(e)}}function _5m(e,t){let r=e.v2Examples?.userSpecifiedExamples,n=e.v2Examples?.autogeneratedExamples,i=e.examples;if(r!=null&&Object.keys(r).length>0)return Object.entries(r).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(n!=null&&Object.keys(n).length>0)return Object.entries(n).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(i.length>0)return i.map(s=>({name:DBe(s.name),responseBody:{type:"json",value:s.jsonExample},description:s.docs}));let o=q5m(e,t);return o!=null?[o]:[]}function q5m(e,t){if(e.type==null||e.type.type!=="named")return;let r=e.type.typeId,n=t.types[r];if(n==null||n.shape.type!=="object")return;let i={},o=!1;for(let s of n.shape.properties){let a=nr(s.name),c=s.v2Examples;if(c?.userSpecifiedExamples!=null){let u=Object.values(c.userSpecifiedExamples);if(u.length>0){i[a]=u[0],o=!0;continue}}if(c?.autogeneratedExamples!=null){let u=Object.values(c.autogeneratedExamples);if(u.length>0){i[a]=u[0];continue}}}if(o)return{name:void 0,responseBody:{type:"json",value:i},description:void 0}}var X7o=h(()=>{"use strict";Dt();zm();Mn();tc();jt();Vi();Y7o();Iyt()});function ST({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:eWo(e.rootPackage,e,n,i),apiName:s??Lr(e.apiName),auth:MJu({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:UJu({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:zb(c.availability),description:c.docs??void 0,key:nr(c.name),type:Kp(c.valueType,c.defaultValue)})),navigation:void 0};for(let[c,u]of Object.entries(e.types))a.types[cn.TypeId(c)]={description:u.docs??void 0,name:Lr(u.name.name),shape:qJu(u.shape),availability:zb(u.availability),displayName:u.name.displayName};for(let[c,u]of Object.entries(i))a.types[cn.TypeId(c)]=u;for(let[c,u]of Object.entries(e.subpackages)){let l=u.service!=null?e.services[u.service]:void 0;a.subpackages[cn.SubpackageId(c)]={subpackageId:cn.SubpackageId(c),displayName:l?.displayName??u.displayName,name:Lr(u.name),description:u.docs??void 0,...eWo(u,e)}}return a}var tWo=h(()=>{"use strict";zm();VJu();X7o();Y7o();Iyt()});async function rWo({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Sg({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1},readme:void 0,version:void 0,packageName:void 0,context:r,sourceResolver:new Ch(r,t)}),p=kk({token:n.value}),d=ST({ir:l,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a,graphqlTypes:c,context:r});if(u){let m=t.getSources().filter(g=>g.type==="openapi").map(g=>({absoluteFilePath:g.absoluteFilePath,absoluteFilePathToOverrides:g.absoluteFilePathToOverrides}));d=await Eyt(d,u,r,n,e,m.length>0?m:void 0,Lr(l.apiName))}try{let f=await p.api.register.registerApiDefinition({orgId:cn.OrgId(e),apiId:cn.ApiId(Lr(l.apiName)),definition:d});return r.logger.debug(`Registered API Definition ${f.apiDefinitionId}`),{id:f.apiDefinitionId,ir:l}}catch(f){return r.failAndThrow("Failed to register API",f,{code:B.Code.NetworkError})}}var HJu=h(()=>{"use strict";Jk();nm();zm();Kl();jt();J7o();tWo();Iyt()});var Bde=h(()=>{"use strict";J7o();tWo();HJu()});function s8t({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return Gle(_le(ST({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:r,graphqlOperations:i,graphqlTypes:o,context:n}),ukr.ApiDefinitionId(t),G5m))}var G5m,nWo=h(()=>{"use strict";zm();Bde();G5m=new qle({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}})});async function Lw({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&KJu.default.isAbsolute(e)&&t.add(e)}async function JJu({parsedDocsConfig:e}){let t=new Set;if(e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.metadata?.["og:dynamic:background-image"]!=null&&e.metadata["og:dynamic:background-image"].type==="filepath"&&t.add(e.metadata["og:dynamic:background-image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.navigation.type==="productgroup"&&e.navigation.products.forEach(n=>{n.image!=null&&t.add(n.image)}),(await iWo({navigation:e.navigation})).forEach(n=>{t.add(n)}),e.navbarLinks&&await Promise.all(e.navbarLinks.map(async n=>{n.type==="dropdown"&&n.links.map(async i=>{i.icon&&await Lw({iconPath:i.icon,filepaths:t}),i.rightIcon&&await Lw({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await Lw({iconPath:n.icon,filepaths:t}),n.rightIcon&&await Lw({iconPath:n.rightIcon,filepaths:t}))})),e.js!=null&&e.js.files.forEach(n=>{t.add(n.absolutePath)}),e.context7File!=null&&t.add(e.context7File),e.llmsTxtFile!=null&&t.add(e.llmsTxtFile),e.llmsFullTxtFile!=null&&t.add(e.llmsFullTxtFile),e.robotsTxtFile!=null&&t.add(e.robotsTxtFile),e.pageActions?.options?.custom!=null&&await Promise.all(e.pageActions.options.custom.map(async n=>{n.icon!=null&&await Lw({iconPath:n.icon,filepaths:t})})),e.translationNavigationOverlays!=null)for(let n of Object.values(e.translationNavigationOverlays))await W5m({navbarLinks:n.navbarLinks,filepaths:t});return t}async function W5m({navbarLinks:e,filepaths:t}){e!=null&&await Promise.all(e.map(async r=>{if(r.type!=="github"){if(r.type==="dropdown"){await Promise.all(r.links.map(async n=>{n.icon!=null&&await Lw({iconPath:n.icon,filepaths:t}),n.rightIcon!=null&&await Lw({iconPath:n.rightIcon,filepaths:t})})),r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.rightIcon!=null&&await Lw({iconPath:r.rightIcon,filepaths:t});return}r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.rightIcon!=null&&await Lw({iconPath:r.rightIcon,filepaths:t})}}))}async function iWo({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>xyt({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>xyt({item:n,filepaths:t}))):r.child.type==="variants"&&r.child.variants!=null&&await Promise.all(r.child.variants.flatMap(n=>{let i=[];return n.icon!=null&&i.push(Lw({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>xyt({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await xyt({item:r.landingPage,filepaths:t}),(await iWo({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await xyt({item:r.landingPage,filepaths:t}),(await iWo({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function xyt({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>xyt({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break}}var KJu,YJu=h(()=>{"use strict";KJu=be(require("path"),1)});function H5m(e,t,r){return e.replace(/\[([^\]]*)\]\(([^)]+\.mdx?(?:#[^)]*)?)\)/g,(n,i,o)=>{let s=o.indexOf("#"),a=s>=0?o.substring(0,s):o,c=s>=0?o.substring(s):"",u=xde({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function aZn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)aZn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=H5m(o,t,r):typeof o=="object"&&aZn(o,t,r)}function z3e(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)z3e(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&z3e(i,t,r)}var oWo=h(()=>{"use strict";m9()});async function XJu({navigation:e,apiWorkspaces:t,visitor:r,context:n}){J5m(e)?await Promise.all(e.map(async i=>{Y5m(i)?await Promise.all(i.layout.map(async o=>{await cZn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):X5m(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await cZn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await cZn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function cZn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Y4(e,{alphabetized:ht,api:ht,apiName:ht,audiences:ht,displayErrors:ht,tagDescriptionPages:ht,snippets:ht,summary:ht,title:ht,layout:ht,collapsed:ht,icon:ht,slug:ht,hidden:ht,skipSlug:ht,paginated:ht,playground:ht,flattened:ht,path:ht,page:ht,featureFlag:ht,openrpc:ht,postman:ht,contents:async i=>{i!=null&&await Promise.all(i.map(async o=>{await cZn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:ht,orphaned:ht,availability:ht}),K5m(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function K5m(e){return e.api!=null}function J5m(e){return e[0]?.tab!=null}function Y5m(e){return"layout"in e&&Array.isArray(e.layout)}function X5m(e){return"variants"in e&&Array.isArray(e.variants)}var ZJu=h(()=>{"use strict";Dt()});function H2(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}var sWo=h(()=>{"use strict"});function e8m(e,t){let r=e?.launch;if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${H2(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function t8m(e){switch(e){case"beta":return vt.V1.NavigationV1Availability.Beta;case"deprecated":return vt.V1.NavigationV1Availability.Deprecated;case"ga":return vt.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return vt.V1.NavigationV1Availability.Stable;case"alpha":return vt.V1.NavigationV1Availability.Alpha;case"preview":return vt.V1.NavigationV1Availability.Preview;case"legacy":return vt.V1.NavigationV1Availability.Legacy;default:ve(e)}}var eYu,tYu,uZn,Pde,rYu,Z5m,$Ju,$5m,m3,nYu=h(()=>{"use strict";Jk();Qo();Dt();m9();zm();Yt();$To();Kl();tc();om();jt();eYu=be(uRr(),1),tYu=be(lRr(),1),uZn=require("fs"),Pde=require("fs/promises"),rYu=be(hL(),1);us();Vi();AJu();j7o();bJu();IJu();WXn();xJu();nWo();YJu();oWo();ZJu();sWo();eYu.default.extend(tYu.default);Z5m=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),$Ju=0,$5m=async({ir:e})=>($Ju++,`${uyo(e.apiName)}-${$Ju}`),m3=class{domain;docsWorkspace;ossWorkspaces;apiWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;targetAudiences;buildTranslatedApiDefinitions;constructor({domain:t,docsWorkspace:r,ossWorkspaces:n,apiWorkspaces:i,taskContext:o,editThisPage:s,uploadFiles:a=Z5m,registerApi:c=$5m,targetAudiences:u,buildTranslatedApiDefinitions:l=!1}){this.domain=t,this.docsWorkspace=r,this.ossWorkspaces=n,this.apiWorkspaces=i,this.taskContext=o,this.editThisPage=s,this.uploadFiles=a,this.registerApi=c,this.targetAudiences=u,this.buildTranslatedApiDefinitions=l}#e=XXn.init();shouldIncludeByAudience(t){return!t||t.length===0||!this.targetAudiences||this.targetAudiences.length===0?!0:t.some(r=>this.targetAudiences?.includes(r))}applyAudienceFiltering(t){let r=this.filterNavigationByAudience(t.navigation);return{...t,navigation:r}}filterNavigationByAudience(t){return t.type==="untabbed"||t.type==="tabbed"?t:t.type==="versioned"?{...t,versions:t.versions.filter(r=>this.shouldIncludeByAudience(this.getRawVersionAudiences(r.version)))}:t.type==="productgroup"?{...t,products:t.products.filter(r=>{let n=this.getRawProductAudiences(r.product);return this.shouldIncludeByAudience(n)})}:t}getRawProductAudiences(t){let n=this.docsWorkspace.config.products?.find(i=>i.displayName===t);return mQt(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return mQt(n?.audiences)}_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new B({message:"parsedDocsConfig is not set",code:B.Code.InternalError});return this._parsedDocsConfig}getTranslationPages(){return this._parsedDocsConfig?.translationPages}getTranslationNavigationOverlays(){return this._parsedDocsConfig?.translationNavigationOverlays}getCollectedFileIds(){return this.collectedFileIds}getDocsWorkspacePath(){return this.docsWorkspace.absoluteFilePath}getTranslatedApiSpecs(){return this.translatedApiSpecs}getDocsTranslationsConfig(){let t=this.parsedDocsConfig.translations;if(t==null||t.length===0)return;let r=t.map(i=>bh.DocsYmlSchemas.normalizeTranslationConfig(i)),n=r.find(i=>i.default===!0)??r[0];if(n!=null)return{defaultLocale:n.lang,translations:r.map(i=>i.lang)}}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;markdownFilesToSidebarTitle=new Map;markdownFilesToNoIndex=new Map;markdownFilesToTags=new Map;markdownFilesToAvailability=new Map;rawMarkdownFiles={};referencedMarkdownFiles=[];pendingApiRegistrations=[];pendingApiCounter=0;translatedApiSpecs=new Map;async resolve(){let t=performance.now(),r=process.memoryUsage();this.referencedMarkdownFiles=[],this.taskContext.logger.debug("Parsing docs configuration...");let n=performance.now();this._parsedDocsConfig=await tze({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[we.of(xe)]=Mw(Ee);let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let xe=performance.now();await XJu({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:De})=>{(await De.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(ct=>{let Ct=ko(this.docsWorkspace.absoluteFilePath,ct.absoluteFilepath);this.parsedDocsConfig.pages[Ct]=ct.contents,this.rawMarkdownFiles[we.of(Ct)]=Mw(ct.contents)})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ee=performance.now()-xe;this.taskContext.logger.debug(`Visited navigation AST in ${Ee.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages)){let De=await wT({markdown:Ee,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe),context:this.taskContext});for(let Ct of De.referencedFiles)p.has(Ct.absoluteFilePath)||(p.add(Ct.absoluteFilePath),this.referencedMarkdownFiles.push(Ct));let Je=await q2({markdown:De.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe),context:this.taskContext}),ct=G2({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe)});this.parsedDocsConfig.pages[we.of(xe)]=ct}let d=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${d.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),m=await JJu({parsedDocsConfig:this.parsedDocsConfig}),g=performance.now()-f;this.taskContext.logger.debug(`Collected ${m.size} files in ${g.toFixed(0)}ms`);let A=await EJu({absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath});A.length>0&&(this.taskContext.logger.debug(`Collected ${A.length} well-known agent skills files`),A.forEach(xe=>m.add(xe))),this.taskContext.logger.debug("Parsing image paths from markdown files...");let y=performance.now();for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))try{let{filepaths:De,markdown:Je}=qH(Ee,{absolutePathToMarkdownFile:this.resolveFilepath(xe),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[we.of(xe)]=Je;for(let ct of De)m.add(ct)}catch(De){throw this.taskContext.logger.error(`Failed to parse ${xe}: ${zn(De)}`),new B({message:`Failed to parse markdown file ${xe}: ${zn(De)}`,code:B.Code.ParseError})}let E=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${E.toFixed(0)}ms`);let v=Array.from(m).map(xe=>({absoluteFilePath:xe,relativeFilePath:this.toRelativeFilepath(xe)}));this.taskContext.logger.info(`Uploading ${v.length} files...`);let I=performance.now(),C=await this.uploadFiles(v),w=performance.now()-I;this.taskContext.logger.info(`Uploaded ${C.length} files in ${w.toFixed(0)}ms`),C.forEach(xe=>{this.collectedFileIds.set(xe.absoluteFilePath,xe.fileId)}),this.resolveTranslationOverlayNavbarLinkIcons(),this.taskContext.logger.debug("Building navigation tree...");let T=performance.now(),P=await this.toRootNode(),O=performance.now()-T;this.taskContext.logger.debug(`Built navigation tree in ${O.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let M=performance.now(),K=await this.getMarkdownFilesToFullyQualifiedPathNames(P),Y=performance.now()-M;if(this.taskContext.logger.debug(`Got path names in ${Y.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let xe=performance.now();for(let De of this.pendingApiRegistrations){this.resolveLinksInIrDocs(De.ir,K);let Je=await this.registerApi({ir:De.ir,snippetsConfig:De.snippetsConfig,playgroundConfig:De.playgroundConfig,apiName:De.apiName,workspace:De.workspace,graphqlOperations:De.graphqlOperations,graphqlTypes:De.graphqlTypes});if(z3e(De.apiReferenceNode,De.tempApiDefinitionId,Je),De.translatedIrsByLocale!=null)for(let[ct,Ct]of De.translatedIrsByLocale){this.resolveLinksInIrDocs(Ct,K);let at=this.translatedApiSpecs.get(ct);at==null&&(at=new Map,this.translatedApiSpecs.set(ct,at)),at.set(Je,{ir:Ct,snippetsConfig:De.snippetsConfig,playgroundConfig:De.playgroundConfig,apiName:De.apiName,graphqlOperations:De.graphqlOperations,graphqlTypes:De.graphqlTypes,workspace:De.workspace})}}let Ee=performance.now()-xe;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ee.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let Z=performance.now();for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))try{this.parsedDocsConfig.pages[we.of(xe)]=_2(Ee,this.collectedFileIds,K,{absolutePathToMarkdownFile:this.resolveFilepath(xe),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext)}catch(De){throw new B({message:`Failed to replace image paths in markdown file ${xe}: ${zn(De)}`,code:B.Code.ParseError})}let ae=performance.now()-Z;this.taskContext.logger.debug(`Replaced image paths in ${ae.toFixed(0)}ms`),this.taskContext.logger.debug("Building page content...");let le={};Object.entries(this.parsedDocsConfig.pages).forEach(([xe,Ee])=>{let{url:De,launch:Je}=e8m(this.editThisPage,xe),ct=this.rawMarkdownFiles[we.of(xe)];le[Ew.PageId(xe)]={markdown:Mw(Ee),editThisPageUrl:De?Ew.Url(De):void 0,editThisPageLaunch:Je,rawMarkdown:ct}}),this.taskContext.logger.debug("Converting docs configuration...");let oe=performance.now(),ce=await this.convertDocsConfiguration(P),Te=performance.now()-oe;this.taskContext.logger.debug(`Converted docs configuration in ${Te.toFixed(0)}ms`);let Fe={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){this.taskContext.logger.debug("Processing MDX components...");let xe=performance.now(),Ee=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async Je=>{let ct=ti(this.docsWorkspace.absoluteFilePath,Je);(await(0,Pde.stat)(ct)).isDirectory()?(await xS(ct,"{js,ts,jsx,tsx,md,mdx}")).forEach(Lt=>{Ee.add(Lt)}):ct.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ee.add(ct)})),Fe=Object.fromEntries(await Promise.all([...Ee].map(async Je=>{let ct=this.toRelativeFilepath(Je),Ct=(await(0,Pde.readFile)(Je)).toString();return[ct,Ct]})));let De=performance.now()-xe;this.taskContext.logger.debug(`Processed ${Ee.size} MDX component files in ${De.toFixed(0)}ms`)}if(this.referencedMarkdownFiles.length>0){this.taskContext.logger.debug(`Adding ${this.referencedMarkdownFiles.length} referenced markdown files to jsFiles...`);for(let xe of this.referencedMarkdownFiles)Fe[xe.relativeFilePath]=xe.content}if(this._parsedDocsConfig.header!=null){let xe=this.toRelativeFilepath(this._parsedDocsConfig.header),Ee=(await(0,Pde.readFile)(this._parsedDocsConfig.header)).toString();Fe[xe]=Ee,this.taskContext.logger.debug(`Added custom header component: ${xe}`)}if(this._parsedDocsConfig.footer!=null){let xe=this.toRelativeFilepath(this._parsedDocsConfig.footer),Ee=(await(0,Pde.readFile)(this._parsedDocsConfig.footer)).toString();Fe[xe]=Ee,this.taskContext.logger.debug(`Added custom footer component: ${xe}`)}let se=performance.now()-t,pe=process.memoryUsage();return this.taskContext.logger.debug(`Total resolve time: ${se.toFixed(0)}ms, Memory delta: RSS=${((pe.rss-r.rss)/1024/1024).toFixed(2)}MB`),{config:ce,pages:le,jsFiles:Fe}}resolveFilepath(t){if(t!=null)return ti(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return ko(this.docsWorkspace.absoluteFilePath,t)}extractAllFrontmatterData(t){for(let[r,n]of Object.entries(t)){let i=(0,rYu.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();myt(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=vt.migrate.FernNavigationV1ToLatest.create().root(t);return vt.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!vt.isPage(o))return;let a=vt.getPageId(o);if(a==null)return;let c=Ge(this.docsWorkspace.absoluteFilePath,we.of(a));r[c]??=s}),r}getDocsBasePath(){return new URL(H2(this.domain)).pathname}async convertDocsConfiguration(t){let r=this.parsedDocsConfig.integrations!=null||this.parsedDocsConfig.context7File!=null?{...this.parsedDocsConfig.integrations,context7:this.getFileId(this.parsedDocsConfig.context7File)}:void 0;return{aiChatConfig:this.parsedDocsConfig.aiChatConfig!=null?{model:this.parsedDocsConfig.aiChatConfig.model,systemPrompt:this.parsedDocsConfig.aiChatConfig.systemPrompt,location:this.parsedDocsConfig.aiChatConfig.location?.filter(i=>i==="slack"||i==="docs"),datasources:this.parsedDocsConfig.aiChatConfig.datasources?.map(i=>({url:i.url,title:i.title}))}:void 0,hideNavLinks:void 0,title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?Ew.Url(this.parsedDocsConfig.logo?.href):void 0,logoRightText:this.parsedDocsConfig.logo?.rightText,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(i=>i.type==="dropdown"?{...i,links:i.links?.map(o=>({...o,url:Ew.Url(o.url),icon:this.resolveIconFileId(o.icon),rightIcon:this.resolveIconFileId(o.rightIcon)})),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)}:i.type==="github"?{...i,url:Ew.Url(i.url)}:{...i,url:Ew.Url(i.url),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)}),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,settings:this.parsedDocsConfig.settings,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),agents:this.parsedDocsConfig.agents!=null||this.parsedDocsConfig.llmsTxtFile!=null||this.parsedDocsConfig.llmsFullTxtFile!=null||this.parsedDocsConfig.robotsTxtFile!=null?{...this.parsedDocsConfig.agents,llmsTxt:this.getFileId(this.parsedDocsConfig.llmsTxtFile),llmsFullTxt:this.getFileId(this.parsedDocsConfig.llmsFullTxtFile),robotsTxt:this.getFileId(this.parsedDocsConfig.robotsTxtFile)}:void 0,metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:r,footerLinks:this.parsedDocsConfig.footerLinks?.map(i=>({...i,value:Ew.Url(i.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,languages:this.parsedDocsConfig.languages,translations:this.getDocsTranslationsConfig(),analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:this.parsedDocsConfig.analyticsConfig?.gtm?{containerId:this.parsedDocsConfig.analyticsConfig.gtm.containerId}:void 0,ga4:this.parsedDocsConfig.analyticsConfig?.ga4?{measurementId:this.parsedDocsConfig.analyticsConfig.ga4.measurementId}:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,editThisPageLaunch:this.editThisPage?.launch,pageActions:this.convertPageActions(),theme:this.parsedDocsConfig.theme!=null?{sidebar:this.parsedDocsConfig.theme.sidebar,body:this.parsedDocsConfig.theme.body,tabs:this.parsedDocsConfig.theme.tabs,"page-actions":this.parsedDocsConfig.theme.pageActions,footerNav:this.parsedDocsConfig.theme.footerNav,"language-switcher":this.parsedDocsConfig.theme.languageSwitcher,"product-switcher":this.parsedDocsConfig.theme.productSwitcher}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0,header:this.parsedDocsConfig.header?this.toRelativeFilepath(this.parsedDocsConfig.header):void 0,footer:this.parsedDocsConfig.footer?this.toRelativeFilepath(this.parsedDocsConfig.footer):void 0}}getFernWorkspaceForApiSection(t){if(t.apiName!=null){let n=this.apiWorkspaces.find(i=>i.workspaceName===t.apiName);if(n!=null)return n}else if(this.apiWorkspaces.length===1&&this.apiWorkspaces[0]!=null)return this.apiWorkspaces[0];let r=t.apiName?`Failed to load API Definition '${t.apiName}' referenced in docs.
|
|
1437
|
+
${i.description}`;return this.#f.set(s,c),this.markdownFilesToNoIndex.set(s,!1),this.markdownFilesToTags.set(s,[n]),a}#m(t,r,n,i){r=this.#e.resolveSubpackage(r);let o=r!=null?BBe.getSubpackageId(r):void 0;return t.map(s=>fv(s)._visit({link:a=>({id:this.#p.get(a.url),type:"link",collapsed:void 0,title:a.text,icon:this.resolveIconFileId(a.icon),url:vt.Url(a.url),target:a.target}),page:a=>this.#h(a,n,i),package:a=>this.#g(a,n,i),section:a=>this.#E(a,n,i),item:({value:a})=>this.#b(a,o,n,i),endpoint:a=>this.#I(a,o,n,i),operation:a=>this.#v(a,o,n,i)})).filter(Oa)}#h(t,r,n){return dJu({page:{...t,availability:t.availability??n},parentSlug:r,docsWorkspace:this.docsWorkspace,markdownFilesToFullSlugs:this.markdownFilesToFullSlugs,markdownFilesToNoIndex:this.markdownFilesToNoIndex,idgen:this.#p,hideChildren:this.hideChildren,resolveIconFileId:this.resolveIconFileId.bind(this)})}#g(t,r,n){let i=t.overviewAbsolutePath!=null?vt.V1.PageId(Ayt(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.availability??n,a=this.#e.getSubpackageByIdOrLocator(t.package);if(a!=null){let c=BBe.getSubpackageId(a),u=i??this.createTagDescriptionPageId(a,t.package),l=this.#p.get(u??`${this.apiDefinitionId}:${c}`);this.#s.has(c)&&this.taskContext.logger.warn(KXn(t.package)),this.#s.add(c),this.#a.set(l,[c]);let p=t.slug??(GH(a)?a.urlSlug:this.apiSection.slug??qf(this.apiSection.title)),d=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:p}),f=this.#m(t.contents,a,d,s);return{id:l,type:"apiPackage",collapsed:void 0,children:f,title:t.title??(GH(a)?a.displayName??EP(a.name):this.apiSection.title),slug:d.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:kg(s),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}else{this.taskContext.logger.warn(HXn(t.package,this.#e.subpackageLocators));let c=t.slug??qf(t.package),u=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:c}),l=this.#m(t.contents,void 0,u,s);return{id:this.#p.get(i??`${this.apiDefinitionId}:${qf(t.package)}`),type:"apiPackage",collapsed:void 0,children:l,title:t.title??t.package,slug:u.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsible:void 0,collapsedByDefault:void 0,availability:kg(s),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}#E(t,r,n){let i=t.overviewAbsolutePath!=null?vt.V1.PageId(Ayt(this.docsWorkspace,t.overviewAbsolutePath)):void 0,o=t.overviewAbsolutePath!=null?this.markdownFilesToFullSlugs.get(t.overviewAbsolutePath):void 0,s=t.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(t.overviewAbsolutePath):void 0,a=this.#p.get(i??o??r.get()),c=t.referencedSubpackages.map(f=>{let m=this.#e.getSubpackageByIdOrLocator(f),g=m!=null?BBe.getSubpackageId(m):void 0;if(g===void 0){this.taskContext.logger.error(HXn(f,this.#e.subpackageLocators));return}return{subpackageId:g,locator:f}}).filter(f=>f!=null).filter(Oa);this.#a.set(a,c.map(f=>f.subpackageId)),c.forEach(f=>{this.#s.has(f.subpackageId)&&this.taskContext.logger.error(KXn(f.locator)),this.#s.add(f.subpackageId)});let u=t.slug??qf(t.title),l=r.apply({fullSlug:o?.split("/"),skipUrlSlug:t.skipUrlSlug,urlSlug:u}),p=t.availability??n,d=this.#m(t.contents,void 0,l,p);return{id:a,type:"apiPackage",children:d,title:t.title,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,overviewPageId:i,collapsed:t.collapsed,collapsible:t.collapsible,collapsedByDefault:t.collapsedByDefault,availability:kg(p),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:s,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#b(t,r,n,i){t=t.trim();let o=this.#e.getSubpackageByIdOrLocator(t)??this.#e.getSubpackageByIdOrLocator($n(t));if(o!=null){let s=BBe.getSubpackageId(o),a=this.#p.get(`${this.apiDefinitionId}:${s}`);this.#s.has(s)&&this.taskContext.logger.error(KXn(t)),this.#s.add(s),this.#a.set(a,[s]);let c=GH(o)?o.urlSlug:"",u=n.apply({urlSlug:c});return{id:a,type:"apiPackage",collapsed:void 0,children:[],title:GH(o)?o.displayName??EP(o.name):this.apiSection.title,slug:u.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:this.createTagDescriptionPageId(o,t),collapsible:void 0,collapsedByDefault:void 0,availability:kg(i),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0}}return this.#I({type:"endpoint",endpoint:t,title:void 0,icon:void 0,slug:void 0,hidden:void 0,availability:void 0,playground:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0},r,n,i)}#I(t,r,n,i){let o=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.endpoints.get(xb.EndpointId(t.endpoint)):void 0)??this.#e.endpointsByLocator.get(t.endpoint);if(o!=null){let u=this.#e.getEndpointId(o);if(u==null)this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);else{this.#t.has(u)&&this.taskContext.logger.error(`Duplicate endpoint found in the API Reference layout: ${u}`),this.#t.add(u);let l=t.slug!=null?n.append(t.slug):n.apply(o);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"endpoint",collapsed:void 0,method:o.method,endpointId:u,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(o.availability)??kg(i),isResponseStream:o.response?.type.type==="stream",title:t.title??o.name??WR(o.path.parts),slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#w(o.includeInApiExplorer===!1?{...t.playground,hidden:!0}:t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}}let s=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.webSockets.get(xb.WebSocketId(t.endpoint)):void 0)??this.#e.webSocketsByLocator.get(t.endpoint);if(s!=null){let u=this.#e.getWebSocketId(s);if(u==null)this.taskContext.logger.error(`Expected WebSocket ID for ${s.id}. Got undefined.`);else return this.#r.has(u)&&this.taskContext.logger.error(`Duplicate web socket found in the API Reference layout: ${u}`),this.#r.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webSocket",collapsed:void 0,webSocketId:u,title:t.title??s.name??WR(s.path.parts),slug:(t.slug!=null?n.append(t.slug):n.apply(s)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(s.availability)??kg(i),playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let a=(r!=null?this.#e.subpackages.get(xb.SubpackageId(r))?.webhooks.get(xb.WebhookId(t.endpoint)):void 0)??this.#e.webhooks.get(vt.V1.WebhookId(t.endpoint));if(a!=null){let u=this.#e.getWebhookId(a);if(u==null)this.taskContext.logger.error(`Expected Webhook ID for ${a.id}. Got undefined.`);else return this.#n.has(u)&&this.taskContext.logger.error(`Duplicate webhook found in the API Reference layout: ${u}`),this.#n.add(u),{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"webhook",collapsed:void 0,webhookId:u,method:a.method,title:t.title??a.name??(0,gJu.default)("/",...a.path),slug:(t.slug!=null?n.append(t.slug):n.apply(a)).get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability)??vt.V1.convertAvailability(a.availability)??kg(i),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}let c=this.#e.api.rootPackage.graphqlOperations?.find(u=>u.id===t.endpoint||u.name===t.endpoint);if(c!=null){let u=xb.GraphQlOperationId(c.id);if(this.#o.has(u)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${u}`);return}this.#o.add(u);let l=t.slug!=null?n.append(t.slug):n.append(c.name??c.id);return{id:this.#p.get(`${this.apiDefinitionId}:${u}`),type:"graphql",collapsed:void 0,operationType:c.operationType,graphqlOperationId:xb.GraphQlOperationId(c.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability??i),title:t.title??c.displayName??c.name??c.id,slug:l.get(),icon:this.resolveIconFileId(t.icon),hidden:this.hideChildren||t.hidden,playground:this.#w(t.playground),authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}this.taskContext.logger.error("Unknown identifier in the API Reference layout: ",t.endpoint)}#v(t,r,n,i){let o=t.operation.trim().split(/\s+/,2);if(o.length!==2){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let[s,a]=o;if(!a){this.taskContext.logger.error(`Invalid operation format in the API Reference layout: ${t.operation}. Expected format: "OPERATION_TYPE operationName" (e.g., "QUERY account")`);return}let c=this.#e.api.rootPackage.graphqlOperations??[],u=c.filter(f=>{if(f.operationType!==s)return!1;if(a.includes(".")){if(f.id===a||f.name===a)return!0;let m=a.split("."),g=m[m.length-1],A=m.slice(0,-1).join(".");if(f.name===g||f.id===g)return f.id.startsWith(A+".")||this.#l.get(cn.GraphQlOperationId(f.id))===A}else return f.name===a||f.id===a;return!1});if(!a.includes(".")){let f=c.filter(m=>m.operationType===s&&(m.name===a||m.id===a));if(f.length>1){let m=f.map(g=>{let A=this.#l.get(cn.GraphQlOperationId(g.id));if(A)return`"${s} ${A}.${a}"`;let y=g.id.split("_");if(y.length>=3){let E=y[0];return`"${s} ${E}.${a}"`}return`"${s} ${g.id}"`}).join(", ");this.taskContext.logger.warn(`Ambiguous operation reference: "${t.operation}". Found ${f.length} operations with name "${a}". Using first match: "${m.split(", ")[0]}". Please use the full namespaced format for clarity. Available options: ${m}`)}}let l=u[0];if(l==null){this.taskContext.logger.error(`GraphQL operation not found in the API Reference layout: ${t.operation}`);return}let p=xb.GraphQlOperationId(l.id);if(this.#o.has(p)){this.taskContext.logger.error(`Duplicate GraphQL operation found in the API Reference layout: ${p}`);return}this.#o.add(p);let d=t.slug!=null?n.append(t.slug):n.append(l.name??l.id);return{id:this.#p.get(`${this.apiDefinitionId}:${p}`),type:"graphql",collapsed:void 0,operationType:l.operationType,graphqlOperationId:xb.GraphQlOperationId(l.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(t.availability??i),title:t.title??l.displayName??l.name??l.id,slug:d.get(),icon:void 0,hidden:this.hideChildren||t.hidden,playground:void 0,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags}}#y(t,r){return pJu({left:t,right:r,findEndpointById:n=>this.#e.endpoints.get(n),stringifyEndpointPathParts:n=>WR(n.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}#x(t,r){return Q7o({child:t,nodeIdToSubpackageId:this.#a,convertApiDefinitionPackageId:(n,i,o)=>this.#B(n,i,o),mergeAndFilterChildren:this.#y.bind(this)})}#C(t,r,n){let i=[];if(t.endpoints.forEach(o=>{if(o.protocol?.type==="grpc"){let s=this.#e.getGrpcId(o);if(s==null){this.taskContext.logger.error(`Expected Grpc ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#i.has(s))return;let a=r.apply(o);i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"grpc",collapsed:void 0,grpcId:s,title:o.name??WR(o.path.parts),method:o.protocol?.methodType??"UNARY",apiDefinitionId:this.apiDefinitionId,availability:kg(n),slug:a.get(),icon:void 0,hidden:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let s=this.#e.getEndpointId(o);if(s==null){this.taskContext.logger.debug(`Expected Endpoint ID for ${o.id} at path: ${GXn(o.method,o.path.parts)}. Got undefined.`);return}if(this.#t.has(s))return;let a=r.apply(o);i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"endpoint",collapsed:void 0,method:o.method,endpointId:s,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),isResponseStream:o.response?.type.type==="stream",title:o.name??WR(o.path.parts),slug:a.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}}),t.websockets.forEach(o=>{let s=this.#e.getWebSocketId(o);if(s==null){this.taskContext.logger.error(`Expected WebSocket ID for ${o.id}. Got undefined.`);return}this.#r.has(s)||i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webSocket",collapsed:void 0,webSocketId:s,title:o.name??WR(o.path.parts),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.webhooks.forEach(o=>{let s=this.#e.getWebhookId(o);if(s==null){this.taskContext.logger.error(`Expected Webhook ID for ${o.id}. Got undefined.`);return}this.#n.has(s)||i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${s}`),type:"webhook",collapsed:void 0,webhookId:s,method:o.method,title:o.name??EP(o.id),slug:r.apply(o).get(),icon:void 0,hidden:this.hideChildren,apiDefinitionId:this.apiDefinitionId,availability:vt.V1.convertAvailability(o.availability)??kg(n),authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.subpackages.forEach(o=>{if(this.#s.has(o))return;let s=this.#e.getSubpackageByIdOrLocator(o);if(s==null){this.taskContext.logger.error(`Subpackage ${o} not found in ${this.apiDefinitionId}`);return}let a=GH(s)?r.apply(s):r,c=this.#B(o,a,n),u=this.createTagDescriptionPageId(s),l=this.#e.subpackages.get(xb.SubpackageId(o)),p=l?Array.from(l.endpoints.values()).some(d=>{let f=this.#e.getEndpointId(d);return f!=null&&this.#t.has(f)}):!1;(c.length>0||u!=null&&p)&&i.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${o}`),type:"apiPackage",collapsed:void 0,children:c,title:GH(s)?s.displayName??EP(s.name):this.apiSection.title,slug:a.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:u,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}),t.graphqlOperations!=null&&t.graphqlOperations.length>0){let o=this.#T(t.graphqlOperations,r,n);i.push(...o)}return i=this.mergeEndpointPairs(i),this.apiSection.alphabetized&&(i=i.sort((o,s)=>{let a=o.type==="endpointPair"?o.nonStream.title:o.title,c=s.type==="endpointPair"?s.nonStream.title:s.title;return a.localeCompare(c)})),i}#T(t,r,n){let i={},o={};for(let u of t){let l=xb.GraphQlOperationId(u.id);if(this.#o.has(l))continue;this.#o.add(l);let p=this.#l.get(cn.GraphQlOperationId(u.id)),d=u.operationType;p!=null?(i[p]==null&&(i[p]={}),i[p][d]==null&&(i[p][d]=[]),i[p][d].push(u)):(o[d]==null&&(o[d]=[]),o[d].push(u))}let s=[],a=["QUERY","MUTATION","SUBSCRIPTION"],c={QUERY:"Queries",MUTATION:"Mutations",SUBSCRIPTION:"Subscriptions"};for(let[u,l]of Object.entries(i)){let p=r.append(qf(u)),d=[];for(let m of a){let g=l[m];if(g==null||g.length===0)continue;let A=c[m],y=p.append(qf(A)),E=this.#A(g,y,n,m),v={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}:${m}`),type:"apiPackage",collapsed:void 0,children:E,title:A,slug:y.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};d.push(v)}let f={id:this.#p.get(`${this.apiDefinitionId}:graphql:namespace:${u}`),type:"apiPackage",collapsed:void 0,children:d,title:EP(u),slug:p.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(f)}for(let u of a){let l=o[u];if(l==null||l.length===0)continue;let p=c[u],d=r.append(qf(p)),f=this.#A(l,d,n,u),m={id:this.#p.get(`${this.apiDefinitionId}:graphql:${u}`),type:"apiPackage",collapsed:void 0,children:f,title:p,slug:d.get(),icon:void 0,hidden:this.hideChildren,overviewPageId:void 0,collapsible:void 0,collapsedByDefault:void 0,availability:kg(n),apiDefinitionId:this.apiDefinitionId,pointsTo:void 0,noindex:void 0,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0};s.push(m)}return s}#A(t,r,n,i){let o=i==="QUERY",s=new Map,a=[];for(let u of t){let l=hJu(u)?.[0];if(o&&l!=null){let p=s.get(l);p!=null?p.push(u):(s.set(l,[u]),a.push({type:"group",parentField:l}))}else a.push({type:"flat",operation:u})}let c=[];for(let u of a)if(u.type==="flat"){let l=hJu(u.operation),p=u.operation.name??u.operation.id,d=r;if(l!=null&&l.length>0)for(let f of l)d=d.append(qf(f));d=d.append(qf(p)),c.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${u.operation.id}`),type:"graphql",collapsed:void 0,operationType:u.operation.operationType,graphqlOperationId:xb.GraphQlOperationId(u.operation.id),graphqlOperationIds:void 0,apiDefinitionId:this.apiDefinitionId,availability:kg(n),title:u.operation.displayName??u.operation.name??u.operation.id,slug:d.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}else{let l=s.get(u.parentField)??[],p=l[0];if(p==null)continue;let d=r.append(qf(u.parentField));c.push({id:vt.V1.NodeId(`${this.apiDefinitionId}:${p.id}`),type:"graphql",collapsed:void 0,operationType:p.operationType,graphqlOperationId:xb.GraphQlOperationId(p.id),graphqlOperationIds:l.map(f=>xb.GraphQlOperationId(f.id)),apiDefinitionId:this.apiDefinitionId,availability:kg(n),title:u.parentField,slug:d.get(),icon:void 0,hidden:this.hideChildren,playground:void 0,authed:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}return c}#B(t,r,n){let i=t!=null?this.#e.resolveSubpackage(this.#e.getSubpackageByIdOrLocator(t)):void 0;return i==null?(this.taskContext.logger.debug(HXn(t||"unknown",[])),[]):this.#C(i,r,n)}#w(t){return XKu(t)}mergeEndpointPairs(t){return JXn({children:t,findEndpointById:r=>this.#e.endpoints.get(r),stringifyEndpointPathParts:r=>WR(r.path.parts),disableEndpointPairs:this.disableEndpointPairs,apiDefinitionId:this.apiDefinitionId})}getFileId(t){let r=this.collectedFileIds.get(t);return r??this.taskContext.failAndThrow("Failed to locate file after uploading: "+t,void 0,{code:B.Code.InternalError})}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}}});function n5m(e){return yJu.default.createHash("sha256").update(e).digest("hex")}var yJu,XXn,bJu=h(()=>{"use strict";zm();jt();yJu=be(require("crypto"),1);XXn=class e{static init(){return new e}constructor(){}#e=new Map;#t=new Set;#r(t){let r=this.#e.get(t)??0;return this.#e.set(t,r+1),n5m(r===0?t:`${t}-${r}`)}#n(t){let r=this.#r(t),n=0;for(;this.#t.has(r);)if(r=this.#r(t),n++,n>100)throw new B({message:`Infinite loop detected for id: ${t}`,code:B.Code.ReferenceError});return r}get(t){return vt.V1.NodeId(this.#n(t))}}});async function EJu({absolutePathToFernFolder:e}){let t=[];for(let r of i5m){let n=Ge(e,r);if(await $t(n)){let i=await sPt(n);t.push(...i.map(Vt.of))}}return t}var i5m,IJu=h(()=>{"use strict";Yt();i5m=[we.of(".well-known/skills"),we.of(".well-known/agent-skills")]});function vJu(e){return e==null?{}:{pythonSdk:e.python!=null?{package:typeof e.python=="string"?e.python:e.python.package,version:typeof e.python=="string"?void 0:e.python.version}:void 0,typescriptSdk:e.typescript!=null?{package:typeof e.typescript=="string"?e.typescript:e.typescript.package,version:typeof e.typescript=="string"?void 0:e.typescript.version}:void 0,goSdk:e.go!=null?{githubRepo:typeof e.go=="string"?e.go:e.go.package,version:typeof e.go=="string"?void 0:e.go.version}:void 0,javaSdk:e.java!=null?{coordinate:typeof e.java=="string"?e.java:e.java.package,version:typeof e.java=="string"?void 0:e.java.version}:void 0,rubySdk:e.ruby!=null?{gem:typeof e.ruby=="string"?e.ruby:e.ruby.package,version:typeof e.ruby=="string"?void 0:e.ruby.version}:void 0,csharpSdk:e.csharp!=null?{package:typeof e.csharp=="string"?e.csharp:e.csharp.package,version:typeof e.csharp=="string"?void 0:e.csharp.version}:void 0,phpSdk:e.php!=null?{package:typeof e.php=="string"?e.php:e.php.package,version:typeof e.php=="string"?void 0:e.php.version}:void 0,swiftSdk:e.swift!=null?{package:typeof e.swift=="string"?e.swift:e.swift.package,version:typeof e.swift=="string"?void 0:e.swift.version}:void 0,rustSdk:e.rust!=null?{package:typeof e.rust=="string"?e.rust:e.rust.package,version:typeof e.rust=="string"?void 0:e.rust.version}:void 0}}var xJu=h(()=>{"use strict"});var ZXn,CJu=h(()=>{"use strict";ZXn=class{selectors;constructor(t){this.selectors=t}matches(t,r){for(let n of this.selectors)if(this.pathMatches(t,n.path)&&(!n.method||n.method===r))return!0;return!1}pathMatches(t,r){if(t===r)return!0;let n=t.split("/").filter(o=>o.length>0),i=r.split("/").filter(o=>o.length>0);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let s=n[o],a=i[o];if(!s||!a)return!1;let c=s.startsWith("{")&&s.endsWith("}"),u=a.startsWith("{")&&a.endsWith("}");if(!(c&&u)&&s!==a)return!1}return!0}getMatchingPaths(t){let r=[];for(let[n,i]of Object.entries(t)){if(!i)continue;let o=["get","put","post","delete","options","head","patch","trace"];for(let s of o)if(i[s]&&this.matches(n,s)){r.includes(n)||r.push(n);break}}return r}}});var $Xn,wJu=h(()=>{"use strict";$Xn=class{document;schemas=new Set;parameters=new Set;responses=new Set;requestBodies=new Set;securitySchemes=new Set;headers=new Set;examples=new Set;links=new Set;callbacks=new Set;constructor(t){this.document=t}collectFromOperation(t){if(t.parameters)for(let r of t.parameters)this.collectParameter(r);if(t.requestBody&&this.collectFromRequestBody(t.requestBody),t.responses)for(let r of Object.values(t.responses))this.collectFromResponse(r);if(t.callbacks)for(let[r,n]of Object.entries(t.callbacks))if(this.isReference(n))this.callbacks.add(this.extractComponentName(n.$ref));else for(let i of Object.values(n))this.collectFromPathItem(i);if(t.security)for(let r of t.security)for(let n of Object.keys(r))this.securitySchemes.add(n)}collectFromPathItem(t){if(t.parameters)for(let n of t.parameters)this.collectParameter(n);let r=[t.get,t.put,t.post,t.delete,t.options,t.head,t.patch,t.trace];for(let n of r)n&&this.collectFromOperation(n)}collectParameter(t){if(this.isReference(t)){this.parameters.add(this.extractComponentName(t.$ref));let r=this.resolveParameter(t.$ref);r&&this.collectParameter(r)}else{if(t.schema&&this.collectFromSchema(t.schema),t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}}collectFromRequestBody(t){if(this.isReference(t)){this.requestBodies.add(this.extractComponentName(t.$ref));let r=this.resolveRequestBody(t.$ref);r&&this.collectFromRequestBody(r)}else if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r)}collectFromResponse(t){if(this.isReference(t)){this.responses.add(this.extractComponentName(t.$ref));let r=this.resolveResponse(t.$ref);r&&this.collectFromResponse(r)}else{if(t.headers)for(let[r,n]of Object.entries(t.headers))this.isReference(n)?this.headers.add(this.extractComponentName(n.$ref)):n.schema&&this.collectFromSchema(n.schema);if(t.content)for(let r of Object.values(t.content))this.collectFromMediaType(r);if(t.links)for(let[r,n]of Object.entries(t.links))this.isReference(n)&&this.links.add(this.extractComponentName(n.$ref))}}collectFromMediaType(t){if(t.schema&&this.collectFromSchema(t.schema),t.examples)for(let[r,n]of Object.entries(t.examples))this.isReference(n)&&this.examples.add(this.extractComponentName(n.$ref))}collectFromSchema(t){if(this.isReference(t)){let r=this.extractComponentName(t.$ref);if(!this.schemas.has(r)){this.schemas.add(r);let n=this.resolveSchema(t.$ref);n&&this.collectFromSchema(n)}}else{if(t.properties)for(let r of Object.values(t.properties))this.collectFromSchema(r);if(t.additionalProperties&&typeof t.additionalProperties=="object"&&this.collectFromSchema(t.additionalProperties),"items"in t&&t.items)if(Array.isArray(t.items))for(let r of t.items)this.collectFromSchema(r);else this.collectFromSchema(t.items);if(t.allOf)for(let r of t.allOf)this.collectFromSchema(r);if(t.oneOf)for(let r of t.oneOf)this.collectFromSchema(r);if(t.anyOf)for(let r of t.anyOf)this.collectFromSchema(r);t.not&&this.collectFromSchema(t.not)}}resolveSchema(t){let r=this.extractComponentName(t);return this.document.components?.schemas?.[r]}resolveParameter(t){let r=this.extractComponentName(t);return this.document.components?.parameters?.[r]}resolveResponse(t){let r=this.extractComponentName(t);return this.document.components?.responses?.[r]}resolveRequestBody(t){let r=this.extractComponentName(t);return this.document.components?.requestBodies?.[r]}isReference(t){return t!=null&&typeof t=="object"&&"$ref"in t}extractComponentName(t){let r=t.split("/");return r[r.length-1]??t}getSchemas(){return this.schemas}getParameters(){return this.parameters}getResponses(){return this.responses}getRequestBodies(){return this.requestBodies}getSecuritySchemes(){return this.securitySchemes}getHeaders(){return this.headers}getExamples(){return this.examples}getLinks(){return this.links}getCallbacks(){return this.callbacks}}});var i8t,SJu=h(()=>{"use strict";CJu();wJu();i8t=class{matcher;document;constructor(t){this.matcher=new ZXn(t.endpoints),this.document=JSON.parse(JSON.stringify(t.document))}prune(){let t=this.collectStatistics(),r=new $Xn(this.document),n={},i=this.matcher.getMatchingPaths(this.document.paths);for(let a of i){let c=this.document.paths[a];if(!c)continue;let u={};c.summary&&(u.summary=c.summary),c.description&&(u.description=c.description),c.servers&&(u.servers=c.servers),c.parameters&&(u.parameters=c.parameters);let l=["get","put","post","delete","options","head","patch","trace"];for(let p of l){let d=c[p];d&&this.matcher.matches(a,p)&&(u[p]=d,r.collectFromOperation(d))}if(c.parameters)for(let p of c.parameters)r.collectParameter(p);n[a]=u}let o={openapi:this.document.openapi,info:this.document.info,paths:n};if(this.document.servers&&(o.servers=this.document.servers),this.document.externalDocs&&(o.externalDocs=this.document.externalDocs),this.document.tags){let a=new Set;for(let c of Object.values(n)){let u=["get","put","post","delete","options","head","patch","trace"];for(let l of u){let p=c?.[l];if(p?.tags)for(let d of p.tags)a.add(d)}}o.tags=this.document.tags.filter(c=>a.has(c.name))}if(this.document.security){o.security=this.document.security;for(let a of this.document.security)for(let c of Object.keys(a))r.getSecuritySchemes().add(c)}o.components=this.buildPrunedComponents(r);let s=this.collectPrunedStatistics(o);return{document:o,statistics:{originalEndpoints:t.originalEndpoints,prunedEndpoints:s.originalEndpoints,originalSchemas:t.originalSchemas,prunedSchemas:s.originalSchemas,originalParameters:t.originalParameters,prunedParameters:s.originalParameters,originalResponses:t.originalResponses,prunedResponses:s.originalResponses,originalRequestBodies:t.originalRequestBodies,prunedRequestBodies:s.originalRequestBodies,originalSecuritySchemes:t.originalSecuritySchemes,prunedSecuritySchemes:s.originalSecuritySchemes}}}buildPrunedComponents(t){if(!this.document.components)return;let r={};if(this.document.components.schemas&&t.getSchemas().size>0){r.schemas={};for(let n of t.getSchemas()){let i=this.document.components.schemas[n];i&&(r.schemas[n]=i)}}if(this.document.components.parameters&&t.getParameters().size>0){r.parameters={};for(let n of t.getParameters()){let i=this.document.components.parameters[n];i&&(r.parameters[n]=i)}}if(this.document.components.responses&&t.getResponses().size>0){r.responses={};for(let n of t.getResponses()){let i=this.document.components.responses[n];i&&(r.responses[n]=i)}}if(this.document.components.requestBodies&&t.getRequestBodies().size>0){r.requestBodies={};for(let n of t.getRequestBodies()){let i=this.document.components.requestBodies[n];i&&(r.requestBodies[n]=i)}}if(this.document.components.securitySchemes&&t.getSecuritySchemes().size>0){r.securitySchemes={};for(let n of t.getSecuritySchemes()){let i=this.document.components.securitySchemes[n];i&&(r.securitySchemes[n]=i)}}if(this.document.components.headers&&t.getHeaders().size>0){r.headers={};for(let n of t.getHeaders()){let i=this.document.components.headers[n];i&&(r.headers[n]=i)}}if(this.document.components.examples&&t.getExamples().size>0){r.examples={};for(let n of t.getExamples()){let i=this.document.components.examples[n];i&&(r.examples[n]=i)}}if(this.document.components.links&&t.getLinks().size>0){r.links={};for(let n of t.getLinks()){let i=this.document.components.links[n];i&&(r.links[n]=i)}}if(this.document.components.callbacks&&t.getCallbacks().size>0){r.callbacks={};for(let n of t.getCallbacks()){let i=this.document.components.callbacks[n];i&&(r.callbacks[n]=i)}}return Object.keys(r).length>0?r:void 0}collectStatistics(){let t=0;for(let r of Object.values(this.document.paths)){if(!r)continue;let n=["get","put","post","delete","options","head","patch","trace"];for(let i of n)r[i]&&t++}return{originalEndpoints:t,prunedEndpoints:0,originalSchemas:Object.keys(this.document.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(this.document.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(this.document.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(this.document.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(this.document.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}collectPrunedStatistics(t){let r=0;for(let n of Object.values(t.paths)){if(!n)continue;let i=["get","put","post","delete","options","head","patch","trace"];for(let o of i)n[o]&&r++}return{originalEndpoints:r,prunedEndpoints:0,originalSchemas:Object.keys(t.components?.schemas??{}).length,prunedSchemas:0,originalParameters:Object.keys(t.components?.parameters??{}).length,prunedParameters:0,originalResponses:Object.keys(t.components?.responses??{}).length,prunedResponses:0,originalRequestBodies:Object.keys(t.components?.requestBodies??{}).length,prunedRequestBodies:0,originalSecuritySchemes:Object.keys(t.components?.securitySchemes??{}).length,prunedSecuritySchemes:0}}}});var TJu=h(()=>{"use strict";SJu()});function U7o(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=Object.keys(t);if(r.length===0||r.length>2)return!1;let n="type"in t&&typeof t.type=="string",i="value"in t;return n&&r.length===1||n&&i&&r.length===2||i&&r.length===1}function PBe(e){if(e==null)return e;if(Array.isArray(e))return e.map(PBe);if(typeof e!="object")return e;let t=e;if(U7o(t))return"value"in t?PBe(t.value):void 0;let r={};for(let[n,i]of Object.entries(t)){let o=PBe(i);o!==void 0&&(r[n]=o)}return r}function V7o(e){return e==null?!0:typeof e!="object"?!1:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function eZn(e,t,r,n){let i={},o={},s={};if(e==null||typeof e!="object"||Array.isArray(e))return{filteredBody:e,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s};let a=e,c={},u=new Set(Object.keys(t??{})),l=new Set(Object.keys(r??{})),p=new Set(Object.keys(n??{}));for(let[d,f]of Object.entries(a)){let m=d.toLowerCase().replace(/[-_]/g,""),g=!1,A=!1,y=!1;for(let E of u){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){g=!0,i[E]=f;break}}if(!g)for(let E of l){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){A=!0,o[E]=f;break}}if(!g&&!A)for(let E of p){let v=E.toLowerCase().replace(/[-_]/g,"");if(m===v){y=!0,s[E]=f;break}}!g&&!A&&!y&&(c[d]=f)}return{filteredBody:c,extractedPathParams:i,extractedQueryParams:o,extractedHeaders:s}}var _7o=h(()=>{"use strict"});var o5m,s5m,tZn,OJu=h(()=>{"use strict";Dt();om();jt();o5m=0,s5m=15e3,tZn=class{config;context;lambdaOrigin;venusOrigin;token;jwtPromise;organizationId;venusAirGappedResult;constructor(t,r,n,i){this.config={enabled:t.enabled,openaiApiKey:t.openaiApiKey,model:t.model??"gpt-4o-mini",maxRetries:t.maxRetries??o5m,requestTimeoutMs:t.requestTimeoutMs??s5m,styleInstructions:t.styleInstructions},this.context=r;let o="https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws";if(!o)throw new B({message:"DEFAULT_FDR_LAMBDA_DOCS_ORIGIN environment variable is not set. AI example enhancement requires this to be configured.",code:B.Code.EnvironmentError});this.lambdaOrigin=o,this.venusOrigin="https://venus.buildwithfern.com",this.token=n,this.organizationId=i}async isVenusAirGapped(){if(this.venusAirGappedResult!==void 0)return this.venusAirGappedResult;this.context.logger.debug(`Checking Venus connectivity at ${this.venusOrigin}/health`);try{return await fetch(`${this.venusOrigin}/health`,{method:"GET",signal:AbortSignal.timeout(5e3)}),this.venusAirGappedResult=!1,this.context.logger.debug("Venus connectivity check succeeded"),!1}catch(t){let r=zn(t);return PLt(r)?(this.venusAirGappedResult=!0,this.context.logger.debug(`Venus connectivity check failed - air-gapped mode: ${r}`),!0):(this.venusAirGappedResult=!1,!1)}}async getJwt(){return this.jwtPromise==null&&(this.jwtPromise=this.fetchJwtFromVenus()),this.jwtPromise}async fetchJwtFromVenus(){this.context.logger.debug("Fetching JWT from Venus for AI example enhancement"),this.context.logger.debug(`Token type: ${this.token.type}`),this.context.logger.debug(`Token value (first 10 chars): ${this.token.value.substring(0,10)}...`),this.context.logger.debug(`Token value starts with 'fern_': ${this.token.value.startsWith("fern_")}`),this.context.logger.debug(`Venus origin: ${this.venusOrigin}`),this.context.logger.debug(`Organization ID: ${this.organizationId}`);let t=await fetch(`${this.venusOrigin}/auth/jwt`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token.value}`},body:JSON.stringify({organizationId:this.organizationId}),signal:AbortSignal.timeout(1e4)});if(!t.ok){let n=await t.text();throw new B({message:`Failed to fetch JWT from Venus: ${t.status} ${n||t.statusText}`,code:B.Code.NetworkError})}let r=await t.json();return this.context.logger.debug(`Successfully obtained JWT from Venus (expires at ${r.expiresAt})`),r.token}async enhanceExample(t){if(!this.config.enabled)return{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};if(await this.isVenusAirGapped())return this.context.logger.debug("Skipping AI example enhancement - Venus is not reachable"),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample};let n;try{n=await this.getJwt()}catch(s){return this.context.logger.warn(`Failed to obtain JWT from Venus: ${s}. AI example enhancement will be skipped.`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}let i,o=this.config.maxRetries+1;for(let s=1;s<=o;s++)try{this.context.logger.debug(`Enhancing example for ${t.method} ${t.endpointPath} via lambda (attempt ${s}/${o})`);let a={method:t.method,endpointPath:t.endpointPath,organizationId:t.organizationId,operationSummary:t.operationSummary,operationDescription:t.operationDescription,originalRequestExample:t.originalRequestExample,originalResponseExample:t.originalResponseExample,openApiSpec:t.openApiSpec,exampleStyleInstructions:t.exampleStyleInstructions??this.config.styleInstructions};this.context.logger.debug(`Sending to enhanceExamples: ${JSON.stringify({...a,openApiSpec:t.openApiSpec?`[OpenAPI spec present: ${t.openApiSpec.length} chars]`:"[No OpenAPI spec]"},null,2)}`);let c=await fetch(`${this.lambdaOrigin}/v2/registry/ai/enhance-example`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify(a),signal:AbortSignal.timeout(this.config.requestTimeoutMs)});if(!c.ok){let l=await c.text();throw new B({message:`Lambda returned ${c.status}: ${l||c.statusText}`,code:B.Code.NetworkError})}let u=await c.json();return{enhancedRequestExample:u.enhancedRequestExample??t.originalRequestExample,enhancedResponseExample:u.enhancedResponseExample??t.originalResponseExample}}catch(a){if(i=a,this.context.logger.debug(`Attempt ${s} failed to enhance example: ${a}`),s<o){let c=Math.min(1e3*Math.pow(2,s-1),1e4);await new Promise(u=>setTimeout(u,c))}}return this.context.logger.error(`Failed to enhance example after ${o} attempts: ${i?.message}`),{enhancedRequestExample:t.originalRequestExample,enhancedResponseExample:t.originalResponseExample}}}});var yyt,BJu=h(()=>{"use strict";yyt=class e{static instance;currentApiId;queue=[];progress=new Map;constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}create(t,r,n){let i=`${t}-${Date.now()}-${Math.random()}`;return this.progress.set(i,{apiName:t,completed:0,total:r,endpointsSample:n}),this.queue.push(i),this.currentApiId||(this.currentApiId=i,this.updateSpinnerStatus()),i}update(t,r){let n=this.progress.get(t);n&&(n.completed=r,t===this.currentApiId&&this.updateSpinnerStatus())}finish(t){this.progress.delete(t);let r=this.queue.indexOf(t);r!==-1&&this.queue.splice(r,1),t===this.currentApiId&&(this.queue.length>0?(this.currentApiId=this.queue[0],this.updateSpinnerStatus()):(this.currentApiId=void 0,delete process.env.FERN_SPINNER_STATUS))}updateSpinnerStatus(){if(!this.currentApiId){delete process.env.FERN_SPINNER_STATUS;return}let t=this.progress.get(this.currentApiId);if(t){let r=`auto-generating examples for endpoints - ${t.apiName}`;t.endpointsSample&&(r+=` (${t.endpointsSample})`),r+=` - ${t.completed}/${t.total}`,process.env.FERN_SPINNER_STATUS=r}}}});async function a5m(e,t){let r=Vt.of(`${An(e)}/ai_examples_override.yml`),n=[];try{let i=await(0,rZn.readFile)(r,"utf-8"),o=vr.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object"){for(let[u,l]of Object.entries(c))if(l&&typeof l=="object"&&"x-fern-examples"in l){let p=l["x-fern-examples"];if(Array.isArray(p)){for(let d of p)if(typeof d=="object"&&d!==null){let f=d;n.push({endpointPath:a,method:u.toUpperCase(),pathParameters:f["path-parameters"],queryParameters:f["query-parameters"],headers:f.headers,request:f.request,response:f.response})}}}}}t.logger.debug(`Parsed ${n.length} AI examples from ai_examples_override.yml`)}catch(i){t.logger.debug(`No existing ai_examples_override.yml found or error reading it: ${i}`)}return n}async function q7o({sourceFilePath:e,context:t}){let r=await a5m(e,t);if(r.length===0)return{validExamples:[],invalidExamples:[],totalExamples:0,validCount:0,invalidCount:0};let n;try{let u=await(0,rZn.readFile)(e,"utf-8");try{n=JSON.parse(u)}catch{n=vr.load(u)}}catch(u){return t.logger.warn(`Failed to read OpenAPI spec file: ${u}`),{validExamples:r,invalidExamples:[],totalExamples:r.length,validCount:r.length,invalidCount:0}}let i=new e_({logger:t.logger}),o=new Npe({namespace:void 0,generationLanguage:"typescript",logger:t.logger,smartCasing:!1,spec:n,exampleGenerationArgs:{disabled:!1},errorCollector:i,enableUniqueErrorsPerEndpoint:!1,generateV1Examples:!1,settings:D7()}),s=new r6e({context:o}),{validExamples:a,invalidExamples:c}=s.validateAiExamples({aiExamples:r,spec:n});if(c.length>0){t.logger.info(`Found ${c.length} stale AI examples that need to be regenerated out of ${r.length} total`);for(let{example:u,validationResult:l}of c)t.logger.debug(`Stale AI example: ${u.method} ${u.endpointPath} - ${l.errors.map(p=>p.message).join(", ")}`)}return{validExamples:a,invalidExamples:c,totalExamples:r.length,validCount:a.length,invalidCount:c.length}}async function PJu({sourceFilePath:e,context:t}){let r=await q7o({sourceFilePath:e,context:t});if(r.invalidCount===0)return t.logger.debug("No invalid AI examples to remove"),{removedCount:0,remainingCount:r.totalExamples};let n=Vt.of(`${An(e)}/ai_examples_override.yml`);try{let i=await(0,rZn.readFile)(n,"utf-8"),o=vr.load(i);if(!o||!o.paths)return{removedCount:0,remainingCount:r.totalExamples};let s=new Set(r.invalidExamples.map(({example:u})=>`${u.method.toLowerCase()}:${u.endpointPath}`));for(let[u,l]of Object.entries(o.paths))if(l&&typeof l=="object"){for(let p of Object.keys(l)){let d=`${p.toLowerCase()}:${u}`;s.has(d)&&delete l[p]}Object.keys(l).length===0&&delete o.paths[u]}let{writeFile:a}=await import("fs/promises"),c=vr.dump(o,{indent:2,lineWidth:-1,noRefs:!0});return await a(n,c,"utf-8"),t.logger.info(`Removed ${r.invalidCount} invalid AI examples from ai_examples_override.yml`),{removedCount:r.invalidCount,remainingCount:r.validCount}}catch(i){return t.logger.warn(`Failed to remove invalid AI examples: ${i}`),{removedCount:0,remainingCount:r.totalExamples}}}var rZn,DJu=h(()=>{"use strict";Gp();Yt();yLr();ns();rZn=require("fs/promises");us()});async function G7o(e,t){let r=Vt.of(`${An(e)}/ai_examples_override.yml`),n=new Set;try{let i=await(0,o8t.readFile)(r,"utf-8"),o=vr.load(i);if(o&&typeof o=="object"&&"paths"in o){let s=o.paths;for(let[a,c]of Object.entries(s))if(c&&typeof c=="object")for(let u of Object.keys(c)){let l=`${u.toLowerCase()}:${a}`;n.add(l)}}t.logger.debug(`Loaded ${n.size} covered endpoints from ai_examples_override.yml`)}catch{t.logger.debug("No existing ai_examples_override.yml found or error reading it")}return n}async function nZn({enhancedExamples:e,sourceFilePath:t,context:r}){if(e.length===0){r.logger.debug("No enhanced examples to write");return}let n=new Map;for(let s of e){let a=n.get(s.endpoint)||[];a.push(s),n.set(s.endpoint,a)}let i={paths:{}};for(let[s,a]of n.entries()){let c=new Map;for(let u of a){let l=c.get(u.method.toLowerCase())||[];l.push(u),c.set(u.method.toLowerCase(),l)}i.paths[s]||(i.paths[s]={});for(let[u,l]of c.entries()){let p=l.map((f,m)=>{let g={},A={...f.pathParameters??{}},y={...f.queryParameters??{}},E={...f.headers??{}},v={...E};if(f.headerParameterNames)for(let M of f.headerParameterNames)M in v||(v[M]="");let I={};if(f.queryParameterNames)for(let M of f.queryParameterNames)I[M]=y[M]??"";let C={};if(f.pathParameterNames)for(let M of f.pathParameterNames)C[M]=A[M]??"";let w=f.requestBody;w!=null&&typeof w=="object"&&!Array.isArray(w)&&"body"in w&&(w=w.body);let T=PBe(w),P=T;if(T!==void 0){let{filteredBody:M,extractedPathParams:K,extractedQueryParams:Y,extractedHeaders:Z}=eZn(T,C,I,v);P=M;for(let[ae,le]of Object.entries(K))le!=null&&le!==""&&(A[ae]=le);for(let[ae,le]of Object.entries(Y))le!=null&&le!==""&&(y[ae]=le);for(let[ae,le]of Object.entries(Z))le!=null&&le!==""&&(E[ae]=le)}Object.keys(A).length>0&&(g["path-parameters"]=A),Object.keys(y).length>0&&(g["query-parameters"]=y),Object.keys(E).length>0&&(g.headers=E),P!==void 0&&!V7o(P)&&(g.request=P);let O=PBe(f.responseBody);return O!==void 0&&!V7o(O)&&(g.response={body:O}),g}),d=i.paths[s];d&&(d[u]={"x-fern-examples":p})}}let o=Vt.of(`${An(t)}/ai_examples_override.yml`);try{let s={};try{let u=await(0,o8t.readFile)(o,"utf-8"),l=vr.load(u);l&&typeof l=="object"&&(s=l)}catch{r.logger.debug("No existing ai_examples_override.yml found, creating new file")}let a={paths:{}};if(s.paths){for(let[u,l]of Object.entries(s.paths))if(l&&typeof l=="object"){a.paths[u]={};for(let[p,d]of Object.entries(l))d&&typeof d=="object"&&"x-fern-examples"in d&&(a.paths[u][p]={"x-fern-examples":d["x-fern-examples"]||[]})}}for(let[u,l]of Object.entries(i.paths)){a.paths[u]||(a.paths[u]={});for(let[p,d]of Object.entries(l))a.paths[u][p]?r.logger.debug(`Skipping ${p.toUpperCase()} ${u} - examples already exist in override file`):(a.paths[u][p]=d,r.logger.debug(`Adding new examples for ${p.toUpperCase()} ${u}`))}let c=vr.dump(a,{indent:2,lineWidth:-1,noRefs:!0});await(0,o8t.writeFile)(o,c,"utf-8"),r.logger.debug(`AI enhanced examples written to: ${o}`)}catch(s){throw r.logger.warn(`Failed to write AI examples override file: ${s}`),s}}var o8t,RJu=h(()=>{"use strict";Yt();o8t=require("fs/promises");us();_7o()});function c5m(e){try{try{let t=JSON.parse(e);return!!(t.openapi||t.swagger)}catch{let t=VJe(e);return!!(t?.openapi||t?.swagger)}}catch{return!1}}function u5m(e,t){let r=e[0];if(r==null)return{openapi:"3.0.0",info:{title:"",version:""},paths:{}};let n={...r};n.paths={...n.paths},n.components&&(n.components={...n.components},n.components.schemas&&(n.components.schemas={...n.components.schemas}));for(let i of e.slice(1)){if(i.paths)for(let[o,s]of Object.entries(i.paths))n.paths[o]==null&&(n.paths[o]=s);if(i.components?.schemas){n.components||(n.components={}),n.components.schemas||(n.components.schemas={});for(let[o,s]of Object.entries(i.components.schemas))n.components.schemas[o]==null&&(n.components.schemas[o]=s)}}return t.logger.debug(`Combined spec has ${Object.keys(n.paths??{}).length} paths`),n}function jJu(e,t){if(t.includes(e))return e;for(let r of t){let n=r.replace(/\{[^}]+\}/g,"([^/]+)");if(new RegExp(`^${n}$`).test(e))return r}}function K7o(e,t,r,n){try{let i=JSON.parse(e);if(!i.paths)return[];let o=Object.keys(i.paths),s=jJu(t,o);if(!s)return[];let a=i.paths[s];if(!a)return[];let c=a[r.toLowerCase()];if(!c)return[];let u=[],l=[...a.parameters??[],...c.parameters??[]];for(let p of l)"$ref"in p||p.in===n&&u.push(p.name);return u}catch{return[]}}function l5m(e,t,r){return K7o(e,t,r,"header")}function p5m(e,t,r){return K7o(e,t,r,"query")}function f5m(e,t,r){return K7o(e,t,r,"path")}async function d5m(e,t,r){try{let n;try{n=JSON.parse(e)}catch{n=VJe(e)}if(!n.openapi||!n.paths){r.logger.debug("Invalid OpenAPI spec structure, skipping pruning");return}let i=Object.keys(n.paths);r.logger.debug(`OpenAPI spec contains ${i.length} paths`);let o=[];for(let p of t){let d=jJu(p.path,i);d?(o.push({path:d,method:p.method.toLowerCase()}),r.logger.debug(`Mapped ${p.path} to OpenAPI path: ${d}`)):r.logger.debug(`No matching OpenAPI path found for ${p.path}`)}if(o.length===0){r.logger.debug("No endpoints matched in OpenAPI spec");return}let a=new i8t({document:n,endpoints:o}).prune();r.logger.debug(`Pruned OpenAPI spec for batch: ${a.statistics.originalEndpoints} \u2192 ${a.statistics.prunedEndpoints} endpoints, ${a.statistics.originalSchemas} \u2192 ${a.statistics.prunedSchemas} schemas`);let c=JSON.stringify(a.document,null,2);if(c.length>15e5){r.logger.debug(`Pruned OpenAPI spec still too large (${c.length} characters), skipping spec context for AI enhancement`);return}r.logger.debug(`Pruned spec size: ${c.length} characters (within limit)`);let u=o.map(p=>`${(p.method||"unknown").toUpperCase()}_${p.path.replace(/\//g,"_").replace(/[{}]/g,"")}`),l=`batch_${o.length}endpoints_${u.join("_").substring(0,100)}_pruned_spec.yaml`;return c}catch(n){return r.logger.debug(`Failed to prune OpenAPI spec: ${n}. Using original spec.`),e}}async function Eyt(e,t,r,n,i,o,s){if(!t.enabled)return r.logger.debug("AI example enhancement is disabled"),e;try{return await m5m(e,t,r,n,i,o,s)}catch(a){return r.logger.debug(`AI example enhancement failed with error: ${a}. Continuing with original API definition to prevent CLI crash.`),r.logger.debug(`Full AI enhancement error stack: ${a instanceof Error?a.stack:String(a)}`),e}}async function m5m(e,t,r,n,i,o,s){let a=new tZn(t,r,n,i),c=new W7o,u,l=new Set,p=o?.[0]?.absoluteFilePath;if(o!=null&&o.length>0){let y=[];for(let E of o)try{let v=await(0,iZn.readFile)(E.absoluteFilePath,"utf-8");if(E.absoluteFilePathToOverrides!=null){let C=Array.isArray(E.absoluteFilePathToOverrides)?E.absoluteFilePathToOverrides:[E.absoluteFilePathToOverrides];try{let w;try{w=JSON.parse(v)}catch{w=VJe(v,{json:!0})}for(let T of C){let P=await(0,iZn.readFile)(T,"utf-8"),O;try{O=JSON.parse(P)}catch{O=VJe(P,{json:!0})}w=J4({data:w,overrides:O})}v=WFt(w),r.logger.debug("Applied overrides to OpenAPI spec for AI enhancement")}catch(w){r.logger.debug(`Failed to apply overrides to spec: ${w}. Using raw spec.`)}}if(!c5m(v)){r.logger.debug(`Non-OpenAPI spec detected at ${E.absoluteFilePath}, skipping`);continue}let I;try{I=JSON.parse(v)}catch{I=VJe(v)}y.push(I),r.logger.debug(`Loaded OpenAPI spec from ${E.absoluteFilePath} (${v.length} characters)`)}catch(v){r.logger.debug(`Failed to read OpenAPI spec file ${E.absoluteFilePath}: ${v}`)}if(y.length>0){let E=u5m(y,r);u=JSON.stringify(E,null,2),r.logger.debug(`Combined ${y.length} OpenAPI spec(s) for AI enhancement`)}for(let E of o)try{let v=await G7o(E.absoluteFilePath,r),I=await q7o({sourceFilePath:E.absoluteFilePath,context:r});if(I.invalidCount>0){for(let{example:w}of I.invalidExamples){let T=`${w.method.toLowerCase()}:${w.endpointPath}`;l.add(T)}let C=await PJu({sourceFilePath:E.absoluteFilePath,context:r});r.logger.info(`Removed ${C.removedCount} stale AI examples from ${E.absoluteFilePath}, ${l.size} endpoints will be regenerated`)}else r.logger.debug("No stale AI examples found to remove")}catch(v){r.logger.debug(`Failed to clean up stale AI examples: ${v}`)}}let d=new Set;if(o!=null&&o.length>0){for(let y of o){let E=await G7o(y.absoluteFilePath,r);for(let v of E)l.has(v)||d.add(v)}l.size>0&&r.logger.debug(`Coverage adjusted: ${d.size} preserved, ${l.size} marked for regeneration`)}let f={count:0,total:0},m=[],g=await h5m(e,a,r,i,f,m,d,l,u,p,s,c);if(m.length>0&&p!=null)try{await nZn({enhancedExamples:m,sourceFilePath:p,context:r})}catch(y){r.logger.debug(`Failed to write AI examples override file: ${y}`)}let A=QJu(g);return r.logger.debug(`AI Enhancement Summary - Total endpoints in API: ${A}, Enhanced: ${f.count}/${f.total}, Covered: ${d.size}`),g}async function h5m(e,t,r,n,i,o,s,a,c,u,l,p){let d=[];for(let[C,w]of Object.entries(e.subpackages)){let T=FJu(w,s,a,r);d.push(...T.map(P=>({...P,packageId:C})))}let f=FJu(e.rootPackage,s,a,r);d.push(...f.map(C=>({...C,packageId:"root"})));let m=QJu(e);i.total+=d.length,r.logger.debug(`AI Examples Enhancement: ${d.length} endpoints need enhancement out of ${m} total endpoints (${s.size} already covered)`),r.logger.debug(`Collected ${d.length} work items across all packages`);let g=yyt.getInstance(),A=g.create(l||"API",d.length),y={count:0,total:d.length},E=await g5m(d,t,r,n,i,o,c,u,A,y,p);g.finish(A);let v={};for(let[C,w]of Object.entries(e.subpackages)){let T=kJu(w,E);v[C]=T}let I=kJu(e.rootPackage,E);return r.logger.debug(`AI Examples Enhancement Complete: ${y?.count||0}/${d.length} endpoints enhanced successfully (${m} total endpoints in API)`),{...e,subpackages:v,rootPackage:I}}function QJu(e){let t=0;t+=e.rootPackage.endpoints.length;for(let r of Object.values(e.subpackages))t+=r.endpoints.length;return t}function FJu(e,t,r,n){let i=[],o=new Set,s={totalEndpoints:e.endpoints.length,alreadyCovered:0,notAutogenerated:0,noExistingExamples:0,alreadyProcessed:0,noExamples:0,processed:0};for(let a of e.endpoints){let c=a;if(!b5m(c))for(let l of c.examples){let p=`${c.method.toLowerCase()}:${l.path}`;if(o.has(p)){s.alreadyProcessed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already processed in this run`);continue}let d=r?.has(p);if(!d&&t.has(p)){s.alreadyCovered++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: already covered (has AI-enhanced examples)`);continue}if(!d&&!y5m(l,n,p)){s.notAutogenerated++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: has human-written examples (not auto-generated)`);continue}let f=byt(l.requestBodyV3),m=byt(l.responseBodyV3);if(!d&&!f&&!m){s.noExistingExamples++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} skipped: no existing request/response examples to enhance`);continue}i.push({endpoint:c,example:l,endpointKey:p}),s.processed++,n?.logger.debug(`Endpoint ${c.method.toUpperCase()} ${l.path} selected for AI enhancement`),o.add(p);break}}return n&&(n.logger.debug(`Endpoint Filtering Results: ${s.processed}/${s.totalEndpoints} endpoints selected for AI enhancement`),n.logger.debug(`Filtering breakdown - Already covered: ${s.alreadyCovered}, Not auto-generated: ${s.notAutogenerated}, No existing examples: ${s.noExistingExamples}, No examples at all: ${s.noExamples}, Already processed: ${s.alreadyProcessed}, Selected: ${s.processed}`)),i}async function g5m(e,t,r,n,i,o,s,a,c,u,l){let p=parseInt(process.env.FERN_AI_MAX_CONCURRENT||"25",10);if(r.logger.debug(`Processing ${e.length} endpoints with max ${p} concurrent Lambda calls using rolling window queue`),l?.shouldSkip())return r.logger.debug(`Circuit breaker is open after ${l.getFailureCount()} failures (threshold: ${l.getThreshold()}). Skipping AI enhancement for remaining endpoints.`),new Map;let d=0,f=0,m=Math.max(10,Math.floor(e.length/20)),g=(I,C)=>{if(c&&u&&yyt.getInstance().update(c,I.completed),l?.shouldSkip()){r.logger.debug(`Circuit breaker opened during processing. Processed ${I.completed} endpoints.`);return}a&&o.length>0&&I.completed-f>=m&&(nZn({enhancedExamples:o,sourceFilePath:a,context:r}).then(()=>{r.logger.debug(`Saved ${o.length} examples after ${I.completed} completions`)}).catch(T=>{r.logger.debug(`Failed to save incremental results: ${T}`)}),f=I.completed)},A=e.map((I,C)=>async()=>{try{if(l?.shouldSkip())return{endpointKey:I.endpointKey,success:!1,error:"Circuit breaker is open"};let w=await A5m(I,t,r,n,i,o,s,a,c,u,C+1,l);return w?{endpointKey:w.endpointKey,enhancedReq:w.enhancedReq,enhancedRes:w.enhancedRes,extractedHeaders:w.extractedHeaders,extractedPathParams:w.extractedPathParams,extractedQueryParams:w.extractedQueryParams,success:!0}:{endpointKey:I.endpointKey,success:!1,error:"processEndpoint returned null"}}catch(w){return r.logger.debug(`Work item factory error for ${I.endpointKey}: ${w}`),{endpointKey:I.endpointKey,success:!1,error:String(w)}}}),y=new H7o(p,g),E=await y.processAll(A);if(a&&o.length>0)try{await nZn({enhancedExamples:o,sourceFilePath:a,context:r}),r.logger.debug(`Final save: ${o.length} examples saved`)}catch(I){r.logger.debug(`Failed to save final results: ${I}`)}let v=y.getStats();return r.logger.debug(`Completed processing: ${v.completed} succeeded, ${v.failed} failed`),E}async function A5m(e,t,r,n,i,o,s,a,c,u,l,p){let d=e.endpointKey;r.logger.debug(`Processing endpoint ${l}: ${e.endpoint.method} ${e.example.path}`);let f;if(s&&(f=await d5m(s,[{path:e.example.path,method:e.endpoint.method}],r),f!=null&&f.length>4e4))return r.logger.debug(`Skipping AI enhancement for ${e.endpoint.method} ${e.example.path}: pruned OpenAPI spec is ${f.length} characters (>40k limit)`),null;let m={method:e.endpoint.method,endpointPath:e.example.path,organizationId:n,operationSummary:e.endpoint.summary,operationDescription:e.endpoint.description,originalRequestExample:byt(e.example.requestBodyV3),originalResponseExample:byt(e.example.responseBodyV3),pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,openApiSpec:f};try{let g=await t.enhanceExample(m);if(p?.recordSuccess(),g.enhancedRequestExample!=null&&m.originalRequestExample!=null){let E=I5m(g.enhancedRequestExample),v=E5m(m.originalRequestExample,"body");E.wasWrapped&&!v?g.enhancedRequestExample=NJu(E.inner,m.originalRequestExample):g.enhancedRequestExample=NJu(g.enhancedRequestExample,m.originalRequestExample)}let A=g.enhancedRequestExample!==m.originalRequestExample,y=g.enhancedResponseExample!==m.originalResponseExample;if(A||y){let E=f?l5m(f,e.example.path,e.endpoint.method):[],v=f?p5m(f,e.example.path,e.endpoint.method):[],I=f?f5m(f,e.example.path,e.endpoint.method):[],C={...e.example.headers??{}};if(E.length>0)for(let ce of E)ce in C||(C[ce]="");let w={};for(let ce of v)w[ce]=e.example.queryParameters?.[ce]??"";let T={};for(let ce of I)T[ce]=e.example.pathParameters?.[ce]??"";let P=PBe(g.enhancedRequestExample),{filteredBody:O,extractedPathParams:M,extractedQueryParams:K,extractedHeaders:Y}=eZn(P,T,w,C),Z={...e.example.headers??{}};for(let[ce,Te]of Object.entries(Y))Te!=null&&Te!==""&&(Z[ce]=Te);let ae={...e.example.pathParameters??{}};for(let[ce,Te]of Object.entries(M))Te!=null&&Te!==""&&(ae[ce]=Te);let le={...e.example.queryParameters??{}};for(let[ce,Te]of Object.entries(K))Te!=null&&Te!==""&&(le[ce]=Te);let oe={endpoint:e.example.path,method:e.endpoint.method,pathParameters:e.example.pathParameters,queryParameters:e.example.queryParameters,headers:e.example.headers,requestBody:A?g.enhancedRequestExample:void 0,responseBody:y?g.enhancedResponseExample:void 0,headerParameterNames:E.length>0?E:void 0,queryParameterNames:v.length>0?v:void 0,pathParameterNames:I.length>0?I:void 0};return o.push(oe),i.count++,u&&u.count++,r.logger.debug(`Successfully enhanced ${e.endpoint.method} ${e.example.path}`),c&&u&&yyt.getInstance().update(c,u.count),{endpointKey:d,enhancedReq:O,enhancedRes:g.enhancedResponseExample,extractedHeaders:Object.keys(Z).length>0?Z:void 0,extractedPathParams:Object.keys(ae).length>0?ae:void 0,extractedQueryParams:Object.keys(le).length>0?le:void 0}}return r.logger.debug(`No changes needed for ${e.endpoint.method} ${e.example.path}`),{endpointKey:d,enhancedReq:g.enhancedRequestExample,enhancedRes:g.enhancedResponseExample}}catch(g){p?.recordFailure(),r.logger.debug(`Endpoint ${e.endpoint.method} ${e.example.path} failed: ${g}`)}return r.logger.debug(`Failed to enhance ${e.endpoint.method} ${e.example.path}`),null}function kJu(e,t){let r=e.endpoints.map(n=>{let i=n,o=i.examples.map(s=>{let a=`${i.method.toLowerCase()}:${s.path}`,c=t.get(a);if(c){let u={...s};if(c.enhancedReq!==void 0)if(u.requestBody=c.enhancedReq,s.requestBodyV3)if(typeof s.requestBodyV3.value=="object"&&s.requestBodyV3.value!==null&&!Array.isArray(s.requestBodyV3.value)&&Object.values(s.requestBodyV3.value).some(p=>U7o(p))){let p=c.enhancedReq,d=s.requestBodyV3.value,f={};for(let[m,g]of Object.entries(d))m in p?f[m]={...g,value:p[m]}:f[m]=g;u.requestBodyV3={...s.requestBodyV3,value:f}}else u.requestBodyV3={...s.requestBodyV3,value:c.enhancedReq};else u.requestBodyV3={type:"json",value:c.enhancedReq};return c.enhancedRes!==void 0&&(u.responseBody=c.enhancedRes,u.responseBodyV3=s.responseBodyV3?{...s.responseBodyV3,value:c.enhancedRes}:{type:"json",value:c.enhancedRes}),c.extractedHeaders!==void 0&&(u.headers={...s.headers??{},...c.extractedHeaders}),c.extractedPathParams!==void 0&&(u.pathParameters={...s.pathParameters??{},...c.extractedPathParams}),c.extractedQueryParams!==void 0&&(u.queryParameters={...s.queryParameters??{},...c.extractedQueryParams}),u}return s});return{...n,examples:o}});return{...e,endpoints:r}}function y5m(e,t,r){let i=byt(e.requestBodyV3),o=byt(e.responseBodyV3),s=oZn(i,t,`${r}:request`),a=oZn(o,t,`${r}:response`),c=s.total+a.total,u=s.autogenerated+a.autogenerated;if(c===0)return!0;let l=u/c,p=l>=.3;return t&&r&&(p?t.logger.debug(`Endpoint ${r} considered auto-generated: ${u}/${c} (${(l*100).toFixed(1)}%) values are generic`):t.logger.debug(`Endpoint ${r} flagged as human-written: only ${u}/${c} (${(l*100).toFixed(1)}%) values are generic (threshold: ${.3*100}%)`)),p}function oZn(e,t,r){if(e==null)return{autogenerated:0,total:0};if(typeof e=="string"){let n=e===Pi.STRING||e===Pi.BASE64||e===Pi.DATE||e===Pi.DATE_TIME||e===Pi.UUID||e===Pi.BIG_INTEGER||Pi.SAMPLE_STRINGS.includes(e)||e==="";return!n&&t&&r&&t.logger.debug(`Non-generic string found at ${r}: "${e}"`),{autogenerated:n?1:0,total:1}}if(typeof e=="number"){let n=e===Pi.DOUBLE||e===Pi.FLOAT||e===Pi.INT||e===Pi.INT64||e===Pi.UINT||e===Pi.UINT64||e===0;return!n&&t&&r&&t.logger.debug(`Non-generic number found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(typeof e=="boolean"){let n=e===Pi.BOOLEAN;return!n&&t&&r&&t.logger.debug(`Non-generic boolean found at ${r}: ${e}`),{autogenerated:n?1:0,total:1}}if(Array.isArray(e)){if(e.length===0)return{autogenerated:0,total:0};let n=0,i=0;return e.forEach((o,s)=>{let a=oZn(o,t,r?`${r}[${s}]`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}if(typeof e=="object"){let n=0,i=0;return Object.entries(e).forEach(([o,s])=>{let a=oZn(s,t,r?`${r}.${o}`:void 0);n+=a.autogenerated,i+=a.total}),{autogenerated:n,total:i}}return t&&r&&t.logger.debug(`Unknown type at ${r}: ${typeof e} = ${e}`),{autogenerated:0,total:1}}function b5m(e){try{let t=e;if(t.v2Examples?.userSpecifiedExamples&&typeof t.v2Examples.userSpecifiedExamples=="object"){let r=t.v2Examples.userSpecifiedExamples;return Object.keys(r).length>0}if(t.v2Responses?.responses){for(let r of t.v2Responses.responses)if(r.body?.v2Examples?.userSpecifiedExamples&&typeof r.body.v2Examples.userSpecifiedExamples=="object"){let n=r.body.v2Examples.userSpecifiedExamples;if(Object.keys(n).length>0)return!0}}return!1}catch{return!1}}function byt(e){if(e)switch(e.type){case"json":case"stream":case"sse":return e.value;case"filename":return;default:return e.value}}function E5m(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&t in e}function I5m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"body"in e?{wasWrapped:!0,inner:e.body}:{wasWrapped:!1,inner:e}}function NJu(e,t){if(typeof e!="object"||e===null||typeof t!="object"||t===null||Array.isArray(e)||Array.isArray(t))return e;let r=e,n=t,i=!1;for(let s of Object.keys(n))if(!(s in r)){i=!0;break}if(!i)return e;let o={...r};for(let[s,a]of Object.entries(n))s in o||(o[s]=a);return o}var iZn,W7o,H7o,zJu=h(()=>{"use strict";Dt();TJu();iZn=require("fs/promises");us();_7o();OJu();BJu();DJu();RJu();W7o=class{failureCount=0;failureThreshold=30;isOpen=!1;recordFailure(){this.failureCount++,this.failureCount>=this.failureThreshold&&(this.isOpen=!0)}recordSuccess(){this.failureCount=0,this.isOpen=!1}shouldSkip(){return this.isOpen}getFailureCount(){return this.failureCount}getThreshold(){return this.failureThreshold}},H7o=class{progressCallback;maxConcurrency;activeRequests=new Map;pendingQueue=[];results=new Map;stats={pending:0,active:0,completed:0,failed:0,totalStarted:0};completedSinceLastCallback=[];constructor(t,r){this.progressCallback=r,this.maxConcurrency=t}async processAll(t){for(this.pendingQueue=[...t],this.stats.pending=this.pendingQueue.length,this.stats.totalStarted=this.pendingQueue.length;this.pendingQueue.length>0&&this.activeRequests.size<this.maxConcurrency;)this.startNext();for(;this.activeRequests.size>0;){let r=Array.from(this.activeRequests.entries()).map(([o,s])=>s.promise.then(a=>({id:o,result:a}))),{id:n,result:i}=await Promise.race(r);await this.handleCompletion(n,i),this.pendingQueue.length>0&&this.startNext()}return this.results}startNext(){if(this.pendingQueue.length===0||this.activeRequests.size>=this.maxConcurrency)return;let t=this.pendingQueue.shift();if(!t)return;let r=`req-${Date.now()}-${Math.random()}`,n=t(),i={id:r,promise:n,startTime:Date.now()};this.activeRequests.set(r,i),this.stats.pending=this.pendingQueue.length,this.stats.active=this.activeRequests.size}async handleCompletion(t,r){this.activeRequests.get(t)&&this.activeRequests.delete(t),r.success?(this.stats.completed++,this.results.set(r.endpointKey,{enhancedReq:r.enhancedReq,enhancedRes:r.enhancedRes,extractedHeaders:r.extractedHeaders,extractedPathParams:r.extractedPathParams,extractedQueryParams:r.extractedQueryParams})):this.stats.failed++,this.stats.active=this.activeRequests.size,this.completedSinceLastCallback.push(r),this.progressCallback&&(this.progressCallback({...this.stats},[...this.completedSinceLastCallback]),this.completedSinceLastCallback=[])}getStats(){return{...this.stats}}}});var J7o=h(()=>{"use strict";zJu()});function sZn(e){return typeof e=="string"?e:e.name}function DBe(e){if(e!=null)return typeof e=="string"?e:e.originalName}var Iyt=h(()=>{"use strict";tc()});function MJu({auth:e,playgroundConfig:t,context:r}){if(e.schemes.length>0&&e.schemes[0]!=null){let n=e.schemes[0];return LJu({scheme:n,playgroundConfig:t,context:r})}}function LJu({scheme:e,playgroundConfig:t,context:r}){switch(e.type){case"basic":return{type:"basicAuth",passwordName:Lr(e.password),usernameName:Lr(e.username),description:e.docs,passwordAlwaysEmpty:e.passwordOmit};case"bearer":return{type:"bearerAuth",tokenName:Lr(e.token),description:e.docs};case"header":return{type:"header",headerWireValue:nr(e.name),nameOverride:Lr(sZn(e.name)),prefix:e.prefix,description:e.docs};case"oauth":{let n=e.configuration.tokenEndpoint.responseProperties.accessToken.propertyPath?.map(i=>Lr(i.name)).join(".")||"$.body.access_token";return t?.oauth?{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:cn.EndpointId(e.configuration.tokenEndpoint.endpointReference.endpointId),accessTokenLocator:n,headerName:e.configuration.tokenHeader,tokenPrefix:e.configuration.tokenPrefix,description:e.docs}}}:{type:"bearerAuth",tokenName:"token",description:e.docs}}case"inferred":{e.tokenEndpoint.authenticatedRequestHeaders.length>1&&r.logger.warn("Inferred auth scheme has multiple authenticated request headers. Only the `Authentication` or first header will be pushed to FDR.");let n=e.tokenEndpoint.authenticatedRequestHeaders.find(o=>o.headerName.toLowerCase()==="authorization");if(n)return n.responseProperty.propertyPath!=null&&n.responseProperty.propertyPath.length>0&&r.logger.warn("Inferred Authentication header has a property path. The property wirevalue will be pushed to FDR without property path."),{type:"bearerAuth",tokenName:nr(n.responseProperty.property.name),description:e.docs};let i=e.tokenEndpoint.authenticatedRequestHeaders[0];return i?{type:"header",headerWireValue:i.headerName,prefix:i.valuePrefix,nameOverride:void 0,description:e.docs}:{type:"bearerAuth",tokenName:"token",description:e.docs}}default:ve(e)}}function UJu({auth:e,playgroundConfig:t,context:r}){let n={};for(let i of e.schemes){let o=LJu({scheme:i,playgroundConfig:t,context:r});o!=null&&(n[cn.AuthSchemeId(i.key)]=o)}return n}var VJu=h(()=>{"use strict";Dt();zm();Iyt()});function qJu(e){return e._visit({alias:t=>({type:"alias",value:Kp(t.aliasOf)}),enum:t=>({type:"enum",default:t.default!=null?nr(t.default.name):void 0,values:t.values.map(r=>({description:r.docs??void 0,value:nr(r.name),availability:zb(r.availability)}))}),object:t=>({type:"object",extends:t.extends.map(r=>cn.TypeId(r.typeId)),properties:t.properties.map(r=>({description:r.docs??void 0,key:cn.PropertyKey(nr(r.name)),valueType:Kp(r.valueType,r.defaultValue),availability:zb(r.availability),propertyAccess:r.propertyAccess})),extraProperties:T5m(t.extraProperties)}),union:t=>{let r=t.baseProperties.map(n=>({key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),description:n.docs,propertyAccess:n.propertyAccess}));return{type:"discriminatedUnion",discriminant:nr(t.discriminant),variants:t.types.map(n=>({description:n.docs??void 0,discriminantValue:nr(n.discriminantValue),displayName:n.displayName,availability:n.availability!=null?zb(n.availability):void 0,additionalProperties:rr.types.SingleUnionTypeProperties._visit(n.shape,{samePropertiesAsObject:i=>({extends:[cn.TypeId(i.typeId)],properties:r,extraProperties:void 0}),singleProperty:i=>({extends:[],properties:[{key:cn.PropertyKey(nr(i.name)),valueType:Kp(i.type),description:void 0,availability:void 0,propertyAccess:void 0},...r],extraProperties:void 0}),noProperties:()=>({extends:[],properties:r,extraProperties:void 0}),_other:()=>{throw new B({message:"Unknown SingleUnionTypeProperties: "+n.shape.propertiesType,code:B.Code.InternalError})}})}))}},undiscriminatedUnion:t=>({type:"undiscriminatedUnion",variants:t.members.map(r=>({typeName:r.type.type==="named"?Lr(r.type.name):void 0,description:r.docs??void 0,type:Kp(r.type),availability:void 0,displayName:r.type.type==="named"?r.type.displayName:void 0}))}),_other:()=>{throw new B({message:"Unknown Type shape: "+e.type,code:B.Code.InternalError})}})}function Kp(e,t){return e._visit({container:r=>rr.types.ContainerType._visit(r,{list:n=>({type:"list",itemType:Kp(n),minItems:void 0,maxItems:void 0}),map:({keyType:n,valueType:i})=>({type:"map",keyType:Kp(n),valueType:Kp(i),minProperties:void 0,maxProperties:void 0}),optional:n=>({type:"optional",itemType:Kp(n),defaultValue:t}),nullable:n=>({type:"nullable",itemType:Kp(n)}),set:n=>({type:"set",itemType:Kp(n),minItems:void 0,maxItems:void 0}),literal:n=>rr.types.Literal._visit(n,{boolean:i=>({type:"literal",value:{type:"booleanLiteral",value:i}}),string:i=>({type:"literal",value:{type:"stringLiteral",value:i}}),_other:()=>{throw new B({message:"Unknown literal type: "+n.type,code:B.Code.InternalError})}}),_other:()=>{throw new B({message:"Unknown container reference: "+r.type,code:B.Code.InternalError})}}),named:r=>({type:"id",value:cn.TypeId(r.typeId),default:void 0}),primitive:r=>({type:"primitive",value:rr.types.PrimitiveTypeV1._visit(r.v1,{integer:()=>x5m(r.v2),float:()=>_Ju(r.v2),double:()=>_Ju(r.v2),string:()=>v5m(r.v2),long:()=>C5m(r.v2),boolean:()=>({type:"boolean",default:r.v2?.type==="boolean"?r.v2.default:void 0}),dateTime:()=>({type:"datetime",default:void 0}),date:()=>({type:"date",default:void 0}),uuid:()=>({type:"uuid",default:void 0}),base64:()=>({type:"base64",mimeType:void 0,default:void 0}),bigInteger:()=>({type:"bigInteger",default:r.v2?.type==="bigInteger"?r.v2.default:void 0}),uint:()=>w5m(r.v2),uint64:()=>S5m(r.v2),dateTimeRfc2822:()=>({type:"datetime",default:void 0}),_other:()=>{throw new B({message:"Unknown primitive: "+r.v1,code:B.Code.InternalError})}})}),unknown:()=>({type:"unknown"}),_other:()=>{throw new B({message:"Unknown Type reference: "+e.type,code:B.Code.InternalError})}})}function v5m(e){let t=e!=null&&e.type==="string"?e.validation:void 0;return{type:"string",format:t?.format,regex:t?.pattern,minLength:t?.minLength,maxLength:t?.maxLength,default:e!=null&&e.type==="string"?e.default:void 0}}function x5m(e){let t=e!=null&&e.type==="integer"?e.validation:void 0;return{type:"integer",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="integer"?e.default:void 0}}function _Ju(e){let t=e!=null&&e.type==="double"?e.validation:void 0;return{type:"double",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="double"?e.default:void 0}}function C5m(e){let t=e!=null&&e.type==="long"?e.validation:void 0;return{type:"long",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="long"?e.default:void 0}}function w5m(e){let t=e!=null&&e.type==="uint"?e.validation:void 0;return{type:"uint",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint"?e.default:void 0}}function S5m(e){let t=e!=null&&e.type==="uint64"?e.validation:void 0;return{type:"uint64",minimum:t?.exclusiveMin===!0?void 0:t?.min,maximum:t?.exclusiveMax===!0?void 0:t?.max,exclusiveMinimum:t?.exclusiveMin===!0?t?.min:void 0,exclusiveMaximum:t?.exclusiveMax===!0?t?.max:void 0,multipleOf:t?.multipleOf,default:e!=null&&e.type==="uint64"?e.default:void 0}}function T5m(e){return typeof e=="boolean"?e?Ur.unknown():void 0:typeof e=="string"?{type:"id",value:cn.TypeId(e),default:void 0}:Kp(e)}var Y7o=h(()=>{"use strict";zm();Mn();jt();X7o();Iyt()});function eWo(e,t,r,n){let i=e.service!=null?t.services[e.service]:void 0,o=e.webhooks!=null?t.webhookGroups[e.webhooks]:void 0,s=e.websocket!=null&&t.websocketChannels!=null?t.websocketChannels[e.websocket]:void 0;return{endpoints:i!=null?B5m(i,t):[],webhooks:o!=null?O5m(o):[],websockets:s!=null?[D5m(s,t)]:[],types:[...e.types.map(c=>cn.TypeId(c)),...Object.keys(n??{}).map(c=>cn.TypeId(c))],subpackages:e.subpackages.map(c=>cn.SubpackageId(c)),pointsTo:e.navigationConfig!=null?cn.SubpackageId(e.navigationConfig.pointsTo):void 0,graphqlOperations:r?Object.values(r):[]}}function O5m(e){return e.map(t=>{let r=[];if(t.v2Examples!=null){for(let[n,i]of Object.entries(t.v2Examples.userSpecifiedExamples))r.push({name:i.name??n,payload:i.payload});for(let[n,i]of Object.entries(t.v2Examples.autogeneratedExamples))r.push({name:i.name??n,payload:i.payload})}else r.push(...t.examples?.map(n=>({name:DBe(n.name),payload:n.payload.jsonExample}))??[]);return{description:t.docs??void 0,availability:zb(t.availability),id:cn.WebhookId(Lr(t.name)),path:[],method:t.method,name:t.displayName??Lke(Lr(t.name)),headers:t.headers.map(n=>({description:n.docs??void 0,key:nr(n.name),type:Kp(n.valueType,n.defaultValue),availability:zb(n.availability)})),payload:L5m(t.payload,t.fileUploadPayload),examples:r,responses:t.responses?.map($7o).filter(Oa)}})}function B5m(e,t){let r=[];for(let n of e.endpoints){let i=n.autogeneratedExamples[0],o=[];if(n.v2Examples!=null){let a,c=n.v2Examples.userSpecifiedExamples,u=n.v2Examples.autogeneratedExamples,l=Object.values(c).map(d=>d.response?.statusCode).filter((d,f,m)=>m.indexOf(d)!==f).length>0;for(let[d,f]of Object.entries(c))a=WJu({shouldUseExampleName:f.displayName!=null||l,exampleName:f.displayName??d,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a);let p=Object.values(u).map(d=>d.response?.statusCode).filter((d,f,m)=>m.indexOf(d)!==f).length>0;for(let[d,f]of Object.entries(u))a=WJu({shouldUseExampleName:p,exampleName:f.displayName??d,example:f,irEndpoint:n,irService:e,ir:t}),a!=null&&o.push(a)}else if(n.userSpecifiedExamples.length>0)o.push(...n.userSpecifiedExamples.map(a=>Z7o({userSpecifiedExample:a,...i!=null&&{autogeneratedExample:i},irEndpoint:n,ir:t})).filter(Oa));else if(i!=null){let a=Z7o({autogeneratedExample:i,irEndpoint:n,ir:t});a!=null&&o.push(a)}else if(n.response?.body?.type==="fileDownload"){let a=Q$e({ir:t,service:e,endpoint:{...n,response:void 0},typeDeclarations:t.types,skipOptionalRequestProperties:!0,generationResponse:{type:"success"}});if(a.type==="success"){let c=Z7o({autogeneratedExample:a,irEndpoint:n,ir:t});if(c!=null){let u={...c,responseBodyV3:{type:"filename",value:"<bytes>"}};o.push(u)}}}let s={slug:void 0,availability:zb(n.availability??e.availability),auth:n.auth,authV2:R5m(n.security),multiAuth:F5m(n.security,t.auth),description:n.docs??void 0,method:Q5m(n.method),defaultEnvironment:t.environments?.defaultEnvironment!=null?cn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?k5m({environmentsConfig:t.environments,endpoint:n}):void 0,id:cn.EndpointId(Lr(n.name)),originalEndpointId:n.id,name:n.displayName??Lke(Lr(n.name)),path:n.basePath!=null?{pathParameters:n.pathParameters.map(a=>({description:a.docs??void 0,key:cn.PropertyKey(Lr(a.name)),type:Kp(a.valueType),availability:void 0,explode:a.explode})),parts:[...vyt(n.basePath),...vyt(n.path)]}:{pathParameters:[...t.pathParameters,...e.pathParameters,...n.pathParameters].map(a=>({description:a.docs??void 0,key:cn.PropertyKey(Lr(a.name)),type:Kp(a.valueType),availability:void 0,explode:a.explode})),parts:[...t.basePath!=null?vyt(t.basePath):[],...vyt(e.basePath),...vyt(n.path)]},queryParameters:n.queryParameters.map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability),explode:a.explode})),headers:[...e.headers,...n.headers].map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability)})),responseHeaders:n.responseHeaders?.map(a=>({description:a.docs??void 0,key:nr(a.name),type:Kp(a.valueType,a.defaultValue),availability:zb(a.availability)})),request:n.requestBody!=null?GJu(n.requestBody):void 0,requestsV2:{requests:n.v2RequestBodies?.requestBodies?.map(GJu).filter(Oa)},response:n.response!=null?$7o(n.response):void 0,responsesV2:{responses:n.v2Responses?.responses?.map($7o).filter(Oa)},errors:void 0,errorsV2:z5m(n.errors,t),examples:o,protocol:n.source?._visit({openapi:()=>({type:"rest"}),openrpc:()=>({type:"openrpc",methodName:n.id}),proto:a=>({type:"grpc",methodName:n.id,methodType:a.methodType}),_other:()=>{}}),includeInApiExplorer:n.apiPlayground,subtitle:n.subtitle??void 0};P5m(s,n),r.push(s)}return r}function P5m(e,t){let r=t.v2Examples?.userSpecifiedExamples;if(r==null||Object.keys(r).length===0)return;let n=e;n.v2Examples={userSpecifiedExamples:r,autogeneratedExamples:{}}}function D5m(e,t){let r=[];if(e.v2Examples!=null&&(Object.keys(e.v2Examples.userSpecifiedExamples).length>0||Object.keys(e.v2Examples.autogeneratedExamples).length>0)){let n=Object.entries(e.v2Examples.userSpecifiedExamples),i=Object.entries(e.v2Examples.autogeneratedExamples),o=n.length>0?n[0]:i[0];if(o!=null){let[s,a]=o;r.push({name:s,description:"",path:a.baseUrl??"",pathParameters:a.pathParameters??{},queryParameters:a.queryParameters??{},headers:a.headers??{},messages:a.messages?.map(c=>({type:cn.WebSocketMessageId(c.type),body:c.body}))??[]})}}else r=e.examples.map(n=>({name:DBe(n.name),description:n.docs,path:n.url,pathParameters:n.pathParameters.reduce((i,o)=>(i[cn.PropertyKey(Lr(o.name))]=o.value.jsonExample,i),{}),queryParameters:n.queryParameters.reduce((i,o)=>(i[nr(o.name)]=o.value.jsonExample,i),{}),headers:n.headers.reduce((i,o)=>(i[nr(o.name)]=o.value.jsonExample,i),{}),messages:n.messages.map(i=>({type:cn.WebSocketMessageId(i.type),body:i.body.jsonExample}))}));return{auth:e.auth,availability:zb(e.availability),description:e.docs??void 0,defaultEnvironment:t.environments?.defaultEnvironment!=null?cn.EnvironmentId(t.environments.defaultEnvironment):void 0,environments:t.environments!=null?N5m({environmentsConfig:t.environments,channel:e}):[],id:cn.WebSocketId(Lr(e.name)),name:e.displayName??Lke(Lr(e.name)),path:{pathParameters:e.pathParameters.map(n=>({description:n.docs??void 0,key:cn.PropertyKey(Lr(n.name)),type:Kp(n.valueType),availability:void 0,explode:n.explode})),parts:vyt(e.path)},headers:e.headers.map(n=>({key:nr(n.name),type:Kp(n.valueType,n.defaultValue),description:n.docs,availability:zb(n.availability)})),queryParameters:e.queryParameters.map(n=>({description:n.docs??void 0,key:nr(n.name),type:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),explode:n.explode})),messages:e.messages.map(n=>({type:cn.WebSocketMessageId(n.type),displayName:n.displayName,origin:n.origin,body:V5m(n.body),description:n.docs,availability:zb(n.availability)})),examples:r}}function R5m(e){if(e==null)return;if(e.length===0)return[];let t=new Set(e.flatMap(r=>Object.keys(r)));return Array.from(t).map(r=>cn.AuthSchemeId(r))}function F5m(e,t){return e==null?t!=null&&t.requirement==="ANY"&&t.schemes.length>0?t.schemes.map(r=>({schemes:[cn.AuthSchemeId(r.key)]})):void 0:e.length===0?[]:e.map(r=>({schemes:Object.keys(r).map(n=>cn.AuthSchemeId(n))}))}function zb(e){if(e!=null)switch(e.status){case"DEPRECATED":return cn.Availability.Deprecated;case"LEGACY":return cn.Availability.Legacy;case"PRE_RELEASE":case"BETA":return cn.Availability.Beta;case"GENERAL_AVAILABILITY":return cn.Availability.GenerallyAvailable;case"IN_DEVELOPMENT":return cn.Availability.Beta;case"ALPHA":return cn.Availability.Alpha;case"PREVIEW":return cn.Availability.Preview;default:ve(e.status)}}function k5m({environmentsConfig:e,endpoint:t}){let r=e.environments,n=t.baseUrl,i=t.v2BaseUrls;switch(r.type){case"singleBaseUrl":return r.environments.map(o=>({id:cn.EnvironmentId(o.id),baseUrl:o.url,audiences:o.audiences}));case"multipleBaseUrls":if(i!=null)return i.flatMap(s=>r.environments.map(a=>{let c=a.urls[s];if(c==null)throw new B({message:`Encountered undefined server name "${s}" at endpoint ${t.method.toUpperCase()} ${t.path}. Expected environment ${a.id} to contain url for ${s}`,code:B.Code.ValidationError});return{id:cn.EnvironmentId(s),baseUrl:c,audiences:a.audiences}})).filter((s,a,c)=>a===c.findIndex(u=>u.id===s.id&&u.baseUrl===s.baseUrl));if(n==null)throw new B({message:`Expected endpoint ${Lr(t.name)} to have base url.`,code:B.Code.IrConversionError});return r.environments.map(o=>{let s=o.urls[n];if(s==null)throw new B({message:`Encountered undefined server name "${n}" at endpoint ${t.method.toUpperCase()} ${t.path.head}. Expected environment ${o.id} to contain url for ${n}`,code:B.Code.ValidationError});return{id:cn.EnvironmentId(o.id),baseUrl:s,audiences:o.audiences}});default:ve(r)}}function N5m({environmentsConfig:e,channel:t}){let r=e.environments,n=t.baseUrl;switch(r.type){case"singleBaseUrl":return r.environments.map(i=>({id:cn.EnvironmentId(i.id),baseUrl:j5m(i.url,"wss"),audiences:i.audiences}));case"multipleBaseUrls":if(n==null)throw new B({message:`Expected channel ${Lr(t.name)} to have base url.`,code:B.Code.IrConversionError});return r.environments.map(i=>{let o=i.urls[n];if(o==null)throw new B({message:`Encountered undefined server name ${o} at channel ${Lr(t.name)} ${t.path.head}. Expected environment ${i.id} to contain url for ${n}`,code:B.Code.IrConversionError});return{id:cn.EnvironmentId(i.id),baseUrl:o,audiences:i.audiences}});default:ve(r)}}function j5m(e,t){return e.replace(/^[^:]+/,t)}function Q5m(e){return rr.http.HttpMethod._visit(e,{get:()=>cn.HttpMethod.Get,post:()=>cn.HttpMethod.Post,put:()=>cn.HttpMethod.Put,patch:()=>cn.HttpMethod.Patch,delete:()=>cn.HttpMethod.Delete,head:()=>cn.HttpMethod.Head,_other:()=>{throw new B({message:"Unknown http method: "+e,code:B.Code.InternalError})}})}function vyt(e){let t=e.parts.flatMap(r=>[{type:"pathParameter",value:cn.PropertyKey(r.pathParameter)},{type:"literal",value:r.tail}]);return[{type:"literal",value:e.head},...t]}function GJu(e){let t=rr.http.HttpRequestBody._visit(e,{inlinedRequestBody:r=>({type:"json",contentType:r.contentType??Pf.APPLICATION_JSON,shape:{type:"object",extends:r.extends.map(n=>cn.TypeId(n.typeId)),properties:r.properties.map(n=>({description:n.docs??void 0,key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),availability:zb(n.availability),propertyAccess:n.propertyAccess})),extraProperties:r.extraProperties?{type:"unknown"}:void 0}}),reference:r=>({type:"json",contentType:r.contentType??Pf.APPLICATION_JSON,shape:{type:"reference",value:Kp(r.requestBodyType)},description:r.docs??void 0}),fileUpload:r=>({type:"fileUpload",value:{name:Lr(r.name),description:void 0,availability:void 0,properties:r.properties.map(n=>n._visit({file:i=>{let o=i._visit({file:s=>({type:"file",key:cn.PropertyKey(nr(s.key)),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),fileArray:s=>({type:"fileArray",key:cn.PropertyKey(nr(s.key)),isOptional:s.isOptional,contentType:s.contentType,description:s.docs??void 0,availability:void 0}),_other:()=>{}});if(o!=null)return{type:"file",value:o}},bodyProperty:i=>({type:"bodyProperty",key:cn.PropertyKey(nr(i.name)),valueType:Kp(i.valueType,i.defaultValue),contentType:i.contentType,description:i.docs??void 0,availability:zb(i.availability),exploded:i.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(Oa)},contentType:r.contentType,description:r.docs??void 0}),bytes:r=>({type:"bytes",description:r.docs??void 0,availability:void 0,isOptional:r.isOptional,contentType:r.contentType}),_other:()=>{throw new B({message:"Unknown HttpRequestBody: "+e.type,code:B.Code.InternalError})}});return t!=null?{type:t,description:e.docs}:void 0}function $7o(e){let t=e.docs,r;return e.body!=null&&(r=rr.http.HttpResponseBody._visit(e.body,{fileDownload:n=>(t=n.docs,{type:"fileDownload",contentType:void 0}),json:n=>(t=n.docs,{type:"reference",value:Kp(n.responseBodyType)}),text:()=>{},bytes:()=>{},streamParameter:()=>{},streaming:n=>{if(n.type==="text")return t=n.docs,{type:"streamingText"};if(n.type==="json")return t=n.docs,{type:"stream",shape:{type:"reference",value:Kp(n.payload)},terminator:n.terminator};if(n.type==="sse")return t=n.docs,{type:"stream",shape:{type:"reference",value:Kp(n.payload)},terminator:n.terminator}},_other:()=>{throw new B({message:"Unknown HttpResponse: "+e.body,code:B.Code.InternalError})}})),r!=null?{type:r,statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t}:e.statusCode!=null?{statusCode:e.statusCode,isWildcard:e.isWildcardStatusCode===!0?!0:void 0,description:t,type:{type:"object",extends:[],properties:[],extraProperties:void 0}}:void 0}function z5m(e,t){let r=[];if(t.errorDiscriminationStrategy.type==="statusCode")for(let n of e){let i=t.errors[n.error.errorId];i&&r.push({type:i.type==null?void 0:{type:"alias",value:Kp(i.type)},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,name:i.displayName??Lr(i.name.name),availability:void 0,examples:_5m(i,t),headers:i.headers!=null&&i.headers.length>0?i.headers.map(o=>({description:o.docs??void 0,key:nr(o.name),type:Kp(o.valueType,o.defaultValue),availability:zb(o.availability)})):void 0})}else for(let n of e){let i=t.errors[n.error.errorId];if(i){let o=[{key:cn.PropertyKey(nr(t.errorDiscriminationStrategy.discriminant)),valueType:{type:"literal",value:{type:"stringLiteral",value:Lr(sZn(i.discriminantValue))}},description:i.docs,availability:void 0,propertyAccess:void 0}];i.type!=null&&o.push({key:cn.PropertyKey(nr(t.errorDiscriminationStrategy.contentProperty)),valueType:Kp(i.type),description:i.docs,availability:void 0,propertyAccess:void 0}),r.push({type:i.type==null?void 0:{type:"object",extends:[],properties:o,extraProperties:void 0},statusCode:i.statusCode,isWildcard:i.isWildcardStatusCode===!0?!0:void 0,description:i.docs??void 0,availability:void 0,name:i.displayName??Lr(i.name.name),examples:i.examples.map(s=>({name:DBe(s.name),responseBody:{type:"json",value:s.jsonExample},description:s.docs})),headers:i.headers!=null&&i.headers.length>0?i.headers.map(s=>({description:s.docs??void 0,key:nr(s.name),type:Kp(s.valueType,s.defaultValue),availability:zb(s.availability)})):void 0})}}return r}function WJu({shouldUseExampleName:e,exampleName:t,example:r,irEndpoint:n,irService:i,ir:o}){if(r==null)return;let s=u=>{if(u.valueType.type==="container"&&u.valueType.container.type==="literal")return u.valueType.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}});if(u.valueType.type==="container"&&u.valueType.container.type==="optional"&&u.valueType.container.optional.type==="container"&&u.valueType.container.optional.container.type==="literal")return u.valueType.container.optional.container.literal._visit({boolean:l=>`${l}`,string:l=>l,_other:()=>{}})},a={};o.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)}),i.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)}),n.headers.forEach(u=>{let l=s(u);l!=null&&(a[nr(u.name)]=l)});let c=r.response?.body!=null?r.response.body.value:void 0;return{name:e?t:void 0,description:"",path:r.request?.endpoint.path??"",pathParameters:r.request?.pathParameters??{},queryParameters:r.request?.queryParameters??{},headers:(()=>{let l={...r.request?.headers??{}};for(let[p,d]of Object.entries(a))(l[p]===null||l[p]===void 0)&&(l[p]=d);return l})(),requestBody:r.request?.requestBody,requestBodyV3:n.requestBody?._visit({inlinedRequestBody:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,reference:()=>r.request!=null?{type:"json",value:r.request.requestBody}:void 0,fileUpload:u=>{if(r.request==null)return;let l={};if(oo(r.request.requestBody)){let p=r.request.requestBody;for(let d of u.properties)d._visit({file:f=>{let m=p[nr(f.key)];if(f.type==="file")l[nr(f.key)]={type:"filename",value:typeof m=="string"?m:"<file1>"};else if(f.type==="fileArray"){let g=(Array.isArray(m)?m:[m]).filter(A=>typeof A=="string");l[nr(f.key)]={type:"filenames",value:g}}},bodyProperty:f=>{if(f.style==="exploded"){let m=p[nr(f.name)];l[nr(f.name)]={type:"exploded",value:Array.isArray(m)?m:[m]}}else l[nr(f.name)]={type:"json",value:p[nr(f.name)]}},_other:nj})}return{type:"form",value:l}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??n.response?.statusCode??200,responseBody:c??void 0,responseBodyV3:c!=null?r.response?.body?._visit({json:u=>({type:"json",value:u}),stream:u=>Array.isArray(u)&&u.length>0&&u.every(M5m)?{type:"sse",value:u}:{type:"stream",value:u},error:()=>{},_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+r.response?.body?.type,code:B.Code.InternalError})}}):void 0,codeSamples:r.codeSamples?.map(u=>({name:u.name,description:u.docs??void 0,install:void 0,language:u.language,code:u.code})).filter(Oa)}}function M5m(e){return typeof e=="object"&&e!==null&&"event"in e&&typeof e?.event=="string"&&"data"in e}function Z7o({userSpecifiedExample:e,autogeneratedExample:t,irEndpoint:r,ir:n}){let i=n.headers.map(a=>{let c;if(a.valueType.type==="container"&&a.valueType.container.type==="literal"?c=a.valueType.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}}):a.valueType.type==="container"&&a.valueType.container.type==="optional"&&a.valueType.container.optional.type==="container"&&a.valueType.container.optional.container.type==="literal"&&(c=a.valueType.container.optional.container.literal._visit({boolean:u=>`${u}`,string:u=>u,_other:()=>{}})),c!=null)return{name:a.name,value:{jsonExample:c,shape:rr.ExampleTypeReferenceShape.primitive(rr.ExamplePrimitive.string({original:c}))}}}).filter(Oa),o=e?.example??t?.example;if(o==null)return;let{codeSamples:s}=e??{codeSamples:[]};return{name:DBe(o.name),description:o.docs,path:o.url,pathParameters:[...o.rootPathParameters,...o.servicePathParameters,...o.endpointPathParameters].reduce((a,c)=>(a[cn.PropertyKey(Lr(c.name))]=c.value.jsonExample,a),{}),queryParameters:o.queryParameters.reduce((a,c)=>(a[nr(c.name)]=c.value.jsonExample,a),{}),headers:[...i,...o.serviceHeaders,...o.endpointHeaders].reduce((a,c)=>(a[nr(c.name)]=c.value.jsonExample,a),{}),requestBody:o.request?.jsonExample,requestBodyV3:r.requestBody?._visit({inlinedRequestBody:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,reference:()=>o.request!=null?{type:"json",value:o.request.jsonExample}:void 0,fileUpload:a=>{if(o.request==null)return;let c={};if(oo(o.request.jsonExample)){let u=o.request.jsonExample;for(let l of a.properties)l._visit({file:p=>{let d=u[nr(p.key)];if(p.type==="file")c[nr(p.key)]={type:"filename",value:typeof d=="string"?d:"<file1>"};else if(p.type==="fileArray"){let f=(Array.isArray(d)?d:[d]).filter(m=>typeof m=="string");c[nr(p.key)]={type:"filenames",value:f}}},bodyProperty:p=>{if(p.style==="exploded"){let d=u[nr(p.name)];c[nr(p.name)]={type:"exploded",value:Array.isArray(d)?d:[d]}}else c[nr(p.name)]={type:"json",value:u[nr(p.name)]}},_other:nj})}return{type:"form",value:c}},bytes:()=>{},_other:()=>{}}),responseStatusCode:r.response?.statusCode??rr.http.ExampleResponse._visit(o.response,{ok:a=>a._visit({body:c=>c!=null?200:204,stream:c=>c.length>0?200:204,sse:c=>c.length>0?200:204,_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+a.type,code:B.Code.InternalError})}}),error:({error:a})=>{let c=n.errors[a.errorId];if(c==null)throw new B({message:"Cannot find error "+a.errorId,code:B.Code.ResolutionError});return c.statusCode},_other:()=>{throw new B({message:"Unknown ExampleResponse: "+o.response.type,code:B.Code.InternalError})}}),responseBody:o.response._visit({ok:a=>a._visit({body:c=>c?.jsonExample,stream:()=>{},sse:()=>{},_other:()=>{}}),error:a=>a.body?.jsonExample,_other:()=>{}}),responseBodyV3:o.response._visit({ok:a=>a._visit({body:c=>c!=null?{type:"json",value:c.jsonExample}:void 0,stream:c=>({type:"stream",value:c.map(u=>u.jsonExample)}),sse:c=>({type:"sse",value:c.map(({event:u,data:l})=>({event:u,data:l.jsonExample}))}),_other:()=>{throw new B({message:"Unknown ExampleResponseBody: "+a.type,code:B.Code.InternalError})}}),error:a=>a.body!=null?{type:"json",value:a.body.jsonExample}:void 0,_other:()=>{throw new B({message:"Unknown ExampleResponse: "+o.response.type,code:B.Code.InternalError})}}),codeSamples:s?.map(a=>_6._visit(a,{language:c=>({language:c.language,code:c.code,name:DBe(c.name),description:c.docs??void 0,install:c.install}),sdk:c=>({language:c.sdk,code:c.code,name:DBe(c.name),description:c.docs??void 0,install:void 0}),_other:()=>{}})).filter(Oa)}}function L5m(e,t){return t!=null?{type:{type:"formData",name:Lr(t.name),description:t.docs??void 0,availability:void 0,properties:t.properties.map(r=>r._visit({file:n=>{let i=n._visit({file:o=>({type:"file",key:cn.PropertyKey(nr(o.key)),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),fileArray:o=>({type:"fileArray",key:cn.PropertyKey(nr(o.key)),isOptional:o.isOptional,contentType:o.contentType,description:o.docs??void 0,availability:void 0}),_other:()=>{}});if(i!=null)return{type:"file",value:i}},bodyProperty:n=>({type:"bodyProperty",key:cn.PropertyKey(nr(n.name)),valueType:Kp(n.valueType,n.defaultValue),contentType:n.contentType,description:n.docs??void 0,availability:zb(n.availability),exploded:n.style==="exploded",propertyAccess:void 0}),_other:()=>{}})).filter(Oa)},description:t.docs??void 0}:U5m(e)}function U5m(e){switch(e.type){case"inlinedPayload":return{type:{type:"object",extends:e.extends.map(t=>cn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:cn.PropertyKey(nr(t.name)),valueType:Kp(t.valueType),availability:zb(t.availability),propertyAccess:void 0})),extraProperties:void 0},description:void 0};case"reference":return{type:{type:"reference",value:Kp(e.payloadType)},description:e.docs};default:ve(e)}}function V5m(e){switch(e.type){case"inlinedBody":return{type:"object",extends:e.extends.map(t=>cn.TypeId(t.typeId)),properties:e.properties.map(t=>({description:t.docs??void 0,key:cn.PropertyKey(nr(t.name)),valueType:Kp(t.valueType),availability:zb(t.availability),propertyAccess:void 0})),extraProperties:void 0};case"reference":return{type:"reference",value:Kp(e.bodyType)};default:ve(e)}}function _5m(e,t){let r=e.v2Examples?.userSpecifiedExamples,n=e.v2Examples?.autogeneratedExamples,i=e.examples;if(r!=null&&Object.keys(r).length>0)return Object.entries(r).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(n!=null&&Object.keys(n).length>0)return Object.entries(n).map(([s,a])=>({name:s,responseBody:{type:"json",value:a},description:void 0}));if(i.length>0)return i.map(s=>({name:DBe(s.name),responseBody:{type:"json",value:s.jsonExample},description:s.docs}));let o=q5m(e,t);return o!=null?[o]:[]}function q5m(e,t){if(e.type==null||e.type.type!=="named")return;let r=e.type.typeId,n=t.types[r];if(n==null||n.shape.type!=="object")return;let i={},o=!1;for(let s of n.shape.properties){let a=nr(s.name),c=s.v2Examples;if(c?.userSpecifiedExamples!=null){let u=Object.values(c.userSpecifiedExamples);if(u.length>0){i[a]=u[0],o=!0;continue}}if(c?.autogeneratedExamples!=null){let u=Object.values(c.autogeneratedExamples);if(u.length>0){i[a]=u[0];continue}}}if(o)return{name:void 0,responseBody:{type:"json",value:i},description:void 0}}var X7o=h(()=>{"use strict";Dt();zm();Mn();tc();jt();Vi();Y7o();Iyt()});function ST({ir:e,snippetsConfig:t,playgroundConfig:r,graphqlOperations:n={},graphqlTypes:i={},context:o,apiNameOverride:s}){let a={types:{},subpackages:{},rootPackage:eWo(e.rootPackage,e,n,i),apiName:s??Lr(e.apiName),auth:MJu({auth:e.auth,playgroundConfig:r,context:o}),authSchemes:UJu({auth:e.auth,playgroundConfig:r,context:o}),snippetsConfiguration:t,globalHeaders:e.headers.map(c=>({availability:zb(c.availability),description:c.docs??void 0,key:nr(c.name),type:Kp(c.valueType,c.defaultValue)})),navigation:void 0};for(let[c,u]of Object.entries(e.types))a.types[cn.TypeId(c)]={description:u.docs??void 0,name:Lr(u.name.name),shape:qJu(u.shape),availability:zb(u.availability),displayName:u.name.displayName};for(let[c,u]of Object.entries(i))a.types[cn.TypeId(c)]=u;for(let[c,u]of Object.entries(e.subpackages)){let l=u.service!=null?e.services[u.service]:void 0;a.subpackages[cn.SubpackageId(c)]={subpackageId:cn.SubpackageId(c),displayName:l?.displayName??u.displayName,name:Lr(u.name),description:u.docs??void 0,...eWo(u,e)}}return a}var tWo=h(()=>{"use strict";zm();VJu();X7o();Y7o();Iyt()});async function rWo({organization:e,workspace:t,context:r,token:n,audiences:i,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a={},graphqlTypes:c={},aiEnhancerConfig:u}){let l=Sg({workspace:t,audiences:i,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1},readme:void 0,version:void 0,packageName:void 0,context:r,sourceResolver:new Ch(r,t)}),p=kk({token:n.value}),d=ST({ir:l,snippetsConfig:o,playgroundConfig:s,graphqlOperations:a,graphqlTypes:c,context:r});if(u){let m=t.getSources().filter(g=>g.type==="openapi").map(g=>({absoluteFilePath:g.absoluteFilePath,absoluteFilePathToOverrides:g.absoluteFilePathToOverrides}));d=await Eyt(d,u,r,n,e,m.length>0?m:void 0,Lr(l.apiName))}try{let f=await p.api.register.registerApiDefinition({orgId:cn.OrgId(e),apiId:cn.ApiId(Lr(l.apiName)),definition:d});return r.logger.debug(`Registered API Definition ${f.apiDefinitionId}`),{id:f.apiDefinitionId,ir:l}}catch(f){return r.failAndThrow("Failed to register API",f,{code:B.Code.NetworkError})}}var HJu=h(()=>{"use strict";Jk();nm();zm();Kl();jt();J7o();tWo();Iyt()});var Bde=h(()=>{"use strict";J7o();tWo();HJu()});function s8t({ir:e,apiDefinitionId:t,playgroundConfig:r,context:n,graphqlOperations:i={},graphqlTypes:o={}}){return Gle(_le(ST({ir:e,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:r,graphqlOperations:i,graphqlTypes:o,context:n}),ukr.ApiDefinitionId(t),G5m))}var G5m,nWo=h(()=>{"use strict";zm();Bde();G5m=new qle({snippetsBySdkId:{},snippetsConfigWithSdkId:{},snippetTemplatesByEndpoint:{},snippetsBySdkIdAndEndpointId:{},snippetTemplatesByEndpointId:{}})});async function Lw({iconPath:e,filepaths:t}){e!=null&&typeof e=="string"&&KJu.default.isAbsolute(e)&&t.add(e)}async function JJu({parsedDocsConfig:e}){let t=new Set;if(e.logo?.dark!=null&&t.add(e.logo.dark),e.logo?.light!=null&&t.add(e.logo.light),e.favicon!=null&&t.add(e.favicon),e.backgroundImage?.dark!=null&&t.add(e.backgroundImage.dark),e.backgroundImage?.light!=null&&t.add(e.backgroundImage.light),e.metadata?.["og:image"]!=null&&e.metadata["og:image"].type==="filepath"&&t.add(e.metadata["og:image"].value),e.metadata?.["og:logo"]!=null&&e.metadata["og:logo"].type==="filepath"&&t.add(e.metadata["og:logo"].value),e.metadata?.["twitter:image"]!=null&&e.metadata["twitter:image"].type==="filepath"&&t.add(e.metadata["twitter:image"].value),e.metadata?.["og:dynamic:background-image"]!=null&&e.metadata["og:dynamic:background-image"].type==="filepath"&&t.add(e.metadata["og:dynamic:background-image"].value),e.typography?.bodyFont!=null&&e.typography.bodyFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.headingsFont!=null&&e.typography.headingsFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.typography?.codeFont!=null&&e.typography.codeFont.variants.forEach(n=>{t.add(n.absolutePath)}),e.navigation.type==="productgroup"&&e.navigation.products.forEach(n=>{n.image!=null&&t.add(n.image)}),(await iWo({navigation:e.navigation})).forEach(n=>{t.add(n)}),e.navbarLinks&&await Promise.all(e.navbarLinks.map(async n=>{n.type==="dropdown"&&n.links.map(async i=>{i.icon&&await Lw({iconPath:i.icon,filepaths:t}),i.rightIcon&&await Lw({iconPath:i.rightIcon,filepaths:t})}),n.type!=="github"&&(n.icon&&await Lw({iconPath:n.icon,filepaths:t}),n.rightIcon&&await Lw({iconPath:n.rightIcon,filepaths:t}))})),e.js!=null&&e.js.files.forEach(n=>{t.add(n.absolutePath)}),e.context7File!=null&&t.add(e.context7File),e.llmsTxtFile!=null&&t.add(e.llmsTxtFile),e.llmsFullTxtFile!=null&&t.add(e.llmsFullTxtFile),e.robotsTxtFile!=null&&t.add(e.robotsTxtFile),e.pageActions?.options?.custom!=null&&await Promise.all(e.pageActions.options.custom.map(async n=>{n.icon!=null&&await Lw({iconPath:n.icon,filepaths:t})})),e.translationNavigationOverlays!=null)for(let n of Object.values(e.translationNavigationOverlays))await W5m({navbarLinks:n.navbarLinks,filepaths:t});return t}async function W5m({navbarLinks:e,filepaths:t}){e!=null&&await Promise.all(e.map(async r=>{if(r.type!=="github"){if(r.type==="dropdown"){await Promise.all(r.links.map(async n=>{n.icon!=null&&await Lw({iconPath:n.icon,filepaths:t}),n.rightIcon!=null&&await Lw({iconPath:n.rightIcon,filepaths:t})})),r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.rightIcon!=null&&await Lw({iconPath:r.rightIcon,filepaths:t});return}r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.rightIcon!=null&&await Lw({iconPath:r.rightIcon,filepaths:t})}}))}async function iWo({navigation:e}){let t=new Set;switch(e.type){case"untabbed":await Promise.all(e.items.map(r=>xyt({item:r,filepaths:t})));break;case"tabbed":await Promise.all(e.items.map(async r=>{r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.child.type==="layout"&&r.child.layout!=null?await Promise.all(r.child.layout.map(n=>xyt({item:n,filepaths:t}))):r.child.type==="variants"&&r.child.variants!=null&&await Promise.all(r.child.variants.flatMap(n=>{let i=[];return n.icon!=null&&i.push(Lw({iconPath:n.icon,filepaths:t})),i.push(...n.layout.map(o=>xyt({item:o,filepaths:t}))),i}))}));break;case"versioned":await Promise.all(e.versions.map(async r=>{r.landingPage!=null&&await xyt({item:r.landingPage,filepaths:t}),(await iWo({navigation:r.navigation})).forEach(i=>t.add(i))}));break;case"productgroup":await Promise.all(e.products.map(async r=>{r.icon!=null&&await Lw({iconPath:r.icon,filepaths:t}),r.type==="internal"&&(r.landingPage!=null&&await xyt({item:r.landingPage,filepaths:t}),(await iWo({navigation:r.navigation})).forEach(i=>t.add(i)))}));break}return t}async function xyt({item:e,filepaths:t}){switch(e.type){case"page":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"section":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t}),await Promise.all(e.contents.map(r=>xyt({item:r,filepaths:t})));break;case"apiSection":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"link":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break;case"changelog":e.icon!=null&&await Lw({iconPath:e.icon,filepaths:t});break}}var KJu,YJu=h(()=>{"use strict";KJu=be(require("path"),1)});function H5m(e,t,r){return e.replace(/\[([^\]]*)\]\(([^)]+\.mdx?(?:#[^)]*)?)\)/g,(n,i,o)=>{let s=o.indexOf("#"),a=s>=0?o.substring(0,s):o,c=s>=0?o.substring(s):"",u=xde({href:a,metadata:r,markdownFilesToPathName:t});return u!=null&&u.type==="replace"?`[${i}](${u.slug}${c})`:n})}function aZn(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)aZn(i,t,r);return}let n=e;for(let[i,o]of Object.entries(n))typeof o=="string"&&o.includes(".md")?n[i]=H5m(o,t,r):typeof o=="object"&&aZn(o,t,r)}function z3e(e,t,r){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let i of e)z3e(i,t,r);return}let n=e;n.apiDefinitionId===t&&(n.apiDefinitionId=r);for(let i of Object.values(n))typeof i=="object"&&z3e(i,t,r)}var oWo=h(()=>{"use strict";m9()});async function XJu({navigation:e,apiWorkspaces:t,visitor:r,context:n}){J5m(e)?await Promise.all(e.map(async i=>{Y5m(i)?await Promise.all(i.layout.map(async o=>{await cZn({navigationItem:o,visitor:r,apiWorkspaces:t,context:n})})):X5m(i)&&await Promise.all(i.variants.flatMap(o=>o.layout.map(async s=>{await cZn({navigationItem:s,visitor:r,apiWorkspaces:t,context:n})})))})):await Promise.all(e.map(async i=>{await cZn({navigationItem:i,visitor:r,apiWorkspaces:t,context:n})}))}async function cZn({navigationItem:e,visitor:t,apiWorkspaces:r,context:n}){if(await Y4(e,{alphabetized:ht,api:ht,apiName:ht,audiences:ht,displayErrors:ht,tagDescriptionPages:ht,snippets:ht,summary:ht,title:ht,layout:ht,collapsed:ht,icon:ht,slug:ht,hidden:ht,skipSlug:ht,paginated:ht,playground:ht,flattened:ht,path:ht,page:ht,featureFlag:ht,openrpc:ht,postman:ht,contents:async i=>{i!=null&&await Promise.all(i.map(async o=>{await cZn({navigationItem:o,visitor:t,apiWorkspaces:r,context:n})}))},viewers:ht,orphaned:ht,availability:ht}),K5m(e)){let i=r.find(o=>o.workspaceName===e.apiName);i!=null&&await t.apiSection?.({config:e,workspace:i,context:n})}}function K5m(e){return e.api!=null}function J5m(e){return e[0]?.tab!=null}function Y5m(e){return"layout"in e&&Array.isArray(e.layout)}function X5m(e){return"variants"in e&&Array.isArray(e.variants)}var ZJu=h(()=>{"use strict";Dt()});function H2(e){return e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`}var sWo=h(()=>{"use strict"});function e8m(e,t){let r=e?.launch;if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${H2(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function t8m(e){switch(e){case"beta":return vt.V1.NavigationV1Availability.Beta;case"deprecated":return vt.V1.NavigationV1Availability.Deprecated;case"ga":return vt.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return vt.V1.NavigationV1Availability.Stable;case"alpha":return vt.V1.NavigationV1Availability.Alpha;case"preview":return vt.V1.NavigationV1Availability.Preview;case"legacy":return vt.V1.NavigationV1Availability.Legacy;default:ve(e)}}var eYu,tYu,uZn,Pde,rYu,Z5m,$Ju,$5m,m3,nYu=h(()=>{"use strict";Jk();Qo();Dt();m9();zm();Yt();$To();Kl();tc();om();jt();eYu=be(uRr(),1),tYu=be(lRr(),1),uZn=require("fs"),Pde=require("fs/promises"),rYu=be(hL(),1);us();Vi();AJu();j7o();bJu();IJu();WXn();xJu();nWo();YJu();oWo();ZJu();sWo();eYu.default.extend(tYu.default);Z5m=e=>e.map(t=>({...t,fileId:String(t.relativeFilePath)})),$Ju=0,$5m=async({ir:e})=>($Ju++,`${uyo(e.apiName)}-${$Ju}`),m3=class{domain;docsWorkspace;ossWorkspaces;apiWorkspaces;taskContext;editThisPage;uploadFiles;registerApi;targetAudiences;buildTranslatedApiDefinitions;constructor({domain:t,docsWorkspace:r,ossWorkspaces:n,apiWorkspaces:i,taskContext:o,editThisPage:s,uploadFiles:a=Z5m,registerApi:c=$5m,targetAudiences:u,buildTranslatedApiDefinitions:l=!1}){this.domain=t,this.docsWorkspace=r,this.ossWorkspaces=n,this.apiWorkspaces=i,this.taskContext=o,this.editThisPage=s,this.uploadFiles=a,this.registerApi=c,this.targetAudiences=u,this.buildTranslatedApiDefinitions=l}#e=XXn.init();shouldIncludeByAudience(t){return!t||t.length===0||!this.targetAudiences||this.targetAudiences.length===0?!0:t.some(r=>this.targetAudiences?.includes(r))}applyAudienceFiltering(t){let r=this.filterNavigationByAudience(t.navigation);return{...t,navigation:r}}filterNavigationByAudience(t){return t.type==="untabbed"||t.type==="tabbed"?t:t.type==="versioned"?{...t,versions:t.versions.filter(r=>this.shouldIncludeByAudience(this.getRawVersionAudiences(r.version)))}:t.type==="productgroup"?{...t,products:t.products.filter(r=>{let n=this.getRawProductAudiences(r.product);return this.shouldIncludeByAudience(n)})}:t}getRawProductAudiences(t){let n=this.docsWorkspace.config.products?.find(i=>i.displayName===t);return mQt(n?.audiences)}getRawVersionAudiences(t){let n=this.docsWorkspace.config.versions?.find(i=>i.displayName===t);return mQt(n?.audiences)}_parsedDocsConfig;get parsedDocsConfig(){if(this._parsedDocsConfig==null)throw new B({message:"parsedDocsConfig is not set",code:B.Code.InternalError});return this._parsedDocsConfig}getTranslationPages(){return this._parsedDocsConfig?.translationPages}getTranslationNavigationOverlays(){return this._parsedDocsConfig?.translationNavigationOverlays}getCollectedFileIds(){return this.collectedFileIds}getDocsWorkspacePath(){return this.docsWorkspace.absoluteFilePath}getTranslatedApiSpecs(){return this.translatedApiSpecs}getDocsTranslationsConfig(){let t=this.parsedDocsConfig.translations;if(t==null||t.length===0)return;let r=t.map(i=>bh.DocsYmlSchemas.normalizeTranslationConfig(i)),n=r.find(i=>i.default===!0)??r[0];if(n!=null)return{defaultLocale:n.lang,translations:r.map(i=>i.lang)}}collectedFileIds=new Map;markdownFilesToFullSlugs=new Map;markdownFilesToSidebarTitle=new Map;markdownFilesToNoIndex=new Map;markdownFilesToTags=new Map;markdownFilesToAvailability=new Map;rawMarkdownFiles={};referencedMarkdownFiles=[];pendingApiRegistrations=[];pendingApiCounter=0;translatedApiSpecs=new Map;async resolve(){let t=performance.now(),r=process.memoryUsage();this.referencedMarkdownFiles=[],this.taskContext.logger.debug("Parsing docs configuration...");let n=performance.now();this._parsedDocsConfig=await tze({rawDocsConfiguration:this.docsWorkspace.config,context:this.taskContext,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absoluteFilepathToDocsConfig:this.docsWorkspace.absoluteFilepathToDocsConfig});let i=performance.now()-n,o=Object.keys(this.parsedDocsConfig.pages).length;this.taskContext.logger.debug(`Parsed docs configuration in ${i.toFixed(0)}ms: ${o} pages`),this.targetAudiences&&this.targetAudiences.length>0&&(this._parsedDocsConfig=this.applyAudienceFiltering(this._parsedDocsConfig)),this.taskContext.logger.debug("Storing raw markdown content...");for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))this.rawMarkdownFiles[we.of(xe)]=Mw(Ee);let s=this.parsedDocsConfig.experimental?.openapiParserV3,a=s!=null&&!s;if(this.docsWorkspace.config.navigation!=null&&a){this.taskContext.logger.debug("Visiting navigation AST for changelog files...");let xe=performance.now();await XJu({navigation:this.docsWorkspace.config.navigation,visitor:{apiSection:async({workspace:De})=>{(await De.toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,preserveSchemaIds:!0,objectQueryParameters:!0,respectReadonlySchemas:!0})).changelog?.files.forEach(ct=>{let Ct=ko(this.docsWorkspace.absoluteFilePath,ct.absoluteFilepath);this.parsedDocsConfig.pages[Ct]=ct.contents,this.rawMarkdownFiles[we.of(Ct)]=Mw(ct.contents)})}},apiWorkspaces:this.apiWorkspaces,context:this.taskContext});let Ee=performance.now()-xe;this.taskContext.logger.debug(`Visited navigation AST in ${Ee.toFixed(0)}ms`)}this.taskContext.logger.debug("Building markdown file maps...");let c=performance.now();this.extractAllFrontmatterData(this.parsedDocsConfig.pages);let u=performance.now()-c;this.taskContext.logger.debug(`Built markdown file maps in ${u.toFixed(0)}ms`),this.taskContext.logger.debug("Replacing referenced markdown and code files...");let l=performance.now(),p=new Set;for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages)){let De=await wT({markdown:Ee,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe),context:this.taskContext});for(let Ct of De.referencedFiles)p.has(Ct.absoluteFilePath)||(p.add(Ct.absoluteFilePath),this.referencedMarkdownFiles.push(Ct));let Je=await q2({markdown:De.markdown,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe),context:this.taskContext}),ct=G2({markdown:Je,absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.resolveFilepath(xe)});this.parsedDocsConfig.pages[we.of(xe)]=ct}let d=performance.now()-l;this.taskContext.logger.debug(`Replaced referenced content in ${d.toFixed(0)}ms, found ${this.referencedMarkdownFiles.length} referenced markdown files`),this.taskContext.logger.debug("Collecting files from docs config...");let f=performance.now(),m=await JJu({parsedDocsConfig:this.parsedDocsConfig}),g=performance.now()-f;this.taskContext.logger.debug(`Collected ${m.size} files in ${g.toFixed(0)}ms`);let A=await EJu({absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath});A.length>0&&(this.taskContext.logger.debug(`Collected ${A.length} well-known agent skills files`),A.forEach(xe=>m.add(xe))),this.taskContext.logger.debug("Parsing image paths from markdown files...");let y=performance.now();for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))try{let{filepaths:De,markdown:Je}=qH(Ee,{absolutePathToMarkdownFile:this.resolveFilepath(xe),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext);this.parsedDocsConfig.pages[we.of(xe)]=Je;for(let ct of De)m.add(ct)}catch(De){throw this.taskContext.logger.error(`Failed to parse ${xe}: ${zn(De)}`),new B({message:`Failed to parse markdown file ${xe}: ${zn(De)}`,code:B.Code.ParseError})}let E=performance.now()-y;this.taskContext.logger.debug(`Parsed image paths in ${E.toFixed(0)}ms`);let v=Array.from(m).map(xe=>({absoluteFilePath:xe,relativeFilePath:this.toRelativeFilepath(xe)}));this.taskContext.logger.info(`Uploading ${v.length} files...`);let I=performance.now(),C=await this.uploadFiles(v),w=performance.now()-I;this.taskContext.logger.info(`Uploaded ${C.length} files in ${w.toFixed(0)}ms`),C.forEach(xe=>{this.collectedFileIds.set(xe.absoluteFilePath,xe.fileId)}),this.resolveTranslationOverlayNavbarLinkIcons(),this.taskContext.logger.debug("Building navigation tree...");let T=performance.now(),P=await this.toRootNode(),O=performance.now()-T;this.taskContext.logger.debug(`Built navigation tree in ${O.toFixed(0)}ms`),this.taskContext.logger.debug("Getting fully qualified path names...");let M=performance.now(),K=await this.getMarkdownFilesToFullyQualifiedPathNames(P),Y=performance.now()-M;if(this.taskContext.logger.debug(`Got path names in ${Y.toFixed(0)}ms`),this.pendingApiRegistrations.length>0){this.taskContext.logger.debug(`Processing ${this.pendingApiRegistrations.length} deferred API registrations...`);let xe=performance.now();for(let De of this.pendingApiRegistrations){this.resolveLinksInIrDocs(De.ir,K);let Je=await this.registerApi({ir:De.ir,snippetsConfig:De.snippetsConfig,playgroundConfig:De.playgroundConfig,apiName:De.apiName,workspace:De.workspace,graphqlOperations:De.graphqlOperations,graphqlTypes:De.graphqlTypes});if(z3e(De.apiReferenceNode,De.tempApiDefinitionId,Je),De.translatedIrsByLocale!=null)for(let[ct,Ct]of De.translatedIrsByLocale){this.resolveLinksInIrDocs(Ct,K);let at=this.translatedApiSpecs.get(ct);at==null&&(at=new Map,this.translatedApiSpecs.set(ct,at)),at.set(Je,{ir:Ct,snippetsConfig:De.snippetsConfig,playgroundConfig:De.playgroundConfig,apiName:De.apiName,graphqlOperations:De.graphqlOperations,graphqlTypes:De.graphqlTypes,workspace:De.workspace})}}let Ee=performance.now()-xe;this.taskContext.logger.debug(`Processed deferred API registrations in ${Ee.toFixed(0)}ms`),this.pendingApiRegistrations=[]}this.taskContext.logger.debug("Replacing image paths and URLs in markdown...");let Z=performance.now();for(let[xe,Ee]of Object.entries(this.parsedDocsConfig.pages))try{this.parsedDocsConfig.pages[we.of(xe)]=_2(Ee,this.collectedFileIds,K,{absolutePathToMarkdownFile:this.resolveFilepath(xe),absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath},this.taskContext)}catch(De){throw new B({message:`Failed to replace image paths in markdown file ${xe}: ${zn(De)}`,code:B.Code.ParseError})}let ae=performance.now()-Z;this.taskContext.logger.debug(`Replaced image paths in ${ae.toFixed(0)}ms`),this.taskContext.logger.debug("Building page content...");let le={};Object.entries(this.parsedDocsConfig.pages).forEach(([xe,Ee])=>{let{url:De,launch:Je}=e8m(this.editThisPage,xe),ct=this.rawMarkdownFiles[we.of(xe)];le[Ew.PageId(xe)]={markdown:Mw(Ee),editThisPageUrl:De?Ew.Url(De):void 0,editThisPageLaunch:Je,rawMarkdown:ct}}),this.taskContext.logger.debug("Converting docs configuration...");let oe=performance.now(),ce=await this.convertDocsConfiguration(P),Te=performance.now()-oe;this.taskContext.logger.debug(`Converted docs configuration in ${Te.toFixed(0)}ms`);let Fe={};if(this._parsedDocsConfig.experimental?.mdxComponents!=null){this.taskContext.logger.debug("Processing MDX components...");let xe=performance.now(),Ee=new Set;await Promise.all(this._parsedDocsConfig.experimental.mdxComponents.map(async Je=>{let ct=ti(this.docsWorkspace.absoluteFilePath,Je);(await(0,Pde.stat)(ct)).isDirectory()?(await xS(ct,"{js,ts,jsx,tsx,md,mdx}")).forEach(Lt=>{Ee.add(Lt)}):ct.match(/\.(js|ts|jsx|tsx|md|mdx)$/)!=null&&Ee.add(ct)})),Fe=Object.fromEntries(await Promise.all([...Ee].map(async Je=>{let ct=this.toRelativeFilepath(Je),Ct=(await(0,Pde.readFile)(Je)).toString();return[ct,Ct]})));let De=performance.now()-xe;this.taskContext.logger.debug(`Processed ${Ee.size} MDX component files in ${De.toFixed(0)}ms`)}if(this.referencedMarkdownFiles.length>0){this.taskContext.logger.debug(`Adding ${this.referencedMarkdownFiles.length} referenced markdown files to jsFiles...`);for(let xe of this.referencedMarkdownFiles)Fe[xe.relativeFilePath]=xe.content}if(this._parsedDocsConfig.header!=null){let xe=this.toRelativeFilepath(this._parsedDocsConfig.header),Ee=(await(0,Pde.readFile)(this._parsedDocsConfig.header)).toString();Fe[xe]=Ee,this.taskContext.logger.debug(`Added custom header component: ${xe}`)}if(this._parsedDocsConfig.footer!=null){let xe=this.toRelativeFilepath(this._parsedDocsConfig.footer),Ee=(await(0,Pde.readFile)(this._parsedDocsConfig.footer)).toString();Fe[xe]=Ee,this.taskContext.logger.debug(`Added custom footer component: ${xe}`)}let se=performance.now()-t,pe=process.memoryUsage();return this.taskContext.logger.debug(`Total resolve time: ${se.toFixed(0)}ms, Memory delta: RSS=${((pe.rss-r.rss)/1024/1024).toFixed(2)}MB`),{config:ce,pages:le,jsFiles:Fe}}resolveFilepath(t){if(t!=null)return ti(this.docsWorkspace.absoluteFilePath,t)}toRelativeFilepath(t){if(t!=null)return ko(this.docsWorkspace.absoluteFilePath,t)}extractAllFrontmatterData(t){for(let[r,n]of Object.entries(t)){let i=(0,rYu.default)(n),o=this.resolveFilepath(r),s=i.data.slug;if(typeof s=="string"&&s.trim().length>0){let p=s.trim();myt(p)?this.markdownFilesToFullSlugs.set(o,p):this.taskContext.logger.warn(`Ignoring absolute URL slug "${p}" in ${r}. Absolute URLs are not allowed for frontmatter slugs.`)}let a=i.data["sidebar-title"];typeof a=="string"&&a.trim().length>0&&this.markdownFilesToSidebarTitle.set(o,a.trim());let c=i.data.noindex;typeof c=="boolean"&&this.markdownFilesToNoIndex.set(o,c);let u=i.data.tags;typeof u=="string"?this.markdownFilesToTags.set(o,u.split(",").map(p=>p.trim()).filter(p=>p.length>0)):Array.isArray(u)&&this.markdownFilesToTags.set(o,u);let l=i.data.availability;if(typeof l=="string"){let p=this.parseAvailabilityFromFrontmatter(l);p!=null&&this.markdownFilesToAvailability.set(o,p)}}}parseAvailabilityFromFrontmatter(t){switch(t.toLowerCase().trim()){case"stable":return"stable";case"generally-available":return"generally-available";case"in-development":return"in-development";case"pre-release":return"pre-release";case"deprecated":return"deprecated";case"beta":return"beta";default:this.taskContext.logger.warn(`Invalid availability value "${t}" in frontmatter. Valid values are: stable, generally-available, in-development, pre-release, deprecated, beta`);return}}async getMarkdownFilesToFullyQualifiedPathNames(t){let r={},n=vt.migrate.FernNavigationV1ToLatest.create().root(t);return vt.NodeCollector.collect(n).slugMap.forEach((o,s)=>{if(o==null||!vt.isPage(o))return;let a=vt.getPageId(o);if(a==null)return;let c=Ge(this.docsWorkspace.absoluteFilePath,we.of(a));r[c]??=s}),r}getDocsBasePath(){return new URL(H2(this.domain)).pathname}async convertDocsConfiguration(t){let r=this.parsedDocsConfig.integrations!=null||this.parsedDocsConfig.context7File!=null?{...this.parsedDocsConfig.integrations,context7:this.getFileId(this.parsedDocsConfig.context7File)}:void 0;return{aiChatConfig:this.parsedDocsConfig.aiChatConfig!=null?{model:this.parsedDocsConfig.aiChatConfig.model,systemPrompt:this.parsedDocsConfig.aiChatConfig.systemPrompt,location:this.parsedDocsConfig.aiChatConfig.location?.filter(i=>i==="slack"||i==="docs"),datasources:this.parsedDocsConfig.aiChatConfig.datasources?.map(i=>({url:i.url,title:i.title}))}:void 0,hideNavLinks:void 0,title:this.parsedDocsConfig.title,logoHeight:this.parsedDocsConfig.logo?.height,logoHref:this.parsedDocsConfig.logo?.href?Ew.Url(this.parsedDocsConfig.logo?.href):void 0,logoRightText:this.parsedDocsConfig.logo?.rightText,favicon:this.getFileId(this.parsedDocsConfig.favicon),navigation:void 0,root:t,colorsV3:this.convertColorConfigImageReferences(),navbarLinks:this.parsedDocsConfig.navbarLinks?.map(i=>i.type==="dropdown"?{...i,links:i.links?.map(o=>({...o,url:Ew.Url(o.url),icon:this.resolveIconFileId(o.icon),rightIcon:this.resolveIconFileId(o.rightIcon)})),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)}:i.type==="github"?{...i,url:Ew.Url(i.url)}:{...i,url:Ew.Url(i.url),icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)}),typographyV2:this.convertDocsTypographyConfiguration(),layout:this.parsedDocsConfig.layout,settings:this.parsedDocsConfig.settings,css:this.parsedDocsConfig.css,js:this.convertJavascriptConfiguration(),agents:this.parsedDocsConfig.agents!=null||this.parsedDocsConfig.llmsTxtFile!=null||this.parsedDocsConfig.llmsFullTxtFile!=null||this.parsedDocsConfig.robotsTxtFile!=null?{...this.parsedDocsConfig.agents,llmsTxt:this.getFileId(this.parsedDocsConfig.llmsTxtFile),llmsFullTxt:this.getFileId(this.parsedDocsConfig.llmsFullTxtFile),robotsTxt:this.getFileId(this.parsedDocsConfig.robotsTxtFile)}:void 0,metadata:this.convertMetadata(),redirects:this.parsedDocsConfig.redirects,integrations:r,footerLinks:this.parsedDocsConfig.footerLinks?.map(i=>({...i,value:Ew.Url(i.value)})),defaultLanguage:this.parsedDocsConfig.defaultLanguage,languages:this.parsedDocsConfig.languages,translations:this.getDocsTranslationsConfig(),analyticsConfig:{...this.parsedDocsConfig.analyticsConfig,segment:this.parsedDocsConfig.analyticsConfig?.segment,fullstory:this.parsedDocsConfig.analyticsConfig?.fullstory,intercom:this.parsedDocsConfig.analyticsConfig?.intercom?{appId:this.parsedDocsConfig.analyticsConfig.intercom.appId,apiBase:this.parsedDocsConfig.analyticsConfig.intercom.apiBase}:void 0,posthog:this.parsedDocsConfig.analyticsConfig?.posthog?{apiKey:this.parsedDocsConfig.analyticsConfig.posthog.apiKey,endpoint:this.parsedDocsConfig.analyticsConfig.posthog.endpoint}:void 0,gtm:this.parsedDocsConfig.analyticsConfig?.gtm?{containerId:this.parsedDocsConfig.analyticsConfig.gtm.containerId}:void 0,ga4:this.parsedDocsConfig.analyticsConfig?.ga4?{measurementId:this.parsedDocsConfig.analyticsConfig.ga4.measurementId}:void 0,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},announcement:this.parsedDocsConfig.announcement!=null?{text:this.parsedDocsConfig.announcement.message}:void 0,editThisPageLaunch:this.editThisPage?.launch,pageActions:this.convertPageActions(),theme:this.parsedDocsConfig.theme!=null?{sidebar:this.parsedDocsConfig.theme.sidebar,body:this.parsedDocsConfig.theme.body,tabs:this.parsedDocsConfig.theme.tabs,"page-actions":this.parsedDocsConfig.theme.pageActions,footerNav:this.parsedDocsConfig.theme.footerNav,"language-switcher":this.parsedDocsConfig.theme.languageSwitcher,"product-switcher":this.parsedDocsConfig.theme.productSwitcher}:void 0,logo:void 0,logoV2:void 0,colors:void 0,colorsV2:void 0,typography:void 0,backgroundImage:void 0,header:this.parsedDocsConfig.header?this.toRelativeFilepath(this.parsedDocsConfig.header):void 0,footer:this.parsedDocsConfig.footer?this.toRelativeFilepath(this.parsedDocsConfig.footer):void 0}}getFernWorkspaceForApiSection(t){if(t.apiName!=null){let n=this.apiWorkspaces.find(i=>i.workspaceName===t.apiName);if(n!=null)return n}else if(this.apiWorkspaces.length===1&&this.apiWorkspaces[0]!=null)return this.apiWorkspaces[0];let r=t.apiName?`Failed to load API Definition '${t.apiName}' referenced in docs.
|
|
1438
1438
|
A valid API configuration was not found at the path: fern/apis/${t.apiName}.
|
|
1439
1439
|
Learn more about project structure:
|
|
1440
1440
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`:`Failed to load API Definition referenced in docs.
|
|
@@ -1444,7 +1444,7 @@ A valid API configuration was not found at the path: fern/apis/${t.apiName}.
|
|
|
1444
1444
|
Learn more about project structure:
|
|
1445
1445
|
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`:`Failed to load API Definition referenced in docs.
|
|
1446
1446
|
Learn more about project structure:
|
|
1447
|
-
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new B({message:r,code:B.Code.ConfigError})}async buildTranslatedApiIrs(t,r){let n=this.getDocsTranslationsConfig();if(n?.translations==null||n.translations.length===0)return;let{defaultLocale:i,translations:o}=n,s=this.docsWorkspace.absoluteFilePath,a=new Map;for(let c of o){if(c===i)continue;let u=this.createTranslatedOssWorkspace(r,c,s);if(u!=null)try{let l=await u.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});a.set(c,l),this.taskContext.logger.debug(`Built translated API definition for locale "${c}" (api: ${t.apiName??r.workspaceName??"<default>"})`)}catch(l){this.taskContext.logger.warn(`Failed to build translated API definition for locale "${c}": ${zn(l)}. Falling back to the default-locale API for this locale.`)}}return a.size>0?a:void 0}createTranslatedOssWorkspace(t,r,n){let i=!1,o=(l,p)=>{let d=ko(n,l);if(String(d).startsWith(".."))return l;let f=Ge(n,we.of(`translations/${r}`),d);return(0,uZn.existsSync)(f)?(p&&(i=!0),f):l},s=l=>l==null?l:Array.isArray(l)?l.map(p=>o(p,!1)):o(l,!1),a=l=>{switch(l.type){case"openapi":return{...l,absoluteFilepath:o(l.absoluteFilepath,!0),absoluteFilepathToOverrides:s(l.absoluteFilepathToOverrides),absoluteFilepathToOverlays:l.absoluteFilepathToOverlays!=null?o(l.absoluteFilepathToOverlays,!1):void 0};case"openrpc":case"graphql":return{...l,absoluteFilepath:o(l.absoluteFilepath,!0),absoluteFilepathToOverrides:s(l.absoluteFilepathToOverrides)};default:return l}},c=t.specs.map(l=>a(l)),u=t.allSpecs.map(l=>a(l));if(i)return new yp({allSpecs:u,specs:c,generatorsConfiguration:t.generatorsConfiguration,workspaceName:t.workspaceName,cliVersion:t.cliVersion,absoluteFilePath:t.absoluteFilePath,changelog:t.changelog})}async toRootNode(){let t=vt.V1.SlugGenerator.init(vt.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,collapsed:void 0,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>vt.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return fv(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=vt.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??qf(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),collapsed:void 0,title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,collapsed:void 0,landingPage:o,child:s}}async toVersionedNode(t,r){let n=this.#e.get("versioned"),i=t.versions[0];if(i?.hidden===!0)throw new B({message:`The default version "${i.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`,code:B.Code.ConfigError});let o=5,s=[];for(let a=0;a<t.versions.length;a+=o){let c=t.versions.slice(a,a+o),u=await Promise.all(c.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...u)}return{id:n,type:"versioned",collapsed:void 0,children:s}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",collapsed:void 0,landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??qf(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),collapsed:void 0,landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),collapsed:void 0,landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n);break;default:ve(t.navigation)}return{type:"product",id:this.#e.get(t.product),collapsed:void 0,productId:vt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),collapsed:void 0,productId:vt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:Ew.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),o=r.setVersionSlug(t.slug??qf(t.version)),s=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,o):await this.toSidebarRootNode(i,t.navigation.items,o);return{type:"version",id:i,collapsed:void 0,versionId:vt.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?t8m(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,o):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(c=>this.toNavigationChild({prefix:i,item:c,parentSlug:n})))).filter(c=>c!=null),a=[];return s.forEach(c=>{if(c.type==="apiReference"){a.push(c);return}let u=c.type==="section"&&c.collapsed!=null;if(c.type==="section"&&!u){a.push(c);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",collapsed:void 0,children:[]},a.push(p)),p.children.push(c)}),{type:"sidebarRoot",id:i,collapsed:void 0,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,collapsed:void 0,children:[{type:"varianted",id:i,collapsed:void 0,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??qf(t.title)}`),o=n.apply({urlSlug:t.slug??qf(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(c=>this.toVariantChild(c,i,o)))).filter(c=>c!=null);return{type:"variant",id:i,collapsed:void 0,variantId:vt.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return fv(t)._visit({page:async i=>this.toPageNode({item:i,parentSlug:n}),apiSection:async i=>this.toApiSectionNode({item:i,parentSlug:n}),section:async i=>this.toSectionNode({prefix:r,item:i,parentSlug:n}),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n),librarySection:async i=>this.handleLibrarySection(i,n)})}async toNavigationChild({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){return fv(r)._visit({page:async s=>this.toPageNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),apiSection:async s=>this.toApiSectionNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),section:async s=>this.toSectionNode({prefix:t,item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),link:async s=>this.toLinkNode(s),changelog:async s=>this.toChangelogNode(s,n,i),librarySection:async s=>this.handleLibrarySection(s,n)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=vJu(t.snippetsConfiguration),s,a,c,u,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{c=this.getOpenApiWorkspaceForApiSection(t),s=await c.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(w){u=w}let d;if(t.tagDescriptionPages&&p)try{let T=await(c??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});T.tags.tagsById&&(d=Object.fromEntries(Object.entries(T.tags.tagsById).filter(([P,O])=>O.description&&O.description.trim().length>0).map(([P,O])=>[$n(P),{id:String(O.id),description:O.description}])))}catch(w){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(w))}if(s==null){if(this.apiWorkspaces.length===0&&u!=null)throw u;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Sg({workspace:a,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},readme:void 0,version:void 0,packageName:void 0,context:this.taskContext,sourceResolver:new Ch(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(w){this.taskContext.logger.debug(`Could not load workspace: ${w}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=XA(s,{onError:w=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${w}`,void 0,{code:B.Code.EnvironmentError})},{substituteAsEmpty:!1}));let f=c;if(f==null)try{f=this.getOpenApiWorkspaceForApiSection(t)}catch{}let m=await this.extractGraphQLData(f),g=t.apiName??a?.workspaceName??c?.workspaceName,A=`__pending_api_${this.pendingApiCounter++}__`,y=s8t({ir:s,apiDefinitionId:A,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:m.operations,graphqlTypes:m.types}),E=new YXn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,d,m.namespacesByOperationId),v=E.getTagDescriptionContent();for(let[w,T]of v.entries()){let P=w.split("/").pop()||w,O=we.of(P),M=T;this.docsWorkspace.config.settings?.substituteEnvVars&&(M=XA(T,{onError:K=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${K}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[O]=Mw(M),this.parsedDocsConfig.pages[O]=M}let I=E.get(),C;return this.buildTranslatedApiDefinitions&&c!=null&&(C=await this.buildTranslatedApiIrs(t,c)),this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:g,workspace:a,graphqlOperations:m.operations,graphqlTypes:m.types,tempApiDefinitionId:A,apiReferenceNode:I,translatedIrsByLocale:C}),I}async toChangelogNode(t,r,n){return new Q3e(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),collapsed:void 0,title:t.text,url:vt.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(t){let r={},n={},i=new Map;if(t==null)return{operations:r,types:n,namespacesByOperationId:i};let o=t.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let a=await this.loadGraphQlExamples(s.absoluteFilepathToExamples),u=await new qtt({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace,examples:a}).convert();if(Object.assign(r,u.graphqlOperations),Object.assign(n,u.types),s.namespace)for(let l of Object.keys(u.graphqlOperations))i.set(cn.GraphQlOperationId(l),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}return{operations:r,types:n,namespacesByOperationId:i}}async loadGraphQlExamples(t){if(t!=null)try{let r=(await(0,Pde.readFile)(t)).toString(),n=vr.load(r);if(!Array.isArray(n))return;for(let o of n){if(typeof o!="object"||o==null){this.taskContext.logger.warn(`Skipping invalid entry in GraphQL examples file ${t}: expected object`);continue}if(typeof o.operation!="string"){this.taskContext.logger.warn(`Skipping entry in GraphQL examples file ${t}: missing or invalid 'operation' field`);continue}if(!Array.isArray(o.examples)){this.taskContext.logger.warn(`Skipping entry for operation '${o.operation}' in ${t}: 'examples' must be an array`);continue}}let i=n.filter(o=>typeof o=="object"&&o!=null&&typeof o.operation=="string"&&Array.isArray(o.examples)).map(o=>{let s=o.examples.filter(a=>typeof a!="object"||a==null||typeof a.query!="string"?(this.taskContext.logger.warn(`Skipping malformed example for operation '${o.operation}' in ${t}: missing or invalid 'query' field`),!1):!0);if(o.operationType!=null){let a=o.operationType.toLowerCase();a!=="query"&&a!=="mutation"&&a!=="subscription"&&this.taskContext.logger.warn(`Invalid operationType '${o.operationType}' for operation '${o.operation}' in ${t}: must be 'query', 'mutation', or 'subscription'`)}return{...o,examples:s}}).filter(o=>o.examples.length>0);return i.length>0?i:void 0}catch(r){this.taskContext.logger.error(`Failed to load GraphQL examples from ${t}:`,String(r));return}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=ti(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??qf(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}/index.mdx`,{quiet:!0})??await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=Ge(r,we.of("_navigation.yml"));if(!(0,uZn.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,Pde.readFile)(n,"utf-8")).split(`
|
|
1447
|
+
https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new B({message:r,code:B.Code.ConfigError})}async buildTranslatedApiIrs(t,r){let n=this.getDocsTranslationsConfig();if(n?.translations==null||n.translations.length===0)return;let{defaultLocale:i,translations:o}=n,s=this.docsWorkspace.absoluteFilePath,a=new Map;for(let c of o){if(c===i)continue;let u=this.createTranslatedOssWorkspace(r,c,s);if(u!=null)try{let l=await u.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});a.set(c,l),this.taskContext.logger.debug(`Built translated API definition for locale "${c}" (api: ${t.apiName??r.workspaceName??"<default>"})`)}catch(l){this.taskContext.logger.warn(`Failed to build translated API definition for locale "${c}": ${zn(l)}. Falling back to the default-locale API for this locale.`)}}return a.size>0?a:void 0}createTranslatedOssWorkspace(t,r,n){let i=!1,o=(l,p)=>{let d=ko(n,l);if(String(d).startsWith(".."))return l;let f=Ge(n,we.of(`translations/${r}`),d);return(0,uZn.existsSync)(f)?(p&&(i=!0),f):l},s=l=>l==null?l:Array.isArray(l)?l.map(p=>o(p,!1)):o(l,!1),a=l=>{switch(l.type){case"openapi":return{...l,absoluteFilepath:o(l.absoluteFilepath,!0),absoluteFilepathToOverrides:s(l.absoluteFilepathToOverrides),absoluteFilepathToOverlays:l.absoluteFilepathToOverlays!=null?o(l.absoluteFilepathToOverlays,!1):void 0};case"openrpc":case"graphql":return{...l,absoluteFilepath:o(l.absoluteFilepath,!0),absoluteFilepathToOverrides:s(l.absoluteFilepathToOverrides)};default:return l}},c=t.specs.map(l=>a(l)),u=t.allSpecs.map(l=>a(l));if(i)return new yp({allSpecs:u,specs:c,generatorsConfiguration:t.generatorsConfiguration,workspaceName:t.workspaceName,cliVersion:t.cliVersion,absoluteFilePath:t.absoluteFilePath,changelog:t.changelog})}async toRootNode(){let t=vt.V1.SlugGenerator.init(vt.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,collapsed:void 0,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>vt.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return fv(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t,this.parsedDocsConfig.landingPage),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=vt.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??qf(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),collapsed:void 0,title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,collapsed:void 0,landingPage:o,child:s}}async toVersionedNode(t,r,n){let i=this.#e.get("versioned"),o=t.versions[0];if(o?.hidden===!0)throw new B({message:`The default version "${o.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`,code:B.Code.ConfigError});let s=5,a=[];for(let c=0;c<t.versions.length;c+=s){let u=t.versions.slice(c,c+s),l=await Promise.all(u.map((p,d)=>this.toVersionNode(p,r,c+d===0,n)));a.push(...l)}return{id:i,type:"versioned",collapsed:void 0,children:a}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",collapsed:void 0,landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??qf(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),collapsed:void 0,landingPage:t.landingPage!=null?this.toLandingPageNode(t.landingPage,n):void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),collapsed:void 0,landingPage:t.landingPage!=null?this.toLandingPageNode(t.landingPage,n):void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n,t.landingPage??this.parsedDocsConfig.landingPage);break;default:ve(t.navigation)}return{type:"product",id:this.#e.get(t.product),collapsed:void 0,productId:vt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),collapsed:void 0,productId:vt.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:Ew.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n,i){let o=this.#e.get(t.version),s=r.setVersionSlug(t.slug??qf(t.version)),a=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(o,t.navigation.items,s):await this.toSidebarRootNode(o,t.navigation.items,s),c=t.landingPage??i;return{type:"version",id:o,collapsed:void 0,versionId:vt.VersionId(t.version),title:t.version,slug:s.get(),child:a,default:n,availability:t.availability!=null?t8m(t.availability):void 0,landingPage:c!=null?this.toLandingPageNode(c,s):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(c=>this.toNavigationChild({prefix:i,item:c,parentSlug:n})))).filter(c=>c!=null),a=[];return s.forEach(c=>{if(c.type==="apiReference"){a.push(c);return}let u=c.type==="section"&&c.collapsed!=null;if(c.type==="section"&&!u){a.push(c);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",collapsed:void 0,children:[]},a.push(p)),p.children.push(c)}),{type:"sidebarRoot",id:i,collapsed:void 0,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,collapsed:void 0,children:[{type:"varianted",id:i,collapsed:void 0,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??qf(t.title)}`),o=n.apply({urlSlug:t.slug??qf(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(c=>this.toVariantChild(c,i,o)))).filter(c=>c!=null);return{type:"variant",id:i,collapsed:void 0,variantId:vt.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return fv(t)._visit({page:async i=>this.toPageNode({item:i,parentSlug:n}),apiSection:async i=>this.toApiSectionNode({item:i,parentSlug:n}),section:async i=>this.toSectionNode({prefix:r,item:i,parentSlug:n}),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n),librarySection:async i=>this.handleLibrarySection(i,n)})}async toNavigationChild({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){return fv(r)._visit({page:async s=>this.toPageNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),apiSection:async s=>this.toApiSectionNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),section:async s=>this.toSectionNode({prefix:t,item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),link:async s=>this.toLinkNode(s),changelog:async s=>this.toChangelogNode(s,n,i),librarySection:async s=>this.handleLibrarySection(s,n)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=vJu(t.snippetsConfiguration),s,a,c,u,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{c=this.getOpenApiWorkspaceForApiSection(t),s=await c.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(w){u=w}let d;if(t.tagDescriptionPages&&p)try{let T=await(c??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});T.tags.tagsById&&(d=Object.fromEntries(Object.entries(T.tags.tagsById).filter(([P,O])=>O.description&&O.description.trim().length>0).map(([P,O])=>[$n(P),{id:String(O.id),description:O.description}])))}catch(w){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(w))}if(s==null){if(this.apiWorkspaces.length===0&&u!=null)throw u;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Sg({workspace:a,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},readme:void 0,version:void 0,packageName:void 0,context:this.taskContext,sourceResolver:new Ch(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(w){this.taskContext.logger.debug(`Could not load workspace: ${w}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=XA(s,{onError:w=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${w}`,void 0,{code:B.Code.EnvironmentError})},{substituteAsEmpty:!1}));let f=c;if(f==null)try{f=this.getOpenApiWorkspaceForApiSection(t)}catch{}let m=await this.extractGraphQLData(f),g=t.apiName??a?.workspaceName??c?.workspaceName,A=`__pending_api_${this.pendingApiCounter++}__`,y=s8t({ir:s,apiDefinitionId:A,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:m.operations,graphqlTypes:m.types}),E=new YXn(t,y,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,d,m.namespacesByOperationId),v=E.getTagDescriptionContent();for(let[w,T]of v.entries()){let P=w.split("/").pop()||w,O=we.of(P),M=T;this.docsWorkspace.config.settings?.substituteEnvVars&&(M=XA(T,{onError:K=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${K}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[O]=Mw(M),this.parsedDocsConfig.pages[O]=M}let I=E.get(),C;return this.buildTranslatedApiDefinitions&&c!=null&&(C=await this.buildTranslatedApiIrs(t,c)),this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:g,workspace:a,graphqlOperations:m.operations,graphqlTypes:m.types,tempApiDefinitionId:A,apiReferenceNode:I,translatedIrsByLocale:C}),I}async toChangelogNode(t,r,n){return new Q3e(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),collapsed:void 0,title:t.text,url:vt.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(t){let r={},n={},i=new Map;if(t==null)return{operations:r,types:n,namespacesByOperationId:i};let o=t.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let a=await this.loadGraphQlExamples(s.absoluteFilepathToExamples),u=await new qtt({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace,examples:a}).convert();if(Object.assign(r,u.graphqlOperations),Object.assign(n,u.types),s.namespace)for(let l of Object.keys(u.graphqlOperations))i.set(cn.GraphQlOperationId(l),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}return{operations:r,types:n,namespacesByOperationId:i}}async loadGraphQlExamples(t){if(t!=null)try{let r=(await(0,Pde.readFile)(t)).toString(),n=vr.load(r);if(!Array.isArray(n))return;for(let o of n){if(typeof o!="object"||o==null){this.taskContext.logger.warn(`Skipping invalid entry in GraphQL examples file ${t}: expected object`);continue}if(typeof o.operation!="string"){this.taskContext.logger.warn(`Skipping entry in GraphQL examples file ${t}: missing or invalid 'operation' field`);continue}if(!Array.isArray(o.examples)){this.taskContext.logger.warn(`Skipping entry for operation '${o.operation}' in ${t}: 'examples' must be an array`);continue}}let i=n.filter(o=>typeof o=="object"&&o!=null&&typeof o.operation=="string"&&Array.isArray(o.examples)).map(o=>{let s=o.examples.filter(a=>typeof a!="object"||a==null||typeof a.query!="string"?(this.taskContext.logger.warn(`Skipping malformed example for operation '${o.operation}' in ${t}: missing or invalid 'query' field`),!1):!0);if(o.operationType!=null){let a=o.operationType.toLowerCase();a!=="query"&&a!=="mutation"&&a!=="subscription"&&this.taskContext.logger.warn(`Invalid operationType '${o.operationType}' for operation '${o.operation}' in ${t}: must be 'query', 'mutation', or 'subscription'`)}return{...o,examples:s}}).filter(o=>o.examples.length>0);return i.length>0?i:void 0}catch(r){this.taskContext.logger.error(`Failed to load GraphQL examples from ${t}:`,String(r));return}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=ti(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??qf(s)}),c=this.#e.get(`library/${t.libraryName}`),u;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(u=await this.registerLibraryMdxPage(i,`${p}/index.mdx`,{quiet:!0})??await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:c,type:"section",overviewPageId:u,slug:a.get(),title:s,icon:void 0,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=Ge(r,we.of("_navigation.yml"));if(!(0,uZn.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,Pde.readFile)(n,"utf-8")).split(`
|
|
1448
1448
|
`).filter(s=>!s.startsWith("#")).join(`
|
|
1449
1449
|
`);try{return vr.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${zn(s)}`),null}}async registerLibraryMdxPage(t,r,{quiet:n=!1}={}){let i=Ge(t,we.of(r));if(!(0,uZn.existsSync)(i)){n||this.taskContext.logger.warn(`Library MDX file not found: ${i}`);return}let o=ko(this.docsWorkspace.absoluteFilePath,i),s=await(0,Pde.readFile)(i,"utf-8");return this.parsedDocsConfig.pages[o]=s,vt.PageId(o)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:qf(o.title)});i.push({id:this.#e.get(s),type:"page",collapsed:void 0,slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:qf(o.title)}),a=this.#e.get(`library-section/${o.slug}`),c=await this.registerLibraryMdxPage(r,`${o.slug}/index.mdx`,{quiet:!0})??await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),u=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(u,r,s);i.push({id:a,type:"section",overviewPageId:c,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=vt.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??qf(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),c=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",collapsed:void 0,slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:kg(c??t.availability??i)}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?vt.PageId(s):void 0,c=this.#e.get(a??`${t}/section`),u=r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,l=r.slug??qf(r.title),p,d;if(r.skipUrlSlug&&u!=null)p=n.apply({urlSlug:l,fullSlug:u}),d=n.apply({urlSlug:l,skipUrlSlug:!0});else{let E=n.apply({urlSlug:l,fullSlug:u,skipUrlSlug:r.skipUrlSlug});p=E,d=E}let f=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,m=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,g=i||r.hidden,y=(await Promise.all(r.contents.map(E=>this.toNavigationChild({prefix:c,item:E,parentSlug:d,hideChildren:g,parentAvailability:r.availability??o})))).filter(E=>E!=null);if(a==null){let E=y.find(v=>v.type==="apiReference"&&v.hideTitle===!0&&v.overviewPageId!=null);E!=null&&(a=E.overviewPageId)}return{id:c,type:"section",overviewPageId:a,slug:p.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible,collapsedByDefault:r.collapsedByDefault,hidden:g,viewers:r.viewers,orphaned:r.orphaned,children:y,authed:void 0,pointsTo:void 0,noindex:f,featureFlags:r.featureFlags,availability:kg(m??r.availability??o)}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,collapsed:void 0,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return fv(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new Q3e(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),collapsed:void 0,title:t.title,url:vt.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??qf(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,collapsed:void 0,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??qf(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,collapsed:void 0,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t,void 0,{code:B.Code.InternalError}):Ew.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}resolveTranslationOverlayNavbarLinkIcons(){let t=this.parsedDocsConfig.translationNavigationOverlays;if(t!=null)for(let r of Object.values(t))r.navbarLinks!=null&&(r.navbarLinks=r.navbarLinks.map(n=>n.type==="github"?n:n.type==="dropdown"?{...n,icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon),links:n.links.map(i=>({...i,icon:this.resolveIconFileId(i.icon),rightIcon:this.resolveIconFileId(i.rightIcon)}))}:{...n,icon:this.resolveIconFileId(n.icon),rightIcon:this.resolveIconFileId(n.rightIcon)}))}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,claudeCode:this.parsedDocsConfig.pageActions.options.claudeCode,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default})),skills:this.parsedDocsConfig.pageActions.options.skills}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(Oa),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:Ew.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,"og:dynamic:background-image":i,...o}=this.parsedDocsConfig.metadata;return{...o,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n),"og:dynamic:background-image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return fv(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:Ew.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration",void 0,{code:B.Code.ConfigError})})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};aZn(t,r,n)}}});function lZn(e){return(e.startsWith("http://")||e.startsWith("https://"))&&e.includes("X-Amz-")}function r8m(e){return e.startsWith("http://")||e.startsWith("https://")}function sYu(e){if(e==null)return;let t=e.match(/filename\*?=(?:"([^"]+)"|([^;]+))/i),r=t?.[1]??t?.[2]?.trim();return r!=null&&fZn.default.extname(r)!==""?r:void 0}function n8m(e){try{let r=new URL(e).searchParams.get("response-content-disposition");return sYu(r)}catch{return}}async function pZn(e,t,r){let n=n8m(e),i=await fetch(e);if(!i.ok)throw new Error(`Failed to download theme asset: ${i.status} ${e}`);let o=sYu(i.headers.get("content-disposition")),s=n??o??(()=>{let u=(()=>{let l=i.headers.get("content-type")?.split(";")[0]?.trim();if(l){let p=iYu.default.extension(l);if(p)return`.${p}`}return""})()||(()=>{try{let l=new URL(e).pathname,p=l.lastIndexOf(".");return p>=0?l.slice(p):""}catch{return""}})();return`theme_asset_${r}${u}`})(),a=fZn.default.join(t,s),c=Buffer.from(await i.arrayBuffer());return await(0,cWo.writeFile)(a,c),a}async function i8m(e,t){let r=0,n=JSON.parse(JSON.stringify(e));async function i(a){return typeof a=="string"&&lZn(a)?pZn(a,t,r++):a}if(n.logo!=null&&typeof n.logo=="object"){let a=n.logo;a.dark=await i(a.dark),a.light=await i(a.light)}if(n.favicon=await i(n.favicon),n["background-image"]!=null&&typeof n["background-image"]=="object"){let a=n["background-image"];a.dark=await i(a.dark),a.light=await i(a.light)}if(n.typography!=null&&typeof n.typography=="object"){let a=n.typography;for(let c of["bodyFont","headingsFont","codeFont"]){let u=a[c];if(u!=null&&typeof u=="object"){let l=u;if(Array.isArray(l.paths)){for(let p of l.paths)if(p!=null&&typeof p=="object"){let d=p;d.path=await i(d.path)}}}}}typeof n.css=="string"?n.css=lZn(n.css)?await pZn(n.css,t,r++):n.css:Array.isArray(n.css)&&(n.css=await Promise.all(n.css.map(async a=>typeof a=="string"&&lZn(a)?pZn(a,t,r++):a)));let o=n.js,s=Array.isArray(o)?o:o!=null?[o]:[];if(n.js=await Promise.all(s.map(async a=>{if(a==null||typeof a!="object")return a;let c=a;return typeof c.url=="string"&&r8m(c.url)?c:typeof c.path=="string"&&lZn(c.path)?{...c,path:await pZn(c.path,t,r++)}:c})),n.header=await i(n.header),n.footer=await i(n.footer),n.metadata!=null&&typeof n.metadata=="object"){let a=n.metadata;for(let c of["og:image","twitter:image","og:dynamic:background-image","og:logo"])a[c]=await i(a[c])}return n}function aYu(e,t){let r={...e};for(let[n,i]of Object.entries(t)){let o=e[n];oo(i)&&oo(o)?r[n]=aYu(o,i):r[n]=i}return r}function a8m(e){return e.replace(/-([a-z])/g,(t,r)=>r.toUpperCase())}function aWo(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(aWo);let t={};for(let[r,n]of Object.entries(e)){let i=a8m(r);t[i]=aWo(n)}return t}function c8m(e){return aWo(e)}function u8m(e,t){let r=c8m(t),n=e,i={...n};for(let o of o8m){let s=r[o],a=n[o],c=s8m[o]??"global",u=s!=null,l=a!=null;c==="global"?u&&(oo(s)&&oo(a)?i[o]=aYu(a,s):i[o]=s):l?i[o]=a:u&&(i[o]=s)}return i}async function a8t({docsWorkspace:e,organization:t,fdrOrigin:r,token:n,taskContext:i}){let o=e.config.globalTheme;if(o==null)return e;i.logger.info(`Fetching global theme "${o}" for org "${t}"...`);let s=`${r}/v2/registry/themes/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,a;try{let d=await fetch(s,{headers:{Authorization:`Bearer ${n}`,"Accept-Encoding":"identity"}}),f=await d.text();d.status===404&&i.failAndThrow(`Global theme "${o}" not found for org "${t}". Upload it first with: fern beta docs theme upload --name ${o}`,void 0,{code:B.Code.ConfigError}),d.ok||i.failAndThrow(`Failed to fetch global theme "${o}": HTTP ${d.status}`,void 0,{code:B.Code.ConfigError});let m;try{m=JSON.parse(f)}catch{i.failAndThrow(`Failed to fetch global theme "${o}": unexpected response from server`+(f.length>0?` \u2014 ${f.slice(0,200)}`:" (empty body)"),void 0,{code:B.Code.NetworkError})}let g=m;if(g.error!=null&&(g.error.code==="NOT_FOUND"&&i.failAndThrow(`Global theme "${o}" not found for org "${t}". Upload it first with: fern beta docs theme upload --name ${o}`,void 0,{code:B.Code.ConfigError}),i.failAndThrow(`Failed to fetch global theme "${o}": ${g.error.message??g.error.code??"unknown error"}`,void 0,{code:B.Code.ConfigError})),g.config==null)return i.failAndThrow(`Failed to fetch global theme "${o}": response missing "config" field`,void 0,{code:B.Code.NetworkError}),e;a=g.config}catch(d){throw d instanceof Error&&d.message.includes("fetch failed")&&i.failAndThrow(`Could not reach FDR at ${r} to fetch global theme "${o}"`,d,{code:B.Code.NetworkError}),d}let{path:c}=await oYu.default.dir({prefix:"fern-theme-",unsafeCleanup:!0});i.logger.debug(`Downloading theme assets to ${c}`);let u;try{u=await i8m(a,c)}catch(d){let f=d instanceof Error?`: ${d.message}`:"";return i.failAndThrow(`Failed to download assets for global theme "${o}"${f}`,d,{code:B.Code.NetworkError}),e}let l=u8m(e.config,u);i.logger.info(`Applied global theme "${o}" \u2014 ${Vt.of(c)} (cleaned up on exit)`);let p=fZn.default.join(c,"stitched-docs.yml.json");return await(0,cWo.writeFile)(p,JSON.stringify(l,null,2)),i.logger.debug(`Stitched docs.yml after importing theme written to: ${p}`),{...e,config:l}}var cWo,iYu,fZn,oYu,o8m,s8m,cYu=h(()=>{"use strict";Va();Dt();Yt();jt();cWo=require("fs/promises"),iYu=be(jEe(),1),fZn=be(require("path"),1),oYu=be(dI(),1);({THEME_ELIGIBLE_FIELDS:o8m,THEME_FIELD_POLICIES:s8m}=bh)});async function LI(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof yp?t:null))).filter(Oa)}var uYu=h(()=>{"use strict";Dt();om()});async function uWo(e,t,r){if(e instanceof vQ){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof yp))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return ST({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var lYu=h(()=>{"use strict";om();Bde()});var CC=h(()=>{"use strict";m9();UKu();_Ku();GKu();nYu();cYu();nWo();uYu();lYu();oWo();sWo()});var NYu=b(wWo=>{"use strict";wWo.read=function(e,t,r,n,i){var o,s,a=i*8-n-1,c=(1<<a)-1,u=c>>1,l=-7,p=r?i-1:0,d=r?-1:1,f=e[t+p];for(p+=d,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=o*256+e[t+p],p+=d,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=s*256+e[t+p],p+=d,l-=8);if(o===0)o=1-u;else{if(o===c)return s?NaN:(f?-1:1)*(1/0);s=s+Math.pow(2,n),o=o-u}return(f?-1:1)*s*Math.pow(2,o-n)};wWo.write=function(e,t,r,n,i,o){var s,a,c,u=o*8-i-1,l=(1<<u)-1,p=l>>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,m=n?1:-1,g=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+p>=1?t+=d/c:t+=d*Math.pow(2,1-p),t*c>=2&&(s++,c/=2),s+p>=l?(a=0,s=l):s+p>=1?(a=(t*c-1)*Math.pow(2,i),s=s+p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=a&255,f+=m,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;e[r+f]=s&255,f+=m,s/=256,u-=8);e[r+f-m]|=g*128}});var _Xu=b((RZS,VXu)=>{"use strict";var zXu=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Qqm=/\n/g,zqm=/^\s*/,Mqm=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Lqm=/^:\s*/,Uqm=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Vqm=/^[;\s]*/,_qm=/^\s+|\s+$/g,qqm=`
|
|
1450
1450
|
`,MXu="/",LXu="*",K3e="",Gqm="comment",Wqm="declaration";function Hqm(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var r=1,n=1;function i(m){var g=m.match(Qqm);g&&(r+=g.length);var A=m.lastIndexOf(qqm);n=~A?m.length-A:n+m.length}function o(){var m={line:r,column:n};return function(g){return g.position=new s(m),u(),g}}function s(m){this.start=m,this.end={line:r,column:n},this.source=t.source}s.prototype.content=e;function a(m){var g=new Error(t.source+":"+r+":"+n+": "+m);if(g.reason=m,g.filename=t.source,g.line=r,g.column=n,g.source=e,!t.silent)throw g}function c(m){var g=m.exec(e);if(g){var A=g[0];return i(A),e=e.slice(A.length),g}}function u(){c(zqm)}function l(m){var g;for(m=m||[];g=p();)g!==!1&&m.push(g);return m}function p(){var m=o();if(!(MXu!=e.charAt(0)||LXu!=e.charAt(1))){for(var g=2;K3e!=e.charAt(g)&&(LXu!=e.charAt(g)||MXu!=e.charAt(g+1));)++g;if(g+=2,K3e===e.charAt(g-1))return a("End of comment missing");var A=e.slice(2,g-2);return n+=2,i(A),e=e.slice(g),n+=2,m({type:Gqm,comment:A})}}function d(){var m=o(),g=c(Mqm);if(g){if(p(),!c(Lqm))return a("property missing ':'");var A=c(Uqm),y=m({type:Wqm,property:UXu(g[0].replace(zXu,K3e)),value:A?UXu(A[0].replace(zXu,K3e)):K3e});return c(Vqm),y}}function f(){var m=[];l(m);for(var g;g=d();)g!==!1&&(m.push(g),l(m));return m}return u(),f()}function UXu(e){return e?e.replace(_qm,K3e):K3e}VXu.exports=Hqm});var qXu=b(A8t=>{"use strict";var Kqm=A8t&&A8t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A8t,"__esModule",{value:!0});A8t.default=Yqm;var Jqm=Kqm(_Xu());function Yqm(e,t){let r=null;if(!e||typeof e!="string")return r;let n=(0,Jqm.default)(e),i=typeof t=="function";return n.forEach(o=>{if(o.type!=="declaration")return;let{property:s,value:a}=o;i?t(s,a,o):a&&(r=r||{},r[s]=a)}),r}});var WXu=b(GZn=>{"use strict";Object.defineProperty(GZn,"__esModule",{value:!0});GZn.camelCase=void 0;var Xqm=/^--[a-zA-Z0-9_-]+$/,Zqm=/-([a-z])/g,$qm=/^[^-]+$/,eGm=/^-(webkit|moz|ms|o|khtml)-/,tGm=/^-(ms)-/,rGm=function(e){return!e||$qm.test(e)||Xqm.test(e)},nGm=function(e,t){return t.toUpperCase()},GXu=function(e,t){return"".concat(t,"-")},iGm=function(e,t){return t===void 0&&(t={}),rGm(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(tGm,GXu):e=e.replace(eGm,GXu),e.replace(Zqm,nGm))};GZn.camelCase=iGm});var KXu=b((oHo,HXu)=>{"use strict";var oGm=oHo&&oHo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},sGm=oGm(qXu()),aGm=WXu();function iHo(e,t){var r={};return!e||typeof e!="string"||(0,sGm.default)(e,function(n,i){n&&i&&(r[(0,aGm.camelCase)(n,t)]=i)}),r}iHo.default=iHo;HXu.exports=iHo});var HZu=b((nt1,WZu)=>{"use strict";var $Zn=Object.prototype.hasOwnProperty,GZu=Object.prototype.toString,MZu=Object.defineProperty,LZu=Object.getOwnPropertyDescriptor,UZu=function(t){return typeof Array.isArray=="function"?Array.isArray(t):GZu.call(t)==="[object Array]"},VZu=function(t){if(!t||GZu.call(t)!=="[object Object]")return!1;var r=$Zn.call(t,"constructor"),n=t.constructor&&t.constructor.prototype&&$Zn.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!r&&!n)return!1;var i;for(i in t);return typeof i>"u"||$Zn.call(t,i)},_Zu=function(t,r){MZu&&r.name==="__proto__"?MZu(t,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):t[r.name]=r.newValue},qZu=function(t,r){if(r==="__proto__")if($Zn.call(t,r)){if(LZu)return LZu(t,r).value}else return;return t[r]};WZu.exports=function e(){var t,r,n,i,o,s,a=arguments[0],c=1,u=arguments.length,l=!1;for(typeof a=="boolean"&&(l=a,a=arguments[1]||{},c=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});c<u;++c)if(t=arguments[c],t!=null)for(r in t)n=qZu(a,r),i=qZu(t,r),a!==i&&(l&&i&&(VZu(i)||(o=UZu(i)))?(o?(o=!1,s=n&&UZu(n)?n:[]):s=n&&VZu(n)?n:{},_Zu(a,{name:r,newValue:e(l,s,i)})):typeof i<"u"&&_Zu(a,{name:r,newValue:i}));return a}});var d$u=b((Or1,xHo)=>{"use strict";var i$n=process||{},p$u=i$n.argv||[],n$n=i$n.env||{},JGm=!(n$n.NO_COLOR||p$u.includes("--no-color"))&&(!!n$n.FORCE_COLOR||p$u.includes("--color")||i$n.platform==="win32"||(i$n.stdout||{}).isTTY&&n$n.TERM!=="dumb"||!!n$n.CI),YGm=(e,t,r=e)=>n=>{let i=""+n,o=i.indexOf(t,e.length);return~o?e+XGm(i,t,r,o)+t:e+i+t},XGm=(e,t,r,n)=>{let i="",o=0;do i+=e.substring(o,n)+r,o=n+t.length,n=e.indexOf(t,o);while(~n);return i+e.substring(o)},f$u=(e=JGm)=>{let t=e?YGm:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};xHo.exports=f$u();xHo.exports.createColors=f$u});var m$u=b(o$n=>{"use strict";Object.defineProperty(o$n,"__esModule",{value:!0});o$n.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;o$n.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!!(e[3]||e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}});var b$u=b(E8t=>{"use strict";Object.defineProperty(E8t,"__esModule",{value:!0});E8t.isIdentifierChar=y$u;E8t.isIdentifierName=t7m;E8t.isIdentifierStart=A$u;var wHo="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",h$u="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",ZGm=new RegExp("["+wHo+"]"),$Gm=new RegExp("["+wHo+h$u+"]");wHo=h$u=null;var g$u=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],e7m=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];function CHo(e,t){let r=65536;for(let n=0,i=t.length;n<i;n+=2){if(r+=t[n],r>e)return!1;if(r+=t[n+1],r>=e)return!0}return!1}function A$u(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&ZGm.test(String.fromCharCode(e)):CHo(e,g$u)}function y$u(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&$Gm.test(String.fromCharCode(e)):CHo(e,g$u)||CHo(e,e7m)}function t7m(e){let t=!0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if((n&64512)===55296&&r+1<e.length){let i=e.charCodeAt(++r);(i&64512)===56320&&(n=65536+((n&1023)<<10)+(i&1023))}if(t){if(t=!1,!A$u(n))return!1}else if(!y$u(n))return!1}return!t}});var x$u=b(X3e=>{"use strict";Object.defineProperty(X3e,"__esModule",{value:!0});X3e.isKeyword=s7m;X3e.isReservedWord=E$u;X3e.isStrictBindOnlyReservedWord=v$u;X3e.isStrictBindReservedWord=o7m;X3e.isStrictReservedWord=I$u;var SHo={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},r7m=new Set(SHo.keyword),n7m=new Set(SHo.strict),i7m=new Set(SHo.strictBind);function E$u(e,t){return t&&e==="await"||e==="enum"}function I$u(e,t){return E$u(e,t)||n7m.has(e)}function v$u(e){return i7m.has(e)}function o7m(e,t){return I$u(e,t)||v$u(e)}function s7m(e){return r7m.has(e)}});var C$u=b(die=>{"use strict";Object.defineProperty(die,"__esModule",{value:!0});Object.defineProperty(die,"isIdentifierChar",{enumerable:!0,get:function(){return THo.isIdentifierChar}});Object.defineProperty(die,"isIdentifierName",{enumerable:!0,get:function(){return THo.isIdentifierName}});Object.defineProperty(die,"isIdentifierStart",{enumerable:!0,get:function(){return THo.isIdentifierStart}});Object.defineProperty(die,"isKeyword",{enumerable:!0,get:function(){return I8t.isKeyword}});Object.defineProperty(die,"isReservedWord",{enumerable:!0,get:function(){return I8t.isReservedWord}});Object.defineProperty(die,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return I8t.isStrictBindOnlyReservedWord}});Object.defineProperty(die,"isStrictBindReservedWord",{enumerable:!0,get:function(){return I8t.isStrictBindReservedWord}});Object.defineProperty(die,"isStrictReservedWord",{enumerable:!0,get:function(){return I8t.isStrictReservedWord}});var THo=b$u(),I8t=x$u()});var BHo=b(v8t=>{"use strict";Object.defineProperty(v8t,"__esModule",{value:!0});var OHo=d$u(),w$u=m$u(),S$u=C$u();function a7m(){return typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?!1:OHo.isColorSupported}var s$n=(e,t)=>r=>e(t(r));function B$u(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:s$n(s$n(e.white,e.bgRed),e.bold),gutter:e.gray,marker:s$n(e.red,e.bold),message:s$n(e.red,e.bold),reset:e.reset}}var c7m=B$u(OHo.createColors(!0)),u7m=B$u(OHo.createColors(!1));function P$u(e){return e?c7m:u7m}var l7m=new Set(["as","async","from","get","of","set"]),p7m=/\r\n|[\n\r\u2028\u2029]/,f7m=/^[()[\]{}]$/,D$u,d7m=/^[a-z][\w-]*$/i,m7m=function(e,t,r){if(e.type==="name"){let n=e.value;if(S$u.isKeyword(n)||S$u.isStrictReservedWord(n,!0)||l7m.has(n))return"keyword";if(d7m.test(n)&&(r[t-1]==="<"||r.slice(t-2,t)==="</"))return"jsxIdentifier";let i=String.fromCodePoint(n.codePointAt(0));if(i!==i.toLowerCase())return"capitalized"}return e.type==="punctuator"&&f7m.test(e.value)?"bracket":e.type==="invalid"&&(e.value==="@"||e.value==="#")?"punctuator":e.type};D$u=function*(e){let t;for(;t=w$u.default.exec(e);){let r=w$u.matchToToken(t);yield{type:m7m(r,t.index,e),value:r.value}}};function R$u(e){if(e==="")return"";let t=P$u(!0),r="";for(let{type:n,value:i}of D$u(e))n in t?r+=i.split(p7m).map(o=>t[n](o)).join(`
|
|
@@ -3022,7 +3022,7 @@ ${dTu.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&TFo(th
|
|
|
3022
3022
|
`+q6e.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?q6e.default.cyan(vTu(t,this.opt.mask)):q6e.default.italic(q6e.default.dim("[hidden]")):this.opt.mask?vTu(t,this.opt.mask):q6e.default.italic(q6e.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var e9r=be(Rw(),1);var IOu=be(cko(),1),Z8r=require("child_process"),Fnt=require("fs"),X8r=be(require("path"),1),vOu=be(require("os"),1),xOu=require("crypto"),Wko=be(bOu(),1);var K8r=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var q4t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var J8r=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Y8r=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function $8r(e="",t,r){let n=new Hko(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 EOu(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function pum(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 Hko=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=pum(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??vOu.default.tmpdir(),r=(0,xOu.randomUUID)(),n=EOu(this.fileOptions.prefix),i=EOu(this.fileOptions.postfix),o=`${n}${r}${i}`,s=X8r.default.resolve(t,o),a=X8r.default.resolve(t)+X8r.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,Fnt.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new K8r(t)}}readTemporaryFile(){try{let t=(0,Fnt.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,IOu.detect)(t)??"utf8";Wko.default.encodingExists(r)||(r="utf8"),this.text=Wko.default.decode(t,r)}}catch(t){throw new J8r(t)}}removeTemporaryFile(){try{(0,Fnt.unlinkSync)(this.tempFile)}catch(t){throw new Y8r(t)}}launchEditor(){try{let t=(0,Z8r.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new q4t(t)}}launchEditorAsync(t){try{(0,Z8r.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new q4t(r)}}};var COu=be(HL(),1);var G4t=class extends Fw{_run(t){this.done=t,this.editorResult=new COu.Subject;let r=bB(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?e9r.default.dim("Received"):e9r.default.dim("Press <enter> to launch your preferred editor."),t&&(r=e9r.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),$8r(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 BOu=require("stream");var TOu=be(require("readline"),1),OOu=be(SOu(),1),K6e=class{constructor(t){this.rl||=TOu.default.createInterface(dum(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 dum(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 OOu.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var W4t=class extends K6e{constructor(t={}){super(t),this.log=new BOu.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return B4t(this.rl,this.bottomBar.split(`
|
|
3023
3023
|
`).length),this}updateBottomBar(t){return B4t(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+`
|
|
3024
3024
|
`}write(t){let r=t.split(/\n/);this.height=r.length,this.rl.setPrompt(r.at(-1)),this.rl.output.rows===0&&this.rl.output.columns===0&&v8r(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var wd=be(HL(),1),ROu=be(s4t(),1);var t9r=be(HL(),1),POu=be(s4t(),1),r9r=function(e,t,r){return typeof e[t]!="function"?(0,t9r.of)(e):(0,t9r.from)((0,POu.default)(e[t])(r).then(n=>(e[t]=n,e)))};var DOu={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}},knt=class extends K6e{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,wd.from)(t):(0,wd.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,wd.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,wd.from)([t]),this.process=n.pipe((0,wd.concatMap)(this.processQuestion.bind(this)),(0,wd.publish)()),this.process.connect(),this.process.pipe((0,wd.reduce)((i,o)=>(DOu.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,wd.defer)(()=>(0,wd.of)(t).pipe((0,wd.concatMap)(this.setDefaultType.bind(this)),(0,wd.concatMap)(this.filterIfRunnable.bind(this)),(0,wd.concatMap)(()=>r9r(t,"message",this.answers)),(0,wd.concatMap)(()=>r9r(t,"default",this.answers)),(0,wd.concatMap)(()=>r9r(t,"choices",this.answers)),(0,wd.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,wd.defer)(()=>(0,wd.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,wd.defer)(()=>(0,wd.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&DOu.get(this.answers,t.name)!==void 0)return wd.EMPTY;if(t.when===!1)return wd.EMPTY;if(typeof t.when!="function")return(0,wd.of)(t);let{answers:r}=this;return(0,wd.defer)(()=>(0,wd.from)((0,ROu.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,wd.filter)(n=>n!=null)))}};function FOu(e){let t=function(r,n){let i;try{i=new knt(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",D4t),this.registerPrompt("input",_6e),this.registerPrompt("number",R4t),this.registerPrompt("confirm",F4t),this.registerPrompt("rawlist",k4t),this.registerPrompt("expand",N4t),this.registerPrompt("checkbox",j4t),this.registerPrompt("password",Q4t),this.registerPrompt("editor",G4t)},t.restoreDefaultPrompts(),t}var Jko=FOu();function hum(e,t){Jko.registerPrompt(e,t)}function gum(){Jko.restoreDefaultPrompts()}var Aum={prompt:Jko,ui:{BottomBar:W4t,Prompt:knt},createPromptModule:FOu,registerPrompt:hum,restoreDefaultPrompts:gum,Separator:NQ},cu=Aum;var Nnt=require("path");function NOu(){let e=yum();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function yum(e=process.argv[1]?(0,Nnt.dirname)(process.argv[1]):process.cwd(),t=Nnt.sep==="\\"){let r=t?kOu(e):e;return n=>{if(!n)return;let i=t?kOu(n):n,{dir:o,base:s,ext:a}=Nnt.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 kOu(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var Yko=e=>{if("flags"in e){let t=jOu(e.flags),r=QOu(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,Xko(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,bum(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function bum(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 jOu=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,H4t(r)]).filter(([,t])=>t!==void 0)),QOu=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?Xko(n):void 0]}))};var H4t=e=>e===void 0?void 0:e.variant??e.enabled,Xko=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Hk=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.LogsQueue="logs_queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e.DeviceId="device_id",e})({});function Zko(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}var Ium="NativeGzipValidationError",vum=31,xum=139,Cum=8,wum=e=>e.length>=2&&e[0]===vum&&e[1]===xum;var K4t,Sum=()=>{if(K4t)return K4t;K4t=[];for(let e=0;e<256;e++){let t=e;for(let r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;K4t[e]=t>>>0}return K4t},Tum=e=>{let t=Sum(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(4294967295^r)>>>0},n9r=e=>{let t=new Error(`Native gzip produced invalid output: ${e}`);throw t.name=Ium,t},Oum=async(e,t)=>{e.size<18&&n9r("too-short");let r=new Uint8Array(await e.slice(0,10).arrayBuffer());(!wum(r)||r[2]!==Cum)&&n9r("invalid-header");let n=new DataView(await e.slice(e.size-8).arrayBuffer());n.getUint32(0,!0)!==Tum(t)&&n9r("invalid-crc");let i=t.length>>>0;n.getUint32(4,!0)!==i&&n9r("invalid-size")};async function J4t(e,t=!0,r){try{let n=new TextEncoder().encode(e),i=new CompressionStream("gzip"),o=i.writable.getWriter(),s=o.write(n).then(()=>o.close()).catch(async u=>{try{await o.abort(u)}catch{}throw u}),a=new Response(i.readable).blob(),[c]=await Promise.all([a,s]);return await Oum(c,n),c}catch(n){if(r?.rethrow)throw n;return t&&console.error("Failed to gzip compress data",n),null}}var Bum=["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"],zOu=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return Bum.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var Dum=Array.isArray,MOu=Object.prototype,hfI=MOu.hasOwnProperty,$ko=MOu.toString,jnt=Dum||function(e){return $ko.call(e)==="[object Array]"};var Y4t=e=>e===Object(e)&&!jnt(e);var Qnt=e=>e===void 0,Ave=e=>$ko.call(e)=="[object String]",LOu=e=>Ave(e)&&e.trim().length===0;var X4t=e=>$ko.call(e)=="[object Number]"&&e===e;var e2o=e=>e instanceof Error;function i9r(e){return e===null||typeof e!="object"}function J6e(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function UOu(e){return J6e(e,"ErrorEvent")}function znt(e){return typeof Event<"u"&&Rum(e,Event)}function VOu(e){return J6e(e,"Object")}function Rum(e,t){try{return e instanceof t}catch{return!1}}function Z4t(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),X4t(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),Z4t(i||r,t,r,n))}var Fum=864e5,o9r=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=Z4t(t.bucketSize,0,100,t._logger),this._refillRate=Z4t(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=Z4t(t.refillInterval,0,Fum,t._logger)}_applyRefill(t,r){let n=r-t.lastAccess,i=Math.floor(n/this._refillInterval);if(i>0){let o=i*this._refillRate;t.tokens=Math.min(t.tokens+o,this._bucketSize),t.lastAccess=t.lastAccess+i*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),n=String(t),i=this._buckets[n];return i?this._applyRefill(i,r):(i={tokens:this._bucketSize,lastAccess:r},this._buckets[n]=i),i.tokens===0?!0:(i.tokens--,i.tokens===0&&this._onBucketRateLimited?.(t),i.tokens===0)}stop(){this._buckets={}}};var s9r="0123456789abcdef",a9r=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=s9r.charAt(this.bytes[r]>>>4),t+=s9r.charAt(15&this.bytes[r]),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=s9r.charAt(this.bytes[r]>>>4),t+=s9r.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},t2o=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??kum()}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 a9r.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,a9r.ofInner(t)}},kum=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),_Ou,uee=()=>Num().toString(),Num=()=>(_Ou||(_Ou=new t2o)).generate();var c9r=class{add(t){let r=uee();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 jum(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var qOu=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{debug:(...o)=>{n("debug",...o)},info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>qOu(`${e} ${o}`,t,r)}},Qum=e=>e();function GOu(e,t=Qum){return qOu(e,t,jum())}var Lnt="Mobile",l9r="iOS",Mnt="Android",WOu="Tablet",TfI=Mnt+" "+WOu;var Mum="Apple",OfI=Mum+" Watch",HOu="Safari",p9r="BlackBerry",KOu="Samsung",Lum=KOu+"Browser",Uum=KOu+" Internet",f9r="Chrome",Vum=f9r+" OS",_um=f9r+" "+l9r,JOu="Internet Explorer",qum=JOu+" "+Lnt,n2o="Opera",BfI=n2o+" Mini",YOu="Edge",Gum="Microsoft "+YOu,i2o="Firefox",Wum=i2o+" "+l9r,o2o="Nintendo",s2o="PlayStation",u9r="Xbox",Hum=Mnt+" "+Lnt,Kum=Lnt+" "+HOu,$4t="Windows",Jum=$4t+" Phone";var XOu="Generic",PfI=XOu+" "+Lnt.toLowerCase(),DfI=XOu+" "+WOu.toLowerCase(),Yum="Konqueror",Xum="Oculus Browser",TD="(\\d+(\\.\\d+)?)",r2o=new RegExp("Version/"+TD),RfI=new RegExp(u9r,"i"),FfI=new RegExp(s2o+" \\w+","i"),kfI=new RegExp(o2o+" \\w+","i"),Zum=new RegExp(p9r+"|PlayBook|BB10","i"),$um={"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 NfI={[qum]:[new RegExp("rv:"+TD)],[Gum]:[new RegExp(YOu+"?\\/"+TD)],[f9r]:[new RegExp("("+f9r+"|CrMo)\\/"+TD)],[_um]:[new RegExp("CriOS\\/"+TD)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+TD)],[HOu]:[r2o],[Kum]:[r2o],[n2o]:[new RegExp("("+n2o+"|OPR)\\/"+TD)],[i2o]:[new RegExp(i2o+"\\/"+TD)],[Wum]:[new RegExp("FxiOS\\/"+TD)],[Yum]:[new RegExp("Konqueror[:/]?"+TD,"i")],[p9r]:[new RegExp(p9r+" "+TD),r2o],[Hum]:[new RegExp("android\\s"+TD,"i")],[Uum]:[new RegExp(Lum+"\\/"+TD)],[Xum]:[new RegExp("OculusBrowser\\/"+TD)],[JOu]:[new RegExp("(rv:|MSIE )"+TD)],Mozilla:[new RegExp("rv:"+TD)]};var jfI=[[new RegExp(u9r+"; "+u9r+" (.*?)[);]","i"),e=>[u9r,e&&e[1]||""]],[new RegExp(o2o,"i"),[o2o,""]],[new RegExp(s2o,"i"),[s2o,""]],[Zum,[p9r,""]],[new RegExp($4t,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[Jum,""];if(new RegExp(Lnt).test(t)&&!/IEMobile\b/.test(t))return[$4t+" "+Lnt,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=$um[n]||"";return/arm/i.test(t)&&(i="RT"),[$4t,i]}return[$4t,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[l9r,t.join(".")]}return[l9r,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=Qnt(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Mnt+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Mnt+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[Mnt,t.join(".")]}return[Mnt,""]}],[/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/,[Vum,""]],[/Linux|debian/i,["Linux",""]]];var ZOu="utf8";function $Ou(e){return e?.replace(/\/+$/,"")}async function eBu(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 d9r(){return new Date().toISOString()}function lee(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var tBu=e=>e instanceof Error;function a2o(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var elm={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},YfI=elm.info;var m9r=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 X6e=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()}},Y6e=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function rBu(e){if(e instanceof X6e){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 h9r(e){return typeof e=="object"&&(e instanceof X6e||e instanceof Y6e)}function g9r(e){return typeof e=="object"&&e instanceof X6e&&e.status===413}var eUt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new c9r,this._events=new m9r,this._isInitialized=!1;let n=typeof t=="string"?t.trim():"",i=typeof r.host=="string"?r.host.trim():"",o=!n;this._logger=GOu("[PostHog]",this.logMsgIfDebug.bind(this)),o&&this._logger.error("You must pass your PostHog project's api key. The client will be disabled."),this.apiKey=n,this.host=$Ou(i||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:h9r},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=(r.disabled??!1)||o,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!Zko()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(Hk.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(Hk.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(Hk.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!1){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};n.$device_id&&(u.$device_id=n.$device_id),this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:Yko(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof X6e)return{type:"api_error",statusCode:t.status};if(t instanceof Y6e){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=H4t(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disabled)return[];if(this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(Hk.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(Hk.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(Hk.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(Hk.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(Hk.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=lee(()=>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:d9r()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await J4t(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await(await this.fetchWithRetry(a,u)).body?.cancel()?.catch(()=>{})}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:d9r(),uuid:n?.uuid?n.uuid:uee()};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 rBu(t)})}async flush(){if(this.disabled)return;let t=a2o([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),a2o([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(Hk.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=async()=>{let m=(this.getPersistedProperty(Hk.Queue)||[]).slice(i.length);this.setPersistedProperty(Hk.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:d9r()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await J4t(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},d={retryCheck:f=>g9r(f)?!1:h9r(f)};try{await(await this.fetchWithRetry(u,p,d)).body?.cancel()?.catch(()=>{})}catch(f){if(g9r(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 Y6e||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async _sendLogsBatch(t){if(this.disabled)return{kind:"fatal",error:new Error("The client is disabled")};let r=JSON.stringify(t),n=`${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await J4t(r,this.isDebug),o={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...i!==null&&{"Content-Encoding":"gzip"}},body:i||r};try{return await this.fetchWithRetry(n,o,{retryCheck:s=>g9r(s)?!1:h9r(s)}),{kind:"ok"}}catch(s){return g9r(s)?{kind:"too-large"}:s instanceof Y6e?{kind:"retry-later",error:s}:{kind:"fatal",error:s}}}async fetchWithRetry(t,r,n,i){let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,ZOu)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await eBu(async()=>{let a=new AbortController,c=i??this.requestTimeout,u=lee(()=>a.abort(),c),l=null;try{l=await this.fetch(t,{signal:a.signal,...r})}catch(d){throw new Y6e(d)}finally{clearTimeout(u)}if(!(r.mode==="no-cors")&&(l.status<200||l.status>=400))throw new X6e(l,s);return l},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;if(this.clearFlushTimer(),this.disabled)return;let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(Hk.Queue)||[]).length===0||(await this.flush(),r)););}catch(o){if(!h9r(o))throw o;await rBu(o)}},i;try{return await Promise.race([new Promise((o,s)=>{i=lee(()=>{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 QQ={};X(QQ,{DEFAULT_EXCEPTION_STEPS_CONFIG:()=>I9r,DOMExceptionCoercer:()=>p2o,EXCEPTION_STEP_INTERNAL_FIELDS:()=>tUt,ErrorCoercer:()=>f2o,ErrorEventCoercer:()=>d2o,ErrorPropertiesBuilder:()=>c2o,EventCoercer:()=>g2o,ExceptionStepsBuffer:()=>I2o,ObjectCoercer:()=>h2o,PrimitiveCoercer:()=>A2o,PromiseRejectionEventCoercer:()=>y2o,ReduceableCache:()=>b2o,StringCoercer:()=>m2o,chromeStackLineParser:()=>u2o,createDefaultStackParser:()=>Alm,createStackParser:()=>dBu,geckoStackLineParser:()=>l2o,getUtf8ByteLength:()=>hBu,nodeStackLineParser:()=>uBu,opera10StackLineParser:()=>sBu,opera11StackLineParser:()=>aBu,resolveExceptionStepsConfig:()=>E2o,reverseAndStripFrames:()=>fBu,stripReservedExceptionStepFields:()=>Elm,winjsStackLineParser:()=>oBu});var A9r,nBu,y9r;function iBu(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return y9r&&r.length===nBu||(nBu=r.length,y9r=r.reduce((n,i)=>{A9r||(A9r={});let o=A9r[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,A9r[i]=[u,l];break}}}return n},{})),y9r}var ilm=4,c2o=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&&jnt(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:iBu(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=ilm){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var IB="?";function pee(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?IB:r,in_app:!0};return Qnt(n)||(o.lineno=n),Qnt(i)||(o.colno=i),o}var b9r=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:IB,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var olm=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,slm=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,alm=/\((\S*)(?::(\d+))(?::(\d+))\)/,u2o=(e,t)=>{let r=olm.exec(e);if(r){let[,i,o,s]=r;return pee(t,i,IB,+o,+s)}let n=slm.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=alm.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=b9r(n[1]||IB,n[2]);return pee(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var clm=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ulm=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,l2o=(e,t)=>{let r=clm.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=ulm.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||IB;return[o,i]=b9r(o,i),pee(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var llm=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,oBu=(e,t)=>{let r=llm.exec(e);return r?pee(t,r[2],r[1]||IB,+r[3],r[4]?+r[4]:void 0):void 0};var plm=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,sBu=(e,t)=>{let r=plm.exec(e);return r?pee(t,r[2],r[3]||IB,+r[1]):void 0},flm=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,aBu=(e,t)=>{let r=flm.exec(e);return r?pee(t,r[5],r[3]||r[4]||IB,+r[1],+r[2]):void 0};var dlm=/^\s*[-]{4,}$/,mlm=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,uBu=(e,t)=>{let r=e.match(mlm);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||IB,o=s?`${s}.${a}`:a);let c=r[2]?.startsWith("file://")?r[2].slice(7):r[2],u=r[5]==="native";return c?.match(/\/[A-Z]:/)&&(c=c.slice(1)),!c&&r[5]&&!u&&(c=r[5]),{filename:c?decodeURI(c):void 0,module:void 0,function:o,lineno:cBu(r[3]),colno:cBu(r[4]),in_app:hlm(c||"",u),platform:t}}if(e.match(dlm))return{filename:e,platform:t}};function hlm(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 cBu(e){return parseInt(e||"",10)||void 0}var lBu=/\(error: (.*)\)/,pBu=50;function fBu(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,pBu).map(r=>({...r,filename:r.filename||glm(t).filename,function:r.function||IB}))}function glm(e){return e[e.length-1]||{}}function Alm(){return dBu("web:javascript",u2o,l2o)}function dBu(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
3025
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=lBu.test(a)?a.replace(lBu,"$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>=pBu)break}}return fBu(i)}}var p2o=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Ave(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 J6e(t,"DOMException")}isDOMError(t){return J6e(t,"DOMError")}};var f2o=class{match(t){return e2o(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 d2o=class{constructor(){}match(t){return UOu(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 ylm=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,m2o=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(ylm);return i&&(r=i[1],n=i[2]),[r,n]}};var mBu=["fatal","error","warning","log","info","debug"];function E9r(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 h2o=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 znt(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=E9r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Ave(t)&&!LOu(t)&&mBu.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(tBu(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var g2o=class{match(t){return znt(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${E9r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var A2o=class{match(t){return i9r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var y2o=class{match(t){return J6e(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!znt(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 i9r(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 b2o=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 tUt={MESSAGE:"$message",TIMESTAMP:"$timestamp"},blm=new Set([tUt.MESSAGE,tUt.TIMESTAMP]),I9r={enabled:!0,max_bytes:32768};function E2o(e){return e?{enabled:e.enabled??I9r.enabled,max_bytes:Ilm(e.max_bytes,I9r.max_bytes)}:{...I9r}}function Elm(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((n,i)=>blm.has(i)?(t.push(i),n):(n[i]=e[i],n),{}),droppedKeys:t}}var I2o=class{constructor(t){this._entries=[],this._totalBytes=0,this._config=E2o(t)}setConfig(t){this._config=E2o(t),this._trimToMaxBytes()}add(t){let r=vlm(t);if(!r)return;let n=hBu(r.json);n>this._config.max_bytes||(this._entries.push({step:r.step,bytes:n}),this._totalBytes+=n,this._trimToMaxBytes())}getAttachable(){return this._entries.map(t=>t.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let t=this._entries.shift();t&&(this._totalBytes-=t.bytes)}}};function Ilm(e,t){if(!X4t(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}function vlm(e){let t=xlm(e);if(t)try{let r=JSON.parse(t);if(!Y4t(r))return;let n=r,i=n[tUt.MESSAGE],o=n[tUt.TIMESTAMP];return!Ave(i)||i.trim().length===0||!Ave(o)&&!X4t(o)?void 0:{step:n,json:t}}catch{return}}function xlm(e){let t=new WeakSet;try{return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString();if(!(typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(n&&typeof n=="object"){if(t.has(n))return"[Circular]";t.add(n)}return n}})}catch{return}}function hBu(e){if(typeof TextEncoder<"u")return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let n=0;n<t.length;n++)t[n]==="%"?(r+=1,n+=2):r+=1;return r}var yBu=require("fs"),bBu=require("readline"),v9r=new QQ.ReduceableCache(25),EBu=new QQ.ReduceableCache(20),v2o=7,Clm=1e3,wlm=1e4;async function IBu(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"||Blm(s)||Plm(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(EBu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Rlm(o);if(s.every(c=>Dlm(i,c)))continue;let a=Flm(v9r,i,{});n.push(Slm(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Tlm(e,v9r),v9r.reduce(),e}function Slm(e,t,r){return new Promise(n=>{let i=(0,yBu.createReadStream)(e),o=(0,bBu.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(){EBu.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]=klm(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 Tlm(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;Olm(r.lineno,r,n)}}function Olm(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=vBu(e);i<e;i++){let o=r[i];if(o===void 0)return void gBu(t);t.pre_context.push(o)}if(r[e]===void 0)return void gBu(t);t.context_line=r[e];let n=xBu(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 gBu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Blm(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Plm(e){return e.lineno!==void 0&&e.lineno>wlm||e.colno!==void 0&&e.colno>Clm}function Dlm(e,t){let r=v9r.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function Rlm(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=ABu(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+v2o:(i.push(n),n=ABu(o)),t++}return i}function ABu(e){return[vBu(e),xBu(e)]}function vBu(e){return Math.max(1,e-v2o)}function xBu(e){return e+v2o}function Flm(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function klm(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}var Unt=require("path");function CBu(e=process.cwd()){let t=Unt.sep==="\\",r=i=>t?i.replace(/\\/g,"/"):i,n=r(e);return async i=>{for(let o of i)!o.filename||o.filename.startsWith("node:")||o.filename.startsWith("data:")||(0,Unt.isAbsolute)(o.filename)&&(o.filename=r((0,Unt.relative)(n,r(o.filename))));return i}}function Nlm(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 wBu(e,t){globalThis.process?.on("uncaughtException",Nlm(e,t))}function SBu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var jlm=2e3,tH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new o9r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return Y4t(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()&&(wBu(this.onException.bind(this),this.onFatalError.bind(this)),SBu(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(jlm),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var TBu="5.35.1";var afe={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};var Vnt=class e{constructor(t){this._host=t.host,this._distinctId=t.distinctId,this._groups=t.groups,this._disableGeoip=t.disableGeoip,this._flags=t.flags,this._requestId=t.requestId,this._evaluatedAt=t.evaluatedAt,this._flagDefinitionsLoadedAt=t.flagDefinitionsLoadedAt,this._errorsWhileComputing=t.errorsWhileComputing??!1,this._quotaLimited=t.quotaLimited??!1,this._accessed=t.accessed??new Set,this._isSlice=t.isSlice??!1}isEnabled(t){let r=this._flags[t];return this._recordAccess(t),r?.enabled??!1}getFlag(t){let r=this._flags[t];if(this._recordAccess(t),!!r)return r.enabled?r.variant??!0:!1}getFlagPayload(t){return this._flags[t]?.payload}onlyAccessed(){let t={};for(let r of this._accessed){let n=this._flags[r];n&&(t[r]=n)}return this._cloneWith(t)}only(t){let r={},n=[];for(let i of t){let o=this._flags[i];o?r[i]=o:n.push(i)}return n.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${n.join(", ")}`),this._cloneWith(r)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let t={},r=[];for(let[n,i]of Object.entries(this._flags)){let o=i.enabled===!1?!1:i.variant??!0;t[`$feature/${n}`]=o,i.enabled&&r.push(n)}return r.length>0&&(r.sort(),t.$active_feature_flags=r),t}_cloneWith(t){return new e({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:t,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(t){if(this._accessed.add(t),this._distinctId===""||this._isSlice&&!(t in this._flags))return;let r=this._flags[t],n=r===void 0?void 0:r.enabled===!1?!1:r.variant??!0,i={$feature_flag:t,$feature_flag_response:n,$feature_flag_id:r?.id,$feature_flag_version:r?.version,$feature_flag_reason:r?.reason,locally_evaluated:r?.locallyEvaluated??!1,[`$feature/${t}`]:n,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:r?.locallyEvaluated?Date.now():this._evaluatedAt};r?.locallyEvaluated&&this._flagDefinitionsLoadedAt!==void 0&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let o=[];this._errorsWhileComputing&&o.push(afe.ERRORS_WHILE_COMPUTING),this._quotaLimited&&o.push(afe.QUOTA_LIMITED),r===void 0&&o.push(afe.FLAG_MISSING),o.length>0&&(i.$feature_flag_error=o.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:t,response:n,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}};async function OBu(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 Qlm=6e4,zlm=1152921504606847e3,Mlm=["is_not","is_set"],_nt=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Sd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},fee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},x9r=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 fee||u instanceof Sd?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 fee||u instanceof Sd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(!t.active)return!1;if(t.ensure_experience_continuity)throw new Sd("Flag has experience continuity enabled");let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Sd("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 Sd(`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 Sd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Sd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Sd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Sd(`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 Sd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Sd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Sd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=o.aggregation_group_type_index,{groups:c,groupProperties:u}=i,l=!1,p;for(let d of s)try{let f=d.aggregation_group_type_index!==void 0?d.aggregation_group_type_index:a,m=n,g=r;if(f!==a&&f!=null){let A=this.groupTypeMapping[String(f)];if(!A||!(A in c)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${t.key}': group type index ${f} not available`));continue}if(!(A in u)){l=!0;continue}m=u[A],g=c[A]}if(await this.isConditionMatch(t,g,d,m,i)){let A=d.variant,y=o.multivariate?.variants||[];p=A&&y.some(E=>E.key===A)?A:await this.getMatchingVariant(t,g)||!0;break}}catch(f){if(f instanceof fee)throw f;if(f instanceof Sd)l=!0;else throw f}if(p!==void 0)return p;if(l)throw new Sd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?await FBu(c,i,this.cohorts,this.debugMode,p=>this.evaluateFlagDependency(p,i,o)):u==="flag"?await this.evaluateFlagDependency(c,i,o):RBu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await BBu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await BBu(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(Qlm,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 _nt(`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 _nt(`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 _nt(`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 _nt&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=lee(()=>{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 BBu(e,t,r=""){let n=await OBu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/zlm}function RBu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")return!1}else{if(o==="is_not_set")return!0;throw new Sd(`Property ${n} not found in propertyValues`)}let s=t[n];if(s==null&&!Mlm.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 PBu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return PBu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:parseFloat(String(i)),l;return l=typeof s=="number"?s:s!=null?parseFloat(String(s)):NaN,Number.isFinite(u)&&Number.isFinite(l)?c(l,u,o):c(String(s),String(i),o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Sd("Date operations cannot be performed on boolean values");let u=qlm(String(i));if(u==null&&(u=DBu(i)),u==null)throw new Sd(`Invalid date: ${i}`);let l=DBu(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return I_(vB(String(s)),vB(String(i)))===0;case"semver_neq":return I_(vB(String(s)),vB(String(i)))!==0;case"semver_gt":return I_(vB(String(s)),vB(String(i)))>0;case"semver_gte":return I_(vB(String(s)),vB(String(i)))>=0;case"semver_lt":return I_(vB(String(s)),vB(String(i)))<0;case"semver_lte":return I_(vB(String(s)),vB(String(i)))<=0;case"semver_tilde":{let u=vB(String(s)),{lower:l,upper:p}=Ulm(String(i));return I_(u,l)>=0&&I_(u,p)<0}case"semver_caret":{let u=vB(String(s)),{lower:l,upper:p}=Vlm(String(i));return I_(u,l)>=0&&I_(u,p)<0}case"semver_wildcard":{let u=vB(String(s)),{lower:l,upper:p}=_lm(String(i));return I_(u,l)>=0&&I_(u,p)<0}default:throw new Sd(`Unknown operator: ${o}`)}}function Llm(e,t){if(!(e in t))throw new fee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}async function FBu(e,t,r,n=!1,i){let o=String(e.value);Llm(o,r);let s=r[o];return kBu(s,t,r,n,i)}async function kBu(e,t,r,n=!1,i){if(!e)return!0;let o=e.type,s=e.values;if(!s||s.length===0)return!0;let a=!1;if("values"in s[0]){for(let c of s)try{let u=await kBu(c,t,r,n,i);if(o==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof fee)throw u;if(u instanceof Sd)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Sd("Can't match cohort without a given cohort property value");return o==="AND"}for(let c of s)try{let u;if(c.type==="cohort")u=await FBu(c,t,r,n,i);else if(c.type==="flag"){if(!i)throw new Sd(`Flag dependency '${c.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);u=await i(c)}else u=RBu(c,t);let l=c.negation||!1;if(o==="AND"){if(!u&&!l||u&&l)return!1}else if(u&&!l||!u&&l)return!0}catch(u){if(u instanceof fee)throw u;if(u instanceof Sd)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Sd("can't match cohort without a given cohort property value");return o==="AND"}function PBu(e){try{return new RegExp(e),!0}catch{return!1}}function NBu(e,t){if(!/^\d+$/.test(e))throw new Sd(`Invalid semver: ${t}`);if(e.length>1&&e[0]==="0")throw new Sd(`Invalid semver: ${t}`);return parseInt(e,10)}function vB(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Sd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>c===void 0||c===""?0:NBu(c,e),o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function I_(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 Ulm(e){let t=vB(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function Vlm(e){let t=vB(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function _lm(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Sd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=c=>{try{return NBu(c,e)}catch{throw new Sd(`Invalid wildcard semver: ${e}`)}},o=i(n[0]),s,a;if(n.length===1)s=[o,0,0],a=[o+1,0,0];else{let c=i(n[1]);s=[o,c,0],a=[o,c+1,0]}return{lower:s,upper:a}}function DBu(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 Sd(`${e} is in an invalid date format`)}throw new Sd(`The date provided ${e} must be a string, number, or date object`)}function qlm(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 C9r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var Glm=100,jBu=3e4,Wlm=5e4,Hlm=50,Klm=500,Jlm="https://us.i.posthog.com",QBu=new Set;function w9r(e,t){QBu.has(e)||(QBu.add(e),console.warn(`[PostHog] ${t}`))}function Ylm(e){return typeof e=="string"?e.trim():""}function Xlm(e){return(typeof e=="string"?e.trim():"")||void 0}function Zlm(e){return(typeof e=="string"?e.trim():"")||Jlm}function $lm(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))t[`$feature/${n}`]=i;let r=Object.keys(e).filter(n=>e[n]!==!1).sort();return r.length>0&&(t.$active_feature_flags=r),t}var S9r=class extends eUt{constructor(t,r={}){let n=Ylm(t),i={...r,host:Zlm(r.host),personalApiKey:Xlm(r.personalApiKey)};if(super(n,i),this._memoryStorage=new C9r,this.options=i,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof i.featureFlagsPollingInterval=="number"?Math.max(i.featureFlagsPollingInterval,Glm):jBu,typeof i.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),typeof i.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),i.personalApiKey){if(i.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');i.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new x9r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:n,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:s=>{this._events.emit("error",s)},onLoad:s=>{this._events.emit("localEvaluationFlagsLoaded",s)},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tH(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||Wlm}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??Klm,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??Hlm;this._waitUntilCycle.timer=lee(()=>{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 TBu}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};await super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=jBu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let T=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:T}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,g,A,y,E,v,I;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let T=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(T){m=!0;let P=T.value;E=w.id,I="Evaluated locally",f={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:T.payload??void 0}}}catch(T){if(T instanceof fee||T instanceof Sd)this._logger?.info(`${T.name} when computing flag locally: ${t}: ${T.message}`);else throw T}}if(!m&&!c){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=afe.UNKNOWN_ERROR;else{g=w.requestId,A=w.evaluatedAt;let T=[];w.errorsWhileComputingFlags&&T.push(afe.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&T.push(afe.QUOTA_LIMITED);let P=w.flags[t];if(P===void 0)T.push(afe.FLAG_MISSING);else{E=P.metadata?.id,v=P.metadata?.version,I=P.reason?.description??P.reason?.code;let O;if(P.metadata?.payload!==void 0)try{O=JSON.parse(P.metadata.payload)}catch{O=P.metadata.payload}f={key:t,enabled:P.enabled,variant:P.variant,payload:O}}T.length>0&&(y=T.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,T={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:E,$feature_flag_version:v,$feature_flag_reason:I,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:g,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(T.$feature_flag_definitions_loaded_at=P)}y&&(T.$feature_flag_error=y),this._captureFlagCalledEventIfNeeded({distinctId:r,key:t,response:w,groups:s,disableGeoip:a,properties:T})}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){w9r("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(w9r("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request."),this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){w9r("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return i===void 0?void 0:i.enabled===!1?!1:!!(i.variant??!0)||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},g={},A=!0;if(f&&(m=f.response,g=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},g={...g,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(g={...g,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:g}}async evaluateFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags \u2014 pass it explicitly or use withContext()"),new Vnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f={},m,g,A=!1,y=!1,E=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),v=new Set;if(E)for(let[C,w]of Object.entries(E.response)){let T=this.featureFlagsPoller?.featureFlagsByKey[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:E.payloads[C],id:T?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0},v.add(C)}if((E?E.fallbackToFlags:!0)&&!c){let C=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);if(C){m=C.requestId,g=C.evaluatedAt,A=!!C.errorsWhileComputingFlags,y=Array.isArray(C.quotaLimited)&&C.quotaLimited.includes("feature_flags");for(let[w,T]of Object.entries(C.flags)){if(v.has(w))continue;let P;if(T.metadata?.payload!==void 0)try{P=JSON.parse(T.metadata.payload)}catch{P=T.metadata.payload}f[w]={key:w,enabled:T.enabled,variant:T.variant,payload:P,id:T.metadata?.id,version:T.metadata?.version,reason:T.reason?.description??T.reason?.code,locallyEvaluated:!1}}}}if(this._flagOverrides!==void 0)for(let[C,w]of Object.entries(this._flagOverrides)){if(w===void 0){delete f[C];continue}let T=f[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:T?.payload,id:T?.id,version:T?.version,reason:T?.reason,locallyEvaluated:T?.locallyEvaluated??!1}}if(this._payloadOverrides!==void 0)for(let[C,w]of Object.entries(this._payloadOverrides)){let T=f[C];T&&(f[C]={...T,payload:w})}return new Vnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:n,groups:o,disableGeoip:s,flags:f,requestId:m,evaluatedAt:g,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:A,quotaLimited:y})}_captureFlagCalledEventIfNeeded(t){let{distinctId:r,key:n,response:i,groups:o,disableGeoip:s,properties:a}=t,c=`${n}_${i}`;r in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[r].includes(c)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(c):this.distinctIdHasSentFlagCalls[r]=[c],this.capture({distinctId:r,event:"$feature_flag_called",properties:a,groups:o,disableGeoip:s}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:t=>this._captureFlagCalledEventIfNeeded(t),logWarning:t=>{this.options.featureFlagsLogWarnings!==!1&&console.warn(`[PostHog] ${t}`)}}),this._featureFlagEvaluationsHost}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=lee(()=>{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(VOu(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i,o){if(!tH.isPreviouslyCapturedError(t)){let s=new Error("PostHog syntheticException");this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:s},r,n).then(a=>this.capture({...a,uuid:i,flags:o})))}}async captureExceptionImmediate(t,r,n,i){if(!tH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");return this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.captureImmediate({...s,flags:i})))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l}=t,p=this.context?.get(),d=r||p?.distinctId,f={...this.props,...p?.properties||{},...i||{}};d||(d=uee(),f.$process_person_profile=!1),p?.sessionId&&!f.$session_id&&(f.$session_id=p.sessionId);let m=this._runBeforeSend({distinctId:d,event:n,properties:f,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l});if(!m)return Promise.reject(null);let g=await Promise.resolve().then(async()=>{if(s)return a&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),s._getEventProperties();if(a){w9r("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead \u2014 it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");let A=typeof a=="object"?a:void 0,y=await this.getFeatureFlagsForEvent(m.distinctId,o,u,A);return $lm(y)}return{}}).catch(()=>({})).then(A=>({...A,...m.properties||{},$groups:m.groups||o}));return m.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof g.$raw_user_agent=="string"&&zOu(g.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(m.event="$bot_pageview",g.$browser_type="bot"),{distinctId:m.distinctId,event:m.event,properties:g,options:{timestamp:m.timestamp,disableGeoip:m.disableGeoip,uuid:m.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var zBu=require("async_hooks"),T9r=class{constructor(){this.storage=new zBu.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 MBu="posthog-node";function epm(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[x2o.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var x2o=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=MBu,this.name=MBu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(epm(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};tH.errorPropertiesBuilder=new QQ.ErrorPropertiesBuilder([new QQ.EventCoercer,new QQ.ErrorCoercer,new QQ.ObjectCoercer,new QQ.StringCoercer,new QQ.PrimitiveCoercer],QQ.createStackParser("node:javascript",QQ.nodeStackLineParser),[NOu(),IBu,CBu()]);var yve=class extends S9r{getLibraryId(){return"posthog-node"}initializeContext(){return new T9r}};var O9r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new yve(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.57.0",usingAccessToken:!0,...Yae()}})}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 rUt=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nm();Yt();var qnt=require("fs/promises"),LBu=require("os"),UBu=require("path");Btt();var tpm="id",rpm=".fern",nUt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new yve(r),this.userId=t==null?void 0:WOo(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.57.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Yae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await If({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=vD(),r=Ge(Vt.of((0,LBu.homedir)()),we.of(rpm),we.of(tpm));try{await $t(r)?this.persistedDistinctId=(await(0,qnt.readFile)(r)).toString():(await(0,qnt.mkdir)((0,UBu.dirname)(r),{recursive:!0}),await(0,qnt.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var C2o;async function iUt(){return C2o==null&&(C2o=await npm()),C2o}async function npm(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rUt;let r=await ort();return r!=null?new nUt({token:r,posthogApiKey:e}):await o_()!=null?new O9r({posthogApiKey:e}):new nUt({token:void 0,posthogApiKey:e})}catch{return new rUt}}bn();Dt();jt();xW();var oUt=be(require("process"),1);Jqe();var qBu=be(bEo(),1),GBu=be(_Bu(),1);function k1(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=FG(e),e.length===0))return 0;e=e.replace((0,GBu.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(qBu.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}bn();function B9r(e){let t=0;for(let r of e.split(`
|
|
3025
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=lBu.test(a)?a.replace(lBu,"$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>=pBu)break}}return fBu(i)}}var p2o=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Ave(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 J6e(t,"DOMException")}isDOMError(t){return J6e(t,"DOMError")}};var f2o=class{match(t){return e2o(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 d2o=class{constructor(){}match(t){return UOu(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 ylm=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,m2o=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(ylm);return i&&(r=i[1],n=i[2]),[r,n]}};var mBu=["fatal","error","warning","log","info","debug"];function E9r(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 h2o=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 znt(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=E9r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Ave(t)&&!LOu(t)&&mBu.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(tBu(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var g2o=class{match(t){return znt(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${E9r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var A2o=class{match(t){return i9r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var y2o=class{match(t){return J6e(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!znt(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 i9r(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 b2o=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 tUt={MESSAGE:"$message",TIMESTAMP:"$timestamp"},blm=new Set([tUt.MESSAGE,tUt.TIMESTAMP]),I9r={enabled:!0,max_bytes:32768};function E2o(e){return e?{enabled:e.enabled??I9r.enabled,max_bytes:Ilm(e.max_bytes,I9r.max_bytes)}:{...I9r}}function Elm(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((n,i)=>blm.has(i)?(t.push(i),n):(n[i]=e[i],n),{}),droppedKeys:t}}var I2o=class{constructor(t){this._entries=[],this._totalBytes=0,this._config=E2o(t)}setConfig(t){this._config=E2o(t),this._trimToMaxBytes()}add(t){let r=vlm(t);if(!r)return;let n=hBu(r.json);n>this._config.max_bytes||(this._entries.push({step:r.step,bytes:n}),this._totalBytes+=n,this._trimToMaxBytes())}getAttachable(){return this._entries.map(t=>t.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let t=this._entries.shift();t&&(this._totalBytes-=t.bytes)}}};function Ilm(e,t){if(!X4t(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}function vlm(e){let t=xlm(e);if(t)try{let r=JSON.parse(t);if(!Y4t(r))return;let n=r,i=n[tUt.MESSAGE],o=n[tUt.TIMESTAMP];return!Ave(i)||i.trim().length===0||!Ave(o)&&!X4t(o)?void 0:{step:n,json:t}}catch{return}}function xlm(e){let t=new WeakSet;try{return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString();if(!(typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(n&&typeof n=="object"){if(t.has(n))return"[Circular]";t.add(n)}return n}})}catch{return}}function hBu(e){if(typeof TextEncoder<"u")return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let n=0;n<t.length;n++)t[n]==="%"?(r+=1,n+=2):r+=1;return r}var yBu=require("fs"),bBu=require("readline"),v9r=new QQ.ReduceableCache(25),EBu=new QQ.ReduceableCache(20),v2o=7,Clm=1e3,wlm=1e4;async function IBu(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"||Blm(s)||Plm(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(EBu.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=Rlm(o);if(s.every(c=>Dlm(i,c)))continue;let a=Flm(v9r,i,{});n.push(Slm(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&Tlm(e,v9r),v9r.reduce(),e}function Slm(e,t,r){return new Promise(n=>{let i=(0,yBu.createReadStream)(e),o=(0,bBu.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(){EBu.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]=klm(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 Tlm(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;Olm(r.lineno,r,n)}}function Olm(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=vBu(e);i<e;i++){let o=r[i];if(o===void 0)return void gBu(t);t.pre_context.push(o)}if(r[e]===void 0)return void gBu(t);t.context_line=r[e];let n=xBu(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 gBu(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Blm(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function Plm(e){return e.lineno!==void 0&&e.lineno>wlm||e.colno!==void 0&&e.colno>Clm}function Dlm(e,t){let r=v9r.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function Rlm(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=ABu(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+v2o:(i.push(n),n=ABu(o)),t++}return i}function ABu(e){return[vBu(e),xBu(e)]}function vBu(e){return Math.max(1,e-v2o)}function xBu(e){return e+v2o}function Flm(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function klm(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}var Unt=require("path");function CBu(e=process.cwd()){let t=Unt.sep==="\\",r=i=>t?i.replace(/\\/g,"/"):i,n=r(e);return async i=>{for(let o of i)!o.filename||o.filename.startsWith("node:")||o.filename.startsWith("data:")||(0,Unt.isAbsolute)(o.filename)&&(o.filename=r((0,Unt.relative)(n,r(o.filename))));return i}}function Nlm(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 wBu(e,t){globalThis.process?.on("uncaughtException",Nlm(e,t))}function SBu(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var jlm=2e3,tH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new o9r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return Y4t(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()&&(wBu(this.onException.bind(this),this.onFatalError.bind(this)),SBu(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(jlm),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var TBu="5.35.1";var afe={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};var Vnt=class e{constructor(t){this._host=t.host,this._distinctId=t.distinctId,this._groups=t.groups,this._disableGeoip=t.disableGeoip,this._flags=t.flags,this._requestId=t.requestId,this._evaluatedAt=t.evaluatedAt,this._flagDefinitionsLoadedAt=t.flagDefinitionsLoadedAt,this._errorsWhileComputing=t.errorsWhileComputing??!1,this._quotaLimited=t.quotaLimited??!1,this._accessed=t.accessed??new Set,this._isSlice=t.isSlice??!1}isEnabled(t){let r=this._flags[t];return this._recordAccess(t),r?.enabled??!1}getFlag(t){let r=this._flags[t];if(this._recordAccess(t),!!r)return r.enabled?r.variant??!0:!1}getFlagPayload(t){return this._flags[t]?.payload}onlyAccessed(){let t={};for(let r of this._accessed){let n=this._flags[r];n&&(t[r]=n)}return this._cloneWith(t)}only(t){let r={},n=[];for(let i of t){let o=this._flags[i];o?r[i]=o:n.push(i)}return n.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${n.join(", ")}`),this._cloneWith(r)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let t={},r=[];for(let[n,i]of Object.entries(this._flags)){let o=i.enabled===!1?!1:i.variant??!0;t[`$feature/${n}`]=o,i.enabled&&r.push(n)}return r.length>0&&(r.sort(),t.$active_feature_flags=r),t}_cloneWith(t){return new e({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:t,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(t){if(this._accessed.add(t),this._distinctId===""||this._isSlice&&!(t in this._flags))return;let r=this._flags[t],n=r===void 0?void 0:r.enabled===!1?!1:r.variant??!0,i={$feature_flag:t,$feature_flag_response:n,$feature_flag_id:r?.id,$feature_flag_version:r?.version,$feature_flag_reason:r?.reason,locally_evaluated:r?.locallyEvaluated??!1,[`$feature/${t}`]:n,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:r?.locallyEvaluated?Date.now():this._evaluatedAt};r?.locallyEvaluated&&this._flagDefinitionsLoadedAt!==void 0&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let o=[];this._errorsWhileComputing&&o.push(afe.ERRORS_WHILE_COMPUTING),this._quotaLimited&&o.push(afe.QUOTA_LIMITED),r===void 0&&o.push(afe.FLAG_MISSING),o.length>0&&(i.$feature_flag_error=o.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:t,response:n,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}};async function OBu(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 Qlm=6e4,zlm=1152921504606847e3,Mlm=["is_not","is_set"],_nt=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Sd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},fee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},x9r=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 fee||u instanceof Sd?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 fee||u instanceof Sd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(!t.active)return!1;if(t.ensure_experience_continuity)throw new Sd("Flag has experience continuity enabled");let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Sd("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 Sd(`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 Sd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Sd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Sd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Sd(`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 Sd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Sd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Sd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=o.aggregation_group_type_index,{groups:c,groupProperties:u}=i,l=!1,p;for(let d of s)try{let f=d.aggregation_group_type_index!==void 0?d.aggregation_group_type_index:a,m=n,g=r;if(f!==a&&f!=null){let A=this.groupTypeMapping[String(f)];if(!A||!(A in c)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${t.key}': group type index ${f} not available`));continue}if(!(A in u)){l=!0;continue}m=u[A],g=c[A]}if(await this.isConditionMatch(t,g,d,m,i)){let A=d.variant,y=o.multivariate?.variants||[];p=A&&y.some(E=>E.key===A)?A:await this.getMatchingVariant(t,g)||!0;break}}catch(f){if(f instanceof fee)throw f;if(f instanceof Sd)l=!0;else throw f}if(p!==void 0)return p;if(l)throw new Sd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?await FBu(c,i,this.cohorts,this.debugMode,p=>this.evaluateFlagDependency(p,i,o)):u==="flag"?await this.evaluateFlagDependency(c,i,o):RBu(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await BBu(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await BBu(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(Qlm,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 _nt(`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 _nt(`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 _nt(`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 _nt&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=lee(()=>{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 BBu(e,t,r=""){let n=await OBu(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/zlm}function RBu(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")return!1}else{if(o==="is_not_set")return!0;throw new Sd(`Property ${n} not found in propertyValues`)}let s=t[n];if(s==null&&!Mlm.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 PBu(String(i))&&String(s).match(String(i))!==null;case"not_regex":return PBu(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:parseFloat(String(i)),l;return l=typeof s=="number"?s:s!=null?parseFloat(String(s)):NaN,Number.isFinite(u)&&Number.isFinite(l)?c(l,u,o):c(String(s),String(i),o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Sd("Date operations cannot be performed on boolean values");let u=qlm(String(i));if(u==null&&(u=DBu(i)),u==null)throw new Sd(`Invalid date: ${i}`);let l=DBu(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return I_(vB(String(s)),vB(String(i)))===0;case"semver_neq":return I_(vB(String(s)),vB(String(i)))!==0;case"semver_gt":return I_(vB(String(s)),vB(String(i)))>0;case"semver_gte":return I_(vB(String(s)),vB(String(i)))>=0;case"semver_lt":return I_(vB(String(s)),vB(String(i)))<0;case"semver_lte":return I_(vB(String(s)),vB(String(i)))<=0;case"semver_tilde":{let u=vB(String(s)),{lower:l,upper:p}=Ulm(String(i));return I_(u,l)>=0&&I_(u,p)<0}case"semver_caret":{let u=vB(String(s)),{lower:l,upper:p}=Vlm(String(i));return I_(u,l)>=0&&I_(u,p)<0}case"semver_wildcard":{let u=vB(String(s)),{lower:l,upper:p}=_lm(String(i));return I_(u,l)>=0&&I_(u,p)<0}default:throw new Sd(`Unknown operator: ${o}`)}}function Llm(e,t){if(!(e in t))throw new fee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}async function FBu(e,t,r,n=!1,i){let o=String(e.value);Llm(o,r);let s=r[o];return kBu(s,t,r,n,i)}async function kBu(e,t,r,n=!1,i){if(!e)return!0;let o=e.type,s=e.values;if(!s||s.length===0)return!0;let a=!1;if("values"in s[0]){for(let c of s)try{let u=await kBu(c,t,r,n,i);if(o==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof fee)throw u;if(u instanceof Sd)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Sd("Can't match cohort without a given cohort property value");return o==="AND"}for(let c of s)try{let u;if(c.type==="cohort")u=await FBu(c,t,r,n,i);else if(c.type==="flag"){if(!i)throw new Sd(`Flag dependency '${c.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);u=await i(c)}else u=RBu(c,t);let l=c.negation||!1;if(o==="AND"){if(!u&&!l||u&&l)return!1}else if(u&&!l||!u&&l)return!0}catch(u){if(u instanceof fee)throw u;if(u instanceof Sd)n&&console.debug(`Failed to compute property ${c} locally: ${u}`),a=!0;else throw u}if(a)throw new Sd("can't match cohort without a given cohort property value");return o==="AND"}function PBu(e){try{return new RegExp(e),!0}catch{return!1}}function NBu(e,t){if(!/^\d+$/.test(e))throw new Sd(`Invalid semver: ${t}`);if(e.length>1&&e[0]==="0")throw new Sd(`Invalid semver: ${t}`);return parseInt(e,10)}function vB(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Sd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>c===void 0||c===""?0:NBu(c,e),o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function I_(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 Ulm(e){let t=vB(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function Vlm(e){let t=vB(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function _lm(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Sd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=c=>{try{return NBu(c,e)}catch{throw new Sd(`Invalid wildcard semver: ${e}`)}},o=i(n[0]),s,a;if(n.length===1)s=[o,0,0],a=[o+1,0,0];else{let c=i(n[1]);s=[o,c,0],a=[o,c+1,0]}return{lower:s,upper:a}}function DBu(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 Sd(`${e} is in an invalid date format`)}throw new Sd(`The date provided ${e} must be a string, number, or date object`)}function qlm(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 C9r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var Glm=100,jBu=3e4,Wlm=5e4,Hlm=50,Klm=500,Jlm="https://us.i.posthog.com",QBu=new Set;function w9r(e,t){QBu.has(e)||(QBu.add(e),console.warn(`[PostHog] ${t}`))}function Ylm(e){return typeof e=="string"?e.trim():""}function Xlm(e){return(typeof e=="string"?e.trim():"")||void 0}function Zlm(e){return(typeof e=="string"?e.trim():"")||Jlm}function $lm(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))t[`$feature/${n}`]=i;let r=Object.keys(e).filter(n=>e[n]!==!1).sort();return r.length>0&&(t.$active_feature_flags=r),t}var S9r=class extends eUt{constructor(t,r={}){let n=Ylm(t),i={...r,host:Zlm(r.host),personalApiKey:Xlm(r.personalApiKey)};if(super(n,i),this._memoryStorage=new C9r,this.options=i,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof i.featureFlagsPollingInterval=="number"?Math.max(i.featureFlagsPollingInterval,Glm):jBu,typeof i.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),typeof i.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),i.personalApiKey){if(i.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');i.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new x9r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:n,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:s=>{this._events.emit("error",s)},onLoad:s=>{this._events.emit("localEvaluationFlagsLoaded",s)},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tH(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||Wlm}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??Klm,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??Hlm;this._waitUntilCycle.timer=lee(()=>{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 TBu}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};await super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=jBu){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let T=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:T}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,g,A,y,E,v,I;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let T=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(T){m=!0;let P=T.value;E=w.id,I="Evaluated locally",f={key:t,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:T.payload??void 0}}}catch(T){if(T instanceof fee||T instanceof Sd)this._logger?.info(`${T.name} when computing flag locally: ${t}: ${T.message}`);else throw T}}if(!m&&!c){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=afe.UNKNOWN_ERROR;else{g=w.requestId,A=w.evaluatedAt;let T=[];w.errorsWhileComputingFlags&&T.push(afe.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&T.push(afe.QUOTA_LIMITED);let P=w.flags[t];if(P===void 0)T.push(afe.FLAG_MISSING);else{E=P.metadata?.id,v=P.metadata?.version,I=P.reason?.description??P.reason?.code;let O;if(P.metadata?.payload!==void 0)try{O=JSON.parse(P.metadata.payload)}catch{O=P.metadata.payload}f={key:t,enabled:P.enabled,variant:P.variant,payload:O}}T.length>0&&(y=T.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,T={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:E,$feature_flag_version:v,$feature_flag_reason:I,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:g,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(T.$feature_flag_definitions_loaded_at=P)}y&&(T.$feature_flag_error=y),this._captureFlagCalledEventIfNeeded({distinctId:r,key:t,response:w,groups:s,disableGeoip:a,properties:T})}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){w9r("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(w9r("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request."),this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){w9r("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead \u2014 this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return i===void 0?void 0:i.enabled===!1?!1:!!(i.variant??!0)||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},g={},A=!0;if(f&&(m=f.response,g=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},g={...g,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(g={...g,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:g}}async evaluateFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags \u2014 pass it explicitly or use withContext()"),new Vnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f={},m,g,A=!1,y=!1,E=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),v=new Set;if(E)for(let[C,w]of Object.entries(E.response)){let T=this.featureFlagsPoller?.featureFlagsByKey[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:E.payloads[C],id:T?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0},v.add(C)}if((E?E.fallbackToFlags:!0)&&!c){let C=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);if(C){m=C.requestId,g=C.evaluatedAt,A=!!C.errorsWhileComputingFlags,y=Array.isArray(C.quotaLimited)&&C.quotaLimited.includes("feature_flags");for(let[w,T]of Object.entries(C.flags)){if(v.has(w))continue;let P;if(T.metadata?.payload!==void 0)try{P=JSON.parse(T.metadata.payload)}catch{P=T.metadata.payload}f[w]={key:w,enabled:T.enabled,variant:T.variant,payload:P,id:T.metadata?.id,version:T.metadata?.version,reason:T.reason?.description??T.reason?.code,locallyEvaluated:!1}}}}if(this._flagOverrides!==void 0)for(let[C,w]of Object.entries(this._flagOverrides)){if(w===void 0){delete f[C];continue}let T=f[C];f[C]={key:C,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:T?.payload,id:T?.id,version:T?.version,reason:T?.reason,locallyEvaluated:T?.locallyEvaluated??!1}}if(this._payloadOverrides!==void 0)for(let[C,w]of Object.entries(this._payloadOverrides)){let T=f[C];T&&(f[C]={...T,payload:w})}return new Vnt({host:this._getFeatureFlagEvaluationsHost(),distinctId:n,groups:o,disableGeoip:s,flags:f,requestId:m,evaluatedAt:g,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:A,quotaLimited:y})}_captureFlagCalledEventIfNeeded(t){let{distinctId:r,key:n,response:i,groups:o,disableGeoip:s,properties:a}=t,c=`${n}_${i}`;r in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[r].includes(c)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(c):this.distinctIdHasSentFlagCalls[r]=[c],this.capture({distinctId:r,event:"$feature_flag_called",properties:a,groups:o,disableGeoip:s}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:t=>this._captureFlagCalledEventIfNeeded(t),logWarning:t=>{this.options.featureFlagsLogWarnings!==!1&&console.warn(`[PostHog] ${t}`)}}),this._featureFlagEvaluationsHost}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=lee(()=>{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(VOu(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i,o){if(!tH.isPreviouslyCapturedError(t)){let s=new Error("PostHog syntheticException");this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:s},r,n).then(a=>this.capture({...a,uuid:i,flags:o})))}}async captureExceptionImmediate(t,r,n,i){if(!tH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");return this.addPendingPromise(tH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.captureImmediate({...s,flags:i})))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l}=t,p=this.context?.get(),d=r||p?.distinctId,f={...this.props,...p?.properties||{},...i||{}};d||(d=uee(),f.$process_person_profile=!1),p?.sessionId&&!f.$session_id&&(f.$session_id=p.sessionId);let m=this._runBeforeSend({distinctId:d,event:n,properties:f,groups:o,flags:s,sendFeatureFlags:a,timestamp:c,disableGeoip:u,uuid:l});if(!m)return Promise.reject(null);let g=await Promise.resolve().then(async()=>{if(s)return a&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),s._getEventProperties();if(a){w9r("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead \u2014 it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");let A=typeof a=="object"?a:void 0,y=await this.getFeatureFlagsForEvent(m.distinctId,o,u,A);return $lm(y)}return{}}).catch(()=>({})).then(A=>({...A,...m.properties||{},$groups:m.groups||o}));return m.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof g.$raw_user_agent=="string"&&zOu(g.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(m.event="$bot_pageview",g.$browser_type="bot"),{distinctId:m.distinctId,event:m.event,properties:g,options:{timestamp:m.timestamp,disableGeoip:m.disableGeoip,uuid:m.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var zBu=require("async_hooks"),T9r=class{constructor(){this.storage=new zBu.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 MBu="posthog-node";function epm(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[x2o.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(g=>({...g,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var x2o=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=MBu,this.name=MBu,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(epm(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};tH.errorPropertiesBuilder=new QQ.ErrorPropertiesBuilder([new QQ.EventCoercer,new QQ.ErrorCoercer,new QQ.ObjectCoercer,new QQ.StringCoercer,new QQ.PrimitiveCoercer],QQ.createStackParser("node:javascript",QQ.nodeStackLineParser),[NOu(),IBu,CBu()]);var yve=class extends S9r{getLibraryId(){return"posthog-node"}initializeContext(){return new T9r}};var O9r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new yve(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.58.0",usingAccessToken:!0,...Yae()}})}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 rUt=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nm();Yt();var qnt=require("fs/promises"),LBu=require("os"),UBu=require("path");Btt();var tpm="id",rpm=".fern",nUt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new yve(r),this.userId=t==null?void 0:WOo(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.58.0",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Yae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await If({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=vD(),r=Ge(Vt.of((0,LBu.homedir)()),we.of(rpm),we.of(tpm));try{await $t(r)?this.persistedDistinctId=(await(0,qnt.readFile)(r)).toString():(await(0,qnt.mkdir)((0,UBu.dirname)(r),{recursive:!0}),await(0,qnt.writeFile)(r,t),this.persistedDistinctId=t)}catch{this.persistedDistinctId=t}}return this.persistedDistinctId}};var C2o;async function iUt(){return C2o==null&&(C2o=await npm()),C2o}async function npm(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new rUt;let r=await ort();return r!=null?new nUt({token:r,posthogApiKey:e}):await o_()!=null?new O9r({posthogApiKey:e}):new nUt({token:void 0,posthogApiKey:e})}catch{return new rUt}}bn();Dt();jt();xW();var oUt=be(require("process"),1);Jqe();var qBu=be(bEo(),1),GBu=be(_Bu(),1);function k1(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=FG(e),e.length===0))return 0;e=e.replace((0,GBu.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(qBu.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}bn();function B9r(e){let t=0;for(let r of e.split(`
|
|
3026
3026
|
`))t=Math.max(t,k1(r));return t}var pPu=be(S2o(),1);var opm=/[\p{Lu}]/u,spm=/[\p{Ll}]/u,KBu=/^[\p{Lu}](?![\p{Lu}])/gu,XBu=/([\p{Alpha}\p{N}_]|$)/u,T2o=/[_.\- ]+/,apm=new RegExp("^"+T2o.source),JBu=new RegExp(T2o.source+XBu.source,"gu"),YBu=new RegExp("\\d+"+XBu.source,"gu"),cpm=(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&&opm.test(u)?(e=e.slice(0,c)+"-"+e.slice(c),i=!1,s=o,o=!0,c++):o&&s&&spm.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},upm=(e,t)=>(KBu.lastIndex=0,e.replace(KBu,r=>t(r))),lpm=(e,t)=>(JBu.lastIndex=0,YBu.lastIndex=0,e.replace(JBu,(r,n)=>t(n)).replace(YBu,r=>t(r)));function O2o(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?T2o.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=cpm(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(apm,""),e=t.preserveConsecutiveUppercase?upm(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),lpm(e,n))}var R2o=be($Bu(),1);Jqe();var ePu=(e=0)=>t=>`\x1B[${t+e}m`,tPu=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,rPu=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,B0={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},VgI=Object.keys(B0.modifier),mpm=Object.keys(B0.color),hpm=Object.keys(B0.bgColor),_gI=[...mpm,...hpm];function gpm(){let e=new Map;for(let[t,r]of Object.entries(B0)){for(let[n,i]of Object.entries(r))B0[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=B0[n],e.set(i[0],i[1]);Object.defineProperty(B0,t,{value:r,enumerable:!1})}return Object.defineProperty(B0,"codes",{value:e,enumerable:!1}),B0.color.close="\x1B[39m",B0.bgColor.close="\x1B[49m",B0.color.ansi=ePu(),B0.color.ansi256=tPu(),B0.color.ansi16m=rPu(),B0.bgColor.ansi=ePu(10),B0.bgColor.ansi256=tPu(10),B0.bgColor.ansi16m=rPu(10),Object.defineProperties(B0,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>B0.rgbToAnsi256(...B0.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>B0.ansi256ToAnsi(B0.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>B0.ansi256ToAnsi(B0.hexToAnsi256(t)),enumerable:!1}}),B0}var Apm=gpm(),nPu=Apm;var P9r=new Set(["\x1B","\x9B"]),ypm=39,P2o="\x07",sPu="[",bpm="]",aPu="m",D2o=`${bpm}8;;`,iPu=e=>`${P9r.values().next().value}${sPu}${e}${aPu}`,oPu=e=>`${P9r.values().next().value}${D2o}${e}${P2o}`,Epm=e=>e.split(" ").map(t=>k1(t)),B2o=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=k1(FG(e[e.length-1]));for(let[a,c]of n.entries()){let u=k1(c);if(s+u<=r?e[e.length-1]+=c:(e.push(c),s=0),P9r.has(c)&&(i=!0,o=n.slice(a+1).join("").startsWith(D2o)),i){o?c===P2o&&(i=!1,o=!1):c===aPu&&(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())},Ipm=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(k1(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},vpm=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=Epm(e),a=[""];for(let[u,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=k1(a[a.length-1]);if(u!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),p=0),(p>0||r.trim===!1)&&(a[a.length-1]+=" ",p++)),r.hard&&s[u]>t){let d=t-p,f=1+Math.floor((s[u]-d-1)/t);Math.floor((s[u]-1)/t)<f&&a.push(""),B2o(a,l,t);continue}if(p+s[u]>t&&p>0&&s[u]>0){if(r.wordWrap===!1&&p<t){B2o(a,l,t);continue}a.push("")}if(p+s[u]>t&&r.wordWrap===!1){B2o(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(u=>Ipm(u)));let c=[...a.join(`
|
|
3027
3027
|
`)];for(let[u,l]of c.entries()){if(n+=l,P9r.has(l)){let{groups:d}=new RegExp(`(?:\\${sPu}(?<code>\\d+)m|\\${D2o}(?<uri>.*)${P2o})`).exec(c.slice(u).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===ypm?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=nPu.codes.get(Number(i));c[u+1]===`
|
|
3028
3028
|
`?(o&&(n+=oPu("")),i&&p&&(n+=iPu(p))):l===`
|
|
@@ -3594,7 +3594,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
|
|
|
3594
3594
|
Add a 'docs:' section to your fern.yml to get started.`,code:B.Code.ConfigError});let o=await new _Be({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&&LJm(p,s,a))),u=o.hasErrors||r.strict&&o.hasWarnings;if(r.json){let p=this.buildJsonResponse({result:o,filteredViolations:c,hasErrors:u});if(t.stdout.info(JSON.stringify(p,null,2)),u)throw new B({code:B.Code.ValidationError});return}if(c.length>0)for(let p of c){let d=p.severity==="warning"?fe.yellow:fe.red;process.stderr.write(`${d(`${p.displayRelativeFilepath}:${p.line}:${p.column}: ${p.message}`)}
|
|
3595
3595
|
`)}let l=0;if(o.mdxParseErrors.length>0){for(let p of o.mdxParseErrors)t.stderr.info(`
|
|
3596
3596
|
${p.toString()}
|
|
3597
|
-
`);r.fix?l+=await q$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!EYn()&&await G$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new Kyt({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new B({code:B.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Dr.warning} ${fe.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(fe.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Dr.success} ${fe.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>Aee(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 LJm(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 QKo(e){let t=new jKo;Xn(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}hb();jt();var $tl=be(require("net"),1),erl=be(require("os"),1),K$n=class extends Error{constructor(t){super(`${t} is locked`)}},Zyt={old:new Set,young:new Set},UJm=1e3*15,trl=new Set;var K8t,VJm=()=>{let e=erl.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},Xtl=e=>new Promise((t,r)=>{let n=$tl.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Ztl=async(e,t)=>{if(e.host||e.port===0)return Xtl(e);for(let r of t)try{await Xtl({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},_Jm=e=>Zyt.old.has(e)||Zyt.young.has(e)||trl.has(e),qJm=function*(e){e&&(yield*e),yield 0};async function GBe(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??{};K8t===void 0&&(K8t=setTimeout(()=>{K8t=void 0,Zyt.old=Zyt.young,Zyt.young=new Set},UJm),K8t.unref&&K8t.unref());let o=VJm();for(let s of qJm(t))try{if(r.has(s))continue;let a=await Ztl({...i,port:s},o);for(;_Jm(a);){if(s!==0)throw new K$n(s);a=await Ztl({...i,port:s},o)}return n?trl.add(a):Zyt.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof K$n))throw a}throw new Error("No available ports found")}jt();var irl=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,rrl="docs.buildwithfern.com",nrl=62;function n4e(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)),irl.test(t)}function orl(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function J8t({orgId:e,previewId:t}){let r=orl(t),n=`${e}-preview-${r}.${rrl}`;if(n.length<=nrl)return n;let i=`${e}-preview-`,o=nrl-i.length;if(o<8)throw new B({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:B.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${rrl}`}Dt();CC();zm();Yt();Ow();jt();bn();var xZo=require("child_process"),Tml=be(LKo(),1),CZo=be(kei(),1),wZo=be(require("fs"),1),B4e=require("fs/promises"),Oml=be(require("http"),1),OZo=be(require("path"),1);Jei();Yt();var T9=require("fs/promises"),_al=require("os"),TYo=be(require("path"),1),Dih=".fern",Rih="logs",SYo=100*1024*1024;function Fih(){return"cli@5.
|
|
3597
|
+
`);r.fix?l+=await q$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!EYn()&&await G$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new Kyt({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new B({code:B.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Dr.warning} ${fe.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(fe.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Dr.success} ${fe.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>Aee(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 LJm(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 QKo(e){let t=new jKo;Xn(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}hb();jt();var $tl=be(require("net"),1),erl=be(require("os"),1),K$n=class extends Error{constructor(t){super(`${t} is locked`)}},Zyt={old:new Set,young:new Set},UJm=1e3*15,trl=new Set;var K8t,VJm=()=>{let e=erl.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},Xtl=e=>new Promise((t,r)=>{let n=$tl.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Ztl=async(e,t)=>{if(e.host||e.port===0)return Xtl(e);for(let r of t)try{await Xtl({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},_Jm=e=>Zyt.old.has(e)||Zyt.young.has(e)||trl.has(e),qJm=function*(e){e&&(yield*e),yield 0};async function GBe(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??{};K8t===void 0&&(K8t=setTimeout(()=>{K8t=void 0,Zyt.old=Zyt.young,Zyt.young=new Set},UJm),K8t.unref&&K8t.unref());let o=VJm();for(let s of qJm(t))try{if(r.has(s))continue;let a=await Ztl({...i,port:s},o);for(;_Jm(a);){if(s!==0)throw new K$n(s);a=await Ztl({...i,port:s},o)}return n?trl.add(a):Zyt.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof K$n))throw a}throw new Error("No available ports found")}jt();var irl=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,rrl="docs.buildwithfern.com",nrl=62;function n4e(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)),irl.test(t)}function orl(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function J8t({orgId:e,previewId:t}){let r=orl(t),n=`${e}-preview-${r}.${rrl}`;if(n.length<=nrl)return n;let i=`${e}-preview-`,o=nrl-i.length;if(o<8)throw new B({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:B.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${rrl}`}Dt();CC();zm();Yt();Ow();jt();bn();var xZo=require("child_process"),Tml=be(LKo(),1),CZo=be(kei(),1),wZo=be(require("fs"),1),B4e=require("fs/promises"),Oml=be(require("http"),1),OZo=be(require("path"),1);Jei();Yt();var T9=require("fs/promises"),_al=require("os"),TYo=be(require("path"),1),Dih=".fern",Rih="logs",SYo=100*1024*1024;function Fih(){return"cli@5.58.0"}var A4e=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t,r){if(this.initialized)return;this.consoleLogger=t;let n=r??Ge(Ge(Vt.of((0,_al.homedir)()),we.of(Dih)),we.of(Rih));await $t(n)||await(0,T9.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Ge(n,we.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${TYo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
3598
3598
|
`);await(0,T9.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)+`
|
|
3599
3599
|
`;try{await(0,T9.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:Fih(),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,T9.readdir)(t)).filter(c=>c.endsWith(".log")),i=[];for(let c of n){let u=TYo.default.join(t,c);try{let l=await(0,T9.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=SYo/1024/1024;if(o<=SYo){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<=SYo)break;if(!(this.logFilePath!=null&&c.fullPath===this.logFilePath))try{await(0,T9.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 Yei={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function qal(e){let t=kih();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:Yei});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",...Yei}})}catch{return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...Yei}})}let d=/^\/_local\/(.*)/.exec(p.pathname);return u.method==="GET"&&d!=null?new Response(t.file(`/${d[1]}`),{headers:Yei}):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 A4e.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 kih(){return globalThis.Bun}jt();var ucl=require("events"),tti=be(require("fs"),1),b4e=be(require("path"),1);var Gal=be(require("os"),1),Wal=300,ePe=20,O9t=1e7,Hal=Gal.default.platform();var Nih=Hal==="darwin",OYo=Hal==="win32",tPe=Nih||OYo,Kal=3e3,Jal=2e4,BYo=1250;var Eie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(Eie||(Eie={}));var y4e;(function(e){e.CHANGE="change",e.RENAME="rename"})(y4e||(y4e={}));var B9t;(function(e){e.CHANGE="change",e.ERROR="error"})(B9t||(B9t={}));var Cc;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Cc||(Cc={}));var tN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(tN||(tN={}));var jih=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let I=Date.now(),C=I-c,w=I-u,T=C>=t||w>=o;return[I,T]},p=I=>{if(u=I,!s)return;let C=s;s=void 0,e.apply(void 0,C)},d=()=>{E(0)},f=()=>{a&&(d(),p(Date.now()))},m=I=>{if(u=I,n)return p(I)},g=I=>{if(i&&s)return p(I);s=void 0},A=()=>{a=void 0;let[I,C]=l();return C?g(I):y(I)},y=I=>{let C=I-c,w=I-u,T=t-C,P=o-w,O=Math.min(T,P);return E(O)},E=I=>{a&&clearTimeout(a),!(I<=0)&&(a=setTimeout(A,I))},v=(...I)=>{let[C,w]=l(),T=!!a;if(s=I,c=C,(w||!a)&&E(t),w)return T?p(C):m(C)};return v.cancel=d,v.flush=f,v},Xei=jih;var FYo=be(require("fs"),1),$ei=be(require("path"),1);var Bd=be(require("fs"),1),zB=require("util");var Lde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},Iie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var PYo=be(require("process"),1),Yal=PYo.default.getuid?!PYo.default.getuid():!1,Xal=1e4,rM=()=>{};var P9t={isChangeErrorOk:e=>{if(!P9t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Yal&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!P9t.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(!P9t.isNodeError(e))throw e;if(!P9t.isChangeErrorOk(e))throw e}},Zv=P9t;var DYo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Xal,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()}}}}},Zal=new DYo;var Ude=(e,t)=>function(n){return function i(...o){return Zal.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)})}},Vde=(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 Qih={attempt:{chmod:Lde((0,zB.promisify)(Bd.default.chmod),Zv.onChangeError),chown:Lde((0,zB.promisify)(Bd.default.chown),Zv.onChangeError),close:Lde((0,zB.promisify)(Bd.default.close),rM),fsync:Lde((0,zB.promisify)(Bd.default.fsync),rM),mkdir:Lde((0,zB.promisify)(Bd.default.mkdir),rM),realpath:Lde((0,zB.promisify)(Bd.default.realpath),rM),stat:Lde((0,zB.promisify)(Bd.default.stat),rM),unlink:Lde((0,zB.promisify)(Bd.default.unlink),rM),chmodSync:Iie(Bd.default.chmodSync,Zv.onChangeError),chownSync:Iie(Bd.default.chownSync,Zv.onChangeError),closeSync:Iie(Bd.default.closeSync,rM),existsSync:Iie(Bd.default.existsSync,rM),fsyncSync:Iie(Bd.default.fsync,rM),mkdirSync:Iie(Bd.default.mkdirSync,rM),realpathSync:Iie(Bd.default.realpathSync,rM),statSync:Iie(Bd.default.statSync,rM),unlinkSync:Iie(Bd.default.unlinkSync,rM)},retry:{close:Ude((0,zB.promisify)(Bd.default.close),Zv.isRetriableError),fsync:Ude((0,zB.promisify)(Bd.default.fsync),Zv.isRetriableError),open:Ude((0,zB.promisify)(Bd.default.open),Zv.isRetriableError),readFile:Ude((0,zB.promisify)(Bd.default.readFile),Zv.isRetriableError),rename:Ude((0,zB.promisify)(Bd.default.rename),Zv.isRetriableError),stat:Ude((0,zB.promisify)(Bd.default.stat),Zv.isRetriableError),write:Ude((0,zB.promisify)(Bd.default.write),Zv.isRetriableError),writeFile:Ude((0,zB.promisify)(Bd.default.writeFile),Zv.isRetriableError),closeSync:Vde(Bd.default.closeSync,Zv.isRetriableError),fsyncSync:Vde(Bd.default.fsyncSync,Zv.isRetriableError),openSync:Vde(Bd.default.openSync,Zv.isRetriableError),readFileSync:Vde(Bd.default.readFileSync,Zv.isRetriableError),renameSync:Vde(Bd.default.renameSync,Zv.isRetriableError),statSync:Vde(Bd.default.statSync,Zv.isRetriableError),writeSync:Vde(Bd.default.writeSync,Zv.isRetriableError),writeFileSync:Vde(Bd.default.writeFileSync,Zv.isRetriableError)}},$al=Qih;var Zei=be(require("fs"),1),D9t=be(require("path"),1);var RYo=()=>{};var zih=()=>{let e=RYo,t=RYo,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}},ecl=zih;var Mih=()=>{let{promise:e,resolve:t,isPending:r}=ecl(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},tcl=Mih;var rcl={then:e=>{e()}};var ncl=e=>Array.isArray(e)?e:[e],icl=e=>typeof e=="function";var Lih=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=ncl(o).map(se=>icl(se)?se:pe=>se.test(pe)),a=se=>s.some(pe=>pe(se)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,g={},A=[],y=new Set,E={},v={},I=new Set,C={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:g,symlinks:A,symlinksNames:y,symlinksNamesToPaths:E,map:v},{promise:T,increment:P,decrement:O}=tcl(),M=0,K=(se,pe,xe,Ee)=>{I.has(pe)||M>=i||(M+=1,se.directories.push(pe),se.directoriesNames.add(xe),l.push(pe),p.add(xe),d.propertyIsEnumerable(xe)||(d[xe]=[]),d[xe].push(pe),I.add(pe),!(Ee>=n)&&(M>=i||ce(pe,Ee+1)))},Y=(se,pe,xe)=>{I.has(pe)||M>=i||(M+=1,se.files.push(pe),se.filesNames.add(xe),f.push(pe),m.add(xe),g.propertyIsEnumerable(xe)||(g[xe]=[]),g[xe].push(pe),I.add(pe))},Z=(se,pe,xe,Ee)=>{I.has(pe)||M>=i||(M+=1,se.symlinks.push(pe),se.symlinksNames.add(xe),A.push(pe),y.add(xe),E.propertyIsEnumerable(xe)||(E[xe]=[]),E[xe].push(pe),I.add(pe),r&&(Ee>=n||M>=i||Te(pe,Ee+1)))},ae=(se,pe,xe,Ee,De)=>{c.aborted||a(pe)||(Ee.isDirectory()?K(se,pe,xe,De):Ee.isFile()?Y(se,pe,xe):Ee.isSymbolicLink()&&Z(se,pe,xe,De))},le=(se,pe,xe,Ee)=>{if(c.aborted)return;let De=pe===D9t.default.sep?"":D9t.default.sep,Je=xe.name,ct=`${pe}${De}${Je}`;a(ct)||(xe.isDirectory()?K(se,ct,Je,Ee):xe.isFile()?Y(se,ct,Je):xe.isSymbolicLink()&&Z(se,ct,Je,Ee))},oe=(se,pe,xe,Ee)=>{for(let De=0,Je=xe.length;De<Je;De++)le(se,pe,xe[De],Ee)},ce=(se,pe)=>{c.aborted||pe>n||M>=i||(P(),Zei.default.readdir(se,{withFileTypes:!0},(xe,Ee)=>{if(xe||c.aborted||!Ee.length)return O();(u(Ee)||rcl).then(()=>{let Je=v[se]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};oe(Je,se,Ee,pe),O()})}))},Te=(se,pe)=>{P(),Zei.default.realpath(se,(xe,Ee)=>{if(xe||c.aborted)return O();Zei.default.stat(Ee,(De,Je)=>{if(De||c.aborted)return O();let ct=D9t.default.basename(Ee),Ct=v[se]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ae(Ct,Ee,ct,Je,pe),O()})})};return(async(se,pe=1)=>(se=D9t.default.normalize(se),I.add(se),ce(se,pe),await T,c.aborted?C:w))(e)},ocl=Lih;var vie={lang:{debounce:Xei,attempt:e=>{try{return e()}catch(t){return vie.lang.castError(t)}},castArray:e=>vie.lang.isArray(e)?e:[e],castError:e=>vie.lang.isError(e)?e:vie.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(vie.lang.isNaN(e))return vie.lang.isNaN(t);if(vie.lang.isPrimitive(e)||vie.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split($ei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?FYo.default.realpathSync.native(e):FYo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===$ei.default.sep&&t.length-e.length>$ei.default.sep.length,poll:(e,t=Jal)=>$al.retry.stat(t)(e,{bigint:!0}).catch(vie.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await ocl(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},Yl=vie;var eti=be(require("path"),1);var kYo=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||Yl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Wal){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=Yl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Cc.CHANGE&&a===Cc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Cc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Cc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??ePe:Math.min(1,this.options.depth??ePe),s=this.options.limit??O9t,[a,c]=await Yl.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())Yl.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Cc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!tPe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Cc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Cc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(eti.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Cc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(eti.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Cc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Cc.ADD?this.onTargetAdd(n):r===Cc.ADD_DIR?this.onTargetAddDir(n):r===Cc.CHANGE?this.onTargetChange(n):r===Cc.UNLINK?this.onTargetUnlink(n):r===Cc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=y4e.CHANGE,r){if(this.watcher.isClosed())return;let n=eti.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){OYo&&t.code==="EPERM"?this.onWatcherChange(y4e.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(B9t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(B9t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(y4e.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&tPe&&this.options.native!==!1?this.options.depth??ePe:Math.min(1,this.options.depth??ePe),n=this.options.limit??O9t,[i,o]=await Yl.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(y4e.CHANGE,a,t)}))}}},scl=kYo;var rN={interval:100,intervalId:void 0,fns:new Map,init:()=>{rN.intervalId||(rN.intervalId=setInterval(rN.resolve,rN.interval))},reset:()=>{rN.intervalId&&(clearInterval(rN.intervalId),delete rN.intervalId)},add:(e,t)=>{rN.fns.set(e,Date.now()+t),rN.init()},remove:e=>{rN.fns.delete(e)},resolve:()=>{if(!rN.fns.size)return rN.reset();let e=Date.now();for(let[t,r]of rN.fns)r>=e||(rN.remove(t),t())}},R9t=rN;var F9t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=BYo){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(Yl.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),R9t.remove(u)},u=()=>{c(),a()};R9t.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=BYo){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),R9t.remove(u)},u=()=>{c(),a()};R9t.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Cc.ADD,Eie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Cc.ADD_DIR,Eie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Cc.UNLINK,Eie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Cc.UNLINK_DIR,Eie.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};F9t.DIR_EVENTS={add:Cc.ADD_DIR,rename:Cc.RENAME_DIR,unlink:Cc.UNLINK_DIR};F9t.FILE_EVENTS={add:Cc.ADD,change:Cc.CHANGE,rename:Cc.RENAME,unlink:Cc.UNLINK};var acl=F9t;var NYo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(Yl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(Yl.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(Yl.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(Yl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return Yl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);Yl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},jYo=NYo;var QYo=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}},ccl=QYo;var zYo=class{constructor(){this.inos={},this.paths=new jYo,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 Yl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new ccl(n)}reset(){this.inos={},this.paths=new jYo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Cc.ADD,i),[Cc.ADD];if(i.isDirectory())return this.updateIno(t,Cc.ADD_DIR,i),[Cc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Cc.UNLINK,n),[Cc.UNLINK];if(n.isDirectory())return this.updateIno(t,Cc.UNLINK_DIR,n),[Cc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Cc.CHANGE,i),[Cc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Cc.UNLINK,n),this.updateIno(t,Cc.ADD_DIR,i),[Cc.UNLINK,Cc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Cc.UNLINK_DIR,n),this.updateIno(t,Cc.ADD,i),[Cc.UNLINK_DIR,Cc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Cc.UNLINK_DIR,n),this.updateIno(t,Cc.ADD_DIR,i),[Cc.UNLINK_DIR,Cc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?Eie.FILE:Eie.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},MYo=zYo;var LYo=class e extends ucl.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(tN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(tN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(tN.READY,i)),this._locker=new acl(this),this._roots=new Set,this._poller=new MYo,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&&(Yl.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(tN.CLOSE))}error(t){if(this.isClosed())return!1;let r=Yl.lang.castError(t);return this.emit(tN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(tN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(tN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&Yl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&Yl.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)Yl.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 scl(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=Yl.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=b4e.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??ePe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&tPe&&l.options.native!==!1)))return!0;if(!tPe)break;let u=b4e.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=Yl.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||tPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:tti.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=b4e.default.dirname(a),g=a;await this.watchDirectories([m],f,n,g,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||tPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??ePe,a=r.limit??O9t,[c]=await Yl.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=Yl.fs.getDepth(t);for(let p of c){let d=Yl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(tN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(tN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=b4e.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new MYo,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 Yl.lang.noop;if(this.pollerExists(t,r))return Yl.lang.noop;let i={...r,interval:r.pollingInterval??Kal},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(tN.CLOSE,a),tti.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(tN.CLOSE,a),tti.default.unwatchFile(t,n)};return Yl.lang.attempt(s),()=>Yl.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=Yl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!Yl.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=b4e.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await Yl.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=b4e.default.dirname(t);return(await Yl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=Yl.lang.noop){if(Yl.lang.isFunction(t))return this.watch([],{},t);if(Yl.lang.isUndefined(t))return this.watch([],r,n);if(Yl.lang.isFunction(r))return this.watch(t,{},r);if(Yl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=Yl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==Yl.lang.noop&&this.on(tN.ALL,n),r.readdirMap=void 0,this.ready())}},lcl=LYo;function Uih(e){return"code"in e&&typeof e.code=="string"}function pcl(e){return e instanceof Error?e:new Error(String(e))}function fcl(e){return Uih(e)&&e.code==="ENOSPC"?"Unable to watch Fern docs files for changes because the system limit for file watchers was reached. Close other file-watching processes or increase the file watcher limit, then restart `fern docs dev`.":`Unable to watch Fern docs files for changes: ${e.message}`}async function rti({absoluteFilePathToFern:e,additionalFilepaths:t,context:r}){let n=new lcl([e,...t],{recursive:!0,ignoreInitial:!0,debounce:100,renameDetection:!0}),i=await new Promise(o=>{let s=()=>{n.off("error",a),o(void 0)},a=c=>{n.off("ready",s),o(pcl(c))};n.once("ready",s),n.once("error",a)});return i!=null&&(n.close(),r.failAndThrow(fcl(i),i,{code:B.Code.EnvironmentError})),n.on("error",o=>{let s=pcl(o);r.failWithoutThrowing(fcl(s),s,{code:B.Code.EnvironmentError}),n.close()}),n}Yt();Ow();jt();bn();var mml=require("child_process"),hri=be(JYo(),1),hml=be(cZo(),1),qE=require("fs"),_B=require("fs/promises"),gml=require("os"),iN=be(require("path"),1),Aml=be(dI(),1),yml=be(dml(),1),O4e=process.platform==="win32",mri=fe.cyan("[docs]:"),Auh="etag",yuh=23,bZo=e=>e.padEnd(yuh," "),buh="preview",Euh="app-preview",Iuh="bundle",vuh=".next",xuh="standalone",Cuh=".fern",wuh="packages/fern-docs/bundle/.next/server/instrumentation.js",Suh='Cannot find matching keyid: {"signatures":',Tuh="ERR_PNPM_IGNORED_BUILDS";function Ouh(e){try{let r=(0,mml.execSync)('reg query "HKLM\\SYSTEM\\CurrentControlSet\\Control\\FileSystem" /v LongPathsEnabled',{encoding:"utf-8",timeout:5e3}).match(/LongPathsEnabled\s+REG_DWORD\s+0x(\d+)/i);if(r!=null&&r[1]==="1")return}catch(t){e.debug(`Registry query for LongPathsEnabled failed: ${t}`)}throw new B({message:`Windows long path support is not enabled. The docs bundle contains deeply nested .pnpm paths that exceed the 260-character MAX_PATH limit.
|
|
3600
3600
|
|
|
@@ -4171,7 +4171,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
|
|
|
4171
4171
|
`);i.failAndThrow(s!=null?`No docs instance found matching '${s}'.
|
|
4172
4172
|
|
|
4173
4173
|
Available instances:
|
|
4174
|
-
${C}`:"No docs instance found. Failed to register.",void 0,{code:B.Code.ConfigError});return}let E=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(dkl);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&mkl(y.url,E,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let I;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),w=()=>SLl({docsWorkspace:n,customDomains:E,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let P=0;;P++)try{I=await w();break}catch(O){if(!(O instanceof fvt)||P>=aWt.length){if(O instanceof fvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:B.Code.NetworkError});throw O}let M=aWt[P]??aWt[aWt.length-1]??6e4,K=M/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${K} minute${K===1?"":"s"} (attempt ${P+1}/${aWt.length})...`),await new Promise(Y=>setTimeout(Y,M))}let T=performance.now()-C;i.logger.debug(`Docs publishing completed in ${T.toFixed(0)}ms`)}),I}jt();var hpi=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,previewId:n,skipUpload:i}){let o=new od({context:this.context,task:this.task});try{let s=await cWt({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.
|
|
4174
|
+
${C}`:"No docs instance found. Failed to register.",void 0,{code:B.Code.ConfigError});return}let E=(typeof y.customDomain=="string"?[y.customDomain]:y.customDomain??[]).map(dkl);(y.multiSource===!0||n.config.experimental?.basepathAware===!0)&&mkl(y.url,E,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let I;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),w=()=>SLl({docsWorkspace:n,customDomains:E,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let P=0;;P++)try{I=await w();break}catch(O){if(!(O instanceof fvt)||P>=aWt.length){if(O instanceof fvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:B.Code.NetworkError});throw O}let M=aWt[P]??aWt[aWt.length-1]??6e4,K=M/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${K} minute${K===1?"":"s"} (attempt ${P+1}/${aWt.length})...`),await new Promise(Y=>setTimeout(Y,M))}let T=performance.now()-C;i.logger.debug(`Docs publishing completed in ${T.toFixed(0)}ms`)}),I}jt();var hpi=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,previewId:n,skipUpload:i}){let o=new od({context:this.context,task:this.task});try{let s=await cWt({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.58.0",loginCommand:"fern auth login"});return o.getResult()===Df.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:zn(s)}}}};Dt();bn();var dvt=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(`
|
|
4175
4175
|
`),this.stream.write(`${fe.cyan("\u25C6")} ${fe.bold(t.title)}
|
|
4176
4176
|
`),t.subtitle!=null&&this.stream.write(` ${fe.dim(t.subtitle)}
|
|
4177
4177
|
`),this.stream.write(`
|
|
@@ -4820,7 +4820,7 @@ ${r}`}function XAi(e){let t=this,{emitParseErrors:r,...n}={...t.data("settings")
|
|
|
4820
4820
|
`),g="";return c&&(g=l.style.error(c)),[`${p} ${f} ${s}`,[m,g].filter(Boolean).join(`
|
|
4821
4821
|
`)]});var kMg=yx((e,t)=>{let{validate:r=()=>!0}=e,n=iI(e.theme),[i,o]=Zc("idle"),[s,a]=Zc(),[c,u]=Zc(""),l=gx({status:i,theme:n});Ax(async(g,A)=>{if(i==="idle")if(hx(g)){let y=c;o("loading");let E=await r(y);E===!0?(u(y),o("done"),t(y)):(A.write(c),a(E||"You must provide a valid value"),o("idle"))}else u(A.line),a(void 0)});let p=n.style.message(e.message,i),d="",f;e.mask?d=(typeof e.mask=="string"?e.mask:"*").repeat(c.length):i!=="done"&&(f=`${n.style.help("[input is masked]")}${Owt}`),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 j5e=be(Rw(),1);var NMg={icon:{cursor:sC.pointer},style:{disabled:e=>j5e.default.dim(`- ${e}`),searchTerm:e=>j5e.default.cyan(e),description:e=>j5e.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${j5e.default.bold(t)} ${j5e.default.dim(r)}`).join(j5e.default.dim(" \u2022 "))},helpMode:"always"};function kRs(e){return!fd.isSeparator(e)&&!e.disabled}function jMg(e){return e.map(t=>{if(fd.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var QMg=yx((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,i=iI(NMg,e.theme),[o,s]=Zc("loading"),[a,c]=Zc(""),[u,l]=Zc([]),[p,d]=Zc(),f=gx({status:o,theme:i}),m=e6(()=>{let M=u.findIndex(kRs),K=u.findLastIndex(kRs);return{first:M,last:K}},[u]),[g=m.first,A]=Zc();Z3(()=>{let M=new AbortController;return s("loading"),d(void 0),(async()=>{try{let Y=await e.source(a||void 0,{signal:M.signal});M.signal.aborted||(A(void 0),d(void 0),l(jMg(Y)),s("idle"))}catch(Y){!M.signal.aborted&&Y instanceof Error&&d(Y.message)}})(),()=>{M.abort()}},[a]);let y=u[g];Ax(async(M,K)=>{if(hx(M))if(y){s("loading");let Y=await n(y.value);s("idle"),Y===!0?(s("done"),t(y.value)):y.name===a?d(Y||"You must provide a valid value"):(K.write(y.name),c(y.name))}else K.write(a);else if(Ohe(M)&&y)K.clearLine(0),K.write(y.name),c(y.name);else if(o!=="loading"&&(nP(M)||$M(M))){if(K.clearLine(0),nP(M)&&g!==m.first||$M(M)&&g!==m.last){let Y=nP(M)?-1:1,Z=g;do Z=(Z+Y+u.length)%u.length;while(!kRs(u[Z]));A(Z)}}else c(K.line)});let E=i.style.message(e.message,o),v;if(i.helpMode!=="never")if(e.instructions){let{pager:M,navigation:K}=e.instructions;v=i.style.help(u.length>r?M:K)}else v=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let I=R5e({items:u,active:g,renderItem({item:M,isActive:K}){if(fd.isSeparator(M))return` ${M.separator}`;if(M.disabled){let ae=typeof M.disabled=="string"?M.disabled:"(disabled)";return i.style.disabled(`${M.name} ${ae}`)}let Y=K?i.style.highlight:ae=>ae,Z=K?i.icon.cursor:" ";return Y(`${Z} ${M.name}`)},pageSize:r,loop:!1}),C;p?C=i.style.error(p):u.length===0&&a!==""&&o==="idle"&&(C=i.style.error("No results found"));let w;if(o==="done"&&y)return[f,E,i.style.answer(y.short)].filter(Boolean).join(" ").trimEnd();w=i.style.searchTerm(a);let T=y?.description,P=[f,E,w].filter(Boolean).join(" ").trimEnd(),O=[C??I," ",T?i.style.description(T):"",v].filter(Boolean).join(`
|
|
4822
4822
|
`).trimEnd();return[P,O]});var Pwt=be(Rw(),1);var zMg={icon:{cursor:sC.pointer},style:{disabled:e=>Pwt.default.dim(`- ${e}`),description:e=>Pwt.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${Pwt.default.bold(t)} ${Pwt.default.dim(r)}`).join(Pwt.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function Bwt(e){return!fd.isSeparator(e)&&!e.disabled}function MMg(e){return e.map(t=>{if(fd.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var NRs=yx((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=iI(zMg,e.theme),{keybindings:o}=i,[s,a]=Zc("idle"),c=gx({status:s,theme:i}),u=D5e(),l=!o.includes("vim"),p=e6(()=>MMg(e.choices),[e.choices]),d=e6(()=>{let T=p.findIndex(Bwt),P=p.findLastIndex(Bwt);if(T===-1)throw new yae("[select prompt] No selectable choices. All choices are disabled.");return{first:T,last:P}},[p]),f=e6(()=>"default"in e?p.findIndex(T=>Bwt(T)&&T.value===e.default):-1,[e.default,p]),[m,g]=Zc(f===-1?d.first:f),A=p[m];Ax((T,P)=>{if(clearTimeout(u.current),hx(T))a("done"),t(A.value);else if(nP(T,o)||$M(T,o)){if(P.clearLine(0),r||nP(T,o)&&m!==d.first||$M(T,o)&&m!==d.last){let O=nP(T,o)?-1:1,M=m;do M=(M+O+p.length)%p.length;while(!Bwt(p[M]));g(M)}}else if(NJt(T)&&!Number.isNaN(Number(P.line))){let O=Number(P.line)-1,M=-1,K=p.findIndex(Z=>fd.isSeparator(Z)?!1:(M++,M===O)),Y=p[K];Y!=null&&Bwt(Y)&&g(K),u.current=setTimeout(()=>{P.clearLine(0)},700)}else if(O5e(T))P.clearLine(0);else if(l){let O=P.line.toLowerCase(),M=p.findIndex(K=>fd.isSeparator(K)||!Bwt(K)?!1:K.name.toLowerCase().startsWith(O));M!==-1&&g(M),u.current=setTimeout(()=>{P.clearLine(0)},700)}}),Z3(()=>()=>{clearTimeout(u.current)},[]);let y=i.style.message(e.message,s),E;if(i.helpMode!=="never")if(e.instructions){let{pager:T,navigation:P}=e.instructions;E=i.style.help(p.length>n?T:P)}else E=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let v=0,I=R5e({items:p,active:m,renderItem({item:T,isActive:P,index:O}){if(fd.isSeparator(T))return v++,` ${T.separator}`;let M=i.indexMode==="number"?`${O+1-v}. `:"";if(T.disabled){let Z=typeof T.disabled=="string"?T.disabled:"(disabled)";return i.style.disabled(`${M}${T.name} ${Z}`)}let K=P?i.style.highlight:Z=>Z,Y=P?i.icon.cursor:" ";return K(`${Y} ${M}${T.name}`)},pageSize:n,loop:r});if(s==="done")return[c,y,i.style.answer(A.short)].filter(Boolean).join(" ");let{description:C}=A;return`${[[c,y].filter(Boolean).join(" "),I," ",C?i.style.description(C):"",E].filter(Boolean).join(`
|
|
4823
|
-
`).trimEnd()}${Owt}`});bn();Vi();var bae={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"},LMg={[bae.GENERATION_STARTED]:!1,[bae.GENERATION_COMPLETED]:!1,[bae.GENERATION_FAILED]:!0,[bae.VERIFICATION_FAILED]:!0,[bae.SDK_PR_CREATED]:!1,[bae.UPGRADE_APPLIED]:!1,[bae.MAJOR_VERSION_BUMP]:!1};function Wnp(e){return LMg[e]}function Hnp(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 Knp(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 Jnp(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 Ynp(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 Xnp(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?bae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?bae.VERIFICATION_FAILED:bae.GENERATION_FAILED}var UMg="",VMg="FERN_AUTOMATION_EVENTS_ORIGIN",_Mg=3e3,Fyi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[VMg]??UMg)),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(),_Mg);try{let s={"content-type":"application/json"},a=await o_();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Ynp(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Znp(){let{fern_run_id:e,github_run_id:t}=Yae();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.
|
|
4823
|
+
`).trimEnd()}${Owt}`});bn();Vi();var bae={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"},LMg={[bae.GENERATION_STARTED]:!1,[bae.GENERATION_COMPLETED]:!1,[bae.GENERATION_FAILED]:!0,[bae.VERIFICATION_FAILED]:!0,[bae.SDK_PR_CREATED]:!1,[bae.UPGRADE_APPLIED]:!1,[bae.MAJOR_VERSION_BUMP]:!1};function Wnp(e){return LMg[e]}function Hnp(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 Knp(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 Jnp(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 Ynp(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 Xnp(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?bae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?bae.VERIFICATION_FAILED:bae.GENERATION_FAILED}var UMg="",VMg="FERN_AUTOMATION_EVENTS_ORIGIN",_Mg=3e3,Fyi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[VMg]??UMg)),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(),_Mg);try{let s={"content-type":"application/json"},a=await o_();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(Ynp(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function Znp(){let{fern_run_id:e,github_run_id:t}=Yae();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.58.0"}}function $np(){return process.env.FERN_AUTOMATION==="true"}var kyi=class{constructor(t,r=Fyi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=Znp()}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:Hnp(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!Wnp(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:Knp(t,r),context:{automation:Jnp(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};jt();function Nyi(e,t,r){if(t instanceof tu)return;let n=Rke(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new B({message:s,code:n});$np()?GMg(i,e,n,s,a):qMg(e,o,n,a)}function qMg(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),YOt(r)&&e.captureException(n,{tags:{"error.code":r}})}function GMg(e,t,r,n,i){let o=Xnp(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}jt();function Q5e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function jyi({cliName:e,packageVersion:t,isLocal:r}){return Q5e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var Qyi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(jyi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new B({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:B.Code.ConfigError});this.sentry=_Ot({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[B9e(),Rge(),Fge(),gge(),Dge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),qOt()}}captureException(t,r){if(this.sentry!=null)try{let n=r?.tags,i=r?.context,o=n!=null&&Object.keys(n).length>0,s=i!=null&&Object.values(i).some(a=>a!=null);return!o&&!s?this.sentry.captureException(t):lO(a=>{if(o&&a.setTags(n),i!=null)for(let[c,u]of Object.entries(i))u!=null&&a.setContext(c,u);return this.sentry?.captureException(t,void 0,a)})}catch{return}}async flush(){this.sentry!=null&&await Promise.resolve(this.sentry.flush(2e3)).catch(()=>{})}};jt();var zyi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new B({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:B.Code.InternalError});this.originalWrite=process.stdout.write,process.stdout.write=process.stderr.write.bind(process.stderr),this.redirected=!0}restore(){!this.redirected||this.originalWrite==null||(process.stdout.write=this.originalWrite,this.originalWrite=void 0,this.redirected=!1)}async withRedirect(t){this.redirect();try{return await t()}finally{this.restore()}}};ppe();Dt();hb();jt();bn();var MJt=class{result=Df.Success;lastFailureMessage=void 0;logImmediately;logPrefix;title;subtasks=[];shouldBufferLogs;bufferedLogs=[];status="notStarted";onResult;instrumentPostHogEventImpl;captureExceptionImpl;emitAutomationTelemetryEventImpl;constructor({logImmediately:t,logPrefix:r,title:n,takeOverTerminal:i,onResult:o,shouldBufferLogs:s,instrumentPostHogEvent:a,captureException:c,emitAutomationTelemetryEvent:u}){this.logImmediately=t,this.logPrefix=r??"",this.title=n,this.takeOverTerminal=i,this.onResult=o,this.shouldBufferLogs=s,this.instrumentPostHogEventImpl=a,this.captureExceptionImpl=c,this.emitAutomationTelemetryEventImpl=u}start(){return this.status="running",this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.status="finished",this.flushLogs(),this.onResult?.(this.getResult()))}isFinished(){return this.status==="finished"}takeOverTerminal;failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),this.finish(),new tu}failWithoutThrowing(t,r,n){this.result=Df.Failure,!(r instanceof tu)&&(t!=null&&(this.lastFailureMessage=t),fMt({message:t,error:r,logger:this.logger}),Nyi(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=lv(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new jRs({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${fe.blackBright(t)} `,takeOverTerminal:this.takeOverTerminal,onResult:this.onResult,shouldBufferLogs:this.shouldBufferLogs,instrumentPostHogEvent:i=>this.instrumentPostHogEventImpl(i),captureException:this.captureExceptionImpl,emitAutomationTelemetryEvent:this.emitAutomationTelemetryEventImpl});return this.subtasks.push(n),n}async runInteractiveTask(t,r){let n=this.addInteractiveTask(t).start();try{await r(n)}catch(i){n.failWithoutThrowing(void 0,i)}finally{n.finish()}return n.getResult()===Df.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
|
|
4824
4824
|
`)}},jRs=class extends MJt{name;subtitle;constructor({name:t,subtitle:r,...n}){super(n),this.name=t,this.subtitle=r}start(){return super.start(),this.logAtLevelWithOverrides(Un.Info,["Started."],{omitOnTTY:!0}),this.flushLogs(),this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.result===Df.Success?this.logAtLevelWithOverrides(Un.Info,["Finished."],{omitOnTTY:!0}):this.logAtLevelWithOverrides(Un.Error,["Failed."],{omitOnTTY:!0}),super.finish())}setSubtitle(t){this.subtitle=t}print({spinner:t}){let r=[this.name];return this.subtitle!=null&&r.push(fe.dim(this.subtitle)),r.push(...this.subtasks.map(n=>n.print({spinner:t}))),$N({prefix:this.getIcon({spinner:t}),content:r.join(`
|
|
4825
4825
|
`)})}printInteractiveTasks({spinner:t}){return this.print({spinner:t})}getIcon({spinner:t}){let r=this.subtasks.length>0;switch(this.status){case"notStarted":return r?fe.dim("\u25B8 "):fe.dim("\u25E6 ");case"running":return r?fe.cyan("\u25BE "):t;case"finished":switch(this.getResult()){case Df.Success:return r?fe.green("\u25BE "):fe.green("\u2713 ");case Df.Failure:return r?fe.red("\u25BE "):fe.red("x ")}}}getResult(){if(this.result===Df.Failure)return Df.Failure;for(let t of this.subtasks)if(t.getResult()===Df.Failure)return Df.Failure;return Df.Success}};jt();var eip=be(mze(),1);bn();function tip(e){return e.filter(t=>t.isUpgradeAvailable).length>0}function WMg(e){return(e.cliUpgradeInfo?.isUpgradeAvailable??!1)||tip(e.generatorUpgradeInfo)}async function rip({cliEnvironment:e,upgradeInfo:t}){if(!WMg(t)||e.packageVersion==t.cliUpgradeInfo?.latestVersion)return;let r=`${fe.underline("Upgrades available")}
|
|
4826
4826
|
|
|
@@ -4829,7 +4829,7 @@ ${r}`}function XAi(e){let t=this,{emitParseErrors:r,...n}={...t.data("settings")
|
|
|
4829
4829
|
Run ${fe.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
4830
4830
|
Run ${fe.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),Gnt(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function QRs({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!tip(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+=`
|
|
4831
4831
|
${await HMg(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+fe.dim(a.currentVersion)+fe.reset(" \u2192 ")+fe.green(a.latestVersion);return i+=`
|
|
4832
|
-
`,n?Gnt(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function HMg(e){let r=await new eip.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new B({message:`Generator ${e} not found`,code:B.Code.ConfigError});return r.body.displayName}Qo();UEe();jt();async function KMg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await nip({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=ize(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await s1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await nip({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=ize(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await s1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function nip({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await yL({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?PA(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 iip(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=AQ(a.latestVersion,a.previousVersion)}catch{throw new B({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:B.Code.ConfigError})}r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function Myi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await KMg({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(...iip(u,c,t.logger));else s.push(...iip(a.versions,void 0,t.logger))}return s}jt();n5i();async function Bhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await qDt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new B({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:B.Code.NetworkError})}}var oip=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Lyi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new zyi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await iUt();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new BMt(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 Qyi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new kyi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.
|
|
4832
|
+
`,n?Gnt(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function HMg(e){let r=await new eip.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new B({message:`Generator ${e} not found`,code:B.Code.ConfigError});return r.body.displayName}Qo();UEe();jt();async function KMg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await nip({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=ize(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await s1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await nip({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=ize(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await s1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function nip({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await yL({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?PA(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 iip(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=AQ(a.latestVersion,a.previousVersion)}catch{throw new B({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:B.Code.ConfigError})}r.debug(`Latest version: ${a.latestVersion}. `+(c?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:c,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function Myi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await KMg({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(...iip(u,c,t.logger));else s.push(...iip(a.versions,void 0,t.logger))}return s}jt();n5i();async function Bhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await qDt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new B({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:B.Code.NetworkError})}}var oip=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Lyi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new zyi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await iUt();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new BMt(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 Qyi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new kyi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.58.0"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${fe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new tu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof tu)&&(fMt({message:t,error:r,logger:this.logger}),Nyi(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)+`
|
|
4833
4833
|
`),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 rip({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
4834
4834
|
`)||(r+=`
|
|
4835
4835
|
`),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=sPi(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 MJt(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw n.failWithoutThrowing(void 0,o),new tu}finally{n.finish()}return i}instrumentPostHogEvent(t){this.isLocal||this.posthogManager.sendEvent(t)}instrumentPostHogAutomationEvent(t){this.isLocal||this.posthogManager.sendAutomationEvent(t)}captureException(t,r){return this.sentryClient.captureException(t,r)}emitAutomationTelemetryEvent(t,r){this.automationTelemetryManager.emit(t,r)}logger=lv((t,...r)=>this.log(t,...r));stderr=lv((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=t.type==="docs"?"docs":t.workspaceName??"api",n=sip(r),i=1+(this.longestWorkspaceName!=null?sip(this.longestWorkspaceName):n).length,o=n.padEnd(i),s=oip[this.numTasks++%oip.length],a=fe.hex(s)(o);return{...this.constructTaskInit(),logPrefix:a,title:fe.hex(s).bold(r)}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Df.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:t=>{this.instrumentPostHogEvent(t)},shouldBufferLogs:!1,captureException:(t,r)=>this.sentryClient.captureException(t,r),emitAutomationTelemetryEvent:(t,r)=>this.emitAutomationTelemetryEvent(t,r)}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>ew.indexOf(i.level)>=ew.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Un.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 Bhe({cliEnvironment:this.environment,includePreReleases:t}),n=AQ(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await Myi({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await NRs({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:fe.yellow("?"),style:{answer:i=>fe.cyan(i),message:i=>fe.bold(i),highlight:i=>fe.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
|