@fern-api/ruby-dynamic-snippets 1.37.0 → 1.37.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ ${t}`)}return t}getContent(){let t=this.stringifyRequires();return t.length>0?`$
18
18
 
19
19
  ${this.buffer}`:this.buffer}stringifyRequires(){return Array.from(this.requires).map(t=>`require "${t}"`).join(`
20
20
  `)}};var B=class extends me{async toStringAsync({customConfig:t,formatter:e}={}){let i=new Ie({customConfig:t??{},formatter:e});return this.write(i),i.toStringAsync()}toString({customConfig:t,formatter:e}={}){let i=new Ie({customConfig:t??{},formatter:e});return this.write(i),i.toString()}typeDefinitionToString({customConfig:t,formatter:e}={}){let i=new Ie({customConfig:t??{},formatter:e});return this.writeTypeDefinition(i),i.toString()}writeTypeDefinition(t){}};var se=class extends B{constructor({name:e,modules:i,fullyQualified:s}){super();y(this,"name");y(this,"modules");y(this,"fullyQualified");this.name=e,this.modules=i??[],this.fullyQualified=s??!1}write(e){if(this.fullyQualified||this.modules.length>0){let i=[...this.modules,this.name].join("::");e.write(i);return}e.write(this.name)}};var g={};Ft(g,{AstNode:()=>B,ClassInstantiation:()=>he,ClassReference:()=>se,Class_:()=>ee,CodeBlock:()=>ye,KeywordArgument:()=>ge,KeywordParameter:()=>xe,Method:()=>Q,MethodInvocation:()=>we,MethodKind:()=>ue,Module_:()=>Z,Parameter:()=>G,Type:()=>ae,TypeLiteral:()=>Ne,TypeParameter:()=>be,Writer:()=>Y,begin:()=>Io,classReference:()=>wo,class_:()=>mo,codeblock:()=>nt,comment:()=>go,falseValue:()=>po,ifElse:()=>Eo,instantiateClass:()=>bo,invokeMethod:()=>Ao,keywordArgument:()=>vo,method:()=>yo,module:()=>ho,nilValue:()=>fo,parameters:()=>co,positionalArgument:()=>To,raise:()=>ko,trueValue:()=>lo,typeParameter:()=>xo,wrapInModules:()=>No});c();m();d();c();m();d();var ke=class extends B{constructor({body:e,rescues:i}){super();y(this,"body");y(this,"rescues");this.body=e,this.rescues=i}write(e){e.write("begin"),e.writeLine(),this.body&&(e.indent(),this.body.write(e),e.writeNewLineIfLastLineNot(),e.dedent());for(let{errorClass:i,errorVariable:s,body:p}of this.rescues)e.write("rescue"),i&&(e.write(" "),i.write(e)),s&&(e.write(" => "),e.write(s)),e.writeLine(),p&&(e.indent(),p.write(e),e.writeNewLineIfLastLineNot(),e.dedent());e.write("end")}};c();m();d();c();m();d();c();m();d();var ao=120,uo=2,X=class extends B{constructor({docs:e}){super();y(this,"docs");this.docs=e}write(e){this.docs?.trim()&&this.docs.split(`
