fern-api 5.30.2 → 5.30.3
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 +6 -6
- package/package.json +1 -1
package/cli.cjs
CHANGED
|
@@ -3021,7 +3021,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
3021
3021
|
Location: ${i.join("-> ")}`),zr.unknown({nameOverride:p,generatedName:m,title:h,description:A,availability:y,namespace:a,groupName:f,example:void 0})}}function ZIp(e,t,r){if(!t&&r&&e.enum!=null&&e.enum.length===1&&typeof e.enum[0]=="boolean")return e.enum[0]}function $Ip(e){if(e!=null){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase();if(t==="true")return!0;if(t==="false")return!1}}}function wYe(e){if(e.$ref.startsWith(WNe))return e.$ref.replace(WNe,"")}function Zzi(e,t,r,n,i){let o=Lr(e,kn.TYPE_NAME),s=My(t,n),a=e.description,c=yw(e),u=wYe(e);if(u==null)throw new F({message:`Invalid schema reference ${JSON.stringify(e)}`,code:F.Code.ReferenceError});return Ka.reference({generatedName:s,nameOverride:o,title:void 0,schema:u,description:a??void 0,availability:c,namespace:i.getNamespace(u),groupName:void 0,source:r})}function eCp(e){return e.oneOf==null||e.oneOf.length===0}function JEa(e){return e.allOf==null||e.allOf.length===0}function cxr(e){return e.properties==null||Lh(e.properties)===0}function lxr(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function qY(e,t,r,n){if(e.type==="reference")return zr.reference({...e,description:t,availability:e.availability,namespace:r,groupName:n});if(e.type==="optional"){let i=qY(e.value,t,r,n);return zr.optional({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:i,description:t,availability:e.availability,namespace:r,groupName:n,inline:void 0})}else if(e.type==="nullable"){let i=qY(e.value,t,r,n);return zr.nullable({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,value:i,description:t,availability:e.availability,namespace:r,groupName:n,inline:void 0})}else if(e.type==="primitive"&&t!=null&&e.description==null)return zr.primitive({...e,description:t});return e}function uxr(e){return Hn(e)||e.type==="object"||e.properties!=null?!0:e.allOf!=null?e.allOf.every(t=>uxr(t)):e.oneOf!=null?e.oneOf.every(t=>uxr(t)):e.anyOf!=null?e.anyOf.every(t=>uxr(t)):!1}function YEa({literal:e,wrapAsOptional:t,wrapAsNullable:r,namespace:n,groupName:i,description:o,availability:s,nameOverride:a,generatedName:c,title:u}){let l=zr.literal({nameOverride:a,generatedName:c,title:u,value:e,namespace:n,groupName:i,description:o,availability:s});return r&&(l=zr.nullable({nameOverride:a,generatedName:c,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),t&&(l=zr.optional({nameOverride:a,generatedName:c,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),l}function v1({primitive:e,wrapAsOptional:t,wrapAsNullable:r,namespace:n,groupName:i,description:o,availability:s,generatedName:a,nameOverride:c,title:u}){i=typeof i=="string"?[i]:i;let l=zr.primitive({nameOverride:c,generatedName:a,title:u,schema:e,description:o,availability:s,namespace:n,groupName:i});return r&&(l=zr.nullable({nameOverride:c,generatedName:a,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),t&&(l=zr.optional({nameOverride:c,generatedName:a,title:u,value:l,namespace:n,groupName:i,description:o,availability:s,inline:void 0})),l}function tCp({schemas:e}){let t=new Set;for(let r of e){if(Hn(r))return;if(r.enum!=null&&lxr(r.enum))r.enum.forEach(n=>t.add(n));else return}return Array.from(t)}function XEa({schemas:e,context:t}){let r={};for(let n of e){let i=eva({schema:n,context:t});for(let[o,s]of Object.entries(i)){let a=r[o];a!=null?a[s]=n:r[o]={[s]:n}}}for(let[n,i]of Object.entries(r))if(Object.keys(i).length===e.length){let o;for(let[s,a]of Object.entries(i)){let u=(Hn(a)?t.resolveSchemaReference(a):a).properties?.[n];if(u!=null&&!Hn(u)&&(Lr(u,kn.FERN_DEFAULT)??u.default)===s){o=s;break}}return{discriminant:n,schemas:i,defaultDiscriminantValue:o}}}function eva({schema:e,context:t}){let r=Hn(e)?t.resolveSchemaReference(e):e;return rCp({schema:r,context:t})}function rCp({schema:e,context:t}){let r={};if(e.anyOf!=null){for(let n of e.anyOf){let i=eva({schema:n,context:t});for(let[o,s]of Object.entries(i??{}))r[o]=s}return r}for(let[n,i]of Object.entries(e.properties??{})){let o=Hn(i)?t.resolveSchemaReference(i):i;o.type==="string"&&o.enum!=null&&lxr(o.enum)&&nCp(o.enum).length===1&&o.enum[0]!=null&&(r[n]=o.enum[0]);let s=tva(o,"const");o.type==="string"&&s!=null&&(r[n]=s),n==="type"&&o.example!=null&&(r[n]=o.example)}return r}function nCp(e){if(!e)return[];let t=new Set;return e.forEach(r=>{typeof r=="string"?t.add(r.toLowerCase()):t.add(r)}),Array.from(t)}function tva(e,t){let r=e[t];if(r!=null)return r}function iCp({schema:e,logger:t}){let r=PEa({schema:e,logger:t});if(r!=null)return GEa(r)}var TYe=class{document;taskContext;logger;DUMMY;options;namespace;static MESSAGE_REFERENCE_PREFIX="#/components/messages/";constructor({document:t,taskContext:r,options:n,namespace:i}){this.document=t,this.taskContext=r,this.logger=r.logger,this.DUMMY=this,this.options=n,this.namespace=i}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveTags(t,r){if(this.namespace==null&&t==null&&r!=null)return[r];let n=[];if(this.namespace!=null){let i={type:"namespace",name:this.namespace};n.push(i)}return n.concat(t??[])}resolveSchemaReference(t){if(!t.$ref.startsWith(WNe))throw new F({message:`Failed to resolve schema reference: ${t.$ref}`,code:F.Code.ReferenceError});let n=t.$ref.substring(WNe.length).split("/"),i=this.document.components;if(i==null||i.schemas==null)throw new F({message:"Document does not have components.schemas.",code:F.Code.ReferenceError});let[o,s,a]=n;if(o==null||o==="")throw new F({message:`${t.$ref} cannot be resolved. No schema key provided.`,code:F.Code.ReferenceError});let c=i.schemas[o];if(c==null)throw new F({message:`Schema "${o}" is undefined in document.components.schemas.`,code:F.Code.ReferenceError});if(Hn(c)&&(c=this.resolveSchemaReference(c)),s==="properties"&&a!=null){let u=c.properties?.[a];if(u==null)throw new F({message:`Property "${a}" not found on "${o}". Full ref: ${t.$ref}`,code:F.Code.ReferenceError});Hn(u)?c=this.resolveSchemaReference(u):c=u}return c}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}markReferencedByDiscriminatedUnion(t,r,n){}markSchemaWithDiscriminantValue(t,r,n){}getNamespace(t){return this.namespace}};var fxr=class extends TYe{getExampleMessageReference(t){return`#/components/messages/${t.messageId}`}resolveMessageReference(t){let r="#/components/messages/",n=this.document.components;if(n==null||n.messages==null||!t.$ref.startsWith(r))throw new F({message:`Failed to resolve message reference: ${t.$ref} in v2 components`,code:F.Code.ReferenceError});let i=t.$ref.substring(r.length),o=n.messages[i];if(o==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return o}};jt();function BYe(e,t){let r={};if(e!=null)return{rootSchemas:r,namespacedSchemas:{[e]:t}};let n={};for(let[i,o]of Object.entries(t))switch(o.type){case"object":case"array":case"map":case"optional":case"enum":case"literal":case"reference":case"nullable":case"primitive":{if(o.namespace==null){r[i]=o;continue}let s=o.namespace;n[s]??={},n[s][i]=o;continue}case"oneOf":case"unknown":r[i]=o;continue;default:we(o)}return{rootSchemas:r,namespacedSchemas:n}}Ut();jt();var OYe=xe(require("fs"),1),HNe=xe(require("path"),1);jt();Ut();function mbe(e){if(typeof e=="string")return Mc.primitive(zo.string(e));if(typeof e=="number")return Number.isInteger(e)?Mc.primitive(zo.int(e)):Mc.primitive(zo.double(e));if(typeof e=="boolean")return Mc.primitive(zo.boolean(e));if(Array.isArray(e)){let t=e.map(r=>mbe(r));return t.length===0?void 0:Mc.array(t.filter(r=>r!=null))}else if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string")){let t=[];for(let[r,n]of Object.entries(e)){let i=mbe(n);i!=null&&t.push({key:zo.string(r),value:i})}return Mc.map(t)}}function g2t(e){if(e!=null&&typeof e=="object"&&Object.keys(e).every(t=>typeof t=="string"))return e}function rva(e){if(e!=null&&Array.isArray(e))return e}var hbe=class e{schemas;nonRequestReferencedSchemas;context;constructor(t,r,n){this.schemas=t,this.nonRequestReferencedSchemas=r,this.context=n}buildExample({schema:t,exampleId:r,example:n,options:i,skipReadonly:o}){return this.buildExampleHelper({schema:t,visitedSchemaIds:new Set,exampleId:r,example:n,options:{...i,maxCheckerDepth:i.maxCheckerDepth??5},depth:0,skipReadonly:o??!1})}buildExampleHelper({exampleId:t,example:r,schema:n,depth:i,visitedSchemaIds:o,options:s,skipReadonly:a}){switch(n.type){case"enum":if(typeof r=="string"&&nva({schema:n,value:r}))return Mc.enum(r);if(r!=null){let c=n.values.map(l=>l.value),u=e.truncateExample(r);this.context.logger.debug(`Example value ${u} is not a valid enum value${s.name!=null?` for '${s.name}'`:""}. Allowed values: [${c.join(", ")}]. Using fallback value instead.`)}return n.values[0]!=null?Mc.enum(n.values[0]?.value):void 0;case"literal":return Mc.literal(n.value);case"nullable":{if(r===null)return Mc.null({});if(r==null&&!this.hasExample(n.value,0,o,s)&&this.exceedsMaxDepth(i,s))return Mc.null({});let c=this.buildExampleHelper({schema:n.value,visitedSchemaIds:o,exampleId:t,example:r,depth:i,options:s,skipReadonly:a});return c??Mc.null({})}case"optional":{if(r==null&&!this.hasExample(n.value,0,o,s)&&(s.ignoreOptionals||this.exceedsMaxDepth(i,s))||Object.is(r,null))return;let c=this.buildExampleHelper({schema:n.value,visitedSchemaIds:o,exampleId:t,example:r,depth:i,options:s,skipReadonly:a});return c!=null&&c.type==="array"&&c.value.length===0||c!=null&&c.type==="map"&&c.value.length===0||c!=null&&c.type==="object"&&Object.keys(c.properties).length===0?void 0:c}case"primitive":{let c=this.buildExampleFromPrimitive({schema:n.schema,example:r,options:s});return Mc.primitive(c)}case"reference":{let c=this.schemas[n.schema];if(c!=null&&!o.has(n.schema)){o.add(n.schema);let u=c?.type==="object"&&!this.nonRequestReferencedSchemas.has(n.schema),l=this.buildExampleHelper({example:r,schema:c,exampleId:t,visitedSchemaIds:o,depth:i,options:s,skipReadonly:u||this.context.options.respectReadonlySchemas?a:!1});return o.delete(n.schema),l}return}case"oneOf":switch(n.value.type){case"discriminated":{let c={},u={},l={},p=g2t(r),d=p?.[n.value.discriminantProperty],f=n.value.schemas[d],m=[],h=this.getDiscriminatedUnionVariantSchema(n.value,p);h!=null&&m.push(h),m.push(...Object.entries(n.value.schemas));for(let A of m)if(d!=null&&f!=null&&f.type==="object"){u=this.getAllProperties(f),l=this.getAllRequiredProperties(f),c[n.value.discriminantProperty]=Mc.primitive(zo.string(d));break}else{let y=this.buildExampleHelper({exampleId:t,schema:A[1],example:void 0,visitedSchemaIds:o,depth:i,options:s,skipReadonly:a});if(y!=null){this.mergeExampleWith(y,c),c[n.value.discriminantProperty]=Mc.primitive(zo.string(A[0]));break}}for(let A of n.value.commonProperties){u[A.key]={schema:A.schema,readonly:!1};let y=this.getResolvedSchema(A.schema);y.type!=="optional"&&y.type!=="nullable"&&(l[A.key]=A.schema)}for(let[A,y]of Object.entries(u)){let I=A in l;if(I&&p?.[A]!=null){let w=this.buildExampleHelper({schema:y.schema,exampleId:t,example:p[A],visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});if(w!=null)c[A]=w;else return}else{let w=this.buildExampleHelper({exampleId:t,schema:y.schema,example:p?.[A],visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});if(w!=null)c[A]=w;else if(I)return}}return Mc.oneOf(Yye.discriminated(c))}case"undiscriminated":{let c=this.getUnDiscriminatedUnionVariantSchema(n.value,r);if(c!=null)return this.buildExampleHelper({exampleId:t,example:r,schema:c,visitedSchemaIds:o,depth:i,options:s,skipReadonly:a});break}}return;case"unknown":if(r!=null){let c=mbe(r);if(c!=null)return Mc.unknown(c)}return s.ignoreOptionals||this.exceedsMaxDepth(i,s)?void 0:s.isParameter?Mc.primitive(zo.string(s.name??"string")):Mc.map([{key:zo.string("key"),value:Mc.primitive(zo.string("value"))}]);case"array":{let c=rva(r),u=[];if(c!=null&&c.length>0)for(let l of c){let p=this.buildExampleHelper({exampleId:t,example:l,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});p!=null&&u.push(p)}else if(n.example!=null&&n.example.length>0)for(let l of n.example){let p=this.buildExampleHelper({exampleId:t,example:l,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});p!=null&&u.push(p)}else{let l=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,depth:i+1,visitedSchemaIds:o,options:s,skipReadonly:a});l!=null&&u.push(l)}return Mc.array(u)}case"map":{let c=g2t(r??n.example);if(c!=null&&Object.entries(c).length>0){let p=[];for(let[d,f]of Object.entries(c)){let m=this.buildExampleFromPrimitive({schema:n.key.schema,example:d,options:s}),h=this.buildExampleHelper({exampleId:t,example:f,schema:n.value,visitedSchemaIds:o,depth:i+1,options:s,skipReadonly:a});h!=null&&p.push({key:m,value:h})}return Mc.map(p)}if(n.key.schema.type==="string"&&n.value.type==="unknown")return Mc.map([{key:zo.string("key"),value:Mc.unknown(Mc.primitive(zo.string("value")))}]);let u=this.buildExampleFromPrimitive({schema:n.key.schema,example:void 0,options:{...s,name:"key"}}),l=this.buildExampleHelper({exampleId:t,example:void 0,schema:n.value,visitedSchemaIds:o,depth:i+1,options:{...s,name:"value"},skipReadonly:a});return l!=null&&l.type!=="null"?Mc.map([{key:u,value:l}]):Mc.map([])}case"object":{let c={},u=n.fullExamples?.find(f=>f.name===t)??n.fullExamples?.find(f=>f.name==null)??n.fullExamples?.[0],l=g2t(r)??(u!=null?g2t(u.value):{})??{},p=this.getAllProperties(n),d=this.getAllRequiredProperties(n);for(let[f,m]of Object.entries(p)){if(a&&m.readonly||m.schema._visit({optional:x=>typeof x.availability=="string"&&x.availability==="Deprecated",primitive:()=>!1,object:()=>!1,array:()=>!1,map:()=>!1,enum:()=>!1,reference:()=>!1,literal:()=>!1,oneOf:()=>!1,nullable:()=>!1,unknown:()=>!1,_other:()=>!1}))continue;let h=f in d,A=Object.keys(l).includes(f),y=l[f],I=this.getSchemaExample(m.schema),w=A?y:I,C=this.buildExampleHelper({schema:m.schema,exampleId:t,example:w,visitedSchemaIds:o,depth:i+1,options:{...s,name:f},skipReadonly:a});if(h&&C!=null)c[f]=C;else{if(h)return;(A&&C!=null||!s.ignoreOptionals&&C!=null)&&(c[f]=C)}}if(n.additionalProperties){for(let[f,m]of Object.entries(l))if(!(f in c)){let h=this.buildExampleHelper({schema:zr.unknown({example:m,title:void 0,availability:void 0,description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0}),exampleId:t,example:m,visitedSchemaIds:o,depth:i+1,options:{...s,name:f},skipReadonly:a});h!=null&&(c[f]=h)}}return Mc.object({properties:c})}default:we(n)}}mergeExampleWith(t,r){t._visit({array:vt,enum:vt,literal:vt,map:n=>{for(let i of n){let o=i.key;o.type==="string"&&(r[o.value]=i.value)}},object:n=>{for(let[i,o]of Object.entries(n.properties))r[i]=o},oneOf:n=>{if(n.type==="discriminated")for(let[i,o]of Object.entries(n.value))r[i]=o;else this.mergeExampleWith(n.value,r)},primitive:vt,unknown:vt,null:vt,_other:vt})}getObjectSchema(t){if(t.type==="object")return t;if(t.type==="reference"){let r=this.schemas[t.schema];if(r!=null)return this.getObjectSchema(r)}}getDiscriminatedUnionVariantSchema(t,r){let n=r?.[t.discriminantProperty];if(n==null||typeof n!="string")return Object.entries(t.schemas)[0];let i=t.schemas[n];return i==null?Object.entries(t.schemas)[0]:[n,i]}getUnDiscriminatedUnionVariantSchema(t,r){if(r==null){let o=t.schemas.find(a=>this.hasExample(a,0,new Set,{ignoreOptionals:!1,isParameter:!1}));if(o!=null)return o;let s=t.schemas.find(a=>this.hasInherentExample(a));return s??t.schemas[0]}return t.schemas.map(o=>({schema:o,heuristic:this.calcExampleHeuristic(o,r)})).sort((o,s)=>s.heuristic-o.heuristic)[0]?.schema}calcExampleHeuristic(t,r){switch(t.type){case"literal":return t.value.value===r?5:0;case"enum":return nva({schema:t,value:r})?5:0;case"object":{if(!xo(r))return 0;let n=this.getAllProperties(t),i=0;for(let[o,s]of Object.entries(n))r[o]!=null?(i++,i+=this.calcExampleHeuristic(s.schema,r[o])):i--;return i}case"array":{if(!Array.isArray(r))return 0;let n=0;for(let i of r)n+=this.calcExampleHeuristic(t.value,i);return n}case"map":{if(!xo(r))return 0;let n=0;for(let[,i]of Object.entries(r))n+=this.calcExampleHeuristic(t.value,i);return n}case"nullable":case"optional":return this.calcExampleHeuristic(t.value,r);case"reference":{let n=this.getResolvedSchema(t);return n==null?0:this.calcExampleHeuristic(n,r)}case"oneOf":return Object.values(t.value.schemas).map(i=>this.calcExampleHeuristic(i,r)).sort((i,o)=>o-i)[0]??0;case"primitive":return r==null?0:t.schema._visit({int:()=>typeof r=="number",int64:()=>typeof r=="number",uint:()=>typeof r=="number",uint64:()=>typeof r=="number",float:()=>typeof r=="number",double:()=>typeof r=="number",string:()=>typeof r=="string",datetime:()=>typeof r=="string",datetimeRfc2822:()=>typeof r=="string",date:()=>typeof r=="string",base64:()=>typeof r=="string",boolean:()=>typeof r=="boolean",_other:()=>!0})?1:-1;default:return 0}}hasExample(t,r,n=new Set,i){if(this.exceedsMaxCheckerDepth(r,i))return!1;switch(t.type){case"array":return this.hasExample(t.value,r+1,n,i);case"enum":return t.example!=null;case"literal":return!1;case"map":return t.example!=null||t.key.schema.example!=null&&this.hasExample(t.value,r+1,n,i);case"object":{if(t.fullExamples!=null&&t.fullExamples.length>0)return!0;for(let s of t.properties)if(this.hasExample(s.schema,r+1,n,i))return!0;return!1}case"primitive":return t.schema.example!=null;case"reference":{let o=this.schemas[t.schema];if(o!=null&&!n.has(t.schema)){n.add(t.schema);let s=this.hasExample(o,r,n,i);return n.delete(t.schema),s}return!1}case"unknown":return t.example!=null;case"nullable":case"optional":return this.hasExample(t.value,r,n,i);case"oneOf":return Object.values(t.value.schemas).some(o=>this.hasExample(o,r,n,i));default:return!1}}hasInherentExample(t){switch(t.type){case"literal":return!0;case"enum":return t.values.length>0;case"optional":case"nullable":return this.hasInherentExample(t.value);case"reference":{let r=this.schemas[t.schema];return r!=null?this.hasInherentExample(r):!1}default:return!1}}exceedsMaxCheckerDepth(t,r){return t>(r.maxCheckerDepth??0)}exceedsMaxDepth(t,r){return t>(r.maxDepth??0)}getAllProperties(t){let r={};for(let n of t.properties)r[n.key]={schema:n.schema,readonly:n.readonly??!1};for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let o=this.getResolvedSchema(i);o.type==="object"&&(r={...this.getAllProperties(o),...r})}return r}getAllRequiredProperties(t){let r={};for(let n of t.properties){let i=this.getResolvedSchema(n.schema);i.type!=="optional"&&i.type!=="nullable"&&(r[n.key]=n.schema)}for(let n of t.allOf){let i=this.schemas[n.schema];if(i==null)continue;let o=this.getResolvedSchema(i);o.type==="object"&&(r={...this.getAllRequiredProperties(o),...r})}return r}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new F({message:`Unexpected error: Failed to resolve schema reference: ${t.schema}`,code:F.Code.InternalError});t=r}return t}getSchemaExample(t){return t._visit({primitive:r=>r.schema.example,object:r=>r.fullExamples?.[0]?.value,array:r=>r.example,map:r=>r.example,optional:r=>this.getSchemaExample(r.value),enum:r=>r.example,reference:r=>{let n=this.schemas[r.schema];return n!=null?this.getSchemaExample(n):void 0},literal:()=>{},oneOf:()=>{},nullable:r=>this.getSchemaExample(r.value),unknown:r=>r.example,_other:()=>{}})}buildExampleFromPrimitive({example:t,schema:r,options:n}){switch(r.type){case"string":return t!=null&&typeof t=="string"?zo.string(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"string",schemaType:r.type,options:n}),zo.string(r.example??n.name??Ki.STRING));case"base64":return t!=null&&typeof t=="string"?zo.base64(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"string (base64)",schemaType:r.type,options:n}),zo.base64(r.example??Ki.BASE64));case"boolean":return t!=null&&typeof t=="boolean"?zo.boolean(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"boolean",schemaType:r.type,options:n}),zo.boolean(r.example??Ki.BOOLEAN));case"date":return t!=null&&typeof t=="string"?zo.date(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"string (date)",schemaType:r.type,options:n}),zo.date(r.example??Ki.DATE));case"datetime":return t!=null&&typeof t=="string"?zo.datetime(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"string (datetime)",schemaType:r.type,options:n}),zo.datetime(r.example??Ki.DATE_TIME));case"datetimeRfc2822":return t!=null&&typeof t=="string"?zo.datetimeRfc2822(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"string (datetime RFC 2822)",schemaType:r.type,options:n}),zo.datetimeRfc2822(r.example??Ki.DATE_TIME_RFC_2822));case"double":return t!=null&&typeof t=="number"?zo.double(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (double)",schemaType:r.type,options:n}),zo.double(r.example??Ki.DOUBLE));case"float":return t!=null&&typeof t=="number"?zo.float(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (float)",schemaType:r.type,options:n}),zo.float(r.example??Ki.FLOAT));case"int":return t!=null&&typeof t=="number"?zo.int(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (int)",schemaType:r.type,options:n}),zo.int(r.example??Ki.INT));case"int64":return t!=null&&typeof t=="number"?zo.int64(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (int64)",schemaType:r.type,options:n}),zo.int64(r.example??Ki.INT64));case"uint":return t!=null&&typeof t=="number"?zo.uint(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (uint)",schemaType:r.type,options:n}),zo.uint(r.example??Ki.UINT));case"uint64":return t!=null&&typeof t=="number"?zo.uint64(t):(t!=null&&this.warnTypeMismatch({example:t,expected:"number (uint64)",schemaType:r.type,options:n}),zo.uint64(r.example??Ki.UINT64));default:we(r)}}warnTypeMismatch({example:t,expected:r,schemaType:n,options:i}){let o=i.name!=null?` for '${i.name}'`:"",s=typeof t,a=e.truncateExample(t);this.context.logger.debug(`Invalid example${o}: expected ${r} but got ${s} (${a}). The provided example does not match the '${n}' schema and will be replaced with a generated value.`)}static truncateExample(t,r=100){let n=JSON.stringify(t);return n.length<=r?n:n.slice(0,r)+"..."}};function nva({schema:e,value:t}){return e.values.map(r=>r.value).includes(t)}jt();function p_(e){switch(e.type){case"object":return zr.object({allOf:e.allOf,properties:e.properties.map(t=>sCp(t)),allOfPropertyConflicts:e.allOfPropertyConflicts,description:e.description,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,namespace:e.namespace,groupName:e.groupName,fullExamples:void 0,additionalProperties:e.additionalProperties,availability:e.availability,encoding:e.encoding,source:e.source,inline:void 0,minProperties:e.minProperties,maxProperties:e.maxProperties});case"array":return zr.array({description:e.description,availability:e.availability,value:p_(e.value),generatedName:e.generatedName,title:e.title,namespace:e.namespace,nameOverride:e.nameOverride,groupName:e.groupName,example:void 0,inline:void 0,minItems:e.minItems,maxItems:e.maxItems,default:e.default});case"enum":return zr.enum({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,values:e.values,default:e.default,namespace:e.namespace,groupName:e.groupName,example:void 0,source:e.source,inline:void 0});case"literal":return zr.literal({description:e.description,availability:e.availability,value:e.value,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,namespace:e.namespace,groupName:e.groupName});case"nullable":return zr.nullable({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:p_(e.value),namespace:e.namespace,groupName:e.groupName,inline:void 0});case"optional":return zr.optional({generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,description:e.description,availability:e.availability,value:p_(e.value),namespace:e.namespace,groupName:e.groupName,inline:void 0});case"primitive":return zr.primitive({description:e.description,availability:e.availability,schema:iva(e.schema),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,namespace:e.namespace,groupName:e.groupName});case"map":return zr.map({description:e.description,availability:e.availability,key:zr.primitive({description:e.key.description,availability:e.key.availability,schema:iva(e.key.schema),generatedName:e.key.generatedName,nameOverride:e.key.nameOverride,title:e.key.title,namespace:e.namespace,groupName:e.groupName}),value:p_(e.value),generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,example:void 0,inline:void 0,minProperties:e.minProperties,maxProperties:e.maxProperties});case"reference":return zr.reference({description:e.description,availability:e.availability,generatedName:e.generatedName,title:e.title,nameOverride:e.nameOverride,schema:e.schema,namespace:e.namespace,groupName:e.groupName,source:e.source});case"oneOf":return zr.oneOf(oCp(e.value));case"unknown":return zr.unknown({nameOverride:e.nameOverride,generatedName:e.generatedName,title:e.title,example:void 0,namespace:e.namespace,groupName:e.groupName,description:e.description,availability:e.availability});default:we(e)}}function oCp(e){switch(e.type){case"discriminated":return w3.discriminated({commonProperties:e.commonProperties.map(t=>({key:t.key,schema:p_(t.schema)})),description:e.description,availability:e.availability,discriminantProperty:e.discriminantProperty,discriminantPropertyNameOverride:e.discriminantPropertyNameOverride,discriminatorContext:e.discriminatorContext,defaultDiscriminantValue:e.defaultDiscriminantValue,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,schemas:Object.fromEntries(Object.entries(e.schemas).map(([t,r])=>[t,p_(r)])),namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,source:e.source,inline:void 0});case"undiscriminated":return w3.undiscriminated({description:e.description,availability:e.availability,generatedName:e.generatedName,nameOverride:e.nameOverride,title:e.title,commonProperties:e.commonProperties?.map(t=>({key:t.key,schema:p_(t.schema)})),schemas:e.schemas.map(t=>p_(t)),namespace:e.namespace,groupName:e.groupName,encoding:e.encoding,source:e.source,inline:void 0});default:we(e)}}function iva(e){switch(e.type){case"string":return $i.string({default:e.default,pattern:e.pattern,format:e.format,minLength:e.minLength,maxLength:e.maxLength,example:void 0});case"base64":return $i.base64({example:void 0});case"boolean":return $i.boolean({default:e.default,example:void 0});case"date":return $i.date({example:void 0});case"datetime":return $i.datetime({example:void 0});case"datetimeRfc2822":return $i.datetimeRfc2822({example:void 0});case"double":return $i.double({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"float":return $i.float({example:void 0});case"int":return $i.int({default:e.default,minimum:e.minimum,maximum:e.maximum,exclusiveMinimum:e.exclusiveMinimum,exclusiveMaximum:e.exclusiveMaximum,multipleOf:e.multipleOf,example:void 0});case"int64":return $i.int64({default:e.default,example:void 0});case"uint":return $i.uint({default:void 0,example:void 0});case"uint64":return $i.uint64({default:void 0,example:void 0});default:we(e)}}function sCp(e){return{conflict:e.conflict,generatedName:e.generatedName,key:e.key,schema:p_(e.schema),audiences:e.audiences,nameOverride:e.nameOverride,availability:e.availability,readonly:e.readonly,writeonly:e.writeonly}}function dxr(e){return e.type!=="optional"&&e.type!=="nullable"}function i4i(e){return e==="POST"||e==="PUT"||e==="PATCH"}function A2t(e){if(e.type==="full")return e.request==null&&e.response==null&&e.queryParameters==null&&e.pathParameters==null&&e.headers==null;{let t=e.value;return t.request==null&&t.response==null&&t["query-parameters"]==null&&t["path-parameters"]==null&&t.headers==null}}var mxr=class{schemas;context;globalHeaders;exampleTypeFactory;logger;missingExamples=[];constructor(t,r,n){this.schemas=t,this.context=r,this.globalHeaders=n,this.schemas=t,this.exampleTypeFactory=new hbe(t,r.nonRequestReferencedSchemas,r),this.logger=r.logger}addMissingExampleRecord(t,r,n,i,o={}){this.missingExamples.push({endpoint:t.path,method:t.method.toUpperCase(),type:r,schemaType:n,reason:i,operationSummary:t.summary,operationDescription:t.description,schemaDescription:o.schemaDescription,autoGeneratedExample:o.autoGeneratedExample})}writeMissingExamplesLog(){if(this.missingExamples.length===0)return;let t;if(this.context.source.type==="openapi"){let o=this.context.source.file,s=HNe.dirname(o),a=s;for(;a!==HNe.dirname(a);){let c=HNe.join(a,"fern");if(OYe.existsSync(c)&&OYe.statSync(c).isDirectory()){t=c;break}a=HNe.dirname(a)}t||(t=s)}else t=process.cwd();let r=t??process.cwd(),n=HNe.join(r,"schemas_missing_examples.txt"),i=["# Schemas Missing Examples Report",`# Generated on: ${new Date().toISOString()}`,`# Total missing examples: ${this.missingExamples.length}`,"",...this.missingExamples.flatMap(o=>{let s=[];if(s.push(`${o.method} ${o.endpoint} - ${o.type.toUpperCase()} (${o.schemaType}): ${o.reason}`),o.operationSummary&&s.push(` Operation: ${o.operationSummary}`),o.operationDescription&&o.operationDescription!==o.operationSummary&&s.push(` Description: ${o.operationDescription}`),o.schemaDescription&&s.push(` ${o.type==="request"?"Request":"Response"} Schema: ${o.schemaDescription}`),o.autoGeneratedExample){s.push(" Auto-generated example:");let c=JSON.stringify(o.autoGeneratedExample,null,4).split(`
|
|
3022
3022
|
`).map(u=>` ${u}`).join(`
|
|
3023
3023
|
`);s.push(c)}return s.push(""),s}),""].join(`
|
|
3024
|
-
`);try{OYe.writeFileSync(n,i,"utf8"),this.logger.info(`Missing examples report written to: ${n}`)}catch(o){this.logger.warn(`Failed to write missing examples report to ${n}:`,String(o))}}finalize(){}convertExampleToJson(t){switch(t.type){case"primitive":return t.value;case"array":return t.value.map(r=>this.convertExampleToJson(r));case"object":{let r={};return Object.entries(t.properties).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"map":{let r={};return t.value.forEach(n=>{r[String(n.key)]=this.convertExampleToJson(n.value)}),r}case"oneOf":if(t.value.type==="undiscriminated")return this.convertExampleToJson(t.value.value);{let r={};return Object.entries(t.value.value).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"enum":return t.value;case"literal":return t.value;case"null":return null;case"unknown":return this.convertExampleToJson(t.value);default:return t}}getSchemaDescription(t){if("description"in t)return t.description}getSchemaTypeName(t){switch(t.type){case"primitive":return`primitive (${t.schema.type})`;case"object":return t.generatedName||"object";case"array":return"array";case"map":return"map";case"optional":return`optional (${this.getSchemaTypeName(t.value)})`;case"nullable":return`nullable (${this.getSchemaTypeName(t.value)})`;case"reference":return t.generatedName||"reference";case"enum":return t.generatedName||"enum";case"literal":return"literal";case"oneOf":return"oneOf";case"unknown":return"unknown";default:return"unknown"}}buildEndpointExample(t){let r=cCp(t.request),n=uCp(t.response);if(r?.type==="unsupported"||n?.type==="unsupported")return[];let i=[];if(r!=null&&r.type==="present"){let p=this.isSchemaRequired(r.schema);if(r.examples.length===0){let d=this.exampleTypeFactory.buildExample({skipReadonly:i4i(t.method),schema:r.schema,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});d!=null?(i.push([void 0,d]),this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(r.schema),autoGeneratedExample:this.convertExampleToJson(d)})):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(r.schema)})}else for(let{name:d,value:f}of r.examples){let m=this.exampleTypeFactory.buildExample({skipReadonly:i4i(t.method),schema:r.schema,exampleId:d,example:f,options:{isParameter:!1,ignoreOptionals:!0}});m!=null?i.push([d,m]):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),`Failed to build example from provided data (example id: ${d})`,{schemaDescription:this.getSchemaDescription(r.schema)})}if(p&&i.length===0)return this.logger.trace(`Failed to generate required request example for ${t.method.toUpperCase()} ${t.path}`),[]}let o=[];if(n!=null&&n.type==="present"){let p=this.isSchemaRequired(n.schema);if(n.examples.length===0){let d=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:void 0,example:void 0,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});d!=null?(t.response?.type==="json"?o.push([void 0,s_.withoutStreaming(d)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,s_.withStreaming({sse:t.response?.type==="streamingSse",events:[d]})]),this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(n.schema),autoGeneratedExample:this.convertExampleToJson(d)})):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(n.schema)})}else for(let{name:d,value:f}of n.examples){let m=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:d,example:f,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});m!=null?t.response?.type==="json"?o.push([d,s_.withoutStreaming(m)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,s_.withStreaming({sse:t.response?.type==="streamingSse",events:[m]})]):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),`Failed to build example from provided data (example id: ${d})`,{schemaDescription:this.getSchemaDescription(n.schema)})}if(p&&o.length===0)return this.logger.trace(`Failed to generate required response example for ${t.method.toUpperCase()} ${t.path}`),[]}let s=[];for(let p of t.pathParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for path parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&s.push({name:p.name,parameterNameOverride:p.parameterNameOverride,value:f})}let a=[];for(let p of t.queryParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&f.type!=="array"&&(this.logger.debug(`Expected a primitive or array example but got ${f.type} for query parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&a.push({name:p.name,value:f})}let c=[];for(let p of t.headers){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for header ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&c.push({name:p.name,value:f})}for(let p of this.globalHeaders){let d=p.schema!=null?p_(p.schema):zr.primitive({nameOverride:void 0,generatedName:"",title:void 0,description:void 0,availability:void 0,namespace:void 0,groupName:void 0,schema:$i.string({default:void 0,pattern:void 0,maxLength:void 0,minLength:void 0,example:void 0,format:void 0})}),f=this.exampleTypeFactory.buildExample({schema:d,exampleId:void 0,example:void 0,options:{name:p.header,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for global header ${p.header} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),f!=null&&c.push({name:p.header,value:f})}let u=[];t.request!=null&&t.response!=null?u=aCp(i,o):t.request!=null?u=i.map(([p,d])=>({id:p,request:d,response:void 0})):t.response!=null&&(u=o.map(([p,d])=>({id:p,request:void 0,response:d})));let l=t.examples.filter(p=>A2t(p)).flatMap(p=>{if(p.type==="unknown"){if(p.value!=null){let d=p.value["code-samples"];if(d!=null)return this.convertCodeSamples(d)}return}else return p.codeSamples}).filter(p=>Ha(p));return u.length===0?[o_.full({name:void 0,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:void 0,response:void 0,codeSamples:l})]:u.map(({id:p,request:d,response:f})=>o_.full({name:p,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:d,response:f,codeSamples:l}))}convertCodeSamples(t){return t.map(r=>"language"in r?kY.language({name:r.name??void 0,description:r.docs??void 0,language:r.language,code:r.code,install:r.install??void 0}):kY.sdk({name:r.name??void 0,description:r.docs??void 0,sdk:r.sdk==="c#"?A1.Csharp:r.sdk,code:r.code})).filter(Ha)}isSchemaRequired(t){return dxr(this.getResolvedSchema(t))}getResolvedSchema(t){return t}};function aCp(e,t){let r=[];if(e.length<=1){let[i,o]=e[0]??[];if(t.length===0)return r.push({id:i,request:o,response:void 0}),r;for(let[s,a]of t)r.push({id:s??i,request:o,response:a});return r}if(t.length<=1){let[i,o]=t[0]??[];if(t.length===0)return r.push({id:i,request:void 0,response:o}),r;for(let[s,a]of e)r.push({id:s??i,request:a,response:o});return r}let n=new Set;for(let[i,o]of e){let s=t.find(([c])=>c==null)?.[1]??t[0]?.[1];if(i==null){if(s==null)continue;r.push({id:void 0,request:o,response:s});continue}let a=!1;for(let c=0;c<t.length;c++){let[u,l]=t[c];u==null||n.has(c)||i===u&&(r.push({id:i,request:o,response:l}),u!=null&&n.add(c),a=!0)}!a&&s!=null&&r.push({id:i,request:o,response:s})}for(let i=0;i<t.length;i++){if(n.has(i))continue;let[o,s]=t[i],a=e.find(([c])=>c==null)?.[1]??e[0]?.[1];a!=null&&r.push({id:o,request:a,response:s})}return r}function cCp(e){if(e!=null)return e.type==="multipart"?{type:"present",schema:lCp(e),examples:[]}:e.type==="json"||e.type==="formUrlEncoded"?{type:"present",schema:e.schema,examples:e.fullExamples??[]}:{type:"unsupported"}}function uCp(e){if(e!=null)return e.type!=="json"&&e.type!=="streamingJson"&&e.type!=="streamingSse"?{type:"unsupported"}:{type:"present",schema:e.schema,examples:e.fullExamples??[]}}function B9(e){switch(e.type){case"primitive":case"enum":case"literal":return!0;case"unknown":return B9(e);case"array":case"object":case"map":return!1;case"oneOf":switch(e.value.type){case"discriminated":return!1;case"undiscriminated":return B9(e.value.value);default:return!1}case"null":return!0;default:we(e)}}function lCp(e){return zr.object({properties:e.properties.map(t=>t.schema.type==="file"?null:{key:t.key,schema:p_(t.schema.value),audiences:[],conflict:{},generatedName:t.key,nameOverride:void 0,availability:void 0,readonly:void 0,writeonly:void 0,inline:void 0}).filter(Ha),allOf:[],allOfPropertyConflicts:[],fullExamples:void 0,description:e.description,nameOverride:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,additionalProperties:!1,availability:void 0,encoding:void 0,source:e.source,inline:void 0,minProperties:void 0,maxProperties:void 0})}var PYe=class{exampleTypeFactory;schemas;constructor(t,r){this.exampleTypeFactory=new hbe(t,new Set,r),this.schemas=t}buildWebsocketSessionExamplesForExtension({context:t,extensionExamples:r,handshake:n,source:i,namespace:o}){let s=[];for(let a of r){let c=[];for(let p of n.queryParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.queryParameters?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(f=void 0),!(d&&f==null)&&f!=null&&c.push({name:p.name,value:f})}let u=[];for(let p of n.headers){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.headers?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(f=void 0),!(d&&f==null)&&f!=null&&u.push({name:p.name,value:f})}let l=[];for(let p of a.messages){let d=t.getExampleMessageReference(p),f=t.resolveMessageReference({$ref:d}),m=Hn(f.payload)?t.resolveSchemaReference(f.payload):f.payload,h=this.exampleTypeFactory.buildExample({schema:fc(m,!1,!1,t,[p.messageId],i,o),exampleId:void 0,example:p.value,options:{isParameter:!1,ignoreOptionals:!0}});h!=null&&l.push({messageType:p.type,payload:h,description:void 0})}s.push({name:a.summary,queryParameters:c,headers:u,description:a.description,messages:l})}return s}buildWebsocketSessionExample({handshake:t,messages:r}){let n={name:void 0,queryParameters:[],headers:[],description:void 0,messages:[]},i=[];for(let s of t.queryParameters){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!B9(c)&&(c=void 0),a&&c==null)return;c!=null&&i.push({name:s.name,value:c})}let o=[];for(let s of t.headers){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!B9(c)&&(c=void 0),a&&c==null)return;c!=null&&o.push({name:s.name,value:c})}for(let s of r){let a=this.exampleTypeFactory.buildExample({schema:s.payload,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});a!=null&&n.messages.push({messageType:s.type,payload:a,description:void 0})}return n}isSchemaRequired(t){return dxr(this.getResolvedSchema(t))}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new F({message:`Unexpected error: Failed to resolve schema reference: ${t.schema}`,code:F.Code.InternalError});t=r}return t}};var Ly={FERN_PARAMETER_OPTIONAL:"x-fern-optional",FERN_CHANNEL_ADDRESS:"x-fern-address",FERN_DISPLAY_NAME:"x-fern-display-name",FERN_SDK_GROUP_NAME:"x-fern-sdk-group-name",FERN_SDK_METHOD_NAME:"x-fern-sdk-method-name",FERN_EXAMPLES:"x-fern-examples",BASE_PATH:"x-fern-base-path",FERN_ENUM:"x-fern-enum",IGNORE:"x-fern-ignore",FERN_PARAMETER_NAME:"x-fern-parameter-name",FERN_SERVER_NAME:"x-fern-server-name"};function hxr(e){return Lr(e,Ly.FERN_EXAMPLES)??[]}function gxr(e,t){return t.includes("://")?t:`${e}://${t}`}function Axr(e){return e.startsWith("/")?e:"/"+e}function ava({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){let o={},s={};for(let[u,l]of Object.entries(i.components?.schemas??{})){let p=fc(l,!1,!1,e,[u],r,e.namespace);o[u]=p}let a=new PYe(o,e),c={};for(let[u,l]of Object.entries(i.servers??{})){let p=Lr(l,Ly.FERN_SERVER_NAME);c[u]={name:p??u,url:gxr(l.protocol,l.url)}}for(let[u,l]of Object.entries(i.channels??{})){let p=Lr(l,Ly.IGNORE);if(p!=null&&p){e.logger.debug(`Channel ${u} is marked with x-fern-ignore. Skipping.`);continue}let d=[];if(l.parameters!=null)for(let[y,I]of Object.entries(l.parameters??{})){let w=Lr(I,Ly.FERN_PARAMETER_NAME);d.push({name:y,description:I.description,parameterNameOverride:w,schema:I.schema!=null?fc(I.schema,!1,!1,e,t,r,e.namespace):zr.primitive({schema:$i.string({default:void 0,pattern:void 0,format:void 0,maxLength:void 0,minLength:void 0,example:void 0}),description:void 0,availability:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}),variableReference:void 0,availability:yw(I),source:r,explode:void 0,clientDefault:void 0})}let f=[],m=[];if(l.bindings?.ws!=null){if(l.bindings.ws.headers!=null){let y=l.bindings.ws.headers.required??[];for(let[I,w]of Object.entries(l.bindings.ws.headers.properties??{})){if(Hn(w)){let O=e.resolveSchemaReference(w),k=y.includes(I),[P,U]=e.options.coerceOptionalSchemasToNullable?[!1,!k]:[!k,!1];f.push({name:I,schema:x3(w,P,U,e,t,void 0,r,e.namespace),description:O.description,parameterNameOverride:void 0,env:void 0,availability:yw(O),source:r,clientDefault:void 0});continue}let C=y.includes(I),[x,B]=e.options.coerceOptionalSchemasToNullable?[!1,!C]:[!C,!1];f.push({name:I,schema:fc(w,x,B,e,[...t,I],r,e.namespace),description:w.description,parameterNameOverride:void 0,env:void 0,availability:yw(w),source:r,clientDefault:void 0})}}if(l.bindings.ws.query!=null){let y=l.bindings.ws.query.required??[];for(let[I,w]of Object.entries(l.bindings.ws.query.properties??{})){if(Hn(w)){let O=e.resolveSchemaReference(w),k=y.includes(I),[P,U]=e.options.coerceOptionalSchemasToNullable?[!1,!k]:[!k,!1];m.push({name:I,schema:x3(w,P,U,e,t,void 0,r,e.namespace),description:O.description,parameterNameOverride:void 0,availability:yw(O),source:r,explode:void 0,clientDefault:void 0});continue}let C=y.includes(I),[x,B]=e.options.coerceOptionalSchemasToNullable?[!1,!C]:[!C,!1];m.push({name:I,schema:fc(w,x,B,e,[...t,I],r,e.namespace),description:w.description,parameterNameOverride:void 0,availability:yw(w),source:r,explode:void 0,clientDefault:void 0})}}}let h;l.publish!=null&&("oneOf"in l.publish.message?h=ova({generatedName:l.publish.operationId??"PublishEvent",event:l.publish,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):h=sva({action:"Publish",channelPath:u,message:l.publish.message,context:e,source:r}));let A;if(l.subscribe!=null&&("oneOf"in l.subscribe.message?A=ova({generatedName:l.subscribe.operationId??"SubscribeEvent",event:l.subscribe,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):A=sva({action:"Subscribe",channelPath:u,message:l.subscribe.message,context:e,source:r})),f.length>0||m.length>0||h!=null||A!=null){let y=hxr(l),I=[];if(y.length>0)I=a.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:y,handshake:{headers:f,queryParameters:m},source:r,namespace:e.namespace});else{let B=[];h!=null&&B.push({type:"publish",payload:h}),A!=null&&B.push({type:"subscribe",payload:A});let O=a.buildWebsocketSessionExample({handshake:{headers:f,queryParameters:m},messages:B});O!=null&&I.push(O)}let w=Lr(l,Ly.FERN_CHANNEL_ADDRESS),C=w??Axr(u),x=[];h!=null&&x.push({origin:"client",name:"publish",displayName:l.publish!=null?Lr(l.publish,Ly.FERN_DISPLAY_NAME):void 0,body:fd(h),methodName:l.publish!=null?Lr(l.publish,Ly.FERN_SDK_METHOD_NAME):void 0}),A!=null&&x.push({origin:"server",name:"subscribe",displayName:l.subscribe!=null?Lr(l.subscribe,Ly.FERN_DISPLAY_NAME):void 0,body:fd(A),methodName:l.subscribe!=null?Lr(l.subscribe,Ly.FERN_SDK_METHOD_NAME):void 0}),s[u]={audiences:Lr(l,kn.AUDIENCES)??[],handshake:{headers:f.map(B=>({...B,schema:fd(B.schema),env:B.env})),queryParameters:m.map(B=>({...B,schema:fd(B.schema)})),pathParameters:d.map(B=>({...B,schema:fd(B.schema)}))},groupName:e.resolveGroupName([Lr(l,Ly.FERN_SDK_GROUP_NAME)??u]),messages:x,servers:(l.servers?.map(B=>c[B])??Object.values(c)).filter(B=>B!=null&&B.name!=null).map(B=>({...B,name:B.name})),summary:Lr(l,Ly.FERN_DISPLAY_NAME),connectMethodName:Lr(l,Ly.FERN_SDK_METHOD_NAME),path:C,description:l.description,examples:I,source:r}}}return{groupedSchemas:BYe(e.namespace,o),channels:s??void 0,servers:Object.values(c).map(u=>({...u,name:u.name})),basePath:Lr(i,Ly.BASE_PATH)}}function ova({generatedName:e,event:t,context:r,breadcrumbs:n,source:i,options:o,asyncApiOptions:s}){if("oneOf"in t.message&&t.message.oneOf!=null){let a=[],c=[];for(let u of t.message.oneOf){let l,p={type:"notFound"};if(Hn(u)){let d=r.resolveMessageReference(u);!Hn(d.payload)&&s.naming==="v2"?(p=d.name?{type:"name",name:d.name}:p,l={...d.payload,title:d.name??d.payload.title,description:d.name??d.payload.description}):l=d.payload}else l=u;c.push(p),a.push(l)}return dbe({description:t.description??t.message.description,availability:yw(t.message),subtypes:a,nameOverride:t.operationId,generatedName:e,title:t.message.title,groupName:void 0,wrapAsOptional:!1,wrapAsNullable:!1,breadcrumbs:n,context:r,encoding:void 0,source:i,namespace:r.namespace,subtypeSuffixOverrides:s.naming==="v2"?c:[]})}}function sva({action:e,channelPath:t,message:r,context:n,source:i}){if(r.payload!=null){let o=r.payload;return Hn(r.payload)&&(o=n.resolveSchemaReference(r.payload)),fc(o,!1,!1,n,[t,e],i,n.namespace)}}Ut();var yxr=class extends TYe{getExampleMessageReference(t){let r=t.channelId??this.getDefaultChannelId();if(r==null)throw new F({message:"Cannot resolve example message reference: no channelId provided and no channels found in document",code:F.Code.InternalError});return`#/channels/${r}/messages/${t.messageId}`}getDefaultChannelId(){return Object.keys(this.document.channels??{})[0]}resolveParameterReference(t){let r="#/components/parameters/";if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(r))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let n=t.$ref.substring(r.length),i=this.document.components.parameters[n];if(i==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return"$ref"in i?this.resolveParameterReference(i):i}resolveMessageReference(t,r=!1){let n="#/channels/",i="#/components/messages/";if(t==null)throw new F({message:"Cannot resolve message reference: message is null or undefined",code:F.Code.InternalError});if(!t.$ref)throw new F({message:"Cannot resolve message reference: message.$ref is undefined or empty",code:F.Code.ReferenceError});if(t.$ref.startsWith(n)){let c=t.$ref.split("/"),u=c[2],l=c[4],p=u?.replace(/~1/g,"/").replace(/~0/g,"~");if(p==null||l==null||!this.document.channels?.[p])throw new F({message:`Failed to resolve message reference ${t.$ref} in channel ${p}`,code:F.Code.ReferenceError});let f=this.document.channels[p].messages?.[l];if(f==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return"$ref"in f&&!r?this.resolveMessageReference(f):{...f,name:l}}let o=this.document.components;if(!t.$ref.startsWith(i)||!o?.messages)throw new F({message:`Failed to resolve message reference: ${t.$ref} in v3 components`,code:F.Code.ReferenceError});let s=t.$ref.substring(i.length),a=o.messages[s];if(a==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return{...a,name:s}}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}};jt();Ut();ao();var cva="#/channels/",uva="#/servers/",o4i="$message.";function pva({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){pxr();let o={},s={},a={},c=[],u={};e.logger.debug("Parsing V3 AsyncAPI...");let l=VY();for(let[O,k]of Object.entries(i.components?.schemas??{})){let P=l.getUniqueSchemaId(O,e.logger,e.options.resolveSchemaCollisions);o[P]=fc(k,!1,!1,e,[P],r,e.namespace)}for(let[O,k]of Object.entries(i.channels??{}))if(s[O]||(s[O]={}),k.messages)for(let[P,U]of Object.entries(k.messages))if(a[P]||(a[P]=[]),e.isReferenceObject(U)){let X=e.resolveMessageReference(U);a[P].push({channelId:O,payload:X.payload})}else e.isMessageWithPayload(U)&&a[P].push({channelId:O,payload:U.payload});for(let[O,k]of Object.entries(a))if(k.length===1){let P=k[0],U=P.channelId;s[U]=s[U]||{},s[U][O]=fc(P.payload,!1,!1,e,[O],r,e.namespace)}else{c.push(O);for(let{channelId:P,payload:U}of k){let X=`${P}_${O}`;s[P]||(s[P]={}),s[P][X]=fc(U,!1,!1,e,[X],r,e.namespace)}}let p={},d=VY();for(let[O,k]of Object.entries(s))for(let[P,U]of Object.entries(k)){let X=d.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);p[X]=U}let f=new PYe({...o,...p},e),m={};for(let[O,k]of Object.entries(i.servers??{})){let P=Lr(k,Ly.FERN_SERVER_NAME);m[O]={name:P??O,url:gxr(k.protocol,k.host)}}let h={},A=Object.keys(i.channels??{});for(let[O,k]of Object.entries(i.operations??{})){if(Lr(k,Ly.IGNORE))continue;let P;if(k.channel==null||!("$ref"in k.channel)||k.channel.$ref==null)if(A.length===1&&A[0]!=null)P=A[0];else continue;else P=fCp(k);h[P]||(h[P]={subscribe:[],publish:[],__parsedMessages:[]});let U=Lr(k,Ly.FERN_SDK_METHOD_NAME),X=Lr(k,Ly.FERN_DISPLAY_NAME);if(!k.messages||!Array.isArray(k.messages))continue;let ee=k.messages.filter(pe=>pe!=null&&pe.$ref!=null).map(pe=>({ref:pe,methodName:U,displayName:X})),ne=h[P];if(ne==null)throw new F({message:`Internal error: channelEvents["${P}"] is unexpectedly undefined for operation ${O}`,code:F.Code.InternalError});if(k.action==="receive")ne.subscribe.push(...ee);else if(k.action==="send")ne.publish.push(...ee);else throw new F({message:`Operation ${O} has an invalid action: ${k.action}`,code:F.Code.ValidationError})}for(let[O,k]of Object.entries(h)){let P=[];P.push(...lva({messages:k.subscribe,channelPath:O,origin:"server",messageSchemas:s[O]??{},duplicatedMessageIds:c,context:e})),P.push(...lva({messages:k.publish,channelPath:O,origin:"client",messageSchemas:s[O]??{},duplicatedMessageIds:c,context:e})),h[O]!=null&&(h[O].__parsedMessages=P)}for(let[O,k]of Object.entries(i.channels??{})){if(Lr(k,Ly.IGNORE))continue;let P=[],U=[],X=[];if(k.parameters!=null)for(let[ee,ne]of Object.entries(k.parameters)){let pe=e.isReferenceObject(ne)?e.resolveParameterReference(ne):ne,{type:ge,parameterKey:ue}=pe.location!=null?dCp(pe.location):{type:k.address?.includes(`={${ee}}`)?"query":"path",parameterKey:ee},he=Lr(pe,Ly.FERN_PARAMETER_OPTIONAL),Le=rl(si(O))+rl(si(ee)),ke=pe.schema!=null?Hn(pe.schema)?x3(pe.schema,!1,!1,e,[ue],void 0,r,e.namespace):fc(pe.schema,!1,!1,e,[ue],r,e.namespace):fc({...pe,type:"string",title:Le,example:pe.examples?.[0],default:pe.default,enum:pe.enum,required:void 0},!1,!1,e,[ue],r,e.namespace),oe=he?zr.optional({value:ke,description:void 0,availability:void 0,generatedName:"",title:Le,namespace:void 0,groupName:void 0,nameOverride:void 0,inline:void 0}):ke,ae={name:ue,description:pe.description,parameterNameOverride:void 0,schema:oe,variableReference:void 0,availability:yw(ne),source:r,explode:void 0,clientDefault:void 0};ge==="header"?P.push({...ae,env:void 0}):ge==="path"?U.push(ae):(ge==="payload"||ge==="query")&&X.push(ae)}if(k.bindings?.ws?.query!=null){let ee=new Set(X.map(pe=>pe.name)),ne=new Set(k.bindings.ws.query.required??[]);for(let[pe,ge]of Object.entries(k.bindings.ws.query.properties??{})){if(ee.has(pe))continue;if(Hn(ge)){let ke=e.resolveSchemaReference(ge),oe=ne.has(pe),[ae,Se]=e.options.coerceOptionalSchemasToNullable?[!1,!oe]:[!oe,!1];X.push({name:pe,schema:x3(ge,ae,Se,e,[O,pe],void 0,r,e.namespace),description:ke.description,parameterNameOverride:void 0,availability:yw(ke),source:r,explode:void 0,clientDefault:void 0});continue}let ue=ne.has(pe),[he,Le]=e.options.coerceOptionalSchemasToNullable?[!1,!ue]:[!ue,!1];X.push({name:pe,schema:fc(ge,he,Le,e,[O,pe],r,e.namespace),description:ge.description,parameterNameOverride:void 0,availability:yw(ge),source:r,explode:void 0,clientDefault:void 0})}}if(k.bindings?.ws?.headers!=null){let ee=new Set(P.map(pe=>pe.name)),ne=new Set(k.bindings.ws.headers.required??[]);for(let[pe,ge]of Object.entries(k.bindings.ws.headers.properties??{})){if(ee.has(pe))continue;if(Hn(ge)){let ke=e.resolveSchemaReference(ge),oe=ne.has(pe),[ae,Se]=e.options.coerceOptionalSchemasToNullable?[!1,!oe]:[!oe,!1];P.push({name:pe,schema:x3(ge,ae,Se,e,[O,pe],void 0,r,e.namespace),description:ke.description,parameterNameOverride:void 0,env:void 0,availability:yw(ke),source:r,clientDefault:void 0});continue}let ue=ne.has(pe),[he,Le]=e.options.coerceOptionalSchemasToNullable?[!1,!ue]:[!ue,!1];P.push({name:pe,schema:fc(ge,he,Le,e,[O,pe],r,e.namespace),description:ge.description,parameterNameOverride:void 0,env:void 0,availability:yw(ge),source:r,clientDefault:void 0})}}if(P.length>0||X.length>0||h[O]!=null&&(h[O].publish!=null||h[O].subscribe!=null)){let ee=hxr(k),ne=h[O]?.__parsedMessages??[],pe=[];try{if(ee.length>0)pe=f.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:ee,handshake:{headers:P,queryParameters:X},source:r,namespace:e.namespace});else{let ke=[],{examplePublishMessage:oe,exampleSubscribeMessage:ae}=hCp({messages:ne,messageSchemas:s[O]??{}});oe!=null&&ke.push(oe),ae!=null&&ke.push(ae);let Se=f.buildWebsocketSessionExample({handshake:{headers:P,queryParameters:X},messages:ke});Se!=null&&pe.push(Se)}}catch(ke){e.logger.warn(`Failed to build examples for channel ${O}: ${Gn(ke)}`)}let ge=Lr(k,Ly.FERN_SDK_GROUP_NAME),ue=Lr(k,Ly.FERN_SDK_METHOD_NAME),he=(k.servers?.map(ke=>mCp(m,ke))??Object.values(m)).map(ke=>({...ke,name:ke.name})),Le=k.address?.split("?")[0]??Axr(O);u[O]={audiences:Lr(k,kn.AUDIENCES)??[],handshake:{headers:P.map(ke=>({...ke,schema:fd(ke.schema),env:ke.env})),queryParameters:X.map(ke=>({...ke,schema:fd(ke.schema)})),pathParameters:U.map(ke=>({...ke,parameterNameOverride:void 0,schema:fd(ke.schema)}))},groupName:e.resolveGroupName(typeof ge=="string"?[ge]:ge??[O]),messages:ne,summary:Lr(k,Ly.FERN_DISPLAY_NAME),connectMethodName:ue,servers:he,path:Le,description:k.description,examples:pe,source:r}}else e.logger.warn(`Skipping AsyncAPI channel ${O} as it does not qualify for inclusion (no headers, query params, or operations)`)}let y={...o,...p},I={},w=VY();for(let[O,k]of Object.entries(y)){let P=w.getUniqueSchemaId(O,e.logger,e.options.resolveSchemaCollisions);I[P]=fd(k)}let C=BYe(e.namespace,o),x=Object.values(m).map(O=>({...O,name:O.name})),B=Lr(i,Ly.BASE_PATH);return{groupedSchemas:C,channels:u,servers:x,basePath:B}}function pCp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function fCp(e){if(!e.channel)throw new F({message:"Operation is missing required 'channel' field",code:F.Code.ValidationError});if(!e.channel.$ref)throw new F({message:"Operation channel is missing required '$ref' field",code:F.Code.ValidationError});if(!e.channel.$ref.startsWith(cva))throw new F({message:`Failed to resolve channel path from operation ${e.channel.$ref}`,code:F.Code.ReferenceError});return pCp(e.channel.$ref.substring(cva.length))}function dCp(e){let t="https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression",[r,n]=e.split("#/");if(r==null||n==null)throw new F({message:`Invalid location format: ${e}; unable to parse message type and parameter key. See ${t} for the expected format.`,code:F.Code.ValidationError});if(!r.startsWith(o4i))throw new F({message:`Invalid location format: ${e}; expected ${o4i} prefix`,code:F.Code.ValidationError});let i=r.substring(o4i.length);if(i!=="header"&&i!=="path"&&i!=="payload")throw new F({message:`Invalid message type: ${i}. Must be one of: header, path, payload`,code:F.Code.ValidationError});return{type:i,parameterKey:n}}function mCp(e,t){if(!t.$ref.startsWith(uva))throw new F({message:`Failed to resolve server name from server ref ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(uva.length),n=e[r];if(n==null)throw new F({message:`Failed to find server with name ${r}`,code:F.Code.ReferenceError});return n}function lva({messages:e,channelPath:t,origin:r,messageSchemas:n,duplicatedMessageIds:i,context:o}){let s=[];return e.forEach((a,c)=>{try{let l=o.resolveMessageReference(a.ref,!0).name;i.includes(l)&&(l=`${t}_${l}`);let p=n[l];p!=null&&s.push({origin:r,name:l??`${r}Message${c+1}`,displayName:a.displayName,body:fd(p),methodName:a.methodName})}catch(u){o.logger.warn(`Skipping message reference ${a.ref.$ref} in channel ${t}: ${Gn(u)}`)}}),s}function hCp({messages:e,messageSchemas:t}){let r=e.find(s=>s.origin==="client")?.name,n=e.find(s=>s.origin==="server")?.name,i=r!=null?t[r]:void 0,o=n!=null?t[n]:void 0;return{examplePublishMessage:i!=null&&r!=null?{type:r,payload:i}:void 0,exampleSubscribeMessage:o!=null&&n!=null?{type:n,payload:o}:void 0}}function fva({document:e,taskContext:t,options:r,source:n,asyncApiOptions:i,namespace:o}){let s=[];if(o!=null&&s.push(o),parseFloat(e.asyncapi)<3){let a=e;a.tags?.[0]!=null?s.push(a.tags[0].name):i.naming!=="v2"&&s.push("websocket");let c=new fxr({document:a,taskContext:t,options:r,namespace:o});return ava({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}else{let a=e,c=new yxr({document:a,taskContext:t,options:r,namespace:o});return pva({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}}jt();ao();function bxr(e){if(e!=null)return e.map(t=>Object.fromEntries(Object.entries(t).map(([r,n])=>[r,n??[]])))}ao();function dva(e){return Lr(e,kn.ASYNC_CONFIG)}var mva="$request.";function hva(e,t){let r=Lr(t,kn.STREAMING);if(r==null)return;if(typeof r=="boolean")return r?{type:"stream",format:"json",terminator:void 0,resumable:!1}:void 0;let n=gCp(e,r);return r["stream-condition"]==null&&r.format!=null?{type:"stream",format:r.format,terminator:r.terminator,resumable:n}:{type:"streamCondition",format:r.format??"json",terminator:r.terminator,streamDescription:r["stream-description"],streamConditionProperty:ACp(r["stream-condition"]),streamRequestName:r["stream-request-name"],responseStream:r["response-stream"],response:r.response,resumable:n}}function gCp(e,t){return typeof t.resumable=="boolean"?t.resumable:s4i(e)??!1}function s4i(e){let t=Lr(e,kn.STREAMING);if(!(t==null||typeof t=="boolean"))return typeof t.resumable=="boolean"?t.resumable:void 0}function ACp(e){return e.startsWith(mva)?e.slice(mva.length):e}Ut();function gva(e){let t=e;if(t.cursor!=null)return _x.cursor({cursor:t.cursor,nextCursor:t.next_cursor,results:t.results});let r=e;if("next_uri"in r)return _x.uri({nextUri:r.next_uri,results:r.results});let n=e;if("next_path"in n)return _x.path({nextPath:n.next_path,results:n.results});if("offset"in e){let i=e;return _x.offset({offset:i.offset,results:i.results,step:i.step,hasNextPage:i["has-next-page"]})}if("type"in e&&e.type==="custom"){let i=e;return _x.custom({results:i.results})}throw new F({message:"Invalid pagination extension",code:F.Code.ValidationError})}function Ava(e,t){let r=Lr(t,kn.PAGINATION);if(r!=null){if(typeof r=="boolean"){let n=Lr(e,kn.PAGINATION);if(typeof n=="boolean")throw new F({message:"Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.",code:F.Code.ValidationError});return n==null?void 0:gva(n)}return gva(r)}}function yva(e,t){for(let r of Object.keys(e))if(r.includes("text/event-stream")){let n=e[r];if(n==null)continue;let i=n,o=n.schema??i.itemSchema;return{contentType:r,schema:o??{},examples:DYe(n,t)}}}function bva(e){let t=Object.keys(e);return t.length===1&&t[0]!=null&&t[0].includes("text/event-stream")}function yCp(e){return e.includes("json")||e==="*/*"}function a4i({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Exr({mediaType:r,mediaTypeObject:n,context:t})!=null)return[r,n]}function Exr({mediaType:e,mediaTypeObject:t,context:r}){if(!yCp(e))return;let n=t.schema;return{contentType:e.includes("*")?void 0:e,schema:n??{},examples:DYe(t,r)}}function y2t({content:e,context:t}){let r=a4i({content:e,context:t});if(!r)return;let[n,i]=r;return Exr({mediaType:n,mediaTypeObject:i,context:t})}function Eva(e,t){for(let r of Object.keys(e)){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:DYe(n,t)}}}function DYe(e,t){let r=[];e.example!=null&&r.push({name:void 0,value:e.example,description:void 0});let n=Lr(e,oO.EXAMPLES);return n!=null&&Object.keys(n).length>0&&r.push(...Object.entries(n).map(([i,o])=>({name:o.summary??i,value:o.value,description:o.description}))),e.examples!=null&&Object.keys(e.examples).length>0&&r.push(...Object.entries(e.examples).map(([i,o])=>{let s=Hn(o)?t.resolveExampleReference(o):o;return{name:s.summary??i,value:s.value,description:s.description}})),r}jt();Ut();jt();function vva(e){let t=bCp(e),r={};return c4i({obj:t,occurrences:r,breadcrumbs:[]}),r}function c4i({obj:e,occurrences:t,breadcrumbs:r}){if(e!=null){if(Array.isArray(e)){for(let n of e)c4i({obj:n,occurrences:t,breadcrumbs:r});return}if(typeof e=="object"){if(e.$ref!=null&&typeof e.$ref=="string"){let n=e.$ref;t[n]==null?t[n]=1:t[n]+=1;return}for(let n in e)c4i({obj:e[n],occurrences:t,breadcrumbs:[...r,n]})}}}function bCp(e){return{...e,paths:Object.fromEntries(Object.entries(e.paths??{}).map(([t,r])=>[t,{...r,get:r?.get!=null?b2t(r.get):void 0,put:r?.put!=null?b2t(r.put):void 0,post:r?.post!=null?b2t(r.post):void 0,patch:r?.patch!=null?b2t(r.patch):void 0,delete:r?.delete!=null?b2t(r.delete):void 0}]))}}function b2t(e){return{...e,requestBody:e.requestBody!=null?Hn(e.requestBody)?e.requestBody:ECp(e.requestBody):void 0}}function ECp(e){let t,r;for(let n in e.content){let i=ld.parse(n);i!=null&&(i.isJSON()?t=e.content[n]:i.isMultipart()&&(r=e.content[n]))}return r!=null&&t!=null?{...e,content:{[ld.MULTIPART_FORM_DATA]:r}}:e}var vxr=class{endpoints;parser=new _ce;constructor({context:t,options:r}){this.endpoints=r.filter?.endpoints?new Set(this.validateAndFilterEndpoints({context:t,endpoints:r.filter.endpoints})):void 0}skipEndpoint({method:t,path:r}){return this.endpoints!=null&&!this.endpoints.has(`${t} ${r}`)}hasEndpoints(){return this.endpoints!=null}validateAndFilterEndpoints({context:t,endpoints:r}){let n=[];for(let i of r){let o=this.parser.tryParse(i);if(o==null){t.logger.debug(`Ignoring configured filter endpoint "${i}"; expected format "POST /users/get"`);continue}n.push(`${o.method} ${o.path}`)}return n}};var Iva="#/components/parameters/",Cva="#/components/responses/",wva="#/components/examples/",xva="#/components/requestBodies/",Sva="#/components/securitySchemes/",RYe=class{logger;document;taskContext;authHeaders;refOccurrences;DUMMY;options;source;filter;namespace;schemaNamespaceMapping;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){this.document=t,this.logger=r.logger,this.taskContext=r,this.authHeaders=n,this.refOccurrences=vva(t),this.options=i,this.source=o,this.filter=new vxr({context:r,options:i}),this.DUMMY=this.getDummy(),this.namespace=s,this.schemaNamespaceMapping=this.buildSchemaNamespaceMapping()}getNumberOfOccurrencesForRef(t){return this.refOccurrences[t.$ref]??0}resolveTagsToTagIds(t){let r=[];return this.namespace!=null&&r.push(this.namespace),r.concat(t??[])}resolveTags(t){let r=[];if(this.namespace!=null){let n={type:"namespace",name:this.namespace};r.push(n)}return r.concat(t??[])}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveSchemaReference(t){let r=t.$ref.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return{"x-fern-type":"unknown"};if(Array.isArray(n)){let o=parseInt(i,10);if(isNaN(o)||o<0||o>=n.length)return{"x-fern-type":"unknown"};n=n[o]}else n=n[i]}return n==null?(this.logger.debug(`Encountered undefined reference: ${t.$ref}`),{"x-fern-type":"unknown"}):(Hn(n)&&(n=this.resolveSchemaReference(n)),n)}resolveParameterReference(t){if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(Iva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Iva.length),n=this.document.components.parameters[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveParameterReference(n):n}resolveRequestBodyReference(t){if(this.document.components==null||this.document.components.requestBodies==null||!t.$ref.startsWith(xva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(xva.length),n=this.document.components.requestBodies[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveRequestBodyReference(n):n}resolveResponseReference(t){if(this.document.components==null||this.document.components.responses==null||!t.$ref.startsWith(Cva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Cva.length),n=this.document.components.responses[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveResponseReference(n):n}resolveExampleReference(t){if(this.document.components==null||this.document.components.examples==null||!t.$ref.startsWith(wva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(wva.length),n=this.document.components.examples[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveExampleReference(n):n}resolveSecuritySchemeReference(t){if(this.document.components==null||this.document.components.securitySchemes==null||!t.$ref.startsWith(Sva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Sva.length),n=this.document.components.securitySchemes[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveSecuritySchemeReference(n):n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}getNamespace(t){return this.schemaNamespaceMapping?.get(t)}buildSchemaNamespaceMapping(){let t=new Map;if(!this.document.components?.schemas)return t;for(let[r,n]of Object.entries(this.document.components.schemas))!n||Hn(n)||t.set(r,Lr(n,kn.SDK_NAMESPACE)||this.namespace);return t}};var KNe=class extends RYe{constructor({document:t,taskContext:r,options:n,source:i,namespace:o}){super({document:t,taskContext:r,authHeaders:new Set,options:n,source:i,namespace:o})}getDummy(){return this}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}getReferencedSchemas(){return new Set}markReferencedByDiscriminatedUnion(t,r,n){}getReferencesFromDiscriminatedUnion(t){}excludeSchema(t){}isSchemaExcluded(t){return!1}markSchemaWithDiscriminantValue(t,r,n){}getDiscriminatedUnionMetadata(t){}};jt();var Oxr=require("fs"),Pxr=require("path");as();var bwp=Bt.object({lang:Bt.string(),label:Bt.optional(Bt.string()),source:Bt.string()}),h4i=Bt.array(bwp);jt();var Qva={README_EXT:"x-readme"};function Ewp(e){if(!Array.isArray(e))return!1;for(let t of e)if(!xo(t)||typeof t.language!="string"||typeof t.code!="string")return!1;return!0}function Mva(e){let t=Lr(e,Qva.README_EXT);if(!xo(t))return[];let r=t["code-samples"];if(!Ewp(r))return[];let n=[];for(let i of r)n.push({name:i.name,language:i.language,code:i.code,install:i.install,docs:void 0});return n}function vwp(e){return xo(e)&&typeof e.$ref=="string"}function Iwp(e,t){if(e!=null){if(typeof e=="string")return e;if(vwp(e)){let r=(0,Pxr.resolve)(t??process.cwd(),e.$ref);if((0,Oxr.existsSync)(r))try{return(0,Oxr.readFileSync)(r,"utf-8")}catch{return}}}}function Cwp(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!xo(n))continue;let o=Iwp(n.code,t);o!=null&&r.push({...n,code:o})}return r}function Lva(e,t,r){let n=Lr(t,kn.EXAMPLES),i=r.source.type==="openapi"?(0,Pxr.dirname)(r.source.file):void 0,s=(n??[]).map(p=>{if(!xo(p))return p;let f=p["code-samples"];if(f!=null){let m=Cwp(f,i);return{...p,"code-samples":m}}return p}).filter(p=>{let d=zh.serialization.ExampleEndpointCallSchema.parse(p);return d.ok||r.logger.error(`Failed to parse x-fern-example in ${e.path}/${e.method}`),d.ok}),a=p2t(t,oO.REDOCLY_CODE_SAMPLES_KEBAB,h4i,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],u=[...p2t(t,oO.REDOCLY_CODE_SAMPLES_CAMEL,h4i,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],...a];u.length>0&&s.push({"code-samples":u.map(p=>({name:p.label??p.lang,language:p.lang,code:p.source,install:void 0,docs:void 0}))});let l=Mva(t);return l.length>0&&s.push({"code-samples":l}),s.map(o_.unknown)}function zva(e){let t=Lr(e,kn.AVAILABILITY);if(t==="ga"||t==="generally-available")return ig.GenerallyAvailable;if(t==="beta"||t==="pre-release")return ig.Beta;if(t==="deprecated")return ig.Deprecated;if(t==="alpha")return ig.Alpha;if(t==="preview")return ig.Preview;if(t==="legacy")return ig.Legacy;if(e.deprecated)return ig.Deprecated}function Uva(e){let t=Lr(e,kn.RETRIES);if(t!=null&&t.disabled===!0)return OA.RetriesConfiguration.disabled(t.disabled)}var wwp="x-fern-default-url";function Dxr(e,t){let r=e.variables!=null&&Object.keys(e.variables).length>0,n=xwp(e);return{url:Twp({url:e.url,variables:e.variables??{}}),description:e.description,name:Bwp(e,t),audiences:Lr(e,kn.AUDIENCES),urlTemplate:r?e.url:void 0,variables:r&&e.variables!=null?Swp(e.variables):void 0,defaultUrl:r?n:void 0}}function xwp(e){let t=e[wwp];if(typeof t=="string")return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}function Swp(e){return Object.entries(e).map(([t,r])=>({id:t,default:r.default,values:r.enum}))}function Twp({url:e,variables:t}){let r=Object.fromEntries(Object.entries(t).map(([n,i])=>[n,i.default]));for(let[n,i]of Object.entries(r))e=e.replace(`{${n}}`,encodeURIComponent(i));return e}function Bwp(e,t){let r=Lr(e,[kn.SERVER_NAME_V1,kn.SERVER_NAME_V2]);if(r!=null)return r;if(e.description?.toLowerCase()==="production")return"Production";if(e.description?.toLowerCase()==="sandbox")return"Sandbox";if(t?.groupMultiApiEnvironments&&e.description!=null&&e.description.trim()!==""){let n=e.description.toLowerCase();return n==="prd"?"Production":n==="sbx"?"Sandbox":n==="staging"||n==="stg"?"Staging":n==="development"||n==="dev"?"Development":e.description}}function _va(e){return Lr(e,kn.PARAMETER_NAME)}function Vva(e){return Lr(e,kn.SDK_VARIABLE)}function Rxr({path:e,httpMethod:t,parameters:r,context:n,requestBreadcrumbs:i,source:o}){let s={pathParameters:[],queryParameters:[],headers:[]};for(let a of r){let c=Hn(a)?n.resolveParameterReference(a):a,u=Lr(a,kn.IGNORE)??Lr(c,kn.IGNORE);if(u!=null&&u){n.logger.debug(`${t.toUpperCase()} ${e} has a parameter marked with x-fern-ignore. Skipping.`);continue}let l=c.required??!1,p=yw(c),d=[...i,c.name],f=My(d,n.options.preserveSchemaIds),m=c.in==="header",[h,A]=n.options.coerceOptionalSchemasToNullable&&!m?[!1,!l]:[!l,!1],y=c.schema!=null?fc(c.schema,h,A,n,d,o,n.namespace,!1,new Set,Dwp(c,n)):l?zr.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:$i.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:l_({schema:c,logger:n.logger})}),description:void 0,availability:p,namespace:void 0,groupName:void 0}):zr.optional({nameOverride:void 0,generatedName:f,title:void 0,value:zr.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:$i.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:l_({schema:c,logger:n.logger})}),description:void 0,availability:void 0,namespace:void 0,groupName:void 0}),description:void 0,availability:p,namespace:void 0,groupName:void 0,inline:void 0});if(c.in==="header"&&c.schema!=null&&!Hn(c.schema)&&c.schema.default!=null){let C=c.schema.default;typeof C=="string"&&C.length>0&&(y=zr.literal({nameOverride:void 0,generatedName:f,title:void 0,value:Qy.string(C),description:void 0,availability:p,namespace:void 0,groupName:void 0}))}let I=Lr(a,kn.FERN_DEFAULT)??Lr(c,kn.FERN_DEFAULT),w={name:c.name,schema:y,description:c.description,parameterNameOverride:_va(c),availability:p,source:o,clientDefault:I};c.in==="query"?s.queryParameters.push({...w,explode:Pwp(c)}):c.in==="path"?s.pathParameters.push({...w,variableReference:Vva(c),explode:Rwp(c)}):c.in==="header"?!Owp.has(c.name.toLowerCase())&&!n.authHeaders.has(c.name)?s.headers.push({...w,env:void 0}):n.logger.debug(`Ignoring ${c.name} header, in ${t.toUpperCase()} ${e}`):n.logger.warn(`Skipping ${c.in} parameter, ${c.name}, in ${t.toUpperCase()} ${e}`)}return s}var Owp=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]);function Pwp(e){let t=e.style??"form",r=e.explode;if(r!==void 0)return t==="form"||t==="deepObject"?r===!0?void 0:r:r===!1?void 0:r}function Dwp(e,t){let r=axr({schema:e,logger:t.logger});return r??l_({schema:e,logger:t.logger})}function Rwp(e){let t=e.explode;if(t!==void 0)return t===!1?void 0:t}jt();Ut();function Fwp({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Gva({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function Gva({mediaType:e,mediaTypeObject:t,context:r}){if(ld.parse(e)?.isURLEncoded())return{schema:t.schema,contentType:e,examples:DYe(t,r)}}function kwp({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Wva({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function Wva({mediaType:e,mediaTypeObject:t,context:r}){if(ld.parse(e)?.isMultipart())return{schema:t.schema,encoding:t.encoding,examples:DYe(t,r)}}function Hva({mediaType:e}){return ld.parse(e)?.isBinary()??!1}function Nwp({content:e}){for(let[t,r]of Object.entries(e))if(Hva({mediaType:t}))return[t,r]}function jwp(e,t){let r=Hn(e)?g4i(e,t):{id:void 0,schema:e};return Object.entries(r.schema.properties??{}).find(([n,i])=>!Hn(i)&&i.type==="string"&&(i.format==="binary"||i.format==null&&i.contentMediaType==="application/octet-stream"))!=null}function kxr({content:e,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}){let a=Nwp({content:e});if(a){let[d,f]=a;return KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}let c=kwp({content:e,context:n}),u=a4i({content:e,context:n}),l=Qwp({json:u,multipart:c,document:r,visitor:{json:([d,f])=>KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),multipart:([d,f])=>KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),neither:()=>{}}});if(l)return l;let p=Fwp({content:e,context:n});if(p){let[d,f]=p;return KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}}function Qwp({json:e,multipart:t,document:r,visitor:n}){if(!e&&!t)return n.neither();let[,i]=e??[void 0,void 0],[,o]=t??[void 0,void 0];return!i?.schema&&!o?.schema?e&&(i?.example!=null||i?.examples!=null&&Object.keys(i.examples).length>0)?n.json(e):n.neither():i?.schema&&o?.schema?i.schema&&jwp(i.schema,r)?n.multipart(t):n.json(e):i?.schema?n.json(e):o?.schema?n.multipart(t):n.neither()}function KY({mediaType:e,mediaTypeObject:t,description:r,document:n,context:i,requestBreadcrumbs:o,source:s,namespace:a}){let c=Mwp({mediaTypeObject:t});if(Hva({mediaType:e}))return z2.octetStream({description:r,source:s,sdkMethodName:c,contentType:e});let u=Wva({mediaType:e,mediaTypeObject:t,context:i}),l=u?.schema,p=u?.encoding,d=u?.examples;if(l){let h=Hn(l)?g4i(l,n):{id:void 0,schema:l},A=fc(h.schema,!1,!1,i,o,s,a,!1),y=[];if(A.type==="object"){let I=new Set(h.schema.required??[]);for(let w of A.properties){let C=I.has(w.key),{isFile:x,isOptional:B,isArray:O,description:k}=Fxr({schema:w.schema,isOptional:!C});if(x){let P=qva(w.key,p);y.push({key:w.key,schema:NY.file({isOptional:B,isArray:O,description:k}),description:k,contentType:P,exploded:!1,encoding:P==null?i.options.defaultFormParameterEncoding:void 0})}else{let P=qva(w.key,p);y.push({key:w.key,schema:NY.json(w.schema),description:void 0,contentType:P,exploded:p?.[w.key]?.explode,encoding:P==null?i.options.defaultFormParameterEncoding:zwp(P)})}}}return z2.multipart({name:Hn(l)&&i.getNumberOfOccurrencesForRef(l)===1?h.id:void 0,description:h.schema.description,properties:y,source:s,sdkMethodName:c,fullExamples:d})}let f=Exr({mediaType:e,mediaTypeObject:t,context:i});if(f){let h=fc(f.schema,!1,!1,i,o,s,a,!0);return z2.json({description:void 0,schema:h,contentType:f.contentType,fullExamples:f.examples,additionalProperties:!Hn(f.schema)&&d2t(f.schema.additionalProperties,i.options),source:s,sdkMethodName:c})}let m=Gva({mediaType:e,mediaTypeObject:t,context:i});if(m!=null&&m.schema!=null){let h=fc(m.schema,!1,!1,i,o,s,a,!1);return z2.formUrlEncoded({schema:h,description:r,contentType:m.contentType,source:s,fullExamples:m.examples,additionalProperties:!1,sdkMethodName:c})}}function Mwp({mediaTypeObject:e}){return Lr(e,kn.SDK_METHOD_NAME)}var Lwp={"application/json":"json"};function zwp(e){return e?Lwp[e]:void 0}function g4i(e,t){if(!e.$ref.startsWith(WNe))throw new F({message:`Failed to resolve schema reference because of unsupported prefix: ${e.$ref}`,code:F.Code.ReferenceError});let r=wYe(e);if(r==null)throw new F({message:`Failed to resolve schema reference because missing schema id: ${e.$ref}`,code:F.Code.ReferenceError});let n=t.components?.schemas?.[r];if(n==null)throw new F({message:`Failed to resolve schema reference because missing: ${e.$ref}`,code:F.Code.ReferenceError});return Hn(n)?g4i(n,t):{id:r,schema:n}}function Fxr({schema:e,isOptional:t,isArray:r,description:n}){return _wp(e)?Fxr({schema:e.value,isOptional:!0,isArray:r,description:e.description}):Vwp(e)?Fxr({schema:e.value,isOptional:t,isArray:r,description:e.description}):qwp(e)?Fxr({schema:e.value,isOptional:t,isArray:!0,description:e.description}):Uwp(e)?{isFile:!0,isOptional:t??!1,isArray:r??!1,description:n??e.description}:{isFile:!1,isOptional:t??!1,isArray:r??!1,description:void 0}}function Uwp(e){return e.type==="primitive"&&e.schema.type==="string"&&e.schema.format==="binary"}function _wp(e){return e.type==="optional"}function Vwp(e){return e.type==="nullable"}function qwp(e){return e.type==="array"}function qva(e,t){return t?.[e]?.contentType}jt();var A4i={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},Kva=new Set(Object.values(A4i));var Gwp=["200","201","202","204"];function Nxr({operationContext:e,responses:t,context:r,responseBreadcrumbs:n,responseStatusCode:i,streamFormat:o,streamTerminator:s,streamResumable:a,source:c}){if(t==null)return{value:void 0,errors:{}};let u=Wwp({responses:t,context:r,source:c,namespace:r.namespace}),l=!1,p=!1,d;for(let f of i!=null?[i]:Gwp){let m=t[f];if(m==null)continue;l=!0;let h=typeof f=="string"?parseInt(f):f;if(d==null){let A=Jva({operationContext:e,response:m,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,streamResumable:a,source:c,namespace:r.namespace,statusCode:h});A!=null?d=A:h===204&&(p=!0)}else if(h===204){let A=Hn(m)?r.resolveResponseReference(m):m;y2t({context:r,content:A.content??{}})==null&&(p=!0)}}if(p&&d!=null&&d.type==="json"){let f=d.schema;f.type!=="optional"&&(d=Jg.json({...d,schema:zr.optional({value:f,description:f.type==="reference"?f.description:void 0,nameOverride:void 0,generatedName:"",groupName:void 0,namespace:void 0,availability:void 0,title:void 0,inline:void 0})}))}if(d==null&&!l&&t.default!=null&&(d=Jva({operationContext:e,response:t.default,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,streamResumable:a,source:c,namespace:r.namespace})),d!=null)switch(d.type){case"json":return{value:d,errors:u};case"streamingJson":case"streamingSse":return{value:d,errors:u};case"bytes":case"file":case"text":case"streamingText":return{value:d,errors:u};default:we(d)}return{value:void 0,errors:u}}function Jva({operationContext:e,streamFormat:t,streamTerminator:r,streamResumable:n,response:i,context:o,responseBreadcrumbs:s,source:a,namespace:c,statusCode:u}){let l=Hn(i)?o.resolveResponseReference(i):i;if(l.content!=null&&Object.entries(l.content).find(([m,h])=>{if(h.schema==null)return!1;let A=Hn(h.schema)?o.resolveSchemaReference(h.schema):h.schema;return A.type==="string"&&(A.format==="binary"||A.format==null&&A.contentMediaType==="application/octet-stream")}))return o.options.useBytesForBinaryResponse&&t==null?Jg.bytes({description:l.description,source:a,statusCode:u}):Jg.file({description:l.description,source:a,statusCode:u});let p=yva(l.content??{},o);if(p!=null&&t!=null)switch(t){case"json":return Jg.streamingJson({statusCode:u,description:l.description,responseProperty:Lr(e.operation,kn.RESPONSE_PROPERTY),terminator:r,resumable:void 0,fullExamples:p.examples,schema:fc(p.schema,!1,!1,o,s,a,c),source:a});case"sse":return Jg.streamingSse({description:l.description,responseProperty:void 0,terminator:r,resumable:n,fullExamples:p.examples,schema:fc(p.schema,!1,!1,o,s,a,c),source:a,statusCode:u})}let d=y2t({context:o,content:l.content??{}});if(d){if(t!=null)switch(t){case"json":return Jg.streamingJson({description:l.description,responseProperty:void 0,terminator:r,resumable:void 0,fullExamples:d.examples,schema:fc(d.schema,!1,!1,o,s,a,c),source:a,statusCode:u});case"sse":return Jg.streamingSse({description:l.description,responseProperty:void 0,terminator:r,resumable:n,fullExamples:d.examples,schema:fc(d.schema,!1,!1,o,s,a,c),source:a,statusCode:u})}return Jg.json({description:l.description,schema:fc(d.schema,!1,!1,o,s,a,c),responseProperty:Lr(e.operation,kn.RESPONSE_PROPERTY),terminator:void 0,resumable:void 0,fullExamples:d.examples,source:a,statusCode:u})}for(let[f,m]of Object.entries(l.content??{})){let h=ld.parse(f);if(h!=null){if(h.isOctetStream()||h.isPDF()||h.isAudio()||h.isImage()||h.isVideo()||h.isMultiPartMixed())return Jg.file({description:l.description,source:a,statusCode:u});if(h.isText()&&!f.includes("event-stream")){let A=m.schema;if(A==null)return Jg.text({description:l.description,source:a,statusCode:u});let y=Hn(A)?o.resolveSchemaReference(A):A;return y.type==="string"&&y.format==="byte"?Jg.file({description:l.description,source:a,statusCode:u}):Jg.text({description:l.description,source:a,statusCode:u})}}}}function Wwp({responses:e,context:t,source:r,namespace:n}){let i={};for(let[o,s]of Object.entries(e)){if(o==="default")continue;let a=parseInt(o);if(a<400||a>600)continue;let c=Hn(s)?t.resolveResponseReference(s):s,u=Eva(c.content??{},t),l=A4i[a];if(l==null){t.logger.warn(`No error name found for status code ${o}`);continue}i[a]={statusCode:a,nameOverride:void 0,generatedName:l,description:c.description,schema:fc(u?.schema??{},!1,!1,t,[l,"Body"],r,n),fullExamples:u?.examples,source:r}}return i}function vue({operationContext:e,context:t,responseStatusCode:r,suffix:n,streamFormat:i,streamTerminator:o,streamResumable:s,source:a,streamRequestNameOverride:c}){let{document:u,operation:l,path:p,method:d,baseBreadcrumbs:f,pathItem:m}=e,h=Lr(l,kn.IDEMPOTENT),A=Lr(l,[kn.REQUEST_NAME_V1,kn.REQUEST_NAME_V2]),y=[...f,"Request"],I=Rxr({parameters:[...e.pathItemParameters,...e.operationParameters],context:t,requestBreadcrumbs:y,path:p,httpMethod:d,source:a}),w=/{([^}]+)}/g,C=[...p.matchAll(w)].map(pe=>pe[1]).filter(pe=>pe!==void 0),x=[...p.matchAll(w)].map(pe=>pe[1]);switch(t.options.pathParameterOrder){case zn.PathParameterOrder.SpecOrder:{let pe=x.filter(ge=>!I.pathParameters.some(ue=>ue.name===ge));if(pe.length>0)for(let ge of pe)I.pathParameters.push({name:ge??"",variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:a,schema:zr.primitive({schema:$i.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0,clientDefault:void 0})}break;case zn.PathParameterOrder.UrlOrder:if(C.length>0){let pe=new Map(I.pathParameters.map(he=>[he.name,he])),ge=[],ue=new Set;for(let he of C){let Le=pe.get(he);ue.add(he),Le?ge.push(Le):ge.push({name:he,variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:a,schema:zr.primitive({schema:$i.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0,clientDefault:void 0})}for(let he of I.pathParameters)ue.has(he.name)||ge.push(he);I.pathParameters=ge}break;default:we(t.options.pathParameterOrder)}let B=(()=>{if(e.method==="GET")return[void 0];if(!l.requestBody)return[void 0];let pe=Hn(l.requestBody)?t.resolveRequestBodyReference(l.requestBody):l.requestBody,ge=Object.values(pe.content).every(he=>Hwp({mediaTypeObject:he})!=null),ue=[];if(ge)return ue.push(...Object.entries(pe.content).map(([he,Le])=>{let ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:new KNe({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:y,source:a,namespace:t.namespace});return Xva({context:t,convertedParameters:I})&&ke!=null&&(ke.type==="json"||ke.type==="formUrlEncoded")&&ke.schema.type!=="object"&&l.requestBody!=null?ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y,"Body"],source:a,namespace:t.namespace}):l.requestBody!=null&&(ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y],source:a,namespace:t.namespace})),ke}).filter(he=>he!=null)),ue.length===0?[void 0]:ue;{let he=kxr({content:pe.content,description:pe.description,document:u,context:new KNe({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:y,source:a,namespace:t.namespace});return Xva({context:t,convertedParameters:I})&&he!=null&&(he.type==="json"||he.type==="formUrlEncoded")&&he.schema.type!=="object"&&l.requestBody!=null?he=kxr({content:pe.content,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y,"Body"],source:a,namespace:t.namespace}):l.requestBody!=null&&(he=kxr({content:pe.content,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y],source:a,namespace:t.namespace})),[he]}})(),O=B.length>1,k=[...f,"Response"],P=Nxr({operationContext:e,streamFormat:i,streamTerminator:o,streamResumable:s,responses:l.responses,context:t,responseBreadcrumbs:k,responseStatusCode:r,source:a}),U=Uva(l),X=zva(l),ee=Lva(e,l,t),ne=Lr(l,kn.SERVER_NAME_V2);return B.map(pe=>({summary:l.summary,internal:Lr(l,oO.INTERNAL),idempotent:h,audiences:Lr(l,kn.AUDIENCES)??[],operationId:l.operationId!=null&&n!=null?l.operationId+"_"+n:l.operationId,tags:t.resolveTagsToTagIds(l.tags),namespace:t.namespace,sdkName:Kwp({operationContext:e,request:pe}),pathParameters:I.pathParameters,queryParameters:I.queryParameters,headers:I.headers,requestNameOverride:c??A??void 0,generatedRequestName:Xwp({baseBreadcrumbs:f,requestBreadcrumbs:y,isMultipleRequests:O,request:pe,context:t}),request:pe,response:P.value,errors:P.errors,servers:ne!=null?[{name:ne,url:void 0,audiences:void 0}]:(l.servers??m.servers??[]).map(ge=>Dxr(ge,{groupMultiApiEnvironments:t.options.groupMultiApiEnvironments})),description:l.description,authed:Ywp(l,u),security:Jwp(l),availability:X,method:d,path:p,examples:ee,pagination:e.pagination,source:a,retries:U}))}function Yva({breadcrumbs:e,request:t}){return t?[...e,t.type]:e}function Hwp({mediaTypeObject:e}){return Lr(e,kn.SDK_METHOD_NAME)}function Kwp({operationContext:e,request:t}){return!t||!t.sdkMethodName?e.sdkMethodName:e.sdkMethodName?{groupName:[...e.sdkMethodName.groupName],methodName:t.sdkMethodName??e.sdkMethodName.methodName}:{groupName:[],methodName:t.sdkMethodName}}function Jwp(e){return bxr(e.security)}function Ywp(e,t){return e.security!=null?Object.keys(e.security).length>0:t.security!=null?Object.keys(t.security).length>0:!1}function Xva({context:e,convertedParameters:t}){return e.options.inlinePathParameters&&t.pathParameters.length>0||t.queryParameters.length>0||t.headers.length>0}function Xwp({baseBreadcrumbs:e,requestBreadcrumbs:t,isMultipleRequests:r,request:n,context:i}){let o=r?Yva({breadcrumbs:t,request:n}):t,s=My(o,i.options.preserveSchemaIds),a=i.document.components?.schemas;if(a==null||!Object.keys(a).some(p=>My([p],i.options.preserveSchemaIds)===s))return s;let u=[...e,"Body"],l=r?Yva({breadcrumbs:u,request:n}):u;return My(l,i.options.preserveSchemaIds)}function $va({operationContext:e,context:t,asyncExtension:r,source:n}){let{operation:i,pathItemParameters:o,operationParameters:s}=e,a=r.discriminant.name,c=r.discriminant.value,u=r["response-status-code"],l=Zva({context:t,headerToIgnore:a,parameters:o}),p=Zva({context:t,headerToIgnore:a,parameters:s}),d=vue({operationContext:{...e,pathItemParameters:l,operationParameters:p,operation:{...i,responses:Object.fromEntries(Object.entries(i.responses).filter(([m])=>parseInt(m)!==u))}},context:t,streamFormat:void 0,source:n}),f=vue({operationContext:{...e,pathItemParameters:l,operationParameters:p,baseBreadcrumbs:[...e.baseBreadcrumbs,"async"]},context:t,suffix:"async",responseStatusCode:u,streamFormat:void 0,source:n});return f.forEach(m=>{m.headers.push({name:a,schema:zr.literal({nameOverride:void 0,generatedName:My([a],t.options.preserveSchemaIds),title:void 0,description:void 0,availability:void 0,value:Qy.string(c),namespace:void 0,groupName:void 0}),description:void 0,parameterNameOverride:void 0,env:void 0,availability:void 0,source:n,clientDefault:void 0})}),{sync:d,async:f}}function Zva({context:e,headerToIgnore:t,parameters:r}){return r.filter(n=>{let i=Hn(n)?e.resolveParameterReference(n):n;return!(i.in==="header"&&i.name===t)})}jt();var y4i="stream";function nIa({operationContext:e,context:t,streamingExtension:r}){switch(r.type){case"stream":return{streaming:vue({operationContext:e,context:t,streamFormat:r.format,streamTerminator:r.terminator,streamResumable:r.resumable,source:t.source}),nonStreaming:[]};case"streamCondition":{let n=eIa({context:t,operation:e.operation,streamingExtension:r,isStreaming:!0}),i=tIa({operation:e.operation,response:r.responseStream}),o=(()=>{if(r.streamRequestName!=null)return r.streamRequestName;if(n?.schemaReference!=null){let l=t.resolveSchemaReference(n.schemaReference),p=Lr(l,kn.TYPE_NAME);if(p!=null)return`${p}Streaming`}})(),s=vue({operationContext:{...e,sdkMethodName:e.sdkMethodName!=null?{groupName:e.sdkMethodName.groupName,methodName:e.sdkMethodName.methodName+"_"+y4i}:void 0,operation:{...e.operation,description:r.streamDescription??e.operation.description,requestBody:n?.requestBody,responses:i},baseBreadcrumbs:[...e.baseBreadcrumbs,y4i]},context:t,streamFormat:r.format,streamTerminator:r.terminator,streamResumable:r.resumable,suffix:y4i,source:t.source,streamRequestNameOverride:o});s.forEach(l=>{l.examples=l.examples.filter(p=>rIa(p,t)!==!1)});let a=eIa({context:t,operation:e.operation,streamingExtension:r,isStreaming:!1}),c=tIa({operation:e.operation,response:r.response}),u=vue({streamFormat:void 0,operationContext:{...e,operation:{...e.operation,requestBody:a?.requestBody,responses:c}},context:t,source:t.source});return u.forEach(l=>{l.examples=l.examples.filter(p=>rIa(p,t)!==!0)}),{streaming:s,nonStreaming:u}}default:we(r)}}function eIa({context:e,operation:t,streamingExtension:r,isStreaming:n}){if(t.requestBody==null)return;let i=Hn(t.requestBody)?e.resolveRequestBodyReference(t.requestBody):t.requestBody,o=y2t({content:i.content,context:e});if(o==null)return;let s=Hn(o.schema)?e.resolveSchemaReference(o.schema):o.schema;if(s.allOf==null&&s.properties==null)return;let a=s.properties?.[r.streamConditionProperty];a!=null&&Hn(a)&&(a=void 0);let c={...s,properties:{...s.properties,[r.streamConditionProperty]:{...a??{},type:"boolean","x-fern-boolean-literal":n}},title:void 0,required:[...s.required??[],r.streamConditionProperty]};return{requestBody:{content:{[ld.APPLICATION_JSON]:{schema:c}}},schemaReference:Hn(o.schema)?o.schema:void 0}}function tIa({operation:e,response:t}){return{...e.responses,200:{description:"",content:{[ld.APPLICATION_JSON]:{schema:t}}}}}function rIa(e,t){return e._visit({unknown:r=>{let n=zh.serialization.ExampleEndpointCallSchema.parse(r);if(n.ok&&n.value.response!=null)return n.value.response.stream!=null},full:()=>{},_other:()=>{}})}var uIa=require("crypto");function Zwp(e){switch(e){case"unix-seconds":return OA.WebhookTimestampFormat.UnixSeconds;case"unix-millis":return OA.WebhookTimestampFormat.UnixMillis;case"iso8601":return OA.WebhookTimestampFormat.Iso8601}}function iIa(e){if(e!=null)return{header:e.header,format:e.format!=null?Zwp(e.format):void 0,tolerance:e.tolerance}}function $wp(e){if(e!=null)return{components:e.components.map(t=>{switch(t){case"body":return OA.WebhookPayloadComponent.Body;case"timestamp":return OA.WebhookPayloadComponent.Timestamp;case"notification-url":return OA.WebhookPayloadComponent.NotificationUrl;case"message-id":return OA.WebhookPayloadComponent.MessageId}}),delimiter:e.delimiter,bodySort:exp(e["body-sort"])}}function exp(e){if(e!=null&&e==="alphabetical")return OA.WebhookPayloadBodySort.Alphabetical}function txp(e){if(e!=null)switch(e){case"sha256":return OA.WebhookSignatureAlgorithm.Sha256;case"sha1":return OA.WebhookSignatureAlgorithm.Sha1;case"sha384":return OA.WebhookSignatureAlgorithm.Sha384;case"sha512":return OA.WebhookSignatureAlgorithm.Sha512}}function oIa(e){if(e!=null)switch(e){case"base64":return OA.WebhookSignatureEncoding.Base64;case"hex":return OA.WebhookSignatureEncoding.Hex}}function rxp(e){if(e!=null)switch(e){case"rsa-sha256":return OA.AsymmetricAlgorithm.RsaSha256;case"rsa-sha384":return OA.AsymmetricAlgorithm.RsaSha384;case"rsa-sha512":return OA.AsymmetricAlgorithm.RsaSha512;case"ecdsa-sha256":return OA.AsymmetricAlgorithm.EcdsaSha256;case"ecdsa-sha384":return OA.AsymmetricAlgorithm.EcdsaSha384;case"ecdsa-sha512":return OA.AsymmetricAlgorithm.EcdsaSha512;case"ed25519":return OA.AsymmetricAlgorithm.Ed25519}}function aIa(e){if(e.type==="hmac")return OA.WebhookSignatureVerification.hmac({header:e.header,algorithm:txp(e.algorithm),encoding:oIa(e.encoding),signaturePrefix:e["signature-prefix"],payloadFormat:$wp(e["payload-format"]),timestamp:iIa(e.timestamp)});if(e.type==="asymmetric"){let t=rxp(e["asymmetric-algorithm"]);return t==null?void 0:OA.WebhookSignatureVerification.asymmetric({header:e.header,asymmetricAlgorithm:t,encoding:oIa(e.encoding),signaturePrefix:e["signature-prefix"],jwksUrl:e["jwks-url"],keyIdHeader:e["key-id-header"],timestamp:iIa(e.timestamp)})}}function sIa(e){let t=Lr(e,kn.WEBHOOK_SIGNATURE);if(!(t==null||typeof t=="boolean"))return aIa(t)}function cIa(e,t){let r=Lr(t,kn.WEBHOOK_SIGNATURE);return r!=null?typeof r=="boolean"?sIa(e):aIa(r):sIa(e)}function lIa({context:e,operationContext:t,source:r}){let{document:n,operation:i,path:o,method:s,baseBreadcrumbs:a,sdkMethodName:c}=t,u=[...a,"Payload"],l=[...a,"Response"],p=Rxr({parameters:[...t.pathItemParameters,...t.operationParameters],context:e,requestBreadcrumbs:u,path:o,httpMethod:s,source:r});if(s!=="POST"&&s!=="GET")return e.logger.warn(`Skipping webhook ${s.toUpperCase()} ${o}: Only POST and GET methods are currently supported`),[];let d=i.operationId??ixp({path:o,method:s,sdkMethodName:c}),f=i.responses?Nxr({operationContext:t,streamFormat:void 0,responses:i.responses,context:e,responseBreadcrumbs:l,source:r}):void 0,m=cIa(n,i);if(i.requestBody==null){if(p.queryParameters.length===0)return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Missing a request body and no query parameters`),[];let A=p.queryParameters.map(w=>({key:w.name,schema:w.schema,readonly:void 0,writeonly:void 0,audiences:[],conflict:{},nameOverride:w.parameterNameOverride,generatedName:My([...u,w.name],e.options.preserveSchemaIds),availability:w.availability})),y=zr.object({description:i.description,properties:A,nameOverride:void 0,generatedName:My(u,e.options.preserveSchemaIds),title:void 0,allOf:[],allOfPropertyConflicts:[],namespace:e.namespace,groupName:void 0,fullExamples:void 0,additionalProperties:!1,availability:void 0,encoding:void 0,source:r,inline:void 0,minProperties:void 0,maxProperties:void 0});return[{summary:i.summary,audiences:Lr(i,kn.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:d,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:My(u,e.options.preserveSchemaIds),payload:y,signatureVerification:m,multipartFormData:void 0,response:f?.value,description:i.description,examples:[],source:r}]}let h=Hn(i.requestBody)?e.resolveRequestBodyReference(i.requestBody):i.requestBody;return Object.entries(h.content).map(([A,y])=>KY({mediaType:A,mediaTypeObject:y,description:h.description,document:n,context:e,requestBreadcrumbs:[...a,"Payload"],source:r,namespace:e.namespace})).filter(A=>A!=null).map(A=>{if(A==null||A.type!=="json"&&A.type!=="formUrlEncoded"&&A.type!=="multipart"){e.logger.error(`Skipping webhook ${o} because non-json, non-formUrlEncoded, and non-multipart request body`);return}let y,I;return A.type==="multipart"?(y={name:A.name,properties:A.properties,description:A.description,source:A.source},I=zr.unknown({nameOverride:void 0,generatedName:My(u,e.options.preserveSchemaIds),title:void 0,description:A.description,availability:void 0,namespace:e.namespace,groupName:void 0,example:void 0})):I=A.schema,{summary:i.summary,audiences:Lr(i,kn.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:d,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:My(u,e.options.preserveSchemaIds),payload:I,signatureVerification:m,multipartFormData:y,response:f?.value,description:i.description,examples:nxp(A.fullExamples),source:r}}).filter(A=>A!=null)}function nxp(e){if(e==null)return[];let t=[];for(let r of e){let n=mbe(r.value);n!=null&&t.push({description:r.description,name:r.name,payload:n})}return t}function ixp({path:e,method:t,sdkMethodName:r}){if(r?.methodName!=null)return r.methodName;let n=oxp(e);if(n===e.toLowerCase())return e;let i=(0,uIa.createHash)("sha256").update(e).digest("hex").slice(0,8);return sxp(`${n}_${t.toLowerCase()}_${i}`)}function oxp(e){return e.replace(/[{$}#]/g,"").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_").toLowerCase().slice(0,64)}function sxp(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function b4i({context:e,pathItemContext:t,operation:r,convertToWebhook:n}){let i=Lr(r,kn.IGNORE);if(i!=null&&i){e.logger.debug(`${t.method.toUpperCase()} ${t.path} is marked with x-fern-ignore. Skipping.`);return}let o=axp(r,e),s=Ava(e.document,r),a={...t,sdkMethodName:o,baseBreadcrumbs:cxp({operation:r,sdkMethodName:o,httpMethod:t.method,path:t.path,shouldUseIdiomaticRequestNames:e.options.shouldUseIdiomaticRequestNames}),operation:r,operationParameters:r.parameters??[],pagination:s};if(n)return{type:"webhook",value:lIa({context:e,operationContext:a,source:e.source})};let c=hva(e.document,r);if(c==null&&uxp({operation:r,context:e})&&(c={type:"stream",format:"sse",terminator:void 0,resumable:s4i(e.document)??!1}),c!=null){let p=nIa({context:e,operationContext:a,streamingExtension:c});return p!=null?{type:"streaming",streaming:p.streaming,nonStreaming:p.nonStreaming}:void 0}let u=dva(r);if(u!=null){let p=$va({context:e,operationContext:a,asyncExtension:u,source:e.source});return{type:"async",async:p.async,sync:p.sync}}return{type:"http",value:vue({context:e,operationContext:a,streamFormat:void 0,source:e.source})}}function axp(e,t){let r=Lr(e,kn.SDK_METHOD_NAME),n=Lr(e,kn.SDK_GROUP_NAME)??[];if(r!=null){let i=typeof n=="string"?[n]:n;return i=t.resolveGroupName(i),{groupName:i,methodName:r}}}function cxp({sdkMethodName:e,operation:t,httpMethod:r,path:n,shouldUseIdiomaticRequestNames:i}){let o=[];if(e!=null){if(i&&o.push(e.methodName),e.groupName.length>0){let s=e.groupName[e.groupName.length-1];s!=null&&o.push(typeof s=="string"?s:s.name)}i||o.push(e.methodName)}else t.operationId!=null?o.push(t.operationId):o.push(si(`${r}_${n.split("/").join("_")}`));return o}function uxp({operation:e,context:t}){if(e.responses==null)return!1;for(let[r,n]of Object.entries(e.responses)){let i=parseInt(r);if(isNaN(i)||i<200||i>=300)continue;let o=Hn(n)?t.resolveResponseReference(n):n;if(o.content!=null&&bva(o.content))return!0}return!1}function pIa(e,t,r,n){let i=[],o=dIa(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=lxp({operation:a.operation}),u=b4i({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:c});u&&i.push(u)}return i}function fIa(e,t,r,n){let i=[],o=dIa(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=b4i({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:!0});c&&i.push(c)}return i}function dIa(e){let t=[];return e.get!=null&&t.push({method:g1.Get,operation:e.get}),e.post!=null&&t.push({method:g1.Post,operation:e.post}),e.put!=null&&t.push({method:g1.Put,operation:e.put}),e.delete!=null&&t.push({method:g1.Delete,operation:e.delete}),e.patch!=null&&t.push({method:g1.Patch,operation:e.patch}),e.head!=null&&t.push({method:g1.Head,operation:e.head}),t}function lxp({operation:e}){return Lr(e,[kn.WEBHOOK])??!1}Ut();function mIa(e){let t=Lr(e,kn.BASIC_AUTH_USERNAME_VARIABLE_NAME),r=Lr(e,kn.BASIC_AUTH_PASSWORD_VARIABLE_NAME);return{usernameVariable:t,passwordVariable:r}}function hIa(e){return Lr(e,kn.FERN_BASIC_AUTH)}function AIa(e,t,r,n){if(Hn(e)){if(n==null)throw new F({message:`Converting referenced security schemes requires context: ${JSON.stringify(e)}`,code:F.Code.InternalError});let i=n.resolveSecuritySchemeReference(e);return gIa(i,t,r)}return gIa(e,t,r)}function gIa(e,t,r){try{if(e.type==="apiKey"&&e.in==="header"){let n=Lr(e,oO.BEARER_FORMAT),i=Lr(e,kn.FERN_HEADER_AUTH);return h1.header({headerName:e.name,prefix:n!=null?"Bearer":i?.prefix,headerVariableName:i?.name??Lr(e,kn.HEADER_VARIABLE_NAME),headerEnvVar:i?.env,headerPlaceholder:i?.placeholder})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="bearer"){let n=Lr(e,kn.FERN_BEARER_TOKEN);return h1.bearer({tokenVariableName:n?.name??Lr(e,kn.BEARER_TOKEN_VARIABLE_NAME),tokenEnvVar:n?.env,tokenPlaceholder:n?.placeholder})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="basic"){let n=hIa(e),i=mIa(e);return h1.basic({usernameVariableName:n?.username?.name??i.usernameVariable,usernameEnvVar:n?.username?.env,usernamePlaceholder:n?.username?.placeholder,passwordVariableName:n?.password?.name??i.passwordVariable,passwordEnvVar:n?.password?.env,passwordPlaceholder:n?.password?.placeholder})}else{if(e.type==="openIdConnect")return h1.bearer({tokenVariableName:void 0,tokenEnvVar:void 0,tokenPlaceholder:void 0});if(e.type==="oauth2")return h1.oauth({scopesEnum:pxp(e,t)})}}catch(n){r.logger.debug(`Error converting security scheme: ${n?.message}`)}r.logger.debug(`Skipping security scheme: ${JSON.stringify(e,null)} - not currently supported. Please reach out to Fern support team!`)}function pxp(e,t){let r=e.flows.authorizationCode?.scopes??e.flows.clientCredentials?.scopes??e.flows.implicit?.scopes??e.flows.password?.scopes;if(r!=null){let n=fbe({nameOverride:void 0,generatedName:"OauthScope",title:void 0,enumValues:Object.keys(r),fernEnum:Object.fromEntries(Object.entries(r).map(([o,s])=>[o,{description:s}])),_default:void 0,description:void 0,availability:void 0,enumVarNames:void 0,wrapAsOptional:!1,wrapAsNullable:!1,namespace:void 0,groupName:void 0,context:void 0,source:t,inline:void 0}),i=fd(n);if(i.type==="enum")return i}}function yIa(e){return Lr(e,kn.BASE_PATH)}as();var fxp=Bt.record(Bt.string(),Bt.object({summary:Bt.string().optional(),description:Bt.string().optional()}));function bIa({document:e,context:t}){return p2t(e,kn.GROUPS,fxp,t.logger)}function EIa({context:e,document:t}){return Lr(t,kn.FERN_VERSION)??void 0}function vIa(e){let t=Lr(e,kn.FERN_GLOBAL_HEADERS),r=[];for(let n of t??[])r.push({header:n.header,name:n.name,optional:n.optional,env:n.env,clientDefault:n["x-fern-default"],schema:n.type!=null?f2t({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function IIa(e){let t=Lr(e,kn.FERN_IDEMPOTENCY_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?f2t({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}Ut();function CIa(e,t){let r=Lr(e,kn.SDK_VARIABLES);return r==null?{}:Object.fromEntries(Object.entries(r).map(([n,i])=>{if(i.type==="string")return[n,{nameOverride:void 0,generatedName:My([n],t),title:i.title,schema:Yl.string({default:SYe(i),pattern:i.pattern,format:i.format,minLength:i.minLength,maxLength:i.maxLength}),description:i.description,availability:void 0,namespace:void 0,groupName:void 0}];throw new F({message:`Variable ${n} has unsupported schema ${JSON.stringify(i)}`,code:F.Code.ValidationError})}))}var dxp="webhooks";function wIa(e){return Lr(e,dxp)??{}}var x2t=class extends RYe{nonRequestReferencedSchemas=new Set;twoOrMoreRequestsReferencedSchemas=new Set;singleRequestReferencedSchemas=new Set;discriminatedUnionReferences={};discriminatedUnionMetadata={};schemasToExclude=new Set;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){super({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s})}getDummy(){return new KNe({document:this.document,taskContext:this.taskContext,options:this.options,source:this.source,namespace:this.namespace})}markSchemaAsReferencedByNonRequest(t){this.nonRequestReferencedSchemas.add(t)}markSchemaAsReferencedByRequest(t){this.singleRequestReferencedSchemas.has(t)?this.twoOrMoreRequestsReferencedSchemas.add(t):this.singleRequestReferencedSchemas.add(t)}getReferencedSchemas(){return new Set([...this.nonRequestReferencedSchemas,...this.twoOrMoreRequestsReferencedSchemas])}markReferencedByDiscriminatedUnion(t,r,n){let i=this.discriminatedUnionReferences[t.$ref];i!=null?(i.discriminants.add(r),i.numReferences+=n):this.discriminatedUnionReferences[t.$ref]={discriminants:new Set([r]),numReferences:n}}getReferencesFromDiscriminatedUnion(t){return this.discriminatedUnionReferences[t.$ref]}markSchemaWithDiscriminantValue(t,r,n){let i=this.discriminatedUnionMetadata[t.$ref];i!=null?i.discriminants.set(r,n):this.discriminatedUnionMetadata[t.$ref]={discriminants:new Map([[r,n]])}}getDiscriminatedUnionMetadata(t){return this.discriminatedUnionMetadata[t.$ref]}excludeSchema(t){this.schemasToExclude.add(t)}isSchemaExcluded(t){return this.schemasToExclude.has(t)}};function xIa(e){return Lr(e,kn.RESOLUTIONS)}function SIa({openapi:e}){let t=xIa(e);if(t==null)return e;let r={};for(let n of t){let i=`#/components/schemas/${n.name}`;for(let o of n.resolutions)e=mxp({openapi:e,schemaReference:o,schemaName:n.name}),e=TIa({openapi:e,replaceReference:o,schemaReference:i,replacedReferences:r}),r={...r,...Object.fromEntries(n.resolutions.map(s=>[i,s]))}}return e}function mxp({openapi:e,schemaReference:t,schemaName:r}){let n=t.replace("#/","").split("/").map(o=>o.replaceAll("~1","/")),i=e;for(let o of n){let s=i[o];if(s==null)return e;i=s}return e.components==null&&(e.components={}),e.components.schemas==null&&(e.components.schemas={}),e.components.schemas[r]=i,e}function TIa({openapi:e,replaceReference:t,schemaReference:r,replacedReferences:n}){let i=Object.keys(n).filter(c=>t.startsWith(c)).sort((c,u)=>u.length-c.length)[0];if(i!=null){let c=n[i];if(c!=null){let u=r.replace(i,c);return TIa({openapi:e,replaceReference:t,schemaReference:u,replacedReferences:{}})}}let o=t.replace("#/","").split("/").map(c=>c.replaceAll("~1","/")),s=e;for(let c of o.slice(0,-1)){let u=s[c];if(u==null)return e;s=u}let a=o[o.length-1];return a==null||(s[a]={$ref:r}),e}function OIa({openApi:e,taskContext:t,options:r,source:n,namespace:i}){e=SIa({openapi:e}),pxr();let o=new x2t({document:e,taskContext:t,authHeaders:new Set,options:r,source:n,namespace:i}),s=Object.fromEntries(Object.entries(e.components?.securitySchemes??{}).map(([X,ee])=>{let ne=AIa(ee,n,t,o);return ne==null?null:[X,ne]}).filter(X=>X!==null)),a=bxr(e.security?.filter(X=>X!=null)),c=new Set(Object.entries(s).map(([X,ee])=>ee.type==="basic"||ee.type==="bearer"||ee.type==="oauth"?"Authorization":ee.type==="header"?ee.headerName:null).filter(X=>X!=null)),u=CIa(e,r.preserveSchemaIds),l=vIa(e),p=IIa(e),d=r.audiences??[],f=[],m=[],h=new x2t({document:e,taskContext:t,authHeaders:c,options:r,source:n,namespace:i});h.filter.hasEndpoints()&&t.logger.debug("Endpoint filter applied..."),Object.entries(e.paths??{}).forEach(([X,ee])=>{if(ee==null)return;let ne=pIa(X,ee,e,h);for(let pe of ne){let ge=BIa({operation:pe});if(!(d.length>0&&!d.some(ue=>ge.includes(ue))))switch(pe.type){case"async":f.push(...pe.sync),f.push(...pe.async);break;case"http":f.push(...pe.value);break;case"streaming":f.push(...pe.streaming),pe.nonStreaming&&f.push(...pe.nonStreaming);break;case"webhook":m.push(...pe.value);break;default:we(pe)}}}),Object.entries(wIa(e)).forEach(([X,ee])=>{if(ee==null)return;t.logger.debug(`Converting path ${X}`);let ne=fIa(X,ee,e,h);for(let pe of ne){let ge=BIa({operation:pe});d.length>0&&!d.some(ue=>ge.includes(ue))||m.push(...pe.value)}});let A=Object.fromEntries(Object.entries(e.components?.schemas??{}).map(([X,ee])=>{let ne=Lr(ee,kn.SDK_NAMESPACE);if(!Hn(ee)){let pe=Lr(ee,kn.IGNORE);if(pe!=null&&pe)return[];if(Kva.has(X))return[X,fc({...ee,"x-fern-type-name":`${X}Body`},!1,!1,h,[X],n,ne??i)]}return[X,fc(ee,!1,!1,h,[X],n,ne??i)]}).filter(X=>X.length>0)),y=hxp(A,h,n),I=Axp(y,h),w=VY(),C={};for(let[X,ee]of Object.entries(I)){let ne=fd(ee);if(h.isSchemaExcluded(X))continue;let pe=w.getUniqueSchemaId(X,h.logger,r.resolveSchemaCollisions);C[pe]=ne}let x=new hbe(I,h.nonRequestReferencedSchemas,h),B=m.map(X=>{let ne=X.examples;if(!r.disableExamples&&ne.length===0){let pe=x.buildExample({schema:X.payload,exampleId:void 0,example:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});pe!=null&&(ne=[{name:void 0,description:void 0,payload:pe}])}return{...X,payload:fd(X.payload),examples:ne}}),O=new mxr(I,h,l),k=f.map(X=>{let ee=X.examples,ne=ee;if(!r.disableExamples&&(ee.length===0||ee.every(A2t))){let ue=O.buildEndpointExample(X);ue.length>0&&(ne=[...ue,...ee.filter(he=>!A2t(he))])}let pe=X.request,ge=X.response;return{...X,request:pe?.type==="json"||pe?.type==="formUrlEncoded"?{...pe,schema:fd(pe.schema)}:pe,response:ge?.type==="json"?{...ge,schema:fd(ge.schema)}:ge,queryParameters:X.queryParameters.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,explode:ue.explode,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),pathParameters:X.pathParameters.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,variableReference:ue.variableReference,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),headers:X.headers.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,env:ue.env,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),examples:ne,errors:Cp(X.errors,ue=>{let he=ue.fullExamples?.map(Le=>{let ke=mbe(Le.value);if(ke!=null)return{name:Le.name,description:Le.description,example:ke}}).filter(Ha);if(he?.length===0){let Le=x.buildExample({schema:ue.schema,example:void 0,exampleId:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});Le!=null&&he.push({name:void 0,description:void 0,example:Le})}return{generatedName:ue.generatedName,nameOverride:ue.nameOverride,schema:fd(ue.schema),description:ue.description,source:ue.source,examples:he}}),retries:X.retries}});O.finalize();let P=bIa({document:e,context:h});return{apiVersion:EIa({context:h,document:e}),basePath:yIa(e),title:e.info.title??"",description:e.info.description,groups:Object.fromEntries(Object.entries(P??{}).map(([X,ee])=>[X,{summary:ee.summary??void 0,description:ee.description??void 0}])),servers:(e.servers??[]).map(X=>Dxr(X,{groupMultiApiEnvironments:r.groupMultiApiEnvironments})),websocketServers:[],tags:{tagsById:Object.fromEntries((e.tags??[]).map(X=>[X.name,{id:X.name,description:X.description}])),orderedTagIds:e.tags?.map(X=>X.name)},endpoints:k,webhooks:B,channels:{},groupedSchemas:BYe(i,C),securitySchemes:s,security:a,hasEndpointsMarkedInternal:k.some(X=>X.internal),nonRequestReferencedSchemas:h.getReferencedSchemas(),variables:u,globalHeaders:l,idempotencyHeaders:p}}function hxp(e,t,r){if(t.options.removeDiscriminantsFromSchemas===zn.RemoveDiscriminantsFromSchemas.Never)return e;let n=gxp(e,t),i={};for(let[o,s]of Object.entries(e)){if(s.type!=="object"){i[o]=s;continue}let a={$ref:`#/components/schemas/${o}`},c=t.getReferencesFromDiscriminatedUnion(a);if(c==null){i[o]=s;continue}if(t.getReferencedSchemas().has(o)){i[o]=s;continue}let l={...s,type:"object",properties:s.properties.filter(d=>!c.discriminants.has(d.key)),allOfPropertyConflicts:s.allOfPropertyConflicts.filter(d=>!c.discriminants.has(d.propertyKey)),source:r};i[o]=l;let p=E4i({schema:s,schemas:e});for(let d of[...new Set(p)]){if(n.has(d))continue;let f=i[d]??e[d];f==null||f.type!=="object"||(i[d]={...f,type:"object",properties:f.properties.filter(m=>!c.discriminants.has(m.key)),allOfPropertyConflicts:f.allOfPropertyConflicts.filter(m=>!c.discriminants.has(m.propertyKey))})}}return i}function gxp(e,t){let r=new Set;for(let[n,i]of Object.entries(e)){if(i.type!=="object")continue;let o={$ref:`#/components/schemas/${n}`};if(t.getReferencesFromDiscriminatedUnion(o)==null)for(let s of E4i({schema:i,schemas:e}))r.add(s)}return r}function Axp(e,t){let r={};for(let[n,i]of Object.entries(e)){if(i.type!=="object"){r[n]=i;continue}let o={$ref:`#/components/schemas/${n}`},s=t.getDiscriminatedUnionMetadata(o);if(s==null){r[n]=i;continue}let a=[];for(let u of i.properties)if(s.discriminants.has(u.key)){let l=s.discriminants.get(u.key);l!=null&&a.push({...u,schema:zr.literal({nameOverride:void 0,generatedName:My([i.generatedName,l],t.options.preserveSchemaIds),title:void 0,value:Qy.string(l),namespace:void 0,groupName:void 0,description:void 0,availability:i.availability})})}else a.push(u);let c={...i,type:"object",properties:a};r[n]=c}return r}function E4i({schema:e,schemas:t}){let r=[];for(let n of e.allOf){r.push(n.schema);let i=t[n.schema];i!=null&&i.type==="object"&&r.push(...E4i({schema:i,schemas:t}))}return r}function jxr(e){return[...new Set(e)]}function BIa({operation:e}){let t=[];switch(e.type){case"async":t=jxr(e.async.flatMap(r=>r.audiences));break;case"http":t=jxr(e.value.flatMap(r=>r.audiences));break;case"streaming":t=jxr(e.streaming.flatMap(r=>r.audiences));break;case"webhook":t=jxr(e.value.flatMap(r=>r.audiences));break;default:we(e)}return t}function pje({context:e,documents:t,options:r}){let n={apiVersion:void 0,title:void 0,description:void 0,basePath:void 0,servers:[],websocketServers:[],tags:{tagsById:{},orderedTagIds:void 0},hasEndpointsMarkedInternal:!1,endpoints:[],webhooks:[],channels:{},groupedSchemas:{rootSchemas:{},namespacedSchemas:{}},variables:{},nonRequestReferencedSchemas:new Set,securitySchemes:{},security:void 0,globalHeaders:[],idempotencyHeaders:[],groups:{}},i=0;for(let o of t)try{let s=o.source!=null?o.source:mD.openapi({file:"<memory>"});switch(o.type){case"openapi":{let a=OIa({taskContext:e,openApi:o.value,options:u_({options:o.settings,overrides:r}),source:s,namespace:o.namespace});n=Ixp(n,a,u_({options:o.settings,overrides:r})),i++;break}case"asyncapi":{let a=fva({document:o.value,taskContext:e,options:u_({options:o.settings,overrides:r}),source:s,asyncApiOptions:yxp({options:o.settings}),namespace:o.namespace});a.servers!=null&&(n.websocketServers=[...n.websocketServers,...a.servers.map(c=>({...c,audiences:void 0,description:void 0,defaultUrl:void 0,urlTemplate:void 0,variables:void 0}))]),a.channels!=null&&(n.channels={...n.channels,...a.channels}),a.groupedSchemas!=null&&(n.groupedSchemas=Qxr(n.groupedSchemas,a.groupedSchemas,r)),a.basePath!=null&&(n.basePath=a.basePath),i++;break}default:we(o)}}catch(s){e.logger.error(`Failed to parse ${o.type} document ${o.type==="openapi"?o.value.info?.title:o.source?.file}`),s instanceof Error&&e.logger.error(s.message,s.stack?`
|
|
3024
|
+
`);try{OYe.writeFileSync(n,i,"utf8"),this.logger.info(`Missing examples report written to: ${n}`)}catch(o){this.logger.warn(`Failed to write missing examples report to ${n}:`,String(o))}}finalize(){}convertExampleToJson(t){switch(t.type){case"primitive":return t.value;case"array":return t.value.map(r=>this.convertExampleToJson(r));case"object":{let r={};return Object.entries(t.properties).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"map":{let r={};return t.value.forEach(n=>{r[String(n.key)]=this.convertExampleToJson(n.value)}),r}case"oneOf":if(t.value.type==="undiscriminated")return this.convertExampleToJson(t.value.value);{let r={};return Object.entries(t.value.value).forEach(([n,i])=>{r[n]=this.convertExampleToJson(i)}),r}case"enum":return t.value;case"literal":return t.value;case"null":return null;case"unknown":return this.convertExampleToJson(t.value);default:return t}}getSchemaDescription(t){if("description"in t)return t.description}getSchemaTypeName(t){switch(t.type){case"primitive":return`primitive (${t.schema.type})`;case"object":return t.generatedName||"object";case"array":return"array";case"map":return"map";case"optional":return`optional (${this.getSchemaTypeName(t.value)})`;case"nullable":return`nullable (${this.getSchemaTypeName(t.value)})`;case"reference":return t.generatedName||"reference";case"enum":return t.generatedName||"enum";case"literal":return"literal";case"oneOf":return"oneOf";case"unknown":return"unknown";default:return"unknown"}}buildEndpointExample(t){let r=cCp(t.request),n=uCp(t.response);if(r?.type==="unsupported"||n?.type==="unsupported")return[];let i=[];if(r!=null&&r.type==="present"){let p=this.isSchemaRequired(r.schema);if(r.examples.length===0){let d=this.exampleTypeFactory.buildExample({skipReadonly:i4i(t.method),schema:r.schema,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});d!=null?(i.push([void 0,d]),this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(r.schema),autoGeneratedExample:this.convertExampleToJson(d)})):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(r.schema)})}else for(let{name:d,value:f}of r.examples){let m=this.exampleTypeFactory.buildExample({skipReadonly:i4i(t.method),schema:r.schema,exampleId:d,example:f,options:{isParameter:!1,ignoreOptionals:!0}});m!=null?i.push([d,m]):this.addMissingExampleRecord(t,"request",this.getSchemaTypeName(r.schema),`Failed to build example from provided data (example id: ${d})`,{schemaDescription:this.getSchemaDescription(r.schema)})}if(p&&i.length===0)return this.logger.trace(`Failed to generate required request example for ${t.method.toUpperCase()} ${t.path}`),[]}let o=[];if(n!=null&&n.type==="present"){let p=this.isSchemaRequired(n.schema);if(n.examples.length===0){let d=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:void 0,example:void 0,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});d!=null?(t.response?.type==="json"?o.push([void 0,s_.withoutStreaming(d)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,s_.withStreaming({sse:t.response?.type==="streamingSse",events:[d]})]),this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"No user-provided examples found in OpenAPI spec",{schemaDescription:this.getSchemaDescription(n.schema),autoGeneratedExample:this.convertExampleToJson(d)})):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),"Auto-generation failed (schema too complex or circular references)",{schemaDescription:this.getSchemaDescription(n.schema)})}else for(let{name:d,value:f}of n.examples){let m=this.exampleTypeFactory.buildExample({skipReadonly:!1,schema:n.schema,exampleId:d,example:f,options:{maxDepth:this.context.options.exampleGeneration?.response?.["max-depth"]??3,isParameter:!1,ignoreOptionals:!1}});m!=null?t.response?.type==="json"?o.push([d,s_.withoutStreaming(m)]):(t.response?.type==="streamingJson"||t.response?.type==="streamingSse")&&o.push([void 0,s_.withStreaming({sse:t.response?.type==="streamingSse",events:[m]})]):this.addMissingExampleRecord(t,"response",this.getSchemaTypeName(n.schema),`Failed to build example from provided data (example id: ${d})`,{schemaDescription:this.getSchemaDescription(n.schema)})}if(p&&o.length===0)return this.logger.trace(`Failed to generate required response example for ${t.method.toUpperCase()} ${t.path}`),[]}let s=[];for(let p of t.pathParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for path parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&s.push({name:p.name,parameterNameOverride:p.parameterNameOverride,value:f})}let a=[];for(let p of t.queryParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&f.type!=="array"&&(this.logger.debug(`Expected a primitive or array example but got ${f.type} for query parameter ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&a.push({name:p.name,value:f})}let c=[];for(let p of t.headers){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:void 0,options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});if(f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for header ${p.name} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),d&&f==null)return[];f!=null&&c.push({name:p.name,value:f})}for(let p of this.globalHeaders){let d=p.schema!=null?p_(p.schema):zr.primitive({nameOverride:void 0,generatedName:"",title:void 0,description:void 0,availability:void 0,namespace:void 0,groupName:void 0,schema:$i.string({default:void 0,pattern:void 0,maxLength:void 0,minLength:void 0,example:void 0,format:void 0})}),f=this.exampleTypeFactory.buildExample({schema:d,exampleId:void 0,example:void 0,options:{name:p.header,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(this.logger.debug(`Expected a primitive example but got ${f.type} for global header ${p.header} for ${t.method.toUpperCase()} ${t.path}`),f=void 0),f!=null&&c.push({name:p.header,value:f})}let u=[];t.request!=null&&t.response!=null?u=aCp(i,o):t.request!=null?u=i.map(([p,d])=>({id:p,request:d,response:void 0})):t.response!=null&&(u=o.map(([p,d])=>({id:p,request:void 0,response:d})));let l=t.examples.filter(p=>A2t(p)).flatMap(p=>{if(p.type==="unknown"){if(p.value!=null){let d=p.value["code-samples"];if(d!=null)return this.convertCodeSamples(d)}return}else return p.codeSamples}).filter(p=>Ha(p));return u.length===0?[o_.full({name:void 0,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:void 0,response:void 0,codeSamples:l})]:u.map(({id:p,request:d,response:f})=>o_.full({name:p,description:void 0,pathParameters:s,queryParameters:a,headers:c,request:d,response:f,codeSamples:l}))}convertCodeSamples(t){return t.map(r=>"language"in r?kY.language({name:r.name??void 0,description:r.docs??void 0,language:r.language,code:r.code,install:r.install??void 0}):kY.sdk({name:r.name??void 0,description:r.docs??void 0,sdk:r.sdk==="c#"?A1.Csharp:r.sdk,code:r.code})).filter(Ha)}isSchemaRequired(t){return dxr(this.getResolvedSchema(t))}getResolvedSchema(t){return t}};function aCp(e,t){let r=[];if(e.length<=1){let[i,o]=e[0]??[];if(t.length===0)return r.push({id:i,request:o,response:void 0}),r;for(let[s,a]of t)r.push({id:s??i,request:o,response:a});return r}if(t.length<=1){let[i,o]=t[0]??[];if(t.length===0)return r.push({id:i,request:void 0,response:o}),r;for(let[s,a]of e)r.push({id:s??i,request:a,response:o});return r}let n=new Set;for(let[i,o]of e){let s=t.find(([c])=>c==null)?.[1]??t[0]?.[1];if(i==null){if(s==null)continue;r.push({id:void 0,request:o,response:s});continue}let a=!1;for(let c=0;c<t.length;c++){let[u,l]=t[c];u==null||n.has(c)||i===u&&(r.push({id:i,request:o,response:l}),u!=null&&n.add(c),a=!0)}!a&&s!=null&&r.push({id:i,request:o,response:s})}for(let i=0;i<t.length;i++){if(n.has(i))continue;let[o,s]=t[i],a=e.find(([c])=>c==null)?.[1]??e[0]?.[1];a!=null&&r.push({id:o,request:a,response:s})}return r}function cCp(e){if(e!=null)return e.type==="multipart"?{type:"present",schema:lCp(e),examples:[]}:e.type==="json"||e.type==="formUrlEncoded"?{type:"present",schema:e.schema,examples:e.fullExamples??[]}:{type:"unsupported"}}function uCp(e){if(e!=null)return e.type!=="json"&&e.type!=="streamingJson"&&e.type!=="streamingSse"?{type:"unsupported"}:{type:"present",schema:e.schema,examples:e.fullExamples??[]}}function B9(e){switch(e.type){case"primitive":case"enum":case"literal":return!0;case"unknown":return B9(e);case"array":case"object":case"map":return!1;case"oneOf":switch(e.value.type){case"discriminated":return!1;case"undiscriminated":return B9(e.value.value);default:return!1}case"null":return!0;default:we(e)}}function lCp(e){return zr.object({properties:e.properties.map(t=>t.schema.type==="file"?null:{key:t.key,schema:p_(t.schema.value),audiences:[],conflict:{},generatedName:t.key,nameOverride:void 0,availability:void 0,readonly:void 0,writeonly:void 0,inline:void 0}).filter(Ha),allOf:[],allOfPropertyConflicts:[],fullExamples:void 0,description:e.description,nameOverride:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,additionalProperties:!1,availability:void 0,encoding:void 0,source:e.source,inline:void 0,minProperties:void 0,maxProperties:void 0})}var PYe=class{exampleTypeFactory;schemas;constructor(t,r){this.exampleTypeFactory=new hbe(t,new Set,r),this.schemas=t}buildWebsocketSessionExamplesForExtension({context:t,extensionExamples:r,handshake:n,source:i,namespace:o}){let s=[];for(let a of r){let c=[];for(let p of n.queryParameters){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.queryParameters?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(f=void 0),!(d&&f==null)&&f!=null&&c.push({name:p.name,value:f})}let u=[];for(let p of n.headers){let d=this.isSchemaRequired(p.schema),f=this.exampleTypeFactory.buildExample({schema:p.schema,exampleId:void 0,example:a.headers?.[p.name],options:{name:p.name,isParameter:!0,ignoreOptionals:!0}});f!=null&&!B9(f)&&(f=void 0),!(d&&f==null)&&f!=null&&u.push({name:p.name,value:f})}let l=[];for(let p of a.messages){let d=t.getExampleMessageReference(p),f=t.resolveMessageReference({$ref:d}),m=Hn(f.payload)?t.resolveSchemaReference(f.payload):f.payload,h=this.exampleTypeFactory.buildExample({schema:fc(m,!1,!1,t,[p.messageId],i,o),exampleId:void 0,example:p.value,options:{isParameter:!1,ignoreOptionals:!0}});h!=null&&l.push({messageType:p.type,payload:h,description:void 0})}s.push({name:a.summary,queryParameters:c,headers:u,description:a.description,messages:l})}return s}buildWebsocketSessionExample({handshake:t,messages:r}){let n={name:void 0,queryParameters:[],headers:[],description:void 0,messages:[]},i=[];for(let s of t.queryParameters){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!B9(c)&&(c=void 0),a&&c==null)return;c!=null&&i.push({name:s.name,value:c})}let o=[];for(let s of t.headers){let a=this.isSchemaRequired(s.schema),c=this.exampleTypeFactory.buildExample({schema:s.schema,exampleId:void 0,example:void 0,options:{name:s.name,isParameter:!0,ignoreOptionals:!0}});if(c!=null&&!B9(c)&&(c=void 0),a&&c==null)return;c!=null&&o.push({name:s.name,value:c})}for(let s of r){let a=this.exampleTypeFactory.buildExample({schema:s.payload,exampleId:void 0,example:void 0,options:{isParameter:!1,ignoreOptionals:!0}});a!=null&&n.messages.push({messageType:s.type,payload:a,description:void 0})}return n}isSchemaRequired(t){return dxr(this.getResolvedSchema(t))}getResolvedSchema(t){for(;t.type==="reference";){let r=this.schemas[t.schema];if(r==null)throw new F({message:`Unexpected error: Failed to resolve schema reference: ${t.schema}`,code:F.Code.InternalError});t=r}return t}};var Ly={FERN_PARAMETER_OPTIONAL:"x-fern-optional",FERN_CHANNEL_ADDRESS:"x-fern-address",FERN_DISPLAY_NAME:"x-fern-display-name",FERN_SDK_GROUP_NAME:"x-fern-sdk-group-name",FERN_SDK_METHOD_NAME:"x-fern-sdk-method-name",FERN_EXAMPLES:"x-fern-examples",BASE_PATH:"x-fern-base-path",FERN_ENUM:"x-fern-enum",IGNORE:"x-fern-ignore",FERN_PARAMETER_NAME:"x-fern-parameter-name",FERN_SERVER_NAME:"x-fern-server-name"};function hxr(e){return Lr(e,Ly.FERN_EXAMPLES)??[]}function gxr(e,t){return t.includes("://")?t:`${e}://${t}`}function Axr(e){return e.startsWith("/")?e:"/"+e}function ava({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){let o={},s={};for(let[u,l]of Object.entries(i.components?.schemas??{})){let p=fc(l,!1,!1,e,[u],r,e.namespace);o[u]=p}let a=new PYe(o,e),c={};for(let[u,l]of Object.entries(i.servers??{})){let p=Lr(l,Ly.FERN_SERVER_NAME);c[u]={name:p??u,url:gxr(l.protocol,l.url)}}for(let[u,l]of Object.entries(i.channels??{})){let p=Lr(l,Ly.IGNORE);if(p!=null&&p){e.logger.debug(`Channel ${u} is marked with x-fern-ignore. Skipping.`);continue}let d=[];if(l.parameters!=null)for(let[y,I]of Object.entries(l.parameters??{})){let w=Lr(I,Ly.FERN_PARAMETER_NAME);d.push({name:y,description:I.description,parameterNameOverride:w,schema:I.schema!=null?fc(I.schema,!1,!1,e,t,r,e.namespace):zr.primitive({schema:$i.string({default:void 0,pattern:void 0,format:void 0,maxLength:void 0,minLength:void 0,example:void 0}),description:void 0,availability:void 0,generatedName:"",title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}),variableReference:void 0,availability:yw(I),source:r,explode:void 0,clientDefault:void 0})}let f=[],m=[];if(l.bindings?.ws!=null){if(l.bindings.ws.headers!=null){let y=l.bindings.ws.headers.required??[];for(let[I,w]of Object.entries(l.bindings.ws.headers.properties??{})){if(Hn(w)){let O=e.resolveSchemaReference(w),k=y.includes(I),[P,U]=e.options.coerceOptionalSchemasToNullable?[!1,!k]:[!k,!1];f.push({name:I,schema:x3(w,P,U,e,t,void 0,r,e.namespace),description:O.description,parameterNameOverride:void 0,env:void 0,availability:yw(O),source:r,clientDefault:void 0});continue}let C=y.includes(I),[x,B]=e.options.coerceOptionalSchemasToNullable?[!1,!C]:[!C,!1];f.push({name:I,schema:fc(w,x,B,e,[...t,I],r,e.namespace),description:w.description,parameterNameOverride:void 0,env:void 0,availability:yw(w),source:r,clientDefault:void 0})}}if(l.bindings.ws.query!=null){let y=l.bindings.ws.query.required??[];for(let[I,w]of Object.entries(l.bindings.ws.query.properties??{})){if(Hn(w)){let O=e.resolveSchemaReference(w),k=y.includes(I),[P,U]=e.options.coerceOptionalSchemasToNullable?[!1,!k]:[!k,!1];m.push({name:I,schema:x3(w,P,U,e,t,void 0,r,e.namespace),description:O.description,parameterNameOverride:void 0,availability:yw(O),source:r,explode:void 0,clientDefault:void 0});continue}let C=y.includes(I),[x,B]=e.options.coerceOptionalSchemasToNullable?[!1,!C]:[!C,!1];m.push({name:I,schema:fc(w,x,B,e,[...t,I],r,e.namespace),description:w.description,parameterNameOverride:void 0,availability:yw(w),source:r,explode:void 0,clientDefault:void 0})}}}let h;l.publish!=null&&("oneOf"in l.publish.message?h=ova({generatedName:l.publish.operationId??"PublishEvent",event:l.publish,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):h=sva({action:"Publish",channelPath:u,message:l.publish.message,context:e,source:r}));let A;if(l.subscribe!=null&&("oneOf"in l.subscribe.message?A=ova({generatedName:l.subscribe.operationId??"SubscribeEvent",event:l.subscribe,breadcrumbs:t,context:e,source:r,options:e.options,asyncApiOptions:n}):A=sva({action:"Subscribe",channelPath:u,message:l.subscribe.message,context:e,source:r})),f.length>0||m.length>0||h!=null||A!=null){let y=hxr(l),I=[];if(y.length>0)I=a.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:y,handshake:{headers:f,queryParameters:m},source:r,namespace:e.namespace});else{let B=[];h!=null&&B.push({type:"publish",payload:h}),A!=null&&B.push({type:"subscribe",payload:A});let O=a.buildWebsocketSessionExample({handshake:{headers:f,queryParameters:m},messages:B});O!=null&&I.push(O)}let w=Lr(l,Ly.FERN_CHANNEL_ADDRESS),C=w??Axr(u),x=[];h!=null&&x.push({origin:"client",name:"publish",displayName:l.publish!=null?Lr(l.publish,Ly.FERN_DISPLAY_NAME):void 0,body:fd(h),methodName:l.publish!=null?Lr(l.publish,Ly.FERN_SDK_METHOD_NAME):void 0}),A!=null&&x.push({origin:"server",name:"subscribe",displayName:l.subscribe!=null?Lr(l.subscribe,Ly.FERN_DISPLAY_NAME):void 0,body:fd(A),methodName:l.subscribe!=null?Lr(l.subscribe,Ly.FERN_SDK_METHOD_NAME):void 0}),s[u]={audiences:Lr(l,kn.AUDIENCES)??[],handshake:{headers:f.map(B=>({...B,schema:fd(B.schema),env:B.env})),queryParameters:m.map(B=>({...B,schema:fd(B.schema)})),pathParameters:d.map(B=>({...B,schema:fd(B.schema)}))},groupName:e.resolveGroupName([Lr(l,Ly.FERN_SDK_GROUP_NAME)??u]),messages:x,servers:(l.servers?.map(B=>c[B])??Object.values(c)).filter(B=>B!=null&&B.name!=null).map(B=>({...B,name:B.name})),summary:Lr(l,Ly.FERN_DISPLAY_NAME),connectMethodName:Lr(l,Ly.FERN_SDK_METHOD_NAME),path:C,description:l.description,examples:I,source:r}}}return{groupedSchemas:BYe(e.namespace,o),channels:s??void 0,servers:Object.values(c).map(u=>({...u,name:u.name})),basePath:Lr(i,Ly.BASE_PATH)}}function ova({generatedName:e,event:t,context:r,breadcrumbs:n,source:i,options:o,asyncApiOptions:s}){if("oneOf"in t.message&&t.message.oneOf!=null){let a=[],c=[];for(let u of t.message.oneOf){let l,p={type:"notFound"};if(Hn(u)){let d=r.resolveMessageReference(u);!Hn(d.payload)&&s.naming==="v2"?(p=d.name?{type:"name",name:d.name}:p,l={...d.payload,title:d.name??d.payload.title,description:d.name??d.payload.description}):l=d.payload}else l=u;c.push(p),a.push(l)}return dbe({description:t.description??t.message.description,availability:yw(t.message),subtypes:a,nameOverride:t.operationId,generatedName:e,title:t.message.title,groupName:void 0,wrapAsOptional:!1,wrapAsNullable:!1,breadcrumbs:n,context:r,encoding:void 0,source:i,namespace:r.namespace,subtypeSuffixOverrides:s.naming==="v2"?c:[]})}}function sva({action:e,channelPath:t,message:r,context:n,source:i}){if(r.payload!=null){let o=r.payload;return Hn(r.payload)&&(o=n.resolveSchemaReference(r.payload)),fc(o,!1,!1,n,[t,e],i,n.namespace)}}Ut();var yxr=class extends TYe{getExampleMessageReference(t){let r=t.channelId??this.getDefaultChannelId();if(r==null)throw new F({message:"Cannot resolve example message reference: no channelId provided and no channels found in document",code:F.Code.InternalError});return`#/channels/${r}/messages/${t.messageId}`}getDefaultChannelId(){return Object.keys(this.document.channels??{})[0]}resolveParameterReference(t){let r="#/components/parameters/";if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(r))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let n=t.$ref.substring(r.length),i=this.document.components.parameters[n];if(i==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return"$ref"in i?this.resolveParameterReference(i):i}resolveMessageReference(t,r=!1){let n="#/channels/",i="#/components/messages/";if(t==null)throw new F({message:"Cannot resolve message reference: message is null or undefined",code:F.Code.InternalError});if(!t.$ref)throw new F({message:"Cannot resolve message reference: message.$ref is undefined or empty",code:F.Code.ReferenceError});if(t.$ref.startsWith(n)){let c=t.$ref.split("/"),u=c[2],l=c[4],p=u?.replace(/~1/g,"/").replace(/~0/g,"~");if(p==null||l==null||!this.document.channels?.[p])throw new F({message:`Failed to resolve message reference ${t.$ref} in channel ${p}`,code:F.Code.ReferenceError});let f=this.document.channels[p].messages?.[l];if(f==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return"$ref"in f&&!r?this.resolveMessageReference(f):{...f,name:l}}let o=this.document.components;if(!t.$ref.startsWith(i)||!o?.messages)throw new F({message:`Failed to resolve message reference: ${t.$ref} in v3 components`,code:F.Code.ReferenceError});let s=t.$ref.substring(i.length),a=o.messages[s];if(a==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return{...a,name:s}}isMessageWithPayload(t){return t!=null&&typeof t=="object"&&"payload"in t}isReferenceObject(t){return t!=null&&typeof t=="object"&&"$ref"in t}};jt();Ut();ao();var cva="#/channels/",uva="#/servers/",o4i="$message.";function pva({context:e,breadcrumbs:t,source:r,asyncApiOptions:n,document:i}){pxr();let o={},s={},a={},c=[],u={};e.logger.debug("Parsing V3 AsyncAPI...");let l=VY();for(let[O,k]of Object.entries(i.components?.schemas??{})){let P=l.getUniqueSchemaId(O,e.logger,e.options.resolveSchemaCollisions);o[P]=fc(k,!1,!1,e,[P],r,e.namespace)}for(let[O,k]of Object.entries(i.channels??{}))if(s[O]||(s[O]={}),k.messages)for(let[P,U]of Object.entries(k.messages))if(a[P]||(a[P]=[]),e.isReferenceObject(U)){let X=e.resolveMessageReference(U);a[P].push({channelId:O,payload:X.payload})}else e.isMessageWithPayload(U)&&a[P].push({channelId:O,payload:U.payload});for(let[O,k]of Object.entries(a))if(k.length===1){let P=k[0],U=P.channelId;s[U]=s[U]||{},s[U][O]=fc(P.payload,!1,!1,e,[O],r,e.namespace)}else{c.push(O);for(let{channelId:P,payload:U}of k){let X=`${P}_${O}`;s[P]||(s[P]={}),s[P][X]=fc(U,!1,!1,e,[X],r,e.namespace)}}let p={},d=VY();for(let[O,k]of Object.entries(s))for(let[P,U]of Object.entries(k)){let X=d.getUniqueSchemaId(P,e.logger,e.options.resolveSchemaCollisions);p[X]=U}let f=new PYe({...o,...p},e),m={};for(let[O,k]of Object.entries(i.servers??{})){let P=Lr(k,Ly.FERN_SERVER_NAME);m[O]={name:P??O,url:gxr(k.protocol,k.host)}}let h={},A=Object.keys(i.channels??{});for(let[O,k]of Object.entries(i.operations??{})){if(Lr(k,Ly.IGNORE))continue;let P;if(k.channel==null||!("$ref"in k.channel)||k.channel.$ref==null)if(A.length===1&&A[0]!=null)P=A[0];else continue;else P=fCp(k);h[P]||(h[P]={subscribe:[],publish:[],__parsedMessages:[]});let U=Lr(k,Ly.FERN_SDK_METHOD_NAME),X=Lr(k,Ly.FERN_DISPLAY_NAME);if(!k.messages||!Array.isArray(k.messages))continue;let ee=k.messages.filter(pe=>pe!=null&&pe.$ref!=null).map(pe=>({ref:pe,methodName:U,displayName:X})),ne=h[P];if(ne==null)throw new F({message:`Internal error: channelEvents["${P}"] is unexpectedly undefined for operation ${O}`,code:F.Code.InternalError});if(k.action==="receive")ne.subscribe.push(...ee);else if(k.action==="send")ne.publish.push(...ee);else throw new F({message:`Operation ${O} has an invalid action: ${k.action}`,code:F.Code.ValidationError})}for(let[O,k]of Object.entries(h)){let P=[];P.push(...lva({messages:k.subscribe,channelPath:O,origin:"server",messageSchemas:s[O]??{},duplicatedMessageIds:c,context:e})),P.push(...lva({messages:k.publish,channelPath:O,origin:"client",messageSchemas:s[O]??{},duplicatedMessageIds:c,context:e})),h[O]!=null&&(h[O].__parsedMessages=P)}for(let[O,k]of Object.entries(i.channels??{})){if(Lr(k,Ly.IGNORE))continue;let P=[],U=[],X=[];if(k.parameters!=null)for(let[ee,ne]of Object.entries(k.parameters)){let pe=e.isReferenceObject(ne)?e.resolveParameterReference(ne):ne,{type:ge,parameterKey:ue}=pe.location!=null?dCp(pe.location):{type:k.address?.includes(`={${ee}}`)?"query":"path",parameterKey:ee},he=Lr(pe,Ly.FERN_PARAMETER_OPTIONAL),Le=rl(si(O))+rl(si(ee)),ke=pe.schema!=null?Hn(pe.schema)?x3(pe.schema,!1,!1,e,[ue],void 0,r,e.namespace):fc(pe.schema,!1,!1,e,[ue],r,e.namespace):fc({...pe,type:"string",title:Le,example:pe.examples?.[0],default:pe.default,enum:pe.enum,required:void 0},!1,!1,e,[ue],r,e.namespace),oe=he?zr.optional({value:ke,description:void 0,availability:void 0,generatedName:"",title:Le,namespace:void 0,groupName:void 0,nameOverride:void 0,inline:void 0}):ke,ae={name:ue,description:pe.description,parameterNameOverride:void 0,schema:oe,variableReference:void 0,availability:yw(ne),source:r,explode:void 0,clientDefault:void 0};ge==="header"?P.push({...ae,env:void 0}):ge==="path"?U.push(ae):(ge==="payload"||ge==="query")&&X.push(ae)}if(k.bindings?.ws?.query!=null){let ee=new Set(X.map(pe=>pe.name)),ne=new Set(k.bindings.ws.query.required??[]);for(let[pe,ge]of Object.entries(k.bindings.ws.query.properties??{})){if(ee.has(pe))continue;if(Hn(ge)){let ke=e.resolveSchemaReference(ge),oe=ne.has(pe),[ae,Se]=e.options.coerceOptionalSchemasToNullable?[!1,!oe]:[!oe,!1];X.push({name:pe,schema:x3(ge,ae,Se,e,[O,pe],void 0,r,e.namespace),description:ke.description,parameterNameOverride:void 0,availability:yw(ke),source:r,explode:void 0,clientDefault:void 0});continue}let ue=ne.has(pe),[he,Le]=e.options.coerceOptionalSchemasToNullable?[!1,!ue]:[!ue,!1];X.push({name:pe,schema:fc(ge,he,Le,e,[O,pe],r,e.namespace),description:ge.description,parameterNameOverride:void 0,availability:yw(ge),source:r,explode:void 0,clientDefault:void 0})}}if(k.bindings?.ws?.headers!=null){let ee=new Set(P.map(pe=>pe.name)),ne=new Set(k.bindings.ws.headers.required??[]);for(let[pe,ge]of Object.entries(k.bindings.ws.headers.properties??{})){if(ee.has(pe))continue;if(Hn(ge)){let ke=e.resolveSchemaReference(ge),oe=ne.has(pe),[ae,Se]=e.options.coerceOptionalSchemasToNullable?[!1,!oe]:[!oe,!1];P.push({name:pe,schema:x3(ge,ae,Se,e,[O,pe],void 0,r,e.namespace),description:ke.description,parameterNameOverride:void 0,env:void 0,availability:yw(ke),source:r,clientDefault:void 0});continue}let ue=ne.has(pe),[he,Le]=e.options.coerceOptionalSchemasToNullable?[!1,!ue]:[!ue,!1];P.push({name:pe,schema:fc(ge,he,Le,e,[O,pe],r,e.namespace),description:ge.description,parameterNameOverride:void 0,env:void 0,availability:yw(ge),source:r,clientDefault:void 0})}}if(P.length>0||X.length>0||h[O]!=null&&(h[O].publish!=null||h[O].subscribe!=null)){let ee=hxr(k),ne=h[O]?.__parsedMessages??[],pe=[];try{if(ee.length>0)pe=f.buildWebsocketSessionExamplesForExtension({context:e,extensionExamples:ee,handshake:{headers:P,queryParameters:X},source:r,namespace:e.namespace});else{let ke=[],{examplePublishMessage:oe,exampleSubscribeMessage:ae}=hCp({messages:ne,messageSchemas:s[O]??{}});oe!=null&&ke.push(oe),ae!=null&&ke.push(ae);let Se=f.buildWebsocketSessionExample({handshake:{headers:P,queryParameters:X},messages:ke});Se!=null&&pe.push(Se)}}catch(ke){e.logger.warn(`Failed to build examples for channel ${O}: ${Gn(ke)}`)}let ge=Lr(k,Ly.FERN_SDK_GROUP_NAME),ue=Lr(k,Ly.FERN_SDK_METHOD_NAME),he=(k.servers?.map(ke=>mCp(m,ke))??Object.values(m)).map(ke=>({...ke,name:ke.name})),Le=k.address?.split("?")[0]??Axr(O);u[O]={audiences:Lr(k,kn.AUDIENCES)??[],handshake:{headers:P.map(ke=>({...ke,schema:fd(ke.schema),env:ke.env})),queryParameters:X.map(ke=>({...ke,schema:fd(ke.schema)})),pathParameters:U.map(ke=>({...ke,parameterNameOverride:void 0,schema:fd(ke.schema)}))},groupName:e.resolveGroupName(typeof ge=="string"?[ge]:ge??[O]),messages:ne,summary:Lr(k,Ly.FERN_DISPLAY_NAME),connectMethodName:ue,servers:he,path:Le,description:k.description,examples:pe,source:r}}else e.logger.warn(`Skipping AsyncAPI channel ${O} as it does not qualify for inclusion (no headers, query params, or operations)`)}let y={...o,...p},I={},w=VY();for(let[O,k]of Object.entries(y)){let P=w.getUniqueSchemaId(O,e.logger,e.options.resolveSchemaCollisions);I[P]=fd(k)}let C=BYe(e.namespace,o),x=Object.values(m).map(O=>({...O,name:O.name})),B=Lr(i,Ly.BASE_PATH);return{groupedSchemas:C,channels:u,servers:x,basePath:B}}function pCp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function fCp(e){if(!e.channel)throw new F({message:"Operation is missing required 'channel' field",code:F.Code.ValidationError});if(!e.channel.$ref)throw new F({message:"Operation channel is missing required '$ref' field",code:F.Code.ValidationError});if(!e.channel.$ref.startsWith(cva))throw new F({message:`Failed to resolve channel path from operation ${e.channel.$ref}`,code:F.Code.ReferenceError});return pCp(e.channel.$ref.substring(cva.length))}function dCp(e){let t="https://www.asyncapi.com/docs/reference/specification/v3.0.0#runtimeExpression",[r,n]=e.split("#/");if(r==null||n==null)throw new F({message:`Invalid location format: ${e}; unable to parse message type and parameter key. See ${t} for the expected format.`,code:F.Code.ValidationError});if(!r.startsWith(o4i))throw new F({message:`Invalid location format: ${e}; expected ${o4i} prefix`,code:F.Code.ValidationError});let i=r.substring(o4i.length);if(i!=="header"&&i!=="path"&&i!=="payload")throw new F({message:`Invalid message type: ${i}. Must be one of: header, path, payload`,code:F.Code.ValidationError});return{type:i,parameterKey:n}}function mCp(e,t){if(!t.$ref.startsWith(uva))throw new F({message:`Failed to resolve server name from server ref ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(uva.length),n=e[r];if(n==null)throw new F({message:`Failed to find server with name ${r}`,code:F.Code.ReferenceError});return n}function lva({messages:e,channelPath:t,origin:r,messageSchemas:n,duplicatedMessageIds:i,context:o}){let s=[];return e.forEach((a,c)=>{try{let l=o.resolveMessageReference(a.ref,!0).name;i.includes(l)&&(l=`${t}_${l}`);let p=n[l];p!=null&&s.push({origin:r,name:l??`${r}Message${c+1}`,displayName:a.displayName,body:fd(p),methodName:a.methodName})}catch(u){o.logger.warn(`Skipping message reference ${a.ref.$ref} in channel ${t}: ${Gn(u)}`)}}),s}function hCp({messages:e,messageSchemas:t}){let r=e.find(s=>s.origin==="client")?.name,n=e.find(s=>s.origin==="server")?.name,i=r!=null?t[r]:void 0,o=n!=null?t[n]:void 0;return{examplePublishMessage:i!=null&&r!=null?{type:r,payload:i}:void 0,exampleSubscribeMessage:o!=null&&n!=null?{type:n,payload:o}:void 0}}function fva({document:e,taskContext:t,options:r,source:n,asyncApiOptions:i,namespace:o}){let s=[];if(o!=null&&s.push(o),parseFloat(e.asyncapi)<3){let a=e;a.tags?.[0]!=null?s.push(a.tags[0].name):i.naming!=="v2"&&s.push("websocket");let c=new fxr({document:a,taskContext:t,options:r,namespace:o});return ava({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}else{let a=e,c=new yxr({document:a,taskContext:t,options:r,namespace:o});return pva({context:c,breadcrumbs:s,source:n,asyncApiOptions:i,document:a})}}jt();ao();function bxr(e){if(e!=null)return e.map(t=>Object.fromEntries(Object.entries(t).map(([r,n])=>[r,n??[]])))}ao();function dva(e){return Lr(e,kn.ASYNC_CONFIG)}var mva="$request.";function hva(e,t){let r=Lr(t,kn.STREAMING);if(r==null)return;if(typeof r=="boolean")return r?{type:"stream",format:"json",terminator:void 0,resumable:!1}:void 0;let n=gCp(e,r);if(r["stream-condition"]==null&&r.format!=null)return{type:"stream",format:r.format,terminator:r.terminator,resumable:n};if(r["stream-condition"]!=null)return{type:"streamCondition",format:r.format??"json",terminator:r.terminator,streamDescription:r["stream-description"],streamConditionProperty:ACp(r["stream-condition"]),streamRequestName:r["stream-request-name"],responseStream:r["response-stream"],response:r.response,resumable:n}}function gCp(e,t){return typeof t.resumable=="boolean"?t.resumable:s4i(e)??!1}function s4i(e){let t=Lr(e,kn.STREAMING);if(!(t==null||typeof t=="boolean"))return typeof t.resumable=="boolean"?t.resumable:void 0}function ACp(e){return e.startsWith(mva)?e.slice(mva.length):e}Ut();function gva(e){let t=e;if(t.cursor!=null)return _x.cursor({cursor:t.cursor,nextCursor:t.next_cursor,results:t.results});let r=e;if("next_uri"in r)return _x.uri({nextUri:r.next_uri,results:r.results});let n=e;if("next_path"in n)return _x.path({nextPath:n.next_path,results:n.results});if("offset"in e){let i=e;return _x.offset({offset:i.offset,results:i.results,step:i.step,hasNextPage:i["has-next-page"]})}if("type"in e&&e.type==="custom"){let i=e;return _x.custom({results:i.results})}throw new F({message:"Invalid pagination extension",code:F.Code.ValidationError})}function Ava(e,t){let r=Lr(t,kn.PAGINATION);if(r!=null){if(typeof r=="boolean"){let n=Lr(e,kn.PAGINATION);if(typeof n=="boolean")throw new F({message:"Global pagination extension is a boolean, expected an object. Only endpoints may declare a boolean for x-fern-pagination.",code:F.Code.ValidationError});return n==null?void 0:gva(n)}return gva(r)}}function yva(e,t){for(let r of Object.keys(e))if(r.includes("text/event-stream")){let n=e[r];if(n==null)continue;let i=n,o=n.schema??i.itemSchema;return{contentType:r,schema:o??{},examples:DYe(n,t)}}}function bva(e){let t=Object.keys(e);return t.length===1&&t[0]!=null&&t[0].includes("text/event-stream")}function yCp(e){return e.includes("json")||e==="*/*"}function a4i({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Exr({mediaType:r,mediaTypeObject:n,context:t})!=null)return[r,n]}function Exr({mediaType:e,mediaTypeObject:t,context:r}){if(!yCp(e))return;let n=t.schema;return{contentType:e.includes("*")?void 0:e,schema:n??{},examples:DYe(t,r)}}function y2t({content:e,context:t}){let r=a4i({content:e,context:t});if(!r)return;let[n,i]=r;return Exr({mediaType:n,mediaTypeObject:i,context:t})}function Eva(e,t){for(let r of Object.keys(e)){let n=e[r];if(n==null)continue;return{schema:n.schema??{},examples:DYe(n,t)}}}function DYe(e,t){let r=[];e.example!=null&&r.push({name:void 0,value:e.example,description:void 0});let n=Lr(e,oO.EXAMPLES);return n!=null&&Object.keys(n).length>0&&r.push(...Object.entries(n).map(([i,o])=>({name:o.summary??i,value:o.value,description:o.description}))),e.examples!=null&&Object.keys(e.examples).length>0&&r.push(...Object.entries(e.examples).map(([i,o])=>{let s=Hn(o)?t.resolveExampleReference(o):o;return{name:s.summary??i,value:s.value,description:s.description}})),r}jt();Ut();jt();function vva(e){let t=bCp(e),r={};return c4i({obj:t,occurrences:r,breadcrumbs:[]}),r}function c4i({obj:e,occurrences:t,breadcrumbs:r}){if(e!=null){if(Array.isArray(e)){for(let n of e)c4i({obj:n,occurrences:t,breadcrumbs:r});return}if(typeof e=="object"){if(e.$ref!=null&&typeof e.$ref=="string"){let n=e.$ref;t[n]==null?t[n]=1:t[n]+=1;return}for(let n in e)c4i({obj:e[n],occurrences:t,breadcrumbs:[...r,n]})}}}function bCp(e){return{...e,paths:Object.fromEntries(Object.entries(e.paths??{}).map(([t,r])=>[t,{...r,get:r?.get!=null?b2t(r.get):void 0,put:r?.put!=null?b2t(r.put):void 0,post:r?.post!=null?b2t(r.post):void 0,patch:r?.patch!=null?b2t(r.patch):void 0,delete:r?.delete!=null?b2t(r.delete):void 0}]))}}function b2t(e){return{...e,requestBody:e.requestBody!=null?Hn(e.requestBody)?e.requestBody:ECp(e.requestBody):void 0}}function ECp(e){let t,r;for(let n in e.content){let i=ld.parse(n);i!=null&&(i.isJSON()?t=e.content[n]:i.isMultipart()&&(r=e.content[n]))}return r!=null&&t!=null?{...e,content:{[ld.MULTIPART_FORM_DATA]:r}}:e}var vxr=class{endpoints;parser=new _ce;constructor({context:t,options:r}){this.endpoints=r.filter?.endpoints?new Set(this.validateAndFilterEndpoints({context:t,endpoints:r.filter.endpoints})):void 0}skipEndpoint({method:t,path:r}){return this.endpoints!=null&&!this.endpoints.has(`${t} ${r}`)}hasEndpoints(){return this.endpoints!=null}validateAndFilterEndpoints({context:t,endpoints:r}){let n=[];for(let i of r){let o=this.parser.tryParse(i);if(o==null){t.logger.debug(`Ignoring configured filter endpoint "${i}"; expected format "POST /users/get"`);continue}n.push(`${o.method} ${o.path}`)}return n}};var Iva="#/components/parameters/",Cva="#/components/responses/",wva="#/components/examples/",xva="#/components/requestBodies/",Sva="#/components/securitySchemes/",RYe=class{logger;document;taskContext;authHeaders;refOccurrences;DUMMY;options;source;filter;namespace;schemaNamespaceMapping;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){this.document=t,this.logger=r.logger,this.taskContext=r,this.authHeaders=n,this.refOccurrences=vva(t),this.options=i,this.source=o,this.filter=new vxr({context:r,options:i}),this.DUMMY=this.getDummy(),this.namespace=s,this.schemaNamespaceMapping=this.buildSchemaNamespaceMapping()}getNumberOfOccurrencesForRef(t){return this.refOccurrences[t.$ref]??0}resolveTagsToTagIds(t){let r=[];return this.namespace!=null&&r.push(this.namespace),r.concat(t??[])}resolveTags(t){let r=[];if(this.namespace!=null){let n={type:"namespace",name:this.namespace};r.push(n)}return r.concat(t??[])}resolveGroupName(t){return this.namespace!=null?[{type:"namespace",name:this.namespace},...t]:t}resolveSchemaReference(t){let r=t.$ref.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return{"x-fern-type":"unknown"};if(Array.isArray(n)){let o=parseInt(i,10);if(isNaN(o)||o<0||o>=n.length)return{"x-fern-type":"unknown"};n=n[o]}else n=n[i]}return n==null?(this.logger.debug(`Encountered undefined reference: ${t.$ref}`),{"x-fern-type":"unknown"}):(Hn(n)&&(n=this.resolveSchemaReference(n)),n)}resolveParameterReference(t){if(this.document.components==null||this.document.components.parameters==null||!t.$ref.startsWith(Iva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Iva.length),n=this.document.components.parameters[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveParameterReference(n):n}resolveRequestBodyReference(t){if(this.document.components==null||this.document.components.requestBodies==null||!t.$ref.startsWith(xva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(xva.length),n=this.document.components.requestBodies[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveRequestBodyReference(n):n}resolveResponseReference(t){if(this.document.components==null||this.document.components.responses==null||!t.$ref.startsWith(Cva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Cva.length),n=this.document.components.responses[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveResponseReference(n):n}resolveExampleReference(t){if(this.document.components==null||this.document.components.examples==null||!t.$ref.startsWith(wva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(wva.length),n=this.document.components.examples[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveExampleReference(n):n}resolveSecuritySchemeReference(t){if(this.document.components==null||this.document.components.securitySchemes==null||!t.$ref.startsWith(Sva))throw new F({message:`Failed to resolve ${t.$ref}`,code:F.Code.ReferenceError});let r=t.$ref.substring(Sva.length),n=this.document.components.securitySchemes[r];if(n==null)throw new F({message:`${t.$ref} is undefined`,code:F.Code.ReferenceError});return Hn(n)?this.resolveSecuritySchemeReference(n):n}referenceExists(t){let r=t.substring(2).split("/").map(i=>i.replace(/~1/g,"/")),n=this.document;for(let i of r){if(typeof n!="object"||n==null)return!1;n=n[i]}return!0}getNamespace(t){return this.schemaNamespaceMapping?.get(t)}buildSchemaNamespaceMapping(){let t=new Map;if(!this.document.components?.schemas)return t;for(let[r,n]of Object.entries(this.document.components.schemas))!n||Hn(n)||t.set(r,Lr(n,kn.SDK_NAMESPACE)||this.namespace);return t}};var KNe=class extends RYe{constructor({document:t,taskContext:r,options:n,source:i,namespace:o}){super({document:t,taskContext:r,authHeaders:new Set,options:n,source:i,namespace:o})}getDummy(){return this}markSchemaAsReferencedByNonRequest(t){}markSchemaAsReferencedByRequest(t){}getReferencedSchemas(){return new Set}markReferencedByDiscriminatedUnion(t,r,n){}getReferencesFromDiscriminatedUnion(t){}excludeSchema(t){}isSchemaExcluded(t){return!1}markSchemaWithDiscriminantValue(t,r,n){}getDiscriminatedUnionMetadata(t){}};jt();var Oxr=require("fs"),Pxr=require("path");as();var bwp=Bt.object({lang:Bt.string(),label:Bt.optional(Bt.string()),source:Bt.string()}),h4i=Bt.array(bwp);jt();var Qva={README_EXT:"x-readme"};function Ewp(e){if(!Array.isArray(e))return!1;for(let t of e)if(!xo(t)||typeof t.language!="string"||typeof t.code!="string")return!1;return!0}function Mva(e){let t=Lr(e,Qva.README_EXT);if(!xo(t))return[];let r=t["code-samples"];if(!Ewp(r))return[];let n=[];for(let i of r)n.push({name:i.name,language:i.language,code:i.code,install:i.install,docs:void 0});return n}function vwp(e){return xo(e)&&typeof e.$ref=="string"}function Iwp(e,t){if(e!=null){if(typeof e=="string")return e;if(vwp(e)){let r=(0,Pxr.resolve)(t??process.cwd(),e.$ref);if((0,Oxr.existsSync)(r))try{return(0,Oxr.readFileSync)(r,"utf-8")}catch{return}}}}function Cwp(e,t){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!xo(n))continue;let o=Iwp(n.code,t);o!=null&&r.push({...n,code:o})}return r}function Lva(e,t,r){let n=Lr(t,kn.EXAMPLES),i=r.source.type==="openapi"?(0,Pxr.dirname)(r.source.file):void 0,s=(n??[]).map(p=>{if(!xo(p))return p;let f=p["code-samples"];if(f!=null){let m=Cwp(f,i);return{...p,"code-samples":m}}return p}).filter(p=>{let d=zh.serialization.ExampleEndpointCallSchema.parse(p);return d.ok||r.logger.error(`Failed to parse x-fern-example in ${e.path}/${e.method}`),d.ok}),a=p2t(t,oO.REDOCLY_CODE_SAMPLES_KEBAB,h4i,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],u=[...p2t(t,oO.REDOCLY_CODE_SAMPLES_CAMEL,h4i,r.logger,[...e.baseBreadcrumbs,`${e.method} ${e.path}`])??[],...a];u.length>0&&s.push({"code-samples":u.map(p=>({name:p.label??p.lang,language:p.lang,code:p.source,install:void 0,docs:void 0}))});let l=Mva(t);return l.length>0&&s.push({"code-samples":l}),s.map(o_.unknown)}function zva(e){let t=Lr(e,kn.AVAILABILITY);if(t==="ga"||t==="generally-available")return ig.GenerallyAvailable;if(t==="beta"||t==="pre-release")return ig.Beta;if(t==="deprecated")return ig.Deprecated;if(t==="alpha")return ig.Alpha;if(t==="preview")return ig.Preview;if(t==="legacy")return ig.Legacy;if(e.deprecated)return ig.Deprecated}function Uva(e){let t=Lr(e,kn.RETRIES);if(t!=null&&t.disabled===!0)return OA.RetriesConfiguration.disabled(t.disabled)}var wwp="x-fern-default-url";function Dxr(e,t){let r=e.variables!=null&&Object.keys(e.variables).length>0,n=xwp(e);return{url:Twp({url:e.url,variables:e.variables??{}}),description:e.description,name:Bwp(e,t),audiences:Lr(e,kn.AUDIENCES),urlTemplate:r?e.url:void 0,variables:r&&e.variables!=null?Swp(e.variables):void 0,defaultUrl:r?n:void 0}}function xwp(e){let t=e[wwp];if(typeof t=="string")return t.endsWith("/")&&t!=="/"?t.slice(0,-1):t}function Swp(e){return Object.entries(e).map(([t,r])=>({id:t,default:r.default,values:r.enum}))}function Twp({url:e,variables:t}){let r=Object.fromEntries(Object.entries(t).map(([n,i])=>[n,i.default]));for(let[n,i]of Object.entries(r))e=e.replace(`{${n}}`,encodeURIComponent(i));return e}function Bwp(e,t){let r=Lr(e,[kn.SERVER_NAME_V1,kn.SERVER_NAME_V2]);if(r!=null)return r;if(e.description?.toLowerCase()==="production")return"Production";if(e.description?.toLowerCase()==="sandbox")return"Sandbox";if(t?.groupMultiApiEnvironments&&e.description!=null&&e.description.trim()!==""){let n=e.description.toLowerCase();return n==="prd"?"Production":n==="sbx"?"Sandbox":n==="staging"||n==="stg"?"Staging":n==="development"||n==="dev"?"Development":e.description}}function _va(e){return Lr(e,kn.PARAMETER_NAME)}function Vva(e){return Lr(e,kn.SDK_VARIABLE)}function Rxr({path:e,httpMethod:t,parameters:r,context:n,requestBreadcrumbs:i,source:o}){let s={pathParameters:[],queryParameters:[],headers:[]};for(let a of r){let c=Hn(a)?n.resolveParameterReference(a):a,u=Lr(a,kn.IGNORE)??Lr(c,kn.IGNORE);if(u!=null&&u){n.logger.debug(`${t.toUpperCase()} ${e} has a parameter marked with x-fern-ignore. Skipping.`);continue}let l=c.required??!1,p=yw(c),d=[...i,c.name],f=My(d,n.options.preserveSchemaIds),m=c.in==="header",[h,A]=n.options.coerceOptionalSchemasToNullable&&!m?[!1,!l]:[!l,!1],y=c.schema!=null?fc(c.schema,h,A,n,d,o,n.namespace,!1,new Set,Dwp(c,n)):l?zr.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:$i.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:l_({schema:c,logger:n.logger})}),description:void 0,availability:p,namespace:void 0,groupName:void 0}):zr.optional({nameOverride:void 0,generatedName:f,title:void 0,value:zr.primitive({nameOverride:void 0,generatedName:f,title:void 0,schema:$i.string({default:void 0,pattern:void 0,format:void 0,minLength:void 0,maxLength:void 0,example:l_({schema:c,logger:n.logger})}),description:void 0,availability:void 0,namespace:void 0,groupName:void 0}),description:void 0,availability:p,namespace:void 0,groupName:void 0,inline:void 0});if(c.in==="header"&&c.schema!=null&&!Hn(c.schema)&&c.schema.default!=null){let C=c.schema.default;typeof C=="string"&&C.length>0&&(y=zr.literal({nameOverride:void 0,generatedName:f,title:void 0,value:Qy.string(C),description:void 0,availability:p,namespace:void 0,groupName:void 0}))}let I=Lr(a,kn.FERN_DEFAULT)??Lr(c,kn.FERN_DEFAULT),w={name:c.name,schema:y,description:c.description,parameterNameOverride:_va(c),availability:p,source:o,clientDefault:I};c.in==="query"?s.queryParameters.push({...w,explode:Pwp(c)}):c.in==="path"?s.pathParameters.push({...w,variableReference:Vva(c),explode:Rwp(c)}):c.in==="header"?!Owp.has(c.name.toLowerCase())&&!n.authHeaders.has(c.name)?s.headers.push({...w,env:void 0}):n.logger.debug(`Ignoring ${c.name} header, in ${t.toUpperCase()} ${e}`):n.logger.warn(`Skipping ${c.in} parameter, ${c.name}, in ${t.toUpperCase()} ${e}`)}return s}var Owp=new Set(["user-agent","content-length","content-type","x-forwarded-for","cookie","origin","content-disposition","x-ping-custom-domain"]);function Pwp(e){let t=e.style??"form",r=e.explode;if(r!==void 0)return t==="form"||t==="deepObject"?r===!0?void 0:r:r===!1?void 0:r}function Dwp(e,t){let r=axr({schema:e,logger:t.logger});return r??l_({schema:e,logger:t.logger})}function Rwp(e){let t=e.explode;if(t!==void 0)return t===!1?void 0:t}jt();Ut();function Fwp({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Gva({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function Gva({mediaType:e,mediaTypeObject:t,context:r}){if(ld.parse(e)?.isURLEncoded())return{schema:t.schema,contentType:e,examples:DYe(t,r)}}function kwp({content:e,context:t}){for(let[r,n]of Object.entries(e))if(Wva({mediaType:r,mediaTypeObject:n,context:t}))return[r,n]}function Wva({mediaType:e,mediaTypeObject:t,context:r}){if(ld.parse(e)?.isMultipart())return{schema:t.schema,encoding:t.encoding,examples:DYe(t,r)}}function Hva({mediaType:e}){return ld.parse(e)?.isBinary()??!1}function Nwp({content:e}){for(let[t,r]of Object.entries(e))if(Hva({mediaType:t}))return[t,r]}function jwp(e,t){let r=Hn(e)?g4i(e,t):{id:void 0,schema:e};return Object.entries(r.schema.properties??{}).find(([n,i])=>!Hn(i)&&i.type==="string"&&(i.format==="binary"||i.format==null&&i.contentMediaType==="application/octet-stream"))!=null}function kxr({content:e,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}){let a=Nwp({content:e});if(a){let[d,f]=a;return KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}let c=kwp({content:e,context:n}),u=a4i({content:e,context:n}),l=Qwp({json:u,multipart:c,document:r,visitor:{json:([d,f])=>KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),multipart:([d,f])=>KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s}),neither:()=>{}}});if(l)return l;let p=Fwp({content:e,context:n});if(p){let[d,f]=p;return KY({mediaType:d,mediaTypeObject:f,description:t,document:r,context:n,requestBreadcrumbs:i,source:o,namespace:s})}}function Qwp({json:e,multipart:t,document:r,visitor:n}){if(!e&&!t)return n.neither();let[,i]=e??[void 0,void 0],[,o]=t??[void 0,void 0];return!i?.schema&&!o?.schema?e&&(i?.example!=null||i?.examples!=null&&Object.keys(i.examples).length>0)?n.json(e):n.neither():i?.schema&&o?.schema?i.schema&&jwp(i.schema,r)?n.multipart(t):n.json(e):i?.schema?n.json(e):o?.schema?n.multipart(t):n.neither()}function KY({mediaType:e,mediaTypeObject:t,description:r,document:n,context:i,requestBreadcrumbs:o,source:s,namespace:a}){let c=Mwp({mediaTypeObject:t});if(Hva({mediaType:e}))return z2.octetStream({description:r,source:s,sdkMethodName:c,contentType:e});let u=Wva({mediaType:e,mediaTypeObject:t,context:i}),l=u?.schema,p=u?.encoding,d=u?.examples;if(l){let h=Hn(l)?g4i(l,n):{id:void 0,schema:l},A=fc(h.schema,!1,!1,i,o,s,a,!1),y=[];if(A.type==="object"){let I=new Set(h.schema.required??[]);for(let w of A.properties){let C=I.has(w.key),{isFile:x,isOptional:B,isArray:O,description:k}=Fxr({schema:w.schema,isOptional:!C});if(x){let P=qva(w.key,p);y.push({key:w.key,schema:NY.file({isOptional:B,isArray:O,description:k}),description:k,contentType:P,exploded:!1,encoding:P==null?i.options.defaultFormParameterEncoding:void 0})}else{let P=qva(w.key,p);y.push({key:w.key,schema:NY.json(w.schema),description:void 0,contentType:P,exploded:p?.[w.key]?.explode,encoding:P==null?i.options.defaultFormParameterEncoding:zwp(P)})}}}return z2.multipart({name:Hn(l)&&i.getNumberOfOccurrencesForRef(l)===1?h.id:void 0,description:h.schema.description,properties:y,source:s,sdkMethodName:c,fullExamples:d})}let f=Exr({mediaType:e,mediaTypeObject:t,context:i});if(f){let h=fc(f.schema,!1,!1,i,o,s,a,!0);return z2.json({description:void 0,schema:h,contentType:f.contentType,fullExamples:f.examples,additionalProperties:!Hn(f.schema)&&d2t(f.schema.additionalProperties,i.options),source:s,sdkMethodName:c})}let m=Gva({mediaType:e,mediaTypeObject:t,context:i});if(m!=null&&m.schema!=null){let h=fc(m.schema,!1,!1,i,o,s,a,!1);return z2.formUrlEncoded({schema:h,description:r,contentType:m.contentType,source:s,fullExamples:m.examples,additionalProperties:!1,sdkMethodName:c})}}function Mwp({mediaTypeObject:e}){return Lr(e,kn.SDK_METHOD_NAME)}var Lwp={"application/json":"json"};function zwp(e){return e?Lwp[e]:void 0}function g4i(e,t){if(!e.$ref.startsWith(WNe))throw new F({message:`Failed to resolve schema reference because of unsupported prefix: ${e.$ref}`,code:F.Code.ReferenceError});let r=wYe(e);if(r==null)throw new F({message:`Failed to resolve schema reference because missing schema id: ${e.$ref}`,code:F.Code.ReferenceError});let n=t.components?.schemas?.[r];if(n==null)throw new F({message:`Failed to resolve schema reference because missing: ${e.$ref}`,code:F.Code.ReferenceError});return Hn(n)?g4i(n,t):{id:r,schema:n}}function Fxr({schema:e,isOptional:t,isArray:r,description:n}){return _wp(e)?Fxr({schema:e.value,isOptional:!0,isArray:r,description:e.description}):Vwp(e)?Fxr({schema:e.value,isOptional:t,isArray:r,description:e.description}):qwp(e)?Fxr({schema:e.value,isOptional:t,isArray:!0,description:e.description}):Uwp(e)?{isFile:!0,isOptional:t??!1,isArray:r??!1,description:n??e.description}:{isFile:!1,isOptional:t??!1,isArray:r??!1,description:void 0}}function Uwp(e){return e.type==="primitive"&&e.schema.type==="string"&&e.schema.format==="binary"}function _wp(e){return e.type==="optional"}function Vwp(e){return e.type==="nullable"}function qwp(e){return e.type==="array"}function qva(e,t){return t?.[e]?.contentType}jt();var A4i={400:"BadRequestError",401:"UnauthorizedError",402:"PaymentRequiredError",403:"ForbiddenError",404:"NotFoundError",405:"MethodNotAllowedError",406:"NotAcceptableError",407:"ProxyAuthenticationRequiredError",408:"RequestTimeoutError",409:"ConflictError",410:"GoneError",411:"LengthRequiredError",412:"PreconditionFailedError",413:"ContentTooLargeError",414:"URITooLongError",415:"UnsupportedMediaTypeError",416:"RangeNotSatisfiableError",417:"ExpectationFailedError",418:"ImATeapotError",419:"AuthenticationTimeoutError",420:"MethodFailureError",421:"MisdirectedRequestError",422:"UnprocessableEntityError",423:"LockedError",424:"FailedDependencyError",425:"TooEarlyError",426:"UpgradeRequiredError",428:"PreconditionError",429:"TooManyRequestsError",430:"RequestHeaderFieldsTooLargeError",431:"RequestHeaderFieldsTooLargeError",444:"NoResponseError",449:"RetryWithError",450:"BlockedByWindowsParentalControlsError",451:"UnavailableForLegalReasonsError",498:"InvalidTokenError",499:"ClientClosedRequestError",500:"InternalServerError",501:"NotImplementedError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError",505:"HTTPVersionNotSupportedError",506:"VariantAlsoNegotiatesError",507:"InsufficientStorageError",508:"LoopDetectedError",509:"BandwidthLimitExceededError",510:"NotExtendedError",511:"NetworkAuthenticationRequiredError"},Kva=new Set(Object.values(A4i));var Gwp=["200","201","202","204"];function Nxr({operationContext:e,responses:t,context:r,responseBreadcrumbs:n,responseStatusCode:i,streamFormat:o,streamTerminator:s,streamResumable:a,source:c}){if(t==null)return{value:void 0,errors:{}};let u=Wwp({responses:t,context:r,source:c,namespace:r.namespace}),l=!1,p=!1,d;for(let f of i!=null?[i]:Gwp){let m=t[f];if(m==null)continue;l=!0;let h=typeof f=="string"?parseInt(f):f;if(d==null){let A=Jva({operationContext:e,response:m,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,streamResumable:a,source:c,namespace:r.namespace,statusCode:h});A!=null?d=A:h===204&&(p=!0)}else if(h===204){let A=Hn(m)?r.resolveResponseReference(m):m;y2t({context:r,content:A.content??{}})==null&&(p=!0)}}if(p&&d!=null&&d.type==="json"){let f=d.schema;f.type!=="optional"&&(d=Jg.json({...d,schema:zr.optional({value:f,description:f.type==="reference"?f.description:void 0,nameOverride:void 0,generatedName:"",groupName:void 0,namespace:void 0,availability:void 0,title:void 0,inline:void 0})}))}if(d==null&&!l&&t.default!=null&&(d=Jva({operationContext:e,response:t.default,context:r,responseBreadcrumbs:n,streamFormat:o,streamTerminator:s,streamResumable:a,source:c,namespace:r.namespace})),d!=null)switch(d.type){case"json":return{value:d,errors:u};case"streamingJson":case"streamingSse":return{value:d,errors:u};case"bytes":case"file":case"text":case"streamingText":return{value:d,errors:u};default:we(d)}return{value:void 0,errors:u}}function Jva({operationContext:e,streamFormat:t,streamTerminator:r,streamResumable:n,response:i,context:o,responseBreadcrumbs:s,source:a,namespace:c,statusCode:u}){let l=Hn(i)?o.resolveResponseReference(i):i;if(l.content!=null&&Object.entries(l.content).find(([m,h])=>{if(h.schema==null)return!1;let A=Hn(h.schema)?o.resolveSchemaReference(h.schema):h.schema;return A.type==="string"&&(A.format==="binary"||A.format==null&&A.contentMediaType==="application/octet-stream")}))return o.options.useBytesForBinaryResponse&&t==null?Jg.bytes({description:l.description,source:a,statusCode:u}):Jg.file({description:l.description,source:a,statusCode:u});let p=yva(l.content??{},o);if(p!=null&&t!=null)switch(t){case"json":return Jg.streamingJson({statusCode:u,description:l.description,responseProperty:Lr(e.operation,kn.RESPONSE_PROPERTY),terminator:r,resumable:void 0,fullExamples:p.examples,schema:fc(p.schema,!1,!1,o,s,a,c),source:a});case"sse":return Jg.streamingSse({description:l.description,responseProperty:void 0,terminator:r,resumable:n,fullExamples:p.examples,schema:fc(p.schema,!1,!1,o,s,a,c),source:a,statusCode:u})}let d=y2t({context:o,content:l.content??{}});if(d){if(t!=null)switch(t){case"json":return Jg.streamingJson({description:l.description,responseProperty:void 0,terminator:r,resumable:void 0,fullExamples:d.examples,schema:fc(d.schema,!1,!1,o,s,a,c),source:a,statusCode:u});case"sse":return Jg.streamingSse({description:l.description,responseProperty:void 0,terminator:r,resumable:n,fullExamples:d.examples,schema:fc(d.schema,!1,!1,o,s,a,c),source:a,statusCode:u})}return Jg.json({description:l.description,schema:fc(d.schema,!1,!1,o,s,a,c),responseProperty:Lr(e.operation,kn.RESPONSE_PROPERTY),terminator:void 0,resumable:void 0,fullExamples:d.examples,source:a,statusCode:u})}for(let[f,m]of Object.entries(l.content??{})){let h=ld.parse(f);if(h!=null){if(h.isOctetStream()||h.isPDF()||h.isAudio()||h.isImage()||h.isVideo()||h.isMultiPartMixed())return Jg.file({description:l.description,source:a,statusCode:u});if(h.isText()&&!f.includes("event-stream")){let A=m.schema;if(A==null)return Jg.text({description:l.description,source:a,statusCode:u});let y=Hn(A)?o.resolveSchemaReference(A):A;return y.type==="string"&&y.format==="byte"?Jg.file({description:l.description,source:a,statusCode:u}):Jg.text({description:l.description,source:a,statusCode:u})}}}}function Wwp({responses:e,context:t,source:r,namespace:n}){let i={};for(let[o,s]of Object.entries(e)){if(o==="default")continue;let a=parseInt(o);if(a<400||a>600)continue;let c=Hn(s)?t.resolveResponseReference(s):s,u=Eva(c.content??{},t),l=A4i[a];if(l==null){t.logger.warn(`No error name found for status code ${o}`);continue}i[a]={statusCode:a,nameOverride:void 0,generatedName:l,description:c.description,schema:fc(u?.schema??{},!1,!1,t,[l,"Body"],r,n),fullExamples:u?.examples,source:r}}return i}function vue({operationContext:e,context:t,responseStatusCode:r,suffix:n,streamFormat:i,streamTerminator:o,streamResumable:s,source:a,streamRequestNameOverride:c}){let{document:u,operation:l,path:p,method:d,baseBreadcrumbs:f,pathItem:m}=e,h=Lr(l,kn.IDEMPOTENT),A=Lr(l,[kn.REQUEST_NAME_V1,kn.REQUEST_NAME_V2]),y=[...f,"Request"],I=Rxr({parameters:[...e.pathItemParameters,...e.operationParameters],context:t,requestBreadcrumbs:y,path:p,httpMethod:d,source:a}),w=/{([^}]+)}/g,C=[...p.matchAll(w)].map(pe=>pe[1]).filter(pe=>pe!==void 0),x=[...p.matchAll(w)].map(pe=>pe[1]);switch(t.options.pathParameterOrder){case zn.PathParameterOrder.SpecOrder:{let pe=x.filter(ge=>!I.pathParameters.some(ue=>ue.name===ge));if(pe.length>0)for(let ge of pe)I.pathParameters.push({name:ge??"",variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:a,schema:zr.primitive({schema:$i.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0,clientDefault:void 0})}break;case zn.PathParameterOrder.UrlOrder:if(C.length>0){let pe=new Map(I.pathParameters.map(he=>[he.name,he])),ge=[],ue=new Set;for(let he of C){let Le=pe.get(he);ue.add(he),Le?ge.push(Le):ge.push({name:he,variableReference:void 0,parameterNameOverride:void 0,availability:void 0,source:a,schema:zr.primitive({schema:$i.string({default:void 0,example:void 0,format:void 0,maxLength:void 0,minLength:void 0,pattern:void 0}),description:void 0,generatedName:"",nameOverride:void 0,namespace:void 0,groupName:void 0,availability:void 0,title:void 0}),description:void 0,explode:void 0,clientDefault:void 0})}for(let he of I.pathParameters)ue.has(he.name)||ge.push(he);I.pathParameters=ge}break;default:we(t.options.pathParameterOrder)}let B=(()=>{if(e.method==="GET")return[void 0];if(!l.requestBody)return[void 0];let pe=Hn(l.requestBody)?t.resolveRequestBodyReference(l.requestBody):l.requestBody,ge=Object.values(pe.content).every(he=>Hwp({mediaTypeObject:he})!=null),ue=[];if(ge)return ue.push(...Object.entries(pe.content).map(([he,Le])=>{let ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:new KNe({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:y,source:a,namespace:t.namespace});return Xva({context:t,convertedParameters:I})&&ke!=null&&(ke.type==="json"||ke.type==="formUrlEncoded")&&ke.schema.type!=="object"&&l.requestBody!=null?ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y,"Body"],source:a,namespace:t.namespace}):l.requestBody!=null&&(ke=KY({mediaType:he,mediaTypeObject:Le,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y],source:a,namespace:t.namespace})),ke}).filter(he=>he!=null)),ue.length===0?[void 0]:ue;{let he=kxr({content:pe.content,description:pe.description,document:u,context:new KNe({document:t.document,taskContext:t.taskContext,options:t.options,source:t.source,namespace:t.namespace}),requestBreadcrumbs:y,source:a,namespace:t.namespace});return Xva({context:t,convertedParameters:I})&&he!=null&&(he.type==="json"||he.type==="formUrlEncoded")&&he.schema.type!=="object"&&l.requestBody!=null?he=kxr({content:pe.content,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y,"Body"],source:a,namespace:t.namespace}):l.requestBody!=null&&(he=kxr({content:pe.content,description:pe.description,document:u,context:t,requestBreadcrumbs:[...y],source:a,namespace:t.namespace})),[he]}})(),O=B.length>1,k=[...f,"Response"],P=Nxr({operationContext:e,streamFormat:i,streamTerminator:o,streamResumable:s,responses:l.responses,context:t,responseBreadcrumbs:k,responseStatusCode:r,source:a}),U=Uva(l),X=zva(l),ee=Lva(e,l,t),ne=Lr(l,kn.SERVER_NAME_V2);return B.map(pe=>({summary:l.summary,internal:Lr(l,oO.INTERNAL),idempotent:h,audiences:Lr(l,kn.AUDIENCES)??[],operationId:l.operationId!=null&&n!=null?l.operationId+"_"+n:l.operationId,tags:t.resolveTagsToTagIds(l.tags),namespace:t.namespace,sdkName:Kwp({operationContext:e,request:pe}),pathParameters:I.pathParameters,queryParameters:I.queryParameters,headers:I.headers,requestNameOverride:c??A??void 0,generatedRequestName:Xwp({baseBreadcrumbs:f,requestBreadcrumbs:y,isMultipleRequests:O,request:pe,context:t}),request:pe,response:P.value,errors:P.errors,servers:ne!=null?[{name:ne,url:void 0,audiences:void 0}]:(l.servers??m.servers??[]).map(ge=>Dxr(ge,{groupMultiApiEnvironments:t.options.groupMultiApiEnvironments})),description:l.description,authed:Ywp(l,u),security:Jwp(l),availability:X,method:d,path:p,examples:ee,pagination:e.pagination,source:a,retries:U}))}function Yva({breadcrumbs:e,request:t}){return t?[...e,t.type]:e}function Hwp({mediaTypeObject:e}){return Lr(e,kn.SDK_METHOD_NAME)}function Kwp({operationContext:e,request:t}){return!t||!t.sdkMethodName?e.sdkMethodName:e.sdkMethodName?{groupName:[...e.sdkMethodName.groupName],methodName:t.sdkMethodName??e.sdkMethodName.methodName}:{groupName:[],methodName:t.sdkMethodName}}function Jwp(e){return bxr(e.security)}function Ywp(e,t){return e.security!=null?Object.keys(e.security).length>0:t.security!=null?Object.keys(t.security).length>0:!1}function Xva({context:e,convertedParameters:t}){return e.options.inlinePathParameters&&t.pathParameters.length>0||t.queryParameters.length>0||t.headers.length>0}function Xwp({baseBreadcrumbs:e,requestBreadcrumbs:t,isMultipleRequests:r,request:n,context:i}){let o=r?Yva({breadcrumbs:t,request:n}):t,s=My(o,i.options.preserveSchemaIds),a=i.document.components?.schemas;if(a==null||!Object.keys(a).some(p=>My([p],i.options.preserveSchemaIds)===s))return s;let u=[...e,"Body"],l=r?Yva({breadcrumbs:u,request:n}):u;return My(l,i.options.preserveSchemaIds)}function $va({operationContext:e,context:t,asyncExtension:r,source:n}){let{operation:i,pathItemParameters:o,operationParameters:s}=e,a=r.discriminant.name,c=r.discriminant.value,u=r["response-status-code"],l=Zva({context:t,headerToIgnore:a,parameters:o}),p=Zva({context:t,headerToIgnore:a,parameters:s}),d=vue({operationContext:{...e,pathItemParameters:l,operationParameters:p,operation:{...i,responses:Object.fromEntries(Object.entries(i.responses).filter(([m])=>parseInt(m)!==u))}},context:t,streamFormat:void 0,source:n}),f=vue({operationContext:{...e,pathItemParameters:l,operationParameters:p,baseBreadcrumbs:[...e.baseBreadcrumbs,"async"]},context:t,suffix:"async",responseStatusCode:u,streamFormat:void 0,source:n});return f.forEach(m=>{m.headers.push({name:a,schema:zr.literal({nameOverride:void 0,generatedName:My([a],t.options.preserveSchemaIds),title:void 0,description:void 0,availability:void 0,value:Qy.string(c),namespace:void 0,groupName:void 0}),description:void 0,parameterNameOverride:void 0,env:void 0,availability:void 0,source:n,clientDefault:void 0})}),{sync:d,async:f}}function Zva({context:e,headerToIgnore:t,parameters:r}){return r.filter(n=>{let i=Hn(n)?e.resolveParameterReference(n):n;return!(i.in==="header"&&i.name===t)})}jt();var y4i="stream";function nIa({operationContext:e,context:t,streamingExtension:r}){switch(r.type){case"stream":return{streaming:vue({operationContext:e,context:t,streamFormat:r.format,streamTerminator:r.terminator,streamResumable:r.resumable,source:t.source}),nonStreaming:[]};case"streamCondition":{let n=eIa({context:t,operation:e.operation,streamingExtension:r,isStreaming:!0}),i=tIa({operation:e.operation,response:r.responseStream}),o=(()=>{if(r.streamRequestName!=null)return r.streamRequestName;if(n?.schemaReference!=null){let l=t.resolveSchemaReference(n.schemaReference),p=Lr(l,kn.TYPE_NAME);if(p!=null)return`${p}Streaming`}})(),s=vue({operationContext:{...e,sdkMethodName:e.sdkMethodName!=null?{groupName:e.sdkMethodName.groupName,methodName:e.sdkMethodName.methodName+"_"+y4i}:void 0,operation:{...e.operation,description:r.streamDescription??e.operation.description,requestBody:n?.requestBody,responses:i},baseBreadcrumbs:[...e.baseBreadcrumbs,y4i]},context:t,streamFormat:r.format,streamTerminator:r.terminator,streamResumable:r.resumable,suffix:y4i,source:t.source,streamRequestNameOverride:o});s.forEach(l=>{l.examples=l.examples.filter(p=>rIa(p,t)!==!1)});let a=eIa({context:t,operation:e.operation,streamingExtension:r,isStreaming:!1}),c=tIa({operation:e.operation,response:r.response}),u=vue({streamFormat:void 0,operationContext:{...e,operation:{...e.operation,requestBody:a?.requestBody,responses:c}},context:t,source:t.source});return u.forEach(l=>{l.examples=l.examples.filter(p=>rIa(p,t)!==!0)}),{streaming:s,nonStreaming:u}}default:we(r)}}function eIa({context:e,operation:t,streamingExtension:r,isStreaming:n}){if(t.requestBody==null)return;let i=Hn(t.requestBody)?e.resolveRequestBodyReference(t.requestBody):t.requestBody,o=y2t({content:i.content,context:e});if(o==null)return;let s=Hn(o.schema)?e.resolveSchemaReference(o.schema):o.schema;if(s.allOf==null&&s.properties==null)return;let a=s.properties?.[r.streamConditionProperty];a!=null&&Hn(a)&&(a=void 0);let c={...s,properties:{...s.properties,[r.streamConditionProperty]:{...a??{},type:"boolean","x-fern-boolean-literal":n}},title:void 0,required:[...s.required??[],r.streamConditionProperty]};return{requestBody:{content:{[ld.APPLICATION_JSON]:{schema:c}}},schemaReference:Hn(o.schema)?o.schema:void 0}}function tIa({operation:e,response:t}){return{...e.responses,200:{description:"",content:{[ld.APPLICATION_JSON]:{schema:t}}}}}function rIa(e,t){return e._visit({unknown:r=>{let n=zh.serialization.ExampleEndpointCallSchema.parse(r);if(n.ok&&n.value.response!=null)return n.value.response.stream!=null},full:()=>{},_other:()=>{}})}var uIa=require("crypto");function Zwp(e){switch(e){case"unix-seconds":return OA.WebhookTimestampFormat.UnixSeconds;case"unix-millis":return OA.WebhookTimestampFormat.UnixMillis;case"iso8601":return OA.WebhookTimestampFormat.Iso8601}}function iIa(e){if(e!=null)return{header:e.header,format:e.format!=null?Zwp(e.format):void 0,tolerance:e.tolerance}}function $wp(e){if(e!=null)return{components:e.components.map(t=>{switch(t){case"body":return OA.WebhookPayloadComponent.Body;case"timestamp":return OA.WebhookPayloadComponent.Timestamp;case"notification-url":return OA.WebhookPayloadComponent.NotificationUrl;case"message-id":return OA.WebhookPayloadComponent.MessageId}}),delimiter:e.delimiter,bodySort:exp(e["body-sort"])}}function exp(e){if(e!=null&&e==="alphabetical")return OA.WebhookPayloadBodySort.Alphabetical}function txp(e){if(e!=null)switch(e){case"sha256":return OA.WebhookSignatureAlgorithm.Sha256;case"sha1":return OA.WebhookSignatureAlgorithm.Sha1;case"sha384":return OA.WebhookSignatureAlgorithm.Sha384;case"sha512":return OA.WebhookSignatureAlgorithm.Sha512}}function oIa(e){if(e!=null)switch(e){case"base64":return OA.WebhookSignatureEncoding.Base64;case"hex":return OA.WebhookSignatureEncoding.Hex}}function rxp(e){if(e!=null)switch(e){case"rsa-sha256":return OA.AsymmetricAlgorithm.RsaSha256;case"rsa-sha384":return OA.AsymmetricAlgorithm.RsaSha384;case"rsa-sha512":return OA.AsymmetricAlgorithm.RsaSha512;case"ecdsa-sha256":return OA.AsymmetricAlgorithm.EcdsaSha256;case"ecdsa-sha384":return OA.AsymmetricAlgorithm.EcdsaSha384;case"ecdsa-sha512":return OA.AsymmetricAlgorithm.EcdsaSha512;case"ed25519":return OA.AsymmetricAlgorithm.Ed25519}}function aIa(e){if(e.type==="hmac")return OA.WebhookSignatureVerification.hmac({header:e.header,algorithm:txp(e.algorithm),encoding:oIa(e.encoding),signaturePrefix:e["signature-prefix"],payloadFormat:$wp(e["payload-format"]),timestamp:iIa(e.timestamp)});if(e.type==="asymmetric"){let t=rxp(e["asymmetric-algorithm"]);return t==null?void 0:OA.WebhookSignatureVerification.asymmetric({header:e.header,asymmetricAlgorithm:t,encoding:oIa(e.encoding),signaturePrefix:e["signature-prefix"],jwksUrl:e["jwks-url"],keyIdHeader:e["key-id-header"],timestamp:iIa(e.timestamp)})}}function sIa(e){let t=Lr(e,kn.WEBHOOK_SIGNATURE);if(!(t==null||typeof t=="boolean"))return aIa(t)}function cIa(e,t){let r=Lr(t,kn.WEBHOOK_SIGNATURE);return r!=null?typeof r=="boolean"?sIa(e):aIa(r):sIa(e)}function lIa({context:e,operationContext:t,source:r}){let{document:n,operation:i,path:o,method:s,baseBreadcrumbs:a,sdkMethodName:c}=t,u=[...a,"Payload"],l=[...a,"Response"],p=Rxr({parameters:[...t.pathItemParameters,...t.operationParameters],context:e,requestBreadcrumbs:u,path:o,httpMethod:s,source:r});if(s!=="POST"&&s!=="GET")return e.logger.warn(`Skipping webhook ${s.toUpperCase()} ${o}: Only POST and GET methods are currently supported`),[];let d=i.operationId??ixp({path:o,method:s,sdkMethodName:c}),f=i.responses?Nxr({operationContext:t,streamFormat:void 0,responses:i.responses,context:e,responseBreadcrumbs:l,source:r}):void 0,m=cIa(n,i);if(i.requestBody==null){if(p.queryParameters.length===0)return e.logger.error(`Skipping webhook ${s.toUpperCase()} ${o}: Missing a request body and no query parameters`),[];let A=p.queryParameters.map(w=>({key:w.name,schema:w.schema,readonly:void 0,writeonly:void 0,audiences:[],conflict:{},nameOverride:w.parameterNameOverride,generatedName:My([...u,w.name],e.options.preserveSchemaIds),availability:w.availability})),y=zr.object({description:i.description,properties:A,nameOverride:void 0,generatedName:My(u,e.options.preserveSchemaIds),title:void 0,allOf:[],allOfPropertyConflicts:[],namespace:e.namespace,groupName:void 0,fullExamples:void 0,additionalProperties:!1,availability:void 0,encoding:void 0,source:r,inline:void 0,minProperties:void 0,maxProperties:void 0});return[{summary:i.summary,audiences:Lr(i,kn.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:d,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:My(u,e.options.preserveSchemaIds),payload:y,signatureVerification:m,multipartFormData:void 0,response:f?.value,description:i.description,examples:[],source:r}]}let h=Hn(i.requestBody)?e.resolveRequestBodyReference(i.requestBody):i.requestBody;return Object.entries(h.content).map(([A,y])=>KY({mediaType:A,mediaTypeObject:y,description:h.description,document:n,context:e,requestBreadcrumbs:[...a,"Payload"],source:r,namespace:e.namespace})).filter(A=>A!=null).map(A=>{if(A==null||A.type!=="json"&&A.type!=="formUrlEncoded"&&A.type!=="multipart"){e.logger.error(`Skipping webhook ${o} because non-json, non-formUrlEncoded, and non-multipart request body`);return}let y,I;return A.type==="multipart"?(y={name:A.name,properties:A.properties,description:A.description,source:A.source},I=zr.unknown({nameOverride:void 0,generatedName:My(u,e.options.preserveSchemaIds),title:void 0,description:A.description,availability:void 0,namespace:e.namespace,groupName:void 0,example:void 0})):I=A.schema,{summary:i.summary,audiences:Lr(i,kn.AUDIENCES)??[],sdkName:c,namespace:e.namespace,method:s,operationId:d,tags:e.resolveTagsToTagIds(i.tags),headers:p.headers,generatedPayloadName:My(u,e.options.preserveSchemaIds),payload:I,signatureVerification:m,multipartFormData:y,response:f?.value,description:i.description,examples:nxp(A.fullExamples),source:r}}).filter(A=>A!=null)}function nxp(e){if(e==null)return[];let t=[];for(let r of e){let n=mbe(r.value);n!=null&&t.push({description:r.description,name:r.name,payload:n})}return t}function ixp({path:e,method:t,sdkMethodName:r}){if(r?.methodName!=null)return r.methodName;let n=oxp(e);if(n===e.toLowerCase())return e;let i=(0,uIa.createHash)("sha256").update(e).digest("hex").slice(0,8);return sxp(`${n}_${t.toLowerCase()}_${i}`)}function oxp(e){return e.replace(/[{$}#]/g,"").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_").toLowerCase().slice(0,64)}function sxp(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function b4i({context:e,pathItemContext:t,operation:r,convertToWebhook:n}){let i=Lr(r,kn.IGNORE);if(i!=null&&i){e.logger.debug(`${t.method.toUpperCase()} ${t.path} is marked with x-fern-ignore. Skipping.`);return}let o=axp(r,e),s=Ava(e.document,r),a={...t,sdkMethodName:o,baseBreadcrumbs:cxp({operation:r,sdkMethodName:o,httpMethod:t.method,path:t.path,shouldUseIdiomaticRequestNames:e.options.shouldUseIdiomaticRequestNames}),operation:r,operationParameters:r.parameters??[],pagination:s};if(n)return{type:"webhook",value:lIa({context:e,operationContext:a,source:e.source})};let c=hva(e.document,r);if(c==null&&uxp({operation:r,context:e})&&(c={type:"stream",format:"sse",terminator:void 0,resumable:s4i(e.document)??!1}),c!=null){let p=nIa({context:e,operationContext:a,streamingExtension:c});return p!=null?{type:"streaming",streaming:p.streaming,nonStreaming:p.nonStreaming}:void 0}let u=dva(r);if(u!=null){let p=$va({context:e,operationContext:a,asyncExtension:u,source:e.source});return{type:"async",async:p.async,sync:p.sync}}return{type:"http",value:vue({context:e,operationContext:a,streamFormat:void 0,source:e.source})}}function axp(e,t){let r=Lr(e,kn.SDK_METHOD_NAME),n=Lr(e,kn.SDK_GROUP_NAME)??[];if(r!=null){let i=typeof n=="string"?[n]:n;return i=t.resolveGroupName(i),{groupName:i,methodName:r}}}function cxp({sdkMethodName:e,operation:t,httpMethod:r,path:n,shouldUseIdiomaticRequestNames:i}){let o=[];if(e!=null){if(i&&o.push(e.methodName),e.groupName.length>0){let s=e.groupName[e.groupName.length-1];s!=null&&o.push(typeof s=="string"?s:s.name)}i||o.push(e.methodName)}else t.operationId!=null?o.push(t.operationId):o.push(si(`${r}_${n.split("/").join("_")}`));return o}function uxp({operation:e,context:t}){if(e.responses==null)return!1;for(let[r,n]of Object.entries(e.responses)){let i=parseInt(r);if(isNaN(i)||i<200||i>=300)continue;let o=Hn(n)?t.resolveResponseReference(n):n;if(o.content!=null&&bva(o.content))return!0}return!1}function pIa(e,t,r,n){let i=[],o=dIa(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=lxp({operation:a.operation}),u=b4i({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:c});u&&i.push(u)}return i}function fIa(e,t,r,n){let i=[],o=dIa(t),s={document:r,pathItem:t,path:e,pathItemParameters:t.parameters??[]};for(let a of o){if(n.filter.skipEndpoint({method:a.method,path:e})){n.logger.debug(`Skipping endpoint "${a.method} ${e}"`);continue}let c=b4i({context:n,pathItemContext:{...s,method:a.method},operation:a.operation,convertToWebhook:!0});c&&i.push(c)}return i}function dIa(e){let t=[];return e.get!=null&&t.push({method:g1.Get,operation:e.get}),e.post!=null&&t.push({method:g1.Post,operation:e.post}),e.put!=null&&t.push({method:g1.Put,operation:e.put}),e.delete!=null&&t.push({method:g1.Delete,operation:e.delete}),e.patch!=null&&t.push({method:g1.Patch,operation:e.patch}),e.head!=null&&t.push({method:g1.Head,operation:e.head}),t}function lxp({operation:e}){return Lr(e,[kn.WEBHOOK])??!1}Ut();function mIa(e){let t=Lr(e,kn.BASIC_AUTH_USERNAME_VARIABLE_NAME),r=Lr(e,kn.BASIC_AUTH_PASSWORD_VARIABLE_NAME);return{usernameVariable:t,passwordVariable:r}}function hIa(e){return Lr(e,kn.FERN_BASIC_AUTH)}function AIa(e,t,r,n){if(Hn(e)){if(n==null)throw new F({message:`Converting referenced security schemes requires context: ${JSON.stringify(e)}`,code:F.Code.InternalError});let i=n.resolveSecuritySchemeReference(e);return gIa(i,t,r)}return gIa(e,t,r)}function gIa(e,t,r){try{if(e.type==="apiKey"&&e.in==="header"){let n=Lr(e,oO.BEARER_FORMAT),i=Lr(e,kn.FERN_HEADER_AUTH);return h1.header({headerName:e.name,prefix:n!=null?"Bearer":i?.prefix,headerVariableName:i?.name??Lr(e,kn.HEADER_VARIABLE_NAME),headerEnvVar:i?.env,headerPlaceholder:i?.placeholder})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="bearer"){let n=Lr(e,kn.FERN_BEARER_TOKEN);return h1.bearer({tokenVariableName:n?.name??Lr(e,kn.BEARER_TOKEN_VARIABLE_NAME),tokenEnvVar:n?.env,tokenPlaceholder:n?.placeholder})}else if(e.type==="http"&&e.scheme?.toLowerCase()==="basic"){let n=hIa(e),i=mIa(e);return h1.basic({usernameVariableName:n?.username?.name??i.usernameVariable,usernameEnvVar:n?.username?.env,usernamePlaceholder:n?.username?.placeholder,passwordVariableName:n?.password?.name??i.passwordVariable,passwordEnvVar:n?.password?.env,passwordPlaceholder:n?.password?.placeholder})}else{if(e.type==="openIdConnect")return h1.bearer({tokenVariableName:void 0,tokenEnvVar:void 0,tokenPlaceholder:void 0});if(e.type==="oauth2")return h1.oauth({scopesEnum:pxp(e,t)})}}catch(n){r.logger.debug(`Error converting security scheme: ${n?.message}`)}r.logger.debug(`Skipping security scheme: ${JSON.stringify(e,null)} - not currently supported. Please reach out to Fern support team!`)}function pxp(e,t){let r=e.flows.authorizationCode?.scopes??e.flows.clientCredentials?.scopes??e.flows.implicit?.scopes??e.flows.password?.scopes;if(r!=null){let n=fbe({nameOverride:void 0,generatedName:"OauthScope",title:void 0,enumValues:Object.keys(r),fernEnum:Object.fromEntries(Object.entries(r).map(([o,s])=>[o,{description:s}])),_default:void 0,description:void 0,availability:void 0,enumVarNames:void 0,wrapAsOptional:!1,wrapAsNullable:!1,namespace:void 0,groupName:void 0,context:void 0,source:t,inline:void 0}),i=fd(n);if(i.type==="enum")return i}}function yIa(e){return Lr(e,kn.BASE_PATH)}as();var fxp=Bt.record(Bt.string(),Bt.object({summary:Bt.string().optional(),description:Bt.string().optional()}));function bIa({document:e,context:t}){return p2t(e,kn.GROUPS,fxp,t.logger)}function EIa({context:e,document:t}){return Lr(t,kn.FERN_VERSION)??void 0}function vIa(e){let t=Lr(e,kn.FERN_GLOBAL_HEADERS),r=[];for(let n of t??[])r.push({header:n.header,name:n.name,optional:n.optional,env:n.env,clientDefault:n["x-fern-default"],schema:n.type!=null?f2t({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}function IIa(e){let t=Lr(e,kn.FERN_IDEMPOTENCY_HEADERS),r=[];for(let n of t??[])r.push({...n,schema:n.type!=null?f2t({fernType:n.type,description:void 0,availability:void 0,generatedName:n.name??n.header,title:void 0,namespace:void 0,groupName:void 0,nameOverride:void 0}):void 0});return r}Ut();function CIa(e,t){let r=Lr(e,kn.SDK_VARIABLES);return r==null?{}:Object.fromEntries(Object.entries(r).map(([n,i])=>{if(i.type==="string")return[n,{nameOverride:void 0,generatedName:My([n],t),title:i.title,schema:Yl.string({default:SYe(i),pattern:i.pattern,format:i.format,minLength:i.minLength,maxLength:i.maxLength}),description:i.description,availability:void 0,namespace:void 0,groupName:void 0}];throw new F({message:`Variable ${n} has unsupported schema ${JSON.stringify(i)}`,code:F.Code.ValidationError})}))}var dxp="webhooks";function wIa(e){return Lr(e,dxp)??{}}var x2t=class extends RYe{nonRequestReferencedSchemas=new Set;twoOrMoreRequestsReferencedSchemas=new Set;singleRequestReferencedSchemas=new Set;discriminatedUnionReferences={};discriminatedUnionMetadata={};schemasToExclude=new Set;constructor({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s}){super({document:t,taskContext:r,authHeaders:n,options:i,source:o,namespace:s})}getDummy(){return new KNe({document:this.document,taskContext:this.taskContext,options:this.options,source:this.source,namespace:this.namespace})}markSchemaAsReferencedByNonRequest(t){this.nonRequestReferencedSchemas.add(t)}markSchemaAsReferencedByRequest(t){this.singleRequestReferencedSchemas.has(t)?this.twoOrMoreRequestsReferencedSchemas.add(t):this.singleRequestReferencedSchemas.add(t)}getReferencedSchemas(){return new Set([...this.nonRequestReferencedSchemas,...this.twoOrMoreRequestsReferencedSchemas])}markReferencedByDiscriminatedUnion(t,r,n){let i=this.discriminatedUnionReferences[t.$ref];i!=null?(i.discriminants.add(r),i.numReferences+=n):this.discriminatedUnionReferences[t.$ref]={discriminants:new Set([r]),numReferences:n}}getReferencesFromDiscriminatedUnion(t){return this.discriminatedUnionReferences[t.$ref]}markSchemaWithDiscriminantValue(t,r,n){let i=this.discriminatedUnionMetadata[t.$ref];i!=null?i.discriminants.set(r,n):this.discriminatedUnionMetadata[t.$ref]={discriminants:new Map([[r,n]])}}getDiscriminatedUnionMetadata(t){return this.discriminatedUnionMetadata[t.$ref]}excludeSchema(t){this.schemasToExclude.add(t)}isSchemaExcluded(t){return this.schemasToExclude.has(t)}};function xIa(e){return Lr(e,kn.RESOLUTIONS)}function SIa({openapi:e}){let t=xIa(e);if(t==null)return e;let r={};for(let n of t){let i=`#/components/schemas/${n.name}`;for(let o of n.resolutions)e=mxp({openapi:e,schemaReference:o,schemaName:n.name}),e=TIa({openapi:e,replaceReference:o,schemaReference:i,replacedReferences:r}),r={...r,...Object.fromEntries(n.resolutions.map(s=>[i,s]))}}return e}function mxp({openapi:e,schemaReference:t,schemaName:r}){let n=t.replace("#/","").split("/").map(o=>o.replaceAll("~1","/")),i=e;for(let o of n){let s=i[o];if(s==null)return e;i=s}return e.components==null&&(e.components={}),e.components.schemas==null&&(e.components.schemas={}),e.components.schemas[r]=i,e}function TIa({openapi:e,replaceReference:t,schemaReference:r,replacedReferences:n}){let i=Object.keys(n).filter(c=>t.startsWith(c)).sort((c,u)=>u.length-c.length)[0];if(i!=null){let c=n[i];if(c!=null){let u=r.replace(i,c);return TIa({openapi:e,replaceReference:t,schemaReference:u,replacedReferences:{}})}}let o=t.replace("#/","").split("/").map(c=>c.replaceAll("~1","/")),s=e;for(let c of o.slice(0,-1)){let u=s[c];if(u==null)return e;s=u}let a=o[o.length-1];return a==null||(s[a]={$ref:r}),e}function OIa({openApi:e,taskContext:t,options:r,source:n,namespace:i}){e=SIa({openapi:e}),pxr();let o=new x2t({document:e,taskContext:t,authHeaders:new Set,options:r,source:n,namespace:i}),s=Object.fromEntries(Object.entries(e.components?.securitySchemes??{}).map(([X,ee])=>{let ne=AIa(ee,n,t,o);return ne==null?null:[X,ne]}).filter(X=>X!==null)),a=bxr(e.security?.filter(X=>X!=null)),c=new Set(Object.entries(s).map(([X,ee])=>ee.type==="basic"||ee.type==="bearer"||ee.type==="oauth"?"Authorization":ee.type==="header"?ee.headerName:null).filter(X=>X!=null)),u=CIa(e,r.preserveSchemaIds),l=vIa(e),p=IIa(e),d=r.audiences??[],f=[],m=[],h=new x2t({document:e,taskContext:t,authHeaders:c,options:r,source:n,namespace:i});h.filter.hasEndpoints()&&t.logger.debug("Endpoint filter applied..."),Object.entries(e.paths??{}).forEach(([X,ee])=>{if(ee==null)return;let ne=pIa(X,ee,e,h);for(let pe of ne){let ge=BIa({operation:pe});if(!(d.length>0&&!d.some(ue=>ge.includes(ue))))switch(pe.type){case"async":f.push(...pe.sync),f.push(...pe.async);break;case"http":f.push(...pe.value);break;case"streaming":f.push(...pe.streaming),pe.nonStreaming&&f.push(...pe.nonStreaming);break;case"webhook":m.push(...pe.value);break;default:we(pe)}}}),Object.entries(wIa(e)).forEach(([X,ee])=>{if(ee==null)return;t.logger.debug(`Converting path ${X}`);let ne=fIa(X,ee,e,h);for(let pe of ne){let ge=BIa({operation:pe});d.length>0&&!d.some(ue=>ge.includes(ue))||m.push(...pe.value)}});let A=Object.fromEntries(Object.entries(e.components?.schemas??{}).map(([X,ee])=>{let ne=Lr(ee,kn.SDK_NAMESPACE);if(!Hn(ee)){let pe=Lr(ee,kn.IGNORE);if(pe!=null&&pe)return[];if(Kva.has(X))return[X,fc({...ee,"x-fern-type-name":`${X}Body`},!1,!1,h,[X],n,ne??i)]}return[X,fc(ee,!1,!1,h,[X],n,ne??i)]}).filter(X=>X.length>0)),y=hxp(A,h,n),I=Axp(y,h),w=VY(),C={};for(let[X,ee]of Object.entries(I)){let ne=fd(ee);if(h.isSchemaExcluded(X))continue;let pe=w.getUniqueSchemaId(X,h.logger,r.resolveSchemaCollisions);C[pe]=ne}let x=new hbe(I,h.nonRequestReferencedSchemas,h),B=m.map(X=>{let ne=X.examples;if(!r.disableExamples&&ne.length===0){let pe=x.buildExample({schema:X.payload,exampleId:void 0,example:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});pe!=null&&(ne=[{name:void 0,description:void 0,payload:pe}])}return{...X,payload:fd(X.payload),examples:ne}}),O=new mxr(I,h,l),k=f.map(X=>{let ee=X.examples,ne=ee;if(!r.disableExamples&&(ee.length===0||ee.every(A2t))){let ue=O.buildEndpointExample(X);ue.length>0&&(ne=[...ue,...ee.filter(he=>!A2t(he))])}let pe=X.request,ge=X.response;return{...X,request:pe?.type==="json"||pe?.type==="formUrlEncoded"?{...pe,schema:fd(pe.schema)}:pe,response:ge?.type==="json"?{...ge,schema:fd(ge.schema)}:ge,queryParameters:X.queryParameters.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,explode:ue.explode,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),pathParameters:X.pathParameters.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,variableReference:ue.variableReference,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),headers:X.headers.map(ue=>({description:ue.description,name:ue.name,schema:fd(ue.schema),parameterNameOverride:ue.parameterNameOverride,env:ue.env,availability:ue.availability,source:ue.source,clientDefault:ue.clientDefault})),examples:ne,errors:Cp(X.errors,ue=>{let he=ue.fullExamples?.map(Le=>{let ke=mbe(Le.value);if(ke!=null)return{name:Le.name,description:Le.description,example:ke}}).filter(Ha);if(he?.length===0){let Le=x.buildExample({schema:ue.schema,example:void 0,exampleId:void 0,skipReadonly:!1,options:{ignoreOptionals:!1,isParameter:!1}});Le!=null&&he.push({name:void 0,description:void 0,example:Le})}return{generatedName:ue.generatedName,nameOverride:ue.nameOverride,schema:fd(ue.schema),description:ue.description,source:ue.source,examples:he}}),retries:X.retries}});O.finalize();let P=bIa({document:e,context:h});return{apiVersion:EIa({context:h,document:e}),basePath:yIa(e),title:e.info.title??"",description:e.info.description,groups:Object.fromEntries(Object.entries(P??{}).map(([X,ee])=>[X,{summary:ee.summary??void 0,description:ee.description??void 0}])),servers:(e.servers??[]).map(X=>Dxr(X,{groupMultiApiEnvironments:r.groupMultiApiEnvironments})),websocketServers:[],tags:{tagsById:Object.fromEntries((e.tags??[]).map(X=>[X.name,{id:X.name,description:X.description}])),orderedTagIds:e.tags?.map(X=>X.name)},endpoints:k,webhooks:B,channels:{},groupedSchemas:BYe(i,C),securitySchemes:s,security:a,hasEndpointsMarkedInternal:k.some(X=>X.internal),nonRequestReferencedSchemas:h.getReferencedSchemas(),variables:u,globalHeaders:l,idempotencyHeaders:p}}function hxp(e,t,r){if(t.options.removeDiscriminantsFromSchemas===zn.RemoveDiscriminantsFromSchemas.Never)return e;let n=gxp(e,t),i={};for(let[o,s]of Object.entries(e)){if(s.type!=="object"){i[o]=s;continue}let a={$ref:`#/components/schemas/${o}`},c=t.getReferencesFromDiscriminatedUnion(a);if(c==null){i[o]=s;continue}if(t.getReferencedSchemas().has(o)){i[o]=s;continue}let l={...s,type:"object",properties:s.properties.filter(d=>!c.discriminants.has(d.key)),allOfPropertyConflicts:s.allOfPropertyConflicts.filter(d=>!c.discriminants.has(d.propertyKey)),source:r};i[o]=l;let p=E4i({schema:s,schemas:e});for(let d of[...new Set(p)]){if(n.has(d))continue;let f=i[d]??e[d];f==null||f.type!=="object"||(i[d]={...f,type:"object",properties:f.properties.filter(m=>!c.discriminants.has(m.key)),allOfPropertyConflicts:f.allOfPropertyConflicts.filter(m=>!c.discriminants.has(m.propertyKey))})}}return i}function gxp(e,t){let r=new Set;for(let[n,i]of Object.entries(e)){if(i.type!=="object")continue;let o={$ref:`#/components/schemas/${n}`};if(t.getReferencesFromDiscriminatedUnion(o)==null)for(let s of E4i({schema:i,schemas:e}))r.add(s)}return r}function Axp(e,t){let r={};for(let[n,i]of Object.entries(e)){if(i.type!=="object"){r[n]=i;continue}let o={$ref:`#/components/schemas/${n}`},s=t.getDiscriminatedUnionMetadata(o);if(s==null){r[n]=i;continue}let a=[];for(let u of i.properties)if(s.discriminants.has(u.key)){let l=s.discriminants.get(u.key);l!=null&&a.push({...u,schema:zr.literal({nameOverride:void 0,generatedName:My([i.generatedName,l],t.options.preserveSchemaIds),title:void 0,value:Qy.string(l),namespace:void 0,groupName:void 0,description:void 0,availability:i.availability})})}else a.push(u);let c={...i,type:"object",properties:a};r[n]=c}return r}function E4i({schema:e,schemas:t}){let r=[];for(let n of e.allOf){r.push(n.schema);let i=t[n.schema];i!=null&&i.type==="object"&&r.push(...E4i({schema:i,schemas:t}))}return r}function jxr(e){return[...new Set(e)]}function BIa({operation:e}){let t=[];switch(e.type){case"async":t=jxr(e.async.flatMap(r=>r.audiences));break;case"http":t=jxr(e.value.flatMap(r=>r.audiences));break;case"streaming":t=jxr(e.streaming.flatMap(r=>r.audiences));break;case"webhook":t=jxr(e.value.flatMap(r=>r.audiences));break;default:we(e)}return t}function pje({context:e,documents:t,options:r}){let n={apiVersion:void 0,title:void 0,description:void 0,basePath:void 0,servers:[],websocketServers:[],tags:{tagsById:{},orderedTagIds:void 0},hasEndpointsMarkedInternal:!1,endpoints:[],webhooks:[],channels:{},groupedSchemas:{rootSchemas:{},namespacedSchemas:{}},variables:{},nonRequestReferencedSchemas:new Set,securitySchemes:{},security:void 0,globalHeaders:[],idempotencyHeaders:[],groups:{}},i=0;for(let o of t)try{let s=o.source!=null?o.source:mD.openapi({file:"<memory>"});switch(o.type){case"openapi":{let a=OIa({taskContext:e,openApi:o.value,options:u_({options:o.settings,overrides:r}),source:s,namespace:o.namespace});n=Ixp(n,a,u_({options:o.settings,overrides:r})),i++;break}case"asyncapi":{let a=fva({document:o.value,taskContext:e,options:u_({options:o.settings,overrides:r}),source:s,asyncApiOptions:yxp({options:o.settings}),namespace:o.namespace});a.servers!=null&&(n.websocketServers=[...n.websocketServers,...a.servers.map(c=>({...c,audiences:void 0,description:void 0,defaultUrl:void 0,urlTemplate:void 0,variables:void 0}))]),a.channels!=null&&(n.channels={...n.channels,...a.channels}),a.groupedSchemas!=null&&(n.groupedSchemas=Qxr(n.groupedSchemas,a.groupedSchemas,r)),a.basePath!=null&&(n.basePath=a.basePath),i++;break}default:we(o)}}catch(s){e.logger.error(`Failed to parse ${o.type} document ${o.type==="openapi"?o.value.info?.title:o.source?.file}`),s instanceof Error&&e.logger.error(s.message,s.stack?`
|
|
3025
3025
|
`+s.stack:"")}return n}function yxp({options:e,overrides:t}){return{naming:t?.naming??e?.asyncApiNaming??OEa.naming}}function Mxr(e){let t=String(e.description||e.name||e["x-fern-server-name"]||"default").trim(),r=t.toUpperCase();return r==="PRODUCTION"||r==="PRD"||r==="PROD"?"PRD":r==="SANDBOX"||r==="SBX"?"SBX":r==="STAGING"||r==="STG"?"STG":r==="PERFORMANCE"||r==="PRF"||r==="PERF"?"PRF":r==="E2E"||r==="E_2_E"?"E2E":r==="QAL"||r==="QUALITY"?"QAL":t}function I4i(e){try{let n=new URL(e).hostname.split("."),i=new Set(["api","www","service","services","example","com","org","net","io"]);for(let s of n){let a=s.split("-")[0],c=a&&a.length>2?a:s;if(c&&!i.has(c.toLowerCase())&&c.length>2)return c.toLowerCase()}let o=n[0];return o&&o.length>0?o.toLowerCase():"api"}catch{let t=e.match(/https?:\/\/([^./-]+)/);return t&&t[1]?t[1].toLowerCase():"api"}}function v4i(e,t){let r=e??[],n=t??[];if(r.length===0&&n.length===0)return;let i=new Map;for(let o of[...r,...n]){let s=Object.keys(o).sort(),a={};for(let u of s)a[u]=o[u]??[];let c=JSON.stringify(a);i.has(c)||i.set(c,o)}return Array.from(i.values())}function bxp(e,t){if(vxp(e))return!0;if(e.length===0||t.length===0||e.length!==t.length)return!1;let r=new Map;for(let o of e){if(o.type==="grouped")continue;let s=Mxr(o);r.set(s,o.url)}let n=!0,i=!0;for(let o of t){if(o.type==="grouped")continue;let s=Mxr(o),a=r.get(s);a?a===o.url&&(i=!1):n=!1}return n&&i}function C4i(e){return e.defaultUrl??e.url}function Exp(e){if(e.length===0||!e[0])return"api";let t=e[0];return t.type==="grouped"?Object.keys(t.urls)[0]??"api":I4i(C4i(t))}function vxp(e){return e.some(t=>t.type==="grouped")}function Ixp(e,t,r){if(!(r?.groupMultiApiEnvironments===!0))return{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:[...e.servers,...t.servers],websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:[...e.endpoints,...t.endpoints],webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:Qxr(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:v4i(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}};if(bxp(e.servers,t.servers)){let o=[],s=[],a=Exp(t.servers),c=new Map;for(let p of e.servers)if(p.type==="grouped"){let d=p.name??"default";c.has(d)||c.set(d,{});let f=c.get(d);if(f)for(let[m,h]of Object.entries(p.urls))f[m]=h}else{let d=I4i(C4i(p)),f=Mxr(p);c.has(f)||c.set(f,{});let m=c.get(f);m&&(m[d]={url:p.url,audiences:p.audiences,defaultUrl:p.defaultUrl,urlTemplate:p.urlTemplate,variables:p.variables})}for(let p of t.servers){let d=Mxr(p);c.has(d)||c.set(d,{});let f=c.get(d);f&&(f[a]={url:p.url,audiences:p.audiences,defaultUrl:p.defaultUrl,urlTemplate:p.urlTemplate,variables:p.variables})}for(let[p,d]of c.entries()){let f={type:"grouped",name:p,description:`${p} environment`,urls:d};o.push(f)}let u=e.endpoints.map(p=>{let d=p.__apiName;if(d)return{...p,type:"multi-api",apiName:d,servers:[{name:d,url:void 0,audiences:void 0}]};let f=e.servers[0],m=f!=null&&f.type!=="grouped"?I4i(C4i(f)):"api";return{...p,type:"multi-api",apiName:m,servers:[{name:m,url:void 0,audiences:void 0}]}}),l=t.endpoints.map(p=>({...p,type:"multi-api",apiName:a,servers:[{name:a,url:void 0,audiences:void 0}]}));return s=[...u,...l],{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:o,websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:s.map(p=>{if(p.type==="multi-api"){let{type:m,apiName:h,servers:A,...y}=p;return{...y,__apiName:h,servers:A}}let{type:d,...f}=p;return f}),webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:Qxr(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:v4i(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}}}return{apiVersion:e.apiVersion??t.apiVersion,title:e.title??t.title,description:e.description??t.description,basePath:e.basePath??t.basePath,servers:[...e.servers,...t.servers],websocketServers:[...e.websocketServers,...t.websocketServers],tags:{tagsById:{...e.tags.tagsById,...t.tags.tagsById},orderedTagIds:e.tags.orderedTagIds==null&&t.tags.orderedTagIds==null?void 0:[...e.tags.orderedTagIds??[],...t.tags.orderedTagIds??[]]},hasEndpointsMarkedInternal:e.hasEndpointsMarkedInternal||t.hasEndpointsMarkedInternal,endpoints:[...e.endpoints,...t.endpoints],webhooks:[...e.webhooks,...t.webhooks],channels:{...e.channels,...t.channels},groupedSchemas:Qxr(e.groupedSchemas,t.groupedSchemas,r),variables:{...e.variables,...t.variables},nonRequestReferencedSchemas:new Set([...e.nonRequestReferencedSchemas,...t.nonRequestReferencedSchemas]),securitySchemes:{...e.securitySchemes,...t.securitySchemes},security:v4i(e.security,t.security),globalHeaders:e.globalHeaders!=null?[...e.globalHeaders,...t.globalHeaders??[]]:void 0,idempotencyHeaders:e.idempotencyHeaders!=null?[...e.idempotencyHeaders,...t.idempotencyHeaders??[]]:void 0,groups:{...e.groups,...t.groups}}}function Qxr(e,t,r){let n=VY(),i=r?.resolveSchemaCollisions??!1,o={...e.rootSchemas};for(let[s,a]of Object.entries(t.rootSchemas)){let c=n.getUniqueSchemaId(s,void 0,i);o[c]=a}e.rootSchemas=o;for(let[s,a]of Object.entries(t.namespacedSchemas))if(e.namespacedSchemas[s]!=null){let c=e.namespacedSchemas[s];for(let[u,l]of Object.entries(a)){let p=n.getUniqueSchemaId(u,void 0,i);c[p]=l}}else e.namespacedSchemas[s]=a;return e}var GDa=xe(_Br(),1),VBr={config:new GDa.Config({apis:{},styleguide:{plugins:[Yzi],rules:{struct:"warn"}}},void 0),dereference:!1,removeUnusedComponents:!1,keepUrlRefs:!1};function Q9({options:e,overrides:t}={}){return{...u_({options:e,overrides:t}),...FNe({options:e,overrides:t})}}var S7p={shouldUseTitleAsName:"useTitlesAsName",shouldUseUndiscriminatedUnionsWithLiterals:["shouldUseUndiscriminatedUnionsWithLiterals","discriminatedUnionV2"],shouldUseIdiomaticRequestNames:"shouldUseIdiomaticRequestNames",asyncApiMessageNaming:"asyncApiNaming",shouldUseOptionalAdditionalProperties:"optionalAdditionalProperties",coerceEnumsToLiterals:"coerceEnumsToLiterals",objectQueryParameters:"objectQueryParameters",respectReadonlySchemas:"respectReadonlySchemas",respectNullableSchemas:"respectNullableSchemas",onlyIncludeReferencedSchemas:"onlyIncludeReferencedSchemas",inlinePathParameters:"inlinePathParameters",useBytesForBinaryResponse:"useBytesForBinaryResponse",respectForwardCompatibleEnums:"respectForwardCompatibleEnums",filter:"filter",defaultFormParameterEncoding:"defaultFormParameterEncoding",exampleGeneration:"exampleGeneration",additionalPropertiesDefaultsTo:"additionalPropertiesDefaultsTo",typeDatesAsStrings:"typeDatesAsStrings",preserveSingleSchemaOneOf:"preserveSingleSchemaOneOf",inlineAllOfSchemas:"inlineAllOfSchemas",resolveAliases:"resolveAliases",groupMultiApiEnvironments:"groupMultiApiEnvironments",groupEnvironmentsByHost:"groupEnvironmentsByHost",multiServerStrategy:"multiServerStrategy",inferDefaultEnvironment:"inferDefaultEnvironment",wrapReferencesToNullableInOptional:"wrapReferencesToNullableInOptional",coerceOptionalSchemasToNullable:"coerceOptionalSchemasToNullable",removeDiscriminantsFromSchemas:"removeDiscriminantsFromSchemas",defaultIntegerFormat:"defaultIntegerFormat",pathParameterOrder:"pathParameterOrder",resolveSchemaCollisions:"resolveSchemaCollisions",inferForwardCompatible:"inferForwardCompatible",coerceConstsTo:"coerceConstsTo",shouldInferDiscriminatedUnionBaseProperties:"shouldInferDiscriminatedUnionBaseProperties"};function T7p(e,t,r){r!==void 0&&(e[t]=r)}function qBr(e){let t={};if(e!=null)for(let[r,n]of Object.entries(S7p)){let i=e[r],o=Array.isArray(n)?n:[n];for(let s of o)T7p(t,s,i)}return Q9({options:t})}function VXe(e){if(e.settings==null&&e.apiOverride?.auth==null&&e.apiOverride?.["auth-schemes"]==null&&e.apiOverride?.headers==null)return;let t={detectGlobalHeaders:!0};return e.settings?.unions==="v1"&&(t.discriminatedUnionV2=!0),e.apiOverride?.auth!=null&&(t.auth=e.apiOverride.auth),e.apiOverride?.["auth-schemes"]!=null&&(t.authSchemes=e.apiOverride["auth-schemes"]),e.apiOverride?.headers!=null&&(t.headers=e.apiOverride.headers),t}function $2(e){return e.swagger!=null}function c7i(e){return e.openapi!=null}jt();Ry();ao();function Jbe(e,t={}){return{...Object.fromEntries(P0(e.namedDefinitionFiles).map(([r,n])=>[r,{...n,defaultUrl:t.defaultURL}])),...P0(e.importedDefinitions).reduce((r,[n,i])=>({...r,...jPt(Jbe(i.definition,{defaultURL:i.url}),(o,s)=>Lv(n,oa.of(s)))}),{})}}jt();Ry();ao();function Qkt(e,t={}){return{...Object.fromEntries(P0(e.packageMarkers).map(([r,n])=>[r,{...n,defaultUrl:t.defaultURL}])),...P0(e.importedDefinitions).reduce((r,[n,i])=>({...r,...jPt(Qkt(i.definition,{defaultURL:i.url}),(o,s)=>Lv(n,oa.of(s)))}),{})}}function zue(e){return{...Qkt(e),...Jbe(e)}}function w_(e,t){return zue(e.definition)[t]?.contents}jt();Ry();function $I(e,t){for(let[r,n]of P0(zue(e.definition)))t(r,n.contents,{isPackageMarker:JS(r)===ed,defaultUrl:n.defaultUrl})}jt();function Uje(e,t){for(let[r,n]of P0(Qkt(e.definition)))t(r,n.contents)}jt();Ut();var WDa=xe(require("path"),1);async function GBr({schema:e,value:t,context:r,filepathBeingParsed:n}){let i=await e.safeParseAsync(t);if(i.success)return i.data;let o=i.error.errors.map(a=>{let c=a.path.length>0?`${a.message} at "${B7p(a.path)}"`:a.message;return Pj({content:c,prefix:" - "})}),s=[`Failed to parse file: ${WDa.default.relative(process.cwd(),n)}`,...o].join(`
|
|
3026
3026
|
`);return r.failAndThrow(s,void 0,{code:F.Code.ConfigError})}function B7p(e){return e.reduce((t,r)=>typeof r=="number"?t+"["+r+"]":t+(t===""?"":".")+r,"")}nr();Ut();var HDa=xe(require("path"),1),O7p={dependencies:{}};async function KDa({absolutePathToWorkspace:e,rawDependenciesConfiguration:t,context:r}){if(t==null)return O7p;let n={};for(let[i,o]of Object.entries(t.dependencies))if(D7p(o)){let s=Xt.of(HDa.default.join(e,o));await cr(s)?n[i]={type:"local",absoluteFilepath:s,path:o}:r.failWithoutThrowing(`Path to ${i} dependency does not exist: ${s}`,void 0,{code:F.Code.ConfigError})}else{let a=i.substring(1).split("/"),c=a[0],u=a[1];c!=null&&u!=null?n[i]={type:"version",organization:c,apiName:u,version:o}:r.failWithoutThrowing(`Failed to parse dependency: ${i}`,void 0,{code:F.Code.ConfigError})}return r.getResult()===zf.Failure&&r.failAndThrow(void 0,void 0,{code:F.Code.ConfigError}),{dependencies:n}}var P7p=/^\.\.\/.*$/;function D7p(e){return P7p.test(e)}nr();var YDa=require("fs/promises");ks();as();var JDa=Bt.object({dependencies:Bt.record(Bt.string(),Bt.string())});async function XDa({absolutePathToWorkspace:e,context:t}){let r=nt(e,Ne.of(hfa));if(!await cr(r))return;let n=await(0,YDa.readFile)(r),i=Or.load(n.toString());return await GBr({schema:JDa,value:i,context:t,filepathBeingParsed:r})}async function u7i({absolutePathToWorkspace:e,context:t}){let r=await XDa({absolutePathToWorkspace:e,context:t});return KDa({absolutePathToWorkspace:e,rawDependenciesConfiguration:r,context:t})}jt();Ut();KBr();function sRa(e={accentPrimary:void 0,background:void 0},t){e.accentPrimary=e.accentPrimary??e.accentPrimaryDeprecated;let r=YBr(e);switch(r){case"dark":return{type:"dark",...JBr(e,t,"dark")};case"light":return{type:"light",...JBr(e,t,"light")};case"darkAndLight":return{type:"darkAndLight",dark:JBr(e,t,"dark"),light:JBr(e,t,"light")};default:we(r)}}function YBr({background:e,accentPrimary:t,accentPrimaryDeprecated:r}){if(t=t??r,typeof e=="string"&&typeof t=="string")return hs(e).isDark()?"dark":"light";if(e!=null){if(typeof e=="string")return hs(e).isDark()?"dark":"light";if(e.dark!=null&&e.light!=null)return"darkAndLight"}if(t!=null){if(typeof t=="string")return hs(t).isLight()?"dark":"light";if(t.dark!=null&&t.light!=null)return"darkAndLight"}if(t!=null&&e!=null){if(e.dark!=null&&t.dark!=null)return"dark";if(e.light!=null&&t.light!=null)return"light"}return"darkAndLight"}function JBr(e,t,r){let n=w1(e.accentPrimary??e.accentPrimaryDeprecated,t,"accent-primary",r)??hs.random(),i=w1(e.background,t,"background",r);return{accentPrimary:n.toRgb(),background:i?.toRgb(),border:w1(e.border,t,"border",r)?.toRgb(),sidebarBackground:w1(e.sidebarBackground,t,"sidebar-background",r)?.toRgb(),headerBackground:w1(e.headerBackground,t,"header-background",r)?.toRgb(),cardBackground:w1(e.cardBackground,t,"card-background",r)?.toRgb(),accent1:w1(e.accent1,t,"accent-1",r)?.toRgb(),accent2:w1(e.accent2,t,"accent-2",r)?.toRgb(),accent3:w1(e.accent3,t,"accent-3",r)?.toRgb(),accent4:w1(e.accent4,t,"accent-4",r)?.toRgb(),accent5:w1(e.accent5,t,"accent-5",r)?.toRgb(),accent6:w1(e.accent6,t,"accent-6",r)?.toRgb(),accent7:w1(e.accent7,t,"accent-7",r)?.toRgb(),accent8:w1(e.accent8,t,"accent-8",r)?.toRgb(),accent9:w1(e.accent9,t,"accent-9",r)?.toRgb(),accent10:w1(e.accent10,t,"accent-10",r)?.toRgb(),accent11:w1(e.accent11,t,"accent-11",r)?.toRgb(),accent12:w1(e.accent12,t,"accent-12",r)?.toRgb(),logo:void 0,backgroundImage:void 0}}function Lkt(e,t,r){if(e==null)return;let n=typeof e=="string"?e:e[r];if(n==null&&t==="accent-primary"&&typeof e!="string"&&(n=e[r==="dark"?"light":"dark"]),n!=null)return n}function w1(e,t,r,n){let i=Lkt(e,r,n);if(i==null)return;let o=hs(i);return o.isValid()||t.failAndThrow(`'${typeof e=="string"?r:`colors.${r}.${n}`}' should be a hex color of the format #FFFFFF`,void 0,{code:F.Code.ConfigError}),o}jt();nr();var cRa=require("fs/promises");ao();var aRa=100;async function rqp({files:e,absolutePathToFernFolder:t}){let r=await Promise.all(e.map(async n=>{let i=await(0,cRa.readFile)(n,"utf-8");return[QE(t,n),i]}));return Object.fromEntries(r)}async function uRa({files:e,absolutePathToFernFolder:t}){let r={};for(let n=0;n<e.length;n+=aRa){let i=e.slice(n,n+aRa),o=await rqp({files:i,absolutePathToFernFolder:t});Object.assign(r,o)}return r}function _ue({landingPage:e,navigation:t}){return fU([e?.absolutePath,...nqp(t)])}function nqp(e){switch(e.type){case"tabbed":return e.items.flatMap(t=>t.child.type==="layout"?t.child.layout.flatMap(r=>XBr({item:r})):t.child.type==="variants"?t.child.variants.flatMap(r=>r.layout.flatMap(n=>XBr({item:n}))):t.child.type==="changelog"?t.child.changelog:[]);case"untabbed":return e.items.flatMap(t=>XBr({item:t}));case"versioned":return e.versions.flatMap(t=>_ue({landingPage:t.landingPage,navigation:t.navigation}));case"productgroup":return e.products.flatMap(t=>t.type==="external"?[]:_ue({landingPage:t.landingPage,navigation:t.navigation}));default:we(e)}}function XBr({item:e}){switch(e.type){case"apiSection":return fU([e.overviewAbsolutePath,...e.navigation.flatMap(t=>lRa({item:t}))]);case"link":return[];case"page":return[e.absolutePath];case"section":return fU([e.overviewAbsolutePath,...e.contents.flatMap(t=>XBr({item:t}))]);case"changelog":return e.changelog;case"librarySection":return[];default:we(e)}}function lRa({item:e}){return e.type==="page"?[e.absolutePath]:e.type==="package"||e.type==="section"?fU([e.overviewAbsolutePath,...e.contents.flatMap(t=>lRa({item:t}))]):[]}jt();lg();nr();Ut();var dpe=require("fs/promises");ks();var oW=xe(require("path"),1);nr();var aso=require("fs/promises"),Fec=xe(j_(),1);function Pkr({name:e}){return e.replace(/\.(md|mdx)$/i,"").toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}function cso({name:e}){return e.replace(/\.(md|mdx)$/i,"").replace(/[-_]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}async function Dkr({absolutePath:e,readFileFn:t=(r,n)=>(0,aso.readFile)(r,n)}){try{let r=await t(e,"utf-8"),{data:n}=(0,Fec.default)(r),i;if(n.position!=null){let c=typeof n.position=="string"?parseFloat(n.position):n.position;typeof c=="number"&&Number.isFinite(c)&&(i=c)}let o=typeof n.title=="string"&&n.title.trim().length>0?n.title.trim():void 0,s=n.hidden===!0?!0:void 0,a=n.noindex===!0?!0:void 0;return{position:i,title:o,hidden:s,noindex:a}}catch{return{position:void 0,title:void 0,hidden:void 0,noindex:void 0}}}function Rec({frontmatterTitle:e,useFrontmatterTitles:t,fallbackName:r}){return t&&e!=null?e:cso({name:r})}async function uso({directoryPath:e,titleSource:t,getDir:r=F0,readFileFn:n=(i,o)=>(0,aso.readFile)(i,o)}){let i=await r(e),o=t==="frontmatter",s=i.filter(d=>d.type==="file"&&!d.name.startsWith("_")&&(d.name.toLowerCase().endsWith(".md")||d.name.toLowerCase().endsWith(".mdx"))),a=i.filter(d=>d.type==="directory"&&!d.name.startsWith("_")),c=await Promise.all(s.map(d=>Dkr({absolutePath:d.absolutePath,readFileFn:n}))),u=s.map((d,f)=>{let m=c[f];return{type:"page",title:Rec({frontmatterTitle:m?.title,useFrontmatterTitles:o,fallbackName:d.name}),absolutePath:d.absolutePath,slug:Pkr({name:d.name}),icon:void 0,hidden:m?.hidden,noindex:m?.noindex,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0}}),l=await Promise.all(a.map(async d=>{let f=await uso({directoryPath:d.absolutePath,titleSource:t,getDir:r,readFileFn:n}),m=f.find(I=>I.type==="page"&&(I.slug==="index"||I.absolutePath.toLowerCase().endsWith("/index.mdx")||I.absolutePath.toLowerCase().endsWith("/index.md"))),h=m?f.filter(I=>I!==m):f,A=m?.type==="page"?await Dkr({absolutePath:m.absolutePath,readFileFn:n}):void 0;return{section:{type:"section",title:Rec({frontmatterTitle:A?.title,useFrontmatterTitles:o,fallbackName:d.name}),slug:Pkr({name:d.name}),icon:void 0,contents:h,collapsed:void 0,collapsible:void 0,collapsedByDefault:void 0,hidden:A?.hidden,skipUrlSlug:!1,overviewAbsolutePath:m?.type==="page"?m.absolutePath:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0,availability:void 0},position:A?.position}})),p=[...u.map((d,f)=>({item:d,title:d.type==="page"?d.title:"",position:c[f]?.position})),...l.map(d=>({item:d.section,title:d.section.type==="section"?d.section.title:"",position:d.position}))];return p.sort((d,f)=>{let m=typeof d.position=="number",h=typeof f.position=="number";if(m&&!h)return-1;if(!m&&h)return 1;if(typeof d.position=="number"&&typeof f.position=="number"){let A=d.position-f.position;return A!==0?A:d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}return d.title.localeCompare(f.title,void 0,{sensitivity:"base"})}),p.map(d=>d.item)}function Hkf(e){return!e||e.startsWith("<")?!1:e.startsWith(".")||e.includes("/")||e.includes("\\")||e.includes(":")}function H0(e,t){if(e)return Hkf(e)?t0(e,t):e}async function EMe({rawDocsConfiguration:e,absolutePathToFernFolder:t,absoluteFilepathToDocsConfig:r,context:n}){let{instances:i,title:o,tabs:s,products:a,versions:c,navigation:u,navbarLinks:l,footerLinks:p,defaultLanguage:d,metadata:f,redirects:m,logo:h,favicon:A,backgroundImage:y,colors:I,typography:w,layout:C,integrations:x,css:B,js:O,aiChat:k,aiSearch:P,agents:U,pageActions:X,experimental:ee}=e,ne=wMt(e.landingPage,r),pe=e.settings?.folderTitleSource,ge=aNf({tabs:s,products:a,versions:c,navigation:u,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:pe}),ue=ge.then(b=>uRa({files:_ue({navigation:b,landingPage:ne}),absolutePathToFernFolder:t})),he=Kkf(h,r),Le=t0(A,r),ke=Jkf(y,r),oe=w!=null?cNf({rawTypography:w,absoluteFilepathToDocsConfig:r}):void 0,ae=Ykf(B,r),Se=$kf(O,r),Ie=PNf(f,r,n),Qe=oNf({rawPath:e.integrations?.context7,absoluteFilepathToDocsConfig:r,context:n}),Ge=lso({rawPath:U?.llmsTxt,absoluteFilepathToDocsConfig:r}),ut=lso({rawPath:U?.llmsFullTxt,absoluteFilepathToDocsConfig:r}),bt=lso({rawPath:U?.robotsTxt,absoluteFilepathToDocsConfig:r}),ct=e.translations?.map(b=>sy.DocsYmlSchemas.normalizeTranslationConfig(b)).find(b=>b.default===!0)?.lang??(e.translations?.[0]!=null?sy.DocsYmlSchemas.normalizeTranslationConfig(e.translations[0]).lang:void 0),Vt=ue.then(b=>RNf({translations:e.translations,defaultLocale:ct,pages:b,absolutePathToFernFolder:t,context:n})),$t=FNf({translations:e.translations,defaultLocale:ct,absolutePathToFernFolder:t,context:n}),[ve,me,je,Je,Ce,Fe,Ct,ft,We,Wt,Pt,tr]=await Promise.all([ge,ue,oe,ae,Se,Ie,Qe,Ge,ut,bt,Vt,$t]),Vn=nNf(e.theme),ar=Vn?.tabs!=null&&typeof Vn.tabs=="object"?Vn.tabs:void 0,zi=ar?.placement??C?.tabsPlacement??"sidebar",g=ar?.alignment??"left";return zi==="sidebar"&&g==="center"&&n.logger.warn("Tabs alignment 'center' is not supported when tabs placement is 'sidebar'. The alignment will be ignored."),{title:o,instances:i,roles:e.roles,libraries:vNf(e.libraries),pages:me,translationPages:Pt,translationNavigationOverlays:tr,landingPage:ne,navigation:ve,navbarLinks:Lec(l,r),footerLinks:ONf(p),defaultLanguage:d,languages:e.languages,translations:e.translations,announcement:e.announcement,metadata:Fe,redirects:m?.map(b=>({...b,permanent:b?.permanent})),logo:he,favicon:Le,backgroundImage:ke,colors:sRa(I,n),typography:je,layout:sNf(C,ar?.alignment,ar?.placement),settings:iNf(e.settings),context7File:Ct,llmsTxtFile:ft,llmsFullTxtFile:We,robotsTxtFile:Wt,theme:Vn,globalTheme:e.globalTheme,analyticsConfig:{...e.analytics,intercom:e.analytics?.intercom?{...e.analytics.intercom,appId:e.analytics.intercom.appId,apiBase:e.analytics.intercom.apiBase}:void 0,fullstory:e.analytics?.fullstory,posthog:e.analytics?.posthog?{...e.analytics.posthog,apiKey:e.analytics.posthog.apiKey,endpoint:e.analytics.posthog.endpoint}:void 0,segment:e.analytics?.segment,gtm:e.analytics?.gtm,ga4:e.analytics?.ga4,amplitude:void 0,mixpanel:void 0,hotjar:void 0,koala:void 0,logrocket:void 0,pirsch:void 0,plausible:void 0,fathom:void 0,clearbit:void 0,heap:void 0},integrations:x!=null?{intercom:x.intercom??void 0}:void 0,css:Je,js:Ce,aiChatConfig:P??k,agents:U,pageActions:eNf(X,r),header:t0(e.header,r),footer:t0(e.footer,r),experimental:ee}}function Kkf(e,t){return e!=null?{dark:t0(e.dark,t),light:t0(e.light,t),height:e.height,href:e.href!=null?hn.Url(e.href):void 0,rightText:e.rightText}:void 0}function Jkf(e,t){if(e!=null)if(typeof e=="string"){let r=t0(e,t);return{dark:r,light:r}}else{let r=t0(e.dark,t),n=t0(e.light,t);return{dark:r,light:n}}}async function Ykf(e,t){if(e==null)return;let r=typeof e=="string"?[e]:e;return{inline:await Promise.all(r.map(async n=>(await(0,dpe.readFile)(t0(n,t))).toString()))}}function Xkf(e){return Object.hasOwn(e,"url")}function Zkf(e){return Object.hasOwn(e,"path")}async function $kf(e,t){let r=[],n=[];if(e==null)return{files:[]};let i=Array.isArray(e)?e:[e];for(let o of i)typeof o=="string"?n.push({absolutePath:t0(o,t)}):Xkf(o)?r.push({strategy:o.strategy,url:hn.Url(o.url)}):Zkf(o)&&n.push({absolutePath:t0(o.path,t),strategy:o.strategy});return{remote:r,files:n}}function eNf(e,t){return e==null?void 0:{default:e.default!=null?tNf(e.default):void 0,options:{askAi:e.options?.askAi??!0,copyPage:e.options?.copyPage??!0,viewAsMarkdown:e.options?.viewAsMarkdown??!0,openAi:e.options?.chatgpt??!0,claude:e.options?.claude??!0,cursor:e.options?.cursor??!0,claudeCode:e.options?.claudeCode??!0,vscode:e.options?.vscode??!1,custom:(e.options?.custom??[]).map(n=>rNf(n,t))}}}function tNf(e){switch(e){case"copy-page":return"copyPage";case"view-as-markdown":return"viewAsMarkdown";case"ask-ai":return"askAi";case"chatgpt":return"openAi";case"claude":return"claude";case"cursor":return"cursor";case"claude-code":return"claudeCode";case"vscode":return"vscode";default:we(e)}}function rNf(e,t){return{title:e.title,subtitle:e.subtitle,url:e.url,icon:H0(e.icon,t),default:e.default}}function nNf(e){if(e==null)return;let t;if(e.tabs!=null&&typeof e.tabs=="object"){let r=e.tabs;t={style:r.style??"default",alignment:r.alignment,placement:r.placement}}else t=e.tabs??"default";return{sidebar:e.sidebar??"default",tabs:t,body:e.body??"default",pageActions:e.pageActions??"default",footerNav:e.footerNav??"default",languageSwitcher:e.languageSwitcher??"default",productSwitcher:e.productSwitcher??"default"}}function iNf(e){if(e!=null)return{darkModeCode:e.darkModeCode??!1,defaultSearchFilters:e.defaultSearchFilters??!1,language:e.language??"en",disableSearch:e.disableSearch??!1,hide404Page:e.hide404Page??!1,httpSnippets:e.httpSnippets??!0,searchText:e.searchText??void 0,useJavascriptAsTypescript:e.useJavascriptAsTypescript??!1,disableExplorerProxy:e.disableExplorerProxy??!1,disableEnvironmentEditing:e.disableEnvironmentEditing??!1,disableAnalytics:e.disableAnalytics??!1,websocketOneofDisplay:e.websocketOneofDisplay??void 0}}async function lso({rawPath:e,absoluteFilepathToDocsConfig:t}){if(e==null)return;let r=t0(e,t);return await(0,dpe.readFile)(r,"utf8"),r}async function oNf({rawPath:e,absoluteFilepathToDocsConfig:t,context:r}){if(e==null)return;let n=t0(e,t),i=await(0,dpe.readFile)(n,"utf8");try{JSON.parse(i)}catch(o){r.failAndThrow(`Invalid JSON in Context7 config file: ${e}`,o instanceof Error?o.message:String(o),{code:F.Code.ConfigError})}return n}function sNf(e,t,r){if(e==null&&t==null&&r==null)return;let n=t==="center"?"CENTER":"LEFT",i=r==="header"?"HEADER":r==="sidebar"?"SIDEBAR":void 0;return e==null?{...i!=null?{tabsPlacement:i}:{},tabsAlignment:n}:{pageWidth:e.pageWidth?.trim().toLowerCase()==="full"?{type:"full"}:Rkr(e.pageWidth),contentWidth:Rkr(e.contentWidth),sidebarWidth:Rkr(e.sidebarWidth),headerHeight:Rkr(e.headerHeight),searchbarPlacement:e.searchbarPlacement==="header"?"HEADER":e.searchbarPlacement==="header-tabs"?"HEADER_TABS":"SIDEBAR",switcherPlacement:!e.switcherPlacement||e.switcherPlacement==="header"?"HEADER":"SIDEBAR",tabsPlacement:i??(e.tabsPlacement==="header"?"HEADER":"SIDEBAR"),contentAlignment:e.contentAlignment==="left"?"LEFT":"CENTER",headerPosition:e.headerPosition==="static"?"ABSOLUTE":"FIXED",disableHeader:e.disableHeader??!1,hideNavLinks:e.hideNavLinks??!1,hideFeedback:e.hideFeedback??!1,mobileToc:e.mobileToc??!1,tabsAlignment:n}}function Rkr(e){if(e==null)return;let t=e.trim().toLowerCase(),r=t.match(/^(\d+)px$/);if(r!=null&&r[1]!=null)return{type:"px",value:parseFloat(r[1])};let n=t.match(/^(\d+)rem$/);if(n!=null&&n[1]!=null)return{type:"rem",value:parseFloat(n[1])}}async function kec({versions:e,absolutePathToFernFolder:t,context:r,folderTitleSource:n}){let i=[];for(let o of e){let s=Vi(t,o.path),a;try{a=Or.load((await(0,dpe.readFile)(s)).toString())}catch(d){throw d instanceof Or.YAMLException?new F({message:`Failed to parse version file ${o.path}: ${d.message}`,code:F.Code.ParseError}):d}let c=[],u=c3(a,[],c);c.length>0&&r.logger.warn(`Version file ${o.path} contained null/undefined sections that were ignored: ${c.map(d=>d.join(".")).join(", ")}`);let l=sy.RawSchemas.Serializer.VersionFileConfig.parseOrThrow(u),p=await dso({tabs:l.tabs,rawNavigationConfig:l.navigation,absolutePathToFernFolder:t,absolutePathToConfig:s,context:r,folderTitleSource:n});i.push({landingPage:wMt(l.landingPage,s),version:o.displayName,navigation:p,availability:o.availability,slug:o.slug,hidden:o.hidden,viewers:F1(o.viewers),orphaned:o.orphaned,featureFlags:R1(o.featureFlag),announcement:o.announcement})}return{type:"versioned",versions:i}}async function aNf({tabs:e,products:t,versions:r,navigation:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a}){if(n!=null)return await dso({tabs:e,rawNavigationConfig:n,absolutePathToFernFolder:i,absolutePathToConfig:o,context:s,folderTitleSource:a});if(t!=null){let c=[];for(let u of t){let l=u.image!=null?Vi(i,u.image):void 0;if("path"in u){let p,d=Vi(i,u.path),f;try{f=Or.load((await(0,dpe.readFile)(d)).toString())}catch(y){throw y instanceof Or.YAMLException?new F({message:`Failed to parse product file ${u.path}: ${y.message}`,code:F.Code.ParseError}):y}let m=[],h=c3(f,[],m);m.length>0&&s.logger.warn(`Product file ${u.path} contained null/undefined sections that were ignored: ${m.map(y=>y.join(".")).join(", ")}`);let A=sy.RawSchemas.Serializer.ProductFileConfig.parseOrThrow(h);u.versions!=null&&u.versions.length>0?p=await kec({versions:u.versions,absolutePathToFernFolder:i,context:s,folderTitleSource:a}):p=await dso({tabs:A.tabs,rawNavigationConfig:A.navigation,absolutePathToFernFolder:i,absolutePathToConfig:d,context:s,folderTitleSource:a}),c.push({type:"internal",landingPage:wMt(A.landingPage,d),product:u.displayName,navigation:p,slug:u.slug,subtitle:u.subtitle,icon:H0(u.icon,o)||"fa-solid fa-code",image:l,viewers:F1(u.viewers),orphaned:u.orphaned,featureFlags:R1(u.featureFlag),announcement:u.announcement})}else if("href"in u&&u.href!=null)c.push({type:"external",product:u.displayName,href:u.href,target:u.target,subtitle:u.subtitle,icon:H0(u.icon,o)||"fa-solid fa-code",image:l,viewers:F1(u.viewers),orphaned:u.orphaned,featureFlags:R1(u.featureFlag)});else throw new F({message:"Invalid product configuration: product must have either 'path' or valid 'href' property",code:F.Code.ConfigError})}return{type:"productgroup",products:c}}else if(r!=null)return await kec({versions:r,absolutePathToFernFolder:i,context:s,folderTitleSource:a});throw new F({message:"Unexpected. Docs have neither navigation or versions defined.",code:F.Code.ConfigError})}function R1(e){if(e!=null)return typeof e=="string"?[{flag:e,match:!0,fallbackValue:void 0}]:Array.isArray(e)?e.map(t=>({flag:t.flag,match:t.match,fallbackValue:t.fallbackValue})):[{flag:e.flag,match:e.match??!0,fallbackValue:e.fallbackValue}]}async function cNf({rawTypography:e,absoluteFilepathToDocsConfig:t}){return{headingsFont:e.headingsFont!=null?await pso({rawFontConfig:e.headingsFont,absoluteFilepathToDocsConfig:t}):void 0,bodyFont:e.bodyFont!=null?await pso({rawFontConfig:e.bodyFont,absoluteFilepathToDocsConfig:t}):void 0,codeFont:e.codeFont!=null?await pso({rawFontConfig:e.codeFont,absoluteFilepathToDocsConfig:t}):void 0}}async function pso({rawFontConfig:e,absoluteFilepathToDocsConfig:t}){return{name:e.name,variants:await uNf(e,t),display:e.display,fallback:e.fallback,fontVariationSettings:e.fontVariationSettings}}function uNf(e,t){let r=[];return e.path!=null&&r.push({path:e.path,weight:e.weight,style:e.style}),e.paths?.forEach(n=>{typeof n=="string"?r.push({path:n,weight:e.weight,style:e.style}):r.push({path:n.path,weight:n.weight??e.weight,style:n.style??e.style})}),Promise.all(r.map(async n=>({absolutePath:t0(n.path,t),weight:lNf(n.weight),style:n.style})))}function lNf(e){return e==null?void 0:typeof e=="number"?[e.toString()]:e.split(/\D+/).filter(r=>r!==""&&["100","200","300","400","500","600","700","800","900"].includes(r))}async function pNf({tabs:e,item:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){let s=e[t.tab];if(s==null)throw new F({message:`Tab ${t.tab} is not defined in the tabs config.`,code:F.Code.ConfigError});if(BNf(t)){let a=await Promise.all(t.variants.map(async c=>{let u=await Promise.all(c.layout.map(l=>Nkr({rawConfig:l,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:c.title,subtitle:c.subtitle,icon:H0(c.icon,n),layout:u,slug:c.slug,skipUrlSlug:c.skipSlug,hidden:c.hidden,default:c.default,viewers:F1(c.viewers),orphaned:c.orphaned,featureFlags:R1(c.featureFlag)}}));return{title:s.displayName,icon:H0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"variants",variants:a},viewers:F1(s.viewers),orphaned:s.orphaned,featureFlags:R1(s.featureFlag)}}if(TNf(t)){let a=await Promise.all(t.layout.map(c=>Nkr({rawConfig:c,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})));return{title:s.displayName,icon:H0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"layout",layout:a},viewers:F1(s.viewers),orphaned:s.orphaned,featureFlags:R1(s.featureFlag)}}if(s.href!=null)return{title:s.displayName,icon:H0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"link",href:s.href,target:s.target},viewers:F1(s.viewers),orphaned:s.orphaned,featureFlags:R1(s.featureFlag)};if(s.changelog!=null)return{title:s.displayName,icon:H0(s.icon,n),slug:s.slug,skipUrlSlug:s.skipSlug,hidden:s.hidden,child:{type:"changelog",changelog:await $S(t0(s.changelog,n),"{md,mdx}")},viewers:F1(s.viewers),orphaned:s.orphaned,featureFlags:R1(s.featureFlag)};we(s)}async function dso({tabs:e={},rawNavigationConfig:t,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o}){return SNf(t)?{type:"tabbed",items:await Promise.all(t.map(a=>pNf({tabs:e,item:a,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}:{type:"untabbed",items:await Promise.all(t.map(s=>Nkr({rawConfig:s,absolutePathToFernFolder:r,absolutePathToConfig:n,context:i,folderTitleSource:o})))}}var fNf="Changelog";async function dNf({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){let o=t0(e.folder,r);await cr(o)||n.failAndThrow(`Folder not found: ${e.folder}`,void 0,{code:F.Code.ConfigError}),mso({context:n,sectionTitle:e.folder,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0});let s=e.titleSource??i,a=await uso({directoryPath:o,titleSource:s}),c=a.find(m=>m.type==="page"&&(m.slug==="index"||m.absolutePath.toLowerCase().endsWith("/index.mdx")||m.absolutePath.toLowerCase().endsWith("/index.md"))),u=c?a.filter(m=>m!==c):a,l=oW.default.basename(o),p=s==="frontmatter"&&c?.type==="page"?(await Dkr({absolutePath:c.absolutePath})).title:void 0,d=e.title??p??cso({name:l}),f=e.slug??Pkr({name:l});return{type:"section",title:d,icon:H0(e.icon,r),contents:u,slug:f,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:c?.type==="page"?c.absolutePath:void 0,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag),availability:e.availability}}async function Nkr({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}){if(Qec(e))return wMt(e,r);if(hNf(e))return mso({context:n,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),{type:"section",title:e.section,icon:H0(e.icon,r),contents:await Promise.all(e.contents.map(o=>Nkr({rawConfig:o,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i}))),slug:e.slug??void 0,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,hidden:e.hidden??void 0,skipUrlSlug:e.skipSlug??!1,overviewAbsolutePath:t0(e.path,r),viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag),availability:e.availability};if(gNf(e))return{type:"apiSection",openrpc:e.openrpc,title:e.api,icon:H0(e.icon,r),apiName:e.apiName??void 0,audiences:e.audiences!=null?{type:"select",audiences:xMt(e.audiences)??[]}:{type:"all"},availability:e.availability,showErrors:e.displayErrors??!0,tagDescriptionPages:e.tagDescriptionPages??!1,snippetsConfiguration:e.snippets!=null?mNf({rawConfig:e.snippets}):void 0,postman:e.postman,navigation:e.layout?.flatMap(o=>kkr(o,r,n))??[],overviewAbsolutePath:t0(e.summary,r),collapsed:e.collapsed??void 0,hidden:e.hidden??void 0,slug:e.slug,skipUrlSlug:e.skipSlug??!1,flattened:e.flattened??!1,alphabetized:e.alphabetized??!1,paginated:e.paginated??!1,playground:e.playground,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)};if(Mec(e))return{type:"link",text:e.link,url:e.href,icon:H0(e.icon,r),target:e.target};if(ANf(e))return{type:"changelog",changelog:await $S(t0(e.changelog,r),"{md,mdx}"),hidden:e.hidden??!1,icon:H0(e.icon,r),title:e.title??fNf,slug:e.slug,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)};if(yNf(e))return await dNf({rawConfig:e,absolutePathToFernFolder:t,absolutePathToConfig:r,context:n,folderTitleSource:i});if(bNf(e))return{type:"librarySection",libraryName:e.library,title:e.title??void 0,slug:e.slug??void 0,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)};we(e)}function wMt(e,t){if(e!=null)return{type:"page",title:e.page,absolutePath:t0(e.path,t),slug:e.slug,icon:H0(e.icon,t),hidden:e.hidden,noindex:e.noindex,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag),availability:e.availability}}function kkr(e,t,r){return typeof e=="string"?[{type:"item",value:e}]:Qec(e)?[wMt(e,t)]:Mec(e)?[{type:"link",text:e.link,url:e.href,icon:H0(e.icon,t),target:e.target}]:INf(e)?(r!=null&&mso({context:r,sectionTitle:e.section,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0}),[{type:"section",title:e.section,referencedSubpackages:e.referencedPackages??[],overviewAbsolutePath:t0(e.summary,t),contents:e.contents?.flatMap(n=>kkr(n,t,r))??[],slug:e.slug,hidden:e.hidden,skipUrlSlug:e.skipSlug,collapsed:e.collapsed??void 0,collapsible:e.collapsible??void 0,collapsedByDefault:e.collapsedByDefault??void 0,availability:e.availability,icon:H0(e.icon,t),playground:e.playground,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)}]):CNf(e)?[{type:"endpoint",endpoint:e.endpoint,title:e.title,icon:H0(e.icon,t),slug:e.slug,hidden:e.hidden,availability:e.availability,playground:e.playground,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)}]:wNf(e)?[{type:"operation",operation:e.operation,title:e.title,slug:e.slug,hidden:e.hidden,availability:e.availability,viewers:F1(e.viewers),orphaned:e.orphaned,featureFlags:R1(e.featureFlag)}]:Object.entries(e).map(([n,i])=>xNf(i)?{type:"package",title:i.title,package:n,overviewAbsolutePath:t0(i.summary,t),contents:i.contents?.flatMap(o=>kkr(o,t,r))??[],slug:i.slug,hidden:i.hidden,skipUrlSlug:i.skipSlug,icon:H0(i.icon,t),playground:i.playground,availability:i.availability,viewers:F1(i.viewers),orphaned:i.orphaned,featureFlags:R1(i.featureFlag)}:{type:"package",title:void 0,package:n,overviewAbsolutePath:void 0,contents:i.flatMap(o=>kkr(o,t,r)),hidden:!1,slug:void 0,skipUrlSlug:!1,icon:void 0,playground:void 0,availability:void 0,viewers:void 0,orphaned:void 0,featureFlags:void 0})}function mNf({rawConfig:e}){return{python:e.python,typescript:e.typescript,go:e.go,java:e.java,ruby:e.ruby,csharp:e.csharp,php:e.php,swift:e.swift}}function Qec(e){return xo(e)&&typeof e.page=="string"&&typeof e.path=="string"}function hNf(e){return e.section!=null}function gNf(e){return e.api!=null}function Mec(e){return sy.RawSchemas,xo(e)&&typeof e.link=="string"&&typeof e.href=="string"}function ANf(e){return xo(e)&&typeof e.changelog=="string"}function yNf(e){return xo(e)&&typeof e.folder=="string"}function bNf(e){return xo(e)&&typeof e.library=="string"}function ENf(e){return"git"in e}function vNf(e){if(e==null)return;let t={};for(let[r,n]of Object.entries(e)){if(!ENf(n.input))throw new F({message:`Library '${r}' uses 'path' input which is not yet supported. Please use 'git' input.`,code:F.Code.ConfigError});t[r]={input:{git:n.input.git,subpath:n.input.subpath},output:{path:n.output.path},lang:n.lang}}return t}function INf(e){return xo(e)&&typeof e.section=="string"&&Array.isArray(e.contents)}function CNf(e){return xo(e)&&typeof e.endpoint=="string"}function wNf(e){return xo(e)&&typeof e.operation=="string"}function xNf(e){return!Array.isArray(e)}function t0(e,t){if(e!=null)return Vi(wn(t),e)}function SNf(e){return Array.isArray(e)&&e.length>0&&e[0].tab!=null}function TNf(e){return"layout"in e&&Array.isArray(e.layout)}function BNf(e){return"variants"in e&&Array.isArray(e.variants)}function Lec(e,t){return e?.map(r=>{if(r.type==="github"){let i=r.value;return typeof i=="string"?{type:"github",url:hn.Url(i),viewers:void 0,target:void 0}:{type:"github",url:hn.Url(i.url),viewers:fso(i.viewers),target:i.target}}let n=fso(r.viewers);return r.type==="dropdown"?{type:"dropdown",text:r.text,icon:H0(r.icon,t),rightIcon:H0(r.rightIcon,t),rounded:r.rounded,viewers:n,links:r.links?.map(i=>({href:i.href,target:i.target,url:hn.Url(i.url??i.href??"/"),text:i.text,icon:H0(i.icon,t),rightIcon:H0(i.rightIcon,t),rounded:i.rounded,viewers:fso(i.viewers)}))??[]}:{type:r.type,text:r.text,url:hn.Url(r.href??r.url??"/"),target:r.target,icon:H0(r.icon,t),rightIcon:H0(r.rightIcon,t),rounded:r.rounded,viewers:n}})}function fso(e){if(e!=null)return Array.isArray(e)?e.map(t=>hn.docs.v1.commons.RoleId(t)):[hn.docs.v1.commons.RoleId(e)]}function ONf(e){if(e==null)return;let t=[];if(Object.keys(e).forEach(r=>{let n=e[r];n!=null&&t.push({type:r,value:hn.Url(n)})}),t.length!==0)return t}async function PNf(e,t,r){if(e!=null)return DNf(e,r),{"og:site_name":e.ogSiteName,"og:title":e.ogTitle,"og:description":e.ogDescription,"og:url":e.ogUrl,"og:image":await Fkr(e.ogImage,t),"og:image:width":e.ogImageWidth,"og:image:height":e.ogImageHeight,"og:locale":e.ogLocale,"og:logo":await Fkr(e.ogLogo,t),"twitter:title":e.twitterTitle,"twitter:description":e.twitterDescription,"twitter:image":await Fkr(e.twitterImage,t),"twitter:handle":e.twitterHandle,"twitter:site":e.twitterSite,"twitter:url":e.twitterUrl,"twitter:card":e.twitterCard,"og:dynamic":e.ogDynamic,"og:dynamic:background-image":await Fkr(e.ogDynamicBackgroundImage,t),"og:dynamic:text-color":e.ogDynamicTextColor,"og:dynamic:background-color":e.ogDynamicBackgroundColor,"og:dynamic:logo-color":e.ogDynamicLogoColor,"og:dynamic:show-logo":e.ogDynamicShowLogo,"og:dynamic:show-section":e.ogDynamicShowSection,"og:dynamic:show-description":e.ogDynamicShowDescription,"og:dynamic:show-url":e.ogDynamicShowUrl,"og:dynamic:show-gradient":e.ogDynamicShowGradient,nofollow:void 0,noindex:void 0,canonicalHost:e.canonicalHost}}function DNf(e,t){let r=e.ogDynamic===!0,n=[["og:dynamic:background-image",e.ogDynamicBackgroundImage],["og:dynamic:text-color",e.ogDynamicTextColor],["og:dynamic:background-color",e.ogDynamicBackgroundColor],["og:dynamic:logo-color",e.ogDynamicLogoColor],["og:dynamic:show-logo",e.ogDynamicShowLogo],["og:dynamic:show-section",e.ogDynamicShowSection],["og:dynamic:show-description",e.ogDynamicShowDescription],["og:dynamic:show-url",e.ogDynamicShowUrl],["og:dynamic:show-gradient",e.ogDynamicShowGradient]];if(r&&e.ogImage!=null&&t.logger.warn("[metadata] `og:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image. Remove `og:image` to rely entirely on dynamic generation, or set `og:dynamic: false` to use `og:image` site-wide."),r&&e.twitterImage!=null&&t.logger.warn("[metadata] `twitter:image` is only applied to the homepage when `og:dynamic: true`. All other pages show the dynamically generated image."),!r){let i=n.filter(([,o])=>o!=null).map(([o])=>o);i.length>0&&t.logger.warn(`[metadata] The following settings require \`og:dynamic: true\` and will be ignored: ${i.map(o=>`\`${o}\``).join(", ")}.`)}r&&e.ogDynamicShowLogo===!1&&e.ogDynamicLogoColor!=null&&t.logger.warn("[metadata] `og:dynamic:logo-color` has no effect because `og:dynamic:show-logo: false`. Remove one or the other."),e.ogImage==null&&(e.ogImageWidth!=null||e.ogImageHeight!=null)&&t.logger.warn("[metadata] `og:image:width` / `og:image:height` have no effect without `og:image`."),r&&typeof e.ogDynamicTextColor=="string"&&typeof e.ogDynamicBackgroundColor=="string"&&e.ogDynamicTextColor.trim().toLowerCase()===e.ogDynamicBackgroundColor.trim().toLowerCase()&&t.logger.warn(`[metadata] \`og:dynamic:text-color\` and \`og:dynamic:background-color\` are both set to \`${e.ogDynamicTextColor}\`, which will make text invisible in generated OG images.`)}async function Fkr(e,t){if(e==null)return;if(e.startsWith("http"))return{type:"url",value:e};let r=t0(e,t);return await cr(r)?{type:"filepath",value:r}:{type:"url",value:e}}function F1(e){if(e!=null){if(typeof e=="string")return[hn.docs.v1.commons.RoleId(e)];if(e.length!==0)return e.map(hn.docs.v1.commons.RoleId)}}function xMt(e){if(e!=null){if(typeof e=="string")return[e];if(e.length!==0)return e}}function mso({context:e,sectionTitle:t,collapsed:r,collapsible:n,collapsedByDefault:i}){n!=null&&r!=null&&e.failAndThrow(`Section "${t}": cannot use both "collapsible" and the deprecated "collapsed" property. Please use "collapsible" and "collapsed-by-default" instead.`,void 0,{code:F.Code.ConfigError}),i!=null&&n!==!0&&e.failAndThrow(`Section "${t}": "collapsed-by-default" requires "collapsible: true". "collapsed-by-default" has no effect on a non-collapsible section.`,void 0,{code:F.Code.ConfigError})}async function RNf({translations:e,defaultLocale:t,pages:r,absolutePathToFernFolder:n,context:i}){if(e==null||e.length===0)return;let o=oW.default.join(n,"translations"),s={},a=e.map(c=>sy.DocsYmlSchemas.normalizeTranslationConfig(c));return await Promise.all(a.map(async({lang:c})=>{if(c===t)return;let u=oW.default.join(o,c);if(!await cr(u)){i.failAndThrow(`Translation directory for locale "${c}" not found.
|
|
3027
3027
|
Expected a directory at: ${u}
|
|
@@ -3219,7 +3219,7 @@ ${vNc.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&dwo(th
|
|
|
3219
3219
|
`+$3e.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?$3e.default.cyan(PNc(t,this.opt.mask)):$3e.default.italic($3e.default.dim("[hidden]")):this.opt.mask?PNc(t,this.opt.mask):$3e.default.italic($3e.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 l7r=xe(uS(),1);var Ojc=xe(Kwo(),1),c7r=require("child_process"),vot=require("fs"),a7r=xe(require("path"),1),Pjc=xe(require("os"),1),Djc=require("crypto"),Rxo=xe(Tjc(),1);var i7r=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var R_t=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var o7r=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var s7r=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function u7r(e="",t,r){let n=new Fxo(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 Bjc(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function t4d(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 Fxo=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=t4d(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??Pjc.default.tmpdir(),r=(0,Djc.randomUUID)(),n=Bjc(this.fileOptions.prefix),i=Bjc(this.fileOptions.postfix),o=`${n}${r}${i}`,s=a7r.default.resolve(t,o),a=a7r.default.resolve(t)+a7r.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,vot.writeFileSync)(this.tempFile,this.text,c)}catch(t){throw new i7r(t)}}readTemporaryFile(){try{let t=(0,vot.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,Ojc.detect)(t)??"utf8";Rxo.default.encodingExists(r)||(r="utf8"),this.text=Rxo.default.decode(t,r)}}catch(t){throw new o7r(t)}}removeTemporaryFile(){try{(0,vot.unlinkSync)(this.tempFile)}catch(t){throw new s7r(t)}}launchEditor(){try{let t=(0,c7r.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new R_t(t)}}launchEditorAsync(t){try{(0,c7r.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new R_t(r)}}};var Rjc=xe(mz(),1);var F_t=class extends lS{_run(t){this.done=t,this.editorResult=new Rjc.Subject;let r=qO(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?l7r.default.dim("Received"):l7r.default.dim("Press <enter> to launch your preferred editor."),t&&(r=l7r.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),u7r(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 Qjc=require("stream");var Njc=xe(require("readline"),1),jjc=xe(kjc(),1),nze=class{constructor(t){this.rl||=Njc.default.createInterface(n4d(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 n4d(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 jjc.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var k_t=class extends nze{constructor(t={}){super(t),this.log=new Qjc.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return A_t(this.rl,this.bottomBar.split(`
|
|
3220
3220
|
`).length),this}updateBottomBar(t){return A_t(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=t,this.render(),this.rl.output.mute(),this}writeLog(t){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(t.toString())),this.render(),this.rl.output.mute(),this}enforceLF(t){return/[\n\r]$/.test(t)?t:t+`
|
|
3221
3221
|
`}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&&R8r(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var qd=xe(mz(),1),zjc=xe(KUt(),1);var p7r=xe(mz(),1),Mjc=xe(KUt(),1),f7r=function(e,t,r){return typeof e[t]!="function"?(0,p7r.of)(e):(0,p7r.from)((0,Mjc.default)(e[t])(r).then(n=>(e[t]=n,e)))};var Ljc={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}},Iot=class extends nze{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,qd.from)(t):(0,qd.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,qd.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,qd.from)([t]),this.process=n.pipe((0,qd.concatMap)(this.processQuestion.bind(this)),(0,qd.publish)()),this.process.connect(),this.process.pipe((0,qd.reduce)((i,o)=>(Ljc.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,qd.defer)(()=>(0,qd.of)(t).pipe((0,qd.concatMap)(this.setDefaultType.bind(this)),(0,qd.concatMap)(this.filterIfRunnable.bind(this)),(0,qd.concatMap)(()=>f7r(t,"message",this.answers)),(0,qd.concatMap)(()=>f7r(t,"default",this.answers)),(0,qd.concatMap)(()=>f7r(t,"choices",this.answers)),(0,qd.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,qd.defer)(()=>(0,qd.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,qd.defer)(()=>(0,qd.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&Ljc.get(this.answers,t.name)!==void 0)return qd.EMPTY;if(t.when===!1)return qd.EMPTY;if(typeof t.when!="function")return(0,qd.of)(t);let{answers:r}=this;return(0,qd.defer)(()=>(0,qd.from)((0,zjc.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,qd.filter)(n=>n!=null)))}};function Ujc(e){let t=function(r,n){let i;try{i=new Iot(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",b_t),this.registerPrompt("input",Z3e),this.registerPrompt("number",E_t),this.registerPrompt("confirm",v_t),this.registerPrompt("rawlist",I_t),this.registerPrompt("expand",C_t),this.registerPrompt("checkbox",w_t),this.registerPrompt("password",x_t),this.registerPrompt("editor",F_t)},t.restoreDefaultPrompts(),t}var Nxo=Ujc();function o4d(e,t){Nxo.registerPrompt(e,t)}function s4d(){Nxo.restoreDefaultPrompts()}var a4d={prompt:Nxo,ui:{BottomBar:k_t,Prompt:Iot},createPromptModule:Ujc,registerPrompt:o4d,restoreDefaultPrompts:s4d,Separator:s6},tp=a4d;var Cot=require("path");function Vjc(){let e=c4d();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function c4d(e=process.argv[1]?(0,Cot.dirname)(process.argv[1]):process.cwd(),t=Cot.sep==="\\"){let r=t?_jc(e):e;return n=>{if(!n)return;let i=t?_jc(n):n,{dir:o,base:s,ext:a}=Cot.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 _jc(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var jxo=e=>{if("flags"in e){let t=qjc(e.flags),r=Gjc(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,Qxo(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,u4d(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function u4d(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 qjc=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,N_t(r)]).filter(([,t])=>t!==void 0)),Gjc=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?Qxo(n):void 0]}))};var N_t=e=>e===void 0?void 0:e.variant??e.enabled,Qxo=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};function Wjc(){return"CompressionStream"in globalThis}async function d7r(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var m7r="0123456789abcdef",h7r=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+=m7r.charAt(this.bytes[r]>>>4),t+=m7r.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+=m7r.charAt(this.bytes[r]>>>4),t+=m7r.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}},Mxo=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??l4d()}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 h7r.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,h7r.ofInner(t)}},l4d=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),Hjc,nCe=()=>p4d().toString(),p4d=()=>(Hjc||(Hjc=new Mxo)).generate();var c6=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e.DeviceId="device_id",e})({});var f4d=["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"],Kjc=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return f4d.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var m4d=Array.isArray,Jjc=Object.prototype,UY0=Jjc.hasOwnProperty,Lxo=Jjc.toString,zxo=m4d||function(e){return Lxo.call(e)==="[object Array]"};var Uxo=e=>e===Object(e)&&!zxo(e);var j_t=e=>e===void 0,Q_t=e=>Lxo.call(e)=="[object String]",Yjc=e=>Q_t(e)&&e.trim().length===0;var Xjc=e=>Lxo.call(e)=="[object Number]"&&e===e;var _xo=e=>e instanceof Error;function g7r(e){return e===null||typeof e!="object"}function ize(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function Zjc(e){return ize(e,"ErrorEvent")}function wot(e){return typeof Event<"u"&&h4d(e,Event)}function $jc(e){return ize(e,"Object")}function h4d(e,t){try{return e instanceof t}catch{return!1}}function M_t(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),Xjc(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),M_t(i||r,t,r,n))}var g4d=864e5,A7r=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=M_t(t.bucketSize,0,100,t._logger),this._refillRate=M_t(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=M_t(t.refillInterval,0,g4d,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 y7r=class{add(t){let r=nCe();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 A4d(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var eQc=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>eQc(`${e} ${o}`,t,r)}},y4d=e=>e();function tQc(e,t=y4d){return eQc(e,t,A4d())}var Sot="Mobile",E7r="iOS",xot="Android",rQc="Tablet",$Y0=xot+" "+rQc;var b4d="Apple",eX0=b4d+" Watch",nQc="Safari",v7r="BlackBerry",iQc="Samsung",E4d=iQc+"Browser",v4d=iQc+" Internet",I7r="Chrome",I4d=I7r+" OS",C4d=I7r+" "+E7r,oQc="Internet Explorer",w4d=oQc+" "+Sot,qxo="Opera",tX0=qxo+" Mini",sQc="Edge",x4d="Microsoft "+sQc,Gxo="Firefox",S4d=Gxo+" "+E7r,Wxo="Nintendo",Hxo="PlayStation",b7r="Xbox",T4d=xot+" "+Sot,B4d=Sot+" "+nQc,L_t="Windows",O4d=L_t+" Phone";var aQc="Generic",rX0=aQc+" "+Sot.toLowerCase(),nX0=aQc+" "+rQc.toLowerCase(),P4d="Konqueror",Bk="(\\d+(\\.\\d+)?)",Vxo=new RegExp("Version/"+Bk),iX0=new RegExp(b7r,"i"),oX0=new RegExp(Hxo+" \\w+","i"),sX0=new RegExp(Wxo+" \\w+","i"),D4d=new RegExp(v7r+"|PlayBook|BB10","i"),R4d={"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 aX0={[w4d]:[new RegExp("rv:"+Bk)],[x4d]:[new RegExp(sQc+"?\\/"+Bk)],[I7r]:[new RegExp("("+I7r+"|CrMo)\\/"+Bk)],[C4d]:[new RegExp("CriOS\\/"+Bk)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Bk)],[nQc]:[Vxo],[B4d]:[Vxo],[qxo]:[new RegExp("("+qxo+"|OPR)\\/"+Bk)],[Gxo]:[new RegExp(Gxo+"\\/"+Bk)],[S4d]:[new RegExp("FxiOS\\/"+Bk)],[P4d]:[new RegExp("Konqueror[:/]?"+Bk,"i")],[v7r]:[new RegExp(v7r+" "+Bk),Vxo],[T4d]:[new RegExp("android\\s"+Bk,"i")],[v4d]:[new RegExp(E4d+"\\/"+Bk)],[oQc]:[new RegExp("(rv:|MSIE )"+Bk)],Mozilla:[new RegExp("rv:"+Bk)]};var cX0=[[new RegExp(b7r+"; "+b7r+" (.*?)[);]","i"),e=>[b7r,e&&e[1]||""]],[new RegExp(Wxo,"i"),[Wxo,""]],[new RegExp(Hxo,"i"),[Hxo,""]],[D4d,[v7r,""]],[new RegExp(L_t,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[O4d,""];if(new RegExp(Sot).test(t)&&!/IEMobile\b/.test(t))return[L_t+" "+Sot,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=R4d[n]||"";return/arm/i.test(t)&&(i="RT"),[L_t,i]}return[L_t,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[E7r,t.join(".")]}return[E7r,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=j_t(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+xot+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+xot+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[xot,t.join(".")]}return[xot,""]}],[/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/,[I4d,""]],[/Linux|debian/i,["Linux",""]]];var cQc="utf8";function uQc(e,t){if(!e||typeof e!="string"||F4d(e))throw new Error(t)}function F4d(e){return e.trim().length===0}function lQc(e){return e?.replace(/\/+$/,"")}async function pQc(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 C7r(){return new Date().toISOString()}function wfe(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var fQc=e=>e instanceof Error;function Kxo(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var w7r=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 oze=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()}},Tot=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function dQc(e){if(e instanceof oze){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 Jxo(e){return typeof e=="object"&&(e instanceof oze||e instanceof Tot)}function mQc(e){return typeof e=="object"&&e instanceof oze&&e.status===413}var z_t=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new y7r,this._events=new w7r,this._isInitialized=!1,uQc(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=lQc(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:Jxo},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=tQc("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!Wjc()||(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(c6.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(c6.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(c6.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!1){await this._initPromise;let a=s?"&config=true":"",c=`${this.host}/flags/?v=2${a}`,u={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(u.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(u)};return this._logger.info("Flags URL",c),this.fetchWithRetry(c,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:jxo(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof oze)return{type:"api_error",statusCode:t.status};if(t instanceof Tot){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=N_t(a.response);return c===void 0&&(c=!1),{response:c,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let c=a[t];return c===void 0?null:c}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let c=await this.getFlags(t,r,n,i,a);if(!c.success)return;let u=c.response;return u.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),u.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:u?.requestId,quotaLimited:u.quotaLimited}):u}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(c6.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(c6.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(c6.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(c6.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(c6.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=wfe(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:C7r()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,c=this.disableCompression?null:await d7r(s,this.isDebug),u={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...c!==null&&{"Content-Encoding":"gzip"}},body:c||s};try{await this.fetchWithRetry(a,u)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:C7r(),uuid:n?.uuid?n.uuid:nCe()};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 dQc(t)})}async flush(){let t=Kxo([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),Kxo([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(c6.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(c6.Queue)||[]).slice(i.length);this.setPersistedProperty(c6.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:C7r()};this.historicalMigration&&(a.historical_migration=!0);let c=JSON.stringify(a),u=`${this.host}/batch/`,l=this.disableCompression?null:await d7r(c,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||c},d={retryCheck:f=>mQc(f)?!1:Jxo(f)};try{await this.fetchWithRetry(u,p,d)}catch(f){if(mQc(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 Tot||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,cQc)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await pQc(async()=>{let a=new AbortController,c=i??this.requestTimeout,u=wfe(()=>a.abort(),c),l=null;try{l=await this.fetch(t,{signal:a.signal,...r})}catch(d){throw new Tot(d)}finally{clearTimeout(u)}if(!(r.mode==="no-cors")&&(l.status<200||l.status>=400))throw new oze(l,s);return l},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(c6.Queue)||[]).length===0||(await this.flush(),r)););}catch(o){if(!Jxo(o))throw o;await dQc(o)}},i;try{return await Promise.race([new Promise((o,s)=>{i=wfe(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,s("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}finally{clearTimeout(i)}}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var u6={};re(u6,{DOMExceptionCoercer:()=>$xo,ErrorCoercer:()=>eSo,ErrorEventCoercer:()=>tSo,ErrorPropertiesBuilder:()=>Yxo,EventCoercer:()=>iSo,ObjectCoercer:()=>nSo,PrimitiveCoercer:()=>oSo,PromiseRejectionEventCoercer:()=>sSo,ReduceableCache:()=>aSo,StringCoercer:()=>rSo,chromeStackLineParser:()=>Xxo,createDefaultStackParser:()=>K4d,createStackParser:()=>xQc,geckoStackLineParser:()=>Zxo,nodeStackLineParser:()=>vQc,opera10StackLineParser:()=>yQc,opera11StackLineParser:()=>bQc,reverseAndStripFrames:()=>wQc,winjsStackLineParser:()=>AQc});var x7r,hQc,S7r;function gQc(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return S7r&&r.length===hQc||(hQc=r.length,S7r=r.reduce((n,i)=>{x7r||(x7r={});let o=x7r[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,x7r[i]=[u,l];break}}}return n},{})),S7r}var N4d=4,Yxo=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&&zxo(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:gQc(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=N4d){let c=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,c)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var WO="?";function lee(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?WO:r,in_app:!0};return j_t(n)||(o.lineno=n),j_t(i)||(o.colno=i),o}var T7r=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:WO,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var j4d=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Q4d=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,M4d=/\((\S*)(?::(\d+))(?::(\d+))\)/,Xxo=(e,t)=>{let r=j4d.exec(e);if(r){let[,i,o,s]=r;return lee(t,i,WO,+o,+s)}let n=Q4d.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=M4d.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=T7r(n[1]||WO,n[2]);return lee(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var L4d=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,z4d=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Zxo=(e,t)=>{let r=L4d.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=z4d.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||WO;return[o,i]=T7r(o,i),lee(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var U4d=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,AQc=(e,t)=>{let r=U4d.exec(e);return r?lee(t,r[2],r[1]||WO,+r[3],r[4]?+r[4]:void 0):void 0};var _4d=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,yQc=(e,t)=>{let r=_4d.exec(e);return r?lee(t,r[2],r[3]||WO,+r[1]):void 0},V4d=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,bQc=(e,t)=>{let r=V4d.exec(e);return r?lee(t,r[5],r[3]||r[4]||WO,+r[1],+r[2]):void 0};var q4d=/^\s*[-]{4,}$/,G4d=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,vQc=(e,t)=>{let r=e.match(G4d);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||WO,o=s?`${s}.${a}`:a);let c=r[2]?.startsWith("file://")?r[2].slice(7):r[2],u=r[5]==="native";return c?.match(/\/[A-Z]:/)&&(c=c.slice(1)),!c&&r[5]&&!u&&(c=r[5]),{filename:c?decodeURI(c):void 0,module:void 0,function:o,lineno:EQc(r[3]),colno:EQc(r[4]),in_app:W4d(c||"",u),platform:t}}if(e.match(q4d))return{filename:e,platform:t}};function W4d(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 EQc(e){return parseInt(e||"",10)||void 0}var IQc=/\(error: (.*)\)/,CQc=50;function wQc(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,CQc).map(r=>({...r,filename:r.filename||H4d(t).filename,function:r.function||WO}))}function H4d(e){return e[e.length-1]||{}}function K4d(){return xQc("web:javascript",Xxo,Zxo)}function xQc(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
|
|
3222
|
-
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=IQc.test(a)?a.replace(IQc,"$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>=CQc)break}}return wQc(i)}}var $xo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Q_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return ize(t,"DOMException")}isDOMError(t){return ize(t,"DOMError")}};var eSo=class{match(t){return _xo(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 tSo=class{constructor(){}match(t){return Zjc(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 J4d=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,rSo=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(J4d);return i&&(r=i[1],n=i[2]),[r,n]}};var SQc=["fatal","error","warning","log","info","debug"];function B7r(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 nSo=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 wot(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=B7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Q_t(t)&&!Yjc(t)&&SQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(fQc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var iSo=class{match(t){return wot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${B7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var oSo=class{match(t){return g7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var sSo=class{match(t){return ize(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!wot(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 g7r(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 aSo=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 OQc=require("fs"),PQc=require("readline"),O7r=new u6.ReduceableCache(25),DQc=new u6.ReduceableCache(20),cSo=7,Y4d=1e3,X4d=1e4;async function RQc(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"||tUd(s)||rUd(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(DQc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=iUd(o);if(s.every(c=>nUd(i,c)))continue;let a=oUd(O7r,i,{});n.push(Z4d(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&$4d(e,O7r),O7r.reduce(),e}function Z4d(e,t,r){return new Promise(n=>{let i=(0,OQc.createReadStream)(e),o=(0,PQc.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(){DQc.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]=sUd(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 $4d(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;eUd(r.lineno,r,n)}}function eUd(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=FQc(e);i<e;i++){let o=r[i];if(o===void 0)return void TQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void TQc(t);t.context_line=r[e];let n=kQc(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 TQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function tUd(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function rUd(e){return e.lineno!==void 0&&e.lineno>X4d||e.colno!==void 0&&e.colno>Y4d}function nUd(e,t){let r=O7r.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 iUd(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=BQc(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+cSo:(i.push(n),n=BQc(o)),t++}return i}function BQc(e){return[FQc(e),kQc(e)]}function FQc(e){return Math.max(1,e-cSo)}function kQc(e){return e+cSo}function oUd(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function sUd(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function aUd(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 NQc(e,t){globalThis.process?.on("uncaughtException",aUd(e,t))}function jQc(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var cUd=2e3,cH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new A7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return Uxo(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()&&(NQc(this.onException.bind(this),this.onFatalError.bind(this)),jQc(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(cUd),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var QQc="5.29.1";var U_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function MQc(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 uUd=6e4,lUd=1152921504606847e3,pUd=["is_not"],Bot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Gd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},pee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},P7r=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let c=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,c)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(u){u instanceof pee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${t}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${u}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(c=>this.featureFlagsByKey[c]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async c=>{try{let{value:u,payload:l}=await this.computeFlagAndPayloadLocally(c,a);n[c.key]=u,l&&(i[c.key]=l)}catch(u){u instanceof pee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new Gd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Gd("Flag has unknown group type index");if(!(u in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[u];return await this.matchFeatureFlagProperties(t,i[u],l,r)}{let u=this.getBucketingValueForFlag(t,n,o);if(u===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new Gd(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,u,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new Gd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Gd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Gd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Gd(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[c]=p}catch(p){throw new Gd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Gd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Gd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof pee)throw l;if(l instanceof Gd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new Gd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?VQc(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):_Qc(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await LQc(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await LQc(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(uUd,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 Bot(`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 Bot(`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 Bot(`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 Bot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=wfe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function LQc(e,t,r=""){let n=await MQc(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/lUd}function _Qc(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new Gd("Operator is_not_set is not supported")}else throw new Gd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!pUd.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 zQc(String(i))&&String(s).match(String(i))!==null;case"not_regex":return zQc(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Gd("Date operations cannot be performed on boolean values");let u=gUd(String(i));if(u==null&&(u=UQc(i)),u==null)throw new Gd(`Invalid date: ${i}`);let l=UQc(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return MV(HO(String(s)),HO(String(i)))===0;case"semver_neq":return MV(HO(String(s)),HO(String(i)))!==0;case"semver_gt":return MV(HO(String(s)),HO(String(i)))>0;case"semver_gte":return MV(HO(String(s)),HO(String(i)))>=0;case"semver_lt":return MV(HO(String(s)),HO(String(i)))<0;case"semver_lte":return MV(HO(String(s)),HO(String(i)))<=0;case"semver_tilde":{let u=HO(String(s)),{lower:l,upper:p}=dUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}case"semver_caret":{let u=HO(String(s)),{lower:l,upper:p}=mUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}case"semver_wildcard":{let u=HO(String(s)),{lower:l,upper:p}=hUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}default:throw new Gd(`Unknown operator: ${o}`)}}function fUd(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function VQc(e,t,r,n=!1){let i=String(e.value);fUd(i,r);let o=r[i];return qQc(o,t,r,n)}function qQc(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=qQc(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=VQc(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=_Qc(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("can't match cohort without a given cohort property value");return i==="AND"}function zQc(e){try{return new RegExp(e),!0}catch{return!1}}function HO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Gd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new Gd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function MV(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 dUd(e){let t=HO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function mUd(e){let t=HO(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function hUd(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Gd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new Gd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new Gd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function UQc(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new Gd(`${e} is in an invalid date format`)}throw new Gd(`The date provided ${e} must be a string, number, or date object`)}function gUd(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 D7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var AUd=100,GQc=3e4,yUd=5e4,bUd=50,EUd=500,R7r=class extends z_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new D7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,AUd):GQc,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new P7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new cH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||yUd}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??EUd,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??bUd;this._waitUntilCycle.timer=wfe(()=>{this.resolveWaitUntilFlush()},o)}_consumeWaitUntilCycle(){let t=this._waitUntilCycle;return t&&(clearTimeout(t.timer),this._waitUntilCycle=void 0),t?.resolve}async resolveWaitUntilFlush(){let t=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{t?.()}}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return QQc}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=GQc){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let k=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:k!==!1,variant:typeof k=="string"?k:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof Gd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=U_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(U_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(U_t.QUOTA_LIMITED);let k=B.flags[t];if(k===void 0)O.push(U_t.FLAG_MISSING);else{I=k.metadata?.id,w=k.metadata?.version,C=k.reason?.description??k.reason?.code;let P;if(k.metadata?.payload!==void 0)try{P=JSON.parse(k.metadata.payload)}catch{P=k.metadata.payload}f={key:t,enabled:k.enabled,variant:k.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let k={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(k.$feature_flag_definitions_loaded_at=P)}y&&(k.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:k,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=wfe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if($jc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!cH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(cH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=nCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&Kjc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var WQc=require("async_hooks"),F7r=class{constructor(){this.storage=new WQc.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 HQc="posthog-node";function vUd(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[uSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var uSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=HQc,this.name=HQc,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(vUd(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cH.errorPropertiesBuilder=new u6.ErrorPropertiesBuilder([new u6.EventCoercer,new u6.ErrorCoercer,new u6.ObjectCoercer,new u6.StringCoercer,new u6.PrimitiveCoercer],u6.createStackParser("node:javascript",u6.nodeStackLineParser),[Vjc(),RQc]);var iCe=class extends R7r{getLibraryId(){return"posthog-node"}initializeContext(){return new F7r}};var k7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new iCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.30.2",usingAccessToken:!0,...Kae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}};var __t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nr();var Oot=require("fs/promises"),KQc=require("os"),JQc=require("path");var IUd="id",CUd=".fern",V_t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new iCe(r),this.userId=t==null?void 0:C0o(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.30.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Kae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Wf({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=nt(Xt.of((0,KQc.homedir)()),Ne.of(CUd),Ne.of(IUd));await cr(t)||(await(0,Oot.mkdir)((0,JQc.dirname)(t),{recursive:!0}),await(0,Oot.writeFile)(t,KQ())),this.persistedDistinctId=(await(0,Oot.readFile)(t)).toString()}return this.persistedDistinctId}};var lSo;async function q_t(){return lSo==null&&(lSo=await wUd()),lSo}async function wUd(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new __t;let r=await Qnt();return r!=null?new V_t({token:r,posthogApiKey:e}):await IV()!=null?new k7r({posthogApiKey:e}):new V_t({token:void 0,posthogApiKey:e})}catch{return new __t}}jt();Ut();var G_t=xe(require("process"),1);ZGe();var ZQc=xe(xfo(),1),$Qc=xe(XQc(),1);function cT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=qG(e),e.length===0))return 0;e=e.replace((0,$Qc.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(ZQc.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function N7r(e){let t=0;for(let r of e.split(`
|
|
3222
|
+
`);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let c=IQc.test(a)?a.replace(IQc,"$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>=CQc)break}}return wQc(i)}}var $xo=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=Q_t(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return ize(t,"DOMException")}isDOMError(t){return ize(t,"DOMError")}};var eSo=class{match(t){return _xo(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 tSo=class{constructor(){}match(t){return Zjc(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 J4d=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,rSo=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(J4d);return i&&(r=i[1],n=i[2]),[r,n]}};var SQc=["fatal","error","warning","log","info","debug"];function B7r(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 nSo=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 wot(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=B7r(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return Q_t(t)&&!Yjc(t)&&SQc.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(fQc(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var iSo=class{match(t){return wot(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${B7r(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var oSo=class{match(t){return g7r(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var sSo=class{match(t){return ize(t,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(t)}isCustomEventWrappingRejection(t){if(!wot(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 g7r(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 aSo=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 OQc=require("fs"),PQc=require("readline"),O7r=new u6.ReduceableCache(25),DQc=new u6.ReduceableCache(20),cSo=7,Y4d=1e3,X4d=1e4;async function RQc(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"||tUd(s)||rUd(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(DQc.get(i))continue;let o=t[i];if(!o)continue;o.sort((c,u)=>c-u);let s=iUd(o);if(s.every(c=>nUd(i,c)))continue;let a=oUd(O7r,i,{});n.push(Z4d(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&$4d(e,O7r),O7r.reduce(),e}function Z4d(e,t,r){return new Promise(n=>{let i=(0,OQc.createReadStream)(e),o=(0,PQc.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(){DQc.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]=sUd(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 $4d(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;eUd(r.lineno,r,n)}}function eUd(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=FQc(e);i<e;i++){let o=r[i];if(o===void 0)return void TQc(t);t.pre_context.push(o)}if(r[e]===void 0)return void TQc(t);t.context_line=r[e];let n=kQc(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 TQc(e){delete e.pre_context,delete e.context_line,delete e.post_context}function tUd(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function rUd(e){return e.lineno!==void 0&&e.lineno>X4d||e.colno!==void 0&&e.colno>Y4d}function nUd(e,t){let r=O7r.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 iUd(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=BQc(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+cSo:(i.push(n),n=BQc(o)),t++}return i}function BQc(e){return[FQc(e),kQc(e)]}function FQc(e){return Math.max(1,e-cSo)}function kQc(e){return e+cSo}function oUd(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function sUd(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function aUd(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 NQc(e,t){globalThis.process?.on("uncaughtException",aUd(e,t))}function jQc(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var cUd=2e3,cH=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new A7r({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return Uxo(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()&&(NQc(this.onException.bind(this),this.onFatalError.bind(this)),jQc(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(cUd),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var QQc="5.29.1";var U_t={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function MQc(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 uUd=6e4,lUd=1152921504606847e3,pUd=["is_not"],Bot=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},Gd=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},pee=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},P7r=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let c=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,c)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(u){u instanceof pee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${t}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${u}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(c=>this.featureFlagsByKey[c]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async c=>{try{let{value:u,payload:l}=await this.computeFlagAndPayloadLocally(c,a);n[c.key]=u,l&&(i[c.key]=l)}catch(u){u instanceof pee||u instanceof Gd?this.logMsgIfDebug(()=>console.debug(`${u.name} when computing flag locally: ${c.key}: ${u.message}`)):u instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${c.key}: ${u}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new Gd("Flag has experience continuity enabled");if(!t.active)return!1;let c=(t.filters||{}).aggregation_group_type_index;if(c!=null){let u=this.groupTypeMapping[String(c)];if(!u)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${c} for feature flag ${t.key}`)),new Gd("Flag has unknown group type index");if(!(u in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[u];return await this.matchFeatureFlagProperties(t,i[u],l,r)}{let u=this.getBucketingValueForFlag(t,n,o);if(u===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new Gd(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,u,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new Gd("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new Gd(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new Gd(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new Gd(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let c of s){if(!(c in i)){let l=this.featureFlagsByKey[c];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[c]=p}catch(p){throw new Gd(`Error evaluating flag dependency '${c}' for flag '${o}': ${p}`)}else i[c]=!1;else throw new Gd(`Missing flag dependency '${c}' for flag '${o}'`)}if(i[c]==null)throw new Gd(`Dependency '${c}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,c;for(let u of s)try{if(await this.isConditionMatch(t,r,u,n,i)){let l=u.variant,p=o.multivariate?.variants||[];c=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof pee)throw l;if(l instanceof Gd)a=!0;else throw l}if(c!==void 0)return c;if(a)throw new Gd("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=c=>{this.logMsgIfDebug(()=>console.warn(c))};if((n.properties||[]).length>0){for(let c of n.properties){let u=c.type,l=!1;if(l=u==="cohort"?VQc(c,i,this.cohorts,this.debugMode):u==="flag"?await this.evaluateFlagDependency(c,i,o):_Qc(c,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await LQc(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await LQc(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(uUd,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 Bot(`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 Bot(`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 Bot(`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 Bot&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=wfe(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function LQc(e,t,r=""){let n=await MQc(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/lUd}function _Qc(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new Gd("Operator is_not_set is not supported")}else throw new Gd(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!pUd.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 zQc(String(i))&&String(s).match(String(i))!==null;case"not_regex":return zQc(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let u=typeof i=="number"?i:null;if(typeof i=="string")try{u=parseFloat(i)}catch{}return u==null||s==null?c(String(s),String(i),o):typeof s=="string"?c(s,String(i),o):c(s,u,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new Gd("Date operations cannot be performed on boolean values");let u=gUd(String(i));if(u==null&&(u=UQc(i)),u==null)throw new Gd(`Invalid date: ${i}`);let l=UQc(s);return["is_date_before"].includes(o)?l<u:l>u}case"semver_eq":return MV(HO(String(s)),HO(String(i)))===0;case"semver_neq":return MV(HO(String(s)),HO(String(i)))!==0;case"semver_gt":return MV(HO(String(s)),HO(String(i)))>0;case"semver_gte":return MV(HO(String(s)),HO(String(i)))>=0;case"semver_lt":return MV(HO(String(s)),HO(String(i)))<0;case"semver_lte":return MV(HO(String(s)),HO(String(i)))<=0;case"semver_tilde":{let u=HO(String(s)),{lower:l,upper:p}=dUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}case"semver_caret":{let u=HO(String(s)),{lower:l,upper:p}=mUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}case"semver_wildcard":{let u=HO(String(s)),{lower:l,upper:p}=hUd(String(i));return MV(u,l)>=0&&MV(u,p)<0}default:throw new Gd(`Unknown operator: ${o}`)}}function fUd(e,t){if(!(e in t))throw new pee(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function VQc(e,t,r,n=!1){let i=String(e.value);fUd(i,r);let o=r[i];return qQc(o,t,r,n)}function qQc(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let c=qQc(a,t,r,n);if(i==="AND"){if(!c)return!1}else if(c)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let c;if(a.type==="cohort")c=VQc(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else c=_Qc(a,t);let u=a.negation||!1;if(i==="AND"){if(!c&&!u||c&&u)return!1}else if(c&&!u||!c&&u)return!0}catch(c){if(c instanceof pee)throw c;if(c instanceof Gd)n&&console.debug(`Failed to compute property ${a} locally: ${c}`),s=!0;else throw c}if(s)throw new Gd("can't match cohort without a given cohort property value");return i==="AND"}function zQc(e){try{return new RegExp(e),!0}catch{return!1}}function HO(e){let r=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!r||r.startsWith("."))throw new Gd(`Invalid semver: ${e}`);let n=r.split("."),i=c=>{if(c===void 0||c==="")return 0;if(!/^\d+$/.test(c))throw new Gd(`Invalid semver: ${e}`);return parseInt(c,10)},o=i(n[0]),s=i(n[1]),a=i(n[2]);return[o,s,a]}function MV(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 dUd(e){let t=HO(e),r=[t[0],t[1],t[2]],n=[t[0],t[1]+1,0];return{lower:r,upper:n}}function mUd(e){let t=HO(e),[r,n,i]=t,o=[r,n,i],s;return s=r>0?[r+1,0,0]:n>0?[0,n+1,0]:[0,0,i+1],{lower:o,upper:s}}function hUd(e){let r=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!r)throw new Gd(`Invalid wildcard semver: ${e}`);let n=r.split("."),i=parseInt(n[0],10);if(isNaN(i))throw new Gd(`Invalid wildcard semver: ${e}`);let o,s;if(n.length===1)o=[i,0,0],s=[i+1,0,0];else{let a=parseInt(n[1],10);if(isNaN(a))throw new Gd(`Invalid wildcard semver: ${e}`);o=[i,a,0],s=[i,a+1,0]}return{lower:o,upper:s}}function UQc(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new Gd(`${e} is in an invalid date format`)}throw new Gd(`The date provided ${e} must be a string, number, or date object`)}function gUd(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 D7r=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var AUd=100,GQc=3e4,yUd=5e4,bUd=50,EUd=500,R7r=class extends z_t{constructor(t,r={}){if(super(t,r),this._memoryStorage=new D7r,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,AUd):GQc,typeof r.waitUntilDebounceMs=="number"&&(this.options.waitUntilDebounceMs=Math.max(r.waitUntilDebounceMs,0)),typeof r.waitUntilMaxWaitMs=="number"&&(this.options.waitUntilMaxWaitMs=Math.max(r.waitUntilMaxWaitMs,0)),r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new P7r({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new cH(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||yUd}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??EUd,i=r>=n;if(this._waitUntilCycle.timer!==void 0&&clearTimeout(this._waitUntilCycle.timer),i)return void this.resolveWaitUntilFlush();let o=this.options.waitUntilDebounceMs??bUd;this._waitUntilCycle.timer=wfe(()=>{this.resolveWaitUntilFlush()},o)}_consumeWaitUntilCycle(){let t=this._waitUntilCycle;return t&&(clearTimeout(t.timer),this._waitUntilCycle=void 0),t?.resolve}async resolveWaitUntilFlush(){let t=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{t?.()}}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return QQc}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=GQc){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let B=this._flagOverrides[t];if(B===void 0)return;let O=this._payloadOverrides?.[t];return{key:t,enabled:B!==!1,variant:typeof B=="string"?B:void 0,payload:O}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,I,w,C;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let B=this.featureFlagsPoller?.featureFlagsByKey[t];if(B)try{let O=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(B,d,{matchValue:i});if(O){m=!0;let k=O.value;I=B.id,C="Evaluated locally",f={key:t,enabled:k!==!1,variant:typeof k=="string"?k:void 0,payload:O.payload??void 0}}}catch(O){if(O instanceof pee||O instanceof Gd)this._logger?.info(`${O.name} when computing flag locally: ${t}: ${O.message}`);else throw O}}if(!m&&!c){let B=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(B===void 0)y=U_t.UNKNOWN_ERROR;else{h=B.requestId,A=B.evaluatedAt;let O=[];B.errorsWhileComputingFlags&&O.push(U_t.ERRORS_WHILE_COMPUTING),B.quotaLimited?.includes("feature_flags")&&O.push(U_t.QUOTA_LIMITED);let k=B.flags[t];if(k===void 0)O.push(U_t.FLAG_MISSING);else{I=k.metadata?.id,w=k.metadata?.version,C=k.reason?.description??k.reason?.code;let P;if(k.metadata?.payload!==void 0)try{P=JSON.parse(k.metadata.payload)}catch{P=k.metadata.payload}f={key:t,enabled:k.enabled,variant:k.variant,payload:P}}O.length>0&&(y=O.join(","))}}if(o){let B=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,O=`${t}_${B}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(O)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(O):this.distinctIdHasSentFlagCalls[r]=[O];let k={$feature_flag:t,$feature_flag_response:B,$feature_flag_id:I,$feature_flag_version:w,$feature_flag_reason:C,locally_evaluated:m,[`$feature/${t}`]:B,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let P=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();P!==void 0&&(k.$feature_flag_definitions_loaded_at=P)}y&&(k.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:k,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:c,personProperties:u,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,u,l);u=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,u,l);c==null&&(c=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!c){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){let r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown();try{return await super._shutdown(t)}finally{r?.()}}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=wfe(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if($jc(s)&&r&&o in r){let a={};for(let[c,u]of Object.entries(s))a[String(c)]=String(u);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let u={};for(let[l,p]of Object.entries(r||{}))u[l]=String(p);return await this.getAllFlags(t,{groups:u,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!cH.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cH.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cH.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");return this.addPendingPromise(cH.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=nCe(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:c,uuid:u});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,c,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[I,w]of Object.entries(h))A[`$feature/${I}`]=w;let y=Object.keys(h||{}).filter(I=>h?.[I]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&Kjc(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var WQc=require("async_hooks"),F7r=class{constructor(){this.storage=new WQc.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 HQc="posthog-node";function vUd(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[uSo.POSTHOG_ID_TAG];if(c===void 0)return s;let u=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${c}`,u).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:c,properties:f}),s}}var uSo=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=HQc,this.name=HQc,this.setupOnce=function(s,a){let c=a()?.getClient()?.getDsn()?.projectId;s(vUd(t,{organization:r,projectId:c,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cH.errorPropertiesBuilder=new u6.ErrorPropertiesBuilder([new u6.EventCoercer,new u6.ErrorCoercer,new u6.ObjectCoercer,new u6.StringCoercer,new u6.PrimitiveCoercer],u6.createStackParser("node:javascript",u6.nodeStackLineParser),[Vjc(),RQc]);var iCe=class extends R7r{getLibraryId(){return"posthog-node"}initializeContext(){return new F7r}};var k7r=class{posthog;constructor({posthogApiKey:t}){this.posthog=new iCe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"5.30.3",usingAccessToken:!0,...Kae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}};var __t=class{async sendEvent(){}async sendAutomationEvent(){}async identify(){}async flush(){}};nr();var Oot=require("fs/promises"),KQc=require("os"),JQc=require("path");var IUd="id",CUd=".fern",V_t=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new iCe(r),this.userId=t==null?void 0:C0o(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.30.3",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{},...Kae()}})}sendAutomationEvent(t){this.posthog.capture({distinctId:t.distinctId,event:t.event,properties:t.properties})}async flush(){try{await Promise.race([this.posthog.flush(),new Promise(t=>setTimeout(t,3e3))])}catch{}}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Wf({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=nt(Xt.of((0,KQc.homedir)()),Ne.of(CUd),Ne.of(IUd));await cr(t)||(await(0,Oot.mkdir)((0,JQc.dirname)(t),{recursive:!0}),await(0,Oot.writeFile)(t,KQ())),this.persistedDistinctId=(await(0,Oot.readFile)(t)).toString()}return this.persistedDistinctId}};var lSo;async function q_t(){return lSo==null&&(lSo=await wUd()),lSo}async function wUd(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new __t;let r=await Qnt();return r!=null?new V_t({token:r,posthogApiKey:e}):await IV()!=null?new k7r({posthogApiKey:e}):new V_t({token:void 0,posthogApiKey:e})}catch{return new __t}}jt();Ut();var G_t=xe(require("process"),1);ZGe();var ZQc=xe(xfo(),1),$Qc=xe(XQc(),1);function cT(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=qG(e),e.length===0))return 0;e=e.replace((0,$Qc.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(ZQc.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function N7r(e){let t=0;for(let r of e.split(`
|
|
3223
3223
|
`))t=Math.max(t,cT(r));return t}var b6c=xe(fSo(),1);var SUd=/[\p{Lu}]/u,TUd=/[\p{Ll}]/u,r6c=/^[\p{Lu}](?![\p{Lu}])/gu,o6c=/([\p{Alpha}\p{N}_]|$)/u,dSo=/[_.\- ]+/,BUd=new RegExp("^"+dSo.source),n6c=new RegExp(dSo.source+o6c.source,"gu"),i6c=new RegExp("\\d+"+o6c.source,"gu"),OUd=(e,t,r,n)=>{let i=!1,o=!1,s=!1,a=!1;for(let c=0;c<e.length;c++){let u=e[c];a=c>2?e[c-3]==="-":!0,i&&SUd.test(u)?(e=e.slice(0,c)+"-"+e.slice(c),i=!1,s=o,o=!0,c++):o&&s&&TUd.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},PUd=(e,t)=>(r6c.lastIndex=0,e.replace(r6c,r=>t(r))),DUd=(e,t)=>(n6c.lastIndex=0,i6c.lastIndex=0,e.replace(n6c,(r,n)=>t(n)).replace(i6c,r=>t(r)));function mSo(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?dSo.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=OUd(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(BUd,""),e=t.preserveConsecutiveUppercase?PUd(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),DUd(e,n))}var ySo=xe(a6c(),1);ZGe();var c6c=(e=0)=>t=>`\x1B[${t+e}m`,u6c=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,l6c=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,nE={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]}},yeE=Object.keys(nE.modifier),NUd=Object.keys(nE.color),jUd=Object.keys(nE.bgColor),beE=[...NUd,...jUd];function QUd(){let e=new Map;for(let[t,r]of Object.entries(nE)){for(let[n,i]of Object.entries(r))nE[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=nE[n],e.set(i[0],i[1]);Object.defineProperty(nE,t,{value:r,enumerable:!1})}return Object.defineProperty(nE,"codes",{value:e,enumerable:!1}),nE.color.close="\x1B[39m",nE.bgColor.close="\x1B[49m",nE.color.ansi=c6c(),nE.color.ansi256=u6c(),nE.color.ansi16m=l6c(),nE.bgColor.ansi=c6c(10),nE.bgColor.ansi256=u6c(10),nE.bgColor.ansi16m=l6c(10),Object.defineProperties(nE,{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=>nE.rgbToAnsi256(...nE.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)=>nE.ansi256ToAnsi(nE.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>nE.ansi256ToAnsi(nE.hexToAnsi256(t)),enumerable:!1}}),nE}var MUd=QUd(),p6c=MUd;var j7r=new Set(["\x1B","\x9B"]),LUd=39,gSo="\x07",m6c="[",zUd="]",h6c="m",ASo=`${zUd}8;;`,f6c=e=>`${j7r.values().next().value}${m6c}${e}${h6c}`,d6c=e=>`${j7r.values().next().value}${ASo}${e}${gSo}`,UUd=e=>e.split(" ").map(t=>cT(t)),hSo=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=cT(qG(e[e.length-1]));for(let[a,c]of n.entries()){let u=cT(c);if(s+u<=r?e[e.length-1]+=c:(e.push(c),s=0),j7r.has(c)&&(i=!0,o=n.slice(a+1).join("").startsWith(ASo)),i){o?c===gSo&&(i=!1,o=!1):c===h6c&&(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())},_Ud=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(cT(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},VUd=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=UUd(e),a=[""];for(let[u,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=cT(a[a.length-1]);if(u!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),p=0),(p>0||r.trim===!1)&&(a[a.length-1]+=" ",p++)),r.hard&&s[u]>t){let d=t-p,f=1+Math.floor((s[u]-d-1)/t);Math.floor((s[u]-1)/t)<f&&a.push(""),hSo(a,l,t);continue}if(p+s[u]>t&&p>0&&s[u]>0){if(r.wordWrap===!1&&p<t){hSo(a,l,t);continue}a.push("")}if(p+s[u]>t&&r.wordWrap===!1){hSo(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(u=>_Ud(u)));let c=[...a.join(`
|
|
3224
3224
|
`)];for(let[u,l]of c.entries()){if(n+=l,j7r.has(l)){let{groups:d}=new RegExp(`(?:\\${m6c}(?<code>\\d+)m|\\${ASo}(?<uri>.*)${gSo})`).exec(c.slice(u).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===LUd?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=p6c.codes.get(Number(i));c[u+1]===`
|
|
3225
3225
|
`?(o&&(n+=d6c("")),i&&p&&(n+=f6c(p))):l===`
|
|
@@ -3806,7 +3806,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
|
|
|
3806
3806
|
Add a 'docs:' section to your fern.yml to get started.`,code:F.Code.ConfigError});let o=await new DPe({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&&ROm(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 F({code:F.Code.ValidationError});return}if(c.length>0)for(let p of c){let d=p.severity==="warning"?ye.yellow:ye.red;process.stderr.write(`${d(`${p.displayRelativeFilepath}:${p.line}:${p.column}: ${p.message}`)}
|
|
3807
3807
|
`)}let l=0;if(o.mdxParseErrors.length>0){for(let p of o.mdxParseErrors)t.stderr.info(`
|
|
3808
3808
|
${p.toString()}
|
|
3809
|
-
`);r.fix?l+=await L$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!IYn()&&await z$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new D0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new F({code:F.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Xr.warning} ${ye.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(ye.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Xr.success} ${ye.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>gee(o)),...t.mdxParseErrors.map(o=>({severity:"error",rule:o.code.code,filepath:o.displayRelativeFilepath,...o.line!=null?{line:o.line}:{},...o.column!=null?{column:o.column}:{},message:`[${o.code.code}] ${o.code.title}: ${o.rawMessage}`}))]),{success:!n,results:i}}};function ROm(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 WUo(e){let t=new GUo;Ni(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}Hb();Ut();var Wuu=xe(require("net"),1),Huu=xe(require("os"),1),V$n=class extends Error{constructor(t){super(`${t} is locked`)}},N0t={old:new Set,young:new Set},FOm=1e3*15,Kuu=new Set;var Pqt,kOm=()=>{let e=Huu.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},quu=e=>new Promise((t,r)=>{let n=Wuu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Guu=async(e,t)=>{if(e.host||e.port===0)return quu(e);for(let r of t)try{await quu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},NOm=e=>N0t.old.has(e)||N0t.young.has(e)||Kuu.has(e),jOm=function*(e){e&&(yield*e),yield 0};async function FPe(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??{};Pqt===void 0&&(Pqt=setTimeout(()=>{Pqt=void 0,N0t.old=N0t.young,N0t.young=new Set},FOm),Pqt.unref&&Pqt.unref());let o=kOm();for(let s of jOm(t))try{if(r.has(s))continue;let a=await Guu({...i,port:s},o);for(;NOm(a);){if(s!==0)throw new V$n(s);a=await Guu({...i,port:s},o)}return n?Kuu.add(a):N0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof V$n))throw a}throw new Error("No available ports found")}Ut();var Xuu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,Juu="docs.buildwithfern.com",Yuu=62;function lUe(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)),Xuu.test(t)}function Zuu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Dqt({orgId:e,previewId:t}){let r=Zuu(t),n=`${e}-preview-${r}.${Juu}`;if(n.length<=Yuu)return n;let i=`${e}-preview-`,o=Yuu-i.length;if(o<8)throw new F({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:F.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${Juu}`}jt();lg();nr();oS();Ut();var R8o=require("child_process"),Avu=xe(JUo(),1),F8o=xe(Oei(),1),k8o=xe(require("fs"),1),jUe=require("fs/promises"),yvu=xe(require("http"),1),Q8o=xe(require("path"),1);var Ymu=require("events"),kei=xe(require("fs"),1),EUe=xe(require("path"),1);var Rmu=xe(require("os"),1),Fmu=300,zPe=20,rGt=1e7,kmu=Rmu.default.platform();var XNm=kmu==="darwin",mVo=kmu==="win32",UPe=XNm||mVo,Nmu=3e3,jmu=2e4,hVo=1250;var yie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(yie||(yie={}));var bUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(bUe||(bUe={}));var nGt;(function(e){e.CHANGE="change",e.ERROR="error"})(nGt||(nGt={}));var Wc;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var ZNm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,k=o-B,P=Math.min(O,k);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Pei=ZNm;var bVo=xe(require("fs"),1),Rei=xe(require("path"),1);var Kd=xe(require("fs"),1),lP=require("util");var Hde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},bie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var gVo=xe(require("process"),1),Qmu=gVo.default.getuid?!gVo.default.getuid():!1,Mmu=1e4,BM=()=>{};var iGt={isChangeErrorOk:e=>{if(!iGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Qmu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!iGt.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(!iGt.isNodeError(e))throw e;if(!iGt.isChangeErrorOk(e))throw e}},RC=iGt;var AVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Mmu,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()}}}}},Lmu=new AVo;var Kde=(e,t)=>function(n){return function i(...o){return Lmu.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},Jde=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var $Nm={attempt:{chmod:Hde((0,lP.promisify)(Kd.default.chmod),RC.onChangeError),chown:Hde((0,lP.promisify)(Kd.default.chown),RC.onChangeError),close:Hde((0,lP.promisify)(Kd.default.close),BM),fsync:Hde((0,lP.promisify)(Kd.default.fsync),BM),mkdir:Hde((0,lP.promisify)(Kd.default.mkdir),BM),realpath:Hde((0,lP.promisify)(Kd.default.realpath),BM),stat:Hde((0,lP.promisify)(Kd.default.stat),BM),unlink:Hde((0,lP.promisify)(Kd.default.unlink),BM),chmodSync:bie(Kd.default.chmodSync,RC.onChangeError),chownSync:bie(Kd.default.chownSync,RC.onChangeError),closeSync:bie(Kd.default.closeSync,BM),existsSync:bie(Kd.default.existsSync,BM),fsyncSync:bie(Kd.default.fsync,BM),mkdirSync:bie(Kd.default.mkdirSync,BM),realpathSync:bie(Kd.default.realpathSync,BM),statSync:bie(Kd.default.statSync,BM),unlinkSync:bie(Kd.default.unlinkSync,BM)},retry:{close:Kde((0,lP.promisify)(Kd.default.close),RC.isRetriableError),fsync:Kde((0,lP.promisify)(Kd.default.fsync),RC.isRetriableError),open:Kde((0,lP.promisify)(Kd.default.open),RC.isRetriableError),readFile:Kde((0,lP.promisify)(Kd.default.readFile),RC.isRetriableError),rename:Kde((0,lP.promisify)(Kd.default.rename),RC.isRetriableError),stat:Kde((0,lP.promisify)(Kd.default.stat),RC.isRetriableError),write:Kde((0,lP.promisify)(Kd.default.write),RC.isRetriableError),writeFile:Kde((0,lP.promisify)(Kd.default.writeFile),RC.isRetriableError),closeSync:Jde(Kd.default.closeSync,RC.isRetriableError),fsyncSync:Jde(Kd.default.fsyncSync,RC.isRetriableError),openSync:Jde(Kd.default.openSync,RC.isRetriableError),readFileSync:Jde(Kd.default.readFileSync,RC.isRetriableError),renameSync:Jde(Kd.default.renameSync,RC.isRetriableError),statSync:Jde(Kd.default.statSync,RC.isRetriableError),writeSync:Jde(Kd.default.writeSync,RC.isRetriableError),writeFileSync:Jde(Kd.default.writeFileSync,RC.isRetriableError)}},zmu=$Nm;var Dei=xe(require("fs"),1),oGt=xe(require("path"),1);var yVo=()=>{};var ejm=()=>{let e=yVo,t=yVo,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}},Umu=ejm;var tjm=()=>{let{promise:e,resolve:t,isPending:r}=Umu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},_mu=tjm;var Vmu={then:e=>{e()}};var qmu=e=>Array.isArray(e)?e:[e],Gmu=e=>typeof e=="function";var rjm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=qmu(o).map(oe=>Gmu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:k,decrement:P}=_mu(),U=0,X=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(Ie>=n)&&(U>=i||he(ae,Ie+1)))},ee=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(Ie>=n||U>=i||Le(ae,Ie+1)))},pe=(oe,ae,Se,Ie,Qe)=>{c.aborted||a(ae)||(Ie.isDirectory()?X(oe,ae,Se,Qe):Ie.isFile()?ee(oe,ae,Se):Ie.isSymbolicLink()&&ne(oe,ae,Se,Qe))},ge=(oe,ae,Se,Ie)=>{if(c.aborted)return;let Qe=ae===oGt.default.sep?"":oGt.default.sep,Ge=Se.name,ut=`${ae}${Qe}${Ge}`;a(ut)||(Se.isDirectory()?X(oe,ut,Ge,Ie):Se.isFile()?ee(oe,ut,Ge):Se.isSymbolicLink()&&ne(oe,ut,Ge,Ie))},ue=(oe,ae,Se,Ie)=>{for(let Qe=0,Ge=Se.length;Qe<Ge;Qe++)ge(oe,ae,Se[Qe],Ie)},he=(oe,ae)=>{c.aborted||ae>n||U>=i||(k(),Dei.default.readdir(oe,{withFileTypes:!0},(Se,Ie)=>{if(Se||c.aborted||!Ie.length)return P();(u(Ie)||Vmu).then(()=>{let Ge=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ue(Ge,oe,Ie,ae),P()})}))},Le=(oe,ae)=>{k(),Dei.default.realpath(oe,(Se,Ie)=>{if(Se||c.aborted)return P();Dei.default.stat(Ie,(Qe,Ge)=>{if(Qe||c.aborted)return P();let ut=oGt.default.basename(Ie),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};pe(bt,Ie,ut,Ge,ae),P()})})};return(async(oe,ae=1)=>(oe=oGt.default.normalize(oe),C.add(oe),he(oe,ae),await O,c.aborted?x:B))(e)},Wmu=rjm;var Eie={lang:{debounce:Pei,attempt:e=>{try{return e()}catch(t){return Eie.lang.castError(t)}},castArray:e=>Eie.lang.isArray(e)?e:[e],castError:e=>Eie.lang.isError(e)?e:Eie.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(Eie.lang.isNaN(e))return Eie.lang.isNaN(t);if(Eie.lang.isPrimitive(e)||Eie.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(Rei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?bVo.default.realpathSync.native(e):bVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Rei.default.sep&&t.length-e.length>Rei.default.sep.length,poll:(e,t=jmu)=>zmu.retry.stat(t)(e,{bigint:!0}).catch(Eie.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 Wmu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},vp=Eie;var Fei=xe(require("path"),1);var EVo=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||vp.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Fmu){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=vp.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??zPe:Math.min(1,this.options.depth??zPe),s=this.options.limit??rGt,[a,c]=await vp.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())vp.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!UPe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Fei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Fei.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=bUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Fei.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){mVo&&t.code==="EPERM"?this.onWatcherChange(bUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(nGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(nGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(bUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&UPe&&this.options.native!==!1?this.options.depth??zPe:Math.min(1,this.options.depth??zPe),n=this.options.limit??rGt,[i,o]=await vp.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(bUe.CHANGE,a,t)}))}}},Hmu=EVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},sGt=kN;var aGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=hVo){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(vp.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),sGt.remove(u)},u=()=>{c(),a()};sGt.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=hVo){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),sGt.remove(u)},u=()=>{c(),a()};sGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,yie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,yie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,yie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,yie.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}}};aGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};aGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var Kmu=aGt;var vVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(vp.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(vp.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(vp.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(vp.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return vp.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);vp.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},IVo=vVo;var CVo=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}},Jmu=CVo;var wVo=class{constructor(){this.inos={},this.paths=new IVo,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 vp.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Jmu(n)}reset(){this.inos={},this.paths=new IVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?yie.FILE:yie.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)}}},xVo=wVo;var SVo=class e extends Ymu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new Kmu(this),this._roots=new Set,this._poller=new xVo,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&&(vp.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=vp.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&vp.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&vp.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)vp.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 Hmu(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=vp.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=EUe.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??zPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&UPe&&l.options.native!==!1)))return!0;if(!UPe)break;let u=EUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=vp.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||UPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:kei.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=EUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||UPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zPe,a=r.limit??rGt,[c]=await vp.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=vp.fs.getDepth(t);for(let p of c){let d=vp.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=EUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new xVo,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 vp.lang.noop;if(this.pollerExists(t,r))return vp.lang.noop;let i={...r,interval:r.pollingInterval??Nmu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),kei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),kei.default.unwatchFile(t,n)};return vp.lang.attempt(s),()=>vp.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=vp.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!vp.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=EUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await vp.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=EUe.default.dirname(t);return(await vp.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=vp.lang.noop){if(vp.lang.isFunction(t))return this.watch([],{},t);if(vp.lang.isUndefined(t))return this.watch([],r,n);if(vp.lang.isFunction(r))return this.watch(t,{},r);if(vp.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=vp.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==vp.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Nei=SVo;Yei();nr();var V7=require("fs/promises"),tgu=require("os"),JVo=xe(require("path"),1),OQm=".fern",PQm="logs",KVo=100*1024*1024;function DQm(){return"cli@5.30.2"}var SUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t,r){if(this.initialized)return;this.consoleLogger=t;let n=r??nt(nt(Xt.of((0,tgu.homedir)()),Ne.of(OQm)),Ne.of(PQm));await cr(n)||await(0,V7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,Ne.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${JVo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
3809
|
+
`);r.fix?l+=await L$n(t,o.mdxParseErrors):process.stdout.isTTY===!0&&!IYn()&&await z$n(t,o.mdxParseErrors)}if(r.fix&&c.length>0){let d=await new D0t({context:t}).fix({workspace:n,violations:c});l+=d.fixedCount}if(u&&(!r.fix||l===0))throw new F({code:F.Code.ValidationError});if(o.warningCount>0){t.stderr.info(`${Xr.warning} ${ye.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(ye.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${Xr.success} ${ye.green("All checks passed")}`)}buildJsonResponse({result:t,filteredViolations:r,hasErrors:n}){let i={};return(r.length>0||t.mdxParseErrors.length>0)&&(i.docs=[...r.map(o=>gee(o)),...t.mdxParseErrors.map(o=>({severity:"error",rule:o.code.code,filepath:o.displayRelativeFilepath,...o.line!=null?{line:o.line}:{},...o.column!=null?{column:o.column}:{},message:`[${o.code.code}] ${o.code.title}: ${o.rawMessage}`}))]),{success:!n,results:i}}};function ROm(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 WUo(e){let t=new GUo;Ni(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}).option("fix",{type:"boolean",description:"Automatically fix issues that have a known resolution",default:!1}))}Hb();Ut();var Wuu=xe(require("net"),1),Huu=xe(require("os"),1),V$n=class extends Error{constructor(t){super(`${t} is locked`)}},N0t={old:new Set,young:new Set},FOm=1e3*15,Kuu=new Set;var Pqt,kOm=()=>{let e=Huu.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},quu=e=>new Promise((t,r)=>{let n=Wuu.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),Guu=async(e,t)=>{if(e.host||e.port===0)return quu(e);for(let r of t)try{await quu({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},NOm=e=>N0t.old.has(e)||N0t.young.has(e)||Kuu.has(e),jOm=function*(e){e&&(yield*e),yield 0};async function FPe(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??{};Pqt===void 0&&(Pqt=setTimeout(()=>{Pqt=void 0,N0t.old=N0t.young,N0t.young=new Set},FOm),Pqt.unref&&Pqt.unref());let o=kOm();for(let s of jOm(t))try{if(r.has(s))continue;let a=await Guu({...i,port:s},o);for(;NOm(a);){if(s!==0)throw new V$n(s);a=await Guu({...i,port:s},o)}return n?Kuu.add(a):N0t.young.add(a),a}catch(a){if(!["EADDRINUSE","EACCES"].includes(a.code)&&!(a instanceof V$n))throw a}throw new Error("No available ports found")}Ut();var Xuu=/^[a-z0-9-]+-preview-[a-z0-9-]+\.docs\.buildwithfern\.com$/i,Juu="docs.buildwithfern.com",Yuu=62;function lUe(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)),Xuu.test(t)}function Zuu(e){let t=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return t.length===0?"default":t}function Dqt({orgId:e,previewId:t}){let r=Zuu(t),n=`${e}-preview-${r}.${Juu}`;if(n.length<=Yuu)return n;let i=`${e}-preview-`,o=Yuu-i.length;if(o<8)throw new F({message:`Organization name "${e}" is too long to generate a valid preview URL`,code:F.Code.ValidationError});let a=r.slice(0,o).replace(/-+$/,"");return`${i}${a}.${Juu}`}jt();lg();nr();oS();Ut();var R8o=require("child_process"),Avu=xe(JUo(),1),F8o=xe(Oei(),1),k8o=xe(require("fs"),1),jUe=require("fs/promises"),yvu=xe(require("http"),1),Q8o=xe(require("path"),1);var Ymu=require("events"),kei=xe(require("fs"),1),EUe=xe(require("path"),1);var Rmu=xe(require("os"),1),Fmu=300,zPe=20,rGt=1e7,kmu=Rmu.default.platform();var XNm=kmu==="darwin",mVo=kmu==="win32",UPe=XNm||mVo,Nmu=3e3,jmu=2e4,hVo=1250;var yie;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(yie||(yie={}));var bUe;(function(e){e.CHANGE="change",e.RENAME="rename"})(bUe||(bUe={}));var nGt;(function(e){e.CHANGE="change",e.ERROR="error"})(nGt||(nGt={}));var Wc;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(Wc||(Wc={}));var FN;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(FN||(FN={}));var ZNm=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,c=0,u=0,l=()=>{let C=Date.now(),x=C-c,B=C-u,O=x>=t||B>=o;return[C,O]},p=C=>{if(u=C,!s)return;let x=s;s=void 0,e.apply(void 0,x)},d=()=>{I(0)},f=()=>{a&&(d(),p(Date.now()))},m=C=>{if(u=C,n)return p(C)},h=C=>{if(i&&s)return p(C);s=void 0},A=()=>{a=void 0;let[C,x]=l();return x?h(C):y(C)},y=C=>{let x=C-c,B=C-u,O=t-x,k=o-B,P=Math.min(O,k);return I(P)},I=C=>{a&&clearTimeout(a),!(C<=0)&&(a=setTimeout(A,C))},w=(...C)=>{let[x,B]=l(),O=!!a;if(s=C,c=x,(B||!a)&&I(t),B)return O?p(x):m(x)};return w.cancel=d,w.flush=f,w},Pei=ZNm;var bVo=xe(require("fs"),1),Rei=xe(require("path"),1);var Kd=xe(require("fs"),1),lP=require("util");var Hde=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},bie=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var gVo=xe(require("process"),1),Qmu=gVo.default.getuid?!gVo.default.getuid():!1,Mmu=1e4,BM=()=>{};var iGt={isChangeErrorOk:e=>{if(!iGt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Qmu&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!iGt.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(!iGt.isNodeError(e))throw e;if(!iGt.isChangeErrorOk(e))throw e}},RC=iGt;var AVo=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Mmu,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()}}}}},Lmu=new AVo;var Kde=(e,t)=>function(n){return function i(...o){return Lmu.schedule().then(s=>{let a=u=>(s(),u),c=u=>{if(s(),Date.now()>=n)throw u;if(t(u)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw u};return e.apply(void 0,o).then(a,c)})}},Jde=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var $Nm={attempt:{chmod:Hde((0,lP.promisify)(Kd.default.chmod),RC.onChangeError),chown:Hde((0,lP.promisify)(Kd.default.chown),RC.onChangeError),close:Hde((0,lP.promisify)(Kd.default.close),BM),fsync:Hde((0,lP.promisify)(Kd.default.fsync),BM),mkdir:Hde((0,lP.promisify)(Kd.default.mkdir),BM),realpath:Hde((0,lP.promisify)(Kd.default.realpath),BM),stat:Hde((0,lP.promisify)(Kd.default.stat),BM),unlink:Hde((0,lP.promisify)(Kd.default.unlink),BM),chmodSync:bie(Kd.default.chmodSync,RC.onChangeError),chownSync:bie(Kd.default.chownSync,RC.onChangeError),closeSync:bie(Kd.default.closeSync,BM),existsSync:bie(Kd.default.existsSync,BM),fsyncSync:bie(Kd.default.fsync,BM),mkdirSync:bie(Kd.default.mkdirSync,BM),realpathSync:bie(Kd.default.realpathSync,BM),statSync:bie(Kd.default.statSync,BM),unlinkSync:bie(Kd.default.unlinkSync,BM)},retry:{close:Kde((0,lP.promisify)(Kd.default.close),RC.isRetriableError),fsync:Kde((0,lP.promisify)(Kd.default.fsync),RC.isRetriableError),open:Kde((0,lP.promisify)(Kd.default.open),RC.isRetriableError),readFile:Kde((0,lP.promisify)(Kd.default.readFile),RC.isRetriableError),rename:Kde((0,lP.promisify)(Kd.default.rename),RC.isRetriableError),stat:Kde((0,lP.promisify)(Kd.default.stat),RC.isRetriableError),write:Kde((0,lP.promisify)(Kd.default.write),RC.isRetriableError),writeFile:Kde((0,lP.promisify)(Kd.default.writeFile),RC.isRetriableError),closeSync:Jde(Kd.default.closeSync,RC.isRetriableError),fsyncSync:Jde(Kd.default.fsyncSync,RC.isRetriableError),openSync:Jde(Kd.default.openSync,RC.isRetriableError),readFileSync:Jde(Kd.default.readFileSync,RC.isRetriableError),renameSync:Jde(Kd.default.renameSync,RC.isRetriableError),statSync:Jde(Kd.default.statSync,RC.isRetriableError),writeSync:Jde(Kd.default.writeSync,RC.isRetriableError),writeFileSync:Jde(Kd.default.writeFileSync,RC.isRetriableError)}},zmu=$Nm;var Dei=xe(require("fs"),1),oGt=xe(require("path"),1);var yVo=()=>{};var ejm=()=>{let e=yVo,t=yVo,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}},Umu=ejm;var tjm=()=>{let{promise:e,resolve:t,isPending:r}=Umu(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},_mu=tjm;var Vmu={then:e=>{e()}};var qmu=e=>Array.isArray(e)?e:[e],Gmu=e=>typeof e=="function";var rjm=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=qmu(o).map(oe=>Gmu(oe)?oe:ae=>oe.test(ae)),a=oe=>s.some(ae=>ae(oe)),c=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,I={},w={},C=new Set,x={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},B={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:I,map:w},{promise:O,increment:k,decrement:P}=_mu(),U=0,X=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.directories.push(ae),oe.directoriesNames.add(Se),l.push(ae),p.add(Se),d.propertyIsEnumerable(Se)||(d[Se]=[]),d[Se].push(ae),C.add(ae),!(Ie>=n)&&(U>=i||he(ae,Ie+1)))},ee=(oe,ae,Se)=>{C.has(ae)||U>=i||(U+=1,oe.files.push(ae),oe.filesNames.add(Se),f.push(ae),m.add(Se),h.propertyIsEnumerable(Se)||(h[Se]=[]),h[Se].push(ae),C.add(ae))},ne=(oe,ae,Se,Ie)=>{C.has(ae)||U>=i||(U+=1,oe.symlinks.push(ae),oe.symlinksNames.add(Se),A.push(ae),y.add(Se),I.propertyIsEnumerable(Se)||(I[Se]=[]),I[Se].push(ae),C.add(ae),r&&(Ie>=n||U>=i||Le(ae,Ie+1)))},pe=(oe,ae,Se,Ie,Qe)=>{c.aborted||a(ae)||(Ie.isDirectory()?X(oe,ae,Se,Qe):Ie.isFile()?ee(oe,ae,Se):Ie.isSymbolicLink()&&ne(oe,ae,Se,Qe))},ge=(oe,ae,Se,Ie)=>{if(c.aborted)return;let Qe=ae===oGt.default.sep?"":oGt.default.sep,Ge=Se.name,ut=`${ae}${Qe}${Ge}`;a(ut)||(Se.isDirectory()?X(oe,ut,Ge,Ie):Se.isFile()?ee(oe,ut,Ge):Se.isSymbolicLink()&&ne(oe,ut,Ge,Ie))},ue=(oe,ae,Se,Ie)=>{for(let Qe=0,Ge=Se.length;Qe<Ge;Qe++)ge(oe,ae,Se[Qe],Ie)},he=(oe,ae)=>{c.aborted||ae>n||U>=i||(k(),Dei.default.readdir(oe,{withFileTypes:!0},(Se,Ie)=>{if(Se||c.aborted||!Ie.length)return P();(u(Ie)||Vmu).then(()=>{let Ge=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};ue(Ge,oe,Ie,ae),P()})}))},Le=(oe,ae)=>{k(),Dei.default.realpath(oe,(Se,Ie)=>{if(Se||c.aborted)return P();Dei.default.stat(Ie,(Qe,Ge)=>{if(Qe||c.aborted)return P();let ut=oGt.default.basename(Ie),bt=w[oe]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};pe(bt,Ie,ut,Ge,ae),P()})})};return(async(oe,ae=1)=>(oe=oGt.default.normalize(oe),C.add(oe),he(oe,ae),await O,c.aborted?x:B))(e)},Wmu=rjm;var Eie={lang:{debounce:Pei,attempt:e=>{try{return e()}catch(t){return Eie.lang.castError(t)}},castArray:e=>Eie.lang.isArray(e)?e:[e],castError:e=>Eie.lang.isError(e)?e:Eie.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(Eie.lang.isNaN(e))return Eie.lang.isNaN(t);if(Eie.lang.isPrimitive(e)||Eie.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(Rei.default.sep).length-1),getRealPath:(e,t)=>{try{return t?bVo.default.realpathSync.native(e):bVo.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===Rei.default.sep&&t.length-e.length>Rei.default.sep.length,poll:(e,t=jmu)=>zmu.retry.stat(t)(e,{bigint:!0}).catch(Eie.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 Wmu(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},vp=Eie;var Fei=xe(require("path"),1);var EVo=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||vp.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Fmu){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=vp.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,c="",u=!1)=>{u?await this.eventsPopulate([c],n,!0):i.add(c),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===Wc.CHANGE&&a===Wc.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===Wc.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===Wc.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??zPe:Math.min(1,this.options.depth??zPe),s=this.options.limit??rGt,[a,c]=await vp.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())vp.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(Wc.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!UPe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(Wc.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(Wc.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(Fei.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(Fei.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(Wc.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===Wc.ADD?this.onTargetAdd(n):r===Wc.ADD_DIR?this.onTargetAddDir(n):r===Wc.CHANGE?this.onTargetChange(n):r===Wc.UNLINK?this.onTargetUnlink(n):r===Wc.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=bUe.CHANGE,r){if(this.watcher.isClosed())return;let n=Fei.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){mVo&&t.code==="EPERM"?this.onWatcherChange(bUe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(nGt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(nGt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(bUe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&UPe&&this.options.native!==!1?this.options.depth??zPe:Math.min(1,this.options.depth??zPe),n=this.options.limit??rGt,[i,o]=await vp.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(bUe.CHANGE,a,t)}))}}},Hmu=EVo;var kN={interval:100,intervalId:void 0,fns:new Map,init:()=>{kN.intervalId||(kN.intervalId=setInterval(kN.resolve,kN.interval))},reset:()=>{kN.intervalId&&(clearInterval(kN.intervalId),delete kN.intervalId)},add:(e,t)=>{kN.fns.set(e,Date.now()+t),kN.init()},remove:e=>{kN.fns.delete(e)},resolve:()=>{if(!kN.fns.size)return kN.reset();let e=Date.now();for(let[t,r]of kN.fns)r>=e||(kN.remove(t),t())}},sGt=kN;var aGt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=hVo){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(vp.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),sGt.remove(u)},u=()=>{c(),a()};sGt.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=hVo){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),sGt.remove(u)},u=()=>{c(),a()};sGt.add(u,r);let l=()=>(c(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD,yie.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,Wc.ADD_DIR,yie.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK,yie.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,Wc.UNLINK_DIR,yie.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}}};aGt.DIR_EVENTS={add:Wc.ADD_DIR,rename:Wc.RENAME_DIR,unlink:Wc.UNLINK_DIR};aGt.FILE_EVENTS={add:Wc.ADD,change:Wc.CHANGE,rename:Wc.RENAME,unlink:Wc.UNLINK};var Kmu=aGt;var vVo=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(vp.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(vp.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(vp.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(vp.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return vp.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);vp.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},IVo=vVo;var CVo=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}},Jmu=CVo;var wVo=class{constructor(){this.inos={},this.paths=new IVo,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 vp.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Jmu(n)}reset(){this.inos={},this.paths=new IVo,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,Wc.ADD,i),[Wc.ADD];if(i.isDirectory())return this.updateIno(t,Wc.ADD_DIR,i),[Wc.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,Wc.UNLINK,n),[Wc.UNLINK];if(n.isDirectory())return this.updateIno(t,Wc.UNLINK_DIR,n),[Wc.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,Wc.CHANGE,i),[Wc.CHANGE]);if(i.isDirectory())return this.updateIno(t,Wc.UNLINK,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK,Wc.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD,i),[Wc.UNLINK_DIR,Wc.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,Wc.UNLINK_DIR,n),this.updateIno(t,Wc.ADD_DIR,i),[Wc.UNLINK_DIR,Wc.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?yie.FILE:yie.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)}}},xVo=wVo;var SVo=class e extends Ymu.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(FN.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(FN.CLOSE,i)),this._readyWait=new Promise(i=>this.on(FN.READY,i)),this._locker=new Kmu(this),this._roots=new Set,this._poller=new xVo,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&&(vp.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(FN.CLOSE))}error(t){if(this.isClosed())return!1;let r=vp.lang.castError(t);return this.emit(FN.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(FN.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(FN.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&vp.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&vp.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)vp.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 Hmu(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=vp.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=EUe.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??zPe))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&UPe&&l.options.native!==!1)))return!0;if(!UPe)break;let u=EUe.default.dirname(t);if(s===u)break;s=u}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=vp.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||UPe&&r.native!==!1?r:{...r,recursive:!1},l={watcher:kei.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=EUe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(c){this.error(c)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||UPe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??zPe,a=r.limit??rGt,[c]=await vp.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=vp.fs.getDepth(t);for(let p of c){let d=vp.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||u)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(u,l)=>{l===t&&(c(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(FN.CLOSE,c),s.watchFile(t,r,o)},c=()=>{this._subwatchers.delete(i),this.removeListener(FN.CLOSE,c),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=EUe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new xVo,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 vp.lang.noop;if(this.pollerExists(t,r))return vp.lang.noop;let i={...r,interval:r.pollingInterval??Nmu},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(FN.CLOSE,a),kei.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(FN.CLOSE,a),kei.default.unwatchFile(t,n)};return vp.lang.attempt(s),()=>vp.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=vp.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,c)=>c===s||!vp.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=EUe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await vp.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=EUe.default.dirname(t);return(await vp.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=vp.lang.noop){if(vp.lang.isFunction(t))return this.watch([],{},t);if(vp.lang.isUndefined(t))return this.watch([],r,n);if(vp.lang.isFunction(r))return this.watch(t,{},r);if(vp.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=vp.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==vp.lang.noop&&this.on(FN.ALL,n),r.readdirMap=void 0,this.ready())}},Nei=SVo;Yei();nr();var V7=require("fs/promises"),tgu=require("os"),JVo=xe(require("path"),1),OQm=".fern",PQm="logs",KVo=100*1024*1024;function DQm(){return"cli@5.30.3"}var SUe=class{logFilePath=null;initialized=!1;sessionStartTime;consoleLogger;constructor(){this.sessionStartTime=Date.now()}async initialize(t,r){if(this.initialized)return;this.consoleLogger=t;let n=r??nt(nt(Xt.of((0,tgu.homedir)()),Ne.of(OQm)),Ne.of(PQm));await cr(n)||await(0,V7.mkdir)(n,{recursive:!0});let o=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=nt(n,Ne.of(o));let s=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${JVo.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
|
|
3810
3810
|
`);await(0,V7.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)+`
|
|
3811
3811
|
`;try{await(0,V7.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:DQm(),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,V7.readdir)(t)).filter(c=>c.endsWith(".log")),i=[];for(let c of n){let u=JVo.default.join(t,c);try{let l=await(0,V7.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=KVo/1024/1024;if(o<=KVo){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<=KVo)break;if(!(this.logFilePath!=null&&c.fullPath===this.logFilePath))try{await(0,V7.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 Xei={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function rgu(e){let t=RQm();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:Xei});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",...Xei}})}catch{return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...Xei}})}let d=/^\/_local\/(.*)/.exec(p.pathname);return u.method==="GET"&&d!=null?new Response(t.file(`/${d[1]}`),{headers:Xei}):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 SUe.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 RQm(){return globalThis.Bun}nr();oS();Ut();var ivu=require("child_process"),lri=xe(i5o(),1),ovu=xe(A8o(),1),bv=require("fs"),QN=require("fs/promises"),svu=require("os"),jN=xe(require("path"),1),avu=xe(Nx(),1),cvu=xe(nvu(),1),NUe=process.platform==="win32",uri=ye.cyan("[docs]:"),czm="etag",uzm=23,B8o=e=>e.padEnd(uzm," "),lzm="preview",pzm="app-preview",fzm="bundle",dzm=".next",mzm="standalone",hzm=".fern",gzm="packages/fern-docs/bundle/.next/server/instrumentation.js",Azm='Cannot find matching keyid: {"signatures":',yzm="ERR_PNPM_IGNORED_BUILDS";function bzm(e){try{let r=(0,ivu.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 F({message:`Windows long path support is not enabled. The docs bundle contains deeply nested .pnpm paths that exceed the 260-character MAX_PATH limit.
|
|
3812
3812
|
|
|
@@ -4338,7 +4338,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
|
|
|
4338
4338
|
|
|
4339
4339
|
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`:r}function wKm(e,t,r){return t!=null&&t.includes("Invalid authorization token")?`Your authentication token is invalid or expired. Please run '${r}' to re-authenticate.`:`You are not authorized to publish docs under organization '${e}'. Please run '${r}' to ensure you are logged in with the correct account.
|
|
4340
4340
|
|
|
4341
|
-
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function xKm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function SKm(e){try{return new URL(xN(e)).pathname}catch{return}}async function TKm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await BKm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function y9o(e){return e.replace(/^https:\/\//,"")}async function BKm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&y9o(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await OKm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function OKm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function PKm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&y9o(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=KUe({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=y9o(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=iLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function DKm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);try{(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}catch(c){r.logger.warn(`Network error uploading dynamic IR for ${n}:${i}: ${c}`)}}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function RKm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(ye.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function FKm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function ROu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var w9t=[60*1e3,300*1e3,300*1e3];async function x9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:C=>i.failAndThrow(void 0,C,{code:F.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:F.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:F.Code.ConfigError});return}let y=A.find(C=>C.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:F.Code.ConfigError});return}let I=[];y.customDomain!=null&&(typeof y.customDomain=="string"?I.push(y.customDomain):Array.isArray(y.customDomain)&&I.push(...y.customDomain)),y.multiSource===!0&&kKm(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let w;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),x=()=>OOu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let O=0;;O++)try{w=await x();break}catch(k){if(!(k instanceof rvt)||O>=w9t.length){if(k instanceof rvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:F.Code.NetworkError});throw k}let P=w9t[O]??w9t[w9t.length-1]??6e4,U=P/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${U} minute${U===1?"":"s"} (attempt ${O+1}/${w9t.length})...`),await new Promise(X=>setTimeout(X,P))}let B=performance.now()-C;i.logger.debug(`Docs publishing completed in ${B.toFixed(0)}ms`)}),w}function FOu(e){try{let t=e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`;return new URL(t).pathname}catch{return"/"}}function kKm(e,t,r){let n=FOu(e);for(let i of t){let o=FOu(i);o!=="/"&&n!==o&&r.failAndThrow(`When multi-source is enabled, the url and custom-domain must share the same basepath. Instance url '${e}' has basepath '${n}' but custom-domain '${i}' has basepath '${o}'.`,void 0,{code:F.Code.ConfigError})}}Ut();var Lii=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 vd({context:this.context,task:this.task});try{let s=await x9t({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.30.2",loginCommand:"fern auth login"});return o.getResult()===zf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Gn(s)}}}};jt();var nvt=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(`
|
|
4341
|
+
Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}function xKm(e){if(e==null)return{code:void 0,message:void 0};let t=e.body;if(t!=null&&typeof t=="object"){let n=typeof t.code=="string"?t.code:void 0,i=typeof t.message=="string"?t.message:void 0;return{code:n,message:i}}return{code:void 0,message:typeof t=="string"&&t.length>0?t:typeof e.errorMessage=="string"?e.errorMessage:typeof e.message=="string"?e.message:void 0}}function SKm(e){try{return new URL(xN(e)).pathname}catch{return}}async function TKm({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await BKm({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=Object.fromEntries(Object.entries(o).map(([l,p])=>[l,{packageName:p.packageName,version:p.version}])),c=(await e.api.register.checkSdkDynamicIrExists({orgId:hn.OrgId(r),snippetConfiguration:s})).existingDynamicIrs??{};if(Object.keys(c).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[l,p]of Object.entries(c??{}))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${l}...`);let d=await fetch(p.downloadUrl);if(d.ok){let f=await d.json();u[l]={dynamicIR:f},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${l}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${l}: ${d.status}`)}catch(d){n.logger.warn(`Error downloading SDK dynamic IR for ${l}: ${d}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function y9o(e){return e.replace(/^https:\/\//,"")}async function BKm({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package??void 0,explicitVersion:r.typescriptSdk?.version??void 0},{language:"python",snippetName:r.pythonSdk?.package??void 0,explicitVersion:r.pythonSdk?.version??void 0},{language:"java",snippetName:r.javaSdk?.coordinate??void 0,explicitVersion:r.javaSdk?.version??void 0},{language:"go",snippetName:r.goSdk?.githubRepo&&y9o(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version??void 0},{language:"csharp",snippetName:r.csharpSdk?.package??void 0,explicitVersion:r.csharpSdk?.version??void 0},{language:"ruby",snippetName:r.rubySdk?.gem??void 0,explicitVersion:r.rubySdk?.version??void 0},{language:"php",snippetName:r.phpSdk?.package??void 0,explicitVersion:r.phpSdk?.version??void 0},{language:"swift",snippetName:r.swiftSdk?.package??void 0,explicitVersion:r.swiftSdk?.version??void 0},{language:"rust",snippetName:r.rustSdk?.package??void 0,explicitVersion:r.rustSdk?.version??void 0}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion??void 0;a||(a=(await OKm({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function OKm({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,c;if(t.generatorsConfiguration?.groups){let u=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=zn.getPackageName({generatorInvocation:p});d&&u.push(d),!a&&d&&(a=d,c=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let u=await e.sdks.computeSemanticVersion({githubRepository:s,language:o,package:a});return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${u.version} for package "${a}"`),{version:u.version,generatorPackage:a}}catch(u){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${u}`);return}}async function PKm({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&y9o(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let c of a.generators){let u=KUe({apiName:e.workspaceName??"",organization:t,generatorInvocation:c}),l="";if(u?.outputConfig.type==="publish")switch(u.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=u.outputConfig.value.packageName;break;case"maven":l=u.outputConfig.value.coordinate;break;case"go":l=u.outputConfig.value.repoUrl;break;case"swift":l=u.outputConfig.value.repoUrl;break;case"crates":l=u.outputConfig.value.packageName;break}if(c.language==="php"&&c.config&&typeof c.config=="object"&&"packageName"in c.config&&(l=c.config.packageName??""),c.language==="go"&&l&&(l=y9o(l)),!!c.language){if(i.has(c.language)){r.logger.debug(`Skipping dynamic IR generation for ${c.language} (using existing SDK dynamic IR)`);continue}if(c.language&&s[c.language]===l){let p=rA({workspace:e,generationLanguage:c.language,keywords:void 0,smartCasing:c.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new Kh(r,e),dynamicGeneratorConfig:u}),d=iLe({ir:p,disableExamples:!0,smartCasing:c.smartCasing,generationLanguage:c.language,generatorConfig:u});d?o[c.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${c.language}`)}}}for(let[a,c]of Object.entries(s))a&&c&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${c}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${c} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function DKm({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);try{(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}catch(c){r.logger.warn(`Network error uploading dynamic IR for ${n}:${i}: ${c}`)}}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function RKm({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(ye.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function FKm(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function ROu(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var w9t=[60*1e3,300*1e3,300*1e3];async function x9t({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:c,disableTemplates:u,skipUpload:l,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m}){let h=a&&!n.config.settings?.substituteEnvVars;n.config=Dy(n.config,{onError:C=>i.failAndThrow(void 0,C,{code:F.Code.EnvironmentError})},{substituteAsEmpty:h});let A=n.config.instances;if(A.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.",void 0,{code:F.Code.ConfigError});return}if(A.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${A[0]?.url})`,void 0,{code:F.Code.ConfigError});return}let y=A.find(C=>C.url===s)??A[0];if(y==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`,void 0,{code:F.Code.ConfigError});return}let I=[];y.customDomain!=null&&(typeof y.customDomain=="string"?I.push(y.customDomain):Array.isArray(y.customDomain)&&I.push(...y.customDomain)),y.multiSource===!0&&kKm(y.url,I,i),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${y.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let w;return await i.runInteractiveTask({name:y.url},async()=>{let C=performance.now(),x=()=>OOu({docsWorkspace:n,customDomains:I,domain:y.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:c,editThisPage:y.editThisPage,disableTemplates:u,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:y.audiences?Array.isArray(y.audiences)?y.audiences:[y.audiences]:void 0,docsUrl:y.url,cliVersion:p,ciSource:d,deployerAuthor:f,loginCommand:m,multiSource:y.multiSource??!1});for(let O=0;;O++)try{w=await x();break}catch(k){if(!(k instanceof rvt)||O>=w9t.length){if(k instanceof rvt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.",void 0,{code:F.Code.NetworkError});throw k}let P=w9t[O]??w9t[w9t.length-1]??6e4,U=P/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${U} minute${U===1?"":"s"} (attempt ${O+1}/${w9t.length})...`),await new Promise(X=>setTimeout(X,P))}let B=performance.now()-C;i.logger.debug(`Docs publishing completed in ${B.toFixed(0)}ms`)}),w}function FOu(e){try{let t=e.startsWith("https://")||e.startsWith("http://")?e:`https://${e}`;return new URL(t).pathname}catch{return"/"}}function kKm(e,t,r){let n=FOu(e);for(let i of t){let o=FOu(i);o!=="/"&&n!==o&&r.failAndThrow(`When multi-source is enabled, the url and custom-domain must share the same basepath. Instance url '${e}' has basepath '${n}' but custom-domain '${i}' has basepath '${o}'.`,void 0,{code:F.Code.ConfigError})}}Ut();var Lii=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 vd({context:this.context,task:this.task});try{let s=await x9t({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.30.3",loginCommand:"fern auth login"});return o.getResult()===zf.Failure?{success:!1}:{success:!0,url:s}}catch(s){return{success:!1,error:Gn(s)}}}};jt();var nvt=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(`
|
|
4342
4342
|
`),this.stream.write(`${ye.cyan("\u25C6")} ${ye.bold(t.title)}
|
|
4343
4343
|
`),t.subtitle!=null&&this.stream.write(` ${ye.dim(t.subtitle)}
|
|
4344
4344
|
`),this.stream.write(`
|
|
@@ -5004,7 +5004,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
5004
5004
|
`),h="";return c&&(h=l.style.error(c)),[`${p} ${f} ${s}`,[m,h].filter(Boolean).join(`
|
|
5005
5005
|
`)]});var Uag=ZC((e,t)=>{let{validate:r=()=>!0}=e,n=Dv(e.theme),[i,o]=vu("idle"),[s,a]=vu(),[c,u]=vu(""),l=YC({status:i,theme:n});XC(async(h,A)=>{if(i==="idle")if(JC(h)){let y=c;o("loading");let I=await r(y);I===!0?(u(y),o("done"),t(y)):(A.write(c),a(I||"You must provide a valid value"),o("idle"))}else u(A.line),a(void 0)});let p=n.style.message(e.message,i),d="",f;e.mask?d=(typeof e.mask=="string"?e.mask:"*").repeat(c.length):i!=="done"&&(f=`${n.style.help("[input is masked]")}${qSt}`),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 V8e=xe(uS(),1);var _ag={icon:{cursor:Lw.pointer},style:{disabled:e=>V8e.default.dim(`- ${e}`),searchTerm:e=>V8e.default.cyan(e),description:e=>V8e.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${V8e.default.bold(t)} ${V8e.default.dim(r)}`).join(V8e.default.dim(" \u2022 "))},helpMode:"always"};function S0s(e){return!Bd.isSeparator(e)&&!e.disabled}function Vag(e){return e.map(t=>{if(Bd.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 qag=ZC((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,i=Dv(_ag,e.theme),[o,s]=vu("loading"),[a,c]=vu(""),[u,l]=vu([]),[p,d]=vu(),f=YC({status:o,theme:i}),m=TL(()=>{let U=u.findIndex(S0s),X=u.findLastIndex(S0s);return{first:U,last:X}},[u]),[h=m.first,A]=vu();y4(()=>{let U=new AbortController;return s("loading"),d(void 0),(async()=>{try{let ee=await e.source(a||void 0,{signal:U.signal});U.signal.aborted||(A(void 0),d(void 0),l(Vag(ee)),s("idle"))}catch(ee){!U.signal.aborted&&ee instanceof Error&&d(ee.message)}})(),()=>{U.abort()}},[a]);let y=u[h];XC(async(U,X)=>{if(JC(U))if(y){s("loading");let ee=await n(y.value);s("idle"),ee===!0?(s("done"),t(y.value)):y.name===a?d(ee||"You must provide a valid value"):(X.write(y.name),c(y.name))}else X.write(a);else if(Qhe(U)&&y)X.clearLine(0),X.write(y.name),c(y.name);else if(o!=="loading"&&(SP(U)||SL(U))){if(X.clearLine(0),SP(U)&&h!==m.first||SL(U)&&h!==m.last){let ee=SP(U)?-1:1,ne=h;do ne=(ne+ee+u.length)%u.length;while(!S0s(u[ne]));A(ne)}}else c(X.line)});let I=i.style.message(e.message,o),w;if(i.helpMode!=="never")if(e.instructions){let{pager:U,navigation:X}=e.instructions;w=i.style.help(u.length>r?U:X)}else w=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let C=L8e({items:u,active:h,renderItem({item:U,isActive:X}){if(Bd.isSeparator(U))return` ${U.separator}`;if(U.disabled){let pe=typeof U.disabled=="string"?U.disabled:"(disabled)";return i.style.disabled(`${U.name} ${pe}`)}let ee=X?i.style.highlight:pe=>pe,ne=X?i.icon.cursor:" ";return ee(`${ne} ${U.name}`)},pageSize:r,loop:!1}),x;p?x=i.style.error(p):u.length===0&&a!==""&&o==="idle"&&(x=i.style.error("No results found"));let B;if(o==="done"&&y)return[f,I,i.style.answer(y.short)].filter(Boolean).join(" ").trimEnd();B=i.style.searchTerm(a);let O=y?.description,k=[f,I,B].filter(Boolean).join(" ").trimEnd(),P=[x??C," ",O?i.style.description(O):"",w].filter(Boolean).join(`
|
|
5006
5006
|
`).trimEnd();return[k,P]});var WSt=xe(uS(),1);var Gag={icon:{cursor:Lw.pointer},style:{disabled:e=>WSt.default.dim(`- ${e}`),description:e=>WSt.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${WSt.default.bold(t)} ${WSt.default.dim(r)}`).join(WSt.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function GSt(e){return!Bd.isSeparator(e)&&!e.disabled}function Wag(e){return e.map(t=>{if(Bd.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 T0s=ZC((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=Dv(Gag,e.theme),{keybindings:o}=i,[s,a]=vu("idle"),c=YC({status:s,theme:i}),u=M8e(),l=!o.includes("vim"),p=TL(()=>Wag(e.choices),[e.choices]),d=TL(()=>{let O=p.findIndex(GSt),k=p.findLastIndex(GSt);if(O===-1)throw new mae("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:k}},[p]),f=TL(()=>"default"in e?p.findIndex(O=>GSt(O)&&O.value===e.default):-1,[e.default,p]),[m,h]=vu(f===-1?d.first:f),A=p[m];XC((O,k)=>{if(clearTimeout(u.current),JC(O))a("done"),t(A.value);else if(SP(O,o)||SL(O,o)){if(k.clearLine(0),r||SP(O,o)&&m!==d.first||SL(O,o)&&m!==d.last){let P=SP(O,o)?-1:1,U=m;do U=(U+P+p.length)%p.length;while(!GSt(p[U]));h(U)}}else if(WYt(O)&&!Number.isNaN(Number(k.line))){let P=Number(k.line)-1,U=-1,X=p.findIndex(ne=>Bd.isSeparator(ne)?!1:(U++,U===P)),ee=p[X];ee!=null&&GSt(ee)&&h(X),u.current=setTimeout(()=>{k.clearLine(0)},700)}else if(N8e(O))k.clearLine(0);else if(l){let P=k.line.toLowerCase(),U=p.findIndex(X=>Bd.isSeparator(X)||!GSt(X)?!1:X.name.toLowerCase().startsWith(P));U!==-1&&h(U),u.current=setTimeout(()=>{k.clearLine(0)},700)}}),y4(()=>()=>{clearTimeout(u.current)},[]);let y=i.style.message(e.message,s),I;if(i.helpMode!=="never")if(e.instructions){let{pager:O,navigation:k}=e.instructions;I=i.style.help(p.length>n?O:k)}else I=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let w=0,C=L8e({items:p,active:m,renderItem({item:O,isActive:k,index:P}){if(Bd.isSeparator(O))return w++,` ${O.separator}`;let U=i.indexMode==="number"?`${P+1-w}. `:"";if(O.disabled){let ne=typeof O.disabled=="string"?O.disabled:"(disabled)";return i.style.disabled(`${U}${O.name} ${ne}`)}let X=k?i.style.highlight:ne=>ne,ee=k?i.icon.cursor:" ";return X(`${ee} ${U}${O.name}`)},pageSize:n,loop:r});if(s==="done")return[c,y,i.style.answer(A.short)].filter(Boolean).join(" ");let{description:x}=A;return`${[[c,y].filter(Boolean).join(" "),C," ",x?i.style.description(x):"",I].filter(Boolean).join(`
|
|
5007
|
-
`).trimEnd()}${qSt}`});ao();var hae={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"},Hag={[hae.GENERATION_STARTED]:!1,[hae.GENERATION_COMPLETED]:!1,[hae.GENERATION_FAILED]:!0,[hae.VERIFICATION_FAILED]:!0,[hae.SDK_PR_CREATED]:!1,[hae.UPGRADE_APPLIED]:!1,[hae.MAJOR_VERSION_BUMP]:!1};function Jrl(e){return Hag[e]}function Yrl(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 Xrl(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 Zrl(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 $rl(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 enl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?hae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?hae.VERIFICATION_FAILED:hae.GENERATION_FAILED}var Kag="",Jag="FERN_AUTOMATION_EVENTS_ORIGIN",Yag=3e3,qAi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[Jag]??Kag)),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(),Yag);try{let s={"content-type":"application/json"},a=await IV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify($rl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function tnl(){let{fern_run_id:e,github_run_id:t}=Kae();return{action:process.env.FERN_ACTION,run_id:e,github_run_id:t,github_run_url:process.env.FERN_GITHUB_RUN_URL,org:void 0,config_repo:process.env.FERN_CONFIG_REPO,config_commit_sha:process.env.FERN_CONFIG_COMMIT_SHA,config_branch:process.env.FERN_CONFIG_BRANCH,config_pr_number:process.env.FERN_CONFIG_PR_NUMBER,trigger:process.env.GITHUB_EVENT_NAME,cli_version:"5.30.
|
|
5007
|
+
`).trimEnd()}${qSt}`});ao();var hae={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"},Hag={[hae.GENERATION_STARTED]:!1,[hae.GENERATION_COMPLETED]:!1,[hae.GENERATION_FAILED]:!0,[hae.VERIFICATION_FAILED]:!0,[hae.SDK_PR_CREATED]:!1,[hae.UPGRADE_APPLIED]:!1,[hae.MAJOR_VERSION_BUMP]:!1};function Jrl(e){return Hag[e]}function Yrl(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 Xrl(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 Zrl(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 $rl(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 enl(e){let t=e.join(" ");return/\bautomations\s+generate\b/.test(t)?hae.GENERATION_FAILED:/\bautomations\s+preview\b/.test(t)?hae.VERIFICATION_FAILED:hae.GENERATION_FAILED}var Kag="",Jag="FERN_AUTOMATION_EVENTS_ORIGIN",Yag=3e3,qAi=class e{static instance;origin;inflight=[];static getInstance(){return e.instance==null&&(e.instance=new e(process.env[Jag]??Kag)),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(),Yag);try{let s={"content-type":"application/json"},a=await IV();a!=null&&a.value.length>0&&(s.Authorization=`Bearer ${a.value}`);let c=await fetch(n,{method:"POST",headers:s,body:JSON.stringify($rl(t,r)),signal:i.signal})}catch{return}finally{clearTimeout(o)}}};function tnl(){let{fern_run_id:e,github_run_id:t}=Kae();return{action:process.env.FERN_ACTION,run_id:e,github_run_id:t,github_run_url:process.env.FERN_GITHUB_RUN_URL,org:void 0,config_repo:process.env.FERN_CONFIG_REPO,config_commit_sha:process.env.FERN_CONFIG_COMMIT_SHA,config_branch:process.env.FERN_CONFIG_BRANCH,config_pr_number:process.env.FERN_CONFIG_PR_NUMBER,trigger:process.env.GITHUB_EVENT_NAME,cli_version:"5.30.3"}}function rnl(){return process.env.FERN_AUTOMATION==="true"}var GAi=class{constructor(t,r=qAi.getInstance()){this.reporter=t;this.automationEventApiClient=r;this.context=tnl()}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:Yrl(t,r)})}captureSentryForFailure({event:t,context:r,error:n}){if(!(!Jrl(t.event)||t.errorCode==null))return this.reporter.captureException(n,{tags:Xrl(t,r),context:{automation:Zrl(t,r)}})}captureAutomationEventApiEvent(t,r){this.automationEventApiClient.post(t,r)}};Ut();function WAi(e,t,r){if(t instanceof pu)return;let n=hAe(t,r?.code),i=r?.argv??process.argv,o=i.join(" "),s=r?.message??(t instanceof Error?t.message:void 0)??"",a=t??new F({message:s,code:n});rnl()?Zag(i,e,n,s,a):Xag(e,o,n,a)}function Xag(e,t,r,n){e.instrumentPostHogEvent({command:t,properties:{failed:!0,errorCode:r}}),XGe(r)&&e.captureException(n,{tags:{"error.code":r}})}function Zag(e,t,r,n,i){let o=enl(e);t.emitAutomationTelemetryEvent({event:o,errorCode:r,attributes:{error_message:n}},{error:i})}Ut();function q8e(){return process.env.FERN_DISABLE_TELEMETRY==="true"}function HAi({cliName:e,packageVersion:t,isLocal:r}){return q8e()||r?!1:!(t==="0.0.0")&&(e==="fern"&&!0)}var KAi=class{sentry;constructor({release:t,telemetry:r}){let n="https://84f58b5e457f06999d92f11ce4b79158@o4509504076185600.ingest.us.sentry.io/4511021546602496";if(HAi(r)&&n!=null&&n.length>0){let i="production";if(i==null||i.length===0)throw new F({message:"SENTRY_ENVIRONMENT must be set when SENTRY_DSN is configured",code:F.Code.ConfigError});this.sentry=uPt({dsn:n,release:t,environment:i,defaultIntegrations:!1,integrations:[kqe(),zge(),Uge(),wge(),Lge()],tracesSampleRate:0,attachStacktrace:!0,sendClientReports:!1}),lPt()}}captureException(t,r){if(this.sentry!=null)try{let n=r?.tags,i=r?.context,o=n!=null&&Object.keys(n).length>0,s=i!=null&&Object.values(i).some(a=>a!=null);return!o&&!s?this.sentry.captureException(t):FB(a=>{if(o&&a.setTags(n),i!=null)for(let[c,u]of Object.entries(i))u!=null&&a.setContext(c,u);return this.sentry?.captureException(t,void 0,a)})}catch{return}}async flush(){this.sentry!=null&&await Promise.resolve(this.sentry.flush(2e3)).catch(()=>{})}};Ut();var JAi=class{originalWrite;redirected=!1;redirect(){if(this.redirected)throw new F({message:"StdoutRedirector: already redirected \u2014 did you forget to restore()?",code:F.Code.InternalError});this.originalWrite=process.stdout.write,process.stdout.write=process.stderr.write.bind(process.stderr),this.redirected=!0}restore(){!this.redirected||this.originalWrite==null||(process.stdout.write=this.originalWrite,this.originalWrite=void 0,this.redirected=!1)}async withRedirect(t){this.redirect();try{return await t()}finally{this.restore()}}};jt();Hb();Ut();var YYt=class{result=zf.Success;lastFailureMessage=void 0;logImmediately;logPrefix;title;subtasks=[];shouldBufferLogs;bufferedLogs=[];status="notStarted";onResult;instrumentPostHogEventImpl;captureExceptionImpl;emitAutomationTelemetryEventImpl;constructor({logImmediately:t,logPrefix:r,title:n,takeOverTerminal:i,onResult:o,shouldBufferLogs:s,instrumentPostHogEvent:a,captureException:c,emitAutomationTelemetryEvent:u}){this.logImmediately=t,this.logPrefix=r??"",this.title=n,this.takeOverTerminal=i,this.onResult=o,this.shouldBufferLogs=s,this.instrumentPostHogEventImpl=a,this.captureExceptionImpl=c,this.emitAutomationTelemetryEventImpl=u}start(){return this.status="running",this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.status="finished",this.flushLogs(),this.onResult?.(this.getResult()))}isFinished(){return this.status==="finished"}takeOverTerminal;failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),this.finish(),new pu}failWithoutThrowing(t,r,n){this.result=zf.Failure,!(r instanceof pu)&&(t!=null&&(this.lastFailureMessage=t),$Lt({message:t,error:r,logger:this.logger}),WAi(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=zI(this.logAtLevel.bind(this));addInteractiveTask({name:t,subtitle:r}){let n=new B0s({name:t,subtitle:r,logImmediately:i=>this.logImmediately(i),logPrefix:`${this.logPrefix}${ye.blackBright(t)} `,takeOverTerminal:this.takeOverTerminal,onResult:this.onResult,shouldBufferLogs:this.shouldBufferLogs,instrumentPostHogEvent:i=>this.instrumentPostHogEventImpl(i),captureException:this.captureExceptionImpl,emitAutomationTelemetryEvent:this.emitAutomationTelemetryEventImpl});return this.subtasks.push(n),n}async runInteractiveTask(t,r){let n=this.addInteractiveTask(t).start();try{await r(n)}catch(i){n.failWithoutThrowing(void 0,i)}finally{n.finish()}return n.getResult()===zf.Success}printInteractiveTasks({spinner:t}){return this.subtasks.map(r=>r.print({spinner:t})).join(`
|
|
5008
5008
|
`)}},B0s=class extends YYt{name;subtitle;constructor({name:t,subtitle:r,...n}){super(n),this.name=t,this.subtitle=r}start(){return super.start(),this.logAtLevelWithOverrides(qn.Info,["Started."],{omitOnTTY:!0}),this.flushLogs(),this}isStarted(){return this.status!=="notStarted"}finish(){this.status!=="finished"&&(this.result===zf.Success?this.logAtLevelWithOverrides(qn.Info,["Finished."],{omitOnTTY:!0}):this.logAtLevelWithOverrides(qn.Error,["Failed."],{omitOnTTY:!0}),super.finish())}setSubtitle(t){this.subtitle=t}print({spinner:t}){let r=[this.name];return this.subtitle!=null&&r.push(ye.dim(this.subtitle)),r.push(...this.subtasks.map(n=>n.print({spinner:t}))),Pj({prefix:this.getIcon({spinner:t}),content:r.join(`
|
|
5009
5009
|
`)})}printInteractiveTasks({spinner:t}){return this.print({spinner:t})}getIcon({spinner:t}){let r=this.subtasks.length>0;switch(this.status){case"notStarted":return r?ye.dim("\u25B8 "):ye.dim("\u25E6 ");case"running":return r?ye.cyan("\u25BE "):t;case"finished":switch(this.getResult()){case zf.Success:return r?ye.green("\u25BE "):ye.green("\u2713 ");case zf.Failure:return r?ye.red("\u25BE "):ye.red("x ")}}}getResult(){if(this.result===zf.Failure)return zf.Failure;for(let t of this.subtasks)if(t.getResult()===zf.Failure)return zf.Failure;return zf.Success}};Ut();var nnl=xe(FMe(),1);function inl(e){return e.filter(t=>t.isUpgradeAvailable).length>0}function $ag(e){return(e.cliUpgradeInfo?.isUpgradeAvailable??!1)||inl(e.generatorUpgradeInfo)}async function onl({cliEnvironment:e,upgradeInfo:t}){if(!$ag(t)||e.packageVersion==t.cliUpgradeInfo?.latestVersion)return;let r=`${ye.underline("Upgrades available")}
|
|
5010
5010
|
|
|
@@ -5013,7 +5013,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
|
|
|
5013
5013
|
Run ${ye.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
|
|
5014
5014
|
Run ${ye.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),Pot(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function O0s({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!inl(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+=`
|
|
5015
5015
|
${await ecg(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+ye.dim(a.currentVersion)+ye.reset(" \u2192 ")+ye.green(a.latestVersion);return i+=`
|
|
5016
|
-
`,n?Pot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function ecg(e){let r=await new nnl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new F({message:`Generator ${e} not found`,code:F.Code.ConfigError});return r.body.displayName}Ut();async function tcg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await snl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=CMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await j1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await snl({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=CMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await j1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function snl({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await q3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?py(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function anl(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c;try{c=UQ(a.latestVersion,a.previousVersion)}catch{throw new F({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:F.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 YAi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await tcg({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(...anl(u,c,t.logger));else s.push(...anl(a.versions,void 0,t.logger))}return s}Ut();async function Mhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await URt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new F({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:F.Code.NetworkError})}}var cnl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],XAi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new JAi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await q_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new g3t(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 KAi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new GAi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.30.
|
|
5016
|
+
`,n?Pot(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function ecg(e){let r=await new nnl.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new F({message:`Generator ${e} not found`,code:F.Code.ConfigError});return r.body.displayName}Ut();async function tcg({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await snl({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(c,u,l,p)=>{a.versions[u]==null&&(a.versions[u]={});let d=CMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await j1({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[u][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await snl({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=CMe(u.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${u.name}`);return}let d=await j1({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:u.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][c][u.name]={previousVersion:u.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function snl({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await q3({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let c=n!=null?py(n):void 0;for(let u of a.groups)if(!(i!=null&&u.groupName!==i))for(let l of u.generators)c!=null&&l.name!==c||await r(o.workspaceName,u.groupName,l,s)})}))}function anl(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let c;try{c=UQ(a.latestVersion,a.previousVersion)}catch{throw new F({message:`Generator "${s}" has an invalid version "${a.previousVersion}" in generators.yml. Use an exact version like 1.2.3.`,code:F.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 YAi({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await tcg({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(...anl(u,c,t.logger));else s.push(...anl(a.versions,void 0,t.logger))}return s}Ut();async function Mhe({cliEnvironment:e,includePreReleases:t=!1}){if(e.packageName!=="fern-api"||e.packageVersion==="0.0.0")return e.packageVersion;try{return await URt(e.packageName,{version:t?"prerelease":"latest"})}catch(r){throw new F({message:`Failed to resolve latest CLI version: ${r instanceof Error?r.message:String(r)}`,code:F.Code.NetworkError})}}var cnl=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],XAi=class e{environment;sentryClient;posthogManager;automationTelemetryManager;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=qn.Info;isLocal;stdoutRedirector=new JAi;jsonMode=!1;static async create(t,r,{isLocal:n}){let i=await q_t();return new e(t,r,{isLocal:n,posthogManager:i})}constructor(t,r,{isLocal:n,posthogManager:i}){this.ttyAwareLogger=new g3t(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 KAi({release:`cli@${this.environment.packageVersion}`,telemetry:{cliName:this.environment.cliName,packageVersion:this.environment.packageVersion,isLocal:this.isLocal}}),this.automationTelemetryManager=new GAi(this)}getPackageName(){return"fern-api"}getPackageVersion(){return"5.30.3"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${ye.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r,n){throw this.failWithoutThrowing(t,r,n),new pu}failWithoutThrowing(t,r,n){this.didSucceed=!1,!(r instanceof pu)&&($Lt({message:t,error:r,logger:this.logger}),WAi(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)+`
|
|
5017
5017
|
`),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 onl({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
|
|
5018
5018
|
`)||(r+=`
|
|
5019
5019
|
`),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=hOi(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 YYt(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw n.failWithoutThrowing(void 0,o),new pu}finally{n.finish()}return i}instrumentPostHogEvent(t){this.isLocal||this.posthogManager.sendEvent(t)}instrumentPostHogAutomationEvent(t){this.isLocal||this.posthogManager.sendAutomationEvent(t)}captureException(t,r){return this.sentryClient.captureException(t,r)}emitAutomationTelemetryEvent(t,r){this.automationTelemetryManager.emit(t,r)}logger=zI((t,...r)=>this.log(t,...r));stderr=zI((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=t.type==="docs"?"docs":t.workspaceName??"api",n=unl(r),i=1+(this.longestWorkspaceName!=null?unl(this.longestWorkspaceName):n).length,o=n.padEnd(i),s=cnl[this.numTasks++%cnl.length],a=ye.hex(s)(o);return{...this.constructTaskInit(),logPrefix:a,title:ye.hex(s).bold(r)}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===zf.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:t=>{this.instrumentPostHogEvent(t)},shouldBufferLogs:!1,captureException:(t,r)=>this.sentryClient.captureException(t,r),emitAutomationTelemetryEvent:(t,r)=>this.emitAutomationTelemetryEvent(t,r)}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>Rx.indexOf(i.level)>=Rx.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===qn.Debug,stderr:r||this.jsonMode})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await Mhe({cliEnvironment:this.environment,includePreReleases:t}),n=UQ(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await YAi({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await T0s({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:ye.yellow("?"),style:{answer:i=>ye.cyan(i),message:i=>ye.bold(i),highlight:i=>ye.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
|