@fern-api/ruby-dynamic-snippets 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
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={};ct(g,{AstNode:()=>B,ClassInstantiation:()=>he,ClassReference:()=>se,Class_:()=>ee,CodeBlock:()=>ye,KeywordArgument:()=>ge,KeywordParameter:()=>xe,Method:()=>Q,MethodInvocation:()=>we,MethodKind:()=>ue,Module_:()=>Z,Parameter:()=>W,Type:()=>ae,TypeLiteral:()=>Ne,TypeParameter:()=>be,Writer:()=>Y,begin:()=>Bo,classReference:()=>Ao,class_:()=>xo,codeblock:()=>it,comment:()=>vo,falseValue:()=>ho,ifElse:()=>Ro,instantiateClass:()=>Eo,invokeMethod:()=>ko,keywordArgument:()=>Io,method:()=>bo,module:()=>wo,nilValue:()=>yo,parameters:()=>go,positionalArgument:()=>No,raise:()=>Lo,trueValue:()=>mo,typeParameter:()=>To,wrapInModules:()=>So});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 fo=120,co=2,X=class extends B{constructor({docs:e}){super();y(this,"docs");this.docs=e}write(e){this.docs!=null&&this.docs.split(`
|
|
21
|
-
`).forEach(i=>{this.wrapLine(i,e).forEach(p=>{e.writeLine(`# ${p}`)})})}wrapLine(e,i){let s=i.currentIndentLevel*2,p=fo-s-co;if(e.length<=p)return[e];if(p<20)return[e];let a=e.split(/(\s+)/),b=[],w="";for(let I of a){if(I===""||w===""&&/^\s+$/.test(I))continue;let k=w+I;k.length<=p?w=k:(w.trim()!==""&&b.push(w.trimEnd()),w=I.trimStart(),w.length>p&&(b.push(w),w=""))}return w.trim()!==""&&b.push(w.trimEnd()),b.length===0?[e]:b}};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"},Fn={Public:"public",Private:"private",Protected:"protected"},Q=class extends B{constructor({name:e,docstring:i,kind:s,visibility:p,parameters:a,returnType:b,statements:w,splatOptionDocs:I}){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");this.name=e,this.docstring=i,this.kind=s??ue.Instance,this.visibility=p??Fn.Public,this.positionalParameters=a?.positional??[],this.keywordParameters=a?.keyword??[],this.positionalSplatParameter=a?.positionalSplat,this.keywordSplatParameter=a?.keywordSplat,this.yieldParameter=a?.yield,this.returnType=b??ae.untyped(),this.statements=w??[],this.splatOptionDocs=I??[]}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 s of this.positionalParameters){e.write(`# @option ${s.name} [`);let p=new Y({customConfig:e.customConfig});s.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),e.newLine()}for(let s of this.keywordParameters){e.write(`# @param ${s.name} [`);let p=new Y({customConfig:e.customConfig});s.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),s.docs&&e.write(` ${s.docs}`),e.newLine()}if(this.keywordSplatParameter!=null){e.write(`# @param ${this.keywordSplatParameter.name} [`);let s=new Y({customConfig:e.customConfig});this.keywordSplatParameter.type.writeTypeDefinition(s),e.write(this.normalizeForYard(s.toString())),e.write("]"),this.keywordSplatParameter.docs&&e.write(` ${this.keywordSplatParameter.docs}`),e.newLine()}for(let s of this.splatOptionDocs)e.writeLine(`# ${s}`);if(this.returnType!=null){(i||this.docstring)&&e.writeLine("#"),e.write("# @return [");let s=new Y({customConfig:e.customConfig});this.returnType.writeTypeDefinition(s),e.write(this.normalizeForYard(s.toString())),e.write("]"),e.newLine()}switch(this.visibility!==Fn.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:s=>s.write(e)}),e.write(")")),this.statements.length?(e.newLine(),e.indent(),this.statements.forEach((s,p)=>{s.write(e),p<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}){super();y(this,"ifBranch");y(this,"elseIfs");y(this,"elseBody");this.ifBranch=e,this.elseIfs=i??[],this.elseBody=s?Array.isArray(s)?s:[s]:void 0}write(e){let i=this.renderAsModifier(e);if(i!=null){e.write(i),e.writeNewLineIfLastLineNot();return}e.write("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||Pn(i)||Pn(this.ifBranch.condition))return;let s=Un(i,e),p=Un(this.ifBranch.condition,e);if(!(s.length===0||p.length===0)&&!(s.includes(`
|
|
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=fo-s-co;if(e.length<=p)return[e];if(p<20)return[e];let a=e.split(/(\s+)/),b=[],w="";for(let I of a){if(I===""||w===""&&/^\s+$/.test(I))continue;let k=w+I;k.length<=p?w=k:(w.trim()!==""&&b.push(w.trimEnd()),w=I.trimStart(),w.length>p&&(b.push(w),w=""))}return w.trim()!==""&&b.push(w.trimEnd()),b.length===0?[e]:b}};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"},Fn={Public:"public",Private:"private",Protected:"protected"},Q=class extends B{constructor({name:e,docstring:i,kind:s,visibility:p,parameters:a,returnType:b,statements:w,splatOptionDocs:I}){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");this.name=e,this.docstring=i,this.kind=s??ue.Instance,this.visibility=p??Fn.Public,this.positionalParameters=a?.positional??[],this.keywordParameters=a?.keyword??[],this.positionalSplatParameter=a?.positionalSplat,this.keywordSplatParameter=a?.keywordSplat,this.yieldParameter=a?.yield,this.returnType=b??ae.untyped(),this.statements=w??[],this.splatOptionDocs=I??[]}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 s of this.positionalParameters){e.write(`# @option ${s.name} [`);let p=new Y({customConfig:e.customConfig});s.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),e.newLine()}for(let s of this.keywordParameters){e.write(`# @param ${s.name} [`);let p=new Y({customConfig:e.customConfig});s.type.writeTypeDefinition(p),e.write(this.normalizeForYard(p.toString())),e.write("]"),s.docs&&e.write(` ${s.docs}`),e.newLine()}if(this.keywordSplatParameter!=null){e.write(`# @param ${this.keywordSplatParameter.name} [`);let s=new Y({customConfig:e.customConfig});this.keywordSplatParameter.type.writeTypeDefinition(s),e.write(this.normalizeForYard(s.toString())),e.write("]"),this.keywordSplatParameter.docs&&e.write(` ${this.keywordSplatParameter.docs}`),e.newLine()}for(let s of this.splatOptionDocs)e.writeLine(`# ${s}`);if(this.returnType!=null){(i||this.docstring)&&e.writeLine("#"),e.write("# @return [");let s=new Y({customConfig:e.customConfig});this.returnType.writeTypeDefinition(s),e.write(this.normalizeForYard(s.toString())),e.write("]"),e.newLine()}switch(this.visibility!==Fn.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:s=>s.write(e)}),e.write(")")),this.statements.length?(e.newLine(),e.indent(),this.statements.forEach((s,p)=>{s.write(e),p<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}){super();y(this,"ifBranch");y(this,"elseIfs");y(this,"elseBody");this.ifBranch=e,this.elseIfs=i??[],this.elseBody=s?Array.isArray(s)?s:[s]:void 0}write(e){let i=this.renderAsModifier(e);if(i!=null){e.write(i),e.writeNewLineIfLastLineNot();return}e.write("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||Pn(i)||Pn(this.ifBranch.condition))return;let s=Un(i,e),p=Un(this.ifBranch.condition,e);if(!(s.length===0||p.length===0)&&!(s.includes(`
|
|
22
22
|
`)||p.includes(`
|
|
23
23
|
`)))return`${s} if ${p}`}};function Pn(l){return l instanceof ee||l instanceof Z||l instanceof Q||l instanceof ke||l instanceof _e}function Un(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 W=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 W{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 je=class extends W{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}){super();y(this,"on");y(this,"method");y(this,"arguments_");y(this,"keywordArguments");y(this,"block");this.on=e,this.method=i,this.arguments_=s,this.keywordArguments=p,this.block=a}write(e){this.on.write(e),e.write("."),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&&this.block==null)&&(e.write("("),i.length>1?(e.indent(),e.newLine(),i.forEach((s,p)=>{p>0&&(e.write(","),e.newLine()),Mn(e,s)}),e.newLine(),e.dedent()):i.forEach((s,p)=>{p>0&&e.write(", "),Mn(e,s)}),e.write(")"),this.block)){let[s,p]=this.block;e.write(" do"),s.length>0&&(e.write(" |"),s.forEach((a,b)=>{b>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 Mn(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 Ve=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 W{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 W{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 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
|
|
24
24
|
`,`
|