21
- `).forEach(i=>{this.wrapLine(i,e).forEach(p=>{let a=p.trimEnd();e.writeLine(a===""?"#":`# ${a}`)})})}wrapLine(e,i){let s=i.currentIndentLevel*2,p=ao-s-uo;if(e.length<=p)return[e];if(p<20)return[e];let a=e.split(/(\s+)/),w=[],b="";for(let I of a){if(I===""||b===""&&/^\s+$/.test(I))continue;let N=b+I;N.length<=p?b=N:(b.trim()!==""&&w.push(b.trimEnd()),b=I.trimStart(),b.length>p&&(w.push(b),b=""))}return b.trim()!==""&&w.push(b.trimEnd()),w.length===0?[e]:w}};c();m();d();c();m();d();var ae=class l extends B{constructor(e){super();y(this,"internalType");this.internalType=e}write(e){if(this.internalType)switch(this.internalType?.type){case"integer":e.write("Integer");return;case"string":e.write("String");return;case"class":e.writeNode(this.internalType.reference);return;case"instance":break;case"boolean":e.write("Internal::Types::Boolean");return;case"nil":break;case"top":break;case"bot":break;case"void":break;case"boolish":break;case"union":if(this.internalType.elems.length===2&&this.internalType.elems[1]?.internalType?.type==="nil"){let i=this.internalType.elems[0];i?.write(e)}break;case"intersection":break;case"array":e.write("Internal::Types::Array["),this.internalType.elem.write(e),e.write("]");return;case"hash":e.write("Internal::Types::Hash["),this.internalType.keyType.write(e),e.write(", "),this.internalType.valueType.write(e),e.write("]");return;case"object":e.write("Object");break;case"singleton":break;case"generic":break;case"self":break;case"tuple":break;default:L(this.internalType)}}writeTypeDefinition(e){if(this.internalType)switch(this.internalType.type){case"self":e.write("self");break;case"class":e.write(this.internalType.reference.toString(e));break;case"instance":e.write("instance");break;case"boolean":e.write("bool");break;case"nil":e.write("nil");break;case"top":e.write("top");break;case"bot":e.write("bot");break;case"void":e.write("void");break;case"boolish":e.write("boolish");break;case"string":e.write("String");break;case"integer":e.write("Integer");break;case"union":e.delimit({nodes:this.internalType.elems,delimiter:" | ",writeFunction:i=>i.writeTypeDefinition(e)});break;case"intersection":e.delimit({nodes:this.internalType.elems,delimiter:" & ",writeFunction:i=>i.writeTypeDefinition(e)});break;case"array":e.write("Array["),this.internalType.elem.writeTypeDefinition(e),e.write("]");break;case"hash":e.write("Hash["),this.internalType.keyType.writeTypeDefinition(e),e.write(", "),this.internalType.valueType.writeTypeDefinition(e),e.write("]");break;case"object":e.write(this.internalType.klass);break;case"singleton":e.write("singleton("),e.write(this.internalType.klass),e.write(")");break;case"tuple":e.write("["),e.delimit({nodes:this.internalType.elems,delimiter:", ",writeFunction:i=>i.write(e)}),e.write("]");break;case"generic":e.write(`${this.internalType.baseKlass}[`),e.delimit({nodes:this.internalType.parameters,delimiter:", ",writeFunction:i=>i.writeTypeDefinition(e)}),e.write("]");break;default:L(this.internalType)}else e.write("untyped")}static untyped(){return new this(void 0)}static self(){return new this({type:"self"})}static class_(e){return new this({type:"class",reference:new se({name:e.name,modules:e.modules,fullyQualified:!0})})}static instance(){return new this({type:"instance"})}static boolean(){return new this({type:"boolean"})}static nil(){return new this({type:"nil"})}static top(){return new this({type:"top"})}static bot(){return new this({type:"bot"})}static void(){return new this({type:"void"})}static boolish(){return new this({type:"boolish"})}static string(){return new this({type:"string"})}static integer(){return new this({type:"integer"})}static union(e){return new this({type:"union",elems:e})}static intersection(e){return new this({type:"intersection",elems:e})}static array(e){return new this({type:"array",elem:e})}static hash(e,i){return new this({type:"hash",keyType:e,valueType:i})}static object(e){return new this({type:"object",klass:e})}static singleton(e){return new this({type:"singleton",klass:e})}static tuple(e){return new this({type:"tuple",elems:e})}static generic(e,i){return new this({type:"generic",baseKlass:e,parameters:i})}static nilable(e){return l.union([e,l.nil()])}nilable(){return l.nilable(this)}};var ue={Instance:"instance",Class_:"class"},Pn={Public:"public",Private:"private",Protected:"protected"},Q=class extends B{constructor({name:e,docstring:i,kind:s,visibility:p,parameters:a,returnType:w,statements:b,splatOptionDocs:I,codeExample:N,inlineComment:k}){super();y(this,"name");y(this,"docstring");y(this,"kind");y(this,"positionalParameters");y(this,"keywordParameters");y(this,"positionalSplatParameter");y(this,"keywordSplatParameter");y(this,"yieldParameter");y(this,"visibility");y(this,"statements");y(this,"returnType");y(this,"splatOptionDocs");y(this,"codeExample");y(this,"inlineComment");this.name=e,this.docstring=i,this.kind=s??ue.Instance,this.visibility=p??Pn.Public,this.positionalParameters=a?.positional??[],this.keywordParameters=a?.keyword??[],this.positionalSplatParameter=a?.positionalSplat,this.keywordSplatParameter=a?.keywordSplat,this.yieldParameter=a?.yield,this.returnType=w??ae.untyped(),this.statements=b??[],this.splatOptionDocs=I??[],this.codeExample=N,this.inlineComment=k}addStatement(e){this.statements.push(e)}write(e){this.docstring&&new X({docs:this.docstring}).write(e);let i=this.positionalParameters.length>0||this.keywordParameters.length>0||this.keywordSplatParameter!=null;this.docstring&&i&&e.writeLine("#");for(let p of this.positionalParameters){e.write(`# @option ${p.name} [`);let a=new Y({customConfig:e.customConfig});p.type.writeTypeDefinition(a),e.write(this.normalizeForYard(a.toString())),e.write("]"),e.newLine()}for(let p of this.keywordParameters){e.write(`# @param ${p.name} [`);let a=new Y({customConfig:e.customConfig});p.type.writeTypeDefinition(a),e.write(this.normalizeForYard(a.toString())),e.write("]"),p.docs&&e.write(` ${p.docs}`),e.newLine()}if(this.keywordSplatParameter!=null){e.write(`# @param ${this.keywordSplatParameter.name} [`);let p=new Y({customConfig:e.customConfig});this.keywordSplatParameter.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),this.keywordSplatParameter.docs&&e.write(` ${this.keywordSplatParameter.docs}`),e.newLine()}for(let p of this.splatOptionDocs)e.writeLine(`# ${p}`);let s=this.codeExample?.trim();if(s){(this.docstring||i||this.splatOptionDocs.length>0)&&e.writeLine("#"),e.writeLine("# @example");for(let p of s.split(`
21
+ `).forEach(i=>{this.wrapLine(i,e).forEach(p=>{let a=p.trimEnd();e.writeLine(a===""?"#":`# ${a}`)})})}wrapLine(e,i){let s=i.currentIndentLevel*2,p=ao-s-uo;if(e.length<=p)return[e];if(p<20)return[e];let a=e.split(/(\s+)/),w=[],b="";for(let I of a){if(I===""||b===""&&/^\s+$/.test(I))continue;let N=b+I;N.length<=p?b=N:(b.trim()!==""&&w.push(b.trimEnd()),b=I.trimStart(),b.length>p&&(w.push(b),b=""))}return b.trim()!==""&&w.push(b.trimEnd()),w.length===0?[e]:w}};c();m();d();c();m();d();var ae=class l extends B{constructor(e){super();y(this,"internalType");this.internalType=e}write(e){if(this.internalType)switch(this.internalType?.type){case"integer":e.write("Integer");return;case"float":e.write("Float");return;case"string":e.write("String");return;case"class":e.writeNode(this.internalType.reference);return;case"instance":break;case"boolean":e.write("Internal::Types::Boolean");return;case"nil":break;case"top":break;case"bot":break;case"void":break;case"boolish":break;case"union":if(this.internalType.elems.length===2&&this.internalType.elems[1]?.internalType?.type==="nil"){let i=this.internalType.elems[0];i?.write(e)}break;case"intersection":break;case"array":e.write("Internal::Types::Array["),this.internalType.elem.write(e),e.write("]");return;case"hash":e.write("Internal::Types::Hash["),this.internalType.keyType.write(e),e.write(", "),this.internalType.valueType.write(e),e.write("]");return;case"object":e.write("Object");break;case"singleton":break;case"generic":break;case"self":break;case"tuple":break;default:L(this.internalType)}}writeTypeDefinition(e){if(this.internalType)switch(this.internalType.type){case"self":e.write("self");break;case"class":e.write(this.internalType.reference.toString(e));break;case"instance":e.write("instance");break;case"boolean":e.write("bool");break;case"nil":e.write("nil");break;case"top":e.write("top");break;case"bot":e.write("bot");break;case"void":e.write("void");break;case"boolish":e.write("boolish");break;case"string":e.write("String");break;case"integer":e.write("Integer");break;case"float":e.write("Float");break;case"union":e.delimit({nodes:this.internalType.elems,delimiter:" | ",writeFunction:i=>i.writeTypeDefinition(e)});break;case"intersection":e.delimit({nodes:this.internalType.elems,delimiter:" & ",writeFunction:i=>i.writeTypeDefinition(e)});break;case"array":e.write("Array["),this.internalType.elem.writeTypeDefinition(e),e.write("]");break;case"hash":e.write("Hash["),this.internalType.keyType.writeTypeDefinition(e),e.write(", "),this.internalType.valueType.writeTypeDefinition(e),e.write("]");break;case"object":e.write(this.internalType.klass);break;case"singleton":e.write("singleton("),e.write(this.internalType.klass),e.write(")");break;case"tuple":e.write("["),e.delimit({nodes:this.internalType.elems,delimiter:", ",writeFunction:i=>i.write(e)}),e.write("]");break;case"generic":e.write(`${this.internalType.baseKlass}[`),e.delimit({nodes:this.internalType.parameters,delimiter:", ",writeFunction:i=>i.writeTypeDefinition(e)}),e.write("]");break;default:L(this.internalType)}else e.write("untyped")}static untyped(){return new this(void 0)}static self(){return new this({type:"self"})}static class_(e){return new this({type:"class",reference:new se({name:e.name,modules:e.modules,fullyQualified:!0})})}static instance(){return new this({type:"instance"})}static boolean(){return new this({type:"boolean"})}static nil(){return new this({type:"nil"})}static top(){return new this({type:"top"})}static bot(){return new this({type:"bot"})}static void(){return new this({type:"void"})}static boolish(){return new this({type:"boolish"})}static string(){return new this({type:"string"})}static integer(){return new this({type:"integer"})}static float(){return new this({type:"float"})}static union(e){return new this({type:"union",elems:e})}static intersection(e){return new this({type:"intersection",elems:e})}static array(e){return new this({type:"array",elem:e})}static hash(e,i){return new this({type:"hash",keyType:e,valueType:i})}static object(e){return new this({type:"object",klass:e})}static singleton(e){return new this({type:"singleton",klass:e})}static tuple(e){return new this({type:"tuple",elems:e})}static generic(e,i){return new this({type:"generic",baseKlass:e,parameters:i})}static nilable(e){return l.union([e,l.nil()])}nilable(){return l.nilable(this)}};var ue={Instance:"instance",Class_:"class"},Pn={Public:"public",Private:"private",Protected:"protected"},Q=class extends B{constructor({name:e,docstring:i,kind:s,visibility:p,parameters:a,returnType:w,statements:b,splatOptionDocs:I,codeExample:N,inlineComment:k}){super();y(this,"name");y(this,"docstring");y(this,"kind");y(this,"positionalParameters");y(this,"keywordParameters");y(this,"positionalSplatParameter");y(this,"keywordSplatParameter");y(this,"yieldParameter");y(this,"visibility");y(this,"statements");y(this,"returnType");y(this,"splatOptionDocs");y(this,"codeExample");y(this,"inlineComment");this.name=e,this.docstring=i,this.kind=s??ue.Instance,this.visibility=p??Pn.Public,this.positionalParameters=a?.positional??[],this.keywordParameters=a?.keyword??[],this.positionalSplatParameter=a?.positionalSplat,this.keywordSplatParameter=a?.keywordSplat,this.yieldParameter=a?.yield,this.returnType=w??ae.untyped(),this.statements=b??[],this.splatOptionDocs=I??[],this.codeExample=N,this.inlineComment=k}addStatement(e){this.statements.push(e)}write(e){this.docstring&&new X({docs:this.docstring}).write(e);let i=this.positionalParameters.length>0||this.keywordParameters.length>0||this.keywordSplatParameter!=null;this.docstring&&i&&e.writeLine("#");for(let p of this.positionalParameters){e.write(`# @option ${p.name} [`);let a=new Y({customConfig:e.customConfig});p.type.writeTypeDefinition(a),e.write(this.normalizeForYard(a.toString())),e.write("]"),e.newLine()}for(let p of this.keywordParameters){e.write(`# @param ${p.name} [`);let a=new Y({customConfig:e.customConfig});p.type.writeTypeDefinition(a),e.write(this.normalizeForYard(a.toString())),e.write("]"),p.docs&&e.write(` ${p.docs}`),e.newLine()}if(this.keywordSplatParameter!=null){e.write(`# @param ${this.keywordSplatParameter.name} [`);let p=new Y({customConfig:e.customConfig});this.keywordSplatParameter.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),this.keywordSplatParameter.docs&&e.write(` ${this.keywordSplatParameter.docs}`),e.newLine()}for(let p of this.splatOptionDocs)e.writeLine(`# ${p}`);let s=this.codeExample?.trim();if(s){(this.docstring||i||this.splatOptionDocs.length>0)&&e.writeLine("#"),e.writeLine("# @example");for(let p of s.split(`
22
22
  `))e.writeLine(p.trim()===""?"#":`# ${p.trimEnd()}`)}if(this.returnType!=null){(i||this.docstring||s)&&e.writeLine("#"),e.write("# @return [");let p=new Y({customConfig:e.customConfig});this.returnType.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),e.newLine()}switch(this.visibility!==Pn.Public&&(e.write(this.visibility),this.kind===ue.Class_&&e.write("_class_method"),e.write(" ")),this.kind){case ue.Instance:e.write(`def ${this.name}`);break;case ue.Class_:e.write(`def self.${this.name}`);break}this.parameters.length&&(e.write("("),e.delimit({nodes:this.parameters,delimiter:", ",writeFunction:p=>p.write(e)}),e.write(")")),this.inlineComment!=null&&e.write(` # ${this.inlineComment}`),this.statements.length?(e.newLine(),e.indent(),this.statements.forEach((p,a)=>{p.write(e),a<this.statements.length-1&&e.newLine()}),e.writeNewLineIfLastLineNot(),e.dedent(),e.write("end")):e.write("; end"),e.newLine()}writeTypeDefinition(e){e.write(`def ${this.name}: (`),this.parameters.forEach((i,s)=>{i.writeTypeDefinition(e),s<this.parameters.length-1&&e.write(", ")}),e.write(") -> "),this.returnType.writeTypeDefinition(e)}normalizeForYard(e){let i=e.replace(/\s*\|\s*/g,", ");return i=i.replace(/\bbool\b/g,"Boolean"),i=i.replace(/(^|,\s*)nil(?:,\s*nil)+(?=,|\]|$)/g,"$1nil"),i=i.replace(/Hash\[untyped,\s*untyped\]/g,"Hash"),i}get parameters(){return[...this.positionalParameters,...this.keywordParameters,this.positionalSplatParameter,this.keywordSplatParameter,this.yieldParameter].flatMap(e=>e!==void 0?e:[])}};c();m();d();var Z=class l extends B{constructor({name:e,namespace:i,typeParameters:s,docstring:p,statements:a}){super();y(this,"name");y(this,"namespace");y(this,"typeParameters");y(this,"docstring");y(this,"statements");this.name=e,this.namespace=i??new Set,this.typeParameters=s??[],this.docstring=p,this.statements=a??[],this.populateChildNamespaces()}addStatement(e){this.statements.push(e)}write(e){this.docstring&&new X({docs:this.docstring}).write(e),e.write(`module ${this.name}`),this.statements.length?(e.newLine(),e.indent(),this.statements.forEach((i,s)=>{i.write(e),s<this.statements.length-1&&e.newLine()}),e.writeNewLineIfLastLineNot(),e.dedent(),e.write("end")):e.write("; end"),e.newLine()}writeTypeDefinition(e){e.write(`module ${this.name}`),this.typeParameters.length&&(e.write("["),e.delimit({nodes:this.typeParameters,delimiter:", ",writeFunction:i=>i.writeTypeDefinition(e)}),e.write("]")),e.newLine(),this.statements.length&&(e.indent(),this.statements.forEach(i=>{i.writeTypeDefinition(e),e.newLine()}),e.dedent()),e.write("end")}populateChildNamespaces(){this.statements.filter(e=>e instanceof l||e instanceof ee).forEach(e=>{e.namespace=new Set([...this.namespace,this]),e.populateChildNamespaces()})}get fullyQualifiedNamespace(){return[...this.namespace,this].map(e=>e.name).join("::")}};var ee=class extends Z{constructor({name:e,superclass:i,typeParameters:s,docstring:p,statements:a}){super({name:e,docstring:p,typeParameters:s});y(this,"superclass");y(this,"statements");y(this,"methods",[]);this.superclass=i,this.statements=a??[]}addStatement(e){this.statements.push(e)}addStatements(e){this.statements.push(...e)}addInstanceMethod(e,i,s){let p=new Q({name:e,kind:ue.Instance,returnType:i,statements:s});this.addMethod(p)}addMethod(e){this.methods.push(e)}addMethods(e){e.forEach(i=>this.addMethod(i))}write(e){if(this.docstring&&new X({docs:this.docstring}).write(e),e.write(`class ${this.name}`),this.superclass&&(e.write(" < "),this.superclass.write(e)),!this.hasBody()){e.writeLine("; end");return}(this.statements.length||this.methods.length)&&(e.newLine(),e.indent(),this.statements.forEach((i,s)=>{i.write(e),e.writeNewLineIfLastLineNot(),s<this.statements.length-1&&e.newLine()}),this.methods.forEach((i,s)=>{(s>0||this.statements.length>0)&&e.newLine(),i.write(e)}),e.dedent()),e.writeLine("end")}hasBody(){return this.statements.length>0||this.methods.length>0}writeTypeDefinition(e){e.write(`class ${this.name}`),this.typeParameters.length&&(e.write("["),e.delimit({nodes:this.typeParameters,delimiter:", ",writeFunction:i=>i.writeTypeDefinition(e)}),e.write("]")),this.superclass&&(e.write(" < "),this.superclass.write(e)),e.newLine(),this.statements.length&&(e.indent(),this.statements.forEach(i=>{i.writeTypeDefinition(e),e.newLine()}),e.dedent()),e.write("end")}};var $e=class extends B{constructor({if:e,elseIf:i,elseBody:s,negated:p}){super();y(this,"ifBranch");y(this,"elseIfs");y(this,"elseBody");y(this,"negated");if(this.ifBranch=e,this.elseIfs=i??[],this.elseBody=s?Array.isArray(s)?s:[s]:void 0,this.negated=p??!1,this.negated&&this.elseIfs.length>0)throw new Error("Ruby has no `elsunless`; a negated IfElse cannot have elseIf branches")}write(e){let i=this.renderAsModifier(e);if(i!=null){e.write(i),e.writeNewLineIfLastLineNot();return}e.write(this.negated?"unless ":"if "),this.ifBranch.condition.write(e),e.writeLine(),e.indent();for(let s of this.ifBranch.thenBody)s.write(e),e.writeNewLineIfLastLineNot();e.dedent();for(let s of this.elseIfs){e.write("elsif "),s.condition.write(e),e.writeLine(),e.indent();for(let p of s.thenBody)p.write(e),e.writeNewLineIfLastLineNot();e.dedent()}if(this.elseBody&&this.elseBody.length>0){e.writeLine("else"),e.indent();for(let s of this.elseBody)s.write(e),e.writeNewLineIfLastLineNot();e.dedent()}e.write("end"),e.writeNewLineIfLastLineNot()}renderAsModifier(e){if(this.ifBranch.thenBody.length!==1||this.elseIfs.length>0||this.elseBody!=null&&this.elseBody.length>0)return;let i=this.ifBranch.thenBody[0];if(i==null||Un(i)||Un(this.ifBranch.condition))return;let s=Mn(i,e),p=Mn(this.ifBranch.condition,e);if(!(s.length===0||p.length===0)&&!(s.includes(`
