@kumori/kdsl 0.0.6 → 0.0.7
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/out/main.cjs +26 -24
- package/package.json +1 -1
package/out/main.cjs
CHANGED
|
@@ -210,30 +210,12 @@ ${r}`),this.inline?`{${i}}`:i}};function fte(t,e,r){var n,i;if(t==="linkplain"||
|
|
|
210
210
|
|
|
211
211
|
`}var Mh=class{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&$h(r))return Lh(r).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,r,n){var i;let s=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(s&&s.nameSegment){let o=s.nameSegment.range.start.line+1,a=s.nameSegment.range.start.character+1,c=s.documentUri.with({fragment:`L${o},${a}`});return`[${n}](${c.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=dn(e).precomputedScopes;if(!i)return;let s=e;do{let a=i.get(s).find(c=>c.name===r);if(a)return a;s=s.$container}while(s)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}};var Fh=class{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return Th(e)?e.$comment:(r=pm(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}};var Vh=class{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,r){return Promise.resolve(this.syncParser.parse(e))}},O9=class{constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new qn,s,o=r.onCancellationRequested(()=>{s=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(a=>{let c=this.hydrator.hydrate(a);i.resolve(c)}).catch(a=>{i.reject(a)}).finally(()=>{o.dispose(),clearTimeout(s)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new qn;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Vo)}),this.queue.push(r),r.promise}},I9=class{get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new Er.Emitter,this.deferred=new qn,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(s=>{let o=s;this.deferred.resolve(o),this.unlock()}),n(s=>{this.deferred.reject(s),this.unlock()})}terminate(){this.deferred.reject(Vo),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new qn,this.sendMessage(e),this.deferred.promise}};var Mu=class{constructor(){this.previousTokenSource=new ye.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=A2();return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n=ye.CancellationToken.None){let i=new qn,s={action:r,deferred:i,cancellationToken:n};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let s=await Promise.resolve().then(()=>r(i));n.resolve(s)}catch(s){jo(s)?n.resolve(void 0):n.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}};var jh=class{constructor(e){this.grammarElementIdMap=new Ru,this.tokenTypeIdMap=new Ru,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(r=>Object.assign(Object.assign({},r),{message:r.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Pi(e))r.set(i,{});if(e.$cstNode)for(let i of nu(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let o=[];n[i]=o;for(let a of s)It(a)?o.push(this.dehydrateAstNode(a,r)):Vn(a)?o.push(this.dehydrateReference(a,r)):o.push(a)}else It(s)?n[i]=this.dehydrateAstNode(s,r):Vn(s)?n[i]=this.dehydrateReference(s,r):s!==void 0&&(n[i]=s);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return lm(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),to(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):Qa(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let s of Pi(e))r.set(s,{});let i;if(e.$cstNode)for(let s of nu(e.$cstNode)){let o;"fullText"in s?(o=new Ad(s.fullText),i=o):"content"in s?o=new Cu:"tokenType"in s&&(o=this.hydrateCstLeafNode(s)),o&&(n.set(s,o),o.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let o=[];n[i]=o;for(let a of s)It(a)?o.push(this.setParent(this.hydrateAstNode(a,r),n)):Vn(a)?o.push(this.hydrateReference(a,n,i,r)):o.push(a)}else It(s)?n[i]=this.setParent(this.hydrateAstNode(s,r),n):Vn(s)?n[i]=this.hydrateReference(s,n,i,r):s!==void 0&&(n[i]=s);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),to(i))for(let s of e.content){let o=this.hydrateCstNode(s,r,n++);i.content.push(o)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,s=e.startLine,o=e.startColumn,a=e.endLine,c=e.endColumn,u=e.hidden;return new Tu(n,i,{start:{line:s,character:o},end:{line:a,character:c}},r,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let r of Pi(this.grammar))au(r)&&this.grammarElementIdMap.set(r,e++)}};function Uh(t){return{documentation:{CommentProvider:e=>new Fh(e),DocumentationProvider:e=>new Mh(e)},parser:{AsyncParser:e=>new Vh(e),GrammarConfig:e=>d6(e),LangiumParser:e=>y9(e),CompletionParser:e=>g9(e),ValueConverter:()=>new ph,TokenBuilder:()=>new wu,Lexer:e=>new $u(e),ParserErrorMessageProvider:()=>new Rd,LexerErrorMessageProvider:()=>new Oh},workspace:{AstNodeLocator:()=>new Rh,AstNodeDescriptionProvider:e=>new wh(e),ReferenceDescriptionProvider:e=>new Ah(e)},references:{Linker:e=>new yh(e),NameProvider:()=>new vh,ScopeProvider:e=>new Sh(e),ScopeComputation:e=>new _h(e),References:e=>new xh(e)},serializer:{Hydrator:e=>new jh(e),JsonSerializer:e=>new Eh(e)},validation:{DocumentValidator:e=>new Iu(e),ValidationRegistry:e=>new kh(e)},shared:()=>t.shared}}function qh(t){return{ServiceRegistry:e=>new Ch(e),workspace:{LangiumDocuments:e=>new gh(e),LangiumDocumentFactory:e=>new hh(e),DocumentBuilder:e=>new Du(e),IndexManager:e=>new Lu(e),WorkspaceManager:e=>new Nh(e),FileSystemProvider:e=>t.fileSystemProvider(e),WorkspaceLock:()=>new Mu,ConfigurationProvider:e=>new Ph(e)}}}var Ld;(function(t){t.merge=(e,r)=>M2(M2({},e),r)})(Ld||(Ld={}));function Fu(t,e,r,n,i,s,o,a,c){let u=[t,e,r,n,i,s,o,a,c].reduce(M2,{});return OA(u)}var NA=Symbol("isProxy");function Bh(t){if(t&&t[NA])for(let e of Object.values(t))Bh(e);return t}function OA(t,e){let r=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(n,i)=>i===NA?!0:PA(n,i,t,e||r),getOwnPropertyDescriptor:(n,i)=>(PA(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),has:(n,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return r}var RA=Symbol();function PA(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===RA)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=RA;try{t[e]=typeof i=="function"?i(n):OA(i,n)}catch(s){throw t[e]=s instanceof Error?s:void 0,s}return t[e]}else return}function M2(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=M2(i,n):t[r]=n}}return t}var D9={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]},Vu;(function(t){t.REGULAR="indentation-sensitive",t.IGNORE_INDENTATION="ignore-indentation"})(Vu||(Vu={}));var F2=class extends wu{constructor(e=D9){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options=Object.assign(Object.assign({},D9),e),this.indentTokenType=pc({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=pc({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,r){let n=super.buildTokens(e,r);if(!D2(n))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:s,whitespaceTokenName:o,ignoreIndentationDelimiters:a}=this.options,c,u,f,l=[];for(let p of n){for(let[d,h]of a)p.name===d?p.PUSH_MODE=Vu.IGNORE_INDENTATION:p.name===h&&(p.POP_MODE=!0);p.name===s?c=p:p.name===i?u=p:p.name===o?f=p:l.push(p)}if(!c||!u||!f)throw new Error("Some indentation/whitespace tokens not found!");return a.length>0?{modes:{[Vu.REGULAR]:[c,u,...l,f],[Vu.IGNORE_INDENTATION]:[...l,f]},defaultMode:Vu.REGULAR}:[c,u,f,...l]}flushLexingReport(e){let r=super.flushLexingReport(e);return Object.assign(Object.assign({},r),{remainingDedents:this.flushRemainingDedents(e)})}isStartOfLine(e,r){return r===0||`\r
|
|
212
212
|
`.includes(e[r-1])}matchWhitespace(e,r,n,i){var s;this.whitespaceRegExp.lastIndex=r;let o=this.whitespaceRegExp.exec(e);return{currIndentLevel:(s=o==null?void 0:o[0].length)!==null&&s!==void 0?s:0,prevIndentLevel:this.indentationStack.at(-1),match:o}}createIndentationTokenInstance(e,r,n,i){let s=this.getLineNumber(r,i);return _a(e,n,i,i+n.length,s,s,1,n.length)}getLineNumber(e,r){return e.substring(0,r).split(/\r\n|\r|\n/).length}indentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:s,prevIndentLevel:o,match:a}=this.matchWhitespace(e,r,n,i);return s<=o?null:(this.indentationStack.push(s),a)}dedentMatcher(e,r,n,i){var s,o,a,c;if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:u,prevIndentLevel:f,match:l}=this.matchWhitespace(e,r,n,i);if(u>=f)return null;let p=this.indentationStack.lastIndexOf(u);if(p===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${u} at offset: ${r}. Current indentation stack: ${this.indentationStack}`,offset:r,length:(o=(s=l==null?void 0:l[0])===null||s===void 0?void 0:s.length)!==null&&o!==void 0?o:0,line:this.getLineNumber(e,r),column:1}),null;let d=this.indentationStack.length-p-1,h=(c=(a=e.substring(0,r).match(/[\r\n]+$/))===null||a===void 0?void 0:a[0].length)!==null&&c!==void 0?c:1;for(let g=0;g<d;g++){let v=this.createIndentationTokenInstance(this.dedentTokenType,e,"",r-(h-1));n.push(v),this.indentationStack.pop()}return null}buildTerminalToken(e){let r=super.buildTerminalToken(e),{indentTokenName:n,dedentTokenName:i,whitespaceTokenName:s}=this.options;return r.name===n?this.indentTokenType:r.name===i?this.dedentTokenType:r.name===s?pc({name:s,pattern:this.whitespaceRegExp,group:Nr.SKIPPED}):r}flushRemainingDedents(e){let r=[];for(;this.indentationStack.length>1;)r.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],r}},L9=class extends $u{constructor(e){if(super(e),e.parser.TokenBuilder instanceof F2)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,r=I2){let n=super.tokenize(e),i=n.report;(r==null?void 0:r.mode)==="full"&&n.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:s,dedentTokenType:o}=this.indentationTokenBuilder,a=s.tokenTypeIdx,c=o.tokenTypeIdx,u=[],f=n.tokens.length-1;for(let l=0;l<f;l++){let p=n.tokens[l],d=n.tokens[l+1];if(p.tokenTypeIdx===a&&d.tokenTypeIdx===c){l++;continue}u.push(p)}return f>=0&&u.push(n.tokens[f]),n.tokens=u,n}};var Vt={};ua(Vt,{AstUtils:()=>Fe,BiMap:()=>Ru,Cancellation:()=>ye,ContextCache:()=>Nu,CstUtils:()=>Kg,DONE_RESULT:()=>Qn,Deferred:()=>qn,Disposable:()=>bc,DisposableCache:()=>Dd,DocumentCache:()=>N2,EMPTY_STREAM:()=>fm,ErrorWithLocation:()=>su,GrammarUtils:()=>n0,MultiMap:()=>On,OperationCancelled:()=>Vo,Reduction:()=>Wl,RegExpUtils:()=>t0,SimpleCache:()=>bh,StreamImpl:()=>ns,TreeStreamImpl:()=>bo,URI:()=>De,UriUtils:()=>ee,WorkspaceCache:()=>nr,assertUnreachable:()=>Eo,delayNextTick:()=>T9,interruptAndCheck:()=>it,isOperationCancelled:()=>jo,loadGrammarFromJson:()=>j2,setInterruptionPeriod:()=>hA,startCancelableOperation:()=>A2,stream:()=>nt});Ot(Vt,Er);var V2=class{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},$9={fileSystemProvider:()=>new V2};var pte={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},mte={AstReflection:()=>new If};function hte(){let t=Fu(qh($9),mte),e=Fu(Uh({shared:t}),pte);return t.ServiceRegistry.register(e),e}function j2(t){var e;let r=hte(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,De.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}Ot(be,Vt);var IA="ArtifactStatement";var DA="Expression";var LA="LibraryStatement";var U9="Model";function d1(t){return bt.isInstance(t,U9)}var Hh="TerminalExpression";var $A="TypeDefinition";var M9="TypeRef";var U2="UnaryTypeDefinition";var zh="AdditionExpression";function K2(t){return bt.isInstance(t,zh)}var q2="ArtifactExpression";function Md(t){return bt.isInstance(t,q2)}var Wh="ArtifactName";function G2(t){return bt.isInstance(t,Wh)}var B2="ArtifactVariable";function Fd(t){return bt.isInstance(t,B2)}var Kh="ArtifactVariables";function zu(t){return bt.isInstance(t,Kh)}var Gh="BooleanLiteralExpression";function Vd(t){return bt.isInstance(t,Gh)}var xi="BuiltinArtifact";function Ta(t){return bt.isInstance(t,xi)}var qr="ComponentArtifact";function Ca(t){return bt.isInstance(t,qr)}var ti="DeploymentArtifact";function Bn(t){return bt.isInstance(t,ti)}var Jh="EqualityComparisonExpression";function J2(t){return bt.isInstance(t,Jh)}var Qh="FunctionCallExpression";function Q2(t){return bt.isInstance(t,Qh)}var ju="FunctionDefinitionExpression";function Y2(t){return bt.isInstance(t,ju)}var H2="FunctionParam";function MA(t){return bt.isInstance(t,H2)}var $d="IdentifierExpression";function ri(t){return bt.isInstance(t,$d)}var z2="Import";function jd(t){return bt.isInstance(t,z2)}var Yh="IncrementExpression";function Z2(t){return bt.isInstance(t,Yh)}var F9="Library";var V9="LibraryBody";var Zh="ListExpression";function X2(t){return bt.isInstance(t,Zh)}var Xh="ListTypeDefinition";function FA(t){return bt.isInstance(t,Xh)}var e1="LogicalANDExpression";function e3(t){return bt.isInstance(t,e1)}var t1="LogicalORExpression";function t3(t){return bt.isInstance(t,t1)}var r1="MultiplicationExpression";function r3(t){return bt.isInstance(t,r1)}var n1="NumberLiteralExpression";function Ud(t){return bt.isInstance(t,n1)}var i1="OrderedComparisonExpression";function n3(t){return bt.isInstance(t,i1)}var Ps="Package";function q9(t){return bt.isInstance(t,Ps)}var W2="PackageDeclaration";function VA(t){return bt.isInstance(t,W2)}var on="ServiceArtifact";function Ns(t){return bt.isInstance(t,on)}var s1="SizeLiteralExpression";function qd(t){return bt.isInstance(t,s1)}var o1="StringLiteralExpression";function Bd(t){return bt.isInstance(t,o1)}var a1="StructEntry";function zr(t){return bt.isInstance(t,a1)}var Uu="StructExpression";function _i(t){return bt.isInstance(t,Uu)}var qu="StructTypeDefinition";function jA(t){return bt.isInstance(t,qu)}var j9="StructTypeDefinitionEntry";var c1="TernaryExpression";function i3(t){return bt.isInstance(t,c1)}var Bu="TypeAliasExpression";function Wu(t){return bt.isInstance(t,Bu)}var Hu="TypeDefinitionExpression";function Ku(t){return bt.isInstance(t,Hu)}var u1="UnaryExpression";function s3(t){return bt.isInstance(t,u1)}var l1="UnionTypeDefinition";function o3(t){return bt.isInstance(t,l1)}var f1=class extends ru{getAllTypes(){return[zh,q2,Wh,IA,B2,Kh,Gh,xi,qr,ti,Jh,DA,Qh,ju,H2,$d,z2,Yh,F9,V9,LA,Zh,Xh,e1,t1,U9,r1,n1,i1,Ps,W2,on,s1,o1,a1,Uu,qu,j9,Hh,c1,Bu,$A,Hu,M9,u1,U2,l1]}computeIsSubtype(e,r){switch(e){case zh:case Jh:case Qh:case Yh:case e1:case t1:case r1:case i1:case Hh:case c1:case u1:return this.isSubtype(DA,r);case Kh:case a1:return this.isSubtype(IA,r);case Gh:case n1:case s1:case o1:return this.isSubtype(Hh,r)||this.isSubtype(U2,r);case ju:case Bu:case Hu:return this.isSubtype(LA,r);case $d:return this.isSubtype(Hh,r)||this.isSubtype(M9,r);case Zh:case Uu:return this.isSubtype(Hh,r);case Xh:case qu:case U2:case l1:return this.isSubtype($A,r);case Ps:return this.isSubtype(U9,r);case M9:return this.isSubtype(U2,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"ArtifactName:value":return Wh;case"IdentifierExpression:value":return $d;case"Import:target":return Ps;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case zh:return{name:zh,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case q2:return{name:q2,properties:[{name:"stmt",defaultValue:[]}]};case Wh:return{name:Wh,properties:[{name:"value"}]};case B2:return{name:B2,properties:[{name:"key"},{name:"value"}]};case Kh:return{name:Kh,properties:[{name:"variables",defaultValue:[]}]};case Gh:return{name:Gh,properties:[{name:"value"}]};case xi:return{name:xi,properties:[{name:"body"},{name:"name"}]};case qr:return{name:qr,properties:[{name:"body"},{name:"name"}]};case ti:return{name:ti,properties:[{name:"body"}]};case Jh:return{name:Jh,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case Qh:return{name:Qh,properties:[{name:"arguments",defaultValue:[]},{name:"caller"}]};case ju:return{name:ju,properties:[{name:"name"},{name:"params",defaultValue:[]},{name:"returns"}]};case H2:return{name:H2,properties:[{name:"name"},{name:"optional",defaultValue:!1},{name:"type"}]};case $d:return{name:$d,properties:[{name:"next"},{name:"value"}]};case z2:return{name:z2,properties:[{name:"alias"},{name:"target"}]};case Yh:return{name:Yh,properties:[{name:"operator"},{name:"target"}]};case F9:return{name:F9,properties:[{name:"body"}]};case V9:return{name:V9,properties:[{name:"statements",defaultValue:[]}]};case Zh:return{name:Zh,properties:[{name:"values",defaultValue:[]}]};case Xh:return{name:Xh,properties:[{name:"value"}]};case e1:return{name:e1,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case t1:return{name:t1,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case r1:return{name:r1,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case n1:return{name:n1,properties:[{name:"value"}]};case i1:return{name:i1,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case Ps:return{name:Ps,properties:[{name:"artifacts",defaultValue:[]},{name:"declaration"},{name:"imports",defaultValue:[]},{name:"library"}]};case W2:return{name:W2,properties:[{name:"name"}]};case on:return{name:on,properties:[{name:"body"},{name:"name"}]};case s1:return{name:s1,properties:[{name:"value"}]};case o1:return{name:o1,properties:[{name:"value"}]};case a1:return{name:a1,properties:[{name:"key"},{name:"optional",defaultValue:!1},{name:"type"},{name:"value"}]};case Uu:return{name:Uu,properties:[{name:"entries",defaultValue:[]}]};case qu:return{name:qu,properties:[{name:"entries",defaultValue:[]},{name:"open",defaultValue:!1},{name:"restriction"}]};case j9:return{name:j9,properties:[{name:"key"},{name:"optional",defaultValue:!1},{name:"type"}]};case c1:return{name:c1,properties:[{name:"condition"},{name:"falseExpr"},{name:"trueExpr"}]};case Bu:return{name:Bu,properties:[{name:"name"},{name:"value"}]};case Hu:return{name:Hu,properties:[{name:"name"},{name:"value"}]};case u1:return{name:u1,properties:[{name:"left"},{name:"operator"}]};case l1:return{name:l1,properties:[{name:"left"},{name:"right"}]};default:return{name:e,properties:[]}}}},bt=new f1;var up=ke(Ui(),1);function L7(t,e){let r={stacks:t,tokens:e};return Sne(r),r.stacks.flat().forEach(i=>{i.property=void 0}),oI(r.stacks).map(i=>i[i.length-1])}function $7(t){let{next:e,cardinalities:r,visited:n,plus:i}=t,s=[],o=e.feature;if(n.has(o))return[];ks(o)||n.add(o);let a,c=o;for(;c.$container;)if(ks(c.$container)){a=c.$container;break}else if(au(c.$container))c=c.$container;else break;if(u6(c.cardinality)){let u=cp({next:{feature:c,type:e.type},cardinalities:r,visited:n,plus:i});for(let f of u)i.add(f.feature);s.push(...u)}if(a){let u=a.elements.indexOf(c);u!==void 0&&u<a.elements.length-1&&s.push(...sI({feature:a,type:e.type},u+1,r,n,i)),s.every(f=>mu(f.feature.cardinality,f.feature)||mu(r.get(f.feature))||i.has(f.feature))&&s.push(...$7({next:{feature:a,type:e.type},cardinalities:r,visited:n,plus:i}))}return s}function _y(t){return It(t)&&(t={feature:t}),cp({next:t,cardinalities:new Map,visited:new Set,plus:new Set})}function cp(t){var e,r,n;let{next:i,cardinalities:s,visited:o,plus:a}=t;if(i===void 0)return[];let{feature:c,type:u}=i;if(ks(c))return o.has(c)?[]:(o.add(c),sI(i,0,s,o,a).map(f=>xy(f,c.cardinality,s)));if(Df(c)||Lf(c))return c.elements.flatMap(f=>cp({next:{feature:f,type:u,property:i.property},cardinalities:s,visited:o,plus:a})).map(f=>xy(f,c.cardinality,s));if(Yn(c)){let f={feature:c.terminal,type:u,property:(e=i.property)!==null&&e!==void 0?e:c.feature};return cp({next:f,cardinalities:s,visited:o,plus:a}).map(l=>xy(l,c.cardinality,s))}else{if(ro(c))return $7({next:{feature:c,type:hu(c),property:(r=i.property)!==null&&r!==void 0?r:c.feature},cardinalities:s,visited:o,plus:a});if(Ri(c)&&Ar(c.rule.ref)){let f=c.rule.ref,l={feature:f.definition,type:f.fragment||f.dataType?void 0:(n=Co(f))!==null&&n!==void 0?n:f.name,property:i.property};return cp({next:l,cardinalities:s,visited:o,plus:a}).map(p=>xy(p,c.cardinality,s))}else return[i]}}function xy(t,e,r){return r.set(t.feature,e),t}function sI(t,e,r,n,i){var s;let o=[],a;for(;e<t.feature.elements.length&&(a={feature:t.feature.elements[e++],type:t.type},o.push(...cp({next:a,cardinalities:r,visited:n,plus:i})),!!mu((s=a.feature.cardinality)!==null&&s!==void 0?s:r.get(a.feature),a.feature)););return o}function Sne(t){for(let e of t.tokens){let r=oI(t.stacks,e);t.stacks=r}}function oI(t,e){let r=[];for(let n of t)r.push(...Ene(n,e));return r}function Ene(t,e){let r=new Map,n=new Set(t.map(s=>s.feature).filter(Tne)),i=[];for(;t.length>0;){let s=t.pop(),o=$7({next:s,cardinalities:r,plus:n,visited:new Set}).filter(a=>e?M7(a.feature,e):!0);for(let a of o)i.push([...t,a]);if(!o.every(a=>mu(a.feature.cardinality,a.feature)||mu(r.get(a.feature))))break}return i}function Tne(t){if(t.cardinality==="+")return!0;let e=ss(t,Yn);return!!(e&&e.cardinality==="+")}function M7(t,e){if(Sn(t))return t.value===e.image;if(Ri(t))return Cne(t.rule.ref,e);if(is(t)){let r=Nm(t);if(r)return M7(r,e)}return!1}function Cne(t,e){return Ar(t)?_y(t.definition).some(n=>M7(n.feature,e)):pi(t)?Za(t).test(e.image):!1}function aI(t){let e=Array.from(new Set(t.flatMap(n=>{var i;return(i=n==null?void 0:n.triggerCharacters)!==null&&i!==void 0?i:[]}))),r=Array.from(new Set(t.flatMap(n=>{var i;return(i=n==null?void 0:n.allCommitCharacters)!==null&&i!==void 0?i:[]})));return{triggerCharacters:e.length>0?e:void 0,allCommitCharacters:r.length>0?r:void 0}}var by=class{constructor(e){this.scopeProvider=e.references.ScopeProvider,this.grammar=e.Grammar,this.completionParser=e.parser.CompletionParser,this.nameProvider=e.references.NameProvider,this.lexer=e.parser.Lexer,this.nodeKindProvider=e.shared.lsp.NodeKindProvider,this.fuzzyMatcher=e.shared.lsp.FuzzyMatcher,this.grammarConfig=e.parser.GrammarConfig,this.astReflection=e.shared.AstReflection,this.documentationProvider=e.documentation.DocumentationProvider}async getCompletion(e,r,n){let i=[],s=this.buildContexts(e,r.position),o=(u,f)=>{let l=this.fillCompletionItem(u,f);l&&i.push(l)},a=u=>Sn(u.feature)?u.feature.value:u.feature,c=[];for(let u of s)if(await Promise.all(nt(u.features).distinct(a).exclude(c).map(f=>this.completionFor(u,f,o))),c.push(...u.features),!this.continueCompletion(i))break;return up.CompletionList.create(this.deduplicateItems(i),!0)}deduplicateItems(e){return nt(e).distinct(r=>`${r.kind}_${r.label}_${r.detail}`).toArray()}findFeaturesAt(e,r){let n=e.getText({start:up.Position.create(0,0),end:e.positionAt(r)}),i=this.completionParser.parse(n),s=i.tokens;if(i.tokenIndex===0){let c=Rm(this.grammar),u=_y({feature:c.definition,type:Co(c)});return s.length>0?(s.shift(),L7(u.map(f=>[f]),s)):u}let o=[...s].splice(i.tokenIndex);return L7([i.elementStack.map(c=>({feature:c}))],o)}*buildContexts(e,r){var n,i;let s=e.parseResult.value.$cstNode;if(!s)return;let o=e.textDocument,a=o.getText(),c=o.offsetAt(r),u={document:e,textDocument:o,offset:c,position:r},f=this.findDataTypeRuleStart(s,c);if(f){let[_,x]=f,T=(n=mm(s,_))===null||n===void 0?void 0:n.astNode;yield Object.assign(Object.assign({},u),{node:T,tokenOffset:_,tokenEndOffset:x,features:this.findFeaturesAt(o,_)})}let{nextTokenStart:l,nextTokenEnd:p,previousTokenStart:d,previousTokenEnd:h}=this.backtrackToAnyToken(a,c),g=l;c<=l&&d!==void 0&&(g=d);let v=(i=mm(s,g))===null||i===void 0?void 0:i.astNode,b=!0;if(d!==void 0&&h!==void 0&&h===c&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:d,tokenEndOffset:h,features:this.findFeaturesAt(o,d)}),b=this.performNextTokenCompletion(e,a.substring(d,h),d,h),b&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:h,tokenEndOffset:h,features:this.findFeaturesAt(o,h)}))),v)b&&(yield Object.assign(Object.assign({},u),{node:v,tokenOffset:l,tokenEndOffset:p,features:this.findFeaturesAt(o,l)}));else{let _=Rm(this.grammar);if(!_)throw new Error("Missing entry parser rule");yield Object.assign(Object.assign({},u),{tokenOffset:l,tokenEndOffset:p,features:_y(_.definition)})}}performNextTokenCompletion(e,r,n,i){return new RegExp("\\P{L}$","u").test(r)}findDataTypeRuleStart(e,r){var n,i;let s=Ai(e,r,this.grammarConfig.nameRegexp),o=!!(!((n=ss(s==null?void 0:s.grammarSource,Ar))===null||n===void 0)&&n.dataType);if(o){for(;o;)s=s==null?void 0:s.container,o=!!(!((i=ss(s==null?void 0:s.grammarSource,Ar))===null||i===void 0)&&i.dataType);if(s)return[s.offset,s.end]}}continueCompletion(e){return e.length===0}backtrackToAnyToken(e,r){let n=this.lexer.tokenize(e).tokens;if(n.length===0)return{nextTokenStart:r,nextTokenEnd:r};let i;for(let s of n){if(s.startOffset>=r)return{nextTokenStart:r,nextTokenEnd:r,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};if(s.endOffset>=r)return{nextTokenStart:s.startOffset,nextTokenEnd:s.endOffset+1,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};i=s}return{nextTokenStart:r,nextTokenEnd:r,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0}}completionFor(e,r,n){if(Sn(r.feature))return this.completionForKeyword(e,r.feature,n);if(is(r.feature)&&e.node)return this.completionForCrossReference(e,r,n)}completionForCrossReference(e,r,n){let i=ss(r.feature,Yn),s=e.node;if(i&&s){r.type&&(s={$type:r.type,$container:s,$containerProperty:r.property},Tm(this.astReflection,s));let o={reference:{$refText:""},container:s,property:i.feature};try{for(let a of this.getReferenceCandidates(o,e))n(e,this.createReferenceCompletionItem(a))}catch(a){console.error(a)}}}getReferenceCandidates(e,r){return this.scopeProvider.getScope(e).getAllElements()}createReferenceCompletionItem(e){let r=this.nodeKindProvider.getCompletionItemKind(e),n=this.getReferenceDocumentation(e);return{nodeDescription:e,kind:r,documentation:n,detail:e.type,sortText:"0"}}getReferenceDocumentation(e){if(!e.node)return;let r=this.documentationProvider.getDocumentation(e.node);if(r)return{kind:"markdown",value:r}}completionForKeyword(e,r,n){this.filterKeyword(e,r)&&n(e,{label:r.value,kind:this.getKeywordCompletionItemKind(r),detail:"Keyword",sortText:"1"})}getKeywordCompletionItemKind(e){return up.CompletionItemKind.Keyword}filterKeyword(e,r){return new RegExp("\\p{L}","u").test(r.value)}fillCompletionItem(e,r){var n,i;let s;if(typeof r.label=="string")s=r.label;else if("node"in r){let u=this.nameProvider.getName(r.node);if(!u)return;s=u}else if("nodeDescription"in r)s=r.nodeDescription.name;else return;let o;typeof((n=r.textEdit)===null||n===void 0?void 0:n.newText)=="string"?o=r.textEdit.newText:typeof r.insertText=="string"?o=r.insertText:o=s;let a=(i=r.textEdit)!==null&&i!==void 0?i:this.buildCompletionTextEdit(e,s,o);return a?{additionalTextEdits:r.additionalTextEdits,command:r.command,commitCharacters:r.commitCharacters,data:r.data,detail:r.detail,documentation:r.documentation,filterText:r.filterText,insertText:r.insertText,insertTextFormat:r.insertTextFormat,insertTextMode:r.insertTextMode,kind:r.kind,labelDetails:r.labelDetails,preselect:r.preselect,sortText:r.sortText,tags:r.tags,textEditText:r.textEditText,textEdit:a,label:s}:void 0}buildCompletionTextEdit(e,r,n){let s=e.textDocument.getText().substring(e.tokenOffset,e.offset);if(this.fuzzyMatcher.match(s,r)){let o=e.textDocument.positionAt(e.tokenOffset),a=e.position;return{newText:n,range:{start:o,end:a}}}else return}};var cI=ke(Ui(),1);var Sy=class{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getDefinition(e,r,n){let i=e.parseResult.value;if(i.$cstNode){let s=i.$cstNode,o=Ai(s,e.textDocument.offsetAt(r.position),this.grammarConfig.nameRegexp);if(o)return this.collectLocationLinks(o,r)}}collectLocationLinks(e,r){var n;let i=this.findLink(e);if(i)return[cI.LocationLink.create(i.targetDocument.textDocument.uri,((n=i.target.astNode.$cstNode)!==null&&n!==void 0?n:i.target).range,i.target.range,i.source.range)]}findLink(e){let r=this.references.findDeclarationNode(e);if(r!=null&&r.astNode){let n=dn(r.astNode);if(r&&n)return{source:e,target:r,targetDocument:n}}}};var uI=ke(Ui(),1);var Ey=class{constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}getDocumentHighlight(e,r,n){let i=e.parseResult.value.$cstNode;if(!i)return;let s=Ai(i,e.textDocument.offsetAt(r.position),this.grammarConfig.nameRegexp);if(!s)return;let o=this.references.findDeclaration(s);if(o){let a=ee.equals(dn(o).uri,e.uri),c={documentUri:e.uri,includeDeclaration:a};return this.references.findReferences(o,c).map(f=>this.createDocumentHighlight(f)).toArray()}}createDocumentHighlight(e){return uI.DocumentHighlight.create(e.segment.range)}};var Ty=class{constructor(e){this.nameProvider=e.references.NameProvider,this.nodeKindProvider=e.shared.lsp.NodeKindProvider}getSymbols(e,r,n){return this.getSymbol(e,e.parseResult.value)}getSymbol(e,r){let n=r.$cstNode,i=this.nameProvider.getNameNode(r);if(i&&n){let s=this.nameProvider.getName(r);return[{kind:this.nodeKindProvider.getSymbolKind(r),name:s||i.text,range:n.range,selectionRange:i.range,children:this.getChildSymbols(e,r)}]}else return this.getChildSymbols(e,r)||[]}getChildSymbols(e,r){let n=[];for(let i of uu(r)){let s=this.getSymbol(e,i);n.push(...s)}if(n.length>0)return n}};var A1=ke(Ui(),1);var lp=class{constructor(e){this.workspaceManager=e.workspace.WorkspaceManager,this.documentBuilder=e.workspace.DocumentBuilder,this.workspaceLock=e.workspace.WorkspaceLock,this.serviceRegistry=e.ServiceRegistry;let r=!1;e.lsp.LanguageServer.onInitialize(n=>{var i,s;r=!!(!((s=(i=n.capabilities.workspace)===null||i===void 0?void 0:i.didChangeWatchedFiles)===null||s===void 0)&&s.dynamicRegistration)}),e.lsp.LanguageServer.onInitialized(n=>{r&&this.registerFileWatcher(e)})}registerFileWatcher(e){let r=[],n=nt(e.ServiceRegistry.all).flatMap(s=>s.LanguageMetaData.fileExtensions).map(s=>s.startsWith(".")?s.substring(1):s).distinct().toArray();n.length>0&&r.push({globPattern:n.length===1?`**/*.${n[0]}`:`**/*.{${n.join(",")}}`});let i=nt(e.ServiceRegistry.all).flatMap(s=>{var o;return(o=s.LanguageMetaData.fileNames)!==null&&o!==void 0?o:[]}).distinct().toArray();if(i.length>0&&r.push({globPattern:i.length===1?`**/${i[0]}`:`**/{${i.join(",")}}`}),r.length>0){let s=e.lsp.Connection,o={watchers:r};s==null||s.client.register(A1.DidChangeWatchedFilesNotification.type,o)}}fireDocumentUpdate(e,r){e=e.filter(n=>this.serviceRegistry.hasServices(n)),this.workspaceManager.ready.then(()=>{this.workspaceLock.write(n=>this.documentBuilder.update(e,r,n))}).catch(n=>{console.error("Workspace initialization failed. Could not perform document update.",n)})}didChangeContent(e){this.fireDocumentUpdate([De.parse(e.document.uri)],[])}didChangeWatchedFiles(e){let r=nt(e.changes).filter(i=>i.type!==A1.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>De.parse(i.uri)).toArray(),n=nt(e.changes).filter(i=>i.type===A1.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>De.parse(i.uri)).toArray();this.fireDocumentUpdate(r,n)}};var R1=ke(Ui(),1);var Cy=class{constructor(e){this.commentNames=e.parser.GrammarConfig.multilineCommentRules}getFoldingRanges(e,r,n){let i=[],s=o=>i.push(o);return this.collectFolding(e,s),i}collectFolding(e,r){var n;let i=(n=e.parseResult)===null||n===void 0?void 0:n.value;if(i){if(this.shouldProcessContent(i)){let s=os(i).iterator(),o;do if(o=s.next(),!o.done){let a=o.value;this.shouldProcess(a)&&this.collectObjectFolding(e,a,r),this.shouldProcessContent(a)||s.prune()}while(!o.done)}this.collectCommentFolding(e,i,r)}}shouldProcess(e){return!0}shouldProcessContent(e){return!0}collectObjectFolding(e,r,n){let i=r.$cstNode;if(i){let s=this.toFoldingRange(e,i);s&&n(s)}}collectCommentFolding(e,r,n){let i=r.$cstNode;if(i){for(let s of A8(i))if(this.commentNames.includes(s.tokenType.name)){let o=this.toFoldingRange(e,s,R1.FoldingRangeKind.Comment);o&&n(o)}}}toFoldingRange(e,r,n){let i=r.range,s=i.start,o=i.end;if(!(o.line-s.line<2))return this.includeLastFoldingLine(r,n)||(o=e.textDocument.positionAt(e.textDocument.offsetAt({line:o.line,character:0})-1)),R1.FoldingRange.create(s.line,o.line,s.character,o.character,n)}includeLastFoldingLine(e,r){if(r===R1.FoldingRangeKind.Comment)return!1;let n=e.text,i=n.charAt(n.length-1);return!(i==="}"||i===")"||i==="]")}};var ky=class{match(e,r){if(e.length===0)return!0;let n=!1,i,s=0,o=r.length;for(let a=0;a<o;a++){let c=r.charCodeAt(a),u=e.charCodeAt(s);if((c===u||this.toUpperCharCode(c)===this.toUpperCharCode(u))&&(n||(n=i===void 0||this.isWordTransition(i,c)),n&&s++,s===e.length))return!0;i=c}return!1}isWordTransition(e,r){return lI<=e&&e<=fI&&kne<=r&&r<=wne||e===dI&&r!==dI}toUpperCharCode(e){return lI<=e&&e<=fI?e-32:e}},lI=97,fI=122,kne=65,wne=90,dI=95;var F7=class{constructor(e){this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getHoverContent(e,r){var n,i;let s=(i=(n=e.parseResult)===null||n===void 0?void 0:n.value)===null||i===void 0?void 0:i.$cstNode;if(s){let o=e.textDocument.offsetAt(r.position),a=Ai(s,o,this.grammarConfig.nameRegexp);if(a&&a.offset+a.length>o){let c=this.references.findDeclaration(a);if(c)return this.getAstNodeHoverContent(c);if(Sn(a.grammarSource))return this.getKeywordHoverContent(a.grammarSource)}}}getKeywordHoverContent(e){var r;let n=Th(e)?e.$comment:void 0;if(n||(n=(r=pm(e.$cstNode,["ML_COMMENT"]))===null||r===void 0?void 0:r.text),n&&$h(n)){let i=Lh(n).toMarkdown();if(i)return{contents:{kind:"markdown",value:i}}}}},wy=class extends F7{constructor(e){super(e),this.documentationProvider=e.documentation.DocumentationProvider}getAstNodeHoverContent(e){let r=this.documentationProvider.getDocumentation(e);if(r)return{contents:{kind:"markdown",value:r}}}};var Aa=ke(Kr(),1);var St=ke(Ui(),1);var mI={[St.SemanticTokenTypes.class]:0,[St.SemanticTokenTypes.comment]:1,[St.SemanticTokenTypes.enum]:2,[St.SemanticTokenTypes.enumMember]:3,[St.SemanticTokenTypes.event]:4,[St.SemanticTokenTypes.function]:5,[St.SemanticTokenTypes.interface]:6,[St.SemanticTokenTypes.keyword]:7,[St.SemanticTokenTypes.macro]:8,[St.SemanticTokenTypes.method]:9,[St.SemanticTokenTypes.modifier]:10,[St.SemanticTokenTypes.namespace]:11,[St.SemanticTokenTypes.number]:12,[St.SemanticTokenTypes.operator]:13,[St.SemanticTokenTypes.parameter]:14,[St.SemanticTokenTypes.property]:15,[St.SemanticTokenTypes.regexp]:16,[St.SemanticTokenTypes.string]:17,[St.SemanticTokenTypes.struct]:18,[St.SemanticTokenTypes.type]:19,[St.SemanticTokenTypes.typeParameter]:20,[St.SemanticTokenTypes.variable]:21,[St.SemanticTokenTypes.decorator]:22},hI={[St.SemanticTokenModifiers.abstract]:1,[St.SemanticTokenModifiers.async]:2,[St.SemanticTokenModifiers.declaration]:4,[St.SemanticTokenModifiers.defaultLibrary]:8,[St.SemanticTokenModifiers.definition]:16,[St.SemanticTokenModifiers.deprecated]:32,[St.SemanticTokenModifiers.documentation]:64,[St.SemanticTokenModifiers.modification]:128,[St.SemanticTokenModifiers.readonly]:256,[St.SemanticTokenModifiers.static]:512},GNe={legend:{tokenTypes:Object.keys(mI),tokenModifiers:Object.keys(hI)},full:{delta:!0},range:!0};function gI(t){let e=[],r=[],n=!0,i=!0,s=!0;for(let o of t)o&&(o.legend.tokenTypes.forEach((a,c)=>{let u=e[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token types. They use the same index ${c}.`);e[c]=a}),o.legend.tokenModifiers.forEach((a,c)=>{let u=r[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token modifier. They use the same index ${c}.`);r[c]=a}),o.full?typeof o.full=="object"&&!o.full.delta&&(i=!1):n=!1,o.range||(s=!1));return{legend:{tokenTypes:e,tokenModifiers:r},full:n&&{delta:i},range:s}}var V7=class extends St.SemanticTokensBuilder{constructor(){super(...arguments),this._tokens=[]}push(e,r,n,i,s){this._tokens.push({line:e,char:r,length:n,tokenType:i,tokenModifiers:s})}build(){return this.applyTokens(),super.build()}buildEdits(){return this.applyTokens(),super.buildEdits()}flush(){this.previousResult(this.id)}applyTokens(){for(let e of this._tokens.sort(this.compareTokens))super.push(e.line,e.char,e.length,e.tokenType,e.tokenModifiers);this._tokens=[]}compareTokens(e,r){return e.line===r.line?e.char-r.char:e.line-r.line}},Ay=class{constructor(e){this.tokensBuilders=new Map,e.shared.workspace.TextDocuments.onDidClose(r=>{this.tokensBuilders.delete(r.document.uri)}),e.shared.lsp.LanguageServer.onInitialize(r=>{var n;this.initialize((n=r.capabilities.textDocument)===null||n===void 0?void 0:n.semanticTokens)})}initialize(e){this.clientCapabilities=e}get tokenTypes(){return mI}get tokenModifiers(){return hI}get semanticTokensOptions(){return{legend:{tokenTypes:Object.keys(this.tokenTypes),tokenModifiers:Object.keys(this.tokenModifiers)},full:{delta:!0},range:!0}}async semanticHighlight(e,r,n=ye.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),n),this.currentTokensBuilder.build()}async semanticHighlightRange(e,r,n=ye.CancellationToken.None){return this.currentRange=r.range,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),n),this.currentTokensBuilder.build()}async semanticHighlightDelta(e,r,n=ye.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.previousResult(r.previousResultId),await this.computeHighlighting(e,this.createAcceptor(),n),this.currentTokensBuilder.buildEdits()}createAcceptor(){return r=>{"line"in r?this.highlightToken({range:{start:{line:r.line,character:r.char},end:{line:r.line,character:r.char+r.length}},type:r.type,modifier:r.modifier}):"range"in r?this.highlightToken(r):"keyword"in r?this.highlightKeyword(r):"property"in r?this.highlightProperty(r):this.highlightNode({node:r.cst,type:r.type,modifier:r.modifier})}}getDocumentTokensBuilder(e){let r=this.tokensBuilders.get(e.uri.toString());if(r)return r;let n=new V7;return this.tokensBuilders.set(e.uri.toString(),n),n}async computeHighlighting(e,r,n){let i=e.parseResult.value,s=Pi(i,{range:this.currentRange}).iterator(),o;do if(o=s.next(),!o.done){await it(n);let a=o.value;this.highlightElement(a,r)==="prune"&&s.prune()}while(!o.done)}highlightToken(e){var r;let{range:n,type:i}=e,s=e.modifier;if(this.currentRange&&!dm(n,this.currentRange)||!this.currentDocument||!this.currentTokensBuilder)return;let o=this.tokenTypes[i],a=0;if(s!==void 0){typeof s=="string"&&(s=[s]);for(let f of s){let l=this.tokenModifiers[f];a|=l}}let c=n.start.line,u=n.end.line;if(c===u){let f=n.start.character,l=n.end.character-f;this.currentTokensBuilder.push(c,f,l,o,a)}else if(!((r=this.clientCapabilities)===null||r===void 0)&&r.multilineTokenSupport){let f=n.start.character,l=this.currentDocument.textDocument.offsetAt(n.start),p=this.currentDocument.textDocument.offsetAt(n.end);this.currentTokensBuilder.push(c,f,p-l,o,a)}else{let f=n.start,l=this.currentDocument.textDocument.offsetAt({line:c+1,character:0});this.currentTokensBuilder.push(f.line,f.character,l-f.character-1,o,a);for(let p=c+1;p<u;p++){let d=l;l=this.currentDocument.textDocument.offsetAt({line:p+1,character:0}),this.currentTokensBuilder.push(p,0,l-d-1,o,a)}this.currentTokensBuilder.push(u,0,n.end.character,o,a)}}highlightProperty(e){let r=[];if(typeof e.index=="number"){let s=pu(e.node.$cstNode,e.property,e.index);s&&r.push(s)}else r.push(...Om(e.node.$cstNode,e.property));let{type:n,modifier:i}=e;for(let s of r)this.highlightNode({node:s,type:n,modifier:i})}highlightKeyword(e){let{node:r,keyword:n,type:i,index:s,modifier:o}=e,a=[];if(typeof s=="number"){let c=Im(r.$cstNode,n,s);c&&a.push(c)}else a.push(...o6(r.$cstNode,n));for(let c of a)this.highlightNode({node:c,type:i,modifier:o})}highlightNode(e){let{node:r,type:n,modifier:i}=e,s=r.range;this.highlightToken({range:s,type:n,modifier:i})}},pI;(function(t){function e(n,i,s){let o=new Map;Object.entries(i).forEach(([u,f])=>o.set(f,u));let a=0,c=0;return r(n.data,5).map(u=>{a+=u[0],u[0]!==0&&(c=0),c+=u[1];let f=u[2];return{offset:s.textDocument.offsetAt({line:a,character:c}),tokenType:o.get(u[3]),tokenModifiers:u[4],text:s.textDocument.getText({start:{line:a,character:c},end:{line:a,character:c+f}})}})}t.decode=e;function r(n,i){let s=[];for(let o=0;o<n.length;o+=i){let a=n.slice(o,o+i);s.push(a)}return s}})(pI||(pI={}));function yI(t){let e=[],r=[];t.forEach(i=>{i!=null&&i.triggerCharacters&&e.push(...i.triggerCharacters),i!=null&&i.retriggerCharacters&&r.push(...i.retriggerCharacters)});let n={triggerCharacters:e.length>0?Array.from(new Set(e)).sort():void 0,retriggerCharacters:r.length>0?Array.from(new Set(r)).sort():void 0};return n.triggerCharacters?n:void 0}var Ry=class{constructor(e){this.onInitializeEmitter=new Aa.Emitter,this.onInitializedEmitter=new Aa.Emitter,this.services=e}get onInitialize(){return this.onInitializeEmitter.event}get onInitialized(){return this.onInitializedEmitter.event}async initialize(e){return this.eagerLoadServices(),this.fireInitializeOnDefaultServices(e),this.onInitializeEmitter.fire(e),this.onInitializeEmitter.dispose(),this.buildInitializeResult(e)}eagerLoadServices(){Bh(this.services),this.services.ServiceRegistry.all.forEach(e=>Bh(e))}hasService(e){return this.services.ServiceRegistry.all.some(n=>e(n)!==void 0)}buildInitializeResult(e){var r,n,i,s;let o=this.services.lsp.DocumentUpdateHandler,a=(r=this.services.lsp.FileOperationHandler)===null||r===void 0?void 0:r.fileOperationOptions,c=this.services.ServiceRegistry.all,u=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.Formatter}),f=c.map(Q=>{var F,Oe;return(Oe=(F=Q.lsp)===null||F===void 0?void 0:F.Formatter)===null||Oe===void 0?void 0:Oe.formatOnTypeOptions}).find(Q=>!!Q),l=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.CodeActionProvider}),p=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.SemanticTokenProvider}),d=gI(c.map(Q=>{var F,Oe;return(Oe=(F=Q.lsp)===null||F===void 0?void 0:F.SemanticTokenProvider)===null||Oe===void 0?void 0:Oe.semanticTokensOptions})),h=(i=(n=this.services.lsp)===null||n===void 0?void 0:n.ExecuteCommandHandler)===null||i===void 0?void 0:i.commands,g=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.DocumentLinkProvider}),v=yI(c.map(Q=>{var F,Oe;return(Oe=(F=Q.lsp)===null||F===void 0?void 0:F.SignatureHelp)===null||Oe===void 0?void 0:Oe.signatureHelpOptions})),b=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.TypeProvider}),_=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.ImplementationProvider}),x=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.CompletionProvider}),T=aI(c.map(Q=>{var F,Oe;return(Oe=(F=Q.lsp)===null||F===void 0?void 0:F.CompletionProvider)===null||Oe===void 0?void 0:Oe.completionOptions})),R=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.ReferencesProvider}),V=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.DocumentSymbolProvider}),$=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.DefinitionProvider}),K=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.DocumentHighlightProvider}),z=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.FoldingRangeProvider}),W=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.HoverProvider}),D=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.RenameProvider}),P=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.CallHierarchyProvider}),M=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.TypeHierarchyProvider}),j=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.CodeLensProvider}),J=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.DeclarationProvider}),te=this.hasService(Q=>{var F;return(F=Q.lsp)===null||F===void 0?void 0:F.InlayHintProvider}),re=(s=this.services.lsp)===null||s===void 0?void 0:s.WorkspaceSymbolProvider;return{capabilities:{workspace:{workspaceFolders:{supported:!0},fileOperations:a},executeCommandProvider:h&&{commands:h},textDocumentSync:{change:Aa.TextDocumentSyncKind.Incremental,openClose:!0,save:!!o.didSaveDocument,willSave:!!o.willSaveDocument,willSaveWaitUntil:!!o.willSaveDocumentWaitUntil},completionProvider:x?T:void 0,referencesProvider:R,documentSymbolProvider:V,definitionProvider:$,typeDefinitionProvider:b,documentHighlightProvider:K,codeActionProvider:l,documentFormattingProvider:u,documentRangeFormattingProvider:u,documentOnTypeFormattingProvider:f,foldingRangeProvider:z,hoverProvider:W,renameProvider:D?{prepareProvider:!0}:void 0,semanticTokensProvider:p?d:void 0,signatureHelpProvider:v,implementationProvider:_,callHierarchyProvider:P?{}:void 0,typeHierarchyProvider:M?{}:void 0,documentLinkProvider:g?{resolveProvider:!1}:void 0,codeLensProvider:j?{resolveProvider:!1}:void 0,declarationProvider:J,inlayHintProvider:te?{resolveProvider:!1}:void 0,workspaceSymbolProvider:re?{resolveProvider:!!re.resolveSymbol}:void 0}}}initialized(e){this.fireInitializedOnDefaultServices(e),this.onInitializedEmitter.fire(e),this.onInitializedEmitter.dispose()}fireInitializeOnDefaultServices(e){this.services.workspace.ConfigurationProvider.initialize(e),this.services.workspace.WorkspaceManager.initialize(e)}fireInitializedOnDefaultServices(e){let r=this.services.lsp.Connection,n=r?Object.assign(Object.assign({},e),{register:i=>r.client.register(Aa.DidChangeConfigurationNotification.type,i),fetchConfiguration:i=>r.workspace.getConfiguration(i)}):e;this.services.workspace.ConfigurationProvider.initialized(n).catch(i=>console.error("Error in ConfigurationProvider initialization:",i)),this.services.workspace.WorkspaceManager.initialized(e).catch(i=>console.error("Error in WorkspaceManager initialization:",i))}};var Ny=ke(Ui(),1),Py=class{getSymbolKind(e){return Ny.SymbolKind.Field}getCompletionItemKind(e){return Ny.CompletionItemKind.Reference}};var vI=ke(Ui(),1);var Oy=class{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}findReferences(e,r,n){let i=e.parseResult.value.$cstNode;if(!i)return[];let s=Ai(i,e.textDocument.offsetAt(r.position),this.grammarConfig.nameRegexp);return s?this.getReferences(s,r,e):[]}getReferences(e,r,n){let i=[],s=this.references.findDeclaration(e);if(s){let o={includeDeclaration:r.context.includeDeclaration};this.references.findReferences(s,o).forEach(a=>{i.push(vI.Location.create(a.sourceUri.toString(),a.segment.range))})}return i}};var Iy=class{constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}async rename(e,r,n){let i={},s=e.parseResult.value.$cstNode;if(!s)return;let o=e.textDocument.offsetAt(r.position),a=Ai(s,o,this.grammarConfig.nameRegexp);if(!a)return;let c=this.references.findDeclaration(a);if(!c)return;let u={onlyLocal:!1,includeDeclaration:!0};return this.references.findReferences(c,u).forEach(l=>{let p=yc.replace(l.segment.range,r.newName),d=l.sourceUri.toString();i[d]?i[d].push(p):i[d]=[p]}),{changes:i}}prepareRename(e,r,n){return this.renameNodeRange(e,r.position)}renameNodeRange(e,r){let n=e.parseResult.value.$cstNode,i=e.textDocument.offsetAt(r);if(n&&i){let s=Ai(n,i,this.grammarConfig.nameRegexp);if(!s)return;if(this.references.findDeclaration(s)||this.isNameNode(s))return s.range}}isNameNode(e){return(e==null?void 0:e.astNode)&&P2(e.astNode)&&e===this.nameProvider.getNameNode(e.astNode)}};var Dy=class{constructor(e){this.indexManager=e.workspace.IndexManager,this.nodeKindProvider=e.lsp.NodeKindProvider,this.fuzzyMatcher=e.lsp.FuzzyMatcher}async getSymbols(e,r=ye.CancellationToken.None){let n=[],i=e.query.toLowerCase();for(let s of this.indexManager.allElements())if(await it(r),this.fuzzyMatcher.match(i,s.name)){let o=this.getWorkspaceSymbol(s);o&&n.push(o)}return n}getWorkspaceSymbol(e){let r=e.nameSegment;if(r)return{kind:this.nodeKindProvider.getSymbolKind(e),name:e.name,location:{range:r.range,uri:e.documentUri.toString()}}}};var Dn=ke(Ui(),1);var P1=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Dn.Emitter,this._onDidOpen=new Dn.Emitter,this._onDidClose=new Dn.Emitter,this._onDidSave=new Dn.Emitter,this._onWillSave=new Dn.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(ee.normalize(e))}set(e){let r=ee.normalize(e.uri),n=!0;this._syncedDocuments.has(r)&&(n=!1),this._syncedDocuments.set(r,e);let i=Object.freeze({document:e});return this._onDidOpen.fire(i),this._onDidChangeContent.fire(i),n}delete(e){let r=ee.normalize(typeof e=="object"&&"uri"in e?e.uri:e),n=this._syncedDocuments.get(r);n!==void 0&&(this._syncedDocuments.delete(r),this._onDidClose.fire(Object.freeze({document:n})))}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Dn.TextDocumentSyncKind.Incremental;let r=[];return r.push(e.onDidOpenTextDocument(n=>{let i=n.textDocument,s=ee.normalize(i.uri),o=this._configuration.create(s,i.languageId,i.version,i.text);this._syncedDocuments.set(s,o);let a=Object.freeze({document:o});this._onDidOpen.fire(a),this._onDidChangeContent.fire(a)})),r.push(e.onDidChangeTextDocument(n=>{let i=n.textDocument,s=n.contentChanges;if(s.length===0)return;let{version:o}=i;if(o==null)throw new Error(`Received document change event for ${i.uri} without valid version identifier`);let a=ee.normalize(i.uri),c=this._syncedDocuments.get(a);c!==void 0&&(c=this._configuration.update(c,s,o),this._syncedDocuments.set(a,c),this._onDidChangeContent.fire(Object.freeze({document:c})))})),r.push(e.onDidCloseTextDocument(n=>{let i=ee.normalize(n.textDocument.uri),s=this._syncedDocuments.get(i);s!==void 0&&(this._syncedDocuments.delete(i),this._onDidClose.fire(Object.freeze({document:s})))})),r.push(e.onWillSaveTextDocument(n=>{let i=this._syncedDocuments.get(ee.normalize(n.textDocument.uri));i!==void 0&&this._onWillSave.fire(Object.freeze({document:i,reason:n.reason}))})),r.push(e.onWillSaveTextDocumentWaitUntil((n,i)=>{let s=this._syncedDocuments.get(ee.normalize(n.textDocument.uri));return s!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:s,reason:n.reason}),i):[]})),r.push(e.onDidSaveTextDocument(n=>{let i=this._syncedDocuments.get(ee.normalize(n.textDocument.uri));i!==void 0&&this._onDidSave.fire(Object.freeze({document:i}))})),Dn.Disposable.create(()=>{r.forEach(n=>n.dispose())})}},Ly=class{constructor(e){this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new Dn.Emitter,this._onDidSave=new Dn.Emitter,this._onDidChange=new Dn.Emitter,this._onDidClose=new Dn.Emitter,"listen"in e?this._cellTextDocuments=e:this._cellTextDocuments=new P1(e)}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(ee.normalize(e))}getNotebookCell(e){let r=this.notebookCellMap.get(ee.normalize(e));return r&&r[0]}findNotebookDocumentForCell(e){let r=typeof e=="string"||"scheme"in e?e:e.document,n=this.notebookCellMap.get(ee.normalize(r));return n&&n[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let r=new $y,n=[];return n.push(this.cellTextDocuments.listen(r)),n.push(e.notebooks.synchronization.onDidOpenNotebookDocument(i=>{let s=ee.normalize(i.notebookDocument.uri);this.notebookDocuments.set(s,i.notebookDocument);for(let o of i.cellTextDocuments)r.openTextDocument({textDocument:o});this.updateCellMap(i.notebookDocument),this._onDidOpen.fire(i.notebookDocument)})),n.push(e.notebooks.synchronization.onDidChangeNotebookDocument(i=>{let s=ee.normalize(i.notebookDocument.uri),o=this.notebookDocuments.get(s);if(o===void 0)return;o.version=i.notebookDocument.version;let a=o.metadata,c=!1,u=i.change;u.metadata!==void 0&&(c=!0,o.metadata=u.metadata);let f=[],l=[],p=[],d=[];if(u.cells!==void 0){let _=u.cells;if(_.structure!==void 0){let x=_.structure.array;if(o.cells.splice(x.start,x.deleteCount,...x.cells!==void 0?x.cells:[]),_.structure.didOpen!==void 0)for(let T of _.structure.didOpen)r.openTextDocument({textDocument:T}),f.push(T.uri);if(_.structure.didClose)for(let T of _.structure.didClose)r.closeTextDocument({textDocument:T}),l.push(T.uri)}if(_.data!==void 0){let x=new Map(_.data.map(T=>[T.document,T]));for(let T=0;T<=o.cells.length;T++){let R=x.get(o.cells[T].document);if(R!==void 0){let V=o.cells.splice(T,1,R);if(p.push({old:V[0],new:R}),x.delete(R.document),x.size===0)break}}}if(_.textContent!==void 0)for(let x of _.textContent)r.changeTextDocument({textDocument:x.document,contentChanges:x.changes}),d.push(x.document.uri)}this.updateCellMap(o);let h={notebookDocument:o};c&&(h.metadata={old:a,new:o.metadata});let g=[];for(let _ of f)g.push(this.getNotebookCell(_));let v=[];for(let _ of l)v.push(this.getNotebookCell(_));let b=[];for(let _ of d)b.push(this.getNotebookCell(_));(g.length>0||v.length>0||p.length>0||b.length>0)&&(h.cells={added:g,removed:v,changed:{data:p,textContent:b}}),(h.metadata!==void 0||h.cells!==void 0)&&this._onDidChange.fire(h)})),n.push(e.notebooks.synchronization.onDidSaveNotebookDocument(i=>{let s=this.getNotebookDocument(i.notebookDocument.uri);s!==void 0&&this._onDidSave.fire(s)})),n.push(e.notebooks.synchronization.onDidCloseNotebookDocument(i=>{let s=ee.normalize(i.notebookDocument.uri),o=this.notebookDocuments.get(s);if(o!==void 0){this._onDidClose.fire(o);for(let a of i.cellTextDocuments)r.closeTextDocument({textDocument:a});this.notebookDocuments.delete(s);for(let a of o.cells)this.notebookCellMap.delete(a.document)}})),Dn.Disposable.create(()=>{n.forEach(i=>i.dispose())})}updateCellMap(e){for(let r of e.cells)this.notebookCellMap.set(r.document,[r,e])}},$y=class t{onDidOpenTextDocument(e){return this.openHandler=e,Dn.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,Dn.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,Dn.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return t.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return t.NULL_DISPOSE}onDidSaveTextDocument(){return t.NULL_DISPOSE}};$y.NULL_DISPOSE=Object.freeze({dispose:()=>{}});function xI(t){return Ld.merge(Uh(t),Ane(t))}function Ane(t){return{lsp:{CompletionProvider:e=>new by(e),DocumentSymbolProvider:e=>new Ty(e),HoverProvider:e=>new wy(e),FoldingRangeProvider:e=>new Cy(e),ReferencesProvider:e=>new Oy(e),DefinitionProvider:e=>new Sy(e),DocumentHighlightProvider:e=>new Ey(e),RenameProvider:e=>new Iy(e)},shared:()=>t.shared}}function _I(t){return Ld.merge(qh(t),Rne(t))}function Rne(t){return{lsp:{Connection:()=>t.connection,LanguageServer:e=>new Ry(e),DocumentUpdateHandler:e=>new lp(e),WorkspaceSymbolProvider:e=>new Dy(e),NodeKindProvider:()=>new Py,FuzzyMatcher:()=>new ky},workspace:{TextDocuments:()=>new P1(xc),NotebookDocuments:e=>new Ly(e.workspace.TextDocuments)}}}var My,bI=()=>My!=null?My:My=j2(`{"$type":"Grammar","isDeclared":true,"name":"Kumori","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Model","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Package","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"declaration","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PackageDeclaration","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"package"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Imports","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"import"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"imports","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"imports","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},"cardinality":"?"},{"$type":"Keyword","value":")"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"imports","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"imports","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":")"}]}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Import","inferredType":{"$type":"InferredType","name":"Import"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alias","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"Keyword","value":"."}]},"cardinality":"?"},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@1"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},"deprecatedSyntax":false}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"PackageBody","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Artifact","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"artifacts","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@58"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}]}},{"$type":"Assignment","feature":"library","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@64"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"ArtifactScoped","definition":{"$type":"Assignment","feature":"artifacts","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@59"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@61"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@63"},"arguments":[]}]}},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ServiceArtifact","inferredType":{"$type":"InferredType","name":"ServiceArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ServiceArtifactScoped","inferredType":{"$type":"InferredType","name":"ServiceArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArtifactName","definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RootArtifactBody","inferredType":{"$type":"InferredType","name":"ArtifactExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArtifactBody","inferredType":{"$type":"InferredType","name":"ArtifactExpression"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"ArtifactDefinition","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"stmt","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"stmt","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArtifactStatement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@57"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArtifactVariables","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"var"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"variables","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"variables","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"?"}]},{"$type":"Keyword","value":")"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArtifactVariable","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Keyword","value":"="},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Expression","parameters":[{"$type":"Parameter","name":"Typed"}],"definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@17/parameters@0"}},"calledByName":false}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"TernaryExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@18/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"TernaryExpression"},"feature":"condition","operator":"="},{"$type":"Keyword","value":"?"},{"$type":"Assignment","feature":"trueExpr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"falseExpr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"LogicalORExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@19/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"LogicalORExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"||"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"LogicalANDExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@20/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"LogicalANDExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"&&"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"EqualityComparisonExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@21/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"EqualityComparisonExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"=="},{"$type":"Keyword","value":"!="}]}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"OrderedComparisonExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@22/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"OrderedComparisonExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"<"},{"$type":"Keyword","value":">"},{"$type":"Keyword","value":"<="},{"$type":"Keyword","value":">="}]}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"AdditionExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@23/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"AdditionExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"+"},{"$type":"Keyword","value":"-"}]}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"MultiplicationExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@24/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"MultiplicationExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"*"},{"$type":"Keyword","value":"/"},{"$type":"Keyword","value":"%"}]}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"FunctionCallExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@25/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"FunctionCallExpression"},"feature":"caller","operator":"="},{"$type":"Keyword","value":"("},{"$type":"Group","elements":[{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"arguments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"},{"$type":"Keyword","value":",","cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":")"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"IncrementExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@26/parameters@0"}},"calledByName":false}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"IncrementExpression"},"feature":"target","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"++"},{"$type":"Keyword","value":"--"}]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"PrimaryExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"Expression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]},{"$type":"Keyword","value":")"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@27/parameters@0"}},"calledByName":false}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"UnaryExpression","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"+"},{"$type":"Keyword","value":"-"},{"$type":"Keyword","value":"!"}]}},{"$type":"Assignment","feature":"left","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TerminalExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@54"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@29/parameters@0"}},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"ListExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[],"cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberLiteralExpression","definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StringLiteralExpression","definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BooleanLiteralExpression","definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"true"},{"$type":"Keyword","value":"false"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SizeLiteralExpression","definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IdentifierExpression","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@35"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"Assignment","feature":"next","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","name":"NL","definition":{"$type":"RegexToken","regex":"/[\\\\r\\\\n]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SL_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REGEX","definition":{"$type":"RegexToken","regex":"/\\\\/((?:\\\\\\\\.|[^\\\\\\\\/])*)\\\\//"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","definition":{"$type":"RegexToken","regex":"/[_a-zA-Z][\\\\w_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"BOOLEAN","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"UINT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(?:\\\\b)\\\\d+(?:\\\\b)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SINT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(?:\\\\b)-\\\\d+(?:\\\\b)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalGroup","elements":[{"$type":"RegexToken","regex":"/(?:\\\\b)-\\\\d+/"},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"."}},{"$type":"RegexToken","regex":"/\\\\d+(?:\\\\b)/"}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"OCTAL","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(?:\\\\b)0o[0-7]+(?:\\\\b)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"(\\\\\\\\.|[^\\"\\\\\\\\])*\\"|'(\\\\\\\\.|[^'\\\\\\\\])*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"NUMBER","dataType":"number","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"INT","dataType":"number","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"QualifiedName","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"QualifiedNameSegment","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},{"$type":"Keyword","value":"alias"},{"$type":"Keyword","value":"builtin"},{"$type":"Keyword","value":"component"},{"$type":"Keyword","value":"deployment"},{"$type":"Keyword","value":"false"},{"$type":"Keyword","value":"func"},{"$type":"Keyword","value":"import"},{"$type":"Keyword","value":"library"},{"$type":"Keyword","value":"open"},{"$type":"Keyword","value":"package"},{"$type":"Keyword","value":"self"},{"$type":"Keyword","value":"service"},{"$type":"Keyword","value":"struct"},{"$type":"Keyword","value":"true"},{"$type":"Keyword","value":"type"},{"$type":"Keyword","value":"var"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"SIZED_INT","definition":{"$type":"TerminalGroup","elements":[{"$type":"RegexToken","regex":"/(?:\\\\b)\\\\d+/"},{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"m"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"k"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"M"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"G"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"P"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"E"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Ki"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Mi"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Gi"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Ti"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Pi"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"Ei"}}]},{"$type":"RegexToken","regex":"/(?:\\\\b)/"}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"ElementSeparator","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StructExpression","parameters":[{"$type":"Parameter","name":"Typed"}],"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@55"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@54/parameters@0"}},"calledByName":false}]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@55"},"arguments":[{"$type":"NamedArgument","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@54/parameters@0"}},"calledByName":false}]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[],"cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"StructEntry","parameters":[{"$type":"Parameter","name":"Typed"}],"inferredType":{"$type":"InferredType","name":"StructEntry"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","guardCondition":{"$type":"Negation","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@55/parameters@0"}}},"elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]}]},{"$type":"Group","guardCondition":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@55/parameters@0"}},"elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@57"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"UntypedStructEntry","inferredType":{"$type":"InferredType","name":"StructEntry"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TypedStructEntry","inferredType":{"$type":"InferredType","name":"StructEntry"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]}},{"$type":"Assignment","feature":"optional","operator":"?=","terminal":{"$type":"Keyword","value":"?"},"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}},{"$type":"Keyword","value":"=","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]}},{"$type":"Assignment","feature":"optional","operator":"?=","terminal":{"$type":"Keyword","value":"?"},"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]}},{"$type":"Keyword","value":"=","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DeploymentArtifact","inferredType":{"$type":"InferredType","name":"DeploymentArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"deployment"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DeploymentArtifactScoped","inferredType":{"$type":"InferredType","name":"DeploymentArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"deployment"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ComponentArtifact","inferredType":{"$type":"InferredType","name":"ComponentArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"component"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ComponentArtifactScoped","inferredType":{"$type":"InferredType","name":"ComponentArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"component"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BuiltinArtifact","inferredType":{"$type":"InferredType","name":"BuiltinArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"builtin"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BuiltinArtifactScoped","inferredType":{"$type":"InferredType","name":"BuiltinArtifact"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"builtin"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Library","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"library"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@65"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LibraryBody","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[],"cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[],"cardinality":"?"}],"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LibraryElementSeparator","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LibraryStatement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TypeDefinitionExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"type"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TypeAliasExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"alias"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"FunctionDefinitionExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"func"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"params","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"params","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[],"cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":")"},{"$type":"Assignment","feature":"returns","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"FunctionParam","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Assignment","feature":"optional","operator":"?=","terminal":{"$type":"Keyword","value":"?"},"cardinality":"?"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TypeDefinition","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"UnionTypeDefinition","inferredType":{"$type":"InferredType","name":"TypeDefinition"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"UnionTypeDefinition"},"feature":"left","operator":"="},{"$type":"Keyword","value":"|"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PrimaryTypeDefinition","inferredType":{"$type":"InferredType","name":"TypeDefinition"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@77"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@78"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"UnaryTypeDefinition","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TypeRef","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ListTypeDefinition","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StructTypeDefinition","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"struct"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@79"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"StructOpenTypeDefinition","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"open","operator":"?=","terminal":{"$type":"Keyword","value":"open"}},{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"restriction","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"Keyword","value":"]"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"StructClosedTypeDefinition","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@81"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@81"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[],"cardinality":"?"}],"cardinality":"?"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StructTypeDefinitionEntry","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}]}},{"$type":"Assignment","feature":"optional","operator":"?=","terminal":{"$type":"Keyword","value":"?"},"cardinality":"?"},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`);var Pne={languageId:"kumori",fileExtensions:[".kumori"],caseInsensitive:!1,mode:"production"},SI={AstReflection:()=>new f1},EI={Grammar:()=>bI(),LanguageMetaData:()=>Pne,parser:{}};var Fs=t=>{let e;return()=>(e===void 0&&(e=t()),e)};var Fy=class extends Du{constructor(r){super(r);this.svcs=r;this._dwd=Fs(()=>new nr(this.svcs))}get docsWithDiagnostics(){return this._dwd()}async validate(r,n){var l,p;let i=this.serviceRegistry.getServices(r.uri).validation.DocumentValidator,s=this.getBuildOptions(r).validation,o=typeof s=="object"?s:void 0,a=await i.validateDocument(r,o,n),c=a.filter(d=>d.document===void 0);r.diagnostics?r.diagnostics.push(...c):r.diagnostics=c,this.docsWithDiagnostics.set(r);let u=a.filter(d=>d.document!==void 0);for(let d of u){if(!d.document)continue;let h=d.document;delete d.document,h.diagnostics=h.diagnostics||[],h.diagnostics.push(d),this.docsWithDiagnostics.set(h)}let f=this.buildState.get(r.uri.toString());if(f){(l=f.result)!=null||(f.result={});let d=(p=o==null?void 0:o.categories)!=null?p:_c.all;f.result.validationChecks?f.result.validationChecks.push(...d):f.result.validationChecks=[...d]}}},Vy=class extends Iu{toDiagnostic(e,r,n){return Y(C({},super.toDiagnostic(e,r,n)),{document:Fe.getDocument(n.node)})}};var jy=class extends Lu{isAffected(e,r){return new Set(Array.from(r.values()).map(s=>De.parse(s)).map(ee.dirname).map(s=>s.toString())).has(ee.dirname(e.uri).toString())?!0:super.isAffected(e,r)}};var j7=Symbol("ref_resolving"),Uy=class{constructor(e){this.svcs=e;this.reflection=this.svcs.shared.AstReflection;this.scopeProvider=this.svcs.references.ScopeProvider;this.astNodeLocator=this.svcs.workspace.AstNodeLocator;this.langiumDocuments=()=>this.svcs.shared.workspace.LangiumDocuments}async link(e,r=ye.CancellationToken.None){for(let n of Fe.streamAst(e.parseResult.value))await it(r),Fe.streamReferences(n).forEach(i=>this.doLink(i,e))}doLink(e,r){var i;let n=e.reference;if(n._ref===void 0){n._ref=j7;try{let s=this.getCandidate(e);if(eo(s))n._ref=s;else if(n._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){let o=this.loadAstNode(s);n._ref=o!=null?o:this.createLinkingError(e,s)}else n._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${n.$refText}':`,s);let o=(i=s.message)!=null?i:String(s);n._ref=Y(C({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${o}`})}r.references.push(n)}}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getAllElements().filter(a=>a.name===e.reference.$refText).toArray(),i=a=>Fe.getDocument(a).uri.path.endsWith(".h.kumori");G2(e.container)&&(n=n.filter(a=>i(a.node)));let s=n.filter(a=>!i(a.node)).pop();if(s!==void 0)return s;let o=n.filter(a=>i(a.node)).pop();return o!==void 0?o:this.createLinkingError(e)}buildReference(e,r,n,i){let s=this,o={$refNode:n,$refText:i,get ref(){var a;if(It(this._ref))return this._ref;if(um(this._nodeDescription)){let c=s.loadAstNode(this._nodeDescription);this._ref=c!=null?c:s.createLinkingError({reference:o,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){this._ref=j7;let c=Fe.findRootNode(e).$document,u=s.getLinkedNode({reference:o,container:e,property:r});if(u.error&&c&&c.state<er.ComputedScopes)return this._ref=void 0;this._ref=(a=u.node)!=null?a:u.error,this._nodeDescription=u.descr,c==null||c.references.push(this)}else if(this._ref===j7)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${r} (symbol '${i}')`);return It(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return eo(this._ref)?this._ref:void 0}};return o}getLinkedNode(e){var r;try{let n=this.getCandidate(e);if(eo(n))return{error:n};let i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(e,n)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);let i=(r=n.message)!=null?r:String(n);return{error:Y(C({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;let r=this.langiumDocuments().getDocument(e.documentUri);if(r)return this.astNodeLocator.getAstNode(r.parseResult.value,e.path)}createLinkingError(e,r){let n=Fe.findRootNode(e.container).$document;n&&n.state<er.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);let i=this.reflection.getReferenceType(e);return Y(C({},e),{message:`Could not resolve reference to ${i} '${e.reference.$refText}'.`,targetDescription:r})}};function TI(t,e){if(t.scheme!==e.scheme)return!1;let r=ee.relative(t,e);return!!r&&!r.startsWith("..")&&!r.startsWith("/")}function CI(t,e){if(t.scheme!==e.scheme)return!1;let r=ee.relative(t,e);return!!r&&!r.startsWith("..")&&!r.startsWith("/")&&r.split("/").length==1}function qy(t){return t.path.endsWith("/")?t:t.with({path:t.path+"/"})}var Le=t=>({$type:"ok",value:t}),oe=t=>({$type:"err",err:t}),N;(p=>(p.isOk=d=>d.$type==="ok",p.isErr=d=>d.$type==="err",p.is=d=>typeof d!="object"||d===null||!("$type"in d)||typeof d.$type!="string"||!(d.$type==="ok"&&"value"in d)&&!(d.$type==="err"&&"err"in d)?!1:(0,p.isOk)(d)||(0,p.isErr)(d),p.map=(d,h)=>(0,p.isErr)(d)?d:Le(h(d.value)),p.flatMap=(d,h)=>(0,p.isErr)(d)?d:h(d.value),p.mapErr=(d,h)=>(0,p.isOk)(d)?d:oe(h(d.err)),p.flatMapErr=(d,h)=>(0,p.isOk)(d)?d:h(d.err),p.orElse=(d,h)=>(0,p.isOk)(d)?d.value:h(d.err),p.from=d=>{let h=d();return p.is(h)?(p.isErr(h),h):Le(h)},p.fromAsync=async d=>{let h=await d();return p.is(h)?(p.isErr(h),h):Le(h)},p.tryCatch=(d,h)=>{h!=null||(h=g=>g);try{return Le(d())}catch(g){return oe(h(g))}},p.tryCatchAsync=async(d,h)=>{h!=null||(h=g=>g);try{return Le(await d())}catch(g){return oe(h(g))}}))(N||(N={}));var Ut=t=>Le(t),ot=oe(void 0),ue;(c=>(c.isSome=u=>N.isOk(u),c.isNone=u=>N.isErr(u),c.is=u=>{if(typeof u!="object"||u===null)return!1;let f=u;return f.$type==="ok"&&"value"in f||f.$type==="err"},c.map=(u,f)=>(0,c.isSome)(u)?Ut(f(u.value)):ot,c.flatMap=(u,f)=>(0,c.isSome)(u)?f(u.value):ot,c.fromNullable=u=>u?Ut(u):ot,c.from=u=>{let f=u();return f==null?ot:c.is(f)?f:Ut(f)},c.orElse=(u,f)=>(0,c.isSome)(u)?u.value:f()))(ue||(ue={}));var Ln=(t,e)=>`${t}@${e}`;var By=class{constructor(e){this.svcs=e;this.Modules=new Map;this.getModulesCache=new nr(this.svcs);this.resolveCache=new nr(this.svcs);this.DependencyResolutionCache=new Map;this.ResolverCtx=Fs(()=>({svcs:this.svcs,cache:this.DependencyResolutionCache}))}get folders(){return this.svcs.workspace.WorkspaceManager.workspaceFolders}get ready(){return this.svcs.workspace.WorkspaceManager.ready}resolve(e,r){let n=`${e.Root.toString()}:${r}`,i=this.resolveCache.get(n);if(i)return i;let s=(()=>{var f;let o,a=[e.Manifest.module];a=a.concat(e.Manifest.requires.map(l=>{var p;return(p=l.alias)!=null?p:l.target})),e.Manifest.headers!==void 0&&(a=a.concat(e.Manifest.headers.target));for(let l of a)r.startsWith(l)&&(!o||l.length>o.length)&&(o=l);if(o===void 0)return ot;let c=r.slice(o.length);if(o===e.Manifest.module)return N.map(N.mapErr(this.getModule(e.Root),()=>{}),l=>({mod:l,path:c}));let u=e.Manifest.requires.find(l=>{var p;return((p=l.alias)!=null?p:l.target)===o});if(u!==void 0){let l=this.DependencyResolutionCache.get(Ln(u.target,u.version));return l===void 0?ot:ue.isNone(l)&&u.headers!==void 0&&(l=this.DependencyResolutionCache.get(Ln(u.headers.target,u.headers.version)),l===void 0)?ot:N.map(l,p=>({mod:p,path:c}))}if(o===((f=e.Manifest.headers)==null?void 0:f.target)){let l=e.Manifest.headers,p=this.DependencyResolutionCache.get(Ln(l.target,l.version));return p===void 0?ot:N.map(p,d=>({mod:d,path:c}))}return ot})();return this.resolveCache.set(n,s),s}getModule(e){let r=qy(e).toString(),n=this.getModulesCache.get(r);if(n)return this.Modules.get(n);let i;for(let[s]of this.Modules)r.startsWith(s)&&(!i||s.length>i.length)&&(i=s);return i?(this.getModulesCache.set(r,i),this.getModule(e)):oe("module not found")}async registerModule(e){this.Modules.set(e.Root.toString(),Le(e))}invalidateModule(e){let r=this.getModule(e);if(N.isErr(r))return;let n=r.value.Docs.map(s=>this.svcs.workspace.LangiumDocuments.getDocument(s)).filter(s=>s!==void 0),i=this.svcs.workspace.LangiumDocuments;for(let s of n)i.invalidateDocument(s.uri)}};var N1="kumori",Nne="/";function kI(t,e){let r=De.file(t),n=ee.relative(Nne,ee.dirname(r)),i=ee.basename(r).split(".").slice(0,-1).concat(["kumori"]).join(".");return{uri:ee.joinPath(De.parse(`${N1}:///`),n,i),data:e.trimStart()}}var One=()=>oe(void 0),fp=De.parse(`${N1}:///`),Gr={Stdlib:fp,Kumori:ee.joinPath(fp,"kumori"),KumoriBuiltin:ee.joinPath(fp,"kumori","builtin"),Strconv:ee.joinPath(fp,"strconv"),IO:ee.joinPath(fp,"io")},Hy=class{constructor(e){this.svcs=e;this.PackageDocumentsCache=new nr(this.svcs.shared)}ResolveImportedPackage(e,r){let n=(()=>{let i=this.svcs.shared.references.KumoriModules,s=this.GetPackageURI(e),o=i.getModule(s);if(N.isErr(o))return;let a=i.resolve(o.value,r);if(!ue.isNone(a))return ee.joinPath(a.value.mod.Root,a.value.path)})();return n===void 0&&(n=ee.joinPath(fp,r)),this.GetPackage(n)}GetPackage(e){let r;e instanceof De?r=e:r=this.GetPackageURI(e);let n=this.PackageDocumentsCache.get(r.toString());if(n!==void 0)return n;let i=this._PackageDocuments(r);if(!i.length)return One();let o=i.map(this._PackageName).filter(u=>u!==void 0).pop()||this._InferPackageName(r),c=Le({uri:r,docs:i,name:o});return this.PackageDocumentsCache.set(r.toString(),c),c}GetPackageURI(e){return It(e)&&(e=Fe.getDocument(e)),this._BasePackage(e.uri)}_BasePackage(e){return ee.dirname(e)}_PackageDocuments(e){return this.svcs.shared.workspace.LangiumDocuments.all.filter(r=>CI(e,r.uri)).toArray()}_PackageName(e){var n;let r=e.parseResult.value;if(d1(r))return(n=r.declaration)==null?void 0:n.name}_InferPackageName(e){return ee.basename(e)}};var Ra=ke(require("assert"),1);var rl="self",O1="var",nl="interface",zy=class{constructor(e){this.svcs=e;this.nameProvider=this.svcs.references.NameProvider;this.descriptions=this.svcs.workspace.AstNodeDescriptionProvider;this.pkg=this.svcs.references.KumoriPackages}async computeExports(e,r=ye.CancellationToken.None){var o,a;let n=[];(0,Ra.default)(d1(e.parseResult.value));let i=e.parseResult.value;for(let c of((a=(o=i==null?void 0:i.library)==null?void 0:o.body)==null?void 0:a.statements)||[]){if((c==null?void 0:c.name)===void 0)continue;let u=this.descriptions.createDescription(c,c.name,e);n.push(u)}let s=wI();for(let c of(i==null?void 0:i.artifacts)||[]){await it(r);let u=this.descriptions.createDescription(c,s(c),e);n.push(u)}return n}async computeLocalScopes(e,r=ye.CancellationToken.None){var u,f;(0,Ra.default)(d1(e.parseResult.value));let n=e.parseResult.value,i=new On,s=[],o=(l,p)=>this.descriptions.createDescription(l,p,e),a=wI();for(let l of n.artifacts||[])s.push(o(l,a(l))),await it(r),await this.computeArtifactScopes(r,l,i,o);i.addAll(n,s);let c=[];for(let l of((f=(u=n.library)==null?void 0:u.body)==null?void 0:f.statements)||[])l.name&&(c.push(o(l,l.name)),await it(r));i.addAll(n,c);for(let l of n.imports||[])i.addAll(l,[]);return i}async computeArtifactScopes(e,r,n,i){await this.computeArtifactProperties(e,r.body,n,i);let s=C({},r),o=i(s,O1),a=await this.computeArtifactVariables(e,r.body,i);n.addAll(s,a);let u=[i(r.body,rl),o];if(!Bn(r)){let f=i(r.name,nl);u.push(f)}for(let f of Fe.streamAllContents(r.body).filter(ri))n.addAll(f,u)}async computeArtifactVariables(e,r,n){await it(e);let i=[],s=r.stmt.filter(zu).map(o=>o.variables).flat();for(let o of s){let a=n(o,o.key);i.push(a)}return i}async computeArtifactProperties(e,r,n,i){await it(e),await this.computeArtifacBodyScopesInternal(e,r,n,i)}async computeArtifacBodyScopesInternal(e,r,n,i){await it(e);let s=[],o=Md(r)?r.stmt:_i(r)?r.entries:void 0;(0,Ra.default)(o!==void 0);for(let a of o){if(zu(a))continue;let c=i(a,a.key);s.push(c),a.value&&_i(a.value)&&await this.computeArtifacBodyScopesInternal(e,a.value,n,i)}n.addAll(r,s)}};function wI(){let t=0;return e=>Bn(e)?`#deployment#${t++}`:e.name.value.$refText}var Wy=class{constructor(e){this.svcs=e;this.reflection=this.svcs.shared.AstReflection;this.indexManager=this.svcs.shared.workspace.IndexManager;this.documents=this.svcs.shared.workspace.LangiumDocuments;this.descriptions=this.svcs.workspace.AstNodeDescriptionProvider;this.pkg=this.svcs.references.KumoriPackages;this.stdlibScopeCache=new nr(this.svcs.shared);this.packageScopeCache=new nr(this.svcs.shared);this.moduleExportsCache=new nr(this.svcs.shared)}getScope(e){return this.getScopeInternal(e)}getScopeInternal(e){let r=e.container;return jd(r)?this.getImportScope(r):ri(r)?this.getIdentifierExpressionScope(r):this.getGenericScope(r)}getGenericScope(e){let r=us;return r=new Cn(r.getAllElements(),this.getLocalScope(e)),r=new Cn(r.getAllElements(),this.getImportsScope(e)),r=new Cn(r.getAllElements(),this.getPackageScope(e)),r=new Cn(r.getAllElements(),this.getHeaderPackageScope(e)),r=new Cn(r.getAllElements(),this.getStdlibScope()),r}getImportScope(e){let r=this.pkg.ResolveImportedPackage(e,e.target.$refText);if(N.isErr(r))return us;let n=r.value.docs[0].parseResult.value;q9(n)&&n.declaration&&(n=n.declaration);let i=this.descriptions.createDescription(n,e.target.$refText);return new Pu([i])}getIdentifierExpressionScope(e){if(!ri(e.$container))return this.getGenericScope(e);let r=e.$container.value.ref;return G2(r)&&r.value.ref&&(r=r.value.ref,(0,Ra.default)(r===void 0||Ca(r)||Ns(r)||Ta(r)),r=r==null?void 0:r.body),r===void 0?us:jd(r)?new Cn(nt(this.getModuleExports(r))):zr(r)&&r.value?this.getLocalScope(r.value):this.getLocalScope(r)}getLocalScope(e){let r=Fe.getDocument(e).precomputedScopes;return r?new Cn(nt(r.get(e))):us}getImportsScope(e){var i;let r=Fe.getContainerOfType(e,q9);if(!r)return us;let n=[];for(let s of r.imports||[]){let o=this.pkg.ResolveImportedPackage(s,s.target.$refText);if(N.isErr(o))continue;let a=this.descriptions.createDescription(s,(i=s.alias)!=null?i:o.value.name);n.push(a)}return new Cn(nt(n))}getImportedItems(e){let r=e.alias;if(!r){let s=this.pkg.ResolveImportedPackage(e,e.target.$refText);N.isOk(s)&&(r=s.value.name)}r!==""&&(r=r+".");let n=s=>({documentUri:s.documentUri,name:s.name,path:s.path,type:s.type,nameSegment:s.nameSegment,node:s.node,selectionSegment:s.selectionSegment}),i=[];for(let s of this.getModuleExports(e)){let o=n(s);o.name=r+o.name,i.push(o)}return i}getModuleExports(e){if(!e.target.ref)return[];let r=Fe.getDocument(e.target.ref),n=this.pkg.GetPackage(r);if(N.isErr(n))return[];let i=this.moduleExportsCache.get(n.value.uri.toString());if(i!==void 0)return i;let s=n.value.docs.map(a=>a.uri.toString()),o=this.indexManager.allElements(void 0,new Set(s)).toArray();return this.moduleExportsCache.set(n.value.uri.toString(),o),o}getPackageScope(e){let r=this.pkg.GetPackage(e);if(N.isErr(r))return us;let n=r.value.uri.toString();if(this.packageScopeCache.has(n)){let o=this.packageScopeCache.get(n);return(0,Ra.default)(o),o}let i=this.indexManager.allElements(void 0,new Set(r.value.docs.map(o=>o.uri.toString()))),s=new Cn(nt(Array.from(i)));return this.packageScopeCache.set(n,s),s}getHeaderPackageScope(e){let r=this.svcs.shared.references.KumoriModules,n=Fe.getDocument(e),i=r.getModule(n.uri);if(N.isErr(i))return us;let s=i.value.Manifest.headers;if(s===void 0)return us;let o=r.resolve(i.value,s.target);if(ue.isNone(o))return us;let a=n.uri.toString().replace(i.value.Root.toString(),o.value.mod.Root.toString()),c=this.pkg._BasePackage(De.parse(a)),u=this.pkg.GetPackage(c);if(N.isErr(u))return us;let f=u.value.uri.toString();if(this.packageScopeCache.has(f)){let d=this.packageScopeCache.get(f);return(0,Ra.default)(d),d}let l=this.indexManager.allElements(void 0,new Set(u.value.docs.map(d=>d.uri.toString()))),p=new Cn(nt(Array.from(l)));return this.packageScopeCache.set(f,p),p}getStdlibScope(){let e=this.pkg.GetPackage(Gr.Stdlib);(0,Ra.default)(N.isOk(e));let r=us;for(let n of e.value.docs){let i,s=n.uri.toString();if(this.stdlibScopeCache.has(s)){let o=this.stdlibScopeCache.get(s);(0,Ra.default)(o),i=o}else{let o=this.indexManager.allElements(void 0,new Set([n.uri.toString()]));i=new Cn(nt(Array.from(o))),this.stdlibScopeCache.set(s,i)}r=new Cn(r.getAllElements(),i)}return r}};var Jr=ke(Ui(),1);var I1;(e=>e.from=(r,n)=>{let i=ee.dirname(n.documentUri)+"@"+r;return{name:r,id:i,path:n.path}})(I1||(I1={}));var qi;(n=>(n.$type="optional",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(qi||(qi={}));var co;(n=>(n.$type="either",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(co||(co={}));var Dt;(n=>(n.$type="any",n.create=(i={})=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Dt||(Dt={}));var qt;(n=>(n.$type="bool",n.create=(i={})=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(qt||(qt={}));var yt;(n=>(n.$type="string",n.create=(i={})=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(yt||(yt={}));var _t;(n=>(n.$type="number",n.create=(i={})=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(_t||(_t={}));var ne;(o=>(o.$type="struct",o.create=a=>C({$type:o.$type},a),o.is=a=>a.$type===o.$type,o.define=a=>{let c=Object.fromEntries(Object.entries(a.parameters).map(([u,f])=>[u,Ho.create({value:f,optional:!1})]));return(0,o.create)(Y(C({},a),{parameters:c}))},o.open=(a={},c=Dt)=>(0,o.define)({open:!0,parameters:a,restriction:c}),o.closed=(a={},c=Dt)=>(0,o.define)({open:!1,parameters:a,restriction:c})))(ne||(ne={}));var Ho;(e=>e.create=r=>C({},r))(Ho||(Ho={}));var zn;(n=>(n.$type="list",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(zn||(zn={}));var ir;(n=>(n.$type="function",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(ir||(ir={}));var Ky;(e=>e.create=r=>C({},r))(Ky||(Ky={}));var AI=[qt.$type,yt.$type,_t.$type],Ic;(r=>(r.is=n=>(0,r.eq)(n.$type),r.eq=n=>AI.includes(n)))(Ic||(Ic={}));var Ine=[...AI,Dt.$type],zo;(n=>(n.create=(i,s)=>({node:s,$type:i}),n.is=i=>(0,n.eq)(i.$type),n.eq=i=>Ine.includes(i)))(zo||(zo={}));var Pa;(e=>e.is=r=>ds.is(r)||Dr.is(r))(Pa||(Pa={}));var ds;(n=>(n.$type="type-def-alias",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(ds||(ds={}));var Dr;(n=>(n.$type="type-def-named",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Dr||(Dr={}));var de;(n=>(n.$type="error",n.create=i=>C({$type:n.$type},i),n.is=i=>typeof i=="object"&&i!==null&&"$type"in i&&i.$type===n.$type&&"message"in i&&typeof i.message=="string"&&"node"in i&&It(i.node)))(de||(de={}));function se(t){if(co.is(t))return t.variations.map(se).join(" | ");if(ir.is(t)){let e=se(t.returns),r=t.params.map(({name:n,value:i})=>`${n}: ${se(i)}`).join(", ");return`func ${t.meta.name}(${r}) => ${e}`}if(ne.is(t))return`struct { ${Array.from(Object.entries(t.parameters)).filter(([,r])=>r!==void 0).map(([r,n])=>`${r}: ${se(n.value)}`).join(", ")} }`;if(zn.is(t))return`[]${se(t.restriction)}`;if(ds.is(t))return`alias ${t.name}: ${se(t.spec)}`;if(Dr.is(t))return`type ${t.meta.id}: ${se(t.spec)}`;if(qi.is(t))return`Optional<${se(t.inner)}>`;if(Ic.is(t)&&t.literal!==void 0)switch(t.$type){case"string":return`"${t.literal}"`;case"number":return`${t.literal}`;case"bool":return`${t.literal}`}return t.$type}function U7(t,e,...r){var i;let n=(i=t.parameters[e])==null?void 0:i.value;return n===void 0?ot:r.length===0?Ut(n):ne.is(n)?U7(n,...r):ot}var Gy=class extends Ay{constructor(r){super(r);this.svcs=r;this.types=this.svcs.validation.KumoriTypeSystem;this.ctx=this.types.NewContext()}highlightElement(r,n){if(ri(r))return RI(this,r,n);if(Ud(r))return n({node:r,property:"value",type:Jr.SemanticTokenTypes.number});if(qd(r))return n({node:r,property:"value",type:Jr.SemanticTokenTypes.number});if(Bd(r))return n({node:r,property:"value",type:Jr.SemanticTokenTypes.string});if(Vd(r))return n({node:r,property:"value",type:Jr.SemanticTokenTypes.keyword});if(VA(r))return n({node:r,property:"name",type:Jr.SemanticTokenTypes.namespace});if(jd(r))return n({node:r,property:"alias",type:Jr.SemanticTokenTypes.namespace});if(MA(r))return n({node:r,property:"name",type:Jr.SemanticTokenTypes.parameter});if(zr(r))return n({node:r,property:"key",type:Jr.SemanticTokenTypes.variable});if(Ku(r))return n({node:r,property:"name",type:Jr.SemanticTokenTypes.type});if(Wu(r))return n({node:r,property:"name",type:Jr.SemanticTokenTypes.type});if(Y2(r)){n({node:r,property:"name",type:Jr.SemanticTokenTypes.function}),RI(this,r.returns,n);return}}};function RI(t,e,r){let n=e.value.ref;if(!n)return r({node:e,property:"value",type:Jr.SemanticTokenTypes.variable});if([rl,O1,nl].includes(e.value.$refText))return r({node:e,property:"value",type:Jr.SemanticTokenTypes.keyword});if(!ri(e.$container)&&zo.eq(e.value.$refText))return r({node:e,property:"value",type:Jr.SemanticTokenTypes.keyword});if(jd(n))return r({node:e,property:"value",type:Jr.SemanticTokenTypes.namespace});if(Fd(n))return r({node:e,property:"value",type:Jr.SemanticTokenTypes.variable});let[i]=t.types.Infer(t.ctx,n);if(i!==void 0)return Pa.is(i)?r({node:e,property:"value",type:Jr.SemanticTokenTypes.type}):ir.is(i)?r({node:e,property:"value",type:Jr.SemanticTokenTypes.function}):ne.is(i)?r({node:e,property:"value",type:Jr.SemanticTokenTypes.struct}):Ku(n)||Wu(n)?r({node:e,property:"value",type:Jr.SemanticTokenTypes.type}):r({node:e,property:"value",type:Jr.SemanticTokenTypes.variable})}var PI=ke(require("assert"),1);function il(t,e){let r=new Set(t);for(let n of t)e.has(n)&&r.delete(n);return r}function Jy(t,e){let r=t,n=e;e.size<t.size&&(r=e,n=t);let i=new Set;for(let s of r)n.has(s)&&i.add(s);return i}function Bi(t,e){return e!==void 0?Y(C({},t),{node:e}):t}var D1=()=>Le(void 0);function ps(t,e,r){let n=t.cache.get(e,r);if(n)return n;t.cache.set(e,r,oe([{from:e,to:r,cause:"recursive expression"}]));let i=Dne(t,e,r);return t.cache.set(e,r,i),i}function Dne(t,e,r){if(Dt.is(e)||Dt.is(r))return D1();if(qi.is(e)&&qi.is(r))return ps(t,e.inner,r.inner);if(qi.is(r))return ps(t,e,r.inner);if(ds.is(e))return ps(t,e.spec,r);if(ds.is(r))return ps(t,e,r.spec);if(ir.is(e))return ps(t,e.returns,r);if(co.is(e)&&e.variations.length){let f=e.variations.map(l=>ps(t,l,r)).filter(N.isErr);return f.length?oe(f.map(({err:l})=>l).flat()):D1()}if(co.is(r)&&r.variations.length){let f=r.variations.map(l=>ps(t,e,l)).filter(N.isErr);return f.length===r.variations.length?oe(f.map(({err:l})=>l).flat()):D1()}let n=qt.is(e)&&qt.is(r)&&(r.literal===void 0||e.literal===r.literal),i=yt.is(e)&&yt.is(r)&&(r.literal===void 0||e.literal===r.literal),s=_t.is(e)&&_t.is(r)&&(r.literal===void 0||e.literal===r.literal),o=Dr.is(e)&&Dr.is(r)&&e.meta.id===r.meta.id;if(n||i||s||o)return D1();if(zn.is(e)&&zn.is(r))return ps(t,e.restriction,r.restriction);if(ne.is(e)&&ne.is(r)){let u=[],f=new Set(Object.keys(e.parameters)),l=new Set(Object.keys(r.parameters)),p=new Set(Object.entries(r.parameters).filter(([,$])=>$==null?void 0:$.optional).map(([$])=>$)),d=Jy(l,f),g=Array.from(d.entries()).map(([$])=>[$,ps(t,Bi(e.parameters[$].value,e.parameters[$].node),r.parameters[$].value)]).map(([,$])=>$).filter($=>N.isErr($)).map($=>$.err).flat(),v=[];if(r.restriction)for(let $ of f){let K=e.parameters[$];(0,PI.default)(K!==void 0);let z=ps(t,Bi(K.value,K.node),r.restriction);N.isErr(z)&&(v=v.concat(z.err))}let b=[];if(e.restriction&&r.restriction){let $=ps(t,Bi(e.restriction,e),r.restriction);N.isErr($)&&(b=$.err)}let _=il(l,d),x=p;_=il(_,x);let T=[];r.open||(T=Array.from(_).map($=>[$,`key '${$}' is missing`]).map(([$,K])=>({from:e,to:Y(C({},r),{node:r.parameters[$].node}),cause:K})));let R="";if(_.size){let $=Array.from(x.keys()).map(W=>W+"?"),K=Array.from(_.keys());R=`: must be one of [${[...$,...K].sort().join(", ")}]`}let V=[];if(!r.open){let $=_.size?R:"",K=il(f,l);K.size>0&&($=`must be one of [${Array.from(l).join(", ")}]`,V=Array.from(K.keys()).map(z=>[z,`key '${z}' not allowed ${$}`]).map(([z,W])=>({from:ne.create(Y(C({},e),{node:e.parameters[z].node})),to:r,cause:W})))}return u=u.concat(g,v,b,T,V),u.length?oe(u):D1()}let c=`cannot assign '${se(e)}' to '${se(r)}'`;return oe([{from:e,to:r,cause:c}])}function Qy(t){let e=[],r=t;for(;ri(r);)e.push(r),r=r.next;return e}function Yy(t){for(;ri(t.next);)t=t.next;return t}var q7=ke(require("assert"),1);function Zy(t,e){(0,q7.default)(e.node);let r=t.references.KumoriPackages.GetPackage(e.node);return(0,q7.default)(N.isOk(r)),dp(r.value.uri,e.meta.name)}var dp=(t,e)=>`${t.toString()}@${e}`,NI=dp(Gr.Strconv,"Format"),OI=dp(Gr.Strconv,"JSON"),II=dp(Gr.Strconv,"Concat"),DI=dp(Gr.Strconv,"Join"),LI=dp(Gr.IO,"Open"),Wn={strconv:{Format:NI,JSON:OI,Concat:II,Join:DI},io:{Open:LI}},ODe={[NI]:Wn.strconv.Format,[OI]:Wn.strconv.JSON,[II]:Wn.strconv.Concat,[DI]:Wn.strconv.Join,[LI]:Wn.io.Open};var k={};ua(k,{BRAND:()=>oie,DIRTY:()=>sl,EMPTY_PATH:()=>Fne,INVALID:()=>Qe,NEVER:()=>Hie,OK:()=>oi,ParseStatus:()=>Kn,Schema:()=>vt,ZodAny:()=>$c,ZodArray:()=>Da,ZodBigInt:()=>al,ZodBoolean:()=>cl,ZodBranded:()=>$1,ZodCatch:()=>xl,ZodDate:()=>ul,ZodDefault:()=>vl,ZodDiscriminatedUnion:()=>t4,ZodEffects:()=>Us,ZodEnum:()=>gl,ZodError:()=>Hi,ZodFirstPartyTypeKind:()=>tt,ZodFunction:()=>n4,ZodIntersection:()=>pl,ZodIssueCode:()=>ae,ZodLazy:()=>ml,ZodLiteral:()=>hl,ZodMap:()=>vp,ZodNaN:()=>_p,ZodNativeEnum:()=>yl,ZodNever:()=>uo,ZodNull:()=>fl,ZodNullable:()=>Go,ZodNumber:()=>ol,ZodObject:()=>zi,ZodOptional:()=>Vs,ZodParsedType:()=>Ae,ZodPipeline:()=>M1,ZodPromise:()=>Mc,ZodReadonly:()=>_l,ZodRecord:()=>r4,ZodSchema:()=>vt,ZodSet:()=>xp,ZodString:()=>Lc,ZodSymbol:()=>gp,ZodTransformer:()=>Us,ZodTuple:()=>Ko,ZodType:()=>vt,ZodUndefined:()=>ll,ZodUnion:()=>dl,ZodUnknown:()=>Ia,ZodVoid:()=>yp,addIssueToContext:()=>Se,any:()=>hie,array:()=>xie,bigint:()=>lie,boolean:()=>WI,coerce:()=>Bie,custom:()=>BI,date:()=>fie,datetimeRegex:()=>UI,defaultErrorMap:()=>Na,discriminatedUnion:()=>Eie,effect:()=>Lie,enum:()=>Oie,function:()=>Rie,getErrorMap:()=>pp,getParsedType:()=>Wo,instanceof:()=>cie,intersection:()=>Tie,isAborted:()=>Xy,isAsync:()=>mp,isDirty:()=>e4,isValid:()=>Dc,late:()=>aie,lazy:()=>Pie,literal:()=>Nie,makeIssue:()=>L1,map:()=>wie,nan:()=>uie,nativeEnum:()=>Iie,never:()=>yie,null:()=>mie,nullable:()=>Mie,number:()=>zI,object:()=>_ie,objectUtil:()=>B7,oboolean:()=>qie,onumber:()=>Uie,optional:()=>$ie,ostring:()=>jie,pipeline:()=>Vie,preprocess:()=>Fie,promise:()=>Die,quotelessJson:()=>Lne,record:()=>kie,set:()=>Aie,setErrorMap:()=>Mne,strictObject:()=>bie,string:()=>HI,symbol:()=>die,transformer:()=>Lie,tuple:()=>Cie,undefined:()=>pie,union:()=>Sie,unknown:()=>gie,util:()=>Et,void:()=>vie});var Et;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Et||(Et={}));var B7;(function(t){t.mergeShapes=(e,r)=>C(C({},e),r)})(B7||(B7={}));var Ae=Et.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Wo=t=>{switch(typeof t){case"undefined":return Ae.undefined;case"string":return Ae.string;case"number":return Number.isNaN(t)?Ae.nan:Ae.number;case"boolean":return Ae.boolean;case"function":return Ae.function;case"bigint":return Ae.bigint;case"symbol":return Ae.symbol;case"object":return Array.isArray(t)?Ae.array:t===null?Ae.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?Ae.promise:typeof Map!="undefined"&&t instanceof Map?Ae.map:typeof Set!="undefined"&&t instanceof Set?Ae.set:typeof Date!="undefined"&&t instanceof Date?Ae.date:Ae.object;default:return Ae.unknown}};var ae=Et.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Lne=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Hi=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;c<o.path.length;){let u=o.path[c];c===o.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(o))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Et.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Hi.create=t=>new Hi(t);var $ne=(t,e)=>{let r;switch(t.code){case ae.invalid_type:t.received===Ae.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case ae.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Et.jsonStringifyReplacer)}`;break;case ae.unrecognized_keys:r=`Unrecognized key(s) in object: ${Et.joinValues(t.keys,", ")}`;break;case ae.invalid_union:r="Invalid input";break;case ae.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Et.joinValues(t.options)}`;break;case ae.invalid_enum_value:r=`Invalid enum value. Expected ${Et.joinValues(t.options)}, received '${t.received}'`;break;case ae.invalid_arguments:r="Invalid function arguments";break;case ae.invalid_return_type:r="Invalid function return type";break;case ae.invalid_date:r="Invalid date";break;case ae.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:Et.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case ae.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case ae.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case ae.custom:r="Invalid input";break;case ae.invalid_intersection_types:r="Intersection results could not be merged";break;case ae.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case ae.not_finite:r="Number must be finite";break;default:r=e.defaultError,Et.assertNever(t)}return{message:r}},Na=$ne;var $I=Na;function Mne(t){$I=t}function pp(){return $I}var L1=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o=Y(C({},i),{path:s});if(i.message!==void 0)return Y(C({},i),{path:s,message:i.message});let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return Y(C({},i),{path:s,message:a})},Fne=[];function Se(t,e){let r=pp(),n=L1({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Na?void 0:Na].filter(i=>!!i)});t.common.issues.push(n)}var Kn=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return Qe;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Qe;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value!="undefined"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},Qe=Object.freeze({status:"aborted"}),sl=t=>({status:"dirty",value:t}),oi=t=>({status:"valid",value:t}),Xy=t=>t.status==="aborted",e4=t=>t.status==="dirty",Dc=t=>t.status==="valid",mp=t=>typeof Promise!="undefined"&&t instanceof Promise;var He;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(He||(He={}));var js=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},MI=(t,e)=>{if(Dc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Hi(t.common.issues);return this._error=r,this._error}}};function ht(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,f;let{message:c}=t;return o.code==="invalid_enum_value"?{message:c!=null?c:a.defaultError}:typeof a.data=="undefined"?{message:(u=c!=null?c:n)!=null?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(f=c!=null?c:r)!=null?f:a.defaultError}},description:i}}var vt=class{get description(){return this._def.description}_getType(e){return Wo(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Wo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Kn,ctx:{common:e.parent.common,data:e.data,parsedType:Wo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(mp(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var s;let n={common:{issues:[],async:(s=r==null?void 0:r.async)!=null?s:!1,contextualErrorMap:r==null?void 0:r.errorMap},path:(r==null?void 0:r.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)},i=this._parseSync({data:e,path:n.path,parent:n});return MI(n,i)}"~validate"(e){var n,i;let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)};if(!this["~standard"].async)try{let s=this._parseSync({data:e,path:[],parent:r});return Dc(s)?{value:s.value}:{issues:r.common.issues}}catch(s){(i=(n=s==null?void 0:s.message)==null?void 0:n.toLowerCase())!=null&&i.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(s=>Dc(s)?{value:s.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r==null?void 0:r.errorMap,async:!0},path:(r==null?void 0:r.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wo(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(mp(i)?i:Promise.resolve(i));return MI(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r=="undefined"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue(C({code:ae.custom},n(i)));return typeof Promise!="undefined"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Us({schema:this,typeName:tt.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Vs.create(this,this._def)}nullable(){return Go.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Da.create(this)}promise(){return Mc.create(this,this._def)}or(e){return dl.create([this,e],this._def)}and(e){return pl.create(this,e,this._def)}transform(e){return new Us(Y(C({},ht(this._def)),{schema:this,typeName:tt.ZodEffects,effect:{type:"transform",transform:e}}))}default(e){let r=typeof e=="function"?e:()=>e;return new vl(Y(C({},ht(this._def)),{innerType:this,defaultValue:r,typeName:tt.ZodDefault}))}brand(){return new $1(C({typeName:tt.ZodBranded,type:this},ht(this._def)))}catch(e){let r=typeof e=="function"?e:()=>e;return new xl(Y(C({},ht(this._def)),{innerType:this,catchValue:r,typeName:tt.ZodCatch}))}describe(e){let r=this.constructor;return new r(Y(C({},this._def),{description:e}))}pipe(e){return M1.create(this,e)}readonly(){return _l.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Vne=/^c[^\s-]{8,}$/i,jne=/^[0-9a-z]+$/,Une=/^[0-9A-HJKMNP-TV-Z]{26}$/i,qne=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Bne=/^[a-z0-9_-]{21}$/i,Hne=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zne=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Wne=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Kne="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",H7,Gne=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Jne=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Qne=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Yne=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zne=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Xne=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,VI="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",eie=new RegExp(`^${VI}$`);function jI(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function tie(t){return new RegExp(`^${jI(t)}$`)}function UI(t){let e=`${VI}T${jI(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function rie(t,e){return!!((e==="v4"||!e)&&Gne.test(t)||(e==="v6"||!e)&&Qne.test(t))}function nie(t,e){if(!Hne.test(t))return!1;try{let[r]=t.split("."),n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&i.alg!==e)}catch(r){return!1}}function iie(t,e){return!!((e==="v4"||!e)&&Jne.test(t)||(e==="v6"||!e)&&Yne.test(t))}var Lc=class t extends vt{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Ae.string){let s=this._getOrReturnCtx(e);return Se(s,{code:ae.invalid_type,expected:Ae.string,received:s.parsedType}),Qe}let n=new Kn,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?Se(i,{code:ae.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&Se(i,{code:ae.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")Wne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"email",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")H7||(H7=new RegExp(Kne,"u")),H7.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"emoji",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")qne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"uuid",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")Bne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"nanoid",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")Vne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"cuid",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")jne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"cuid2",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")Une.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"ulid",code:ae.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch(o){i=this._getOrReturnCtx(e,i),Se(i,{validation:"url",code:ae.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"regex",code:ae.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?UI(s).test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?eie.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?tie(s).test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?zne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"duration",code:ae.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?rie(e.data,s.version)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"ip",code:ae.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?nie(e.data,s.alg)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"jwt",code:ae.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?iie(e.data,s.version)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"cidr",code:ae.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?Zne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"base64",code:ae.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?Xne.test(e.data)||(i=this._getOrReturnCtx(e,i),Se(i,{validation:"base64url",code:ae.invalid_string,message:s.message}),n.dirty()):Et.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),C({validation:r,code:ae.invalid_string},He.errToObj(n)))}_addCheck(e){return new t(Y(C({},this._def),{checks:[...this._def.checks,e]}))}email(e){return this._addCheck(C({kind:"email"},He.errToObj(e)))}url(e){return this._addCheck(C({kind:"url"},He.errToObj(e)))}emoji(e){return this._addCheck(C({kind:"emoji"},He.errToObj(e)))}uuid(e){return this._addCheck(C({kind:"uuid"},He.errToObj(e)))}nanoid(e){return this._addCheck(C({kind:"nanoid"},He.errToObj(e)))}cuid(e){return this._addCheck(C({kind:"cuid"},He.errToObj(e)))}cuid2(e){return this._addCheck(C({kind:"cuid2"},He.errToObj(e)))}ulid(e){return this._addCheck(C({kind:"ulid"},He.errToObj(e)))}base64(e){return this._addCheck(C({kind:"base64"},He.errToObj(e)))}base64url(e){return this._addCheck(C({kind:"base64url"},He.errToObj(e)))}jwt(e){return this._addCheck(C({kind:"jwt"},He.errToObj(e)))}ip(e){return this._addCheck(C({kind:"ip"},He.errToObj(e)))}cidr(e){return this._addCheck(C({kind:"cidr"},He.errToObj(e)))}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck(C({kind:"datetime",precision:typeof(e==null?void 0:e.precision)=="undefined"?null:e==null?void 0:e.precision,offset:(r=e==null?void 0:e.offset)!=null?r:!1,local:(n=e==null?void 0:e.local)!=null?n:!1},He.errToObj(e==null?void 0:e.message)))}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck(C({kind:"time",precision:typeof(e==null?void 0:e.precision)=="undefined"?null:e==null?void 0:e.precision},He.errToObj(e==null?void 0:e.message)))}duration(e){return this._addCheck(C({kind:"duration"},He.errToObj(e)))}regex(e,r){return this._addCheck(C({kind:"regex",regex:e},He.errToObj(r)))}includes(e,r){return this._addCheck(C({kind:"includes",value:e,position:r==null?void 0:r.position},He.errToObj(r==null?void 0:r.message)))}startsWith(e,r){return this._addCheck(C({kind:"startsWith",value:e},He.errToObj(r)))}endsWith(e,r){return this._addCheck(C({kind:"endsWith",value:e},He.errToObj(r)))}min(e,r){return this._addCheck(C({kind:"min",value:e},He.errToObj(r)))}max(e,r){return this._addCheck(C({kind:"max",value:e},He.errToObj(r)))}length(e,r){return this._addCheck(C({kind:"length",value:e},He.errToObj(r)))}nonempty(e){return this.min(1,He.errToObj(e))}trim(){return new t(Y(C({},this._def),{checks:[...this._def.checks,{kind:"trim"}]}))}toLowerCase(){return new t(Y(C({},this._def),{checks:[...this._def.checks,{kind:"toLowerCase"}]}))}toUpperCase(){return new t(Y(C({},this._def),{checks:[...this._def.checks,{kind:"toUpperCase"}]}))}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Lc.create=t=>{var e;return new Lc(C({checks:[],typeName:tt.ZodString,coerce:(e=t==null?void 0:t.coerce)!=null?e:!1},ht(t)))};function sie(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var ol=class t extends vt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Ae.number){let s=this._getOrReturnCtx(e);return Se(s,{code:ae.invalid_type,expected:Ae.number,received:s.parsedType}),Qe}let n,i=new Kn;for(let s of this._def.checks)s.kind==="int"?Et.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?sie(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.not_finite,message:s.message}),i.dirty()):Et.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,He.toString(r))}gt(e,r){return this.setLimit("min",e,!1,He.toString(r))}lte(e,r){return this.setLimit("max",e,!0,He.toString(r))}lt(e,r){return this.setLimit("max",e,!1,He.toString(r))}setLimit(e,r,n,i){return new t(Y(C({},this._def),{checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:He.toString(i)}]}))}_addCheck(e){return new t(Y(C({},this._def),{checks:[...this._def.checks,e]}))}int(e){return this._addCheck({kind:"int",message:He.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:He.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:He.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:He.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:He.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:He.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:He.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:He.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:He.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Et.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};ol.create=t=>new ol(C({checks:[],typeName:tt.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1},ht(t)));var al=class t extends vt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch(s){return this._getInvalidInput(e)}if(this._getType(e)!==Ae.bigint)return this._getInvalidInput(e);let n,i=new Kn;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),Se(n,{code:ae.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Et.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return Se(r,{code:ae.invalid_type,expected:Ae.bigint,received:r.parsedType}),Qe}gte(e,r){return this.setLimit("min",e,!0,He.toString(r))}gt(e,r){return this.setLimit("min",e,!1,He.toString(r))}lte(e,r){return this.setLimit("max",e,!0,He.toString(r))}lt(e,r){return this.setLimit("max",e,!1,He.toString(r))}setLimit(e,r,n,i){return new t(Y(C({},this._def),{checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:He.toString(i)}]}))}_addCheck(e){return new t(Y(C({},this._def),{checks:[...this._def.checks,e]}))}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:He.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:He.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:He.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:He.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:He.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};al.create=t=>{var e;return new al(C({checks:[],typeName:tt.ZodBigInt,coerce:(e=t==null?void 0:t.coerce)!=null?e:!1},ht(t)))};var cl=class extends vt{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==Ae.boolean){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.boolean,received:n.parsedType}),Qe}return oi(e.data)}};cl.create=t=>new cl(C({typeName:tt.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1},ht(t)));var ul=class t extends vt{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Ae.date){let s=this._getOrReturnCtx(e);return Se(s,{code:ae.invalid_type,expected:Ae.date,received:s.parsedType}),Qe}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return Se(s,{code:ae.invalid_date}),Qe}let n=new Kn,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),Se(i,{code:ae.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):Et.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t(Y(C({},this._def),{checks:[...this._def.checks,e]}))}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:He.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:He.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};ul.create=t=>new ul(C({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:tt.ZodDate},ht(t)));var gp=class extends vt{_parse(e){if(this._getType(e)!==Ae.symbol){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.symbol,received:n.parsedType}),Qe}return oi(e.data)}};gp.create=t=>new gp(C({typeName:tt.ZodSymbol},ht(t)));var ll=class extends vt{_parse(e){if(this._getType(e)!==Ae.undefined){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.undefined,received:n.parsedType}),Qe}return oi(e.data)}};ll.create=t=>new ll(C({typeName:tt.ZodUndefined},ht(t)));var fl=class extends vt{_parse(e){if(this._getType(e)!==Ae.null){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.null,received:n.parsedType}),Qe}return oi(e.data)}};fl.create=t=>new fl(C({typeName:tt.ZodNull},ht(t)));var $c=class extends vt{constructor(){super(...arguments),this._any=!0}_parse(e){return oi(e.data)}};$c.create=t=>new $c(C({typeName:tt.ZodAny},ht(t)));var Ia=class extends vt{constructor(){super(...arguments),this._unknown=!0}_parse(e){return oi(e.data)}};Ia.create=t=>new Ia(C({typeName:tt.ZodUnknown},ht(t)));var uo=class extends vt{_parse(e){let r=this._getOrReturnCtx(e);return Se(r,{code:ae.invalid_type,expected:Ae.never,received:r.parsedType}),Qe}};uo.create=t=>new uo(C({typeName:tt.ZodNever},ht(t)));var yp=class extends vt{_parse(e){if(this._getType(e)!==Ae.undefined){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.void,received:n.parsedType}),Qe}return oi(e.data)}};yp.create=t=>new yp(C({typeName:tt.ZodVoid},ht(t)));var Da=class t extends vt{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==Ae.array)return Se(r,{code:ae.invalid_type,expected:Ae.array,received:r.parsedType}),Qe;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(Se(r,{code:o?ae.too_big:ae.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(Se(r,{code:ae.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(Se(r,{code:ae.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new js(r,o,r.path,a)))).then(o=>Kn.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new js(r,o,r.path,a)));return Kn.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t(Y(C({},this._def),{minLength:{value:e,message:He.toString(r)}}))}max(e,r){return new t(Y(C({},this._def),{maxLength:{value:e,message:He.toString(r)}}))}length(e,r){return new t(Y(C({},this._def),{exactLength:{value:e,message:He.toString(r)}}))}nonempty(e){return this.min(1,e)}};Da.create=(t,e)=>new Da(C({type:t,minLength:null,maxLength:null,exactLength:null,typeName:tt.ZodArray},ht(e)));function hp(t){if(t instanceof zi){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Vs.create(hp(n))}return new zi(Y(C({},t._def),{shape:()=>e}))}else return t instanceof Da?new Da(Y(C({},t._def),{type:hp(t.element)})):t instanceof Vs?Vs.create(hp(t.unwrap())):t instanceof Go?Go.create(hp(t.unwrap())):t instanceof Ko?Ko.create(t.items.map(e=>hp(e))):t}var zi=class t extends vt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=Et.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==Ae.object){let u=this._getOrReturnCtx(e);return Se(u,{code:ae.invalid_type,expected:Ae.object,received:u.parsedType}),Qe}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof uo&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let f=s[u],l=i.data[u];c.push({key:{status:"valid",value:u},value:f._parse(new js(i,l,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof uo){let u=this._def.unknownKeys;if(u==="passthrough")for(let f of a)c.push({key:{status:"valid",value:f},value:{status:"valid",value:i.data[f]}});else if(u==="strict")a.length>0&&(Se(i,{code:ae.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let f of a){let l=i.data[f];c.push({key:{status:"valid",value:f},value:u._parse(new js(i,l,i.path,f)),alwaysSet:f in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let f of c){let l=await f.key,p=await f.value;u.push({key:l,value:p,alwaysSet:f.alwaysSet})}return u}).then(u=>Kn.mergeObjectSync(n,u)):Kn.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return He.errToObj,new t(C(Y(C({},this._def),{unknownKeys:"strict"}),e!==void 0?{errorMap:(r,n)=>{var s,o,a,c;let i=(a=(o=(s=this._def).errorMap)==null?void 0:o.call(s,r,n).message)!=null?a:n.defaultError;return r.code==="unrecognized_keys"?{message:(c=He.errToObj(e).message)!=null?c:i}:{message:i}}}:{}))}strip(){return new t(Y(C({},this._def),{unknownKeys:"strip"}))}passthrough(){return new t(Y(C({},this._def),{unknownKeys:"passthrough"}))}extend(e){return new t(Y(C({},this._def),{shape:()=>C(C({},this._def.shape()),e)}))}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>C(C({},this._def.shape()),e._def.shape()),typeName:tt.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t(Y(C({},this._def),{catchall:e}))}pick(e){let r={};for(let n of Et.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t(Y(C({},this._def),{shape:()=>r}))}omit(e){let r={};for(let n of Et.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t(Y(C({},this._def),{shape:()=>r}))}deepPartial(){return hp(this)}partial(e){let r={};for(let n of Et.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t(Y(C({},this._def),{shape:()=>r}))}required(e){let r={};for(let n of Et.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof Vs;)s=s._def.innerType;r[n]=s}return new t(Y(C({},this._def),{shape:()=>r}))}keyof(){return qI(Et.objectKeys(this.shape))}};zi.create=(t,e)=>new zi(C({shape:()=>t,unknownKeys:"strip",catchall:uo.create(),typeName:tt.ZodObject},ht(e)));zi.strictCreate=(t,e)=>new zi(C({shape:()=>t,unknownKeys:"strict",catchall:uo.create(),typeName:tt.ZodObject},ht(e)));zi.lazycreate=(t,e)=>new zi(C({shape:t,unknownKeys:"strip",catchall:uo.create(),typeName:tt.ZodObject},ht(e)));var dl=class extends vt{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Hi(a.ctx.common.issues));return Se(r,{code:ae.invalid_union,unionErrors:o}),Qe}if(r.common.async)return Promise.all(n.map(async s=>{let o=Y(C({},r),{common:Y(C({},r.common),{issues:[]}),parent:null});return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of n){let u=Y(C({},r),{common:Y(C({},r.common),{issues:[]}),parent:null}),f=c._parseSync({data:r.data,path:r.path,parent:u});if(f.status==="valid")return f;f.status==="dirty"&&!s&&(s={result:f,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Hi(c));return Se(r,{code:ae.invalid_union,unionErrors:a}),Qe}}get options(){return this._def.options}};dl.create=(t,e)=>new dl(C({options:t,typeName:tt.ZodUnion},ht(e)));var Oa=t=>t instanceof ml?Oa(t.schema):t instanceof Us?Oa(t.innerType()):t instanceof hl?[t.value]:t instanceof gl?t.options:t instanceof yl?Et.objectValues(t.enum):t instanceof vl?Oa(t._def.innerType):t instanceof ll?[void 0]:t instanceof fl?[null]:t instanceof Vs?[void 0,...Oa(t.unwrap())]:t instanceof Go?[null,...Oa(t.unwrap())]:t instanceof $1||t instanceof _l?Oa(t.unwrap()):t instanceof xl?Oa(t._def.innerType):[],t4=class t extends vt{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==Ae.object)return Se(r,{code:ae.invalid_type,expected:Ae.object,received:r.parsedType}),Qe;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(Se(r,{code:ae.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Qe)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Oa(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t(C({typeName:tt.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i},ht(n)))}};function z7(t,e){let r=Wo(t),n=Wo(e);if(t===e)return{valid:!0,data:t};if(r===Ae.object&&n===Ae.object){let i=Et.objectKeys(e),s=Et.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o=C(C({},t),e);for(let a of s){let c=z7(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===Ae.array&&n===Ae.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],c=z7(o,a);if(!c.valid)return{valid:!1};i.push(c.data)}return{valid:!0,data:i}}else return r===Ae.date&&n===Ae.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var pl=class extends vt{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Xy(s)||Xy(o))return Qe;let a=z7(s.value,o.value);return a.valid?((e4(s)||e4(o))&&r.dirty(),{status:r.value,value:a.data}):(Se(n,{code:ae.invalid_intersection_types}),Qe)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};pl.create=(t,e,r)=>new pl(C({left:t,right:e,typeName:tt.ZodIntersection},ht(r)));var Ko=class t extends vt{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ae.array)return Se(n,{code:ae.invalid_type,expected:Ae.array,received:n.parsedType}),Qe;if(n.data.length<this._def.items.length)return Se(n,{code:ae.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Qe;!this._def.rest&&n.data.length>this._def.items.length&&(Se(n,{code:ae.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new js(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Kn.mergeArray(r,o)):Kn.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t(Y(C({},this._def),{rest:e}))}};Ko.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ko(C({items:t,typeName:tt.ZodTuple,rest:null},ht(e)))};var r4=class t extends vt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ae.object)return Se(n,{code:ae.invalid_type,expected:Ae.object,received:n.parsedType}),Qe;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new js(n,a,n.path,a)),value:o._parse(new js(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Kn.mergeObjectAsync(r,i):Kn.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof vt?new t(C({keyType:e,valueType:r,typeName:tt.ZodRecord},ht(n))):new t(C({keyType:Lc.create(),valueType:e,typeName:tt.ZodRecord},ht(r)))}},vp=class extends vt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ae.map)return Se(n,{code:ae.invalid_type,expected:Ae.map,received:n.parsedType}),Qe;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new js(n,a,n.path,[u,"key"])),value:s._parse(new js(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,f=await c.value;if(u.status==="aborted"||f.status==="aborted")return Qe;(u.status==="dirty"||f.status==="dirty")&&r.dirty(),a.set(u.value,f.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,f=c.value;if(u.status==="aborted"||f.status==="aborted")return Qe;(u.status==="dirty"||f.status==="dirty")&&r.dirty(),a.set(u.value,f.value)}return{status:r.value,value:a}}}};vp.create=(t,e,r)=>new vp(C({valueType:e,keyType:t,typeName:tt.ZodMap},ht(r)));var xp=class t extends vt{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ae.set)return Se(n,{code:ae.invalid_type,expected:Ae.set,received:n.parsedType}),Qe;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(Se(n,{code:ae.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(Se(n,{code:ae.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let f of c){if(f.status==="aborted")return Qe;f.status==="dirty"&&r.dirty(),u.add(f.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>s._parse(new js(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t(Y(C({},this._def),{minSize:{value:e,message:He.toString(r)}}))}max(e,r){return new t(Y(C({},this._def),{maxSize:{value:e,message:He.toString(r)}}))}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};xp.create=(t,e)=>new xp(C({valueType:t,minSize:null,maxSize:null,typeName:tt.ZodSet},ht(e)));var n4=class t extends vt{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==Ae.function)return Se(r,{code:ae.invalid_type,expected:Ae.function,received:r.parsedType}),Qe;function n(a,c){return L1({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pp(),Na].filter(u=>!!u),issueData:{code:ae.invalid_arguments,argumentsError:c}})}function i(a,c){return L1({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pp(),Na].filter(u=>!!u),issueData:{code:ae.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Mc){let a=this;return oi(async function(...c){let u=new Hi([]),f=await a._def.args.parseAsync(c,s).catch(d=>{throw u.addIssue(n(c,d)),u}),l=await Reflect.apply(o,this,f);return await a._def.returns._def.type.parseAsync(l,s).catch(d=>{throw u.addIssue(i(l,d)),u})})}else{let a=this;return oi(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Hi([n(c,u.error)]);let f=Reflect.apply(o,this,u.data),l=a._def.returns.safeParse(f,s);if(!l.success)throw new Hi([i(f,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t(Y(C({},this._def),{args:Ko.create(e).rest(Ia.create())}))}returns(e){return new t(Y(C({},this._def),{returns:e}))}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t(C({args:e||Ko.create([]).rest(Ia.create()),returns:r||Ia.create(),typeName:tt.ZodFunction},ht(n)))}},ml=class extends vt{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};ml.create=(t,e)=>new ml(C({getter:t,typeName:tt.ZodLazy},ht(e)));var hl=class extends vt{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return Se(r,{received:r.data,code:ae.invalid_literal,expected:this._def.value}),Qe}return{status:"valid",value:e.data}}get value(){return this._def.value}};hl.create=(t,e)=>new hl(C({value:t,typeName:tt.ZodLiteral},ht(e)));function qI(t,e){return new gl(C({values:t,typeName:tt.ZodEnum},ht(e)))}var gl=class t extends vt{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return Se(r,{expected:Et.joinValues(n),received:r.parsedType,code:ae.invalid_type}),Qe}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return Se(r,{received:r.data,code:ae.invalid_enum_value,options:n}),Qe}return oi(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,C(C({},this._def),r))}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),C(C({},this._def),r))}};gl.create=qI;var yl=class extends vt{_parse(e){let r=Et.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Ae.string&&n.parsedType!==Ae.number){let i=Et.objectValues(r);return Se(n,{expected:Et.joinValues(i),received:n.parsedType,code:ae.invalid_type}),Qe}if(this._cache||(this._cache=new Set(Et.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Et.objectValues(r);return Se(n,{received:n.data,code:ae.invalid_enum_value,options:i}),Qe}return oi(e.data)}get enum(){return this._def.values}};yl.create=(t,e)=>new yl(C({values:t,typeName:tt.ZodNativeEnum},ht(e)));var Mc=class extends vt{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==Ae.promise&&r.common.async===!1)return Se(r,{code:ae.invalid_type,expected:Ae.promise,received:r.parsedType}),Qe;let n=r.parsedType===Ae.promise?r.data:Promise.resolve(r.data);return oi(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Mc.create=(t,e)=>new Mc(C({type:t,typeName:tt.ZodPromise},ht(e)));var Us=class extends vt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===tt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{Se(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return Qe;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?Qe:c.status==="dirty"?sl(c.value):r.value==="dirty"?sl(c.value):c});{if(r.value==="aborted")return Qe;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?Qe:a.status==="dirty"?sl(a.value):r.value==="dirty"?sl(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Qe:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?Qe:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Dc(o))return Qe;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Dc(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):Qe);Et.assertNever(i)}};Us.create=(t,e,r)=>new Us(C({schema:t,typeName:tt.ZodEffects,effect:e},ht(r)));Us.createWithPreprocess=(t,e,r)=>new Us(C({schema:e,effect:{type:"preprocess",transform:t},typeName:tt.ZodEffects},ht(r)));var Vs=class extends vt{_parse(e){return this._getType(e)===Ae.undefined?oi(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vs.create=(t,e)=>new Vs(C({innerType:t,typeName:tt.ZodOptional},ht(e)));var Go=class extends vt{_parse(e){return this._getType(e)===Ae.null?oi(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Go.create=(t,e)=>new Go(C({innerType:t,typeName:tt.ZodNullable},ht(e)));var vl=class extends vt{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===Ae.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};vl.create=(t,e)=>new vl(C({innerType:t,typeName:tt.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default},ht(e)));var xl=class extends vt{_parse(e){let{ctx:r}=this._processInputParams(e),n=Y(C({},r),{common:Y(C({},r.common),{issues:[]})}),i=this._def.innerType._parse({data:n.data,path:n.path,parent:C({},n)});return mp(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Hi(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Hi(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xl.create=(t,e)=>new xl(C({innerType:t,typeName:tt.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch},ht(e)));var _p=class extends vt{_parse(e){if(this._getType(e)!==Ae.nan){let n=this._getOrReturnCtx(e);return Se(n,{code:ae.invalid_type,expected:Ae.nan,received:n.parsedType}),Qe}return{status:"valid",value:e.data}}};_p.create=t=>new _p(C({typeName:tt.ZodNaN},ht(t)));var oie=Symbol("zod_brand"),$1=class extends vt{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},M1=class t extends vt{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?Qe:s.status==="dirty"?(r.dirty(),sl(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Qe:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:tt.ZodPipeline})}},_l=class extends vt{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Dc(i)&&(i.value=Object.freeze(i.value)),i);return mp(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};_l.create=(t,e)=>new _l(C({innerType:t,typeName:tt.ZodReadonly},ht(e)));function FI(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function BI(t,e={},r){return t?$c.create().superRefine((n,i)=>{var o,a;let s=t(n);if(s instanceof Promise)return s.then(c=>{var u,f;if(!c){let l=FI(e,n),p=(f=(u=l.fatal)!=null?u:r)!=null?f:!0;i.addIssue(Y(C({code:"custom"},l),{fatal:p}))}});if(!s){let c=FI(e,n),u=(a=(o=c.fatal)!=null?o:r)!=null?a:!0;i.addIssue(Y(C({code:"custom"},c),{fatal:u}))}}):$c.create()}var aie={object:zi.lazycreate},tt;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(tt||(tt={}));var cie=(t,e={message:`Input not instance of ${t.name}`})=>BI(r=>r instanceof t,e),HI=Lc.create,zI=ol.create,uie=_p.create,lie=al.create,WI=cl.create,fie=ul.create,die=gp.create,pie=ll.create,mie=fl.create,hie=$c.create,gie=Ia.create,yie=uo.create,vie=yp.create,xie=Da.create,_ie=zi.create,bie=zi.strictCreate,Sie=dl.create,Eie=t4.create,Tie=pl.create,Cie=Ko.create,kie=r4.create,wie=vp.create,Aie=xp.create,Rie=n4.create,Pie=ml.create,Nie=hl.create,Oie=gl.create,Iie=yl.create,Die=Mc.create,Lie=Us.create,$ie=Vs.create,Mie=Go.create,Fie=Us.createWithPreprocess,Vie=M1.create,jie=()=>HI().optional(),Uie=()=>zI().optional(),qie=()=>WI().optional(),Bie={string:t=>Lc.create(Y(C({},t),{coerce:!0})),number:t=>ol.create(Y(C({},t),{coerce:!0})),boolean:t=>cl.create(Y(C({},t),{coerce:!0})),bigint:t=>al.create(Y(C({},t),{coerce:!0})),date:t=>ul.create(Y(C({},t),{coerce:!0}))};var Hie=Qe;var zie=k.union([k.literal("m"),k.literal("k"),k.literal("M"),k.literal("G"),k.literal("T"),k.literal("P"),k.literal("E"),k.literal("Ki"),k.literal("Mi"),k.literal("Gi"),k.literal("Ti"),k.literal("Pi"),k.literal("Ei")]),ai=k.object({size:k.number(),unit:zie});var qs=ke(require("assert"),1);function i4(t,e,r){if(Dr.is(r)){let n=t.assignable(e,r.spec);if(N.isOk(n))return t.listeners.construct(r)}if(Dr.is(e)){let n=t.assignable(e.spec,r);if(N.isOk(n))return t.listeners.extract(e)}return Wie(t,e,r)?t.listeners.noop():t.listeners.fail()}function Wie(t,e,r){if(Dr.is(e)&&Dr.is(r)&&e.meta.id===r.meta.id||zo.is(e)&&zo.is(r)&&e.$type===r.$type)return!0;let n=t.assignable(e,r);return!!N.isOk(n)}var Jo=ke(require("assert"),1);function KI(t,e){let[r,n]=rt(t,e.caller);(0,Jo.default)(!n.length&&ir.is(r));let i=e.arguments.map(s=>rt(t,s));if(i.length<1){let s=r.params[0];n=n.concat([de.create({node:e,message:`missing parameter: ${s.name} ${se(s.value)}}`})])}if(i.length===1){let[s,o]=i[0];n=n.concat([...o]);let a=yt.create(),c=t.assignable(s,a);if(N.isErr(c)){let u=`invalid parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:u})])}}else if(i.length===2){let[s,o]=i[0];n=n.concat([...o]);let a=yt.create(),c=t.assignable(s,a);if(N.isErr(c)){let d=`invalid first parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:d})])}let[u,f]=i[1];n=n.concat([...f]);let l=ne.open(),p=t.assignable(u,l);if(N.isErr(p)){let d=`invalid second parameter '${se(u)}' expected ${se(l)}`;n=n.concat([de.create({node:e.arguments[1],message:d})])}}return e.arguments.length>2&&(n=n.concat([de.create({node:e,message:`too many arguments for ${se(r)}`})])),[r,n]}function GI(t,e){let[r,n]=rt(t,e.caller);(0,Jo.default)(!n.length),(0,Jo.default)(ir.is(r));let i=e.arguments.map(s=>rt(t,s));if(i.length<1){let s=r.params[0];n=n.concat([de.create({node:e,message:`missing parameter: ${s.name} ${se(s.value)}}`})])}if(i.length<2){let s=r.params[1];n=n.concat([de.create({node:e,message:`missing parameter: ${s.name} ${se(s.value)}}`})])}if(i.length>=1){let[s,o]=i[0];n=n.concat([...o]);let a=_t.create(),c=t.assignable(s,a);if(N.isErr(c)){let u=`invalid parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:u})])}}if(i.length>=2){let[s,o]=i[1];n=n.concat([...o]);let a=_t.create(),c=t.assignable(s,a);if(N.isErr(c)){let u=`invalid parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:u})])}}for(let s of e.arguments.slice(2))n=n.concat([de.create({node:s,message:`too many arguments for ${se(r)}`})]);return[r,n]}function JI(t,e){let[r,n]=rt(t,e.caller);(0,Jo.default)(!n.length),(0,Jo.default)(ir.is(r));let i=e.arguments.map(s=>rt(t,s));if(i.length<1){let s=r.params[0];n=n.concat([de.create({node:e,message:`missing parameter: ${s.name} ${se(s.value)}}`})])}if(i.length>=1){let[s,o]=i[0];n=n.concat([...o]);let a=ne.open(),c=t.assignable(s,a);if(N.isErr(c)){let u=`invalid parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:u})])}}for(let s of e.arguments.slice(1))n=n.concat([de.create({node:s,message:`too many arguments for ${se(r)}`})]);return[r,n]}function QI(t,e){let[r,n]=rt(t,e.caller);(0,Jo.default)(!n.length),(0,Jo.default)(ir.is(r));let i=e.arguments.map(s=>rt(t,s));if(i.length<1){let s=r.params[0];n=n.concat([de.create({node:e,message:`missing parameter: ${s.name} ${se(s.value)}}`})])}if(i.length>=1){let[s,o]=i[0];n=n.concat([...o]);let a=zn.create({restriction:yt.create()}),c=t.assignable(s,a);if(N.isErr(c)){let u=`invalid parameter '${se(s)}' expected ${se(a)}`;n=n.concat([de.create({node:e.arguments[0],message:u})])}}for(let s of e.arguments.slice(1))n=n.concat([de.create({node:s,message:`too many arguments for ${se(r)}`})]);return[r,n]}function YI(t,e){let[r,n]=rt(t,e.caller);(0,Jo.default)(!n.length),(0,Jo.default)(ir.is(r));let i=e.arguments.map(s=>rt(t,s));if(i.length<2&&(n=n.concat([de.create({node:e,message:"invalid strconv.Join call: requires two parameters strconv.Join(v []string, sep string)"})])),i.length===2){let[s,o]=i[0];n=n.concat([...o]);let a=zn.create({restriction:yt.create()}),c=t.assignable(s,a);if(N.isErr(c)){let d=`strconv.Join: invalid parameter '${se(s)}' of type '${s.$type}' expected '${se(a)}'`;n=n.concat([de.create({node:e.arguments[0],message:d})])}let[u,f]=i[1];n=n.concat([...f]);let l=yt.create(),p=t.assignable(u,l);if(N.isErr(p)){let d=`strconv.Join: invalid parameter '${se(u)}' of type '${u.$type}' expected ${se(l)}`;n=n.concat([de.create({node:e.arguments[1],message:d})])}}for(let s of e.arguments.slice(2))n=n.concat([de.create({node:s,message:"too many arguments for strconv.Join: accepts two parameters strconv.Join(v []string, sep string)"})]);return[r,n]}function rt(t,e){let r=t.cache.get(e);if(r)return r;t.cache.set(e,Wi(e,"recursive definition"));let n=Kie(t,e);return t.cache.set(e,n),n}var Wi=(t,e,r)=>[Dt.create({node:t}),[de.create({node:r||t,message:e})]];function Kie(t,e){let r=t.svcs.workspace.AstNodeDescriptionProvider,n=(...s)=>r.createDescription(...s);if(Bn(e)){let[s,o]=rt(t,e.body);return[Bi(s,e),o]}if(Ca(e)||Ns(e)||Ta(e)){if(Fe.getDocument(e).uri.path.endsWith(".h.kumori")){let[p,d]=rt(t,e.body);return[Bi(p,e),d]}if(e.name.value.ref===void 0)return Wi(e.name,"missing interface declaration");let[o,a]=rt(t,e.name.value.ref),[c,u]=rt(t,e.body),f=a.concat(u);if(f.length)return[Dt.create({node:e}),f];if(!ne.is(o)){let p=`unexpected interface '${e.name.value.ref.value.$refText}' of type ${se(o)}`;return Wi(e.name.value.ref,p)}if(!ne.is(c)){let p=`unexpected implementation '${e.name.value.$refText}' of type ${se(c)}`;return Wi(e,p)}let l=ZI(c,o);return N.isErr(l)?[Dt.create({node:e}),l.err]:[Bi(l.value,e),[]]}if(Md(e)){let s=e.stmt.filter(zu).map(f=>f.variables).flat(),o=e.stmt.filter(zr),a=[];for(let f of s){let[,l]=rt(t,f);a=a.concat(l)}let c=[];for(let f of o){let[l,p]=rt(t,f),d=f.value!==void 0||f.optional;a=a.concat(p),c=c.concat([[f.key,Ho.create({node:f,value:l,optional:d})]])}let u=Object.fromEntries(c);return[ne.create({node:e,open:!1,parameters:u}),a]}if(_i(e)){let s=[],o=[];for(let c of e.entries){let[u,f]=rt(t,c),l=c.value!==void 0||c.optional;s=s.concat(f),o=o.concat([[c.key,Ho.create({node:c,value:u,optional:l})]])}let a=Object.fromEntries(o);return[ne.create({node:e,open:!1,parameters:a}),s]}if(zr(e)){let s=[],o=ot;if(e.type){let[u,f]=rt(t,e.type);s=s.concat(f),e.optional&&(u=qi.create({node:u.node||e,inner:u})),o=Ut(u)}let a=ot;if(e.value){let[u,f]=rt(t,e.value);s=s.concat(f),a=Ut(u)}if(ue.isNone(o)&&ue.isSome(a))return[a.value,s];if(ue.isSome(o)&&ue.isNone(a))return[o.value,s];if(ue.isNone(o)&&ue.isNone(a))return s=s.concat([de.create({node:e,message:"cannot infer value of undefined struct entry"})]),[Dt.create({node:e}),s];(0,qs.default)(ue.isSome(o)),(0,qs.default)(ue.isSome(a));let c=t.assignable(a.value,o.value);if(N.isErr(c)){let u=`cannot assign type '${se(o.value)}' to type '${se(a.value)}'`;return s=s.concat([de.create({node:e,message:u})]),[Dt.create({node:e}),s]}return[o.value,s]}if(Fd(e)){let[s,o]=rt(t,e.value);return[Bi(s,e),o]}if(X2(e)){let s=[],o=[];for(let c of e.values){if(c===void 0)return Wi(e,"cannot infer value of undefined list item",c);let[u,f]=rt(t,c);s=s.concat(f),o=o.concat(u)}let a=co.create({node:e,variations:o});return o.length||(a=Dt.create({node:e})),[zn.create({node:e,restriction:a}),s]}if(K2(e)||r3(e)){let[s,o]=rt(t,e.left),[a,c]=rt(t,e.right),u=o.concat(c);return _t.is(s)&&_t.is(a)?[_t.create({node:e}),u]:e.operator==="+"&&yt.is(s)&&yt.is(a)?[yt.create({node:e}),u]:Wi(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(s)}' and '${se(a)}'`)}if(J2(e)||n3(e)){let[s,o]=rt(t,e.left),[a,c]=rt(t,e.right),u=o.concat(c),f=[qt.create({node:e}),u];return _t.is(s)&&_t.is(a)||yt.is(s)&&yt.is(a)||qt.is(s)&&qt.is(a)?f:Wi(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(s)}' and '${se(a)}'`)}if(Z2(e)){let[s,o]=rt(t,e.target);return _t.is(s)?[_t.create({node:e}),o]:Wi(e,`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${se(s)}'`)}if(e3(e)||t3(e)){let[s,o]=rt(t,e.left),[a,c]=rt(t,e.right),u=o.concat(c);return qt.is(s)&&qt.is(a)?[qt.create({node:e}),u]:Wi(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(s)}' and '${se(a)}'`)}if(i3(e)){let[s,o]=rt(t,e.condition),[a,c]=rt(t,e.trueExpr),[u,f]=rt(t,e.falseExpr),l=o.concat(c).concat(f);if(qt.is(s)&&(yt.is(a)&&yt.is(u)||_t.is(a)&&_t.is(u)||qt.is(a)&&qt.is(u))){if(yt.is(a))return[yt.create({node:e}),l];if(_t.is(a))return[_t.create({node:e}),l];if(qt.is(a))return[qt.create({node:e}),l]}return Wi(e,`${e.$type}: cannot apply ternary operator with condition of type '${se(s)}', true expression of type '${se(a)}' and false expression of type '${se(u)}'`)}if(s3(e)){let[s,o]=rt(t,e.left),a=e.operator;return _t.is(s)&&(a==="+"||a==="-")?[_t.create({node:e}),o]:qt.is(s)&&a==="!"?[qt.create({node:e}),o]:Wi(e,`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${se(s)}'`)}if(Ud(e)){let s;return s=e.value,[_t.create({node:e,literal:s}),[]]}if(Bd(e)){let s;return s=e.value,[yt.create({node:e,literal:s}),[]]}if(Vd(e)){let s;return s=e.value==="true",[qt.create({node:e,literal:s}),[]]}if(qd(e))return Xie(e);if(ri(e)){let s=Qy(e).map(c=>c.value.$refText).join(".");if(zo.eq(s))return[zo.create(s,e),[]];let a=Yy(e).value.ref;if(a===void 0){let c=de.create({message:"unresolved reference",node:e});return[Dt.create({node:e}),[c]]}return rt(t,a)}if(Ku(e)){let s=e.name,[o,a]=rt(t,e.value);return o=Dr.create({node:e,spec:o,meta:I1.from(s,n(e,s))}),[o,a]}if(Wu(e)){let s=e.name,[o,a]=rt(t,e.value);return o=ds.create({node:e,name:s,spec:o}),[o,a]}if(Y2(e)){let s=[],o=[],[a,c]=rt(t,e.returns);for(let f of e.params){if(f===void 0){o=o.concat([de.create({message:"cannot infer value of undefined item",node:f})]);continue}let[l,p]=rt(t,f.type);o=o.concat(p),s=s.concat([Ky.create({node:f,name:f.name,value:l})])}if(o.length)return[Dt.create({node:e}),o.concat(c)];let u=e.name;return[ir.create({node:e,params:s,returns:a,meta:I1.from(u,n(e,u))}),c]}if(o3(e)){let s=[],o=W7(e).map(a=>rt(t,a)).map(a=>(s=s.concat(a[1]),a[0]));return[co.create({node:e,variations:o}),s]}if(FA(e)){let[s,o]=rt(t,e.value);return[zn.create({node:e,restriction:s}),o]}if(jA(e)){let s=[],o=Dt.create({node:e});e.restriction!==void 0&&([o,s]=rt(t,e.restriction),o=qi.create({node:e,inner:o}));let a={};for(let c of e.entries){let[u,f]=rt(t,c.type);if(s=s.concat(f),u===void 0)continue;let l=c.optional;l&&(u=qi.create({node:c,inner:u})),a[c.key]=Ho.create({node:c,value:u,optional:l})}return[ne.create({node:e,restriction:o,parameters:a,open:e.open}),s]}if(Q2(e))return Gie(t,e);let i=de.create({message:`${e.$type}: could not infer type`,node:e});return[Dt.create({node:e}),[i]]}function Gie(t,e){let[r,n]=rt(t,e.caller);for(let c of e.arguments){let[,u]=rt(t,c);n=n.concat(u)}if(n.length)return[Dt.create({node:e}),n];if(ir.is(r))return Yie(t,e);let i=Pa.is(r),s=Ic.is(r);if(i||s)return Jie(t,e);let o=`${e.$type}: illegal call to ${se(r)}`,a=de.create({message:o,node:e.caller});return[Dt.create({node:e}),[a]]}function Jie(t,e){let[r,n]=rt(t,e.caller);if((0,qs.default)(!n.length),(0,qs.default)(Pa.is(r)||Ic.is(r)),e.arguments.length!==1){let c=`${e.$type}: expected 1 argument on cast to '${se(r)}`,u=de.create({message:c,node:e.caller});return[Dt.create({node:e}),[u]]}let[i,s]=rt(t,e.arguments[0]);(0,qs.default)(!s.length);let[o,a]=[i,r];return i4({assignable:t.assignable,listeners:{construct(){},extract(){},noop(){},fail(){let c=`${e.$type}: cannot convert '${se(o)}' to '${se(a)}'`;n=n.concat([de.create({node:e,message:c})])}}},o,a),[r,n]}var Qie={[Wn.strconv.Format]:GI,[Wn.strconv.JSON]:JI,[Wn.strconv.Concat]:QI,[Wn.strconv.Join]:YI,[Wn.io.Open]:KI};function Yie(t,e){let[r,n]=rt(t,e.caller);if((0,qs.default)(!n.length),(0,qs.default)(ir.is(r)),r.node===void 0){let o=t.svcs.workspace.AstNodeDescriptionProvider.createDescription(e,"source");throw Error(`undefined caller node: ${JSON.stringify(o)}`)}let i=Zy(t.svcs,r),s=Qie[i];if(s===void 0){let o=`not implemented '${i}'`;return n=n.concat([de.create({message:o,node:e.caller})]),[Dt.create({node:e}),n]}return s(t,e)}function W7(t){let e=[];return o3(t.left)?e=e.concat([...W7(t.left)]):e=e.concat([t.left]),o3(t.right)?e=e.concat([...W7(t.right)]):e=e.concat([t.right]),e}var Zie=/(\d+)(\w+)/;function Xie(t){let e=Zie.exec(t.value);if(e===null){let a=`invalid sized literal '${t.value}'`;return Wi(t,a)}let[,r,n]=e,i=Number.parseInt(r,10);if(!Number.isInteger(i)){let a=`incomplete value: invalid sized literal '${t.value}': not an integer (${i})`;return Wi(t,a)}let s=ai.safeParse({size:i,unit:n});if(!s.success){let a=s.error.message;return Wi(t,a)}return[ne.create({node:t,open:!1,parameters:{size:Ho.create({node:t,optional:!1,value:_t.create({node:t,literal:s.data.size})}),unit:Ho.create({node:t,optional:!1,value:yt.create({node:t,literal:s.data.unit})})}}),[]]}function ZI(t,e){let r=ne.create({node:t.node,open:t.open&&e.open,parameters:{}}),n=[],i=new Set(Object.keys(t.parameters)),s=new Set(Object.keys(e.parameters)),o=Jy(i,s);for(let u of o){let f=t.parameters[u],l=e.parameters[u];if((0,qs.default)(f!==void 0),(0,qs.default)(l!==void 0),!ne.is(f.value)||!ne.is(l.value)){(0,qs.default)(f.node);let g=`unable to merge with interface: cannot merge '${se(f.value)}' with '${se(l.value)}'`;n.push(de.create({node:f.node,message:g}));continue}let p=ZI(f.value,l.value);if(N.isErr(p)){n=n.concat(p.err);continue}let d=f==null?void 0:f.node;(0,qs.default)(d!==void 0);let h=f.optional&&l.optional;r.parameters[u]=Ho.create({node:d,optional:h,value:p.value})}if(n.length)return oe(n);let a=il(i,o);for(let u of a)r.parameters[u]=t.parameters[u];let c=il(s,o);for(let u of c)r.parameters[u]=e.parameters[u];return Le(r)}var F1=class{constructor(e){this.map=new Map,this.parent=e}get(e){var n;let r=this.map.get(e);return r!==void 0?r:(n=this.parent)==null?void 0:n.get(e)}set(e,r){this.map.set(e,r)}};var vs=ke(require("assert"),1);var Si;(n=>(n.$type="named",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Si||(Si={}));var Ne;(n=>(n.$type="none",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Ne||(Ne={}));var ci;(n=>(n.$type="bool",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(ci||(ci={}));var Ke;(n=>(n.$type="string",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Ke||(Ke={}));var an;(n=>(n.$type="number",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(an||(an={}));var pe;(n=>(n.$type="struct",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(pe||(pe={}));var ms;(r=>(r.$type="struct-item",r.create=n=>C({$type:r.$type},n)))(ms||(ms={}));var cn;(n=>(n.$type="list",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(cn||(cn={}));var s4;(r=>(r.$type="list-item",r.create=n=>C({$type:r.$type},n)))(s4||(s4={}));var Bs;(n=>(n.$type="function-call",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(Bs||(Bs={}));var XI;(r=>(r.$type="function-parameter",r.create=n=>C({$type:r.$type},n)))(XI||(XI={}));var hs;(n=>(n.$type="type-cast",n.create=i=>C({$type:n.$type},i),n.is=i=>i.$type===n.$type))(hs||(hs={}));var Ki;(o=>{o.$type="reference",o.create=a=>C({$type:o.$type},a),o.is=a=>a.$type===o.$type,o.unwrap=a=>(0,o.unwrapN)(a,-1)[0],o.unwrapN=(a,c)=>s(a,Math.floor(c),0);let s=(a,c,u)=>{let f=[a,u];return c===0?f:(0,o.is)(a)?s(a.ref,c-1,u+1):f}})(Ki||(Ki={}));var ese=[ci.$type,Ke.$type,an.$type],fo;(r=>(r.is=n=>(0,r.eq)(n.$type),r.eq=n=>ese.includes(n)))(fo||(fo={}));var Hs;(n=>(n.$type="error",n.create=i=>C({$type:n.$type},i),n.is=i=>typeof i=="object"&&i!==null&&"$type"in i&&i.$type===n.$type&&"message"in i&&typeof i.message=="string"&&"node"in i&&It(i.node)))(Hs||(Hs={}));function bi(t){if(pe.is(t))return`{ ${Array.from(Object.entries(t.parameters)).filter(([,r])=>r!==void 0).map(([r,n])=>`${r}: ${bi(n.value)}`).join(", ")} }`;if(cn.is(t))return`[${t.items.map(r=>r.value).map(bi).join(", ")}]`;if(Si.is(t))return`(${t.definition.meta.id}) ${bi(t.inner)}`;if(Ki.is(t))return`*${bi(t.ref)}`;if(Bs.is(t)){let e=t.params.map(({name:r,value:n})=>`${r}=${bi(n)}`).join(", ");return`(${se(t.definition)}) with ${e}`}if("literal"in t)switch(t.$type){case"string":return`"${t.literal}"`;case"number":return`${t.literal}`;case"bool":return`${t.literal}`}return t.$type}function lo(t){let e=t.node;switch(t.$type){case"struct":return pe.create({node:e,parameters:Object.fromEntries(Object.entries(t.parameters).filter(([,r])=>r!==void 0).map(([r,n])=>[r,Y(C({},n),{value:lo(n.value)})]))});case"list":return cn.create({node:e,items:t.items.map(r=>Y(C({},r),{value:lo(r.value)}))});case"named":return Si.create({node:e,definition:t.definition,inner:lo(t.inner)});case"reference":return Ki.create({node:e,ref:lo(t.ref)});case"type-cast":return hs.create({node:e,to:t.to,result:lo(t.result),from:lo(t.from)});case"function-call":return Bs.create({node:e,definition:t.definition,params:t.params.map(r=>Y(C({},r),{value:lo(r.value)})),result:lo(t.result)});case"none":case"string":case"number":case"bool":return C({},t)}}var Ti=ke(require("assert"),1),WL=require("fs");var KL=ke(require("path"),1);var eD=ke(require("assert"),1);function Qo(t,e){(0,eD.default)(e.node!==void 0);let r=e.node,n=()=>oe([Hs.create({node:r,message:`incomplete value: ${bi(e)}`})]);return N.from(()=>{var i;if(fo.is(e))return e.literal===void 0?n():e.literal;if(cn.is(e)){let s=[],o=[];for(let a of e.items){let c=Qo(t,a.value);if(N.isErr(c)){o=o.concat(c.err),s.push(null);continue}else s.push(c.value)}return o.length?oe(o):s}if(pe.is(e)){let s={},o=[];for(let[a,c]of Object.entries(e.parameters)){if(c===void 0){s[a]=void 0;continue}if(Ne.is(c.value))continue;let u=Qo(t,c.value);if(N.isErr(u)){o=o.concat(u.err);continue}else s[a]=u.value}return o.length?oe(o):((i=t.nodes)==null||i.set(s,r),s)}if(Ki.is(e))return Qo(t,e.ref);if(Si.is(e)){if(!e.definition.node){let c=`definition not found: ${se(e.definition)}`;return oe([Hs.create({node:r,message:c})])}let o=t.svcs.references.KumoriPackages.GetPackage(e.definition.node);if(N.isErr(o)){let c=`invalid or missing package: ${se(e.definition)}`;return oe([Hs.create({node:r,message:c})])}let a=e.definition.meta.id;return N.map(Qo(t,e.inner),c=>({$type:a,value:c}))}return hs.is(e)||Bs.is(e)?Qo(t,e.result):oe([Hs.create({node:r,message:`cannot convert value to JSON: ${bi(e)}`})])})}var GL=ke(zL(),1);function JL(t,e){let[r,n]=t.infer(e);(0,Ti.default)(ir.is(r)&&n.length===0);let[i,s]=Tt(t,e.arguments[0]);if(!yt.is(i.Type))return n.push(de.create({node:e.arguments[0],message:`expected a string for the file path, got ${se(i.Type)}`})),[{Value:Ye(t,e),Type:r},n];let o=Ve(i.Value);if(Ne.is(o)||!Ke.is(o))return[{Value:Ne.create({node:e}),Type:r},n.concat(s)];let a,c=[];if(e.arguments.length==2){let[l,p]=Tt(t,e.arguments[1]);a=l,c=p}if(n=n.concat(s).concat(c),n.length)return[{Value:Ye(t,e),Type:r},n];function u(l){if(KL.default.isAbsolute(l.literal)){n.push(de.create({node:e,message:"absolute paths are not allowed"}));return}let p=ee.dirname(Fe.getDocument(e).uri),d=ee.joinPath(p,l.literal);if(!TI(p,d)){let g=`cannot access '${d}'`;n.push(de.create({node:e,message:g}));return}let h=N.map(N.tryCatch(()=>(0,WL.readFileSync)(d.fsPath)),g=>g.toString("utf8"));if(N.isErr(h)){let g=`failed to open '${d}': ${h.err}`;n.push(de.create({node:e,message:g}));return}return h.value}let f=Ne.create({node:e});return yt.is(i.Type)&&e.arguments.length==1?f=(()=>{let l=Ve(i.Value);if(Ne.is(l)||!Ke.is(l))return Ne.create({node:e});let p=u(l);return p===void 0?Ne.create({node:e}):Ke.create({node:e,literal:p})})():e.arguments.length==2&&yt.is(i.Type)&&a&&ne.is(a.Type)&&(f=(()=>{let l=Ve(i.Value),p=Ve(a.Value);if(Ne.is(l)||Ne.is(p))return Ne.create({node:e});if(!Ke.is(l)||!pe.is(p))return Ne.create({node:e});let d=u(l);if(d===void 0)return Ne.create({node:e});let h=QL(p,n);if(n.length)return Ne.create({node:e});let v=GL.default.compile(d)(h);return Ke.create({node:e,literal:v})})()),[{Value:f,Type:r},n]}function QL(t,e){let r={};return Object.entries(t.parameters).forEach(([,n])=>{if(n===void 0||!zr(n.node))return;let i=n.node.key,s=Ve(n.value);if(!Ne.is(s))if(fo.is(s))r[i]=s.literal;else if(cn.is(s)){let o=[];s.items.forEach(a=>{let c=Ve(a.value);Ne.is(c)||fo.is(c)&&o.push(c.literal)}),r[i]=o}else pe.is(s)?r[i]=QL(s,e):e.push(de.create({node:n.node,message:`expected a primitive, list, or struct for template parameter '${i}', got '${s.$type}' ${bi(s)}`}))}),r}function YL(t,e){let[r,n]=t.infer(e);(0,Ti.default)(ir.is(r)&&n.length===0);let[i,s]=Tt(t,e.arguments[0]),[o,a]=Tt(t,e.arguments[1]);return n=n.concat(s,a),n.length?[{Value:Ye(t,e),Type:r},n]:((0,Ti.default)(_t.is(i.Type)&&_t.is(o.Type)),[{Value:(()=>{let u=Ve(i.Value),f=Ve(o.Value);return Ne.is(u)||Ne.is(f)?Ne.create({node:e}):!an.is(u)||!an.is(f)?Ne.create({node:e}):Ke.create({node:e,literal:u.literal.toString(f.literal)})})(),Type:r},n])}function ZL(t,e){let[r,n]=t.infer(e);(0,Ti.default)(ir.is(r)&&n.length===0);let[i,s]=Tt(t,e.arguments[0]);return n=n.concat(s),n.length?[{Value:Ye(t,e),Type:r},n]:((0,Ti.default)(ne.is(i.Type)),[{Value:(()=>{let a=Ve(i.Value);if(Ne.is(a))return Ne.create({node:e});if(!pe.is(a))return Ne.create({node:e});if(N.isErr(t.complete(a,e)))return Ne.create({node:e});let c=Qo({svcs:t.svcs},a);if(N.isErr(c))throw new Error(`runtime error: JSON(): argument '${bi(a)}'`);return Ke.create({node:e,literal:JSON.stringify(c.value)})})(),Type:r},n])}function XL(t,e){let[r,n]=t.infer(e);(0,Ti.default)(ir.is(r)&&n.length===0);let[i,s]=Tt(t,e.arguments[0]);return n=n.concat(s),n.length?[{Value:Ye(t,e),Type:r},n]:((0,Ti.default)(zn.is(i.Type)&&t.assignable(i.Type.restriction,yt.create())),[{Value:(()=>{let a=Ve(i.Value);if(Ne.is(a))return Ne.create({node:e});if(!cn.is(a))return Ne.create({node:e});let c=a.items.map(f=>Ve(f.value));if(c.some(f=>Ne.is(f)))return Ne.create({node:e});if(!c.every(f=>Ke.is(f)))return Ne.create({node:e});let u=c.map(f=>((0,Ti.default)(Ke.is(f)),f.literal));return Ke.create({node:e,literal:u.join("")})})(),Type:r},n])}function e$(t,e){let[r,n]=t.infer(e);(0,Ti.default)(ir.is(r)),(0,Ti.default)(n.length===0);let[i,s]=Tt(t,e.arguments[0]),[o,a]=Tt(t,e.arguments[1]);return n=n.concat(s,a),n.length?[{Value:Ye(t,e),Type:r},n]:((0,Ti.default)(zn.is(i.Type)),(0,Ti.default)(t.assignable(i.Type.restriction,yt.create())),(0,Ti.default)(yt.is(o.Type)),[{Value:(()=>{let u=Ve(i.Value),f=Ve(o.Value);if(Ne.is(u)||Ne.is(f))return Ne.create({node:e});if(!cn.is(u)||!Ke.is(f))return Ne.create({node:e});let l=u.items.map(d=>Ve(d.value));if(l.some(d=>Ne.is(d)))return Ne.create({node:e});if(!l.every(d=>Ke.is(d)))return Ne.create({node:e});let p=l.map(d=>((0,Ti.default)(Ke.is(d)),d.literal));return Ke.create({node:e,literal:p.join(f.literal)})})(),Type:r},n])}function q4(t,e){let r=t.cache.get(e);if(r)return r;let n=new Map,i=Tt(Y(C({},t),{cache:n}),e);return t.cache.set(e,i),i}function Tt(t,e){let r=t.cache.get(e);if(r)return r;let n=[{Value:Ye(t,e),Type:Dt.create({node:e})},[de.create({node:e,message:"recursive evaluation aborted"})]];t.cache.set(e,n);let i=Kae(t,e);return t.cache.set(e,i),i}function t$(t,e,r){let n=Wae(t,e,r);return(s,o)=>{var p,d;let a=Qy(s);if(![rl,nl].includes((d=(p=a.shift())==null?void 0:p.value.$refText)!=null?d:"")||!a.length)return o();let u=n;for(;a.length&&typeof u=="object";){let h=a.shift().value.$refText;u=u[h]}if(u===void 0)return o();if(typeof u=="function")return u();let[{Type:f}]=o();return[{Value:r$(t,s,u),Type:f},[]]}}function r$(t,e,r){let n={};for(let[i,s]of Object.entries(r)){if(s===void 0)continue;let o;if(typeof s=="function"){let[{Value:a}]=s(),[c]=Ki.unwrapN(a,1);o=c}else o=r$(t,e,s);n[i]=ms.create({value:o})}return pe.create({node:e,parameters:n})}function Wae(t,e,r){let n={};if(Bn(e)){let i=jc(e,"config");ue.isSome(i)&&zr(i.value)&&_i(i.value.value)&&(n.config=Z1(t,i.value.value));let s=jc(e,"resource");ue.isSome(s)&&zr(s.value)&&_i(s.value.value)&&(n.resource=Z1(t,s.value.value))}if(Ns(e)){let i=Fe.getContainerOfType(r,_i);(0,vs.default)(i!==void 0);let s=jc(i,"config");ue.isSome(s)&&zr(s.value)&&_i(s.value.value)&&(n.config=Z1(t,s.value.value));let o=jc(i,"resource");ue.isSome(o)&&zr(o.value)&&_i(o.value.value)&&(n.resource=Z1(t,o.value.value))}return n}function Z1(t,e){let r={};for(let{key:n,value:i}of e.entries){if(!i)continue;(0,vs.default)(i!==void 0);let s;_i(i)?s=Z1(t,i):s=()=>Tt(t,i),r[n]=s}return r}function Kae(t,e){var n,i;if(Ca(e)||Ns(e)||Ta(e)){let s=(i=(n=e.name)==null?void 0:n.value)==null?void 0:i.ref,[o,a]=Tt(Y(C({},t),{current:e}),e.body);if(s){let[c,u]=Tt(Y(C({},t),{current:s}),s.body);if(pe.is(c.Value)&&pe.is(o.Value)){let f=nce(c.Value,o.Value);return[{Type:o.Type,Value:Bi(f,e)},a.concat(u)]}}return[{Type:o.Type,Value:Bi(o.Value,e)},a]}if(Bn(e)){let[s,o]=Tt(Y(C({},t),{current:e}),e.body);return[{Type:s.Type,Value:Bi(s.Value,e)},o]}if(Md(e)){let s=e.stmt.filter(zu).map(l=>l.variables).flat(),o=e.stmt.filter(zr),[a,c]=t.infer(e.$container);for(let l of s){let[,p]=q4(t,l);c=c.concat(p)}let u=[];for(let l of o){let[p,d]=Tt(t,l);c=c.concat(d),u.push([l.key,p,l])}let f=pe.create({node:e,parameters:Object.fromEntries(u.map(([l,p,d])=>[l,ms.create({node:d,value:p.Value})]))});return[{Type:a,Value:f},c]}if(_i(e)){let[s,o]=t.infer(e),a=[];for(let u of e.entries||[]){let[f,l]=Tt(t,u);o=o.concat(l),a.push([u.key,f,u])}let c=pe.create({node:e,parameters:Object.fromEntries(a.map(([u,f,l])=>[u,ms.create({node:l,value:f.Value})]))});return[{Type:s,Value:c},o]}if(zr(e)){let[s,o]=t.infer(e);if(!e.value){let a=Ne.create({node:e});return[{Type:s,Value:a},o]}return Tt(t,e.value)}if(Fd(e)){let[{Type:s,Value:o},a]=q4(t,e.value);return[{Type:s,Value:Bi(o,e)},a]}if(X2(e)){let[s,o]=t.infer(e),a=[];for(let u of e.values||[]){let[f,l]=Tt(t,u);o=o.concat(l),a.push([f,u])}let c=cn.create({node:e,items:a.map(([u,f])=>s4.create({node:f,value:u.Value}))});return[{Type:s,Value:c},o]}if(K2(e)||r3(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.left),[u,f]=Tt(t,e.right);if(o=o.concat(c),o=o.concat(f),_t.is(a.Type)&&_t.is(u.Type)){let p,d=g=>{let v=Ve(a.Value),b=Ve(u.Value);return!an.is(v)||!an.is(b)?Ne.create({node:e}):an.create({node:e,literal:g(v,b)})};switch(e.operator){case"+":p=()=>d((g,v)=>g.literal+v.literal);break;case"-":p=()=>d((g,v)=>g.literal-v.literal);break;case"%":p=()=>d((g,v)=>g.literal%v.literal);break;case"*":p=()=>d((g,v)=>g.literal*v.literal);break;case"/":p=()=>d((g,v)=>g.literal/v.literal);break}let h=p();return[{Type:s,Value:h},o]}if(e.operator==="+"&&yt.is(a.Type)&&yt.is(u.Type)){let p,d=g=>{let v=Ve(a.Value),b=Ve(u.Value);return!Ke.is(v)||!Ke.is(b)?Ne.create({node:e}):Ke.create({node:e,literal:g(v,b)})};p=()=>d((g,v)=>g.literal+v.literal);let h=p();return[{Type:s,Value:h},o]}let l=`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(a.Type)}' and '${se(u.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:l})])]}if(J2(e)||n3(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.left),[u,f]=Tt(t,e.right);o=o.concat(c),o=o.concat(f);let l;if(_t.is(a.Type)&&_t.is(u.Type)){let d=h=>{let g=Ve(a.Value),v=Ve(u.Value);return!an.is(g)||!an.is(v)?Ne.create({node:e}):ci.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":l=()=>d((h,g)=>h.literal!=g.literal);break;case"==":l=()=>d((h,g)=>h.literal==g.literal);break;case"<":l=()=>d((h,g)=>h.literal<g.literal);break;case"<=":l=()=>d((h,g)=>h.literal<=g.literal);break;case">":l=()=>d((h,g)=>h.literal>g.literal);break;case">=":l=()=>d((h,g)=>h.literal>=g.literal);break}}if(yt.is(a.Type)&&yt.is(u.Type)){let d=h=>{let g=Ve(a.Value),v=Ve(u.Value);return!Ke.is(g)||!Ke.is(v)?Ne.create({node:e}):ci.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":l=()=>d((h,g)=>h.literal!=g.literal);break;case"==":l=()=>d((h,g)=>h.literal==g.literal);break;case"<":l=()=>d((h,g)=>h.literal<g.literal);break;case"<=":l=()=>d((h,g)=>h.literal<=g.literal);break;case">":l=()=>d((h,g)=>h.literal>g.literal);break;case">=":l=()=>d((h,g)=>h.literal>=g.literal);break}}if(qt.is(a.Type)&&qt.is(u.Type)){let d=h=>{let g=Ve(a.Value),v=Ve(u.Value);return!ci.is(g)||!ci.is(v)?Ne.create({node:e}):ci.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":l=()=>d((h,g)=>h.literal!=g.literal);break;case"==":l=()=>d((h,g)=>h.literal==g.literal);break}}if(l!==void 0){let d=l();return[{Type:s,Value:d},o]}let p=`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(a.Type)}' and '${se(u.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:p})])]}if(e3(e)||t3(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.left),[u,f]=Tt(t,e.right);if(o=o.concat(c).concat(f),qt.is(a.Type)&&qt.is(u.Type)){let p,d=g=>{let v=Ve(a.Value),b=Ve(u.Value);return!ci.is(v)||!ci.is(b)?Ne.create({node:e}):ci.create({node:e,literal:g(v,b)})};switch(e.operator){case"&&":p=()=>d((g,v)=>g.literal!=v.literal);break;case"||":p=()=>d((g,v)=>g.literal==v.literal);break}let h=p();return[{Type:s,Value:h},o]}let l=`${e.$type}: cannot apply operator '${e.operator}' between operands '${se(a.Type)}' and '${se(u.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:l})])]}if(i3(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.condition),[u,f]=Tt(t,e.trueExpr),[l,p]=Tt(t,e.falseExpr);if(o=o.concat(c).concat(f).concat(p),qt.is(a.Type)&&(yt.is(u.Type)&&yt.is(l.Type)||_t.is(u.Type)&&_t.is(l.Type)||qt.is(u.Type)&&qt.is(l.Type))){let h=Ve(a.Value);if(!ci.is(h))return[{Type:s,Value:Ne.create({node:e})},o];let g=h.literal?Ve(u.Value):Ve(l.Value);return[{Type:s,Value:g},o]}let d=`${e.$type}: cannot apply ternary operator with condition type '${se(a.Type)}' and branch types '${se(u.Type)}' and '${se(l.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:d})])]}if(Z2(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.target);if(o=o.concat(c),_t.is(a.Type)){let f,l=d=>{let h=Ve(a.Value);return an.is(h)?an.create({node:e,literal:d(h)}):Ne.create({node:e})};switch(e.operator){case"++":f=()=>l(d=>d.literal+1);break;case"--":f=()=>l(d=>d.literal-1);break}let p=f();return[{Type:s,Value:p},o]}let u=`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${se(a.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:u})])]}if(s3(e)){let[s,o]=t.infer(e),[a,c]=Tt(t,e.left);o=o.concat(c);let u;if(_t.is(a.Type)){let l=p=>{let d=Ve(a.Value);return an.is(d)?an.create({node:e,literal:p(d)}):Ne.create({node:e})};switch(e.operator){case"+":u=()=>l(p=>p.literal);break;case"-":u=()=>l(p=>-p.literal);break}}if(qt.is(a.Type)){let l=p=>{let d=Ve(a.Value);return ci.is(d)?ci.create({node:e,literal:p(d)}):Ne.create({node:e})};switch(e.operator){case"!":u=()=>l(p=>!p.literal);break}}if(u!==void 0){let l=u();return[{Type:s,Value:l},o]}let f=`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${se(a.Type)}'`;return[{Value:Ye(t,e),Type:s},o.concat([de.create({node:e,message:f})])]}if(Ud(e)){let[s,o]=t.infer(e),a=an.create({node:e,literal:e.value});return[{Type:s,Value:a},o]}if(Bd(e)){let[s,o]=t.infer(e),a=Ke.create({node:e,literal:e.value});return[{Type:s,Value:a},o]}if(Vd(e)){let[s,o]=t.infer(e),a=ci.create({node:e,literal:e.value==="true"});return[{Type:s,Value:a},o]}if(qd(e))return Xae(t,e);if(ri(e)){let s=Yy(e).value.ref;if(s===void 0)return[{Value:Ye(t,e),Type:Dt.create({node:e})},[de.create({node:e,message:"unresolved reference"})]];if(Bn(s)||Ca(s)||Ns(s)||Ta(s))return ece(t,e,s);let o=()=>Tt(t,s);if(t.resolver){let[l,p]=[e,o];o=()=>t.resolver(l,p)}let[{Value:a,Type:c},u]=o();return[{Value:Ki.create({node:e,ref:a}),Type:c},u]}if(Q2(e))return Gae(t,e);if(Ku(e)||Wu(e))return[{Value:Ye(t,e),Type:Dt.create({node:e})},[de.create({node:e,message:"illegal expression: using type as value"})]];let r=`${e.$type}: unable to evaluate expression`;return[{Value:Ye(t,e),Type:Dt.create({node:e})},[de.create({node:e,message:r})]]}function Gae(t,e){let[r,n]=t.infer(e);if(ir.is(r))return Qae(t,e);if(Pa.is(r)||Ic.is(r))return Jae(t,e);let i=`${e.$type}: illegal call to ${se(r)}`;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:i})])]}function Jae(t,e){let[r,n]=t.infer(e);if(e.arguments.length!==1){let f=`${e.$type}: expected 1 argument on cast to '${se(r)}`;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:f})])]}let i=e.arguments[0],s;[s,n]=Tt(t,i);let o=Ve(s.Value);if(Ne.is(o))return[{Value:Ne.create({node:e}),Type:r},n];let[a,c]=[s.Type,r],u;return i4({assignable:t.assignable,listeners:{construct(f){u=hs.create({node:e,to:r,from:o,result:Si.create({node:e,definition:f,inner:o})})},extract(){(0,vs.default)(Si.is(o)),u=hs.create({node:e,to:r,from:o,result:Y(C({},o.inner),{node:e})})},noop(){u=o},fail(){u=Ye(t,e);let f=`${e.$type}: cannot convert '${se(s.Type)}' to '${se(r)}'`;n=n.concat([de.create({node:e,message:f})])}}},a,c),(0,vs.default)(u!==void 0),[{Value:u,Type:r},n]}function Qae(t,e){let[r,n]=t.infer(e);if((0,vs.default)(ir.is(r)),n.length)return[{Value:Ye(t,e),Type:r},n];let i=Zy(t.svcs,r),s=Yae[i];if(s!==void 0)return s(t,e);let o=`${e.$type}: unknown call to ${se(r)}`;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:o})])]}var Yae={[Wn.strconv.Format]:YL,[Wn.strconv.JSON]:ZL,[Wn.strconv.Concat]:XL,[Wn.strconv.Join]:e$,[Wn.io.Open]:JL},Zae=/(\d+)(\w+)/;function Xae(t,e){let[r,n]=t.infer(e),i=Zae.exec(e.value);if(i===null){let f=`invalid sized literal '${e.value}'`;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:f})])]}let[,s,o]=i,a=Number.parseInt(s,10);if(!Number.isInteger(a)){let f=`invalid sized literal '${e.value}': not an integer (${a})`;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:f})])]}let c=ai.safeParse({size:a,unit:o});if(!c.success){let f=c.error.message;return[{Value:Ye(t,e),Type:r},n.concat([de.create({node:e,message:f})])]}let u=pe.create({node:e,parameters:{size:ms.create({node:e,value:an.create({node:e,literal:c.data.size})}),unit:ms.create({node:e,value:Ke.create({node:e,literal:c.data.unit})})}});return[{Type:r,Value:u},n]}function ece(t,e,r){if(!t.current)return[{Value:Ye(t,r),Type:Dt.create({node:e})},[de.create({node:e,message:"unknown artifact in current context"})]];if(Bn(t.current))return tce(t,r);if(Ns(t.current))return rce(t,e,r);let n=`invalid artifact factory source: ${e.$type}`;return[{Value:Ye(t,r),Type:Dt.create({node:e})},[de.create({node:e,message:n})]]}function tce(t,e){var _,x,T,R,V,$,K,z;let r=t.current;(0,vs.default)(r!==void 0),(0,vs.default)(Bn(r));let n=[],i=t$(t,r,e),s=Y(C({},t),{resolver:i,cache:new F1(t.cache)}),[{Value:o,Type:a},c]=Tt(s,e);if(n=n.concat(c),!ne.is(a)){let W=`unexpected artifact type: ${se(a)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:r,message:W})])]}let u=(x=(_=a.parameters.config)==null?void 0:_.value)!=null?x:ne.closed();if(u===void 0)return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:a.node,message:"missing parameter 'config'"})])];if(!ne.is(u)){let W=`unexpected type: expected struct but found ${se(a)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:u.node,message:W})])]}let f=(R=(T=a.parameters.resource)==null?void 0:T.value)!=null?R:ne.closed();if(f===void 0)return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:a.node,message:"missing parameter 'resource'"})])];if(!ne.is(f)){let W=`unexpected type: expected struct but found ${se(a)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:f.node,message:W})])]}let[l,p]=t.infer(r);if(n=n.concat(p),!ne.is(l)){let W=`unexpected artifact type: ${se(l)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:r,message:W})])]}let d=($=(V=l.parameters.config)==null?void 0:V.value)!=null?$:ne.closed();if(d===void 0)return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:r,message:"missing parameter 'config'"})])];if(!ne.is(d)){let W=`unexpected type: expected struct but found ${se(l)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:d.node,message:W})])]}let h=(z=(K=l.parameters.resource)==null?void 0:K.value)!=null?z:ne.closed();if(h===void 0)return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:r,message:"missing parameter 'resource'"})])];if(!ne.is(h)){let W=`unexpected type: expected struct but found ${se(l)}`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:h.node,message:W})])]}let g=t.assignable(d,u);if(N.isErr(g))return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:d.node||r,message:"TODO: assignability issue message"})])];let v=t.assignable(h,f);if(N.isErr(v)){(0,vs.default)(ne.is(v.err[0].from)&&ne.is(v.err[0].to));let W=Object.keys(v.err[0].to.parameters),D=Object.keys(v.err[0].from.parameters),P=`invalid resource assignment: valid values are [${W.join(", ")}], while provided values are [${D.join(", ")}]`;return[{Value:Ye(t,r),Type:a},n.concat([de.create({node:d.node||r,message:P})])]}return[{Value:(()=>{var re,we,Q,F,Oe,ze;let W=lo(Ve(o));if(Ne.is(W))return Ne.create({node:r});if(!pe.is(W))return Ne.create({node:r});let D=pe.create({node:r,parameters:{}}),P=jc(r,"config");if(ue.isSome(P)){let[{Value:pt}]=Tt(t,P.value);D=Ve(pt)}if(!pe.is(D))return Ne.create({node:r});let M=(we=(re=W.parameters.config)==null?void 0:re.value)!=null?we:pe.create({node:r,parameters:{}});if(M===void 0||!pe.is(M))return Ne.create({node:r});W.parameters.config=ms.create({node:(Q=W.parameters.config)==null?void 0:Q.node,value:X1(D,M)});let j=pe.create({node:r,parameters:{}}),J=jc(r,"resource");if(ue.isSome(J)){let[{Value:pt}]=Tt(t,J.value);j=Ve(pt)}if(!pe.is(j))return Ne.create({node:r});let te=(Oe=(F=W.parameters.resource)==null?void 0:F.value)!=null?Oe:pe.create({node:r,parameters:{}});return te===void 0||!pe.is(te)?Ne.create({node:r}):(W.parameters.resource=ms.create({node:(ze=W.parameters.resource)==null?void 0:ze.node,value:X1(j,te)}),W)})(),Type:a},n]}function rce(t,e,r){var x,T,R,V,$,K,z,W;let n=t.current;(0,vs.default)(n!==void 0),(0,vs.default)(Ns(n));let i=[],s=t$(t,n,e),o=Y(C({},t),{resolver:s,cache:new F1(t.cache)}),[{Value:a,Type:c},u]=Tt(o,r);if(i=i.concat(u),!ne.is(c)){let D=`unexpected artifact type: ${se(c)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:n,message:D})])]}let f=(T=(x=c.parameters.config)==null?void 0:x.value)!=null?T:ne.closed();if(f===void 0)return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:c.node,message:"missing parameter 'config'"})])];if(!ne.is(f)){let D=`unexpected type: expected struct but found ${se(c)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:f.node,message:D})])]}let l=(V=(R=c.parameters.resource)==null?void 0:R.value)!=null?V:ne.closed();if(l===void 0)return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:c.node,message:"missing parameter 'resource'"})])];if(!ne.is(l)){let D=`unexpected type: expected struct but found ${se(c)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:l.node,message:D})])]}n=Fe.getContainerOfType(e,_i),(0,vs.default)(n!==void 0);let[p,d]=t.infer(n);if(i=i.concat(d),!ne.is(p)){let D=`unexpected artifact type: ${se(p)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:n,message:D})])]}let h=(K=($=p.parameters.config)==null?void 0:$.value)!=null?K:ne.closed();if(h===void 0)return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:n,message:"missing parameter 'config'"})])];if(!ne.is(h)){let D=`unexpected type: expected struct but found ${se(p)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:h.node,message:D})])]}let g=(W=(z=p.parameters.resource)==null?void 0:z.value)!=null?W:ne.closed();if(g===void 0)return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:n,message:"missing parameter 'resource'"})])];if(!ne.is(g)){let D=`unexpected type: expected struct but found ${se(p)}`;return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:g.node,message:D})])]}let v=t.assignable(h,f);if(N.isErr(v))return[{Value:Ye(t,n),Type:c},i.concat([de.create({node:h.node||n,message:"TODO: assignability issue message"})])];let b=t.assignable(g,l);return N.isErr(b)?[{Value:Ye(t,n),Type:c},i.concat([de.create({node:h.node||n,message:"TODO: assignability issue message"})])]:[{Value:(()=>{var we,Q,F,Oe,ze,pt;let D=lo(Ve(a));if(Ne.is(D))return Ne.create({node:n});if(!pe.is(D))return Ne.create({node:n});let P=pe.create({node:n,parameters:{}}),M=jc(n,"config");if(ue.isSome(M)){let[{Value:qe}]=Tt(t,M.value);P=Ve(qe)}if(!pe.is(P))return Ne.create({node:n});let j=(Q=(we=D.parameters.config)==null?void 0:we.value)!=null?Q:pe.create({node:n,parameters:{}});if(j===void 0||!pe.is(j))return Ne.create({node:n});D.parameters.config=ms.create({node:(F=D.parameters.config)==null?void 0:F.node,value:X1(P,j)});let J=pe.create({node:n,parameters:{}}),te=jc(n,"resource");if(ue.isSome(te)){let[{Value:qe}]=Tt(t,te.value);J=Ve(qe)}if(!pe.is(J))return Ne.create({node:n});let re=(ze=(Oe=D.parameters.resource)==null?void 0:Oe.value)!=null?ze:pe.create({node:n,parameters:{}});return re===void 0||!pe.is(re)?Ne.create({node:n}):(D.parameters.resource=ms.create({node:(pt=D.parameters.resource)==null?void 0:pt.node,value:X1(J,re)}),D)})(),Type:c},i]}function X1(t,e){var n,i;let r=C({},e.parameters);for(let s of Object.keys(r)){let o=(n=r[s])==null?void 0:n.value;(0,vs.default)(o!==void 0);let a=(i=t.parameters[s])==null?void 0:i.value;if(a===void 0)continue;let c;pe.is(o)&&pe.is(a)?c=X1(a,o):c=a,r[s]=ms.create({node:o.node,value:c})}return pe.create({node:e.node,parameters:r})}function jc(t,e){if(_i(t)){let n=t.entries.find(i=>i.key===e);return ue.fromNullable(n)}let r=t.body.stmt.filter(zr).find(n=>n.key===e);return ue.fromNullable(r)}var Ye=(t,e)=>Ne.create({node:e}),Ve=t=>Ki.is(t)?Ve(t.ref):hs.is(t)||Bs.is(t)?Ve(t.result):t;function Lr(t,e,...r){var i;let n=(i=t.parameters[e])==null?void 0:i.value;return n===void 0?ot:r.length===0?Ut(Ve(n)):pe.is(n)?Lr(n,...r):ot}function nce(t,e){return pe.create({node:e.node,parameters:C(C({},t.parameters),e.parameters)})}var B4=()=>Le(void 0);function Uc(t,e){if(e=t.node||e,Si.is(t))return Uc(t.inner,e);if(fo.is(t))return B4();if(pe.is(t)){let n=Object.values(t.parameters).filter(i=>i!==void 0).map(i=>Uc(i.value,e)).filter(i=>N.isErr(i)).map(i=>i.err).flat();return n.length?oe(n):B4()}if(cn.is(t)){let n=Object.values(t.items).map(i=>Uc(i.value,e)).filter(i=>N.isErr(i)).map(i=>i.err).flat();return n.length?oe(n):B4()}if(Bs.is(t)){let n=t.params.map(i=>Uc(i.value,e)).filter(i=>N.isErr(i)).map(i=>i.err).flat();return n.length?oe(n):B4()}if(Ki.is(t))return Uc(t.ref,e);if(hs.is(t))return Uc(t.from,e);let r=Hs.create({node:e,message:`incomplete value: ${bi(t)}`});return oe([r])}var H4=class{constructor(e){this.svcs=e}NewContext(){return{EvalCache:new nr(this.svcs.shared),InferenceCache:new nr(this.svcs.shared),AssignableCache:new nr(this.svcs.shared)}}Infer(e,r){return rt({svcs:this.svcs,cache:e.InferenceCache,assignable:(n,i)=>this.Assignable(e,n,i)},r)}Assignable(e,r,n){return ps({svcs:this.svcs,cache:ice(this.svcs.shared,e.AssignableCache)},r,n)}Eval(e,r){return q4({svcs:this.svcs,cache:e.EvalCache,infer:n=>this.Infer(e,n),assignable:(n,i)=>this.Assignable(e,n,i),complete:(n,i)=>this.Complete(n,i)},r)}Complete(e,r){return Uc(e,r)}};function ice(t,e){return{get:(r,n)=>{let i=e.get(r);return i===void 0&&(i=new nr(t),e.set(r,i)),i.get(n)},set:(r,n,i)=>{let s=e.get(r);s===void 0&&(s=new nr(t),e.set(r,s)),s.set(n,i)}}}var n$=ke(require("assert"),1),z4=()=>Le(void 0);function Va(t,e){var n,i;if(e=t.node||e,ri(e)){(0,n$.default)(zr((n=t.node)==null?void 0:n.$container));let s=Hs.create({node:e,message:`invalid type definition of field \`${(i=t.node)==null?void 0:i.$container.key}\`, did you forget to use ':'?`});return oe([s])}if(Si.is(t))return Va(t.inner,e);if(fo.is(t))return z4();if(pe.is(t)){let s=Object.values(t.parameters).filter(o=>o!==void 0).filter(o=>{let a=o.node;return!a||!zr(a)||a.value!==void 0}).map(o=>Va(o.value,e)).filter(o=>N.isErr(o)).map(o=>o.err).flat();return s.length?oe(s):z4()}if(cn.is(t)){let s=Object.values(t.items).map(o=>Va(o.value,e)).filter(o=>N.isErr(o)).map(o=>o.err).flat();return s.length?oe(s):z4()}if(Bs.is(t)){let s=t.params.map(o=>Va(o.value,e)).filter(o=>N.isErr(o)).map(o=>o.err).flat();return s.length?oe(s):z4()}if(Ki.is(t))return Va(t.ref,e);if(hs.is(t))return Va(t.from,e);let r=Hs.create({node:e,message:`incomplete value: ${bi(t)}`});return oe([r])}var sce=[qr,on,xi],i$=()=>sce.map(t=>[t,oce]);function oce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{if(!Fe.getDocument(r).uri.path.endsWith(".h.kumori"))return;let o=t.ctx(),[{Value:a}]=e.Eval(o,r);if(!pe.is(a))return;let u=Object.entries(a.parameters).filter(([p])=>!["config","resource"].includes(p));for(let[,p]of u){if(p===void 0)continue;let d=e.Complete(p.value,r);if(N.isErr(d))for(let h of d.err)n("error",`completeness error: ${h.message}`,{node:h.node})}let f=Object.entries(a.parameters).find(([p])=>p==="config");if(f&&f[1]){let p=f[1],d=Va(p.value,r);if(N.isErr(d))for(let h of d.err)n("error",`completeness error: ${h.message}`,{node:h.node})}let l=Object.entries(a.parameters).find(([p])=>p==="resource");if(l&&l[1]){let p=l[1],d=Va(p.value,r);if(N.isErr(d))for(let h of d.err)n("error",`completeness error: ${h.message}`,{node:h.node})}}}var ace=[qr,on,xi],s$=()=>ace.map(t=>[t,cce]);function cce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{if(!Fe.getDocument(r).uri.path.endsWith(".h.kumori"))return;let o=t.ctx(),[a]=e.Infer(o,r);if(!ne.is(a))return;let c=Object.entries(a.parameters).find(([f])=>f==="resource");if(c===void 0)return;let u=c[1];if(u!==void 0&&ne.is(u.value))for(let f of Object.values(u.value.parameters)){let l=f==null?void 0:f.node;f!==void 0&&l!==void 0&&zr(l)&&l.value!==void 0&&n("error","resources cannot have default values",{node:l})}}}var uce=[qr,on,xi],o$=()=>uce.map(t=>[t,lce]);function lce(){return(t,e)=>{var o,a,c;if(Fe.getDocument(t).uri.path.endsWith(".h.kumori"))return;let i=t.name.value.ref;if(i===void 0)return;let s=u=>{switch(u.$type){case qr:return"component";case on:return"service";case xi:return"builtin";default:return u.$type}};if(i.$type!==t.$type){let u=`invalid implementation: ${s(t)} ${t.name.value.$refText} cannot implement ${s(i)} ${(c=(a=(o=i==null?void 0:i.name)==null?void 0:o.value)==null?void 0:a.$refText)!=null?c:"<unknown>"}`;e("error",u,{node:t.name})}}}var Pp=ke(Ui(),1);function Np(t,e){var s;let r=Fe.getDocument(t).uri,n=((s=t.$cstNode)==null?void 0:s.range)||Pp.Range.create({line:0,character:0},{line:0,character:0}),i=Pp.Location.create(r.toString(),n);return Pp.DiagnosticRelatedInformation.create(i,e)}function xn(t,e){let r={node:t.from.node||e};return t.to.node&&(r.relatedInformation=[Np(t.to.node,"not assignable")]),r}var fce=[Ps],a$=()=>fce.map(t=>[t,dce]);function dce(t){let e=new nr(t.svcs.shared),r=new nr(t.svcs.shared);return(n,i)=>{let s=Fe.getDocument(n),o=s.uri.path.endsWith(".h.kumori"),a;o?a=e:a=r;let c=s.uri,u=ee.dirname(c),f=(n.artifacts||[]).map(l=>Bn(l)?void 0:l).filter(l=>l!==void 0);for(let l of f){let p=l.name.value,d=ee.joinPath(u,"#",p.$refText).toString(),h=a.get(d);h!==void 0?(i("error",`illegal artifact declaration: name '${p}' used multiple times`,{node:l.name,relatedInformation:[Np(h.name,`artifact '${p}' declared here`)]}),i("error",`illegal artifact declaration: name '${p}' used multiple times`,{node:h.name,relatedInformation:[Np(l.name,`artifact '${p}' declared here`)]})):a.set(d,l)}}}var c$=ke(require("assert"),1);var pce=[xi],u$=()=>pce.map(t=>[t,mce]);function mce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let s=r.GetPackage(Gr.Kumori);(0,c$.default)(N.isOk(s));let o=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(s.value.docs.map(d=>d.uri.toString()))).toArray().find(d=>d.name==="builtin");if(!o||!o.node){i("error","builtin type definition not found",{node:n});return}let a=t.ctx(),[c,u]=e.Infer(a,o.node);for(let d of u)i("error",`type error: ${d.message}`,{node:d.node});let[f,l]=e.Infer(a,n);for(let d of l)Fe.getContainerOfType(d.node,h=>h===n)&&i("error",`type error: ${d.message}`,{node:d.node});if(l.length>0||u.length>0)return;let p=e.Assignable(a,f,c);if(N.isErr(p))for(let d of p.err){let h=xn(d,n);i("error",`type error: ${d.cause}`,h)}}}var l$=ke(require("assert"),1);function Ci(t){let r=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/.exec(t);if(!r)throw new Error(`Invalid SemVer string format: ${t}`);let n=parseInt(r[1],10),i=parseInt(r[2],10),s=parseInt(r[3],10),o=r[4]?r[4].split("."):null,a=r[5]?r[5].split("."):null;return{$tag:"semver",major:n,minor:i,patch:s,prerelease:o,buildmetadata:a,toString(){return gce(this)}}}(n=>(n.Compare=yce,n.Parse=i=>N.tryCatch(()=>n(i)),n.Is=i=>hce(i)))(Ci||(Ci={}));function hce(t){if(typeof t!="object"||t===null)return!1;let e=t;return e.$tag==="semver"&&typeof e.major=="number"&&Number.isInteger(e.major)&&e.major>=0&&typeof e.minor=="number"&&Number.isInteger(e.minor)&&e.minor>=0&&typeof e.patch=="number"&&Number.isInteger(e.patch)&&e.patch>=0&&(e.prerelease===null||Array.isArray(e.prerelease)&&e.prerelease.every(r=>typeof r=="string"))&&(e.buildmetadata===null||Array.isArray(e.buildmetadata)&&e.buildmetadata.every(r=>typeof r=="string"))&&typeof e.toString=="function"}function gce(t){let e=`${t.major}.${t.minor}.${t.patch}`;return t.prerelease&&t.prerelease.length>0&&(e+=`-${t.prerelease.join(".")}`),t.buildmetadata&&t.buildmetadata.length>0&&(e+=`+${t.buildmetadata.join(".")}`),e}function yce(t,e){if(t.major!==e.major)return t.major-e.major;if(t.minor!==e.minor)return t.minor-e.minor;if(t.patch!==e.patch)return t.patch-e.patch;if(t.prerelease&&!e.prerelease)return-1;if(!t.prerelease&&e.prerelease)return 1;if(t.prerelease&&e.prerelease){let r=Math.min(t.prerelease.length,e.prerelease.length);for(let n=0;n<r;n++){let i=t.prerelease[n],s=e.prerelease[n],o=/^\d+$/.test(i),a=/^\d+$/.test(s);if(o&&a){let c=parseInt(i,10),u=parseInt(s,10);if(c!==u)return c-u}else{if(o&&!a)return-1;if(!o&&a)return 1;{let c=i.localeCompare(s);if(c!==0)return c}}}return t.prerelease.length-e.prerelease.length}return 0}var vce=[xi],f$=()=>vce.map(t=>[t,xce]);function xce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var u,f;let i=t.ctx(),[{Value:s}]=e.Eval(i,r);if(!pe.is(s))return;let o=(u=s.parameters.id)==null?void 0:u.value;if(!o||!pe.is(o))return;let a=(f=o.parameters.version)==null?void 0:f.value;if(!a||(a=Ve(a),!Ke.is(a)))return;let c=Ci.Parse(a.literal);if(N.isErr(c)){(0,l$.default)(a.node);let l=`invalid semantic version string: ${a.literal}`;n("error",l,{node:a.node});return}}}var d$=ke(require("assert"),1);var _ce=[qr],p$=()=>_ce.map(t=>[t,bce]);function bce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(Fe.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(Gr.Kumori);(0,d$.default)(N.isOk(a));let c=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(a.value.docs.map(g=>g.uri.toString()))).toArray().find(g=>"name"in g&&g.name==="component");if(!c||!c.node){i("error","component type definition not found",{node:n});return}let u=t.ctx(),[f,l]=e.Infer(u,c.node);for(let g of l)i("error",`type error: ${g.message}`,{node:g.node});let[p,d]=e.Infer(u,n);for(let g of d)Fe.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(d.length>0||l.length>0)return;let h=e.Assignable(u,p,f);if(N.isErr(h))for(let g of h.err){let v=xn(g,n);i("error",`type error: ${g.cause}`,v)}}}var m$=ke(require("assert"),1);var Sce=[qr],h$=()=>Sce.map(t=>[t,Ece]);function Ece(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(!Fe.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(Gr.Kumori);(0,m$.default)(N.isOk(a));let c=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(a.value.docs.map(g=>g.uri.toString()))).toArray().find(g=>"name"in g&&g.name==="ComponentInterface");if(!c||!c.node){i("error","component interface type definition not found",{node:n});return}let u=t.ctx(),[f,l]=e.Infer(u,c.node);for(let g of l)i("error",`type error: ${g.message}`,{node:g.node});let[p,d]=e.Infer(u,n);for(let g of d)Fe.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(d.length>0||l.length>0)return;let h=e.Assignable(u,p,f);if(N.isErr(h))for(let g of h.err){let v=xn(g,n);i("error",`type error: ${g.cause}`,v)}}}var ki=(t,e)=>k.object({$type:k.string(),value:e}),g$=(t,e)=>`${De.parse(t).toString()}@${e}`;function y$(t,...e){return(...r)=>t(...e,...r)}var li=y$(g$,Gr.Kumori.toString());var Fx=li("Ephemeral"),Vx=ki(Fx,ai),jx=li("Persistent"),Ux=ki(jx,k.string()),JFe=k.union([Vx,Ux]),qx=li("Volatile"),Bx=ki(qx,ai),Hx=li("Persisted"),zx=ki(Hx,ai),Wx=li("NonReplicated"),Kx=ki(Wx,ai),Tce=k.union([Bx,zx,Kx]),Gx=li("Registered"),Jx=ki(Gx,k.string()),QFe=li("Volume"),Cce=k.union([Tce,Jx]),eg=li("CA"),Qx=ki(eg,k.string()),tg=li("Certificate"),Yx=ki(tg,k.string()),Op=li("Secret"),Zx=ki(Op,k.string()),rg=li("Domain"),Xx=ki(rg,k.string()),ng=li("Port"),e_=ki(ng,k.string()),ja=k.union([Cce,Qx,Yx,Zx,Xx,e_]);var qc=ke(require("assert"),1),kce=[qr],v$=()=>kce.map(t=>[t,wce]);function wce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:s,Type:o},a]=e.Eval(i,r);if(a.length||!pe.is(s)||!ne.is(o))return;let c=[],u=U7(o,"resource");if(ue.isSome(u)&&ne.is(u.value))for(let[l,p]of Object.entries(u.value.parameters))p!==void 0&&(!Dr.is(p.value)&&!ds.is(p.value)||c.push([l,p.value]));let f=Lr(s,"code");if(!(ue.isNone(f)||!pe.is(f.value)))for(let l of Object.values(f.value.parameters).filter(p=>p!==void 0)){if(!pe.is(l.value))continue;let p=Lr(l.value,"env");if(ue.isNone(p)||!pe.is(p.value))continue;for(let h of Object.values(p.value.parameters).filter(g=>g!==void 0)){if(!pe.is(h.value))continue;let g=Lr(h.value,"secret");if(ue.isNone(g)||!Ke.is(g.value))continue;let v=g.value.literal;c.filter(([_])=>_===v).filter(([,_])=>Dr.is(_)&&_.meta.id===Op).length===0&&((0,qc.default)(g.value.node),n("error",`undefined secret: '${v}'`,{node:g.value.node}))}let d=Lr(l.value,"fs");if(!(ue.isNone(d)||!pe.is(d.value)))for(let h of Object.values(d.value.parameters).filter(g=>g!==void 0)){if(!pe.is(h.value))continue;let g=Lr(h.value,"volume");if(ue.isSome(g)&&Ke.is(g.value)){let R=g.value.literal;c.filter(([$])=>$===R).length===0&&((0,qc.default)(g.value.node),n("error",`undefined volume: '${R}'`,{node:g.value.node}))}let v=Lr(h.value,"secret");if(ue.isSome(v)&&Ke.is(v.value)){let R=v.value.literal;c.filter(([$])=>$===R).filter(([,$])=>Dr.is($)&&$.meta.id===Op).length===0&&((0,qc.default)(v.value.node),n("error",`undefined secret: '${R}'`,{node:v.value.node}))}let b=Lr(h.value,"certificate");if(ue.isSome(b)&&Ke.is(b.value)){let R=b.value.literal;c.filter(([$])=>$===R).filter(([,$])=>Dr.is($)&&$.meta.id===tg).length===0&&((0,qc.default)(b.value.node),n("error",`undefined certificate: '${R}'`,{node:b.value.node}))}let _=Lr(h.value,"port");if(ue.isSome(_)&&Ke.is(_.value)){let R=_.value.literal;c.filter(([$])=>$===R).filter(([,$])=>Dr.is($)&&$.meta.id===ng).length===0&&((0,qc.default)(_.value.node),n("error",`undefined port: '${R}'`,{node:_.value.node}))}let x=Lr(h.value,"domain");if(ue.isSome(x)&&Ke.is(x.value)){let R=x.value.literal;c.filter(([$])=>$===R).filter(([,$])=>Dr.is($)&&$.meta.id===rg).length===0&&((0,qc.default)(x.value.node),n("error",`undefined domain: '${R}'`,{node:x.value.node}))}let T=Lr(h.value,"ca");if(ue.isSome(T)&&Ke.is(T.value)){let R=T.value.literal;c.filter(([$])=>$===R).filter(([,$])=>Dr.is($)&&$.meta.id===eg).length===0&&((0,qc.default)(T.value.node),n("error",`undefined ca: '${R}'`,{node:T.value.node}))}}}}}var Ace=[qr],x$=()=>Ace.map(t=>[t,Rce]);function Rce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:s},o]=e.Eval(i,r);if(o.length||!pe.is(s))return;let a=Lr(s,"code");if(ue.isNone(a)||!pe.is(a.value))return;let c=0;for(let p of Object.values(a.value.parameters).filter(d=>d!==void 0)){if(!pe.is(p.value))continue;let d=Lr(p.value,"size");ue.isNone(d)||!an.is(d.value)||(c+=d.value.literal)}let u=Lr(s,"size");if(ue.isNone(u)||!pe.is(u.value))return;let f=Lr(u.value,"mincpu");if(ue.isNone(f)||!pe.is(f.value))return;let l=Lr(f.value,"size");ue.isNone(l)||!an.is(l.value)||l.value.literal<c&&n("error",`Component ${r.name.value.$refText} mincpu (${l.value.literal}) is less than the sum of its containers' mincpu (${c}).`,{node:r})}}function W4(t){let[e,...r]=t.split("/");return r.length===0?oe(`invalid OCI image name: '${t}'`):Le({tag:r.join("/"),hub:e})}var Pce=[qr],_$=()=>Pce.map(t=>[t,Nce]);function Nce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:s},o]=e.Eval(i,r);if(o.length||!pe.is(s))return;let a=Lr(s,"code");if(!(ue.isNone(a)||!pe.is(a.value)))for(let c of Object.values(a.value.parameters)){if(!c||!pe.is(c.value))continue;let u=Lr(c.value,"image");if(ue.isNone(u))continue;let f=u.value.node||r,l=e.Complete(u.value,f);if(N.isErr(l)){n("error","incomplete image string",{node:f});continue}if(!Ke.is(u.value))continue;let p=W4(u.value.literal);if(N.isErr(p)){n("error",p.err,{node:f}),n("hint",`The expected format of an OCI image string is: "<host>/<name>:<tag>".
|
|
213
|
-
For example, "docker.io/alpine:3"`,{node:f});continue}}}}var Oce=[qr],b$=()=>Oce.map(t=>[t,Ice]);function Ice(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:s},o]=e.Eval(i,r);if(o.length||!pe.is(s))return;let a=Lr(s,"code");if(ue.isNone(a)||!pe.is(a.value))return;let c=Lr(s,"probe");if(ue.isNone(c)||!pe.is(c.value))return;let u=new Set(Object.keys(a.value.parameters)),f=new Set(Object.keys(c.value.parameters));for(let l of f)u.has(l)||n("error",`Probe "${l}" does not refer to any existing container. Existing containers are: ${[...u].map(p=>`"${p}"`).join(", ")}`,{node:r})}}var S$=ke(require("assert"),1);var Dce=[ti],E$=()=>Dce.map(t=>[t,Lce]);function Lce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let s=r.GetPackage(Gr.Kumori);(0,S$.default)(N.isOk(s));let o=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(s.value.docs.map(d=>d.uri.toString()))).toArray().find(d=>"name"in d&&d.name==="deployment");if(!o||!o.node){i("error","deployment type definition not found",{node:n});return}let a=t.ctx(),[c,u]=e.Infer(a,o.node);for(let d of u)i("error",`type error: ${d.message}`,{node:d.node});let[f,l]=e.Infer(a,n);for(let d of l)Fe.getContainerOfType(d.node,h=>h===n)&&i("error",`type error: ${d.message}`,{node:d.node});let p=e.Assignable(a,f,c);if(N.isErr(p)){for(let d of p.err){let h=xn(d,n);i("error",`type error: ${d.cause}`,h)}return}}}var T$=ke(require("assert"),1);var $ce=[ti],C$=()=>$ce.map(t=>[t,Mce]);function Mce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let[{Value:i}]=e.Eval(t.ctx(),r);if(pe.is(i))for(let[s,o]of Object.entries(i.parameters)){if((0,T$.default)(o!==void 0),s==="artifact")continue;let a=e.Complete(o.value,r);if(N.isErr(a))for(let c of a.err)n("error",`completeness error: ${c.message}`,{node:c.node})}}}var k$=ke(require("assert"),1);var Fce=[ti],w$=()=>Fce.map(t=>[t,Vce]);function Vce(t){let e=t.svcs.references.KumoriPackages;return(r,n)=>{let i=e.GetPackage(r);(0,k$.default)(N.isOk(i));let s=i.value.docs.flatMap(o=>Fe.streamAst(o.parseResult.value).filter(Bn).filter(a=>a!==r).toArray());if(s.length>0){let o={node:r};o.relatedInformation=s.map(a=>Np(a,"another deployment was found here")),n("error",`error: package ${i.value.name} (${i.value.uri.toString()}) contains too many deployments`,{node:r})}}}var jce=[ti],A$=()=>jce.map(t=>[t,Uce]);function Uce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var f,l,p,d;let[i]=e.Infer(t.ctx(),r);if(!ne.is(i))return;let s=(l=(f=i.parameters.artifact)==null?void 0:f.value)==null?void 0:l.node;if(!s)return;let[o]=e.Infer(t.ctx(),s);if(!ne.is(o))return;let a=(p=i.parameters.config)==null?void 0:p.value,c=(d=o.parameters.config)==null?void 0:d.value;if(!a||!c)return;let u=e.Assignable(t.ctx(),a,c);if(!N.isOk(u))for(let h of u.err){let g=xn(h,r);n("error",`type error: ${h.cause}`,g)}}}var qce=[ti],R$=()=>qce.map(t=>[t,Bce]);function Bce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var f,l,p,d;let[i]=e.Infer(t.ctx(),r);if(!ne.is(i))return;let s=(l=(f=i.parameters.artifact)==null?void 0:f.value)==null?void 0:l.node;if(!s)return;let[o]=e.Infer(t.ctx(),s);if(!ne.is(o))return;let a=(p=i.parameters.resource)==null?void 0:p.value,c=(d=o.parameters.resource)==null?void 0:d.value;if(!a||!c)return;let u=e.Assignable(t.ctx(),a,c);if(!N.isOk(u))for(let h of u.err){let g=xn(h,r);n("error",`type error: ${h.cause}`,g)}}}var Hce=[Bu,Hu,ju],P$=()=>Hce.map(t=>[t,zce]);function zce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{let[,s]=e.Infer(r,n);for(let o of s)i("error",`type error: ${o.message}`,{node:o.node})}}var Wce=[Uu,qu],N$=()=>Wce.map(t=>[t,Kce]);function Kce(){return(t,e)=>{let r=new Map;for(let n of t.entries||[]){let i=r.get(n.key);i||(i=[],r.set(n.key,i)),i.push(n)}for(let[,n]of r.entries())if(n.length>1)for(let i of n)e("error",`illegal struct declaration: repeated parameter '${i.key}'`,{node:i})}}var Gce=[Ps],O$=()=>Gce.map(t=>[t,Jce]);function Jce(t){let e=t.svcs.references.KumoriPackages,r=[rl,O1,nl];return(n,i)=>{let s=e.GetPackage(n);N.isErr(s)||r.includes(s.value.name)&&i("warning","package name collides with reserved keywords",{node:n.declaration||n})}}var Qce=[Ps],I$=()=>Qce.map(t=>[t,Yce]);function Yce(t){let e=new nr(t.svcs.shared);return(r,n)=>{if(!r.declaration)return;let i=Fe.getDocument(r).uri,s=ee.dirname(i),o=r.declaration.name,a=e.get(s.toString());if(a===void 0){let c=s.toString();e.set(c,o);return}a!==o&&n("error",`unexpected package '${o}' - package already defined as '${a}'`,{node:r.declaration})}}var D$=ke(require("assert"),1);var Zce=[on],L$=()=>Zce.map(t=>[t,Xce]);function Xce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let s=r.GetPackage(Gr.Kumori);(0,D$.default)(N.isOk(s));let o=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(s.value.docs.map(d=>d.uri.toString()))).toArray().find(d=>"name"in d&&d.name==="service");if(!o||!o.node){i("error","service type definition not found",{node:n});return}let a=t.ctx(),[c,u]=e.Infer(a,o.node);for(let d of u)i("error",`type error: ${d.message}`,{node:d.node});let[f,l]=e.Infer(a,n);for(let d of l)Fe.getContainerOfType(d.node,h=>h===n)&&i("error",`type error: ${d.message}`,{node:d.node});if(l.length>0||u.length>0)return;let p=e.Assignable(a,f,c);if(N.isErr(p))for(let d of p.err){let h=xn(d,n);i("error",`type error: ${d.cause}`,h)}}}var $e=ke(require("assert"),1);var t_=k.union([k.literal("udp"),k.literal("tcp"),k.literal("http"),k.literal("grpc")]),eue=t_,$$=k.union([t_,k.object({protocol:t_,port:k.number()})]),Ip=k.object({client:k.object({}).catchall(eue).optional(),server:k.object({}).catchall($$).optional(),duplex:k.object({}).catchall($$).optional()});var tue=k.union([k.string(),k.object({data:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({secret:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({port:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({domain:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({certificate:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({ca:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({volume:k.string()})]),rue=k.union([k.string(),k.number(),k.boolean(),k.object({secret:k.string()})]),nue=k.object({hub:k.object({name:k.string(),secret:k.string().optional()}),tag:k.string()}),M$=k.object({cmd:k.array(k.string()).optional(),image:k.union([k.string(),nue]),entrypoint:k.array(k.string()).optional(),size:k.object({memory:ai,cpu:ai,mincpu:ai}),env:k.object({}).catchall(rue).optional(),fs:k.object({}).catchall(tue).optional()}),F$=k.object({port:k.number(),path:k.string()}),iue=k.object({port:k.number()}),sue=k.object({path:k.string()}),V$=k.object({http:F$.optional(),tcp:iue.optional(),exec:sue.optional()}),oue=k.object({http:F$.optional()}),aue=k.object({unit:k.enum(["attempts","ms"]),duration:k.number().int().nonnegative(),probe:k.boolean()}),cue=k.object({protocol:k.object({}).catchall(V$),startupGraceWindow:k.object({}).catchall(aue).optional(),frequency:k.optional(k.any()),timeout:k.optional(k.number().int())}),uue=k.object({protocol:k.object({}).catchall(V$),frequency:k.optional(k.any()),timeout:k.optional(k.number().int())}),lue=k.object({protocol:k.object({}).catchall(oue)}),fue=k.object({liveness:k.object({}).catchall(cue).optional(),readiness:k.object({}).catchall(uue).optional(),pmetrics:k.object({}).catchall(lue).optional()}),K4=k.object({srv:Ip.optional(),config:k.object({}).catchall(k.any()).optional(),resource:k.object({}).catchall(ja).optional(),scale:k.number().optional(),code:k.object({}).catchall(M$).optional(),init:k.array(M$).optional(),size:k.object({bandwidth:ai,minbandwidth:ai,mincpu:ai}),probe:k.object({}).catchall(fue).optional()});var due=k.object({name:k.string(),kind:k.union([k.literal("service"),k.literal("component")]),domain:k.string(),module:k.string(),version:k.string()}),G4=k.object({id:due,srv:Ip,config:k.record(k.string(),k.any()),resource:k.record(k.string(),ja)});var pue=k.object({config:k.record(k.string(),k.any()).optional(),resource:k.record(k.string(),ja).optional()}),mue=pue.extend({artifact:k.lazy(()=>k.union([K4,r_,G4]))}),Dp=li("LoadBalancer"),hue=ki(Dp,k.object({from:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),to:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),meta:k.any().optional()})),gue=k.object({target:k.string(),channel:k.string(),meta:k.any().optional()}),yue=k.object({from:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),to:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),meta:k.any().optional()}),Lp=li("FullConnector"),vue=ki(Lp,k.union([gue,yue])),xue=k.union([hue,vue]),r_=k.object({srv:Ip.optional(),config:k.record(k.string(),k.any()).optional(),resource:k.record(k.string(),ja).optional(),role:k.record(k.string(),mue).optional(),connect:k.record(k.string(),xue).optional()});var _ue=[on],j$=()=>_ue.map(t=>[t,bue]);function bue(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{var d,h,g,v,b,_,x,T,R,V,$,K,z,W,D,P,M,j,J,te,re,we,Q,F;let[{Value:s,Type:o},a]=e.Eval(r,n);if(a.length)return;(0,$e.default)(pe.is(s)&&ne.is(o));let c=(d=s.parameters.connect)==null?void 0:d.value;if(!c)return;(0,$e.default)(c&&pe.is(c));let u=(h=o.parameters.role)==null?void 0:h.value;(0,$e.default)(u&&ne.is(u));let l=`[${Object.keys(u.parameters).join(", ")}]`,p=[];for(let Oe of Object.values(c.parameters)){let ze=Oe==null?void 0:Oe.value;(0,$e.default)(ze),ze=Ve(ze),(0,$e.default)(Si.is(ze)&&pe.is(ze.inner));let pt=e.Complete(ze,n);if(N.isErr(pt))for(let qe of pt.err)i("error",`completeness error: ${qe.message}`,{node:qe.node});switch(ze.definition.meta.id){case Dp:{let qe=(g=ze.inner.parameters.from)==null?void 0:g.value;if((0,$e.default)(qe),cn.is(qe))for(let Te of qe.items){(0,$e.default)(pe.is(Te.value));let ie=(v=Te.value.parameters.target)==null?void 0:v.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node);let he=(b=Te.value.parameters.channel)==null?void 0:b.value;if((0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node),p.find(([Ee,Ce])=>Ee.Target===ie.literal&&Ce.Channel===he.literal&&Ce.type==="client")){i("error",`found duplicate "from" definition: role: ${ie.literal} channel: ${he.literal}`,{node:he.node});return}p.push([{Target:ie.literal,node:ie.node},{Channel:he.literal,type:"client",node:he.node}])}else if(pe.is(qe)){let Te=(_=qe.parameters.target)==null?void 0:_.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(x=qe.parameters.channel)==null?void 0:x.value;if((0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.find(([he,Ee])=>he.Target===Te.literal&&Ee.Channel===ie.literal&&Ee.type==="client")){i("error",`found duplicate "from" definition: role: ${Te.literal} channel: ${ie.literal}`,{node:ie.node});return}p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"client",node:ie.node}])}let Je=(T=ze.inner.parameters.to)==null?void 0:T.value;if((0,$e.default)(Je),cn.is(Je)){for(let Te of Je.items){(0,$e.default)(pe.is(Te.value));let ie=(R=Te.value.parameters.target)==null?void 0:R.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node);let he=(V=Te.value.parameters.channel)==null?void 0:V.value;if((0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node),p.find(([Ee,Ce])=>Ee.Target===ie.literal&&Ce.Channel===he.literal&&Ce.type==="server")){i("error",`found duplicated "to" definition: role: ${ie.literal} channel: ${he.literal}`,{node:he.node});return}p.push([{Target:ie.literal,node:ie.node},{Channel:he.literal,type:"server",node:he.node}])}break}else if(pe.is(Je)){let Te=($=Je.parameters.target)==null?void 0:$.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(K=Je.parameters.channel)==null?void 0:K.value;if((0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.find(([he,Ee])=>he.Target===Te.literal&&Ee.Channel===ie.literal&&Ee.type==="server")){i("error",`found duplicated "to" definition: role: ${Te.literal} channel: ${ie.literal}`,{node:ie.node});return}p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"server",node:ie.node}])}break}case Lp:{let qe=ze.inner.parameters.target!==void 0,Je=ze.inner.parameters.channel!==void 0;if(qe&&Je){let Te=(z=ze.inner.parameters.target)==null?void 0:z.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(W=ze.inner.parameters.channel)==null?void 0:W.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"server",node:ie.node}])}else{let Te=(D=ze.inner.parameters.from)==null?void 0:D.value;if((0,$e.default)(Te),cn.is(Te))for(let he of Te.items){(0,$e.default)(pe.is(he.value));let Ee=(P=he.value.parameters.target)==null?void 0:P.value;(0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node);let Ce=(M=he.value.parameters.channel)==null?void 0:M.value;if((0,$e.default)(Ce),Ce=Ve(Ce),(0,$e.default)(Ke.is(Ce)&&Ce.node),p.find(([We,me])=>We.Target===Ee.literal&&me.Channel===Ce.literal)){i("error",`found duplicate "from" definition: role: ${Ee.literal} channel: ${Ce.literal}`,{node:Ce.node});return}p.push([{Target:Ee.literal,node:Ee.node},{Channel:Ce.literal,type:"client",node:Ce.node}])}else if(pe.is(Te)){let he=(j=Te.parameters.target)==null?void 0:j.value;(0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node);let Ee=(J=Te.parameters.channel)==null?void 0:J.value;if((0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node),p.find(([Ce,We])=>Ce.Target===he.literal&&We.Channel===Ee.literal)){i("error",`found duplicate "from" definition: role: ${he.literal} channel: ${Ee.literal}`,{node:Ee.node});return}p.push([{Target:he.literal,node:he.node},{Channel:Ee.literal,type:"client",node:Ee.node}])}let ie=(te=ze.inner.parameters.to)==null?void 0:te.value;if((0,$e.default)(ie),cn.is(ie))for(let he of ie.items){(0,$e.default)(pe.is(he.value));let Ee=(re=he.value.parameters.target)==null?void 0:re.value;(0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node);let Ce=(we=he.value.parameters.channel)==null?void 0:we.value;if((0,$e.default)(Ce),Ce=Ve(Ce),(0,$e.default)(Ke.is(Ce)&&Ce.node),p.find(([We,me])=>We.Target===Ee.literal&&me.Channel===Ce.literal)){i("error",`found duplicate "to" definition: role: ${Ee.literal} channel: ${Ce.literal}`,{node:Ce.node});return}p.push([{Target:Ee.literal,node:Ee.node},{Channel:Ce.literal,type:"server",node:Ce.node}])}else if(pe.is(ie)){let he=(Q=ie.parameters.target)==null?void 0:Q.value;(0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node);let Ee=(F=ie.parameters.channel)==null?void 0:F.value;if((0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node),p.find(([Ce,We])=>Ce.Target===he.literal&&We.Channel===Ee.literal)){i("error",`found duplicate "to" definition: role: ${he.literal} channel: ${Ee.literal}`,{node:Ee.node});return}p.push([{Target:he.literal,node:he.node},{Channel:Ee.literal,type:"server",node:Ee.node}])}}break}default:(0,$e.default)(ze.node),i("error",`unknown connector type: ${ze.definition.meta.id}, valid types are: ${Dp}, ${Lp}`,{node:ze.node});break}}for(let[Oe,ze]of p){let pt=Oe.Target;if(u.parameters[pt]===void 0&&pt!=="self"){i("error",`unknown target '${pt}': must be one of ${l}`,{node:Oe.node});continue}let qe=(()=>{let Te=()=>Tue(u,pt),ie=()=>Cue(u,pt);switch(pt==="self"&&(Te=()=>Eue(o),ie=()=>Sue(o)),ze.type){case"client":return Te();case"server":return ie()}})(),Je=ze.Channel;if(!qe.includes(Je)){i("error",`unknown channel '${Je}' in role '${pt}': must be one of [${qe.join(", ")}]`,{node:ze.node});continue}}}}var Sue=t=>{var i,s,o,a,c,u;let e=(s=(i=t.parameters.srv)==null?void 0:i.value)!=null?s:ne.closed();(0,$e.default)(e&&ne.is(e));let r=(a=(o=e.parameters.client)==null?void 0:o.value)!=null?a:ne.closed();(0,$e.default)(r&&ne.is(r));let n=(u=(c=e.parameters.duplex)==null?void 0:c.value)!=null?u:ne.closed();return(0,$e.default)(n&&ne.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},Eue=t=>{var i,s,o,a,c,u;let e=(s=(i=t.parameters.srv)==null?void 0:i.value)!=null?s:ne.closed();(0,$e.default)(e&&ne.is(e));let r=(a=(o=e.parameters.server)==null?void 0:o.value)!=null?a:ne.closed();(0,$e.default)(r&&ne.is(r));let n=(u=(c=e.parameters.duplex)==null?void 0:c.value)!=null?u:ne.closed();return(0,$e.default)(n&&ne.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},Tue=(t,e)=>{var a,c,u,f,l,p,d,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,$e.default)(r&&ne.is(r));let n=(c=r.parameters.artifact)==null?void 0:c.value;(0,$e.default)(n&&ne.is(n));let i=(f=(u=n.parameters.srv)==null?void 0:u.value)!=null?f:ne.closed();(0,$e.default)(i&&ne.is(i));let s=(p=(l=i.parameters.client)==null?void 0:l.value)!=null?p:ne.closed();(0,$e.default)(s&&ne.is(s));let o=(h=(d=i.parameters.duplex)==null?void 0:d.value)!=null?h:ne.closed();return(0,$e.default)(o&&ne.is(o)),[...new Set(Object.keys(s.parameters).concat(Object.keys(o.parameters)))]},Cue=(t,e)=>{var a,c,u,f,l,p,d,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,$e.default)(r&&ne.is(r));let n=(c=r.parameters.artifact)==null?void 0:c.value;(0,$e.default)(n&&ne.is(n));let i=(f=(u=n.parameters.srv)==null?void 0:u.value)!=null?f:ne.closed();(0,$e.default)(i&&ne.is(i));let s=(p=(l=i.parameters.server)==null?void 0:l.value)!=null?p:ne.closed();(0,$e.default)(s&&ne.is(s));let o=(h=(d=i.parameters.duplex)==null?void 0:d.value)!=null?h:ne.closed();return(0,$e.default)(o&&ne.is(o)),[...new Set(Object.keys(s.parameters).concat(Object.keys(o.parameters)))]};var U$=ke(require("assert"),1);var kue=[on],q$=()=>kue.map(t=>[t,wue]);function wue(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(!Fe.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(Gr.Kumori);(0,U$.default)(N.isOk(a));let c=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(a.value.docs.map(g=>g.uri.toString()))).toArray().find(g=>"name"in g&&g.name==="ServiceInterface");if(!c||!c.node){i("error","service interface type definition not found",{node:n});return}let u=t.ctx(),[f,l]=e.Infer(u,c.node);for(let g of l)i("error",`type error: ${g.message}`,{node:g.node});let[p,d]=e.Infer(u,n);for(let g of d)Fe.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(d.length>0||l.length>0)return;let h=e.Assignable(u,p,f);if(N.isErr(h))for(let g of h.err){let v=xn(g,n);i("error",`type error: ${g.cause}`,v)}}}var B$=ke(require("assert"),1),Aue=[on],H$=()=>Aue.map(t=>[t,Rue]);function Rue(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,c,u,f;let i=t.ctx(),[s]=e.Infer(i,r);if(!ne.is(s))return;let o=(a=s.parameters.role)==null?void 0:a.value;if(!(!o||!ne.is(o)))for(let l of Object.values(o.parameters)){(0,B$.default)(l);let p=l.value;if(!p||!ne.is(p))continue;let d=(c=p.parameters.artifact)==null?void 0:c.value;if(!d||!ne.is(d))continue;let h=(u=p.parameters.config)==null?void 0:u.value,g=(f=d.parameters.config)==null?void 0:f.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!N.isOk(v))for(let b of v.err){let _=xn(b,r);n("error",`type error: ${b.cause}`,_)}}}}var z$=ke(require("assert"),1),Pue=[on],W$=()=>Pue.map(t=>[t,Nue]);function Nue(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,c,u,f;let i=t.ctx(),[s]=e.Infer(i,r);if(!ne.is(s))return;let o=(a=s.parameters.role)==null?void 0:a.value;if(!(!o||!ne.is(o)))for(let l of Object.values(o.parameters)){(0,z$.default)(l);let p=l.value;if(!p||!ne.is(p))continue;let d=(c=p.parameters.artifact)==null?void 0:c.value;if(!d||!ne.is(d))continue;let h=(u=p.parameters.resource)==null?void 0:u.value,g=(f=d.parameters.resource)==null?void 0:f.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!N.isOk(v))for(let b of v.err){let _=xn(b,r);n("error",`type error: ${b.cause}`,_)}}}}var K$=new On,G$=t=>{let e=new On;for(let[r,n]of K$.entriesGroupedByKey()){let i=n.map(s=>s(t));e.addAll(r,i)}return r=>e.get(r)},vr=t=>{let e=t();for(let r of e){let n=r[0],i=r[1];K$.add(n,i)}};vr(i$);vr(s$);vr(o$);vr(a$);vr(u$);vr(f$);vr(p$);vr(h$);vr(v$);vr(x$);vr(_$);vr(b$);vr(E$);vr(C$);vr(w$);vr(A$);vr(R$);vr(P$);vr(N$);vr(O$);vr(I$);vr(L$);vr(j$);vr(q$);vr(H$);vr(W$);var J$=t=>(e,r)=>t.forEach(n=>n(e,r));function Q$(t){let e=t.validation.ValidationRegistry,r=t.validation.KumoriValidations,n=G$(r),i=Object.fromEntries(t.shared.AstReflection.getAllTypes().map(s=>[s,n(s)]).filter(([,s])=>s.length>0).map(([s,o])=>[s,J$(o)]));e.register(i)}var Y$=t=>({svcs:t,ctx:Fs(()=>t.validation.KumoriTypeSystem.NewContext())});var Z$=`package io
|
|
213
|
+
For example, "docker.io/alpine:3"`,{node:f});continue}}}}var Oce=[qr],b$=()=>Oce.map(t=>[t,Ice]);function Ice(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:s},o]=e.Eval(i,r);if(o.length||!pe.is(s))return;let a=Lr(s,"code");if(ue.isNone(a)||!pe.is(a.value))return;let c=Lr(s,"probe");if(ue.isNone(c)||!pe.is(c.value))return;let u=new Set(Object.keys(a.value.parameters)),f=new Set(Object.keys(c.value.parameters));for(let l of f)u.has(l)||n("error",`Probe "${l}" does not refer to any existing container. Existing containers are: ${[...u].map(p=>`"${p}"`).join(", ")}`,{node:r})}}var S$=ke(require("assert"),1);var Dce=[ti],E$=()=>Dce.map(t=>[t,Lce]);function Lce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let s=r.GetPackage(Gr.Kumori);(0,S$.default)(N.isOk(s));let o=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(s.value.docs.map(d=>d.uri.toString()))).toArray().find(d=>"name"in d&&d.name==="deployment");if(!o||!o.node){i("error","deployment type definition not found",{node:n});return}let a=t.ctx(),[c,u]=e.Infer(a,o.node);for(let d of u)i("error",`type error: ${d.message}`,{node:d.node});let[f,l]=e.Infer(a,n);for(let d of l)Fe.getContainerOfType(d.node,h=>h===n)&&i("error",`type error: ${d.message}`,{node:d.node});let p=e.Assignable(a,f,c);if(N.isErr(p)){for(let d of p.err){let h=xn(d,n);i("error",`type error: ${d.cause}`,h)}return}}}var T$=ke(require("assert"),1);var $ce=[ti],C$=()=>$ce.map(t=>[t,Mce]);function Mce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let[{Value:i}]=e.Eval(t.ctx(),r);if(pe.is(i))for(let[s,o]of Object.entries(i.parameters)){if((0,T$.default)(o!==void 0),s==="artifact")continue;let a=e.Complete(o.value,r);if(N.isErr(a))for(let c of a.err)n("error",`completeness error: ${c.message}`,{node:c.node})}}}var k$=ke(require("assert"),1);var Fce=[ti],w$=()=>Fce.map(t=>[t,Vce]);function Vce(t){let e=t.svcs.references.KumoriPackages;return(r,n)=>{let i=e.GetPackage(r);(0,k$.default)(N.isOk(i));let s=i.value.docs.flatMap(o=>Fe.streamAst(o.parseResult.value).filter(Bn).filter(a=>a!==r).toArray());if(s.length>0){let o={node:r};o.relatedInformation=s.map(a=>Np(a,"another deployment was found here")),n("error",`error: package ${i.value.name} (${i.value.uri.toString()}) contains too many deployments`,{node:r})}}}var jce=[ti],A$=()=>jce.map(t=>[t,Uce]);function Uce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var f,l,p,d;let[i]=e.Infer(t.ctx(),r);if(!ne.is(i))return;let s=(l=(f=i.parameters.artifact)==null?void 0:f.value)==null?void 0:l.node;if(!s)return;let[o]=e.Infer(t.ctx(),s);if(!ne.is(o))return;let a=(p=i.parameters.config)==null?void 0:p.value,c=(d=o.parameters.config)==null?void 0:d.value;if(!a||!c)return;let u=e.Assignable(t.ctx(),a,c);if(!N.isOk(u))for(let h of u.err){let g=xn(h,r);n("error",`type error: ${h.cause}`,g)}}}var qce=[ti],R$=()=>qce.map(t=>[t,Bce]);function Bce(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var f,l,p,d;let[i]=e.Infer(t.ctx(),r);if(!ne.is(i))return;let s=(l=(f=i.parameters.artifact)==null?void 0:f.value)==null?void 0:l.node;if(!s)return;let[o]=e.Infer(t.ctx(),s);if(!ne.is(o))return;let a=(p=i.parameters.resource)==null?void 0:p.value,c=(d=o.parameters.resource)==null?void 0:d.value;if(!a||!c)return;let u=e.Assignable(t.ctx(),a,c);if(!N.isOk(u))for(let h of u.err){let g=xn(h,r);n("error",`type error: ${h.cause}`,g)}}}var Hce=[Bu,Hu,ju],P$=()=>Hce.map(t=>[t,zce]);function zce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{let[,s]=e.Infer(r,n);for(let o of s)i("error",`type error: ${o.message}`,{node:o.node})}}var Wce=[Uu,qu],N$=()=>Wce.map(t=>[t,Kce]);function Kce(){return(t,e)=>{let r=new Map;for(let n of t.entries||[]){let i=r.get(n.key);i||(i=[],r.set(n.key,i)),i.push(n)}for(let[,n]of r.entries())if(n.length>1)for(let i of n)e("error",`illegal struct declaration: repeated parameter '${i.key}'`,{node:i})}}var Gce=[Ps],O$=()=>Gce.map(t=>[t,Jce]);function Jce(t){let e=t.svcs.references.KumoriPackages,r=[rl,O1,nl];return(n,i)=>{let s=e.GetPackage(n);N.isErr(s)||r.includes(s.value.name)&&i("warning","package name collides with reserved keywords",{node:n.declaration||n})}}var Qce=[Ps],I$=()=>Qce.map(t=>[t,Yce]);function Yce(t){let e=new nr(t.svcs.shared);return(r,n)=>{if(!r.declaration)return;let i=Fe.getDocument(r).uri,s=ee.dirname(i),o=r.declaration.name,a=e.get(s.toString());if(a===void 0){let c=s.toString();e.set(c,o);return}a!==o&&n("error",`unexpected package '${o}' - package already defined as '${a}'`,{node:r.declaration})}}var D$=ke(require("assert"),1);var Zce=[on],L$=()=>Zce.map(t=>[t,Xce]);function Xce(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let s=r.GetPackage(Gr.Kumori);(0,D$.default)(N.isOk(s));let o=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(s.value.docs.map(d=>d.uri.toString()))).toArray().find(d=>"name"in d&&d.name==="service");if(!o||!o.node){i("error","service type definition not found",{node:n});return}let a=t.ctx(),[c,u]=e.Infer(a,o.node);for(let d of u)i("error",`type error: ${d.message}`,{node:d.node});let[f,l]=e.Infer(a,n);for(let d of l)Fe.getContainerOfType(d.node,h=>h===n)&&i("error",`type error: ${d.message}`,{node:d.node});if(l.length>0||u.length>0)return;let p=e.Assignable(a,f,c);if(N.isErr(p))for(let d of p.err){let h=xn(d,n);i("error",`type error: ${d.cause}`,h)}}}var $e=ke(require("assert"),1);var t_=k.union([k.literal("udp"),k.literal("tcp"),k.literal("http"),k.literal("grpc")]),eue=t_,$$=k.union([t_,k.object({protocol:t_,port:k.number()})]),Ip=k.object({client:k.object({}).catchall(eue).optional(),server:k.object({}).catchall($$).optional(),duplex:k.object({}).catchall($$).optional()});var tue=k.union([k.string(),k.object({data:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({secret:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({port:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({domain:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({certificate:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({ca:k.string(),mode:k.number(),format:k.enum(["text","json","yaml"]).optional()}),k.object({volume:k.string()})]),rue=k.union([k.string(),k.number(),k.boolean(),k.object({secret:k.string()})]),nue=k.object({hub:k.object({name:k.string(),secret:k.string().optional()}),tag:k.string()}),M$=k.object({cmd:k.array(k.string()).optional(),image:k.union([k.string(),nue]),entrypoint:k.array(k.string()).optional(),size:k.object({memory:ai,cpu:ai,mincpu:ai}),env:k.object({}).catchall(rue).optional(),fs:k.object({}).catchall(tue).optional()}),F$=k.object({port:k.number(),path:k.string()}),iue=k.object({port:k.number()}),sue=k.object({path:k.string()}),V$=k.object({http:F$.optional(),tcp:iue.optional(),exec:sue.optional()}),oue=k.object({http:F$.optional()}),aue=k.object({unit:k.enum(["attempts","ms"]),duration:k.number().int().nonnegative(),probe:k.boolean()}),cue=k.object({protocol:k.object({}).catchall(V$),startupGraceWindow:k.object({}).catchall(aue).optional(),frequency:k.optional(k.any()),timeout:k.optional(k.number().int())}),uue=k.object({protocol:k.object({}).catchall(V$),frequency:k.optional(k.any()),timeout:k.optional(k.number().int())}),lue=k.object({protocol:k.object({}).catchall(oue)}),fue=k.object({liveness:k.object({}).catchall(cue).optional(),readiness:k.object({}).catchall(uue).optional(),pmetrics:k.object({}).catchall(lue).optional()}),K4=k.object({srv:Ip.optional(),config:k.object({}).catchall(k.any()).optional(),resource:k.object({}).catchall(ja).optional(),scale:k.number().optional(),code:k.object({}).catchall(M$).optional(),init:k.array(M$).optional(),size:k.object({bandwidth:ai,minbandwidth:ai,mincpu:ai}),probe:k.object({}).catchall(fue).optional()});var due=k.object({name:k.string(),kind:k.union([k.literal("service"),k.literal("component")]),domain:k.string(),module:k.string(),version:k.string()}),G4=k.object({id:due,srv:Ip,config:k.record(k.string(),k.any()),resource:k.record(k.string(),ja)});var pue=k.object({config:k.record(k.string(),k.any()).optional(),resource:k.record(k.string(),ja).optional(),meta:k.record(k.string(),k.any()).optional()}),mue=pue.extend({artifact:k.lazy(()=>k.union([K4,r_,G4]))}),Dp=li("LoadBalancer"),hue=ki(Dp,k.object({from:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),to:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),meta:k.any().optional()})),gue=k.object({target:k.string(),channel:k.string(),meta:k.any().optional()}),yue=k.object({from:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),to:k.union([k.object({target:k.string(),channel:k.string()}),k.array(k.object({target:k.string(),channel:k.string()}))]),meta:k.any().optional()}),Lp=li("FullConnector"),vue=ki(Lp,k.union([gue,yue])),xue=k.union([hue,vue]),r_=k.object({srv:Ip.optional(),config:k.record(k.string(),k.any()).optional(),resource:k.record(k.string(),ja).optional(),role:k.record(k.string(),mue).optional(),connect:k.record(k.string(),xue).optional()});var _ue=[on],j$=()=>_ue.map(t=>[t,bue]);function bue(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{var d,h,g,v,b,_,x,T,R,V,$,K,z,W,D,P,M,j,J,te,re,we,Q,F;let[{Value:s,Type:o},a]=e.Eval(r,n);if(a.length)return;(0,$e.default)(pe.is(s)&&ne.is(o));let c=(d=s.parameters.connect)==null?void 0:d.value;if(!c)return;(0,$e.default)(c&&pe.is(c));let u=(h=o.parameters.role)==null?void 0:h.value;(0,$e.default)(u&&ne.is(u));let l=`[${Object.keys(u.parameters).join(", ")}]`,p=[];for(let Oe of Object.values(c.parameters)){let ze=Oe==null?void 0:Oe.value;(0,$e.default)(ze),ze=Ve(ze),(0,$e.default)(Si.is(ze)&&pe.is(ze.inner));let pt=e.Complete(ze,n);if(N.isErr(pt))for(let qe of pt.err)i("error",`completeness error: ${qe.message}`,{node:qe.node});switch(ze.definition.meta.id){case Dp:{let qe=(g=ze.inner.parameters.from)==null?void 0:g.value;if((0,$e.default)(qe),cn.is(qe))for(let Te of qe.items){(0,$e.default)(pe.is(Te.value));let ie=(v=Te.value.parameters.target)==null?void 0:v.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node);let he=(b=Te.value.parameters.channel)==null?void 0:b.value;if((0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node),p.find(([Ee,Ce])=>Ee.Target===ie.literal&&Ce.Channel===he.literal&&Ce.type==="client")){i("error",`found duplicate "from" definition: role: ${ie.literal} channel: ${he.literal}`,{node:he.node});return}p.push([{Target:ie.literal,node:ie.node},{Channel:he.literal,type:"client",node:he.node}])}else if(pe.is(qe)){let Te=(_=qe.parameters.target)==null?void 0:_.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(x=qe.parameters.channel)==null?void 0:x.value;if((0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.find(([he,Ee])=>he.Target===Te.literal&&Ee.Channel===ie.literal&&Ee.type==="client")){i("error",`found duplicate "from" definition: role: ${Te.literal} channel: ${ie.literal}`,{node:ie.node});return}p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"client",node:ie.node}])}let Je=(T=ze.inner.parameters.to)==null?void 0:T.value;if((0,$e.default)(Je),cn.is(Je)){for(let Te of Je.items){(0,$e.default)(pe.is(Te.value));let ie=(R=Te.value.parameters.target)==null?void 0:R.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node);let he=(V=Te.value.parameters.channel)==null?void 0:V.value;if((0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node),p.find(([Ee,Ce])=>Ee.Target===ie.literal&&Ce.Channel===he.literal&&Ce.type==="server")){i("error",`found duplicated "to" definition: role: ${ie.literal} channel: ${he.literal}`,{node:he.node});return}p.push([{Target:ie.literal,node:ie.node},{Channel:he.literal,type:"server",node:he.node}])}break}else if(pe.is(Je)){let Te=($=Je.parameters.target)==null?void 0:$.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(K=Je.parameters.channel)==null?void 0:K.value;if((0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.find(([he,Ee])=>he.Target===Te.literal&&Ee.Channel===ie.literal&&Ee.type==="server")){i("error",`found duplicated "to" definition: role: ${Te.literal} channel: ${ie.literal}`,{node:ie.node});return}p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"server",node:ie.node}])}break}case Lp:{let qe=ze.inner.parameters.target!==void 0,Je=ze.inner.parameters.channel!==void 0;if(qe&&Je){let Te=(z=ze.inner.parameters.target)==null?void 0:z.value;(0,$e.default)(Te),Te=Ve(Te),(0,$e.default)(Ke.is(Te)&&Te.node);let ie=(W=ze.inner.parameters.channel)==null?void 0:W.value;(0,$e.default)(ie),ie=Ve(ie),(0,$e.default)(Ke.is(ie)&&ie.node),p.push([{Target:Te.literal,node:Te.node},{Channel:ie.literal,type:"server",node:ie.node}])}else{let Te=(D=ze.inner.parameters.from)==null?void 0:D.value;if((0,$e.default)(Te),cn.is(Te))for(let he of Te.items){(0,$e.default)(pe.is(he.value));let Ee=(P=he.value.parameters.target)==null?void 0:P.value;(0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node);let Ce=(M=he.value.parameters.channel)==null?void 0:M.value;if((0,$e.default)(Ce),Ce=Ve(Ce),(0,$e.default)(Ke.is(Ce)&&Ce.node),p.find(([We,me])=>We.Target===Ee.literal&&me.Channel===Ce.literal)){i("error",`found duplicate "from" definition: role: ${Ee.literal} channel: ${Ce.literal}`,{node:Ce.node});return}p.push([{Target:Ee.literal,node:Ee.node},{Channel:Ce.literal,type:"client",node:Ce.node}])}else if(pe.is(Te)){let he=(j=Te.parameters.target)==null?void 0:j.value;(0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node);let Ee=(J=Te.parameters.channel)==null?void 0:J.value;if((0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node),p.find(([Ce,We])=>Ce.Target===he.literal&&We.Channel===Ee.literal)){i("error",`found duplicate "from" definition: role: ${he.literal} channel: ${Ee.literal}`,{node:Ee.node});return}p.push([{Target:he.literal,node:he.node},{Channel:Ee.literal,type:"client",node:Ee.node}])}let ie=(te=ze.inner.parameters.to)==null?void 0:te.value;if((0,$e.default)(ie),cn.is(ie))for(let he of ie.items){(0,$e.default)(pe.is(he.value));let Ee=(re=he.value.parameters.target)==null?void 0:re.value;(0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node);let Ce=(we=he.value.parameters.channel)==null?void 0:we.value;if((0,$e.default)(Ce),Ce=Ve(Ce),(0,$e.default)(Ke.is(Ce)&&Ce.node),p.find(([We,me])=>We.Target===Ee.literal&&me.Channel===Ce.literal)){i("error",`found duplicate "to" definition: role: ${Ee.literal} channel: ${Ce.literal}`,{node:Ce.node});return}p.push([{Target:Ee.literal,node:Ee.node},{Channel:Ce.literal,type:"server",node:Ce.node}])}else if(pe.is(ie)){let he=(Q=ie.parameters.target)==null?void 0:Q.value;(0,$e.default)(he),he=Ve(he),(0,$e.default)(Ke.is(he)&&he.node);let Ee=(F=ie.parameters.channel)==null?void 0:F.value;if((0,$e.default)(Ee),Ee=Ve(Ee),(0,$e.default)(Ke.is(Ee)&&Ee.node),p.find(([Ce,We])=>Ce.Target===he.literal&&We.Channel===Ee.literal)){i("error",`found duplicate "to" definition: role: ${he.literal} channel: ${Ee.literal}`,{node:Ee.node});return}p.push([{Target:he.literal,node:he.node},{Channel:Ee.literal,type:"server",node:Ee.node}])}}break}default:(0,$e.default)(ze.node),i("error",`unknown connector type: ${ze.definition.meta.id}, valid types are: ${Dp}, ${Lp}`,{node:ze.node});break}}for(let[Oe,ze]of p){let pt=Oe.Target;if(u.parameters[pt]===void 0&&pt!=="self"){i("error",`unknown target '${pt}': must be one of ${l}`,{node:Oe.node});continue}let qe=(()=>{let Te=()=>Tue(u,pt),ie=()=>Cue(u,pt);switch(pt==="self"&&(Te=()=>Eue(o),ie=()=>Sue(o)),ze.type){case"client":return Te();case"server":return ie()}})(),Je=ze.Channel;if(!qe.includes(Je)){i("error",`unknown channel '${Je}' in role '${pt}': must be one of [${qe.join(", ")}]`,{node:ze.node});continue}}}}var Sue=t=>{var i,s,o,a,c,u;let e=(s=(i=t.parameters.srv)==null?void 0:i.value)!=null?s:ne.closed();(0,$e.default)(e&&ne.is(e));let r=(a=(o=e.parameters.client)==null?void 0:o.value)!=null?a:ne.closed();(0,$e.default)(r&&ne.is(r));let n=(u=(c=e.parameters.duplex)==null?void 0:c.value)!=null?u:ne.closed();return(0,$e.default)(n&&ne.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},Eue=t=>{var i,s,o,a,c,u;let e=(s=(i=t.parameters.srv)==null?void 0:i.value)!=null?s:ne.closed();(0,$e.default)(e&&ne.is(e));let r=(a=(o=e.parameters.server)==null?void 0:o.value)!=null?a:ne.closed();(0,$e.default)(r&&ne.is(r));let n=(u=(c=e.parameters.duplex)==null?void 0:c.value)!=null?u:ne.closed();return(0,$e.default)(n&&ne.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},Tue=(t,e)=>{var a,c,u,f,l,p,d,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,$e.default)(r&&ne.is(r));let n=(c=r.parameters.artifact)==null?void 0:c.value;(0,$e.default)(n&&ne.is(n));let i=(f=(u=n.parameters.srv)==null?void 0:u.value)!=null?f:ne.closed();(0,$e.default)(i&&ne.is(i));let s=(p=(l=i.parameters.client)==null?void 0:l.value)!=null?p:ne.closed();(0,$e.default)(s&&ne.is(s));let o=(h=(d=i.parameters.duplex)==null?void 0:d.value)!=null?h:ne.closed();return(0,$e.default)(o&&ne.is(o)),[...new Set(Object.keys(s.parameters).concat(Object.keys(o.parameters)))]},Cue=(t,e)=>{var a,c,u,f,l,p,d,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,$e.default)(r&&ne.is(r));let n=(c=r.parameters.artifact)==null?void 0:c.value;(0,$e.default)(n&&ne.is(n));let i=(f=(u=n.parameters.srv)==null?void 0:u.value)!=null?f:ne.closed();(0,$e.default)(i&&ne.is(i));let s=(p=(l=i.parameters.server)==null?void 0:l.value)!=null?p:ne.closed();(0,$e.default)(s&&ne.is(s));let o=(h=(d=i.parameters.duplex)==null?void 0:d.value)!=null?h:ne.closed();return(0,$e.default)(o&&ne.is(o)),[...new Set(Object.keys(s.parameters).concat(Object.keys(o.parameters)))]};var U$=ke(require("assert"),1);var kue=[on],q$=()=>kue.map(t=>[t,wue]);function wue(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(!Fe.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(Gr.Kumori);(0,U$.default)(N.isOk(a));let c=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(a.value.docs.map(g=>g.uri.toString()))).toArray().find(g=>"name"in g&&g.name==="ServiceInterface");if(!c||!c.node){i("error","service interface type definition not found",{node:n});return}let u=t.ctx(),[f,l]=e.Infer(u,c.node);for(let g of l)i("error",`type error: ${g.message}`,{node:g.node});let[p,d]=e.Infer(u,n);for(let g of d)Fe.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(d.length>0||l.length>0)return;let h=e.Assignable(u,p,f);if(N.isErr(h))for(let g of h.err){let v=xn(g,n);i("error",`type error: ${g.cause}`,v)}}}var B$=ke(require("assert"),1),Aue=[on],H$=()=>Aue.map(t=>[t,Rue]);function Rue(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,c,u,f;let i=t.ctx(),[s]=e.Infer(i,r);if(!ne.is(s))return;let o=(a=s.parameters.role)==null?void 0:a.value;if(!(!o||!ne.is(o)))for(let l of Object.values(o.parameters)){(0,B$.default)(l);let p=l.value;if(!p||!ne.is(p))continue;let d=(c=p.parameters.artifact)==null?void 0:c.value;if(!d||!ne.is(d))continue;let h=(u=p.parameters.config)==null?void 0:u.value,g=(f=d.parameters.config)==null?void 0:f.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!N.isOk(v))for(let b of v.err){let _=xn(b,r);n("error",`type error: ${b.cause}`,_)}}}}var z$=ke(require("assert"),1),Pue=[on],W$=()=>Pue.map(t=>[t,Nue]);function Nue(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,c,u,f;let i=t.ctx(),[s]=e.Infer(i,r);if(!ne.is(s))return;let o=(a=s.parameters.role)==null?void 0:a.value;if(!(!o||!ne.is(o)))for(let l of Object.values(o.parameters)){(0,z$.default)(l);let p=l.value;if(!p||!ne.is(p))continue;let d=(c=p.parameters.artifact)==null?void 0:c.value;if(!d||!ne.is(d))continue;let h=(u=p.parameters.resource)==null?void 0:u.value,g=(f=d.parameters.resource)==null?void 0:f.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!N.isOk(v))for(let b of v.err){let _=xn(b,r);n("error",`type error: ${b.cause}`,_)}}}}var K$=new On,G$=t=>{let e=new On;for(let[r,n]of K$.entriesGroupedByKey()){let i=n.map(s=>s(t));e.addAll(r,i)}return r=>e.get(r)},vr=t=>{let e=t();for(let r of e){let n=r[0],i=r[1];K$.add(n,i)}};vr(i$);vr(s$);vr(o$);vr(a$);vr(u$);vr(f$);vr(p$);vr(h$);vr(v$);vr(x$);vr(_$);vr(b$);vr(E$);vr(C$);vr(w$);vr(A$);vr(R$);vr(P$);vr(N$);vr(O$);vr(I$);vr(L$);vr(j$);vr(q$);vr(H$);vr(W$);var J$=t=>(e,r)=>t.forEach(n=>n(e,r));function Q$(t){let e=t.validation.ValidationRegistry,r=t.validation.KumoriValidations,n=G$(r),i=Object.fromEntries(t.shared.AstReflection.getAllTypes().map(s=>[s,n(s)]).filter(([,s])=>s.length>0).map(([s,o])=>[s,J$(o)]));e.register(i)}var Y$=t=>({svcs:t,ctx:Fs(()=>t.validation.KumoriTypeSystem.NewContext())});var Z$=`package io
|
|
214
214
|
|
|
215
215
|
library
|
|
216
216
|
|
|
217
217
|
func Open(path string, args? struct open[]) string
|
|
218
|
-
`;var X$=`package
|
|
219
|
-
|
|
220
|
-
library
|
|
221
|
-
|
|
222
|
-
alias builtin struct {
|
|
223
|
-
id Ref
|
|
224
|
-
srv Links
|
|
225
|
-
config struct open[]
|
|
226
|
-
resource struct open[Resource]
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
alias Ref struct {
|
|
230
|
-
name string
|
|
231
|
-
kind "service" | "component"
|
|
232
|
-
domain string
|
|
233
|
-
module string
|
|
234
|
-
version string
|
|
235
|
-
}
|
|
236
|
-
`;var eM=`package builtin
|
|
218
|
+
`;var X$=`package builtin
|
|
237
219
|
|
|
238
220
|
import "kumori"
|
|
239
221
|
|
|
@@ -259,7 +241,25 @@ builtin HTTPInbound {
|
|
|
259
241
|
serverdomain: kumori.Domain
|
|
260
242
|
clientcertca?: kumori.CA
|
|
261
243
|
}
|
|
262
|
-
}`;var
|
|
244
|
+
}`;var eM=`package kumori
|
|
245
|
+
|
|
246
|
+
library
|
|
247
|
+
|
|
248
|
+
alias builtin struct {
|
|
249
|
+
id Ref
|
|
250
|
+
srv Links
|
|
251
|
+
config struct open[]
|
|
252
|
+
resource struct open[Resource]
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
alias Ref struct {
|
|
256
|
+
name string
|
|
257
|
+
kind "service" | "component"
|
|
258
|
+
domain string
|
|
259
|
+
module string
|
|
260
|
+
version string
|
|
261
|
+
}
|
|
262
|
+
`;var tM=`package builtin
|
|
263
263
|
|
|
264
264
|
import "kumori"
|
|
265
265
|
|
|
@@ -415,6 +415,7 @@ alias deployment struct {
|
|
|
415
415
|
|
|
416
416
|
config? struct open[]
|
|
417
417
|
resource? struct open[Resource]
|
|
418
|
+
meta? struct open[]
|
|
418
419
|
}
|
|
419
420
|
`;var iM=`package kumori
|
|
420
421
|
|
|
@@ -464,6 +465,7 @@ alias Role struct {
|
|
|
464
465
|
artifact any // TODO: service, component or builtin
|
|
465
466
|
config? struct open[]
|
|
466
467
|
resource? struct open[Resource]
|
|
468
|
+
meta? struct open[]
|
|
467
469
|
}
|
|
468
470
|
|
|
469
471
|
alias Connection LoadBalancer | FullConnector
|
|
@@ -548,10 +550,10 @@ func JSON(v any) string
|
|
|
548
550
|
|
|
549
551
|
func Concat(v []string) string
|
|
550
552
|
|
|
551
|
-
func Join(v []string, sep string) string`;var Gi=[],fM=Gi,xs=(t,e)=>({src:t,data:e});Gi.push(xs("/io/lib.kumori",Z$));Gi.push(xs("/kumori/builtin.kumori",X$));Gi.push(xs("/kumori/builtin
|
|
553
|
+
func Join(v []string, sep string) string`;var Gi=[],fM=Gi,xs=(t,e)=>({src:t,data:e});Gi.push(xs("/io/lib.kumori",Z$));Gi.push(xs("/kumori/builtin/httpinbound.h.kumori",X$));Gi.push(xs("/kumori/builtin.kumori",eM));Gi.push(xs("/kumori/builtin/tcpinbound.h.kumori",tM));Gi.push(xs("/kumori/component.kumori",rM));Gi.push(xs("/kumori/deployment.kumori",nM));Gi.push(xs("/kumori/resource.kumori",iM));Gi.push(xs("/kumori/service.kumori",sM));Gi.push(xs("/kumori/shared.kumori",oM));Gi.push(xs("/kumori/sized.kumori",aM));Gi.push(xs("/sized.kumori",cM));Gi.push(xs("/std.kumori",uM));Gi.push(xs("/strconv/lib.kumori",lM));var n_=fM.map(t=>kI(t.src,t.data)),Oue=new Map;for(let t of n_){let e=ee.dirname(t.uri).fsPath.split("/").filter(i=>i!==""),r=Oue,n="";for(let i of e){n=`${n}/${i}`;let s=r.get(i);if(s===void 0&&(s={type:"Dir",contents:new Map},r.set(i,s)),s.type==="File")throw new Error("fs collision on "+n);r=s.contents}r.set(ee.basename(t.uri),{type:"File",data:t.data})}async function J4(t,e,r,n=ye.CancellationToken.None){await dM(t,e,r,n)}async function dM(t,e,r,n=ye.CancellationToken.None){await it(n);let i=await t.readDirectory(e);if(r.Dir){let o=await r.Dir(e,i);if(o!=null&&o.break)return o;if(o!=null&&o.skipDir)return}let s=[];for(let o of i)if(await it(n),o.isDirectory)s.push(o.uri);else if(o.isFile&&r.File){let a=await r.File(o.uri);if(a!=null&&a.break)return a}for(let o of s){await it(n);let a=await dM(t,o,r);if(a!=null&&a.break)return a}}var xr="kumori.mod.json";async function pM(t,e,r=ye.CancellationToken.None){let n=[],i=await Iue(t,De.parse(e.uri),r);for(let s of i){let o=await kr(t,s);N.isOk(o)&&n.push(o.value)}return n}async function Iue(t,e,r=ye.CancellationToken.None){let n=[];return await J4(t,e,{Dir:async i=>{if(e.fsPath===i.fsPath)return;let s=ee.dirname(i);if((await t.readDirectory(s)).map(a=>a.uri).map(ee.basename).includes(xr))return{skipDir:!0}},File:i=>{ee.basename(i)===xr&&n.push(ee.dirname(i))}},r),n}async function wl(t,e){if((await t.readDirectory(e)).map(s=>ee.basename(s.uri)).includes(xr))return Ut(ee.joinPath(e,xr));let i=ee.dirname(e);return e.fsPath===i.fsPath?ot:wl(t,i)}var i_=k.object({target:k.string(),version:k.string()}),mM=i_.extend({headers:k.optional(i_)}),Due=mM.extend({alias:k.optional(k.string())}),Lue=k.object({spec:k.literal("kumori/module/v1"),module:k.string(),kumori:k.string(),version:k.string(),headers:k.optional(i_),cacheLocation:k.optional(k.string().default(".kumori/mod")),requires:k.array(Due),indirect:k.array(mM).optional()}),hM=k.discriminatedUnion("spec",[Lue]);async function Gs(t,e,r=ye.CancellationToken.None){try{await it(r)}catch(o){return oe("error reading module: operation cancelled")}let n=e;if(n.scheme!=="file")return oe(`unexpected URI scheme '${n.scheme}': ${n.toString()}`);ee.basename(n)!==xr&&(n=ee.joinPath(n,xr));let i;try{i=JSON.parse(await t.readFile(n))}catch(o){return oe(`error reading file ${n.fsPath}: ${o}`)}let s=await hM.safeParseAsync(i);return s.success?Le({Root:ee.dirname(n),Manifest:s.data}):oe(`error parsing file ${n.fsPath}: ${JSON.stringify(s.error.format())}`)}function ig(t){return t instanceof De||(t=t.Root),ee.joinPath(t,"vendor")}function Q4(t){if(!(t instanceof De)){let e=t.Manifest,r=t.Root;if(e&&e.cacheLocation){let n=e.cacheLocation;return n.startsWith(".")?ee.joinPath(r,n):n.startsWith("/")?De.parse(n):ee.joinPath(r,n)}t=r}return ee.joinPath(t,".kumori/mod")}var fg=require("fs/promises");var s_=require("crypto"),gM=require("fs"),yM=require("fs/promises"),o_=ke(require("path"),1),vM=require("stream/promises");async function $p(t){let e=[];async function r(i){let s=await(0,yM.readdir)(i,{withFileTypes:!0});for(let o of s){let a=o_.default.join(i,o.name),c=o_.default.relative(i,a).replace(/\\/g,"/");if(o.isDirectory())await r(a);else if(o.isFile()){let u=(0,s_.createHash)("sha256"),f=(0,gM.createReadStream)(a);await(0,vM.pipeline)(f,u),e.push({relativePath:c,hash:u.digest("hex")})}}}await r(t),e.sort((i,s)=>i.relativePath.localeCompare(s.relativePath));let n=(0,s_.createHash)("sha256");for(let i of e)n.update(`${i.relativePath} ${i.hash}
|
|
552
554
|
`);return`h1:${n.digest("hex")}`}var wM=ke(TM(),1);var ea=class{get[Symbol.toStringTag](){return"URLSearchParams"}constructor(e){this.isEncoded=!1,this.params=[],typeof e=="string"?a_(e,e[0]==="?"?1:0,e.length,this,[38],61,[],{encode:!0}):Array.isArray(e)?e.forEach(r=>{this.append(r[0],r[1])}):typeof e=="object"&&Object.keys(e).forEach(r=>{this.append(r,e[r])})}*entries(){for(let e=0;e<this.params.length;e+=1)yield[mo(this.params[e][0]),mo(this.params[e][1])]}append(e,r){this.params.push([Y4(e),Y4(r)])}delete(e){this.params=this.params.filter(([r])=>mo(r)!==e)}forEach(e){this.params.forEach(([r,n])=>{e(mo(n),mo(r),this)})}get(e){let r=this.params.find(([n])=>mo(n)===e);return r?mo(r[1]):null}getAll(e){return this.params.filter(([r])=>mo(r)===e).map(r=>r[1])}has(e){return this.get(e)!==null}*keys(){for(let e=0;e<this.params.length;e+=1)yield mo(this.params[e][0])}set(e,r){let n=this.params.findIndex(([i])=>mo(i)===e);if(n===-1){this.append(e,r);return}this.delete(e),this.params.splice(n,0,[Y4(e),Y4(r)])}sort(){this.params=this.params.sort((e,r)=>e[0].localeCompare(r[0]))}toString(){return this.params.map(([e,r])=>`${e}=${r}`).join("&")}*values(){for(let e=0;e<this.params.length;e+=1)yield mo(this.params[e][1])}[Symbol.iterator](){return this.entries()}get size(){return this.params.length}};function a_(t,e,r,n,i,s,o,{encode:a}={encode:!1}){let c=e,u=c,f=0,l=0,p=a?n.append.bind(n):(d,h)=>n.params.push([d,h]);for(;c<=r;c+=1){let d=t.charCodeAt(c);if(d===s&&f===0)f=c,l=c+1;else if(i.indexOf(d)!==-1)c>u&&p(t.slice(u,f||c),t.slice(l||c,c)),u=c+1,f=0,l=0;else if(o.indexOf(d)!==-1)break}return c!==u&&p(t.slice(u,f||c),t.slice(l||c,c)),c}function mo(t){if(t.indexOf("%")!==-1)try{return decodeURIComponent(t.replace(/\+/g," "))}catch(e){return t}else return t}function Y4(t){let e=""+t,r="";for(let n=0;n<e.length;n++)e.charCodeAt(n)===32?r+="+":r+=encodeURIComponent(e[n]);return r}var kM=[47,35,63];function nle(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===45||t===43}var Bc=class{constructor(t){this.parse(t)}get protocol(){return this._protocol}get username(){return this._username}get password(){return this._password}get hostname(){return this._hostname}get host(){return this._host}get port(){return this._port}get pathname(){return this._pathname}get search(){return this._search||this._extractParams(),this._search}get searchParams(){return this.isQueryParsed||this._extractSearchParams(),this._query}get parameters(){return this.isQueryParsed||this._extractSearchParams(),this._parameters}hasParameterString(){return this.parameterStartIndex>0}get hash(){return!this._search&&!this._hash&&this._extractParams(),this._hash}get href(){return this._href}toString(){return this.href}toJSON(){return this.href}get domainInfo(){return this._domainInfo||(this._domainInfo=(0,wM.parse)(this.hostname,{extractHostname:!1})),this._domainInfo}get hostIsIp(){return this.domainInfo.isIp}get domain(){return this.domainInfo.hostname||this.hostname}get generalDomain(){return this.domainInfo.domain||this.hostname}get path(){return this.pathname||"/"}get scheme(){return this.protocol.slice(0,-1)}isValidHost(){return this.hostIsIp||this.generalDomain!==null}extractKeyValues(){if(this.parsedParameters)return this.parsedParameters;if(this.parsedParameters=new ea,this.queryStartIndex===0&&this.parameterStartIndex===0)return this.parsedParameters;let t=this.parameterStartIndex||this.queryStartIndex,e=this.href.length-1,r=t;return this.href.charCodeAt(r)===59&&(r=this._extractParamTuples(r+1,e,this.parsedParameters,[59],61,[63,35])),this.href.charCodeAt(r)===63&&(r=this._extractParamTuples(r+1,e,this.parsedParameters,[38,59],61,[35])),this.parsedParameters}_extractHostname(t,e){let r=0,n=!1,i=t,s=!1,o=!1;if(this._href.charCodeAt(i)===91){for(s=!0;i<=e;i+=1)if(this._href.charCodeAt(i)===93){let u=this._href.charCodeAt(i+1);if(u===58)r=i+1,i+=1,n=!0;else if(u===47)i+=1,n=!0;else if(i!==e)throw new TypeError("expected `:` or `/` after IPv6 address");break}}if(!s)for(;i<=e;i+=1){let c=this._href.charCodeAt(i);if(c===58){r=i,n=!0;break}else if(c===64)return this._username=this._href.slice(t,i),this._password="",this._extractHostname(i+1,e);if(kM.indexOf(c)!==-1){n=!0;break}else{if(c<=32)throw new TypeError(`Invalid character '${this.href[i]}' in hostname`);c>=65&&c<=90&&(o=!0)}}let a=n?i:i+1;if(o&&(this._href=`${this._href.slice(0,t)}${this._href.slice(t,a).toLowerCase()}${this._href.slice(a)}`),this._hostname=this._href.slice(t,a),r>0){i+=1;let c=i,u=!1;for(;i<=e;i+=1){let f=this._href.charCodeAt(i);if(kM.indexOf(f)!==-1){this._port=this._href.slice(c,i);break}else{if(f===64)return this._username=this._href.slice(t,r||i),this._password=this._href.slice(r+1,i),this._extractHostname(i+1,e);(f<48||f>57)&&(u=!0)}}if(this._port||(this._port=this.href.slice(c,i)),u)throw new TypeError("Invalid URL: port contains non numeric character");if(this._port.length>=5&&+this._port>65535)throw new TypeError("Invalid URL: invalid port number")}return this._host=this._href.slice(t,n?i:i+1),this.origin=`${this._protocol}//${this._host}`,n?i:i+1}_extractParams(){if(this.queryStartIndex>0){let t=this.queryStartIndex,e=this.href.length-1;if(this.href.charCodeAt(t)===63){let r=!1;for(;t<=e;t+=1)if(this.href.charCodeAt(t)===35){r=!0;break}this._search=this.href.slice(this.queryStartIndex,r?t:e+1),this._search.length===1&&(this._search="")}this.href.charCodeAt(t)===35&&(this._hash=this.href.slice(t,e+1))}}_extractSearchParams(){if(this.isQueryParsed=!0,this.queryStartIndex===0&&this.parameterStartIndex===0)return;let t=this.parameterStartIndex||this.queryStartIndex,e=this.href.length-1,r=t;if(this.href.charCodeAt(r)===59&&(r=this._extractParamTuples(r+1,e,this._parameters,[59],61,[63,35])),this.href.charCodeAt(r)===63){let n=r;r=this._extractParamTuples(r+1,e,this._query,[38],61,[35]),this._search=this.href.slice(n,r),this._search.length===1&&(this._search="")}this.href.charCodeAt(r)===35&&(this._hash=this.href.slice(r,e+1))}_extractParamTuples(t,e,r,n,i,s){return a_(this.href,t,e,r,n,i,s)}parse(t){if(typeof t!="string"||t.length===0)throw new TypeError(`${t} is not a valid URL`);this._protocol="",this._hostname="",this._host="",this._port="",this._pathname="",this._username="",this._password="",this._search="",this._hash="",this.parameterStartIndex=0,this.queryStartIndex=0,this.isQueryParsed=!1,this._parameters=new ea,this._query=new ea,this._domainInfo=null,this.parsedParameters=null;let e=0,r=t.length-1;for(;t.charCodeAt(e)<=32;)e+=1;for(;t.charCodeAt(r)<=32;)r-=1;this._href=t.slice(e,r+1),r=this._href.length-1;let n=!1;for(;e<=r;e+=1){let i=this._href.charCodeAt(e);if(i===58){this._protocol=this._href.slice(0,e+1),n&&(this._protocol=this._protocol.toLowerCase(),this._href=`${this._protocol}${this._href.slice(e+1)}`);break}else if(nle(i))i>=65&&i<=90&&(n=!0);else throw new TypeError("Invalid URL protocol")}if(e>=r)throw new TypeError("No protocol");for(this.slashes="",e+=1;e<r&&this._href.charCodeAt(e)===47;e+=1)this.slashes+="/";if(this.slashes.length>=2?e=this._extractHostname(e,r):(this._host="",this._hostname="",this.origin="null"),e>=r)this._href.charCodeAt(r)!==47&&(this._href+="/"),this._pathname="/";else{let i=e;for(;e<=r;e+=1){let s=this._href.charCodeAt(e);if(s===59&&!this.parameterStartIndex)this.parameterStartIndex=e;else if(s===63||s===35){this.queryStartIndex=e;break}}this._pathname=this.href.slice(i,this.queryStartIndex!==0?this.queryStartIndex:r+1)||"/"}}};var og=class extends ea{constructor(e,r){super(),this.url=e,this.params=r.params}append(e,r){super.append(e,r),this.url.search=this.toString()}delete(e){super.delete(e),this.url.search=this.toString()}set(e,r){super.set(e,r),this.url.search=this.toString()}sort(){super.sort(),this.url.search=this.toString()}};function Hc(t,e){let r={hash:e.hash!==void 0?e.hash:t.hash,host:e.host!==void 0?e.host:t.host,hostname:e.hostname!==void 0?e.hostname:t.hostname,password:e.password!==void 0?e.password:t.password,pathname:e.pathname!==void 0?e.pathname:t.pathname,port:e.port!==void 0?e.port:t.port,protocol:e.protocol!==void 0?e.protocol:t.protocol,search:e.search!==void 0?e.search:t.search,username:e.username!==void 0?e.username:t.username};(e.hostname||e.port)&&((r.protocol==="https:"&&r.port==="443"||r.protocol==="http:"&&r.port==="80")&&(r.port=""),r.host=`${r.hostname}${r.port?":":""}${r.port}`);let n=r.username?r.password?`${r.username}:${r.password}@`:`${r.username}@`:r.password?`:${r.password}@`:"";return new Bc(`${r.protocol}${t.slashes}${n}${r.host}${r.pathname}${r.search}${r.hash}`)}var Bp=class{get[Symbol.toStringTag](){return"URL"}constructor(t){this.url=new Bc(t)}get protocol(){return this.url.protocol}set protocol(t){let e=this.url.protocol,r=t.endsWith(":")?"":":",n=`${t}${r}${this.href.slice(e.length)}`;this.url=new Bc(n)}get username(){return this.url.username}set username(t){this.url=Hc(this,{username:t||""})}get password(){return this.url.password}set password(t){this.url=Hc(this,{password:t||""})}get hostname(){return this.url.hostname}set hostname(t){this.url=Hc(this,{hostname:t||""})}get host(){return this.url.host}set host(t){this.url=Hc(this,{host:t})}get origin(){return this.url.origin}get port(){return this.url.port}set port(t){this.url=Hc(this,{port:t||""})}get pathname(){return this.url.pathname}set pathname(t){let e=t.charCodeAt(0)===47?t:`/${t}`;this.url=Hc(this,{pathname:e})}get search(){return this.url.search}set search(t){let e=t.charCodeAt(0)===63?t.slice(1):t;this.url=Hc(this,{search:e.length>0?`?${e}`:""})}get searchParams(){return new og(this,this.url.searchParams)}get parameters(){return this.url.parameters}hasParameterString(){return this.url.hasParameterString()}get hash(){return this.url.hash}set hash(t){let e=t.charCodeAt(0)===35?t.slice(1):t;this.url=Hc(this,{hash:e.length>0?`#${e}`:""})}get href(){return this.url.href}set href(t){this.url=new Bc(t)}toString(){return this.href}toJSON(){return this.href}get domainInfo(){return this.url.domainInfo}get hostIsIp(){return this.url.hostIsIp}get domain(){return this.url.domain}get generalDomain(){return this.url.generalDomain}get path(){return this.url.path}get scheme(){return this.url.scheme}get slashes(){return this.url.slashes}isValidHost(){return this.url.isValidHost()}extractKeyValues(){return this.url.extractKeyValues()}};var Ba=class extends Bp{};var Ha=ke(require("fs"),1),cg=ke(require("path"),1),D_=ke(require("os"),1),RV=ke(I_(),1);var AV={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://kumori.systems/kdsl/registry-index.schema.json",title:"KDSL Registry Module Index",description:"Defines the structure of the index.json file hosted in a registry repository.",type:"object",required:["modules"],properties:{modules:{type:"array",minItems:1,uniqueItems:!0,description:"List of modules available in this registry index",items:{type:"object",required:["name","version","repository","checksum"],properties:{name:{type:"string",pattern:"^[a-zA-Z0-9._-]+$",description:"Name of the module"},version:{type:"string",description:"Semantic version of the module"},description:{type:"string",description:"Optional human-readable module description"},location:{type:"string",format:"uri",description:"Location (URL) where the module resides"},checksum:{type:"string",pattern:"^[a-fA-F0-9]{64}$",description:"SHA-256 checksum of the module package"},icon:{type:"string",format:"uri",description:"Optional URL to an icon for this module"}},additionalProperties:!1}}},additionalProperties:!1};var go=class{constructor(){this.registries=[];this.defaultName="kumori.systems";let e=cg.default.join(D_.default.homedir(),".config","kdsl");try{Ha.default.existsSync(e)||Ha.default.mkdirSync(e,{recursive:!0})}catch(r){throw new Error(`Failed to create config directory: ${r}`)}this.filePath=cg.default.join(e,"registries.json"),this.load()}initialize(){this.registries=[{selector:this.defaultName,indexUrl:"https://github.com/jrovira-kumori"}],this.save()}load(){if(Ha.default.existsSync(this.filePath))try{let e=Ha.default.readFileSync(this.filePath,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.registries))throw new Error("Malformed registry file: 'registries' is not an array");this.registries=r.registries}catch(e){console.warn(`Failed to load registries: ${e}. Reinitializing.`),this.initialize()}else this.initialize()}save(){let e=`${this.filePath}.tmp`;try{Ha.default.writeFileSync(e,JSON.stringify({registries:this.registries},null,2),{encoding:"utf-8"}),Ha.default.renameSync(e,this.filePath)}catch(r){throw new Error(`Failed to save registries: ${r}`)}}list(){return this.registries}async add(e){if(!e.selector||typeof e.selector!="string")throw new Error("Registry must have a valid 'selector'");if(this.registries.some(c=>c.selector===e.selector))throw new Error(`Registry with selector '${e.selector}' already exists`);let r=cg.default.join(D_.default.homedir(),".config","kdsl",".cache",e.selector),n=cg.default.join(r,"index.json");Ha.default.mkdirSync(r,{recursive:!0});let i=`${e.indexUrl}/index.json`,s=await fetch(i);if(!s.ok)throw new Error(`Failed to download index from ${i}: ${s.statusText}`);let o=await s.json();if(!this.validateIndexSchema(o))throw new Error(`Index schema validation failed for ${i}`);Ha.default.writeFileSync(n,JSON.stringify(o,null,2),{encoding:"utf-8"}),this.registries.push(e),this.save()}remove(e){if(e===this.defaultName)throw new Error(`Cannot remove default registry '${this.defaultName}'`);let r=this.registries.length;if(this.registries=this.registries.filter(n=>n.selector!==e),this.registries.length===r)throw new Error(`Registry '${e}' not found`);this.save()}validateIndexSchema(e){let n=new RV.default({validateSchema:!1,allErrors:!0}).compile(AV);return n(e)?!0:(console.warn("Index schema valiVdation errors:",n.errors),!1)}};var ug=ke(require("path"),1),$_=ke(require("os"),1),lg=ke(require("fs"),1),L_;(r=>(r.toString=n=>{let i=`${n.Scheme}://${n.Location}`;return ue.isSome(n.Major)&&(i=`${i}#${n.Major.value}`),ue.isSome(n.Version)&&(i=`${i}@${n.Version.value}`),i},r.toURL=n=>new Ba(`${n.Scheme}://${n.Location}`)))(L_||(L_={}));function Js(t){var u;let e=[t],r="git";if(e=e.pop().split("://"),e.length>2)return ot;e.length===2&&(r=e.shift());let n=ot;if(e=e.pop().split("@"),e.length>2)return ot;e.length===2&&(n=Ut(e.pop()));let i=ot;if(e=e.pop().split("#"),e.length>2)return ot;e.length===2&&(i=Ut(e.pop()));let s=e.pop(),c=new go().list().find(f=>s.startsWith(f.selector));if(c!==void 0){let f=ug.default.join($_.default.homedir(),".config","kdsl",".cache",c.selector),l=ug.default.join(f,"index.json");if(!lg.default.existsSync(l))return console.warn(`Index not found in cache: ${l}`),ot;let p=lg.default.readFileSync(l,{encoding:"utf-8"}),h=JSON.parse(p).modules.find(T=>c.selector+"/"+T.name==s);if(h===void 0)return console.warn(`Module not found in registry index: ${s} (registry: ${c.selector})`),ot;if(ue.isSome(n)&&h.version!==n.value)return console.warn(`Module version not found in registry index: ${s} (requested: ${n.value}, available: ${h.version})`),ot;let g=s.substring(h.location.length),b=((u=h.location.split("://")[1])!=null?u:h.location).replace(/\/+$/,""),_=g.startsWith("/")?g:`/${g}`;s=`${b}${_}`}return Ut({Location:s,Scheme:r,Major:i,Version:n,toString(){return L_.toString(this)}})}function PV(t){let n=new go().list().find(i=>t.startsWith(i.selector));if(n!==void 0){let i=ug.default.join($_.default.homedir(),".config","kdsl",".cache",n.selector),s=ug.default.join(i,"index.json");if(!lg.default.existsSync(s))return console.warn(`Index not found in cache: ${s}`),ot;let o=lg.default.readFileSync(s,{encoding:"utf-8"}),c=JSON.parse(o).modules.find(u=>n.selector+"/"+u.name==t);return c===void 0?(console.warn(`Module not found in registry index: ${t} (registry: ${n.selector})`),ot):Ut(c.checksum)}return ot}var Mfe=k.object({indirect:k.optional(k.boolean()),sum:k.string()}),Ffe=k.object({spec:k.literal("kumori/sumdb/v1"),content:k.record(Mfe)}),za;(c=>(c.Type=k.discriminatedUnion("spec",[Ffe]),c.Parse=c.Type.safeParseAsync,c.Retrieve=Vfe,c.Register=jfe,c.New=()=>({spec:"kumori/sumdb/v1",content:{}}),c.Open=Ufe,c.Read=qfe,c.Write=IV))(za||(za={}));var NV=(t,e)=>{let r=`${t}@v${e}`,n=Js(r);return N.isOk(n)?n.value.toString():r};function Vfe(t,e,r){var n;switch(t.spec){case"kumori/sumdb/v1":return ue.fromNullable((n=t.content[NV(e,r)])==null?void 0:n.sum)}}async function jfe(t,e,r,n,i){switch(t.spec){case"kumori/sumdb/v1":{let s=await $p(e.fsPath);t.content[NV(n,i)]={sum:s};break}}return IV(r.Locations.Checksum(),t)}var M_=t=>ee.joinPath(t.Root,"kumori.sum.json");async function Ufe(t){let e;try{e=(await(0,fg.readFile)(t.fsPath)).toString("utf-8")}catch(r){return Le(za.New())}return N.mapErr(await OV(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function qfe(t){let e;try{e=(await(0,fg.readFile)(t.fsPath)).toString("utf-8")}catch(r){return oe(`unable to open sumdb: error reading file '${t.fsPath}'`)}return N.mapErr(await OV(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function OV(t){let e;try{e=JSON.parse(t)}catch(n){return oe("invalid json data")}let r=await za.Parse(e);if(!r.success){let n,i=Bfe(r.error);return i.length===0?n="<unknown error>":n=`
|
|
553
555
|
`+i.join(`
|
|
554
|
-
`),oe(n)}return Le(r.data)}async function IV(t,e){let r;try{r=JSON.stringify(e,void 0,4)}catch(n){return oe("unable to serialize sumdb")}try{await(0,fg.writeFile)(t.fsPath,r)}catch(n){return oe(`error writing to sumdb: error writing file '${t.fsPath}': `+n)}return Le(void 0)}function Bfe(t){return DV("",t.format()).map(([r,n])=>r===""?n:`- [${r}]: ${n}`)}function DV(t,e){let r=[];"_errors"in e&&Array.isArray(e._errors)&&e._errors.every(n=>typeof n=="string")&&(r=r.concat(e._errors.map(n=>[t,n])));for(let[n,i]of Object.entries(e))n!=="_errors"&&(typeof i!="object"||i===null||(r=r.concat(DV(`${t}.${n}`,i))));return r}async function kr(t,e){let r=await wl(t,e);if(N.isErr(r))return oe(`not a module: unable to find ${xr}`);let n=await Gs(t,r.value);if(N.isErr(n))return n;let i=n.value;return Le({Current:i,Root:i,Locations:{Cache:Fs(()=>Q4(i)),Vendor:Fs(()=>ig(i)),Checksum:Fs(()=>M_(i))}})}(e=>{async function t(r,n,i){let s=await e(n,i);if(N.isErr(s))return oe(`move context: ${i.fsPath}: no module in location`);if(s.value.Current.Root.fsPath===r.Current.Root.fsPath)return oe(`move context: ${i.fsPath}: module not moved`);let o=s.value.Current;return Le(Y(C({},r),{Current:o,Locations:Y(C({},r.Locations),{Vendor:Fs(()=>ig(o)),Checksum:Fs(()=>M_(o))})}))}e.Move=t})(kr||(kr={}));var LV=ke(require("assert"),1),$V=require("path");async function yv(t,e,r=ye.CancellationToken.None){let n=t.svcs.workspace.FileSystemProvider,i=await kr(n,e.Root);return(0,LV.default)(N.isOk(i)),await MV(Y(C({},t),{mod:i.value}),r),Array.from(t.cache.values()).filter(ue.isSome).map(s=>s.value)}async function MV(t,e=ye.CancellationToken.None){let r=t.mod.Current;if(r.Manifest.headers!==void 0){let n=r.Manifest.headers;await it(e),await F_(t,n.target,n.version,e)}for(let n of r.Manifest.requires)if(await it(e),await F_(t,n.target,n.version,e),n.headers!==void 0){let i=n.headers;await it(e),await F_(t,i.target,i.version,e)}}async function F_(t,e,r,n=ye.CancellationToken.None){let i=t.svcs.workspace.FileSystemProvider,s=Ln(e,r);if(t.cache.get(s)!==void 0)return;t.cache.set(s,ot);let a=await Hfe(t,e,r);if(N.isErr(a))return;let c=await kr.Move(t.mod,i,a.value);N.isErr(c)||(t.cache.set(s,Le(c.value.Current)),t=Y(C({},t),{mod:c.value}),await MV(t,n))}async function Hfe(t,e,r){let n=t.svcs.workspace.FileSystemProvider,i=Ln(e,r);if((0,$V.isAbsolute)(e)){let a=De.file(e),c=await N.tryCatchAsync(async()=>await n.readDirectory(a));if(N.isOk(c))return Ut(a)}let s=ee.joinPath(t.mod.Locations.Vendor(),i),o=await N.tryCatchAsync(async()=>await n.readDirectory(s));return N.isOk(o)?Ut(s):(s=ee.joinPath(t.mod.Locations.Cache(),i),o=await N.tryCatchAsync(async()=>await n.readDirectory(s)),N.isOk(o)?Ut(s):ot)}async function Hp(t,e,r=ye.CancellationToken.None){await it(r);let n=[],i=t.ServiceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),s=ig(e).fsPath,o=Q4(e).fsPath;return await J4(t.workspace.FileSystemProvider,e,{Dir:a=>({skipDir:[s,o].includes(a.fsPath)}),File:a=>{let c=ee.extname(a);i.includes(c)&&n.push(a)}},r),n}var vv=class{constructor(e){this.svcs=e;this.initialBuildOptions={};this.folders=[];this.mutex=new Mu;this._ready=new qn}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var r;this.folders=(r=e.workspaceFolders)!=null?r:this.folders}initialized(e){return this.mutex.write(r=>this.initializeWorkspace(this.folders,r))}async initializeWorkspace(e,r=ye.CancellationToken.None){e=e.map(zfe);let n=this.svcs.workspace.LangiumDocuments,i=u=>{n.hasDocument(u.uri)||n.addDocument(u)};this.loadStdlib(i);let s=this.svcs.references.KumoriModules.ResolverCtx(),o=this.svcs.workspace.FileSystemProvider,a=(await Promise.all(e.map(async u=>{let f=await pM(o,u,r),l=(await Promise.all(f.map(d=>Gs(o,d.Current.Root)))).filter(N.isOk).map(d=>d.value);return(await Promise.all(l.map(d=>yv(s,d,r)))).flat().concat(l)}))).flat();await Promise.all(a.map(async u=>{let f=await Hp(this.svcs,u.Root),l=Y(C({},u),{Docs:f});await this.svcs.references.KumoriModules.registerModule(l),await this.loadModule(l,i)})),this._ready.resolve(),await it(r);let c=this.svcs.workspace.LangiumDocuments.all.toArray();await this.svcs.workspace.DocumentBuilder.build(c,this.initialBuildOptions,r)}loadStdlib(e){let r=this.svcs.workspace.LangiumDocumentFactory;for(let n of n_)e(r.fromString(n.data,n.uri))}async loadModule(e,r){let n=this.svcs.workspace.LangiumDocumentFactory;for(let i of e.Docs)r(await n.fromUri(i))}};function zfe(t){let e=qy(De.parse(t.uri));return Y(C({},t),{uri:e.toString()})}var FV=ke(Ui(),1);var xv=class extends lp{constructor(r){super(r);this.svcs=r}registerFileWatcher(r){let n=nt(r.ServiceRegistry.all).flatMap(o=>o.LanguageMetaData.fileExtensions).map(o=>o.startsWith(".")?o.substring(1):o).distinct().toArray(),i={watchers:[]};n.length>0&&i.watchers.push({globPattern:n.length===1?`**/*.${n[0]}`:`**/*.{${n.join(",")}}`}),n.includes("kumori")&&i.watchers.push({globPattern:`**/${xr}`});let s=r.lsp.Connection;s==null||s.client.register(FV.DidChangeWatchedFilesNotification.type,i)}fireDocumentUpdate(r,n){(async()=>{let i=this.svcs.references.KumoriModules,s=[...r,...n].filter(c=>ee.basename(c)===xr);if(s.length){let c=i.ResolverCtx(),u=this.svcs.workspace.FileSystemProvider,f=(await Promise.all(s.map(async l=>{let p=await Gs(u,l);return N.isErr(p)?[]:(await yv(c,p.value)).concat(p.value)}))).flat();await Promise.all(f.map(async l=>{let p=await Hp(this.svcs,l.Root),d=Y(C({},l),{Docs:p});await i.registerModule(d)}))}for(let c of s)i.invalidateModule(c);let o=r.filter(c=>ee.basename(c)!==xr),a=n.filter(c=>ee.basename(c)!==xr);super.fireDocumentUpdate(o,a)})()}};var Wfe={workspace:{WorkspaceManager:t=>new vv(t),IndexManager:t=>new jy(t),DocumentBuilder:t=>new Fy(t)},references:{KumoriModules:t=>new By(t)},lsp:{DocumentUpdateHandler:t=>new xv(t)}},Kfe={references:{ScopeComputation:t=>new zy(t),ScopeProvider:t=>new Wy(t),Linker:t=>new Uy(t),KumoriPackages:t=>new Hy(t)},validation:{KumoriValidations:t=>Y$(t),KumoriTypeSystem:t=>new H4(t),DocumentValidator:t=>new Vy(t)},lsp:{SemanticTokenProvider:t=>new Gy(t)}};function Ji(t){let e=Fu(_I(t),SI,Wfe),r=Fu(xI({shared:e}),EI,Kfe);return e.ServiceRegistry.register(r),Q$(r),t.connection||e.workspace.ConfigurationProvider.initialized({}),{shared:e,Kumori:r}}var V_=ke(require("fs"),1),j_=class{constructor(){this.encoding="utf-8"}readFile(e){return V_.promises.readFile(e.fsPath,this.encoding)}async readDirectory(e){return(await V_.promises.readdir(e.fsPath,{withFileTypes:!0})).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:ee.joinPath(e,n.name)}))}},wn={fileSystemProvider:()=>new j_};var VV=k.object({name:k.string(),artifact:k.union([r_,K4,G4]),resilience:k.number().nonnegative().optional(),config:k.object({}).catchall(k.any()).optional(),resource:k.object({}).catchall(ja).optional()});var jV={m:.001,k:1e3,M:1e6,G:1e9,T:1e12,P:1e15,E:1e18,Ki:2**10,Mi:2**20,Gi:2**30,Ti:2**40,Pi:2**50,Ei:2**60},UV=(t,e)=>{let r=jV[t.unit],n=jV[e];return{size:t.size*(r/n),unit:e}};function ta(t){if(t.$type===Fx){let e=Vx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage"}}}if(t.$type===jx)return{volume:Ux.parse(t).value};if(t.$type===Gx)return{volume:Jx.parse(t).value};if(t.$type===qx){let e=Bx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"volatile"}}}if(t.$type===Hx){let e=zx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"persistent"}}}if(t.$type===Wx){let e=Kx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"nonreplicated"}}}if(t.$type===eg)return{ca:Qx.parse(t).value};if(t.$type===tg)return{certificate:Yx.parse(t).value};if(t.$type===Op)return{secret:Zx.parse(t).value};if(t.$type===rg)return{domain:Xx.parse(t).value};if(t.$type===ng)return{port:e_.parse(t).value};throw new Error(`unknown resource type '${t.$type}'`)}var qV=require("path");function BV(t){return typeof t=="string"?N.orElse(N.map(W4(t),e=>{var r,n;return{tag:e.tag,hub:{name:e.hub,secret:typeof t=="string"?"":(n=(r=t.hub)==null?void 0:r.secret)!=null?n:""}}}),e=>{throw new Error(e)}):t}function Nl(t,e){if(!e)return[];let r=Fe.getDocument(e).uri,n=t.getModule(r);if(N.isErr(n))return[];let i=N.tryCatch(()=>new URL(`file://${n.value.Manifest.module}`));if(N.isErr(i))return[];let s=[];return i.value.hostname.length&&s.push(o=>o.domain=i.value.hostname),i.value.pathname.length&&s.push(o=>{o.module=i.value.pathname.replace(/^\//,""),o.name=(0,qV.basename)(o.module)}),s}function HV(t,e){let r={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let s of i)s(r);return{spec:[1,0],ref:r,description:{builtin:!1,connector:{},config:{resilience:0,scale:{},parameter:{},resource:{}},role:{component:{name:"component",meta:{},artifact:U_(t,e)}}}}}function U_(t,e){var u,f,l,p,d,h,g,v,b,_,x;let r={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let T of i)T(r);function s(T,R=!1){return Object.fromEntries(Object.entries(T!=null?T:{}).map(([V,$])=>{var z,W;return[V,{name:V,init:R,entrypoint:$.entrypoint,image:BV($.image),cmd:$.cmd,size:{memory:Y(C({},$.size.memory),{kind:"ram"}),cpu:Y(C({},$.size.cpu),{kind:"cpu"}),mincpu:$.size.mincpu?$.size.mincpu.size:$.size.cpu.size},mapping:{filesystem:Object.fromEntries(Object.entries((z=$.fs)!=null?z:{}).map(([D,P])=>[D,Gfe(D,P)])),env:Object.fromEntries(Object.entries((W=$.env)!=null?W:{}).map(([D,P])=>{let M=D,j=typeof P=="string"||typeof P=="number"||typeof P=="boolean"?{value:String(P)}:P;return[M,j]}))}}]}))}let o=Object.fromEntries(((u=e.init)!=null?u:[]).map((T,R)=>[`INIT_${R}`,T])),a=s(e.code),c=s(o,!0);return{spec:[1,0],ref:r,description:{builtin:!1,config:{resilience:0,scale:{hsize:(f=e.scale)!=null?f:1},parameter:e.config,resource:Object.fromEntries(Object.entries((l=e.resource)!=null?l:{}).map(([T,R])=>[T,ta(R)]))},size:{bandwidth:Y(C({},e.size.bandwidth),{kind:"bandwidth"}),minbandwidth:Math.ceil(UV((p=e.size.minbandwidth)!=null?p:e.size.bandwidth,e.size.bandwidth.unit).size),mincpu:Y(C({},e.size.mincpu),{kind:"cpu"})},profile:{threadability:"*",iopsintensive:!1},srv:{client:Object.fromEntries(Object.entries((h=(d=e.srv)==null?void 0:d.client)!=null?h:{}).map(([T,R])=>[T,{protocol:R,inherited:!1}])),server:Object.fromEntries(Object.entries((v=(g=e.srv)==null?void 0:g.server)!=null?v:{}).map(([T,R])=>{let V;return typeof R=="string"?V={port:80,portnum:1,inherited:!1,protocol:R}:V=Y(C({},R),{portnum:1,inherited:!1}),[T,V]})),duplex:Object.fromEntries(Object.entries((_=(b=e.srv)==null?void 0:b.duplex)!=null?_:{}).map(([T,R])=>{let V;return typeof R=="string"?V={port:80,portnum:1,inherited:!1,protocol:R}:V=Y(C({},R),{portnum:1,inherited:!1}),[T,V]}))},code:C(C({},c),a),probe:Object.fromEntries(Object.entries((x=e.probe)!=null?x:{}).map(([T,R])=>[T,R]))}}}function Gfe(t,e){var r,n,i,s;if(typeof e=="string")return{path:t,data:{value:e},format:"text"};if(typeof e=="object"){if("volume"in e)return{path:t,volume:e.volume};if("data"in e)return{path:t,data:{value:e.data},format:(r=e.format)!=null?r:"text",mode:(n=e.mode)!=null?n:420};let a=["secret","port","domain","certificate","ca"].find(c=>c in e);if(a){let c=a;return{path:t,data:{[c]:e[c]},format:(i=e.format)!=null?i:"text",mode:(s=e.mode)!=null?s:420}}}throw new Error(`Unknown key '${t}': ${JSON.stringify(e)}`)}function Jfe(t){var r,n,i;let e=Ci(t.id.version);return{spec:[1,0],ref:{version:[e.major,e.minor,e.patch],kind:t.id.kind,domain:t.id.domain,module:t.id.module,name:t.id.name},description:{builtin:!0,srv:{client:Object.fromEntries(Object.entries((r=t.srv.client)!=null?r:{}).map(([s])=>[s,{protocol:"http",inherited:!1}])),server:Object.fromEntries(Object.entries((n=t.srv.server)!=null?n:{}).map(([s,o])=>{let a;return typeof o=="string"?a={port:80,portnum:1,inherited:!1,protocol:o}:a=Y(C({},o),{inherited:!1}),[s,a]})),duplex:Object.fromEntries(Object.entries((i=t.srv.duplex)!=null?i:{}).map(([s,o])=>{let a;return typeof o=="string"?a={port:80,portnum:1,inherited:!1,protocol:o}:a=Y(C({},o),{inherited:!1}),[s,a]}))},config:{resilience:0,scale:{},parameter:t.config,resource:Object.fromEntries(Object.entries(t.resource).map(([s,o])=>[s,ta(o)]))},connector:{},role:{}}}}function zV(t,e){var r,n;return{name:Ol(t),up:zp(t),meta:{},config:{resilience:0,scale:{},parameter:(r=e.config)!=null?r:{},resource:Object.fromEntries(Object.entries((n=e.resource)!=null?n:{}).map(([i,s])=>[i,ta(s)]))},artifact:Jfe(e)}}function _v(t,e,r,n){let i=t.svcs.shared.references.KumoriModules,s=Nl(i,t.nodes.get(e));for(let o of s)o(r);return n&&(r.kind="service"),r}function q_(t,e){return t.some(r=>JSON.stringify(r)===JSON.stringify(e))}function B_(t,e){return{role:t,channel:e}}function bv(t,e,r){return{meta:t,links:[{role:e,channel:r}]}}function WV(t,e,r){var i,s,o,a;let n={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"};if(r.$type===Dp){r=r;let c=[],u=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let f of r.value.from){u.push(B_(f.target,f.channel));for(let l of r.value.to){let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact)||l.target=="self";_v(t,p,n,d);let h=(i=r.value.meta)!=null?i:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}}else if("from"in r.value&&!Array.isArray(r.value.from)&&!Array.isArray(r.value.to)){let f=r.value.from,l=r.value.to;u.push(B_(f.target,f.channel));let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact)||l.target=="self";_v(t,p,n,d);let h=(s=r.value.meta)!=null?s:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}return{kind:"lb",clients:u,servers:c}}if(r.$type===Lp){r=r;let c=[],u=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let f of r.value.from){u.push(B_(f.target,f.channel));for(let l of r.value.to){let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact);_v(t,p,n,d);let h=(o=r.value.meta)!=null?o:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}}else if("target"in r.value&&"channel"in r.value){let f=e.role[r.value.target],l=Wa(f.artifact);_v(t,f,n,l);let p=(a=r.value.meta)!=null?a:[{auto:{channel:r.value.channel,compRef:n,roleName:r.value.target},user:{}}];c.push(bv(p,r.value.target,r.value.channel))}return{kind:"full",clients:u,servers:c}}throw new Error(`unknown connection type '${r.$type}'`)}function H_(t,e){var o,a,c,u,f,l,p,d,h,g,v;let r={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let b of i)b(r);let s={spec:[1,0],ref:r,description:{builtin:!1,config:{resilience:0,scale:{detail:Object.fromEntries(Object.entries((o=e.role)!=null?o:{}).filter(([,b])=>Gc(b.artifact)).map(([b,_])=>{var x;return Gc(_.artifact)?[b,{hsize:(x=_.artifact.scale)!=null?x:1}]:[b,{hsize:1}]}))},parameter:(a=e==null?void 0:e.config)!=null?a:{},resource:Object.fromEntries(Object.entries((c=e.resource)!=null?c:{}).map(([b,_])=>[b,ta(_)]))},role:{},connector:Object.fromEntries(Object.entries((u=e.connect)!=null?u:{}).map(([b,_])=>[b,WV(t,e,_)])),srv:{client:Object.fromEntries(Object.entries((l=(f=e.srv)==null?void 0:f.client)!=null?l:{}).map(([b,_])=>[b,{protocol:_,inherited:!1}])),server:Object.fromEntries(Object.entries((d=(p=e.srv)==null?void 0:p.server)!=null?d:{}).map(([b,_])=>{let x;return typeof _=="string"?x={port:80,inherited:!1,protocol:_}:x=Y(C({},_),{inherited:!1}),[b,x]})),duplex:Object.fromEntries(Object.entries((g=(h=e.srv)==null?void 0:h.duplex)!=null?g:{}).map(([b,_])=>{let x;return typeof _=="string"?x={port:80,inherited:!1,protocol:_}:x=Y(C({},_),{inherited:!1}),[b,x]}))}}};return s.description.role=Object.fromEntries(Object.entries((v=e.role)!=null?v:{}).map(([b,_])=>[b,Yfe(t,b,_,s)]).filter(([,b])=>ue.isSome(b)).map(([b,_])=>[b,_.value])),s}function Qfe(t,e){var r,n,i,s,o,a,c;return{name:Ol(t),up:zp(t),meta:{},config:{resilience:0,scale:(i=(r=e.config)==null?void 0:r.scale)!=null?i:{hsize:(n=e.config)==null?void 0:n.scale},parameter:(o=(s=e.config)==null?void 0:s.parameter)!=null?o:{},resource:Object.fromEntries(Object.entries((c=(a=e.config)==null?void 0:a.resource)!=null?c:{}).map(([u,f])=>[u,ta(f)]))},artifact:H_(t,e)}}function Yfe(t,e,r,n){var o,a,c,u,f,l,p,d,h,g,v,b,_,x,T,R,V,$;if(Gc(r.artifact))return Ut({name:e,meta:{},config:{resilience:0,scale:r.artifact.scale?{hsize:r.artifact.scale}:{hsize:1},parameter:(o=r.artifact.config)!=null?o:{},resource:{}},artifact:U_(t,r.artifact)});let i=r.artifact;t=KV(t,e),GV(t,Wa(i)?Qfe(t,i):zV(t,i)),(c=(a=n.description).srv)!=null||(a.srv={}),(f=(u=n.description.srv).server)!=null||(u.server={}),(p=(l=n.description.srv).client)!=null||(l.client={});for(let[,K]of Object.entries((d=n.description.connector)!=null?d:{})){for(let z of K.clients){if(z.role!==e)continue;let W=C({},z),D=`${z.role}.${z.channel}`,P=((g=(h=i==null?void 0:i.srv)==null?void 0:h.client)!=null?g:{})[z.channel];n.description.srv.server[D]={inherited:!0,protocol:z.channel=="inbound"?"http":P},z.role="self",z.channel=D,(b=(v=t.root).links)!=null||(v.links=[]),t.root.links.push({meta:{},s_d:Ol(t),s_c:W.channel,t_d:zp(t),t_c:D})}for(let z of K.servers)for(let W of z.links)if(W.role===e){let D=`${W.role}.${W.channel}`,P=((x=(_=i==null?void 0:i.srv)==null?void 0:_.server)!=null?x:{})[W.channel];P===void 0&&(P=((R=(T=i==null?void 0:i.srv)==null?void 0:T.duplex)!=null?R:{})[W.channel]),n.description.srv.client[D]={inherited:!0,protocol:typeof P=="string"?P:P.protocol,port:typeof P=="object"?P.port:void 0},($=(V=t.root).links)!=null||(V.links=[]),t.root.links.push({meta:{},s_d:zp(t),s_c:D,t_d:Ol(t),t_c:W.channel}),W.role="self",W.channel=D}}return ot}var Ol=t=>t.path.join("."),zp=t=>t.path.slice(0,-1).join("."),KV=(t,e)=>Y(C({},t),{path:[...t.path,e]}),GV=(t,e)=>t.root.deployments[Ol(t)]=e;function JV(t,e,r){var s,o,a;let n={top:r.name,deployments:{},links:[]},i={svcs:t,path:[r.name],root:n,nodes:e};return n.deployments[r.name]={name:r.name,meta:{},config:{parameter:(s=r.config)!=null?s:{},resource:Object.fromEntries(Object.entries((o=r.resource)!=null?o:{}).map(([c,u])=>[c,ta(u)])),resilience:(a=r.resilience)!=null?a:0,scale:{detail:(()=>{var c;return Object.fromEntries(Object.entries(Wa(r.artifact)?(c=r.artifact.role)!=null?c:{}:{}).filter(([,u])=>Gc(u.artifact)).map(([u,f])=>{var l;return Gc(f.artifact)?[u,{hsize:(l=f.artifact.scale)!=null?l:1}]:[u,{hsize:1}]}))})()}},artifact:(()=>{if(Gc(r.artifact))return HV(i,r.artifact);if(Wa(r.artifact))return H_(i,r.artifact);throw QV(r.artifact)?new Error("not implemented: handle builtin"):new Error("unknown artifact")})()},n}function Gc(t){return"size"in t}function Wa(t){return!(Gc(t)||QV(t))}function QV(t){return"id"in t}function YV(t,e,r){var u,f;let n=e.validation.KumoriTypeSystem,[{Value:i},s]=n.Eval(e.validation.KumoriValidations.ctx(),r);if(s.length!==0){for(let l of s){let p=l.node,d=Fe.getDocument(p),h=((u=p.$cstNode)==null?void 0:u.range.start)||{line:0,character:0};t.error(`${d.uri.fsPath}:${h.line}:${h.character}: type error: ${l.message}`)}process.exit(1)}let o=new Map,a=Qo({svcs:e,nodes:o},i);if(N.isErr(a)){for(let l of a.err){let p=l.node,d=Fe.getDocument(p),h=((f=p.$cstNode)==null?void 0:f.range.start)||{line:0,character:0};t.error(`${d.uri.fsPath}:${h.line}:${h.character}: json conversion error: ${l.message}`)}process.exit(1)}let c=VV.safeParse(a.value);if(!c.success){for(let l of c.error.issues)t.error(`${l.code}: ${l.path}: invalid deployment: ${l.message}`);process.exit(1)}return JSON.stringify(JV(e,o,a.value),null,2)}function Sv(t,e=new On){if(t.Manifest.headers!==void 0){let[r,n]=[t.Manifest.headers.target,t.Manifest.headers.version],i=Ln(r,n);e.add(i,{target:r,version:n})}for(let r of t.Manifest.requires){let[n,i]=[r.target,r.version],s={target:n,version:i},o=Ln(n,i);if(e.add(o,s),r.headers!==void 0){let[a,c]=[r.headers.target,r.headers.version],u=Ln(a,c);s.interface={target:a,version:c},e.add(u,s.interface)}}return e}var Kb=ke(require("assert"),1);var ZV=require("path");async function dg(t,e,r){let n=Ln(e,r),i=Js(n);if(ue.isSome(i)&&(e=i.value.Location),(0,ZV.isAbsolute)(e)){let a=De.file(e),c=await Gs(t.FS,a);return N.isOk(c)?c:ot}let s=ee.joinPath(t.Locations.Vendor(),n),o=await Gs(t.FS,s);return N.isOk(o)||(s=ee.joinPath(t.Locations.Cache(),n),o=await Gs(t.FS,s),N.isOk(o))?o:ot}function ra(t,e){if(N.isErr(e)){for(let r of e.err)t.error(r);process.exit(1)}return e.value}var Gb=ke(require("path"),1);var Wb=ke(Ui(),1);var jv=ke(fj(),1),$v=ke(J_(),1),MU=require("child_process"),_q=ke(Y_(),1),Qp=ke(Y_(),1),Wq=require("events"),Fv=Object.defineProperty,kde=Object.defineProperties,wde=Object.getOwnPropertyDescriptor,Ade=Object.getOwnPropertyDescriptors,yb=Object.getOwnPropertyNames,dj=Object.getOwnPropertySymbols,zj=Object.prototype.hasOwnProperty,Rde=Object.prototype.propertyIsEnumerable,pj=(t,e,r)=>e in t?Fv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ys=(t,e)=>{for(var r in e||(e={}))zj.call(e,r)&&pj(t,r,e[r]);if(dj)for(var r of dj(e))Rde.call(e,r)&&pj(t,r,e[r]);return t},hg=(t,e)=>kde(t,Ade(e)),xe=(t,e)=>function(){return t&&(e=(0,t[yb(t)[0]])(t=0)),e},Pde=(t,e)=>function(){return e||(0,t[yb(t)[0]])((e={exports:{}}).exports,e),e.exports},ln=(t,e)=>{for(var r in e)Fv(t,r,{get:e[r],enumerable:!0})},Nde=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yb(e))!zj.call(t,i)&&i!==r&&Fv(t,i,{get:()=>e[i],enumerable:!(n=wde(e,i))||n.enumerable});return t},Zr=t=>Nde(Fv({},"__esModule",{value:!0}),t),mg=(t,e,r)=>new Promise((n,i)=>{var s=c=>{try{a(r.next(c))}catch(u){i(u)}},o=c=>{try{a(r.throw(c))}catch(u){i(u)}},a=c=>c.done?n(c.value):Promise.resolve(c.value).then(s,o);a((r=r.apply(t,e)).next())});function Ode(...t){let e=new String(t);return Vv.set(e,t),e}function Dv(t){return t instanceof String&&Vv.has(t)}function mj(t){return Vv.get(t)||[]}var Vv,xg=xe({"src/lib/args/pathspec.ts"(){"use strict";Vv=new WeakMap}}),Ga,Yc=xe({"src/lib/errors/git-error.ts"(){"use strict";Ga=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),_g,Zp=xe({"src/lib/errors/git-response-error.ts"(){"use strict";Yc(),_g=class extends Ga{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),Wj,Kj=xe({"src/lib/errors/task-configuration-error.ts"(){"use strict";Yc(),Wj=class extends Ga{constructor(t){super(void 0,t)}}}});function Gj(t){return typeof t=="function"?t:Ml}function Jj(t){return typeof t=="function"&&t!==Ml}function Qj(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function Yj(t,e=0){return Zj(t)&&t.length>e?t[e]:void 0}function $l(t,e=0){if(Zj(t)&&t.length>e)return t[t.length-1-e]}function Zj(t){return!!(t&&typeof t.length=="number")}function bg(t="",e=!0,r=`
|
|
556
|
+
`),oe(n)}return Le(r.data)}async function IV(t,e){let r;try{r=JSON.stringify(e,void 0,4)}catch(n){return oe("unable to serialize sumdb")}try{await(0,fg.writeFile)(t.fsPath,r)}catch(n){return oe(`error writing to sumdb: error writing file '${t.fsPath}': `+n)}return Le(void 0)}function Bfe(t){return DV("",t.format()).map(([r,n])=>r===""?n:`- [${r}]: ${n}`)}function DV(t,e){let r=[];"_errors"in e&&Array.isArray(e._errors)&&e._errors.every(n=>typeof n=="string")&&(r=r.concat(e._errors.map(n=>[t,n])));for(let[n,i]of Object.entries(e))n!=="_errors"&&(typeof i!="object"||i===null||(r=r.concat(DV(`${t}.${n}`,i))));return r}async function kr(t,e){let r=await wl(t,e);if(N.isErr(r))return oe(`not a module: unable to find ${xr}`);let n=await Gs(t,r.value);if(N.isErr(n))return n;let i=n.value;return Le({Current:i,Root:i,Locations:{Cache:Fs(()=>Q4(i)),Vendor:Fs(()=>ig(i)),Checksum:Fs(()=>M_(i))}})}(e=>{async function t(r,n,i){let s=await e(n,i);if(N.isErr(s))return oe(`move context: ${i.fsPath}: no module in location`);if(s.value.Current.Root.fsPath===r.Current.Root.fsPath)return oe(`move context: ${i.fsPath}: module not moved`);let o=s.value.Current;return Le(Y(C({},r),{Current:o,Locations:Y(C({},r.Locations),{Vendor:Fs(()=>ig(o)),Checksum:Fs(()=>M_(o))})}))}e.Move=t})(kr||(kr={}));var LV=ke(require("assert"),1),$V=require("path");async function yv(t,e,r=ye.CancellationToken.None){let n=t.svcs.workspace.FileSystemProvider,i=await kr(n,e.Root);return(0,LV.default)(N.isOk(i)),await MV(Y(C({},t),{mod:i.value}),r),Array.from(t.cache.values()).filter(ue.isSome).map(s=>s.value)}async function MV(t,e=ye.CancellationToken.None){let r=t.mod.Current;if(r.Manifest.headers!==void 0){let n=r.Manifest.headers;await it(e),await F_(t,n.target,n.version,e)}for(let n of r.Manifest.requires)if(await it(e),await F_(t,n.target,n.version,e),n.headers!==void 0){let i=n.headers;await it(e),await F_(t,i.target,i.version,e)}}async function F_(t,e,r,n=ye.CancellationToken.None){let i=t.svcs.workspace.FileSystemProvider,s=Ln(e,r);if(t.cache.get(s)!==void 0)return;t.cache.set(s,ot);let a=await Hfe(t,e,r);if(N.isErr(a))return;let c=await kr.Move(t.mod,i,a.value);N.isErr(c)||(t.cache.set(s,Le(c.value.Current)),t=Y(C({},t),{mod:c.value}),await MV(t,n))}async function Hfe(t,e,r){let n=t.svcs.workspace.FileSystemProvider,i=Ln(e,r);if((0,$V.isAbsolute)(e)){let a=De.file(e),c=await N.tryCatchAsync(async()=>await n.readDirectory(a));if(N.isOk(c))return Ut(a)}let s=ee.joinPath(t.mod.Locations.Vendor(),i),o=await N.tryCatchAsync(async()=>await n.readDirectory(s));return N.isOk(o)?Ut(s):(s=ee.joinPath(t.mod.Locations.Cache(),i),o=await N.tryCatchAsync(async()=>await n.readDirectory(s)),N.isOk(o)?Ut(s):ot)}async function Hp(t,e,r=ye.CancellationToken.None){await it(r);let n=[],i=t.ServiceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),s=ig(e).fsPath,o=Q4(e).fsPath;return await J4(t.workspace.FileSystemProvider,e,{Dir:a=>({skipDir:[s,o].includes(a.fsPath)}),File:a=>{let c=ee.extname(a);i.includes(c)&&n.push(a)}},r),n}var vv=class{constructor(e){this.svcs=e;this.initialBuildOptions={};this.folders=[];this.mutex=new Mu;this._ready=new qn}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var r;this.folders=(r=e.workspaceFolders)!=null?r:this.folders}initialized(e){return this.mutex.write(r=>this.initializeWorkspace(this.folders,r))}async initializeWorkspace(e,r=ye.CancellationToken.None){e=e.map(zfe);let n=this.svcs.workspace.LangiumDocuments,i=u=>{n.hasDocument(u.uri)||n.addDocument(u)};this.loadStdlib(i);let s=this.svcs.references.KumoriModules.ResolverCtx(),o=this.svcs.workspace.FileSystemProvider,a=(await Promise.all(e.map(async u=>{let f=await pM(o,u,r),l=(await Promise.all(f.map(d=>Gs(o,d.Current.Root)))).filter(N.isOk).map(d=>d.value);return(await Promise.all(l.map(d=>yv(s,d,r)))).flat().concat(l)}))).flat();await Promise.all(a.map(async u=>{let f=await Hp(this.svcs,u.Root),l=Y(C({},u),{Docs:f});await this.svcs.references.KumoriModules.registerModule(l),await this.loadModule(l,i)})),this._ready.resolve(),await it(r);let c=this.svcs.workspace.LangiumDocuments.all.toArray();await this.svcs.workspace.DocumentBuilder.build(c,this.initialBuildOptions,r)}loadStdlib(e){let r=this.svcs.workspace.LangiumDocumentFactory;for(let n of n_)e(r.fromString(n.data,n.uri))}async loadModule(e,r){let n=this.svcs.workspace.LangiumDocumentFactory;for(let i of e.Docs)r(await n.fromUri(i))}};function zfe(t){let e=qy(De.parse(t.uri));return Y(C({},t),{uri:e.toString()})}var FV=ke(Ui(),1);var xv=class extends lp{constructor(r){super(r);this.svcs=r}registerFileWatcher(r){let n=nt(r.ServiceRegistry.all).flatMap(o=>o.LanguageMetaData.fileExtensions).map(o=>o.startsWith(".")?o.substring(1):o).distinct().toArray(),i={watchers:[]};n.length>0&&i.watchers.push({globPattern:n.length===1?`**/*.${n[0]}`:`**/*.{${n.join(",")}}`}),n.includes("kumori")&&i.watchers.push({globPattern:`**/${xr}`});let s=r.lsp.Connection;s==null||s.client.register(FV.DidChangeWatchedFilesNotification.type,i)}fireDocumentUpdate(r,n){(async()=>{let i=this.svcs.references.KumoriModules,s=[...r,...n].filter(c=>ee.basename(c)===xr);if(s.length){let c=i.ResolverCtx(),u=this.svcs.workspace.FileSystemProvider,f=(await Promise.all(s.map(async l=>{let p=await Gs(u,l);return N.isErr(p)?[]:(await yv(c,p.value)).concat(p.value)}))).flat();await Promise.all(f.map(async l=>{let p=await Hp(this.svcs,l.Root),d=Y(C({},l),{Docs:p});await i.registerModule(d)}))}for(let c of s)i.invalidateModule(c);let o=r.filter(c=>ee.basename(c)!==xr),a=n.filter(c=>ee.basename(c)!==xr);super.fireDocumentUpdate(o,a)})()}};var Wfe={workspace:{WorkspaceManager:t=>new vv(t),IndexManager:t=>new jy(t),DocumentBuilder:t=>new Fy(t)},references:{KumoriModules:t=>new By(t)},lsp:{DocumentUpdateHandler:t=>new xv(t)}},Kfe={references:{ScopeComputation:t=>new zy(t),ScopeProvider:t=>new Wy(t),Linker:t=>new Uy(t),KumoriPackages:t=>new Hy(t)},validation:{KumoriValidations:t=>Y$(t),KumoriTypeSystem:t=>new H4(t),DocumentValidator:t=>new Vy(t)},lsp:{SemanticTokenProvider:t=>new Gy(t)}};function Ji(t){let e=Fu(_I(t),SI,Wfe),r=Fu(xI({shared:e}),EI,Kfe);return e.ServiceRegistry.register(r),Q$(r),t.connection||e.workspace.ConfigurationProvider.initialized({}),{shared:e,Kumori:r}}var V_=ke(require("fs"),1),j_=class{constructor(){this.encoding="utf-8"}readFile(e){return V_.promises.readFile(e.fsPath,this.encoding)}async readDirectory(e){return(await V_.promises.readdir(e.fsPath,{withFileTypes:!0})).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:ee.joinPath(e,n.name)}))}},wn={fileSystemProvider:()=>new j_};var VV=k.object({name:k.string(),artifact:k.union([r_,K4,G4]),resilience:k.number().nonnegative().optional(),config:k.object({}).catchall(k.any()).optional(),resource:k.object({}).catchall(ja).optional(),meta:k.object({}).catchall(k.any()).optional()});var jV={m:.001,k:1e3,M:1e6,G:1e9,T:1e12,P:1e15,E:1e18,Ki:2**10,Mi:2**20,Gi:2**30,Ti:2**40,Pi:2**50,Ei:2**60},UV=(t,e)=>{let r=jV[t.unit],n=jV[e];return{size:t.size*(r/n),unit:e}};function ta(t){if(t.$type===Fx){let e=Vx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage"}}}if(t.$type===jx)return{volume:Ux.parse(t).value};if(t.$type===Gx)return{volume:Jx.parse(t).value};if(t.$type===qx){let e=Bx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"volatile"}}}if(t.$type===Hx){let e=zx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"persistent"}}}if(t.$type===Wx){let e=Kx.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"nonreplicated"}}}if(t.$type===eg)return{ca:Qx.parse(t).value};if(t.$type===tg)return{certificate:Yx.parse(t).value};if(t.$type===Op)return{secret:Zx.parse(t).value};if(t.$type===rg)return{domain:Xx.parse(t).value};if(t.$type===ng)return{port:e_.parse(t).value};throw new Error(`unknown resource type '${t.$type}'`)}var qV=require("path");function BV(t){return typeof t=="string"?N.orElse(N.map(W4(t),e=>{var r,n;return{tag:e.tag,hub:{name:e.hub,secret:typeof t=="string"?"":(n=(r=t.hub)==null?void 0:r.secret)!=null?n:""}}}),e=>{throw new Error(e)}):t}function Nl(t,e){if(!e)return[];let r=Fe.getDocument(e).uri,n=t.getModule(r);if(N.isErr(n))return[];let i=N.tryCatch(()=>new URL(`file://${n.value.Manifest.module}`));if(N.isErr(i))return[];let s=[];return i.value.hostname.length&&s.push(o=>o.domain=i.value.hostname),i.value.pathname.length&&s.push(o=>{o.module=i.value.pathname.replace(/^\//,""),o.name=(0,qV.basename)(o.module)}),s}function HV(t,e){let r={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let s of i)s(r);return{spec:[1,0],ref:r,description:{builtin:!1,connector:{},config:{resilience:0,scale:{},parameter:{},resource:{}},role:{component:{name:"component",meta:{},artifact:U_(t,e)}}}}}function U_(t,e){var u,f,l,p,d,h,g,v,b,_,x;let r={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let T of i)T(r);function s(T,R=!1){return Object.fromEntries(Object.entries(T!=null?T:{}).map(([V,$])=>{var z,W;return[V,{name:V,init:R,entrypoint:$.entrypoint,image:BV($.image),cmd:$.cmd,size:{memory:Y(C({},$.size.memory),{kind:"ram"}),cpu:Y(C({},$.size.cpu),{kind:"cpu"}),mincpu:$.size.mincpu?$.size.mincpu.size:$.size.cpu.size},mapping:{filesystem:Object.fromEntries(Object.entries((z=$.fs)!=null?z:{}).map(([D,P])=>[D,Gfe(D,P)])),env:Object.fromEntries(Object.entries((W=$.env)!=null?W:{}).map(([D,P])=>{let M=D,j=typeof P=="string"||typeof P=="number"||typeof P=="boolean"?{value:String(P)}:P;return[M,j]}))}}]}))}let o=Object.fromEntries(((u=e.init)!=null?u:[]).map((T,R)=>[`INIT_${R}`,T])),a=s(e.code),c=s(o,!0);return{spec:[1,0],ref:r,description:{builtin:!1,config:{resilience:0,scale:{hsize:(f=e.scale)!=null?f:1},parameter:e.config,resource:Object.fromEntries(Object.entries((l=e.resource)!=null?l:{}).map(([T,R])=>[T,ta(R)]))},size:{bandwidth:Y(C({},e.size.bandwidth),{kind:"bandwidth"}),minbandwidth:Math.ceil(UV((p=e.size.minbandwidth)!=null?p:e.size.bandwidth,e.size.bandwidth.unit).size),mincpu:Y(C({},e.size.mincpu),{kind:"cpu"})},profile:{threadability:"*",iopsintensive:!1},srv:{client:Object.fromEntries(Object.entries((h=(d=e.srv)==null?void 0:d.client)!=null?h:{}).map(([T,R])=>[T,{protocol:R,inherited:!1}])),server:Object.fromEntries(Object.entries((v=(g=e.srv)==null?void 0:g.server)!=null?v:{}).map(([T,R])=>{let V;return typeof R=="string"?V={port:80,portnum:1,inherited:!1,protocol:R}:V=Y(C({},R),{portnum:1,inherited:!1}),[T,V]})),duplex:Object.fromEntries(Object.entries((_=(b=e.srv)==null?void 0:b.duplex)!=null?_:{}).map(([T,R])=>{let V;return typeof R=="string"?V={port:80,portnum:1,inherited:!1,protocol:R}:V=Y(C({},R),{portnum:1,inherited:!1}),[T,V]}))},code:C(C({},c),a),probe:Object.fromEntries(Object.entries((x=e.probe)!=null?x:{}).map(([T,R])=>[T,R]))}}}function Gfe(t,e){var r,n,i,s;if(typeof e=="string")return{path:t,data:{value:e},format:"text"};if(typeof e=="object"){if("volume"in e)return{path:t,volume:e.volume};if("data"in e)return{path:t,data:{value:e.data},format:(r=e.format)!=null?r:"text",mode:(n=e.mode)!=null?n:420};let a=["secret","port","domain","certificate","ca"].find(c=>c in e);if(a){let c=a;return{path:t,data:{[c]:e[c]},format:(i=e.format)!=null?i:"text",mode:(s=e.mode)!=null?s:420}}}throw new Error(`Unknown key '${t}': ${JSON.stringify(e)}`)}function Jfe(t){var r,n,i;let e=Ci(t.id.version);return{spec:[1,0],ref:{version:[e.major,e.minor,e.patch],kind:t.id.kind,domain:t.id.domain,module:t.id.module,name:t.id.name},description:{builtin:!0,srv:{client:Object.fromEntries(Object.entries((r=t.srv.client)!=null?r:{}).map(([s])=>[s,{protocol:"http",inherited:!1}])),server:Object.fromEntries(Object.entries((n=t.srv.server)!=null?n:{}).map(([s,o])=>{let a;return typeof o=="string"?a={port:80,portnum:1,inherited:!1,protocol:o}:a=Y(C({},o),{inherited:!1}),[s,a]})),duplex:Object.fromEntries(Object.entries((i=t.srv.duplex)!=null?i:{}).map(([s,o])=>{let a;return typeof o=="string"?a={port:80,portnum:1,inherited:!1,protocol:o}:a=Y(C({},o),{inherited:!1}),[s,a]}))},config:{resilience:0,scale:{},parameter:t.config,resource:Object.fromEntries(Object.entries(t.resource).map(([s,o])=>[s,ta(o)]))},connector:{},role:{}}}}function zV(t,e){var r,n;return{name:Ol(t),up:zp(t),meta:{},config:{resilience:0,scale:{},parameter:(r=e.config)!=null?r:{},resource:Object.fromEntries(Object.entries((n=e.resource)!=null?n:{}).map(([i,s])=>[i,ta(s)]))},artifact:Jfe(e)}}function _v(t,e,r,n){let i=t.svcs.shared.references.KumoriModules,s=Nl(i,t.nodes.get(e));for(let o of s)o(r);return n&&(r.kind="service"),r}function q_(t,e){return t.some(r=>JSON.stringify(r)===JSON.stringify(e))}function B_(t,e){return{role:t,channel:e}}function bv(t,e,r){return{meta:t,links:[{role:e,channel:r}]}}function WV(t,e,r){var i,s,o,a;let n={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"};if(r.$type===Dp){r=r;let c=[],u=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let f of r.value.from){u.push(B_(f.target,f.channel));for(let l of r.value.to){let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact)||l.target=="self";_v(t,p,n,d);let h=(i=r.value.meta)!=null?i:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}}else if("from"in r.value&&!Array.isArray(r.value.from)&&!Array.isArray(r.value.to)){let f=r.value.from,l=r.value.to;u.push(B_(f.target,f.channel));let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact)||l.target=="self";_v(t,p,n,d);let h=(s=r.value.meta)!=null?s:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}return{kind:"lb",clients:u,servers:c}}if(r.$type===Lp){r=r;let c=[],u=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let f of r.value.from){u.push(B_(f.target,f.channel));for(let l of r.value.to){let p=e.role[l.target=="self"?f.target:l.target],d=Wa(p.artifact);_v(t,p,n,d);let h=(o=r.value.meta)!=null?o:[{auto:{channel:l.target!=="self"?l.target+"."+l.channel:l.channel,compRef:n,roleName:l.target=="self"?f.target:l.target},user:{}}],g=bv(h,l.target,l.channel);q_(c,g)||c.push(g)}}else if("target"in r.value&&"channel"in r.value){let f=e.role[r.value.target],l=Wa(f.artifact);_v(t,f,n,l);let p=(a=r.value.meta)!=null?a:[{auto:{channel:r.value.channel,compRef:n,roleName:r.value.target},user:{}}];c.push(bv(p,r.value.target,r.value.channel))}return{kind:"full",clients:u,servers:c}}throw new Error(`unknown connection type '${r.$type}'`)}function H_(t,e){var o,a,c,u,f,l,p,d,h,g,v;let r={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},n=t.svcs.shared.references.KumoriModules,i=Nl(n,t.nodes.get(e));for(let b of i)b(r);let s={spec:[1,0],ref:r,description:{builtin:!1,config:{resilience:0,scale:{detail:Object.fromEntries(Object.entries((o=e.role)!=null?o:{}).filter(([,b])=>Gc(b.artifact)).map(([b,_])=>{var x;return Gc(_.artifact)?[b,{hsize:(x=_.artifact.scale)!=null?x:1}]:[b,{hsize:1}]}))},parameter:(a=e==null?void 0:e.config)!=null?a:{},resource:Object.fromEntries(Object.entries((c=e.resource)!=null?c:{}).map(([b,_])=>[b,ta(_)]))},role:{},connector:Object.fromEntries(Object.entries((u=e.connect)!=null?u:{}).map(([b,_])=>[b,WV(t,e,_)])),srv:{client:Object.fromEntries(Object.entries((l=(f=e.srv)==null?void 0:f.client)!=null?l:{}).map(([b,_])=>[b,{protocol:_,inherited:!1}])),server:Object.fromEntries(Object.entries((d=(p=e.srv)==null?void 0:p.server)!=null?d:{}).map(([b,_])=>{let x;return typeof _=="string"?x={port:80,inherited:!1,protocol:_}:x=Y(C({},_),{inherited:!1}),[b,x]})),duplex:Object.fromEntries(Object.entries((g=(h=e.srv)==null?void 0:h.duplex)!=null?g:{}).map(([b,_])=>{let x;return typeof _=="string"?x={port:80,inherited:!1,protocol:_}:x=Y(C({},_),{inherited:!1}),[b,x]}))}}};return s.description.role=Object.fromEntries(Object.entries((v=e.role)!=null?v:{}).map(([b,_])=>[b,Yfe(t,b,_,s)]).filter(([,b])=>ue.isSome(b)).map(([b,_])=>[b,_.value])),s}function Qfe(t,e){var r,n,i,s,o,a,c;return{name:Ol(t),up:zp(t),meta:{},config:{resilience:0,scale:(i=(r=e.config)==null?void 0:r.scale)!=null?i:{hsize:(n=e.config)==null?void 0:n.scale},parameter:(o=(s=e.config)==null?void 0:s.parameter)!=null?o:{},resource:Object.fromEntries(Object.entries((c=(a=e.config)==null?void 0:a.resource)!=null?c:{}).map(([u,f])=>[u,ta(f)]))},artifact:H_(t,e)}}function Yfe(t,e,r,n){var o,a,c,u,f,l,p,d,h,g,v,b,_,x,T,R,V,$;if(Gc(r.artifact))return Ut({name:e,meta:r.meta,config:{resilience:0,scale:r.artifact.scale?{hsize:r.artifact.scale}:{hsize:1},parameter:(o=r.artifact.config)!=null?o:{},resource:{}},artifact:U_(t,r.artifact)});let i=r.artifact;t=KV(t,e),GV(t,Wa(i)?Qfe(t,i):zV(t,i)),(c=(a=n.description).srv)!=null||(a.srv={}),(f=(u=n.description.srv).server)!=null||(u.server={}),(p=(l=n.description.srv).client)!=null||(l.client={});for(let[,K]of Object.entries((d=n.description.connector)!=null?d:{})){for(let z of K.clients){if(z.role!==e)continue;let W=C({},z),D=`${z.role}.${z.channel}`,P=((g=(h=i==null?void 0:i.srv)==null?void 0:h.client)!=null?g:{})[z.channel];n.description.srv.server[D]={inherited:!0,protocol:z.channel=="inbound"?"http":P},z.role="self",z.channel=D,(b=(v=t.root).links)!=null||(v.links=[]),t.root.links.push({meta:{},s_d:Ol(t),s_c:W.channel,t_d:zp(t),t_c:D})}for(let z of K.servers)for(let W of z.links)if(W.role===e){let D=`${W.role}.${W.channel}`,P=((x=(_=i==null?void 0:i.srv)==null?void 0:_.server)!=null?x:{})[W.channel];P===void 0&&(P=((R=(T=i==null?void 0:i.srv)==null?void 0:T.duplex)!=null?R:{})[W.channel]),n.description.srv.client[D]={inherited:!0,protocol:typeof P=="string"?P:P.protocol,port:typeof P=="object"?P.port:void 0},($=(V=t.root).links)!=null||(V.links=[]),t.root.links.push({meta:{},s_d:zp(t),s_c:D,t_d:Ol(t),t_c:W.channel}),W.role="self",W.channel=D}}return ot}var Ol=t=>t.path.join("."),zp=t=>t.path.slice(0,-1).join("."),KV=(t,e)=>Y(C({},t),{path:[...t.path,e]}),GV=(t,e)=>t.root.deployments[Ol(t)]=e;function JV(t,e,r){var s,o,a;let n={top:r.name,deployments:{},links:[]},i={svcs:t,path:[r.name],root:n,nodes:e};return n.deployments[r.name]={name:r.name,meta:r.meta,config:{parameter:(s=r.config)!=null?s:{},resource:Object.fromEntries(Object.entries((o=r.resource)!=null?o:{}).map(([c,u])=>[c,ta(u)])),resilience:(a=r.resilience)!=null?a:0,scale:{detail:(()=>{var c;return Object.fromEntries(Object.entries(Wa(r.artifact)?(c=r.artifact.role)!=null?c:{}:{}).filter(([,u])=>Gc(u.artifact)).map(([u,f])=>{var l;return Gc(f.artifact)?[u,{hsize:(l=f.artifact.scale)!=null?l:1}]:[u,{hsize:1}]}))})()}},artifact:(()=>{if(Gc(r.artifact))return HV(i,r.artifact);if(Wa(r.artifact))return H_(i,r.artifact);throw QV(r.artifact)?new Error("not implemented: handle builtin"):new Error("unknown artifact")})()},n}function Gc(t){return"size"in t}function Wa(t){return!(Gc(t)||QV(t))}function QV(t){return"id"in t}function YV(t,e,r){var u,f;let n=e.validation.KumoriTypeSystem,[{Value:i},s]=n.Eval(e.validation.KumoriValidations.ctx(),r);if(s.length!==0){for(let l of s){let p=l.node,d=Fe.getDocument(p),h=((u=p.$cstNode)==null?void 0:u.range.start)||{line:0,character:0};t.error(`${d.uri.fsPath}:${h.line}:${h.character}: type error: ${l.message}`)}process.exit(1)}let o=new Map,a=Qo({svcs:e,nodes:o},i);if(N.isErr(a)){for(let l of a.err){let p=l.node,d=Fe.getDocument(p),h=((f=p.$cstNode)==null?void 0:f.range.start)||{line:0,character:0};t.error(`${d.uri.fsPath}:${h.line}:${h.character}: json conversion error: ${l.message}`)}process.exit(1)}let c=VV.safeParse(a.value);if(!c.success){for(let l of c.error.issues)t.error(`${l.code}: ${l.path}: invalid deployment: ${l.message}`);process.exit(1)}return JSON.stringify(JV(e,o,a.value),null,2)}function Sv(t,e=new On){if(t.Manifest.headers!==void 0){let[r,n]=[t.Manifest.headers.target,t.Manifest.headers.version],i=Ln(r,n);e.add(i,{target:r,version:n})}for(let r of t.Manifest.requires){let[n,i]=[r.target,r.version],s={target:n,version:i},o=Ln(n,i);if(e.add(o,s),r.headers!==void 0){let[a,c]=[r.headers.target,r.headers.version],u=Ln(a,c);s.interface={target:a,version:c},e.add(u,s.interface)}}return e}var Kb=ke(require("assert"),1);var ZV=require("path");async function dg(t,e,r){let n=Ln(e,r),i=Js(n);if(ue.isSome(i)&&(e=i.value.Location),(0,ZV.isAbsolute)(e)){let a=De.file(e),c=await Gs(t.FS,a);return N.isOk(c)?c:ot}let s=ee.joinPath(t.Locations.Vendor(),n),o=await Gs(t.FS,s);return N.isOk(o)||(s=ee.joinPath(t.Locations.Cache(),n),o=await Gs(t.FS,s),N.isOk(o))?o:ot}function ra(t,e){if(N.isErr(e)){for(let r of e.err)t.error(r);process.exit(1)}return e.value}var Gb=ke(require("path"),1);var Wb=ke(Ui(),1);var jv=ke(fj(),1),$v=ke(J_(),1),MU=require("child_process"),_q=ke(Y_(),1),Qp=ke(Y_(),1),Wq=require("events"),Fv=Object.defineProperty,kde=Object.defineProperties,wde=Object.getOwnPropertyDescriptor,Ade=Object.getOwnPropertyDescriptors,yb=Object.getOwnPropertyNames,dj=Object.getOwnPropertySymbols,zj=Object.prototype.hasOwnProperty,Rde=Object.prototype.propertyIsEnumerable,pj=(t,e,r)=>e in t?Fv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ys=(t,e)=>{for(var r in e||(e={}))zj.call(e,r)&&pj(t,r,e[r]);if(dj)for(var r of dj(e))Rde.call(e,r)&&pj(t,r,e[r]);return t},hg=(t,e)=>kde(t,Ade(e)),xe=(t,e)=>function(){return t&&(e=(0,t[yb(t)[0]])(t=0)),e},Pde=(t,e)=>function(){return e||(0,t[yb(t)[0]])((e={exports:{}}).exports,e),e.exports},ln=(t,e)=>{for(var r in e)Fv(t,r,{get:e[r],enumerable:!0})},Nde=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yb(e))!zj.call(t,i)&&i!==r&&Fv(t,i,{get:()=>e[i],enumerable:!(n=wde(e,i))||n.enumerable});return t},Zr=t=>Nde(Fv({},"__esModule",{value:!0}),t),mg=(t,e,r)=>new Promise((n,i)=>{var s=c=>{try{a(r.next(c))}catch(u){i(u)}},o=c=>{try{a(r.throw(c))}catch(u){i(u)}},a=c=>c.done?n(c.value):Promise.resolve(c.value).then(s,o);a((r=r.apply(t,e)).next())});function Ode(...t){let e=new String(t);return Vv.set(e,t),e}function Dv(t){return t instanceof String&&Vv.has(t)}function mj(t){return Vv.get(t)||[]}var Vv,xg=xe({"src/lib/args/pathspec.ts"(){"use strict";Vv=new WeakMap}}),Ga,Yc=xe({"src/lib/errors/git-error.ts"(){"use strict";Ga=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),_g,Zp=xe({"src/lib/errors/git-response-error.ts"(){"use strict";Yc(),_g=class extends Ga{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),Wj,Kj=xe({"src/lib/errors/task-configuration-error.ts"(){"use strict";Yc(),Wj=class extends Ga{constructor(t){super(void 0,t)}}}});function Gj(t){return typeof t=="function"?t:Ml}function Jj(t){return typeof t=="function"&&t!==Ml}function Qj(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function Yj(t,e=0){return Zj(t)&&t.length>e?t[e]:void 0}function $l(t,e=0){if(Zj(t)&&t.length>e)return t[t.length-1-e]}function Zj(t){return!!(t&&typeof t.length=="number")}function bg(t="",e=!0,r=`
|
|
555
557
|
`){return t.split(r).reduce((n,i)=>{let s=e?i.trim():i;return s&&n.push(s),n},[])}function vb(t,e){return bg(t,!0).map(r=>e(r))}function xb(t){return(0,jv.exists)(t,jv.FOLDER)}function Bt(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function Xj(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function Uv(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function na(t){return Array.isArray(t)?t:[t]}function eU(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function tU(t){return na(t).map(String)}function _r(t,e=0){if(t==null)return e;let r=parseInt(t,10);return isNaN(r)?e:r}function gg(t,e){let r=[];for(let n=0,i=t.length;n<i;n++)r.push(e,t[n]);return r}function yg(t){return(Array.isArray(t)?Buffer.concat(t):t).toString("utf-8")}function rU(t,e){return Object.assign({},...e.map(r=>r in t?{[r]:t[r]}:{}))}function ib(t=0){return new Promise(e=>setTimeout(e,t))}function sb(t){if(t!==!1)return t}var Yp,Ml,Sg,qv=xe({"src/lib/utils/util.ts"(){"use strict";Yp="\0",Ml=()=>{},Sg=Object.prototype.toString.call.bind(Object.prototype.toString)}});function ia(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function _b(t,e){let r=Dv(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function bb(t){return!!t&&Sg(t)==="[object Object]"}function nU(t){return typeof t=="function"}var Eg,fi,iU,Lv,Sb,sU=xe({"src/lib/utils/argument-filters.ts"(){"use strict";qv(),xg(),Eg=t=>Array.isArray(t),fi=t=>typeof t=="string",iU=t=>Array.isArray(t)&&t.every(fi),Lv=t=>fi(t)||Array.isArray(t)&&t.every(fi),Sb=t=>t==null||"number|boolean|function".includes(typeof t)?!1:Array.isArray(t)||typeof t=="string"||typeof t.length=="number"}}),ob,Ide=xe({"src/lib/utils/exit-codes.ts"(){"use strict";ob=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(ob||{})}}),vg,Dde=xe({"src/lib/utils/git-output-streams.ts"(){"use strict";vg=class{constructor(t,e){this.stdOut=t,this.stdErr=e}asStrings(){return new vg(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),dt,Qc,Lde=xe({"src/lib/utils/line-parser.ts"(){"use strict";dt=class{constructor(t,e){this.matches=[],this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,s)=>this.addMatch(i,s,r(s)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}useMatches(t,e){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let n=r&&t.exec(r);return n&&this.pushMatch(e,n),!!n}pushMatch(t,e){this.matches.push(...e.slice(1))}},Qc=class extends dt{addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function oU(...t){let e=process.cwd(),r=Object.assign(Ys({baseDir:e},aU),...t.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}var aU,$de=xe({"src/lib/utils/simple-git-options.ts"(){"use strict";aU={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function Eb(t,e=[]){return bb(t)?Object.keys(t).reduce((r,n)=>{let i=t[n];return Dv(i)?r.push(i):_b(i,["boolean"])?r.push(n+"="+i):r.push(n),r},e):e}function Yi(t,e=0,r=!1){let n=[];for(let i=0,s=e<0?t.length:e;i<s;i++)"string|number".includes(typeof t[i])&&n.push(String(t[i]));return Eb(Tb(t),n),r||n.push(...Mde(t)),n}function Mde(t){let e=typeof $l(t)=="function";return ia($l(t,e?1:0),Eg,[])}function Tb(t){let e=nU($l(t));return ia($l(t,e?1:0),bb)}function Xr(t,e=!0){let r=Gj($l(t));return e||Jj(r)?r:void 0}var Fde=xe({"src/lib/utils/task-options.ts"(){"use strict";sU(),qv(),xg()}});function ab(t,e){return t(e.stdOut,e.stdErr)}function Xi(t,e,r,n=!0){return na(r).forEach(i=>{for(let s=bg(i,n),o=0,a=s.length;o<a;o++){let c=(u=0)=>{if(!(o+u>=a))return s[o+u]};e.some(({parse:u})=>u(c,t))}}),t}var Vde=xe({"src/lib/utils/task-parser.ts"(){"use strict";qv()}}),cU={};ln(cU,{ExitCodes:()=>ob,GitOutputStreams:()=>vg,LineParser:()=>dt,NOOP:()=>Ml,NULL:()=>Yp,RemoteLineParser:()=>Qc,append:()=>Bt,appendTaskOptions:()=>Eb,asArray:()=>na,asCamelCase:()=>eU,asFunction:()=>Gj,asNumber:()=>_r,asStringArray:()=>tU,bufferToString:()=>yg,callTaskParser:()=>ab,createInstanceConfig:()=>oU,delay:()=>ib,filterArray:()=>Eg,filterFunction:()=>nU,filterHasLength:()=>Sb,filterPlainObject:()=>bb,filterPrimitives:()=>_b,filterString:()=>fi,filterStringArray:()=>iU,filterStringOrStringArray:()=>Lv,filterType:()=>ia,first:()=>Yj,folderExists:()=>xb,forEachLineWithContent:()=>vb,getTrailingOptions:()=>Yi,including:()=>Xj,isUserFunction:()=>Jj,last:()=>$l,objectToString:()=>Sg,orVoid:()=>sb,parseStringResponse:()=>Xi,pick:()=>rU,prefixedArray:()=>gg,remove:()=>Uv,splitOn:()=>Qj,toLinesWithContent:()=>bg,trailingFunctionArgument:()=>Xr,trailingOptionsArgument:()=>Tb});var ct=xe({"src/lib/utils/index.ts"(){"use strict";sU(),Ide(),Dde(),Lde(),$de(),Fde(),Vde(),qv()}}),uU={};ln(uU,{CheckRepoActions:()=>cb,checkIsBareRepoTask:()=>fU,checkIsRepoRootTask:()=>lU,checkIsRepoTask:()=>jde});function jde(t){switch(t){case"bare":return fU();case"root":return lU()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:Bv,parser:Cb}}function lU(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:Bv,parser(e){return/^\.(git)?$/.test(e.trim())}}}function fU(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:Bv,parser:Cb}}function Ude(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}var cb,Bv,Cb,dU=xe({"src/lib/tasks/check-is-repo.ts"(){"use strict";ct(),cb=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(cb||{}),Bv=({exitCode:t},e,r,n)=>{if(t===128&&Ude(e))return r(Buffer.from("false"));n(e)},Cb=t=>t.trim()==="true"}});function qde(t,e){let r=new pU(t),n=t?hU:mU;return bg(e).forEach(i=>{let s=i.replace(n,"");r.paths.push(s),(gU.test(s)?r.folders:r.files).push(s)}),r}var pU,mU,hU,gU,Bde=xe({"src/lib/responses/CleanSummary.ts"(){"use strict";ct(),pU=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},mU=/^[a-z]+\s*/i,hU=/^[a-z]+\s+[a-z]+\s*/i,gU=/\/$/}}),ub={};ln(ub,{EMPTY_COMMANDS:()=>Hv,adhocExecTask:()=>yU,configurationErrorTask:()=>Zi,isBufferTask:()=>xU,isEmptyTask:()=>_U,straightThroughBufferTask:()=>vU,straightThroughStringTask:()=>wi});function yU(t){return{commands:Hv,format:"empty",parser:t}}function Zi(t){return{commands:Hv,format:"empty",parser(){throw typeof t=="string"?new Wj(t):t}}}function wi(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function vU(t){return{commands:t,format:"buffer",parser(e){return e}}}function xU(t){return t.format==="buffer"}function _U(t){return t.format==="empty"||!t.commands.length}var Hv,un=xe({"src/lib/tasks/task.ts"(){"use strict";Kj(),Hv=[]}}),bU={};ln(bU,{CONFIG_ERROR_INTERACTIVE_MODE:()=>kb,CONFIG_ERROR_MODE_REQUIRED:()=>wb,CONFIG_ERROR_UNKNOWN_OPTION:()=>Ab,CleanOptions:()=>Pv,cleanTask:()=>SU,cleanWithOptionsTask:()=>Hde,isCleanOptionsArray:()=>zde});function Hde(t,e){let{cleanMode:r,options:n,valid:i}=Wde(t);return r?i.options?(n.push(...e),n.some(Jde)?Zi(kb):SU(r,n)):Zi(Ab+JSON.stringify(t)):Zi(wb)}function SU(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(n){return qde(t==="n",n)}}}function zde(t){return Array.isArray(t)&&t.every(e=>Rb.has(e))}function Wde(t){let e,r=[],n={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(i=>{Kde(i)?(e=i,n.cleanMode=!0):n.options=n.options&&Gde(r[r.length]=`-${i}`)}),{cleanMode:e,options:r,valid:n}}function Kde(t){return t==="f"||t==="n"}function Gde(t){return/^-[a-z]$/i.test(t)&&Rb.has(t.charAt(1))}function Jde(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}var kb,wb,Ab,Pv,Rb,EU=xe({"src/lib/tasks/clean.ts"(){"use strict";Bde(),ct(),un(),kb="Git clean interactive mode is not supported",wb='Git clean mode parameter ("n" or "f") is required',Ab="Git clean unknown option found in: ",Pv=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(Pv||{}),Rb=new Set(["i",...tU(Object.values(Pv))])}});function Qde(t){let e=new CU;for(let r of TU(t))e.addValue(r.file,String(r.key),r.value);return e}function Yde(t,e){let r=null,n=[],i=new Map;for(let s of TU(t,e))s.key===e&&(n.push(r=s.value),i.has(s.file)||i.set(s.file,[]),i.get(s.file).push(r));return{key:e,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function Zde(t){return t.replace(/^(file):/,"")}function*TU(t,e=null){let r=t.split("\0");for(let n=0,i=r.length-1;n<i;){let s=Zde(r[n++]),o=r[n++],a=e;if(o.includes(`
|
|
556
558
|
`)){let c=Qj(o,`
|
|
557
559
|
`);a=c[0],o=c[1]}yield{file:s,key:a,value:o}}}var CU,Xde=xe({"src/lib/responses/ConfigList.ts"(){"use strict";ct(),CU=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((t,e)=>Object.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=$l(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let n=this.addFile(t);n.hasOwnProperty(e)?Array.isArray(n[e])?n[e].push(r):n[e]=[n[e],r]:n[e]=r,this._all=void 0}}}});function Z_(t,e){return typeof t=="string"&&lb.hasOwnProperty(t)?t:e}function epe(t,e,r,n){let i=["config",`--${n}`];return r&&i.push("--add"),i.push(t,e),{commands:i,format:"utf-8",parser(s){return s}}}function tpe(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(n){return Yde(n,t)}}}function rpe(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return Qde(r)}}}function npe(){return{addConfig(t,e,...r){return this._runTask(epe(t,e,r[0]===!0,Z_(r[1],"local")),Xr(arguments))},getConfig(t,e){return this._runTask(tpe(t,Z_(e,void 0)),Xr(arguments))},listConfig(...t){return this._runTask(rpe(Z_(t[0],void 0)),Xr(arguments))}}}var lb,kU=xe({"src/lib/tasks/config.ts"(){"use strict";Xde(),ct(),lb=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(lb||{})}});function ipe(t){return wU.has(t)}var X_,wU,AU=xe({"src/lib/tasks/diff-name-status.ts"(){"use strict";X_=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(X_||{}),wU=new Set(Object.values(X_))}});function spe(...t){return new PU().param(...t)}function ope(t){let e=new Set,r={};return vb(t,n=>{let[i,s,o]=n.split(Yp);e.add(i),(r[i]=r[i]||[]).push({line:_r(s),path:i,preview:o})}),{paths:e,results:r}}function ape(){return{grep(t){let e=Xr(arguments),r=Yi(arguments);for(let i of RU)if(r.includes(i))return this._runTask(Zi(`git.grep: use of "${i}" is not supported.`),e);typeof t=="string"&&(t=spe().param(t));let n=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:n,format:"utf-8",parser(i){return ope(i)}},e)}}}var RU,pg,hj,PU,NU=xe({"src/lib/tasks/grep.ts"(){"use strict";ct(),un(),RU=["-h"],pg=Symbol("grepQuery"),PU=class{constructor(){this[hj]=[]}*[(hj=pg,Symbol.iterator)](){for(let t of this[pg])yield t}and(...t){return t.length&&this[pg].push("--and","(",...gg(t,"-e"),")"),this}param(...t){return this[pg].push(...gg(t,"-e")),this}}}}),OU={};ln(OU,{ResetMode:()=>Nv,getResetMode:()=>upe,resetTask:()=>cpe});function cpe(t,e){let r=["reset"];return IU(t)&&r.push(`--${t}`),r.push(...e),wi(r)}function upe(t){if(IU(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function IU(t){return DU.includes(t)}var Nv,DU,LU=xe({"src/lib/tasks/reset.ts"(){"use strict";un(),Nv=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(Nv||{}),DU=Array.from(Object.values(Nv))}});function lpe(){return(0,$v.default)("simple-git")}function gj(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(n,...i)=>{t(n,...i),r(n,...i)}:t:(n,...i)=>{t(`%s ${n}`,e,...i),r&&r(n,...i)}}function fpe(t,e,{namespace:r}){if(typeof t=="string")return t;let n=e&&e.namespace||"";return n.startsWith(r)?n.substr(r.length+1):n||r}function Pb(t,e,r,n=lpe()){let i=t&&`[${t}]`||"",s=[],o=typeof e=="string"?n.extend(e):e,a=fpe(ia(e,fi),o,n);return u(r);function c(f,l){return Bt(s,Pb(t,a.replace(/^[^:]+/,f),l,n))}function u(f){let l=f&&`[${f}]`||"",p=o&&gj(o,l)||Ml,d=gj(n,`${i} ${l}`,p);return Object.assign(o?p:d,{label:t,sibling:c,info:d,step:u})}}var $U=xe({"src/lib/git-logger.ts"(){"use strict";ct(),$v.default.formatters.L=t=>String(Sb(t)?t.length:"-"),$v.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):Sg(t)}}),Av,fb,dpe=xe({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";Yc(),$U(),Av=class{constructor(t="GitExecutor"){this.logLabel=t,this._queue=new Map}withProgress(t){return this._queue.get(t)}createProgress(t){let e=Av.getName(t.commands[0]),r=Pb(this.logLabel,e);return{task:t,logger:r,name:e}}push(t){let e=this.createProgress(t);return e.logger("Adding task to the queue, commands = %o",t.commands),this._queue.set(t,e),e}fatal(t){for(let[e,{logger:r}]of Array.from(this._queue.entries()))e===t.task?(r.info("Failed %o",t),r("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):r.info("A fatal exception occurred in a previous task, the queue has been purged: %o",t.message),this.complete(e);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(t){this.withProgress(t)&&this._queue.delete(t)}attempt(t){let e=this.withProgress(t);if(!e)throw new Ga(void 0,"TasksPendingQueue: attempt called for an unknown task");return e.logger("Starting task"),e}static getName(t="empty"){return`task:${t}:${++Av.counter}`}},fb=Av,fb.counter=0}});function Ll(t,e){return{method:Yj(t.commands)||"",commands:e}}function ppe(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}function yj(t,e,r,n){return i=>{r("%s received %L bytes",e,i),n("%B",i),t.push(i)}}var db,mpe=xe({"src/lib/runners/git-executor-chain.ts"(){"use strict";Yc(),un(),ct(),dpe(),db=class{constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new fb}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}attemptTask(t){return mg(this,null,function*(){let e=yield this._scheduler.next(),r=()=>this._queue.complete(t);try{let{logger:n}=this._queue.attempt(t);return yield _U(t)?this.attemptEmptyTask(t,n):this.attemptRemoteTask(t,n)}catch(n){throw this.onFatalException(t,n)}finally{r(),e()}})}onFatalException(t,e){let r=e instanceof Ga?Object.assign(e,{task:t}):new Ga(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}attemptRemoteTask(t,e){return mg(this,null,function*(){let r=this._plugins.exec("spawn.binary","",Ll(t,t.commands)),n=this._plugins.exec("spawn.args",[...t.commands],Ll(t,t.commands)),i=yield this.gitResponse(t,r,n,this.outputHandler,e.step("SPAWN")),s=yield this.handleTaskData(t,n,i,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),xU(t)?ab(t.parser,s):ab(t.parser,s.asStrings())})}attemptEmptyTask(t,e){return mg(this,null,function*(){return e("empty task bypassing child process to call to task's parser"),t.parser(this)})}handleTaskData(t,e,r,n){let{exitCode:i,rejection:s,stdOut:o,stdErr:a}=r;return new Promise((c,u)=>{n("Preparing to handle process response exitCode=%d stdOut=",i);let{error:f}=this._plugins.exec("task.error",{error:s},Ys(Ys({},Ll(t,e)),r));if(f&&t.onError)return n.info("exitCode=%s handling with custom error handler"),t.onError(r,f,l=>{n.info("custom error handler treated as success"),n("custom error returned a %s",Sg(l)),c(new vg(Array.isArray(l)?Buffer.concat(l):l,Buffer.concat(a)))},u);if(f)return n.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,a.length,s),u(f);n.info("retrieving task output complete"),c(new vg(Buffer.concat(o),Buffer.concat(a)))})}gitResponse(t,e,r,n,i){return mg(this,null,function*(){let s=i.sibling("output"),o=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},Ll(t,t.commands));return new Promise(a=>{let c=[],u=[];i.info("%s %o",e,r),i("%O",o);let f=this._beforeSpawn(t,r);if(f)return a({stdOut:c,stdErr:u,exitCode:9901,rejection:f});this._plugins.exec("spawn.before",void 0,hg(Ys({},Ll(t,r)),{kill(p){f=p||f}}));let l=(0,MU.spawn)(e,r,o);l.stdout.on("data",yj(c,"stdOut",i,s.step("stdOut"))),l.stderr.on("data",yj(u,"stdErr",i,s.step("stdErr"))),l.on("error",ppe(u,i)),n&&(i("Passing child process stdOut/stdErr to custom outputHandler"),n(e,l.stdout,l.stderr,[...r])),this._plugins.exec("spawn.after",void 0,hg(Ys({},Ll(t,r)),{spawned:l,close(p,d){a({stdOut:c,stdErr:u,exitCode:p,rejection:f||d})},kill(p){l.killed||(f=p,l.kill("SIGINT"))}}))})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,hg(Ys({},Ll(t,e)),{kill(n){r=n||r}})),r}}}}),FU={};ln(FU,{GitExecutor:()=>VU});var VU,hpe=xe({"src/lib/runners/git-executor.ts"(){"use strict";mpe(),VU=class{constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new db(this,this._scheduler,this._plugins)}chain(){return new db(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});function gpe(t,e,r=Ml){let n=s=>{r(null,s)},i=s=>{(s==null?void 0:s.task)===t&&r(s instanceof _g?ype(s):s,void 0)};e.then(n,i)}function ype(t){let e=n=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${n} should be GitResponseError.git.${n}, this will no longer be available in version 3`),e=Ml};return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(n,i){return i in t||(n[i]={enumerable:!1,configurable:!1,get(){return e(i),t.git[i]}}),n}}var vpe=xe({"src/lib/task-callback.ts"(){"use strict";Zp(),ct()}});function vj(t,e){return yU(r=>{if(!xb(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}var xpe=xe({"src/lib/tasks/change-working-directory.ts"(){"use strict";ct(),un()}});function eb(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=Uv(e,"-B")),wi(e)}function _pe(){return{checkout(){return this._runTask(eb(Yi(arguments,1)),Xr(arguments))},checkoutBranch(t,e){return this._runTask(eb(["-b",t,e,...Yi(arguments)]),Xr(arguments))},checkoutLocalBranch(t){return this._runTask(eb(["-b",t,...Yi(arguments)]),Xr(arguments))}}}var bpe=xe({"src/lib/tasks/checkout.ts"(){"use strict";ct(),un()}});function Spe(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function Epe(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return Xi(Spe(),[jU],t)}})}}}var jU,Tpe=xe({"src/lib/tasks/count-objects.ts"(){"use strict";ct(),jU=new dt(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let n=eU(e);t.hasOwnProperty(n)&&(t[n]=_r(r))})}});function Cpe(t){return Xi({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},UU,t)}var UU,kpe=xe({"src/lib/parsers/parse-commit.ts"(){"use strict";ct(),UU=[new dt(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,n])=>{t.branch=e,t.commit=n,t.root=!!r}),new dt(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),n=r.pop();!n||!n.includes("@")||(t.author={email:n.substr(0,n.length-1),name:r.join("<").trim()})}),new dt(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(n,10)||0}),new dt(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0;let i=parseInt(r,10)||0;n==="-"?t.summary.deletions=i:n==="+"&&(t.summary.insertions=i)})]}});function wpe(t,e,r){return{commands:["-c","core.abbrev=40","commit",...gg(t,"-m"),...e,...r],format:"utf-8",parser:Cpe}}function Ape(){return{commit(e,...r){let n=Xr(arguments),i=t(e)||wpe(na(e),na(ia(r[0],Lv,[])),[...ia(r[1],Eg,[]),...Yi(arguments,0,!0)]);return this._runTask(i,n)}};function t(e){return!Lv(e)&&Zi("git.commit: requires the commit message to be supplied as a string/string[]")}}var Rpe=xe({"src/lib/tasks/commit.ts"(){"use strict";kpe(),ct(),un()}});function Ppe(){return{firstCommit(){return this._runTask(wi(["rev-list","--max-parents=0","HEAD"],!0),Xr(arguments))}}}var Npe=xe({"src/lib/tasks/first-commit.ts"(){"use strict";ct(),un()}});function Ope(t,e){let r=["hash-object",t];return e&&r.push("-w"),wi(r,!0)}var Ipe=xe({"src/lib/tasks/hash-object.ts"(){"use strict";un()}});function Dpe(t,e,r){let n=String(r).trim(),i;if(i=qU.exec(n))return new Ov(t,e,!1,i[1]);if(i=BU.exec(n))return new Ov(t,e,!0,i[1]);let s="",o=n.split(" ");for(;o.length;)if(o.shift()==="in"){s=o.join(" ");break}return new Ov(t,e,/^re/i.test(n),s)}var Ov,qU,BU,Lpe=xe({"src/lib/responses/InitSummary.ts"(){"use strict";Ov=class{constructor(t,e,r,n){this.bare=t,this.path=e,this.existing=r,this.gitDir=n}},qU=/^Init.+ repository in (.+)$/,BU=/^Rein.+ in (.+)$/}});function $pe(t){return t.includes(Nb)}function Mpe(t=!1,e,r){let n=["init",...r];return t&&!$pe(n)&&n.splice(1,0,Nb),{commands:n,format:"utf-8",parser(i){return Dpe(n.includes("--bare"),e,i)}}}var Nb,Fpe=xe({"src/lib/tasks/init.ts"(){"use strict";Lpe(),Nb="--bare"}});function Ob(t){for(let e=0;e<t.length;e++){let r=Ib.exec(t[e]);if(r)return`--${r[1]}`}return""}function Vpe(t){return Ib.test(t)}var Ib,Tg=xe({"src/lib/args/log-format.ts"(){"use strict";Ib=/^--(stat|numstat|name-only|name-status)(=|$)/}}),HU,jpe=xe({"src/lib/responses/DiffSummary.ts"(){"use strict";HU=class{constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});function zU(t=""){let e=WU[t];return r=>Xi(new HU,e,r,!1)}var tb,xj,_j,bj,WU,KU=xe({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";Tg(),jpe(),AU(),ct(),tb=[new dt(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,n=""])=>{t.files.push({file:e.trim(),changes:_r(r),insertions:n.replace(/[^+]/g,"").length,deletions:n.replace(/[^-]/g,"").length,binary:!1})}),new dt(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,n])=>{t.files.push({file:e.trim(),before:_r(r),after:_r(n),binary:!0})}),new dt(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let n=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);t.changed=_r(e),t.insertions=_r(n==null?void 0:n[1]),t.deletions=_r(i==null?void 0:i[1])})],xj=[new dt(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,n])=>{let i=_r(e),s=_r(r);t.changed++,t.insertions+=i,t.deletions+=s,t.files.push({file:n,changes:i+s,insertions:i,deletions:s,binary:!1})}),new dt(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],_j=[new dt(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],bj=[new dt(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,n,i,s])=>{t.changed++,t.files.push({file:s!=null?s:n,changes:0,insertions:0,deletions:0,binary:!1,status:sb(ipe(e)&&e),from:sb(!!s&&n!==s&&n),similarity:_r(r)})})],WU={"":tb,"--stat":tb,"--numstat":xj,"--name-status":bj,"--name-only":_j}}});function Upe(t,e){return e.reduce((r,n,i)=>(r[n]=t[i]||"",r),Object.create({diff:null}))}function GU(t=$b,e=JU,r=""){let n=zU(r);return function(i){let s=bg(i.trim(),!1,Db).map(function(o){let a=o.split(Lb),c=Upe(a[0].split(t),e);return a.length>1&&a[1].trim()&&(c.diff=n(a[1])),c});return{all:s,latest:s.length&&s[0]||null,total:s.length}}}var Db,Lb,$b,JU,QU=xe({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";ct(),KU(),Tg(),Db="\xF2\xF2\xF2\xF2\xF2\xF2 ",Lb=" \xF2\xF2",$b=" \xF2 ",JU=["hash","date","message","refs","author_name","author_email"]}}),YU={};ln(YU,{diffSummaryTask:()=>qpe,validateLogFormatConfig:()=>zv});function qpe(t){let e=Ob(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),zv(r)||{commands:r,format:"utf-8",parser:zU(e)}}function zv(t){let e=t.filter(Vpe);if(e.length>1)return Zi(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return Zi(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}var Mb=xe({"src/lib/tasks/diff.ts"(){"use strict";Tg(),KU(),un()}});function Bpe(t,e){let r=[],n=[];return Object.keys(t).forEach(i=>{r.push(i),n.push(String(t[i]))}),[r,n.join(e)]}function Hpe(t){return Object.keys(t).reduce((e,r)=>(r in pb||(e[r]=t[r]),e),{})}function ZU(t={},e=[]){let r=ia(t.splitter,fi,$b),n=!_b(t.format)&&t.format?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[i,s]=Bpe(n,r),o=[],a=[`--pretty=format:${Db}${s}${Lb}`,...e],c=t.n||t["max-count"]||t.maxCount;if(c&&a.push(`--max-count=${c}`),t.from||t.to){let u=t.symmetric!==!1?"...":"..";o.push(`${t.from||""}${u}${t.to||""}`)}return fi(t.file)&&a.push("--follow",Ode(t.file)),Eb(Hpe(t),a),{fields:i,splitter:r,commands:[...a,...o]}}function zpe(t,e,r){let n=GU(t,e,Ob(r));return{commands:["log",...r],format:"utf-8",parser:n}}function Wpe(){return{log(...r){let n=Xr(arguments),i=ZU(Tb(arguments),ia(arguments[0],Eg)),s=e(...r)||zv(i.commands)||t(i);return this._runTask(s,n)}};function t(r){return zpe(r.splitter,r.fields,r.commands)}function e(r,n){return fi(r)&&fi(n)&&Zi("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var pb,XU=xe({"src/lib/tasks/log.ts"(){"use strict";Tg(),xg(),QU(),ct(),un(),Mb(),pb=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(pb||{})}}),Iv,eq,Kpe=xe({"src/lib/responses/MergeSummary.ts"(){"use strict";Iv=class{constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},eq=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),mb,tq,Gpe=xe({"src/lib/responses/PullSummary.ts"(){"use strict";mb=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},tq=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function rb(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function Sj(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:_r(e&&e[1]||"0"),delta:_r(r&&r[1]||"0")}}var rq,Jpe=xe({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";ct(),rq=[new Qc(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=rb(t.remoteMessages);Object.assign(i,{[n]:_r(r)})}),new Qc(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=rb(t.remoteMessages);Object.assign(i,{[n]:_r(r)})}),new Qc(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,n])=>{let i=rb(t.remoteMessages);i.total=Sj(e),i.reused=Sj(r),i.packReused=_r(n)})]}});function nq(t,e){return Xi({remoteMessages:new sq},iq,e)}var iq,sq,oq=xe({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";ct(),Jpe(),iq=[new Qc(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...rq,new Qc([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new Qc([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,n])=>{t.remoteMessages.vulnerabilities={count:_r(e),summary:r,url:n}})],sq=class{constructor(){this.all=[]}}}});function Qpe(t,e){let r=Xi(new tq,aq,[t,e]);return r.message&&r}var Ej,Tj,Cj,kj,aq,wj,Fb,cq=xe({"src/lib/parsers/parse-pull.ts"(){"use strict";Gpe(),ct(),oq(),Ej=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,Tj=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,Cj=/^(create|delete) mode \d+ (.+)/,kj=[new dt(Ej,(t,[e,r,n])=>{t.files.push(e),r&&(t.insertions[e]=r.length),n&&(t.deletions[e]=n.length)}),new dt(Tj,(t,[e,,r,,n])=>r!==void 0||n!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+n||0,!0):!1),new dt(Cj,(t,[e,r])=>{Bt(t.files,r),Bt(e==="create"?t.created:t.deleted,r)})],aq=[new dt(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new dt(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new dt(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,n,i])=>{t.branch.local=n,t.hash.local=e,t.branch.remote=i,t.hash.remote=r})],wj=(t,e)=>Xi(new mb,kj,[t,e]),Fb=(t,e)=>Object.assign(new mb,wj(t,e),nq(t,e))}}),Aj,uq,Rj,Ype=xe({"src/lib/parsers/parse-merge.ts"(){"use strict";Kpe(),ct(),cq(),Aj=[new dt(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new dt(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new Iv(e,r))}),new dt(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,n])=>{t.conflicts.push(new Iv(e,r,{deleteRef:n}))}),new dt(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new Iv(e,null))}),new dt(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],uq=(t,e)=>Object.assign(Rj(t,e),Fb(t,e)),Rj=t=>Xi(new eq,Aj,t)}});function Pj(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let n=uq(e,r);if(n.failed)throw new _g(n);return n}}:Zi("Git.merge requires at least one option")}var Zpe=xe({"src/lib/tasks/merge.ts"(){"use strict";Zp(),Ype(),un()}});function Xpe(t,e,r){let n=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(t),s=!r.includes("new");return{deleted:n,tag:i,branch:!i,new:!s,alreadyUpdated:s,local:t,remote:e}}var Nj,lq,Oj,eme=xe({"src/lib/parsers/parse-push.ts"(){"use strict";ct(),oq(),Nj=[new dt(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new dt(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref=hg(Ys({},t.ref||{}),{local:e})}),new dt(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,n])=>{t.pushed.push(Xpe(e,r,n))}),new dt(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,n])=>{t.branch=hg(Ys({},t.branch||{}),{local:e,remote:r,remoteName:n})}),new dt(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,n,i])=>{t.update={head:{local:e,remote:r},hash:{from:n,to:i}}})],lq=(t,e)=>{let r=Oj(t,e),n=nq(t,e);return Ys(Ys({},r),n)},Oj=(t,e)=>Xi({pushed:[]},Nj,[t,e])}}),fq={};ln(fq,{pushTagsTask:()=>tme,pushTask:()=>Vb});function tme(t={},e){return Bt(e,"--tags"),Vb(t,e)}function Vb(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),Uv(r,"-v"),Bt(r,"--verbose"),Bt(r,"--porcelain"),{commands:r,format:"utf-8",parser:lq}}var dq=xe({"src/lib/tasks/push.ts"(){"use strict";eme(),ct()}});function rme(){return{showBuffer(){let t=["show",...Yi(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask(vU(t),Xr(arguments))},show(){let t=["show",...Yi(arguments,1)];return this._runTask(wi(t),Xr(arguments))}}}var nme=xe({"src/lib/tasks/show.ts"(){"use strict";ct(),un()}}),Ij,pq,ime=xe({"src/lib/responses/FileStatusSummary.ts"(){"use strict";Ij=/^(.+)\0(.+)$/,pq=class{constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let n=Ij.exec(t)||[null,t,t];this.from=n[2]||"",this.path=n[1]||""}}}}});function Dj(t){let[e,r]=t.split(Yp);return{from:r||e,to:e}}function bs(t,e,r){return[`${t}${e}`,r]}function nb(t,...e){return e.map(r=>bs(t,r,(n,i)=>Bt(n.conflicted,i)))}function sme(t,e){let r=e.trim();switch(" "){case r.charAt(2):return n(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return n(" ",r.charAt(0),r.substr(2));default:return}function n(i,s,o){let a=`${i}${s}`,c=mq.get(a);c&&c(t,o),a!=="##"&&a!=="!!"&&t.files.push(new pq(o,i,s))}}var Lj,mq,hq,ome=xe({"src/lib/responses/StatusSummary.ts"(){"use strict";ct(),ime(),Lj=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},mq=new Map([bs(" ","A",(t,e)=>Bt(t.created,e)),bs(" ","D",(t,e)=>Bt(t.deleted,e)),bs(" ","M",(t,e)=>Bt(t.modified,e)),bs("A"," ",(t,e)=>Bt(t.created,e)&&Bt(t.staged,e)),bs("A","M",(t,e)=>Bt(t.created,e)&&Bt(t.staged,e)&&Bt(t.modified,e)),bs("D"," ",(t,e)=>Bt(t.deleted,e)&&Bt(t.staged,e)),bs("M"," ",(t,e)=>Bt(t.modified,e)&&Bt(t.staged,e)),bs("M","M",(t,e)=>Bt(t.modified,e)&&Bt(t.staged,e)),bs("R"," ",(t,e)=>{Bt(t.renamed,Dj(e))}),bs("R","M",(t,e)=>{let r=Dj(e);Bt(t.renamed,r),Bt(t.modified,r.to)}),bs("!","!",(t,e)=>{Bt(t.ignored=t.ignored||[],e)}),bs("?","?",(t,e)=>Bt(t.not_added,e)),...nb("A","A","U"),...nb("D","D","U"),...nb("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,n=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,s=/\.{3}(\S*)/,o=/\son\s([\S]+)$/,a;a=r.exec(e),t.ahead=a&&+a[1]||0,a=n.exec(e),t.behind=a&&+a[1]||0,a=i.exec(e),t.current=a&&a[1],a=s.exec(e),t.tracking=a&&a[1],a=o.exec(e),t.current=a&&a[1]||t.current,t.detached=/\(no branch\)/.test(e)}]]),hq=function(t){let e=t.split(Yp),r=new Lj;for(let n=0,i=e.length;n<i;){let s=e[n++].trim();s&&(s.charAt(0)==="R"&&(s+=Yp+(e[n++]||"")),sme(r,s))}return r}}});function ame(t){return{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...t.filter(r=>!gq.includes(r))],parser(r){return hq(r)}}}var gq,cme=xe({"src/lib/tasks/status.ts"(){"use strict";ome(),gq=["--null","-z"]}});function Mv(t=0,e=0,r=0,n="",i=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:n,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function ume(){return Mv(0,0,0,"",!1)}function lme(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:fme,onError(t,e,r,n){if(t.exitCode===-2)return r(Buffer.from(jb));n(e)}})}}}function fme(t){return t===jb?ume():Xi(Mv(0,0,0,t),yq,t)}var jb,yq,dme=xe({"src/lib/tasks/version.ts"(){"use strict";ct(),jb="installed=false",yq=[new dt(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,n,i=""])=>{Object.assign(t,Mv(_r(e),_r(r),_r(n),i))}),new dt(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,n,i=""])=>{Object.assign(t,Mv(_r(e),_r(r),n,i))})]}}),vq={};ln(vq,{SimpleGitApi:()=>hb});var hb,pme=xe({"src/lib/simple-git-api.ts"(){"use strict";vpe(),xpe(),bpe(),Tpe(),Rpe(),kU(),Npe(),NU(),Ipe(),Fpe(),XU(),Zpe(),dq(),nme(),cme(),un(),dme(),ct(),hb=class{constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),n=r.push(t);return e&&gpe(t,n,e),Object.create(this,{then:{value:n.then.bind(n)},catch:{value:n.catch.bind(n)},_executor:{value:r}})}add(t){return this._runTask(wi(["add",...na(t)]),Xr(arguments))}cwd(t){let e=Xr(arguments);return typeof t=="string"?this._runTask(vj(t,this._executor),e):typeof(t==null?void 0:t.path)=="string"?this._runTask(vj(t.path,t.root&&this._executor||void 0),e):this._runTask(Zi("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask(Ope(t,e===!0),Xr(arguments))}init(t){return this._runTask(Mpe(t===!0,this._executor.cwd,Yi(arguments)),Xr(arguments))}merge(){return this._runTask(Pj(Yi(arguments)),Xr(arguments))}mergeFromTo(t,e){return fi(t)&&fi(e)?this._runTask(Pj([t,e,...Yi(arguments)]),Xr(arguments,!1)):this._runTask(Zi("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=Vb({remote:ia(arguments[0],fi),branch:ia(arguments[1],fi)},Yi(arguments));return this._runTask(t,Xr(arguments))}stash(){return this._runTask(wi(["stash",...Yi(arguments)]),Xr(arguments))}status(){return this._runTask(ame(Yi(arguments)),Xr(arguments))}},Object.assign(hb.prototype,_pe(),Ape(),npe(),Epe(),Ppe(),ape(),Wpe(),rme(),lme())}}),xq={};ln(xq,{Scheduler:()=>bq});var $j,bq,mme=xe({"src/lib/runners/scheduler.ts"(){"use strict";ct(),$U(),$j=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,_q.createDeferred)();return{promise:e,done:r,id:t}}})(),bq=class{constructor(t=2){this.concurrency=t,this.logger=Pb("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=Bt(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),Uv(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=Bt(this.pending,$j());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),Sq={};ln(Sq,{applyPatchTask:()=>hme});function hme(t,e){return wi(["apply",...e,...t])}var gme=xe({"src/lib/tasks/apply-patch.ts"(){"use strict";un()}});function yme(t,e){return{branch:t,hash:e,success:!0}}function vme(t){return{branch:t,hash:null,success:!1}}var Eq,xme=xe({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";Eq=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function Tq(t,e){return e===1&&gb.test(t)}var Mj,gb,Fj,Wv,_me=xe({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";xme(),ct(),Mj=/(\S+)\s+\(\S+\s([^)]+)\)/,gb=/^error[^']+'([^']+)'/m,Fj=[new dt(Mj,(t,[e,r])=>{let n=yme(e,r);t.all.push(n),t.branches[e]=n}),new dt(gb,(t,[e])=>{let r=vme(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],Wv=(t,e)=>Xi(new Eq,Fj,[t,e])}}),Cq,bme=xe({"src/lib/responses/BranchSummary.ts"(){"use strict";Cq=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,n,i){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:n,label:i}}}}});function Vj(t){return t?t.charAt(0):""}function kq(t){return Xi(new Cq,wq,t)}var wq,Sme=xe({"src/lib/parsers/parse-branch.ts"(){"use strict";bme(),ct(),wq=[new dt(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,n,i])=>{t.push(Vj(e),!0,r,n,i)}),new dt(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$","s"),(t,[e,r,n,i])=>{t.push(Vj(e),!1,r,n,i)})]}}),Aq={};ln(Aq,{branchLocalTask:()=>Tme,branchTask:()=>Eme,containsDeleteBranchCommand:()=>Rq,deleteBranchTask:()=>kme,deleteBranchesTask:()=>Cme});function Rq(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}function Eme(t){let e=Rq(t),r=["branch",...t];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(n,i){return e?Wv(n,i).all[0]:kq(n)}}}function Tme(){return{format:"utf-8",commands:["branch","-v"],parser:kq}}function Cme(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,n){return Wv(r,n)},onError({exitCode:r,stdOut:n},i,s,o){if(!Tq(String(i),r))return o(i);s(n)}}}function kme(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(n,i){return Wv(n,i).branches[t]},onError({exitCode:n,stdErr:i,stdOut:s},o,a,c){if(!Tq(String(o),n))return c(o);throw new _g(r.parser(yg(s),yg(i)),String(o))}};return r}var wme=xe({"src/lib/tasks/branch.ts"(){"use strict";Zp(),_me(),Sme(),ct()}}),Pq,Ame=xe({"src/lib/responses/CheckIgnore.ts"(){"use strict";Pq=t=>t.split(/\n/g).map(e=>e.trim()).filter(e=>!!e)}}),Nq={};ln(Nq,{checkIgnoreTask:()=>Rme});function Rme(t){return{commands:["check-ignore",...t],format:"utf-8",parser:Pq}}var Pme=xe({"src/lib/tasks/check-ignore.ts"(){"use strict";Ame()}}),Oq={};ln(Oq,{cloneMirrorTask:()=>Ome,cloneTask:()=>Iq});function Nme(t){return/^--upload-pack(=|$)/.test(t)}function Iq(t,e,r){let n=["clone",...r];return fi(t)&&n.push(t),fi(e)&&n.push(e),n.find(Nme)?Zi("git.fetch: potential exploit argument blocked."):wi(n)}function Ome(t,e,r){return Bt(r,"--mirror"),Iq(t,e,r)}var Ime=xe({"src/lib/tasks/clone.ts"(){"use strict";un(),ct()}});function Dme(t,e){return Xi({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},Dq,[t,e])}var Dq,Lme=xe({"src/lib/parsers/parse-fetch.ts"(){"use strict";ct(),Dq=[new dt(/From (.+)$/,(t,[e])=>{t.remote=e}),new dt(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new dt(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new dt(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new dt(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,n,i])=>{t.updated.push({name:n,tracking:i,to:r,from:e})})]}}),Lq={};ln(Lq,{fetchTask:()=>Mme});function $me(t){return/^--upload-pack(=|$)/.test(t)}function Mme(t,e,r){let n=["fetch",...r];return t&&e&&n.push(t,e),n.find($me)?Zi("git.fetch: potential exploit argument blocked."):{commands:n,format:"utf-8",parser:Dme}}var Fme=xe({"src/lib/tasks/fetch.ts"(){"use strict";Lme(),un()}});function Vme(t){return Xi({moves:[]},$q,t)}var $q,jme=xe({"src/lib/parsers/parse-move.ts"(){"use strict";ct(),$q=[new dt(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),Mq={};ln(Mq,{moveTask:()=>Ume});function Ume(t,e){return{commands:["mv","-v",...na(t),e],format:"utf-8",parser:Vme}}var qme=xe({"src/lib/tasks/move.ts"(){"use strict";jme(),ct()}}),Fq={};ln(Fq,{pullTask:()=>Bme});function Bme(t,e,r){let n=["pull",...r];return t&&e&&n.splice(1,0,t,e),{commands:n,format:"utf-8",parser(i,s){return Fb(i,s)},onError(i,s,o,a){let c=Qpe(yg(i.stdOut),yg(i.stdErr));if(c)return a(new _g(c));a(s)}}}var Hme=xe({"src/lib/tasks/pull.ts"(){"use strict";Zp(),cq(),ct()}});function zme(t){let e={};return Vq(t,([r])=>e[r]={name:r}),Object.values(e)}function Wme(t){let e={};return Vq(t,([r,n,i])=>{e.hasOwnProperty(r)||(e[r]={name:r,refs:{fetch:"",push:""}}),i&&n&&(e[r].refs[i.replace(/[^a-z]/g,"")]=n)}),Object.values(e)}function Vq(t,e){vb(t,r=>e(r.split(/\s+/)))}var Kme=xe({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";ct()}}),jq={};ln(jq,{addRemoteTask:()=>Gme,getRemotesTask:()=>Jme,listRemotesTask:()=>Qme,remoteTask:()=>Yme,removeRemoteTask:()=>Zme});function Gme(t,e,r){return wi(["remote","add",...r,t,e])}function Jme(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?Wme:zme}}function Qme(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),wi(e)}function Yme(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),wi(e)}function Zme(t){return wi(["remote","remove",t])}var Xme=xe({"src/lib/tasks/remote.ts"(){"use strict";Kme(),un()}}),Uq={};ln(Uq,{stashListTask:()=>ehe});function ehe(t={},e){let r=ZU(t),n=["stash","list",...r.commands,...e],i=GU(r.splitter,r.fields,Ob(n));return zv(n)||{commands:n,format:"utf-8",parser:i}}var the=xe({"src/lib/tasks/stash-list.ts"(){"use strict";Tg(),QU(),Mb(),XU()}}),qq={};ln(qq,{addSubModuleTask:()=>rhe,initSubModuleTask:()=>nhe,subModuleTask:()=>Kv,updateSubModuleTask:()=>ihe});function rhe(t,e){return Kv(["add",t,e])}function nhe(t){return Kv(["init",...t])}function Kv(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),wi(e)}function ihe(t){return Kv(["update",...t])}var she=xe({"src/lib/tasks/sub-module.ts"(){"use strict";un()}});function ohe(t,e){let r=isNaN(t),n=isNaN(e);return r!==n?r?1:-1:r?Bq(t,e):0}function Bq(t,e){return t===e?0:t>e?1:-1}function ahe(t){return t.trim()}function Rv(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}var jj,Hq,che=xe({"src/lib/responses/TagList.ts"(){"use strict";jj=class{constructor(t,e){this.all=t,this.latest=e}},Hq=function(t,e=!1){let r=t.split(`
|
|
@@ -682,7 +684,7 @@ If the module is not located in the current directory, you can provide a custom
|
|
|
682
684
|
kdsl mod update -v 1.0.0 -p ./my-module
|
|
683
685
|
`.trim();function V1e(t){return async e=>{await j1e(t,process.cwd(),e)}}var j1e=async(t,e,r)=>{var f,l,p;let n=wn.fileSystemProvider(),i=(f=r.path)!=null?f:e;Rg.default.isAbsolute(i)||(i=Rg.default.join(e,i));let s=await wl(n,De.file(i));ue.isSome(s)&&s.value.fsPath===i&&(t.error(`error: module ${i} already exists`),process.exit(1));let o=await n.readFile(De.file(Rg.default.join(i,xr))),a=JSON.parse(o),c={spec:"kumori/module/v1",kumori:"0.0.1",version:(l=r.version)!=null?l:a.version,module:a.module,cacheLocation:(p=r.cacheLocation)!=null?p:a.cacheLocation,requires:[]},u=Rg.default.join(i,xr);await(0,n8.mkdir)(i,{recursive:!0}),await(0,n8.writeFile)(u,JSON.stringify(c,null,4)),t.info(`updated ${xr}: module ${c.module}`)};var DB={Register:U1e};function U1e(t,e){let r=t.command("mod").summary(q1e).description(B1e).helpCommand(!1).helpOption(!1);return xB.Register(r,e),fB.Register(r,e),CB.Register(r,e),NB.Register(r,e),OB.Register(r),IB.Register(r,e),r}var q1e="module maintenance",B1e=`
|
|
684
686
|
Provides access to operations on modules.
|
|
685
|
-
`.trim();var LB={name:"@kumori/kdsl",version:"0.0.
|
|
687
|
+
`.trim();var LB={name:"@kumori/kdsl",version:"0.0.7",private:!1,files:["bin","out"],type:"module",description:"Kumori DSL command line interface",bin:{kdsl:"bin/cli.js"},scripts:{build:"npm run fix && tsc -b tsconfig.json && node esbuild.mjs --minify",test:"vitest run",clean:"rm -rf dist/ out/ tsconfig.tsbuildinfo",prepublishOnly:"npm run build",lint:"eslint .",prettier:"prettier src/ test/ --write",fix:"npm run lint && npm run prettier"},dependencies:{"@commander-js/extra-typings":"^13.1.0","@kumori/kdsl-lsp":"file:../lsp",ajv:"^6.12.6",chalk:"~5.3.0",commander:"~13.1.0",zod:"^3.24.2"},license:"EUPL",keywords:["cli","tool","automation","kumori","dsl"],gitHead:"89bea74c68de5f90f37ccc0e64b340408c90b76d",devDependencies:{"@eslint/js":"^9.35.0",eslint:"^9.35.0",globals:"^16.4.0",jiti:"^2.5.1",prettier:"3.6.2","typescript-eslint":"^8.44.0"}};var z1e="<unknown>",$B,W1e=($B=LB.version)!=null?$B:z1e,MB=W1e;var FB={Register:K1e};function K1e(t,e){return t.command("add").argument("<selector>","Name selector for matching dependencies").argument("<version>","Version of the registry specification. It is a git tag.").argument("<url>","URL that contains the registry index for resolving modules").summary(G1e).description(J1e).action(Q1e(e))}var G1e=`
|
|
686
688
|
add a new registry
|
|
687
689
|
`.trim(),J1e=`
|
|
688
690
|
Add a registry to the resolver configuration. The selector argument is used to match artifacts.
|