23
23
  `)||p.includes(`
24
24
  `)))return`${s} ${this.negated?"unless":"if"} ${p}`}};function Un(l){return l instanceof ee||l instanceof Z||l instanceof Q||l instanceof ke||l instanceof $e}function Mn(l,t){return l.toString({customConfig:t.customConfig,formatter:t.formatter}).replace(/\n+$/,"")}c();m();d();c();m();d();var he=class extends B{constructor({classReference:e,arguments_:i}){super();y(this,"classReference");y(this,"arguments_");this.classReference=e,this.arguments_=i}write(e){e.writeNode(this.classReference),e.write("."),e.write("new"),this.arguments_.length!==0&&(e.write("("),this.arguments_.length>1?(e.indent(),e.newLine(),this.arguments_.forEach((i,s)=>{s>0&&(e.write(","),e.newLine()),i.write(e)}),e.newLine(),e.dedent()):this.arguments_.forEach((i,s)=>{s>0&&e.write(", "),i.write(e)}),e.write(")"))}};c();m();d();var ye=class extends B{constructor(e){super();y(this,"arg");this.arg=e}write(e){return new J(this.arg).write(e)}};c();m();d();var ge=class extends B{constructor({name:e,value:i}){super();y(this,"name");y(this,"value");this.name=e,this.value=i}write(e){e.write(`${this.name}: `),this.value.write(e)}};c();m();d();c();m();d();var G=class extends B{constructor({name:e,type:i,optional:s,docs:p}){super();y(this,"name");y(this,"type");y(this,"optional");y(this,"docs");this.name=e,this.type=i??ae.untyped(),this.optional=s??!1,this.docs=p}};var xe=class extends G{constructor({name:e,type:i,initializer:s,optional:p}){super({name:e,type:i,optional:p});y(this,"initializer");this.initializer=s}write(e){e.write(`${this.name}:`),this.initializer&&(e.write(" "),e.writeNode(this.initializer))}writeTypeDefinition(e){this.optional&&e.write("?"),e.write(`${this.name}: `),this.type.writeTypeDefinition(e)}};c();m();d();var Ve=class extends G{constructor(){super(...arguments);y(this,"initializer")}write(e){e.write(`**${this.name}`)}writeTypeDefinition(e){e.write("**"),this.type.writeTypeDefinition(e)}};c();m();d();var we=class extends B{constructor({on:e,method:i,arguments_:s,keywordArguments:p,block:a,safeNavigation:w}){super();y(this,"on");y(this,"method");y(this,"arguments_");y(this,"keywordArguments");y(this,"block");y(this,"safeNavigation");this.on=e,this.method=i,this.arguments_=s,this.keywordArguments=p,this.block=a,this.safeNavigation=w??!1}write(e){this.on.write(e),e.write(this.safeNavigation?"&.":"."),e.write(this.method);let i=[];for(let s of this.arguments_)i.push({kind:"positional",node:s});for(let s of this.keywordArguments||[])i.push({kind:"keyword",arg:s});if(i.length>0&&(e.write("("),i.length>1?(e.indent(),e.newLine(),i.forEach((s,p)=>{p>0&&(e.write(","),e.newLine()),On(e,s)}),e.newLine(),e.dedent()):i.forEach((s,p)=>{p>0&&e.write(", "),On(e,s)}),e.write(")")),this.block){let[s,p]=this.block;e.write(" do"),s.length>0&&(e.write(" |"),s.forEach((a,w)=>{w>0&&e.write(", "),e.write(a)}),e.write("|")),e.newLine(),e.indent();for(let a of p)a.write(e),e.writeNewLineIfLastLineNot();e.dedent(),e.write("end")}}};function On(l,t){switch(t.kind){case"positional":t.node.write(l);break;case"keyword":t.arg.write(l);break;default:L(t)}}c();m();d();var je=class extends B{constructor({value:e}){super();y(this,"value");this.value=e}write(e){this.value.write(e)}};c();m();d();var qe=class extends G{constructor({name:e,type:i,optional:s,initializer:p}){super({name:e,type:i,optional:s});y(this,"initializer");this.initializer=p}write(e){e.write(this.name),this.initializer&&e.write(` = ${this.initializer.write(e)}`)}writeTypeDefinition(e){this.optional&&e.write("?"),this.type.writeTypeDefinition(e)}};c();m();d();var We=class extends G{write(t){t.write(`*${this.name}`)}writeTypeDefinition(t){t.write("*"),this.type.writeTypeDefinition(t)}};c();m();d();var Ne=class l extends B{constructor(e){super();y(this,"internalType");this.internalType=e}getDedupKey(){switch(this.internalType.type){case"str":return`str:${this.internalType.value}`;case"interpolatedStr":return`istr:${this.internalType.value}`;case"int":return`int:${this.internalType.value}`;case"float":return`float:${this.internalType.value}`;case"bool":return`bool:${this.internalType.value}`;case"nil":return"nil";default:return}}static string(e){return new this({type:"str",value:e})}static interpolatedString(e){return new this({type:"interpolatedStr",value:e})}static integer(e){return new this({type:"int",value:e})}static float(e){return new this({type:"float",value:e})}static boolean(e){return new this({type:"bool",value:e})}static hash(e){return new this({type:"hash",entries:e})}static set(e){return new this({type:"set",values:e})}static list(e){return new this({type:"list",values:e})}static nop(){return new this({type:"nop"})}static nil(){return new this({type:"nil"})}static unknown(e){return new this({type:"unknown",value:e})}static isNop(e){return e instanceof l&&e.internalType.type==="nop"}static isNil(e){return e instanceof l&&e.internalType.type==="nil"}write(e){switch(this.internalType.type){case"str":{let i=this.internalType.value.replaceAll(`\r