@kumori/kdsl 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/main.js +1 -1
- package/dist/build/main.js.map +1 -1
- package/out/main.cjs +3 -3
- package/package.json +1 -1
package/dist/build/main.js
CHANGED
|
@@ -154,7 +154,7 @@ export async function BuildImpl(log, svcs, pkgStr, target) {
|
|
|
154
154
|
// We would be left with just "service" (that's why we add 1 to the substring, to remove the trailing slash)
|
|
155
155
|
const artifactPath = artifactImport?.substring(artifactRefPath.length + 1);
|
|
156
156
|
// Now, set the package and name fields in the configDeployment.artifact.ref
|
|
157
|
-
configDeployment.artifact.ref.package = artifactPath ? artifactPath
|
|
157
|
+
configDeployment.artifact.ref.package = artifactPath ? artifactPath : "";
|
|
158
158
|
if (configDeploymentArtifact.value.next) {
|
|
159
159
|
assert(configDeploymentArtifact.value.next.$type === 'IdentifierExpression');
|
|
160
160
|
configDeployment.artifact.ref.name = configDeploymentArtifact.value.next.value.$refText;
|
package/dist/build/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/build/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAkB,MAAM,qCAAqC,CAAC;AAE3F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAA4B,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,GAAc;IACjD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;SACzB,QAAQ,CAAC,WAAW,EAAE,yEAAyE,EAAE,GAAG,CAAC;SACrG,QAAQ,CAAC,aAAa,EAAE,qEAAqE,EAAE,GAAG,CAAC;SACnG,WAAW,CAAC,WAAW,CAAC;SACxB,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,CAAA;AACZ,CAAC;AAGD,MAAM,OAAO,GAAG,6CAA6C,CAAA;AAC7D,MAAM,WAAW,GAAG;;;;;;;;;;;;;CAanB,CAAC,IAAI,EAAE,CAAA;AAGR,MAAM,UAAU,MAAM,CAAC,GAAc;IACjC,OAAO,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAiB,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;QACrC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;QAE7B,MAAM,IAAI,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAEzD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,qCAAqC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,GAAc,EACd,IAAoB,EACpB,MAAc,EACd,MAAc;IAEd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAA;IAEnD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACnE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,CAAA;QAC/B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACd,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,MAAM,GAA6B,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;IAEjE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACvC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,CAAA;YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,+BAA+B,CAAA;QAChD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;IACrD,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,2BAA2B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClE,OAAO,WAAW,CAAA;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAE7D,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,sCAAsC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QACrE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACd,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY;SACjD,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;SAC9C,OAAO,EAAE,CAAA;IAEd,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,mCAAmC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QAClE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACd,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,kCAAkC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QACjE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACd,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAA;IACnC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,6BAA6B,WAAW,CAAC,WAAW,aAAa,WAAW,CAAC,IAAI,EAAE,CAAA;QAC/F,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACd,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACpE,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAA;IACzB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,GAAG,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAErD,2BAA2B;IAC3B,uFAAuF;IACvF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEvD,2GAA2G;IAC3G,6EAA6E;IAC7E,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAE3G,+BAA+B;IAC/B,MAAM,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,KAAK,KAAK,aAAa,IAAI,oBAAoB,CAAC,KAAK,CAAC,KAAK,KAAK,yBAAyB,CAAC,CAAC;IAC/I,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAErF,yGAAyG;IACzG,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7C,OAAO,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,4FAA4F;IAC5F,4FAA4F;IAC5F,gCAAgC;IAEhC,sDAAsD;IACtD,MAAM,wBAAwB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IACnH,MAAM,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,KAAK,KAAK,aAAa,CAAC,CAAA;IACpF,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,KAAK,sBAAsB,CAAC,CAAA;IAEvE,sFAAsF;IACtF,0CAA0C;IAC1C,yEAAyE;IACzE,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChD,MAAM,WAAW,GAAc,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAA;IAC5D,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEtD,oFAAoF;IACpF,4CAA4C;IAC5C,iFAAiF;IACjF,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAEhI,iGAAiG;IACjG,qCAAqC;IACrC,4GAA4G;IAC5G,MAAM,YAAY,GAAG,cAAc,EAAE,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAE1E,4EAA4E;IAC5E,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/build/main.ts"],"names":[],"mappings":"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"}
|
package/out/main.cjs
CHANGED
|
@@ -393,7 +393,7 @@ ${r}`),this.inline?`{${i}}`:i}};function iUe(t,e,r){var n,i;if(t==="linkplain"||
|
|
|
393
393
|
|
|
394
394
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let w of this.seen.entries()){let k=w[1];if(e===w[0]){s(w);continue}if(n.external){let E=(h=n.external.registry.get(w[0]))==null?void 0:h.id;if(e!==w[0]&&E){s(w);continue}}if((g=this.metadataRegistry.get(w[0]))==null?void 0:g.id){s(w);continue}if(k.cycle){s(w);continue}if(k.count>1&&n.reused==="ref"){s(w);continue}}let a=(w,k)=>{var U,O,M;let N=this.seen.get(w),E=(U=N.def)!=null?U:N.schema,j=C({},E);if(N.ref===null)return;let I=N.ref;if(N.ref=null,I){a(I,k);let $=this.seen.get(I).schema;$.$ref&&(k.target==="draft-7"||k.target==="draft-4"||k.target==="openapi-3.0")?(E.allOf=(O=E.allOf)!=null?O:[],E.allOf.push($)):(Object.assign(E,$),Object.assign(E,j))}N.isParent||this.override({zodSchema:w,jsonSchema:E,path:(M=N.path)!=null?M:[]})};for(let w of[...this.seen.entries()].reverse())a(w[0],{target:this.target});let u={};if(this.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?u.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?u.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=n.external)!=null&&v.uri){let w=(x=n.external.registry.get(e))==null?void 0:x.id;if(!w)throw new Error("Schema is missing an `id` property");u.$id=n.external.uri(w)}Object.assign(u,i.def);let c=(y=(b=n.external)==null?void 0:b.defs)!=null?y:{};for(let w of this.seen.entries()){let k=w[1];k.def&&k.defId&&(c[k.defId]=k.def)}n.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?u.$defs=c:u.definitions=c);try{return JSON.parse(JSON.stringify(u))}catch(w){throw new Error("Error converting schema to JSON.")}}};function ej(t,e){if(t instanceof ty){let n=new Mb(e),i={};for(let a of t._idmap.entries()){let[u,c]=a;n.process(c)}let o={},s={registry:t,uri:e==null?void 0:e.uri,defs:i};for(let a of t._idmap.entries()){let[u,c]=a;o[u]=n.emit(c,te(C({},e),{external:s}))}if(Object.keys(i).length>0){let a=n.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[a]:i}}return{schemas:o}}let r=new Mb(e);return r.process(t),r.emit(t,e)}function bs(t,e){let r=e!=null?e:{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return bs(n.element,r);if(n.type==="set")return bs(n.valueType,r);if(n.type==="lazy")return bs(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return bs(n.innerType,r);if(n.type==="intersection")return bs(n.left,r)||bs(n.right,r);if(n.type==="record"||n.type==="map")return bs(n.keyType,r)||bs(n.valueType,r);if(n.type==="pipe")return bs(n.in,r)||bs(n.out,r);if(n.type==="object"){for(let i in n.shape)if(bs(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(bs(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(bs(i,r))return!0;return!!(n.rest&&bs(n.rest,r))}return!1}var tj={};var jb={};ss(jb,{ZodISODate:()=>wx,ZodISODateTime:()=>_x,ZodISODuration:()=>xx,ZodISOTime:()=>Sx,date:()=>nj,datetime:()=>rj,duration:()=>oj,time:()=>ij});var _x=re("ZodISODateTime",(t,e)=>{fL.init(t,e),on.init(t,e)});function rj(t){return hM(_x,t)}var wx=re("ZodISODate",(t,e)=>{dL.init(t,e),on.init(t,e)});function nj(t){return mM(wx,t)}var Sx=re("ZodISOTime",(t,e)=>{pL.init(t,e),on.init(t,e)});function ij(t){return gM(Sx,t)}var xx=re("ZodISODuration",(t,e)=>{hL.init(t,e),on.init(t,e)});function oj(t){return yM(xx,t)}var Gce=(t,e)=>{db.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>hb(t,r)},flatten:{value:r=>pb(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,G0,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,G0,2)}},isEmpty:{get(){return t.issues.length===0}}})},lHe=re("ZodError",Gce),Xs=re("ZodError",Gce,{Parent:Error});var sj=J0(Xs),aj=X0(Xs),cj=Y0(Xs),uj=Q0(Xs),lj=CS(Xs),fj=AS(Xs),dj=OS(Xs),pj=IS(Xs),hj=DS(Xs),mj=NS(Xs),gj=LS(Xs),yj=MS(Xs);var Xt=re("ZodType",(t,e)=>(Dt.init(t,e),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>{var n;return t.clone(Ae.mergeDefs(e,{checks:[...(n=e.checks)!=null?n:[],...r.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}))},t.clone=(r,n)=>ys(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>sj(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>cj(t,r,n),t.parseAsync=async(r,n)=>aj(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>uj(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>lj(t,r,n),t.decode=(r,n)=>fj(t,r,n),t.encodeAsync=async(r,n)=>dj(t,r,n),t.decodeAsync=async(r,n)=>pj(t,r,n),t.safeEncode=(r,n)=>hj(t,r,n),t.safeDecode=(r,n)=>mj(t,r,n),t.safeEncodeAsync=async(r,n)=>gj(t,r,n),t.safeDecodeAsync=async(r,n)=>yj(t,r,n),t.refine=(r,n)=>t.check(Due(r,n)),t.superRefine=r=>t.check(Nue(r)),t.overwrite=r=>t.check(ul(r)),t.optional=()=>Ex(t),t.nullable=()=>$x(t),t.nullish=()=>Ex($x(t)),t.nonoptional=r=>Sue(t,r),t.array=()=>Cx(t),t.or=r=>qj([t,r]),t.and=r=>cue(t,r),t.transform=r=>Tx(t,Bj(r)),t.default=r=>bue(t,r),t.prefault=r=>wue(t,r),t.catch=r=>Eue(t,r),t.pipe=r=>Tx(t,r),t.readonly=()=>Pue(t),t.describe=r=>{let n=t.clone();return vs.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){var r;return(r=vs.get(t))==null?void 0:r.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return vs.get(t);let n=t.clone();return vs.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),_j=re("_ZodString",(t,e)=>{var n,i,o;$m.init(t,e),Xt.init(t,e);let r=t._zod.bag;t.format=(n=r.format)!=null?n:null,t.minLength=(i=r.minimum)!=null?i:null,t.maxLength=(o=r.maximum)!=null?o:null,t.regex=(...s)=>t.check(Eb(...s)),t.includes=(...s)=>t.check(Pb(...s)),t.startsWith=(...s)=>t.check(Rb(...s)),t.endsWith=(...s)=>t.check(Cb(...s)),t.min=(...s)=>t.check(tp(...s)),t.max=(...s)=>t.check(ny(...s)),t.length=(...s)=>t.check(iy(...s)),t.nonempty=(...s)=>t.check(tp(1,...s)),t.lowercase=s=>t.check($b(s)),t.uppercase=s=>t.check(Tb(s)),t.trim=()=>t.check(Ib()),t.normalize=(...s)=>t.check(Ob(...s)),t.toLowerCase=()=>t.check(Db()),t.toUpperCase=()=>t.check(Nb()),t.slugify=()=>t.check(Lb())}),qb=re("ZodString",(t,e)=>{$m.init(t,e),_j.init(t,e),t.email=r=>t.check(ex(wj,r)),t.url=r=>t.check(xb(Px,r)),t.jwt=r=>t.check(bx(Lj,r)),t.emoji=r=>t.check(ox(Sj,r)),t.guid=r=>t.check(Sb(kx,r)),t.uuid=r=>t.check(tx(gf,r)),t.uuidv4=r=>t.check(rx(gf,r)),t.uuidv6=r=>t.check(nx(gf,r)),t.uuidv7=r=>t.check(ix(gf,r)),t.nanoid=r=>t.check(sx(xj,r)),t.guid=r=>t.check(Sb(kx,r)),t.cuid=r=>t.check(ax(kj,r)),t.cuid2=r=>t.check(cx(Ej,r)),t.ulid=r=>t.check(ux($j,r)),t.base64=r=>t.check(gx(Ij,r)),t.base64url=r=>t.check(yx(Dj,r)),t.xid=r=>t.check(lx(Tj,r)),t.ksuid=r=>t.check(fx(Pj,r)),t.ipv4=r=>t.check(dx(Rj,r)),t.ipv6=r=>t.check(px(Cj,r)),t.cidrv4=r=>t.check(hx(Aj,r)),t.cidrv6=r=>t.check(mx(Oj,r)),t.e164=r=>t.check(vx(Nj,r)),t.datetime=r=>t.check(rj(r)),t.date=r=>t.check(nj(r)),t.time=r=>t.check(ij(r)),t.duration=r=>t.check(oj(r))});function vj(t){return lM(qb,t)}var on=re("ZodStringFormat",(t,e)=>{Jr.init(t,e),_j.init(t,e)}),wj=re("ZodEmail",(t,e)=>{rL.init(t,e),on.init(t,e)});function dHe(t){return ex(wj,t)}var kx=re("ZodGUID",(t,e)=>{eL.init(t,e),on.init(t,e)});function pHe(t){return Sb(kx,t)}var gf=re("ZodUUID",(t,e)=>{tL.init(t,e),on.init(t,e)});function hHe(t){return tx(gf,t)}function mHe(t){return rx(gf,t)}function gHe(t){return nx(gf,t)}function yHe(t){return ix(gf,t)}var Px=re("ZodURL",(t,e)=>{nL.init(t,e),on.init(t,e)});function vHe(t){return xb(Px,t)}function bHe(t){return xb(Px,C({protocol:/^https?$/,hostname:qa.domain},Ae.normalizeParams(t)))}var Sj=re("ZodEmoji",(t,e)=>{iL.init(t,e),on.init(t,e)});function _He(t){return ox(Sj,t)}var xj=re("ZodNanoID",(t,e)=>{oL.init(t,e),on.init(t,e)});function wHe(t){return sx(xj,t)}var kj=re("ZodCUID",(t,e)=>{sL.init(t,e),on.init(t,e)});function SHe(t){return ax(kj,t)}var Ej=re("ZodCUID2",(t,e)=>{aL.init(t,e),on.init(t,e)});function xHe(t){return cx(Ej,t)}var $j=re("ZodULID",(t,e)=>{cL.init(t,e),on.init(t,e)});function kHe(t){return ux($j,t)}var Tj=re("ZodXID",(t,e)=>{uL.init(t,e),on.init(t,e)});function EHe(t){return lx(Tj,t)}var Pj=re("ZodKSUID",(t,e)=>{lL.init(t,e),on.init(t,e)});function $He(t){return fx(Pj,t)}var Rj=re("ZodIPv4",(t,e)=>{mL.init(t,e),on.init(t,e)});function THe(t){return dx(Rj,t)}var Kce=re("ZodMAC",(t,e)=>{yL.init(t,e),on.init(t,e)});function PHe(t){return dM(Kce,t)}var Cj=re("ZodIPv6",(t,e)=>{gL.init(t,e),on.init(t,e)});function RHe(t){return px(Cj,t)}var Aj=re("ZodCIDRv4",(t,e)=>{vL.init(t,e),on.init(t,e)});function CHe(t){return hx(Aj,t)}var Oj=re("ZodCIDRv6",(t,e)=>{bL.init(t,e),on.init(t,e)});function AHe(t){return mx(Oj,t)}var Ij=re("ZodBase64",(t,e)=>{wL.init(t,e),on.init(t,e)});function OHe(t){return gx(Ij,t)}var Dj=re("ZodBase64URL",(t,e)=>{SL.init(t,e),on.init(t,e)});function IHe(t){return yx(Dj,t)}var Nj=re("ZodE164",(t,e)=>{xL.init(t,e),on.init(t,e)});function DHe(t){return vx(Nj,t)}var Lj=re("ZodJWT",(t,e)=>{kL.init(t,e),on.init(t,e)});function NHe(t){return bx(Lj,t)}var Ub=re("ZodCustomStringFormat",(t,e)=>{EL.init(t,e),on.init(t,e)});function LHe(t,e,r={}){return oy(Ub,t,e,r)}function MHe(t){return oy(Ub,"hostname",qa.hostname,t)}function jHe(t){return oy(Ub,"hex",qa.hex,t)}function FHe(t,e){var o;let r=(o=e==null?void 0:e.enc)!=null?o:"hex",n=`${t}_${r}`,i=qa[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return oy(Ub,n,i,e)}var zb=re("ZodNumber",(t,e)=>{var n,i,o,s,a,u,c,l,f;WS.init(t,e),Xt.init(t,e),t.gt=(d,p)=>t.check(mf(d,p)),t.gte=(d,p)=>t.check(Js(d,p)),t.min=(d,p)=>t.check(Js(d,p)),t.lt=(d,p)=>t.check(hf(d,p)),t.lte=(d,p)=>t.check(Ec(d,p)),t.max=(d,p)=>t.check(Ec(d,p)),t.int=d=>t.check(bj(d)),t.safe=d=>t.check(bj(d)),t.positive=d=>t.check(mf(0,d)),t.nonnegative=d=>t.check(Js(0,d)),t.negative=d=>t.check(hf(0,d)),t.nonpositive=d=>t.check(Ec(0,d)),t.multipleOf=(d,p)=>t.check(Pm(d,p)),t.step=(d,p)=>t.check(Pm(d,p)),t.finite=()=>t;let r=t._zod.bag;t.minValue=(o=Math.max((n=r.minimum)!=null?n:Number.NEGATIVE_INFINITY,(i=r.exclusiveMinimum)!=null?i:Number.NEGATIVE_INFINITY))!=null?o:null,t.maxValue=(u=Math.min((s=r.maximum)!=null?s:Number.POSITIVE_INFINITY,(a=r.exclusiveMaximum)!=null?a:Number.POSITIVE_INFINITY))!=null?u:null,t.isInt=((c=r.format)!=null?c:"").includes("int")||Number.isSafeInteger((l=r.multipleOf)!=null?l:.5),t.isFinite=!0,t.format=(f=r.format)!=null?f:null});function Zce(t){return vM(zb,t)}var ay=re("ZodNumberFormat",(t,e)=>{$L.init(t,e),zb.init(t,e)});function bj(t){return _M(ay,t)}function qHe(t){return wM(ay,t)}function UHe(t){return SM(ay,t)}function zHe(t){return xM(ay,t)}function BHe(t){return kM(ay,t)}var Bb=re("ZodBoolean",(t,e)=>{vb.init(t,e),Xt.init(t,e)});function Jce(t){return EM(Bb,t)}var Vb=re("ZodBigInt",(t,e)=>{var n,i,o;GS.init(t,e),Xt.init(t,e),t.gte=(s,a)=>t.check(Js(s,a)),t.min=(s,a)=>t.check(Js(s,a)),t.gt=(s,a)=>t.check(mf(s,a)),t.gte=(s,a)=>t.check(Js(s,a)),t.min=(s,a)=>t.check(Js(s,a)),t.lt=(s,a)=>t.check(hf(s,a)),t.lte=(s,a)=>t.check(Ec(s,a)),t.max=(s,a)=>t.check(Ec(s,a)),t.positive=s=>t.check(mf(BigInt(0),s)),t.negative=s=>t.check(hf(BigInt(0),s)),t.nonpositive=s=>t.check(Ec(BigInt(0),s)),t.nonnegative=s=>t.check(Js(BigInt(0),s)),t.multipleOf=(s,a)=>t.check(Pm(s,a));let r=t._zod.bag;t.minValue=(n=r.minimum)!=null?n:null,t.maxValue=(i=r.maximum)!=null?i:null,t.format=(o=r.format)!=null?o:null});function VHe(t){return TM(Vb,t)}var Mj=re("ZodBigIntFormat",(t,e)=>{TL.init(t,e),Vb.init(t,e)});function HHe(t){return RM(Mj,t)}function WHe(t){return CM(Mj,t)}var Xce=re("ZodSymbol",(t,e)=>{PL.init(t,e),Xt.init(t,e)});function GHe(t){return AM(Xce,t)}var Yce=re("ZodUndefined",(t,e)=>{RL.init(t,e),Xt.init(t,e)});function KHe(t){return OM(Yce,t)}var Qce=re("ZodNull",(t,e)=>{CL.init(t,e),Xt.init(t,e)});function eue(t){return IM(Qce,t)}var tue=re("ZodAny",(t,e)=>{AL.init(t,e),Xt.init(t,e)});function ZHe(){return DM(tue)}var rue=re("ZodUnknown",(t,e)=>{OL.init(t,e),Xt.init(t,e)});function sy(){return NM(rue)}var nue=re("ZodNever",(t,e)=>{IL.init(t,e),Xt.init(t,e)});function jj(t){return LM(nue,t)}var iue=re("ZodVoid",(t,e)=>{DL.init(t,e),Xt.init(t,e)});function JHe(t){return MM(iue,t)}var Rx=re("ZodDate",(t,e)=>{NL.init(t,e),Xt.init(t,e),t.min=(n,i)=>t.check(Js(n,i)),t.max=(n,i)=>t.check(Ec(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function XHe(t){return jM(Rx,t)}var oue=re("ZodArray",(t,e)=>{LL.init(t,e),Xt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(tp(r,n)),t.nonempty=r=>t.check(tp(1,r)),t.max=(r,n)=>t.check(ny(r,n)),t.length=(r,n)=>t.check(iy(r,n)),t.unwrap=()=>t.element});function Cx(t,e){return WM(oue,t,e)}function YHe(t){let e=t._zod.def.shape;return zj(Object.keys(e))}var Ax=re("ZodObject",(t,e)=>{ML.init(t,e),Xt.init(t,e),Ae.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>zj(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone(te(C({},t._zod.def),{catchall:r})),t.passthrough=()=>t.clone(te(C({},t._zod.def),{catchall:sy()})),t.loose=()=>t.clone(te(C({},t._zod.def),{catchall:sy()})),t.strict=()=>t.clone(te(C({},t._zod.def),{catchall:jj()})),t.strip=()=>t.clone(te(C({},t._zod.def),{catchall:void 0})),t.extend=r=>Ae.extend(t,r),t.safeExtend=r=>Ae.safeExtend(t,r),t.merge=r=>Ae.merge(t,r),t.pick=r=>Ae.pick(t,r),t.omit=r=>Ae.omit(t,r),t.partial=(...r)=>Ae.partial(Vj,t,r[0]),t.required=(...r)=>Ae.required(Hj,t,r[0])});function QHe(t,e){let r=C({type:"object",shape:t!=null?t:{}},Ae.normalizeParams(e));return new Ax(r)}function eWe(t,e){return new Ax(C({type:"object",shape:t,catchall:jj()},Ae.normalizeParams(e)))}function tWe(t,e){return new Ax(C({type:"object",shape:t,catchall:sy()},Ae.normalizeParams(e)))}var Fj=re("ZodUnion",(t,e)=>{KS.init(t,e),Xt.init(t,e),t.options=e.options});function qj(t,e){return new Fj(C({type:"union",options:t},Ae.normalizeParams(e)))}var sue=re("ZodDiscriminatedUnion",(t,e)=>{Fj.init(t,e),jL.init(t,e)});function rWe(t,e,r){return new sue(C({type:"union",options:e,discriminator:t},Ae.normalizeParams(r)))}var aue=re("ZodIntersection",(t,e)=>{FL.init(t,e),Xt.init(t,e)});function cue(t,e){return new aue({type:"intersection",left:t,right:e})}var uue=re("ZodTuple",(t,e)=>{ZS.init(t,e),Xt.init(t,e),t.rest=r=>t.clone(te(C({},t._zod.def),{rest:r}))});function lue(t,e,r){let n=e instanceof Dt,i=n?r:e,o=n?e:null;return new uue(C({type:"tuple",items:t,rest:o},Ae.normalizeParams(i)))}var Uj=re("ZodRecord",(t,e)=>{qL.init(t,e),Xt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function fue(t,e,r){return new Uj(C({type:"record",keyType:t,valueType:e},Ae.normalizeParams(r)))}function nWe(t,e,r){let n=ys(t);return n._zod.values=void 0,new Uj(C({type:"record",keyType:n,valueType:e},Ae.normalizeParams(r)))}var due=re("ZodMap",(t,e)=>{UL.init(t,e),Xt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function iWe(t,e,r){return new due(C({type:"map",keyType:t,valueType:e},Ae.normalizeParams(r)))}var pue=re("ZodSet",(t,e)=>{zL.init(t,e),Xt.init(t,e),t.min=(...r)=>t.check(Rm(...r)),t.nonempty=r=>t.check(Rm(1,r)),t.max=(...r)=>t.check(ry(...r)),t.size=(...r)=>t.check(kb(...r))});function oWe(t,e){return new pue(C({type:"set",valueType:t},Ae.normalizeParams(e)))}var Fb=re("ZodEnum",(t,e)=>{BL.init(t,e),Xt.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let o={};for(let s of n)if(r.has(s))o[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new Fb(te(C(te(C({},e),{checks:[]}),Ae.normalizeParams(i)),{entries:o}))},t.exclude=(n,i)=>{let o=C({},e.entries);for(let s of n)if(r.has(s))delete o[s];else throw new Error(`Key ${s} not found in enum`);return new Fb(te(C(te(C({},e),{checks:[]}),Ae.normalizeParams(i)),{entries:o}))}});function zj(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Fb(C({type:"enum",entries:r},Ae.normalizeParams(e)))}function sWe(t,e){return new Fb(C({type:"enum",entries:t},Ae.normalizeParams(e)))}var hue=re("ZodLiteral",(t,e)=>{VL.init(t,e),Xt.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function aWe(t,e){return new hue(C({type:"literal",values:Array.isArray(t)?t:[t]},Ae.normalizeParams(e)))}var mue=re("ZodFile",(t,e)=>{HL.init(t,e),Xt.init(t,e),t.min=(r,n)=>t.check(Rm(r,n)),t.max=(r,n)=>t.check(ry(r,n)),t.mime=(r,n)=>t.check(Ab(Array.isArray(r)?r:[r],n))});function cWe(t){return GM(mue,t)}var gue=re("ZodTransform",(t,e)=>{WL.init(t,e),Xt.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Zd(t.constructor.name);r.addIssue=o=>{var s,a,u;if(typeof o=="string")r.issues.push(Ae.issue(o,r.value,e));else{let c=o;c.fatal&&(c.continue=!1),(s=c.code)!=null||(c.code="custom"),(a=c.input)!=null||(c.input=r.value),(u=c.inst)!=null||(c.inst=t),r.issues.push(Ae.issue(c))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(o=>(r.value=o,r)):(r.value=i,r)}});function Bj(t){return new gue({type:"transform",transform:t})}var Vj=re("ZodOptional",(t,e)=>{GL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Ex(t){return new Vj({type:"optional",innerType:t})}var yue=re("ZodNullable",(t,e)=>{KL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function $x(t){return new yue({type:"nullable",innerType:t})}function uWe(t){return Ex($x(t))}var vue=re("ZodDefault",(t,e)=>{ZL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function bue(t,e){return new vue({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Ae.shallowClone(e)}})}var _ue=re("ZodPrefault",(t,e)=>{JL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function wue(t,e){return new _ue({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Ae.shallowClone(e)}})}var Hj=re("ZodNonOptional",(t,e)=>{XL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Sue(t,e){return new Hj(C({type:"nonoptional",innerType:t},Ae.normalizeParams(e)))}var xue=re("ZodSuccess",(t,e)=>{YL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function lWe(t){return new xue({type:"success",innerType:t})}var kue=re("ZodCatch",(t,e)=>{QL.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Eue(t,e){return new kue({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var $ue=re("ZodNaN",(t,e)=>{eM.init(t,e),Xt.init(t,e)});function fWe(t){return qM($ue,t)}var Wj=re("ZodPipe",(t,e)=>{tM.init(t,e),Xt.init(t,e),t.in=e.in,t.out=e.out});function Tx(t,e){return new Wj({type:"pipe",in:t,out:e})}var Gj=re("ZodCodec",(t,e)=>{Wj.init(t,e),bb.init(t,e)});function dWe(t,e,r){return new Gj({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var Tue=re("ZodReadonly",(t,e)=>{rM.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Pue(t){return new Tue({type:"readonly",innerType:t})}var Rue=re("ZodTemplateLiteral",(t,e)=>{nM.init(t,e),Xt.init(t,e)});function pWe(t,e){return new Rue(C({type:"template_literal",parts:t},Ae.normalizeParams(e)))}var Cue=re("ZodLazy",(t,e)=>{sM.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.getter()});function Aue(t){return new Cue({type:"lazy",getter:t})}var Oue=re("ZodPromise",(t,e)=>{oM.init(t,e),Xt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function hWe(t){return new Oue({type:"promise",innerType:t})}var Iue=re("ZodFunction",(t,e)=>{iM.init(t,e),Xt.init(t,e)});function mWe(t){var e,r;return new Iue({type:"function",input:Array.isArray(t==null?void 0:t.input)?lue(t==null?void 0:t.input):(e=t==null?void 0:t.input)!=null?e:Cx(sy()),output:(r=t==null?void 0:t.output)!=null?r:sy()})}var Ox=re("ZodCustom",(t,e)=>{aM.init(t,e),Xt.init(t,e)});function gWe(t){let e=new nn({check:"custom"});return e._zod.check=t,e}function yWe(t,e){return KM(Ox,t!=null?t:(()=>!0),e)}function Due(t,e={}){return ZM(Ox,t,e)}function Nue(t){return JM(t)}var vWe=XM,bWe=YM;function _We(t,e={error:`Input not instance of ${t.name}`}){let r=new Ox(C({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0},Ae.normalizeParams(e)));return r._zod.bag.Class=t,r}var wWe=(...t)=>QM({Codec:Gj,Boolean:Bb,String:qb},...t);function SWe(t){let e=Aue(()=>qj([vj(t),Zce(),Jce(),eue(),Cx(e),fue(vj(),e)]));return e}function xWe(t,e){return Tx(Bj(t),e)}var kWe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function EWe(t){bi({customError:t})}function $We(){return bi().customError}var Kj;Kj||(Kj={});var Ix={};ss(Ix,{bigint:()=>CWe,boolean:()=>RWe,date:()=>AWe,number:()=>PWe,string:()=>TWe});function TWe(t){return fM(qb,t)}function PWe(t){return bM(zb,t)}function RWe(t){return $M(Bb,t)}function CWe(t){return PM(Vb,t)}function AWe(t){return FM(Rx,t)}bi(JS());var OWe=V.union([V.literal("m"),V.literal("k"),V.literal("M"),V.literal("G"),V.literal("T"),V.literal("P"),V.literal("E"),V.literal("Ki"),V.literal("Mi"),V.literal("Gi"),V.literal("Ti"),V.literal("Pi"),V.literal("Ei")]),Uo=V.object({size:V.number(),unit:OWe});var $c=Me(require("assert"),1);function Dx(t,e,r){if(qn.is(r)){let n=t.assignable(e,r.spec);if(J.isOk(n))return t.listeners.construct(r)}if(qn.is(e)){let n=t.assignable(e.spec,r);if(J.isOk(n))return t.listeners.extract(e)}return IWe(t,e,r)?t.listeners.noop():t.listeners.fail()}function IWe(t,e,r){if(qn.is(e)&&qn.is(r)&&e.meta.id===r.meta.id||cl.is(e)&&cl.is(r)&&e.$type===r.$type)return!0;let n=t.assignable(e,r);return!!J.isOk(n)}var fl=Me(require("assert"),1);function Lue(t,e){let[r,n]=Ct(t,e.caller);(0,fl.default)(!n.length&&Zr.is(r));let i=e.arguments.map(o=>Ct(t,o));if(i.length<1){let o=r.params[0];n=n.concat([Le.create({node:e,message:`missing parameter: ${o.name} ${$e(o.value)}}`})])}if(i.length===1){let[o,s]=i[0];n=n.concat([...s]);let a=Jt.create(),u=t.assignable(o,a);if(J.isErr(u)){let c=`invalid parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:c})])}}else if(i.length===2){let[o,s]=i[0];n=n.concat([...s]);let a=Jt.create(),u=t.assignable(o,a);if(J.isErr(u)){let p=`invalid first parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:p})])}let[c,l]=i[1];n=n.concat([...l]);let f=we.open(),d=t.assignable(c,f);if(J.isErr(d)){let p=`invalid second parameter '${$e(c)}' expected ${$e(f)}`;n=n.concat([Le.create({node:e.arguments[1],message:p})])}}return e.arguments.length>2&&(n=n.concat([Le.create({node:e,message:`too many arguments for ${$e(r)}`})])),[r,n]}function Mue(t,e){let[r,n]=Ct(t,e.caller);(0,fl.default)(!n.length),(0,fl.default)(Zr.is(r));let i=e.arguments.map(o=>Ct(t,o));if(i.length<1){let o=r.params[0];n=n.concat([Le.create({node:e,message:`missing parameter: ${o.name} ${$e(o.value)}}`})])}if(i.length<2){let o=r.params[1];n=n.concat([Le.create({node:e,message:`missing parameter: ${o.name} ${$e(o.value)}}`})])}if(i.length>=1){let[o,s]=i[0];n=n.concat([...s]);let a=tr.create(),u=t.assignable(o,a);if(J.isErr(u)){let c=`invalid parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:c})])}}if(i.length>=2){let[o,s]=i[1];n=n.concat([...s]);let a=tr.create(),u=t.assignable(o,a);if(J.isErr(u)){let c=`invalid parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:c})])}}for(let o of e.arguments.slice(2))n=n.concat([Le.create({node:o,message:`too many arguments for ${$e(r)}`})]);return[r,n]}function jue(t,e){let[r,n]=Ct(t,e.caller);(0,fl.default)(!n.length),(0,fl.default)(Zr.is(r));let i=e.arguments.map(o=>Ct(t,o));if(i.length<1){let o=r.params[0];n=n.concat([Le.create({node:e,message:`missing parameter: ${o.name} ${$e(o.value)}}`})])}if(i.length>=1){let[o,s]=i[0];n=n.concat([...s]);let a=we.open(),u=t.assignable(o,a);if(J.isErr(u)){let c=`invalid parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:c})])}}for(let o of e.arguments.slice(1))n=n.concat([Le.create({node:o,message:`too many arguments for ${$e(r)}`})]);return[r,n]}function Fue(t,e){let[r,n]=Ct(t,e.caller);(0,fl.default)(!n.length),(0,fl.default)(Zr.is(r));let i=e.arguments.map(o=>Ct(t,o));if(i.length<1){let o=r.params[0];n=n.concat([Le.create({node:e,message:`missing parameter: ${o.name} ${$e(o.value)}}`})])}if(i.length>=1){let[o,s]=i[0];n=n.concat([...s]);let a=_o.create({restriction:Jt.create()}),u=t.assignable(o,a);if(J.isErr(u)){let c=`invalid parameter '${$e(o)}' expected ${$e(a)}`;n=n.concat([Le.create({node:e.arguments[0],message:c})])}}for(let o of e.arguments.slice(1))n=n.concat([Le.create({node:o,message:`too many arguments for ${$e(r)}`})]);return[r,n]}function que(t,e){let[r,n]=Ct(t,e.caller);(0,fl.default)(!n.length),(0,fl.default)(Zr.is(r));let i=e.arguments.map(o=>Ct(t,o));if(i.length<2&&(n=n.concat([Le.create({node:e,message:"invalid strconv.Join call: requires two parameters strconv.Join(v []string, sep string)"})])),i.length===2){let[o,s]=i[0];n=n.concat([...s]);let a=_o.create({restriction:Jt.create()}),u=t.assignable(o,a);if(J.isErr(u)){let p=`strconv.Join: invalid parameter '${$e(o)}' of type '${o.$type}' expected '${$e(a)}'`;n=n.concat([Le.create({node:e.arguments[0],message:p})])}let[c,l]=i[1];n=n.concat([...l]);let f=Jt.create(),d=t.assignable(c,f);if(J.isErr(d)){let p=`strconv.Join: invalid parameter '${$e(c)}' of type '${c.$type}' expected ${$e(f)}`;n=n.concat([Le.create({node:e.arguments[1],message:p})])}}for(let o of e.arguments.slice(2))n=n.concat([Le.create({node:o,message:"too many arguments for strconv.Join: accepts two parameters strconv.Join(v []string, sep string)"})]);return[r,n]}function Ct(t,e){let r=t.cache.get(e);if(r)return r;t.cache.set(e,Ys(e,"recursive definition"));let n=DWe(t,e);return t.cache.set(e,n),n}var Ys=(t,e,r)=>[kr.create({node:t}),[Le.create({node:r||t,message:e})]];function DWe(t,e){let r=t.svcs.workspace.AstNodeDescriptionProvider,n=(...o)=>r.createDescription(...o);if(bo(e)){let[o,s]=Ct(t,e.body);return[Ks(o,e),s]}if(hs(e)||ms(e)||lf(e)){if(tt.getDocument(e).uri.path.endsWith(".h.kumori")){let[d,p]=Ct(t,e.body);return[Ks(d,e),p]}if(e.name.value.ref===void 0)return Ys(e.name,"missing interface declaration");let[s,a]=Ct(t,e.name.value.ref),[u,c]=Ct(t,e.body),l=a.concat(c);if(l.length)return[kr.create({node:e}),l];if(!we.is(s)){let d=`unexpected interface '${e.name.value.ref.value.$refText}' of type ${$e(s)}`;return Ys(e.name.value.ref,d)}if(!we.is(u)){let d=`unexpected implementation '${e.name.value.$refText}' of type ${$e(u)}`;return Ys(e,d)}let f=Uue(u,s);return J.isErr(f)?[kr.create({node:e}),f.err]:[Ks(f.value,e),[]]}if(I0(e)){let o=e.stmt.filter(gm).map(l=>l.variables).flat(),s=e.stmt.filter(si),a=[];for(let l of o){let[,f]=Ct(t,l);a=a.concat(f)}let u=[];for(let l of s){let[f,d]=Ct(t,l),p=l.value!==void 0||l.optional;a=a.concat(d),u=u.concat([[l.key,al.create({node:l,value:f,optional:p})]])}let c=Object.fromEntries(u);return[we.create({node:e,open:!1,parameters:c}),a]}if(gs(e)){let o=[],s=[];for(let u of e.entries){let[c,l]=Ct(t,u),f=u.value!==void 0||u.optional;o=o.concat(l),s=s.concat([[u.key,al.create({node:u,value:c,optional:f})]])}let a=Object.fromEntries(s);return[we.create({node:e,open:!1,parameters:a}),o]}if(si(e)){let o=[],s=Vt;if(e.type){let[c,l]=Ct(t,e.type);o=o.concat(l),e.optional&&(c=Gs.create({node:c.node||e,inner:c})),s=Vr(c)}let a=Vt;if(e.value){let[c,l]=Ct(t,e.value);o=o.concat(l),a=Vr(c)}if(je.isNone(s)&&je.isSome(a))return[a.value,o];if(je.isSome(s)&&je.isNone(a))return[s.value,o];if(je.isNone(s)&&je.isNone(a))return o=o.concat([Le.create({node:e,message:"cannot infer value of undefined struct entry"})]),[kr.create({node:e}),o];(0,$c.default)(je.isSome(s)),(0,$c.default)(je.isSome(a));let u=t.assignable(a.value,s.value);if(J.isErr(u)){let c=`cannot assign type '${$e(s.value)}' to type '${$e(a.value)}'`;return o=o.concat([Le.create({node:e,message:c})]),[kr.create({node:e}),o]}return[s.value,o]}if(D0(e)){let[o,s]=Ct(t,e.value);return[Ks(o,e),s]}if(c9(e)){let o=[],s=[];for(let u of e.values){if(u===void 0)return Ys(e,"cannot infer value of undefined list item",u);let[c,l]=Ct(t,u);o=o.concat(l),s=s.concat(c)}let a=lu.create({node:e,variations:s});return s.length||(a=kr.create({node:e})),[_o.create({node:e,restriction:a}),o]}if(r9(e)||f9(e)){let[o,s]=Ct(t,e.left),[a,u]=Ct(t,e.right),c=s.concat(u);return tr.is(o)&&tr.is(a)?[tr.create({node:e}),c]:e.operator==="+"&&Jt.is(o)&&Jt.is(a)?[Jt.create({node:e}),c]:Ys(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(o)}' and '${$e(a)}'`)}if(i9(e)||d9(e)){let[o,s]=Ct(t,e.left),[a,u]=Ct(t,e.right),c=s.concat(u),l=[Or.create({node:e}),c];return tr.is(o)&&tr.is(a)||Jt.is(o)&&Jt.is(a)||Or.is(o)&&Or.is(a)?l:Ys(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(o)}' and '${$e(a)}'`)}if(a9(e)){let[o,s]=Ct(t,e.target);return tr.is(o)?[tr.create({node:e}),s]:Ys(e,`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${$e(o)}'`)}if(u9(e)||l9(e)){let[o,s]=Ct(t,e.left),[a,u]=Ct(t,e.right),c=s.concat(u);return Or.is(o)&&Or.is(a)?[Or.create({node:e}),c]:Ys(e,`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(o)}' and '${$e(a)}'`)}if(p9(e)){let[o,s]=Ct(t,e.condition),[a,u]=Ct(t,e.trueExpr),[c,l]=Ct(t,e.falseExpr),f=s.concat(u).concat(l);if(Or.is(o)&&(Jt.is(a)&&Jt.is(c)||tr.is(a)&&tr.is(c)||Or.is(a)&&Or.is(c))){if(Jt.is(a))return[Jt.create({node:e}),f];if(tr.is(a))return[tr.create({node:e}),f];if(Or.is(a))return[Or.create({node:e}),f]}return Ys(e,`${e.$type}: cannot apply ternary operator with condition of type '${$e(o)}', true expression of type '${$e(a)}' and false expression of type '${$e(c)}'`)}if(h9(e)){let[o,s]=Ct(t,e.left),a=e.operator;return tr.is(o)&&(a==="+"||a==="-")?[tr.create({node:e}),s]:Or.is(o)&&a==="!"?[Or.create({node:e}),s]:Ys(e,`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${$e(o)}'`)}if(M0(e)){let o;return o=e.value,[tr.create({node:e,literal:o}),[]]}if(F0(e)){let o;return o=e.value,[Jt.create({node:e,literal:o}),[]]}if(N0(e)){let o;return o=e.value==="true",[Or.create({node:e,literal:o}),[]]}if(j0(e))return qWe(e);if(Fo(e)){let o=SS(e).map(u=>u.value.$refText).join(".");if(cl.eq(o))return[cl.create(o,e),[]];let a=xS(e).value.ref;if(a===void 0){let u=Le.create({message:"unresolved reference",node:e});return[kr.create({node:e}),[u]]}return Ct(t,a)}if(vm(e)){let o=e.name,[s,a]=Ct(t,e.value);return s=qn.create({node:e,spec:s,meta:nb.from(o,n(e,o))}),[s,a]}if(ym(e)){let o=e.name,[s,a]=Ct(t,e.value);return s=La.create({node:e,name:o,spec:s}),[s,a]}if(s9(e)){let o=[],s=[],[a,u]=Ct(t,e.returns);for(let l of e.params){if(l===void 0){s=s.concat([Le.create({message:"cannot infer value of undefined item",node:l})]);continue}let[f,d]=Ct(t,l.type);s=s.concat(d),o=o.concat([bS.create({node:l,name:l.name,value:f})])}if(s.length)return[kr.create({node:e}),s.concat(u)];let c=e.name;return[Zr.create({node:e,params:o,returns:a,meta:nb.from(c,n(e,c))}),u]}if(m9(e)){let o=[],s=Zj(e).map(a=>Ct(t,a)).map(a=>(o=o.concat(a[1]),a[0]));return[lu.create({node:e,variations:s}),o]}if(Xoe(e)){let[o,s]=Ct(t,e.value);return[_o.create({node:e,restriction:o}),s]}if(Qoe(e)){let o=[],s=kr.create({node:e});e.restriction!==void 0&&([s,o]=Ct(t,e.restriction),s=Gs.create({node:e,inner:s}));let a={};for(let u of e.entries){let[c,l]=Ct(t,u.type);if(o=o.concat(l),c===void 0)continue;let f=u.optional;f&&(c=Gs.create({node:u,inner:c})),a[u.key]=al.create({node:u,value:c,optional:f})}return[we.create({node:e,restriction:s,parameters:a,open:e.open}),o]}if(o9(e))return NWe(t,e);let i=Le.create({message:`${e.$type}: could not infer type`,node:e});return[kr.create({node:e}),[i]]}function NWe(t,e){let[r,n]=Ct(t,e.caller);for(let u of e.arguments){let[,c]=Ct(t,u);n=n.concat(c)}if(n.length)return[kr.create({node:e}),n];if(Zr.is(r))return jWe(t,e);let i=pf.is(r),o=Kd.is(r);if(i||o)return LWe(t,e);let s=`${e.$type}: illegal call to ${$e(r)}`,a=Le.create({message:s,node:e.caller});return[kr.create({node:e}),[a]]}function LWe(t,e){let[r,n]=Ct(t,e.caller);if((0,$c.default)(!n.length),(0,$c.default)(pf.is(r)||Kd.is(r)),e.arguments.length!==1){let u=`${e.$type}: expected 1 argument on cast to '${$e(r)}`,c=Le.create({message:u,node:e.caller});return[kr.create({node:e}),[c]]}let[i,o]=Ct(t,e.arguments[0]);(0,$c.default)(!o.length);let[s,a]=[i,r];return Dx({assignable:t.assignable,listeners:{construct(){},extract(){},noop(){},fail(){let u=`${e.$type}: cannot convert '${$e(s)}' to '${$e(a)}'`;n=n.concat([Le.create({node:e,message:u})])}}},s,a),[r,n]}var MWe={[wo.strconv.Format]:Mue,[wo.strconv.JSON]:jue,[wo.strconv.Concat]:Fue,[wo.strconv.Join]:que,[wo.io.Open]:Lue};function jWe(t,e){let[r,n]=Ct(t,e.caller);if((0,$c.default)(!n.length),(0,$c.default)(Zr.is(r)),r.node===void 0){let s=t.svcs.workspace.AstNodeDescriptionProvider.createDescription(e,"source");throw Error(`undefined caller node: ${JSON.stringify(s)}`)}let i=kS(t.svcs,r),o=MWe[i];if(o===void 0){let s=`not implemented '${i}'`;return n=n.concat([Le.create({message:s,node:e.caller})]),[kr.create({node:e}),n]}return o(t,e)}function Zj(t){let e=[];return m9(t.left)?e=e.concat([...Zj(t.left)]):e=e.concat([t.left]),m9(t.right)?e=e.concat([...Zj(t.right)]):e=e.concat([t.right]),e}var FWe=/(\d+)(\w+)/;function qWe(t){let e=FWe.exec(t.value);if(e===null){let a=`invalid sized literal '${t.value}'`;return Ys(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 Ys(t,a)}let o=Uo.safeParse({size:i,unit:n});if(!o.success){let a=o.error.message;return Ys(t,a)}return[we.create({node:t,open:!1,parameters:{size:al.create({node:t,optional:!1,value:tr.create({node:t,literal:o.data.size})}),unit:al.create({node:t,optional:!1,value:Jt.create({node:t,literal:o.data.unit})})}}),[]]}function Uue(t,e){let r=we.create({node:t.node,open:t.open&&e.open,parameters:{}}),n=[],i=new Set(Object.keys(t.parameters)),o=new Set(Object.keys(e.parameters)),s=wS(i,o);for(let c of s){let l=t.parameters[c],f=e.parameters[c];if((0,$c.default)(l!==void 0),(0,$c.default)(f!==void 0),!we.is(l.value)||!we.is(f.value)){(0,$c.default)(l.node);let g=`unable to merge with interface: cannot merge '${$e(l.value)}' with '${$e(f.value)}'`;n.push(Le.create({node:l.node,message:g}));continue}let d=Uue(l.value,f.value);if(J.isErr(d)){n=n.concat(d.err);continue}let p=l==null?void 0:l.node;(0,$c.default)(p!==void 0);let h=l.optional&&f.optional;r.parameters[c]=al.create({node:p,optional:h,value:d.value})}if(n.length)return be(n);let a=xm(i,s);for(let c of a)r.parameters[c]=t.parameters[c];let u=xm(o,s);for(let c of u)r.parameters[c]=e.parameters[c];return Ke(r)}var Hb=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 Ha=Me(require("assert"),1);var ws;(function(t){t.$type="named",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(ws||(ws={}));var Ye;(function(t){t.$type="none",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(Ye||(Ye={}));var zo;(function(t){t.$type="bool",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(zo||(zo={}));var yt;(function(t){t.$type="string",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(yt||(yt={}));var Un;(function(t){t.$type="number",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(Un||(Un={}));var Oe;(function(t){t.$type="struct",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(Oe||(Oe={}));var Ua;(function(t){t.$type="struct-item",t.create=e=>C({$type:t.$type},e)})(Ua||(Ua={}));var _i;(function(t){t.$type="list",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(_i||(_i={}));var Nx;(function(t){t.$type="list-item",t.create=e=>C({$type:t.$type},e)})(Nx||(Nx={}));var Tc;(function(t){t.$type="function-call",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(Tc||(Tc={}));var zue;(function(t){t.$type="function-parameter",t.create=e=>C({$type:t.$type},e)})(zue||(zue={}));var za;(function(t){t.$type="type-cast",t.create=e=>C({$type:t.$type},e),t.is=e=>e.$type===t.$type})(za||(za={}));var Qs;(function(t){t.$type="reference",t.create=r=>C({$type:t.$type},r),t.is=r=>r.$type===t.$type,t.unwrap=r=>t.unwrapN(r,-1)[0],t.unwrapN=(r,n)=>e(r,Math.floor(n),0);let e=(r,n,i)=>{let o=[r,i];return n===0?o:t.is(r)?e(r.ref,n-1,i+1):o}})(Qs||(Qs={}));var UWe=[zo.$type,yt.$type,Un.$type],pu;(function(t){t.is=e=>t.eq(e.$type),t.eq=e=>UWe.includes(e)})(pu||(pu={}));var Pc;(function(t){t.$type="error",t.create=e=>C({$type:t.$type},e),t.is=e=>typeof e=="object"&&e!==null&&"$type"in e&&e.$type===t.$type&&"message"in e&&typeof e.message=="string"&&"node"in e&&_r(e.node)})(Pc||(Pc={}));function _s(t){if(Oe.is(t))return`{ ${Array.from(Object.entries(t.parameters)).filter(([,r])=>r!==void 0).map(([r,n])=>`${r}: ${_s(n.value)}`).join(", ")} }`;if(_i.is(t))return`[${t.items.map(r=>r.value).map(_s).join(", ")}]`;if(ws.is(t))return`(${t.definition.meta.id}) ${_s(t.inner)}`;if(Qs.is(t))return`*${_s(t.ref)}`;if(Tc.is(t)){let e=t.params.map(({name:r,value:n})=>`${r}=${_s(n)}`).join(", ");return`(${$e(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 du(t){let e=t.node;switch(t.$type){case"struct":return Oe.create({node:e,parameters:Object.fromEntries(Object.entries(t.parameters).filter(([,r])=>r!==void 0).map(([r,n])=>[r,te(C({},n),{value:du(n.value)})]))});case"list":return _i.create({node:e,items:t.items.map(r=>te(C({},r),{value:du(r.value)}))});case"named":return ws.create({node:e,definition:t.definition,inner:du(t.inner)});case"reference":return Qs.create({node:e,ref:du(t.ref)});case"type-cast":return za.create({node:e,to:t.to,result:du(t.result),from:du(t.from)});case"function-call":return Tc.create({node:e,definition:t.definition,params:t.params.map(r=>te(C({},r),{value:du(r.value)})),result:du(t.result)});case"none":case"string":case"number":case"bool":return C({},t)}}var xs=Me(require("assert"),1),Nfe=require("fs");var Lfe=Me(require("path"),1);var Bue=Me(require("assert"),1);function dl(t,e){(0,Bue.default)(e.node!==void 0);let r=e.node,n=()=>be([Pc.create({node:r,message:`incomplete value: ${_s(e)}`})]);return J.from(()=>{var i;if(pu.is(e))return e.literal===void 0?n():e.literal;if(_i.is(e)){let o=[],s=[];for(let a of e.items){let u=dl(t,a.value);if(J.isErr(u)){s=s.concat(u.err),o.push(null);continue}else o.push(u.value)}return s.length?be(s):o}if(Oe.is(e)){let o={},s=[];for(let[a,u]of Object.entries(e.parameters)){if(u===void 0){o[a]=void 0;continue}if(Ye.is(u.value))continue;let c=dl(t,u.value);if(J.isErr(c)){s=s.concat(c.err);continue}else o[a]=c.value}return s.length?be(s):((i=t.nodes)==null||i.set(o,r),o)}if(Qs.is(e))return dl(t,e.ref);if(ws.is(e)){if(!e.definition.node){let u=`definition not found: ${$e(e.definition)}`;return be([Pc.create({node:r,message:u})])}let s=t.svcs.references.KumoriPackages.GetPackage(e.definition.node);if(J.isErr(s)){let u=`invalid or missing package: ${$e(e.definition)}`;return be([Pc.create({node:r,message:u})])}let a=e.definition.meta.id;return J.map(dl(t,e.inner),u=>({$type:a,value:u}))}return za.is(e)||Tc.is(e)?dl(t,e.result):be([Pc.create({node:r,message:`cannot convert value to JSON: ${_s(e)}`})])})}var Mfe=Me(Dfe(),1);function jfe(t,e){let[r,n]=t.infer(e);(0,xs.default)(Zr.is(r)&&n.length===0);let[i,o]=cr(t,e.arguments[0]);if(!Jt.is(i.Type))return n.push(Le.create({node:e.arguments[0],message:`expected a string for the file path, got ${$e(i.Type)}`})),[{Value:$t(t,e),Type:r},n];let s=et(i.Value);if(Ye.is(s)||!yt.is(s))return[{Value:Ye.create({node:e}),Type:r},n.concat(o)];let a,u=[];if(e.arguments.length==2){let[f,d]=cr(t,e.arguments[1]);a=f,u=d}if(n=n.concat(o).concat(u),n.length)return[{Value:$t(t,e),Type:r},n];function c(f){if(Lfe.default.isAbsolute(f.literal)){n.push(Le.create({node:e,message:"absolute paths are not allowed"}));return}let d=me.dirname(tt.getDocument(e).uri),p=me.joinPath(d,f.literal);if(!dae(d,p)){let g=`cannot access '${p}'`;n.push(Le.create({node:e,message:g}));return}let h=J.map(J.tryCatch(()=>(0,Nfe.readFileSync)(p.fsPath)),g=>g.toString("utf8"));if(J.isErr(h)){let g=`failed to open '${p}': ${h.err}`;n.push(Le.create({node:e,message:g}));return}return h.value}let l=Ye.create({node:e});return Jt.is(i.Type)&&e.arguments.length==1?l=(()=>{let f=et(i.Value);if(Ye.is(f)||!yt.is(f))return Ye.create({node:e});let d=c(f);return d===void 0?Ye.create({node:e}):yt.create({node:e,literal:d})})():e.arguments.length==2&&Jt.is(i.Type)&&a&&we.is(a.Type)&&(l=(()=>{let f=et(i.Value),d=et(a.Value);if(Ye.is(f)||Ye.is(d))return Ye.create({node:e});if(!yt.is(f)||!Oe.is(d))return Ye.create({node:e});let p=c(f);if(p===void 0)return Ye.create({node:e});let h=Ffe(d,n);if(n.length)return Ye.create({node:e});let v=Mfe.default.compile(p)(h);return yt.create({node:e,literal:v})})()),[{Value:l,Type:r},n]}function Ffe(t,e){let r={};return Object.entries(t.parameters).forEach(([,n])=>{if(n===void 0||!si(n.node))return;let i=n.node.key,o=et(n.value);if(!Ye.is(o))if(pu.is(o))r[i]=o.literal;else if(_i.is(o)){let s=[];o.items.forEach(a=>{let u=et(a.value);Ye.is(u)||pu.is(u)&&s.push(u.literal)}),r[i]=s}else Oe.is(o)?r[i]=Ffe(o,e):e.push(Le.create({node:n.node,message:`expected a primitive, list, or struct for template parameter '${i}', got '${o.$type}' ${_s(o)}`}))}),r}function qfe(t,e){let[r,n]=t.infer(e);(0,xs.default)(Zr.is(r)&&n.length===0);let[i,o]=cr(t,e.arguments[0]),[s,a]=cr(t,e.arguments[1]);return n=n.concat(o,a),n.length?[{Value:$t(t,e),Type:r},n]:((0,xs.default)(tr.is(i.Type)&&tr.is(s.Type)),[{Value:(()=>{let c=et(i.Value),l=et(s.Value);return Ye.is(c)||Ye.is(l)?Ye.create({node:e}):!Un.is(c)||!Un.is(l)?Ye.create({node:e}):yt.create({node:e,literal:c.literal.toString(l.literal)})})(),Type:r},n])}function Ufe(t,e){let[r,n]=t.infer(e);(0,xs.default)(Zr.is(r)&&n.length===0);let[i,o]=cr(t,e.arguments[0]);return n=n.concat(o),n.length?[{Value:$t(t,e),Type:r},n]:((0,xs.default)(we.is(i.Type)),[{Value:(()=>{let a=et(i.Value);if(Ye.is(a))return Ye.create({node:e});if(!Oe.is(a))return Ye.create({node:e});if(J.isErr(t.complete(a,e)))return Ye.create({node:e});let u=dl({svcs:t.svcs},a);if(J.isErr(u))throw new Error(`runtime error: JSON(): argument '${_s(a)}'`);return yt.create({node:e,literal:JSON.stringify(u.value)})})(),Type:r},n])}function zfe(t,e){let[r,n]=t.infer(e);(0,xs.default)(Zr.is(r)&&n.length===0);let[i,o]=cr(t,e.arguments[0]);return n=n.concat(o),n.length?[{Value:$t(t,e),Type:r},n]:((0,xs.default)(_o.is(i.Type)&&t.assignable(i.Type.restriction,Jt.create())),[{Value:(()=>{let a=et(i.Value);if(Ye.is(a))return Ye.create({node:e});if(!_i.is(a))return Ye.create({node:e});let u=a.items.map(l=>et(l.value));if(u.some(l=>Ye.is(l)))return Ye.create({node:e});if(!u.every(l=>yt.is(l)))return Ye.create({node:e});let c=u.map(l=>((0,xs.default)(yt.is(l)),l.literal));return yt.create({node:e,literal:c.join("")})})(),Type:r},n])}function Bfe(t,e){let[r,n]=t.infer(e);(0,xs.default)(Zr.is(r)),(0,xs.default)(n.length===0);let[i,o]=cr(t,e.arguments[0]),[s,a]=cr(t,e.arguments[1]);return n=n.concat(o,a),n.length?[{Value:$t(t,e),Type:r},n]:((0,xs.default)(_o.is(i.Type)),(0,xs.default)(t.assignable(i.Type.restriction,Jt.create())),(0,xs.default)(Jt.is(s.Type)),[{Value:(()=>{let c=et(i.Value),l=et(s.Value);if(Ye.is(c)||Ye.is(l))return Ye.create({node:e});if(!_i.is(c)||!yt.is(l))return Ye.create({node:e});let f=c.items.map(p=>et(p.value));if(f.some(p=>Ye.is(p)))return Ye.create({node:e});if(!f.every(p=>yt.is(p)))return Ye.create({node:e});let d=f.map(p=>((0,xs.default)(yt.is(p)),p.literal));return yt.create({node:e,literal:d.join(l.literal)})})(),Type:r},n])}function vk(t,e){let r=t.cache.get(e);if(r)return r;let n=new Map,i=cr(te(C({},t),{cache:n}),e);return t.cache.set(e,i),i}function cr(t,e){let r=t.cache.get(e);if(r)return r;let n=[{Value:$t(t,e),Type:kr.create({node:e})},[Le.create({node:e,message:"recursive evaluation aborted"})]];t.cache.set(e,n);let i=DZe(t,e);return t.cache.set(e,i),i}function Vfe(t,e,r){let n=IZe(t,e,r);return(o,s)=>{var d,p;let a=SS(o);if(![tb,rb].includes((p=(d=a.shift())==null?void 0:d.value.$refText)!=null?p:"")||!a.length)return s();let c=n;for(;a.length&&typeof c=="object";){let h=a.shift().value.$refText;c=c[h]}if(c===void 0)return s();if(typeof c=="function")return c();let[{Type:l}]=s();return[{Value:Hfe(t,o,c),Type:l},[]]}}function Hfe(t,e,r){let n={};for(let[i,o]of Object.entries(r)){if(o===void 0)continue;let s;if(typeof o=="function"){let[{Value:a}]=o(),[u]=Qs.unwrapN(a,1);s=u}else s=Hfe(t,e,o);n[i]=Ua.create({value:s})}return Oe.create({node:e,parameters:n})}function IZe(t,e,r){let n={};if(bo(e)){let i=ip(e,"config");je.isSome(i)&&si(i.value)&&gs(i.value.value)&&(n.config=o_(t,i.value.value));let o=ip(e,"resource");je.isSome(o)&&si(o.value)&&gs(o.value.value)&&(n.resource=o_(t,o.value.value))}if(ms(e)){let i=tt.getContainerOfType(r,gs);(0,Ha.default)(i!==void 0);let o=ip(i,"config");je.isSome(o)&&si(o.value)&&gs(o.value.value)&&(n.config=o_(t,o.value.value));let s=ip(i,"resource");je.isSome(s)&&si(s.value)&&gs(s.value.value)&&(n.resource=o_(t,s.value.value))}return n}function o_(t,e){let r={};for(let{key:n,value:i}of e.entries){if(!i)continue;(0,Ha.default)(i!==void 0);let o;gs(i)?o=o_(t,i):o=()=>cr(t,i),r[n]=o}return r}function DZe(t,e){var n,i;if(hs(e)||ms(e)||lf(e)){let o=(i=(n=e.name)==null?void 0:n.value)==null?void 0:i.ref,[s,a]=cr(te(C({},t),{current:e}),e.body);if(o){let[u,c]=cr(te(C({},t),{current:o}),o.body);if(Oe.is(u.Value)&&Oe.is(s.Value)){let l=VZe(u.Value,s.Value);return[{Type:s.Type,Value:Ks(l,e)},a.concat(c)]}}return[{Type:s.Type,Value:Ks(s.Value,e)},a]}if(bo(e)){let[o,s]=cr(te(C({},t),{current:e}),e.body);return[{Type:o.Type,Value:Ks(o.Value,e)},s]}if(I0(e)){let o=e.stmt.filter(gm).map(f=>f.variables).flat(),s=e.stmt.filter(si),[a,u]=t.infer(e.$container);for(let f of o){let[,d]=vk(t,f);u=u.concat(d)}let c=[];for(let f of s){let[d,p]=cr(t,f);u=u.concat(p),c.push([f.key,d,f])}let l=Oe.create({node:e,parameters:Object.fromEntries(c.map(([f,d,p])=>[f,Ua.create({node:p,value:d.Value})]))});return[{Type:a,Value:l},u]}if(gs(e)){let[o,s]=t.infer(e),a=[];for(let c of e.entries||[]){let[l,f]=cr(t,c);s=s.concat(f),a.push([c.key,l,c])}let u=Oe.create({node:e,parameters:Object.fromEntries(a.map(([c,l,f])=>[c,Ua.create({node:f,value:l.Value})]))});return[{Type:o,Value:u},s]}if(si(e)){let[o,s]=t.infer(e);if(!e.value){let a=Ye.create({node:e});return[{Type:o,Value:a},s]}return cr(t,e.value)}if(D0(e)){let[{Type:o,Value:s},a]=vk(t,e.value);return[{Type:o,Value:Ks(s,e)},a]}if(c9(e)){let[o,s]=t.infer(e),a=[];for(let c of e.values||[]){let[l,f]=cr(t,c);s=s.concat(f),a.push([l,c])}let u=_i.create({node:e,items:a.map(([c,l])=>Nx.create({node:l,value:c.Value}))});return[{Type:o,Value:u},s]}if(r9(e)||f9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.left),[c,l]=cr(t,e.right);if(s=s.concat(u),s=s.concat(l),tr.is(a.Type)&&tr.is(c.Type)){let d,p=g=>{let v=et(a.Value),x=et(c.Value);return!Un.is(v)||!Un.is(x)?Ye.create({node:e}):Un.create({node:e,literal:g(v,x)})};switch(e.operator){case"+":d=()=>p((g,v)=>g.literal+v.literal);break;case"-":d=()=>p((g,v)=>g.literal-v.literal);break;case"%":d=()=>p((g,v)=>g.literal%v.literal);break;case"*":d=()=>p((g,v)=>g.literal*v.literal);break;case"/":d=()=>p((g,v)=>g.literal/v.literal);break}let h=d();return[{Type:o,Value:h},s]}if(e.operator==="+"&&Jt.is(a.Type)&&Jt.is(c.Type)){let d,p=g=>{let v=et(a.Value),x=et(c.Value);return!yt.is(v)||!yt.is(x)?Ye.create({node:e}):yt.create({node:e,literal:g(v,x)})};d=()=>p((g,v)=>g.literal+v.literal);let h=d();return[{Type:o,Value:h},s]}let f=`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(a.Type)}' and '${$e(c.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:f})])]}if(i9(e)||d9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.left),[c,l]=cr(t,e.right);s=s.concat(u),s=s.concat(l);let f;if(tr.is(a.Type)&&tr.is(c.Type)){let p=h=>{let g=et(a.Value),v=et(c.Value);return!Un.is(g)||!Un.is(v)?Ye.create({node:e}):zo.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":f=()=>p((h,g)=>h.literal!=g.literal);break;case"==":f=()=>p((h,g)=>h.literal==g.literal);break;case"<":f=()=>p((h,g)=>h.literal<g.literal);break;case"<=":f=()=>p((h,g)=>h.literal<=g.literal);break;case">":f=()=>p((h,g)=>h.literal>g.literal);break;case">=":f=()=>p((h,g)=>h.literal>=g.literal);break}}if(Jt.is(a.Type)&&Jt.is(c.Type)){let p=h=>{let g=et(a.Value),v=et(c.Value);return!yt.is(g)||!yt.is(v)?Ye.create({node:e}):zo.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":f=()=>p((h,g)=>h.literal!=g.literal);break;case"==":f=()=>p((h,g)=>h.literal==g.literal);break;case"<":f=()=>p((h,g)=>h.literal<g.literal);break;case"<=":f=()=>p((h,g)=>h.literal<=g.literal);break;case">":f=()=>p((h,g)=>h.literal>g.literal);break;case">=":f=()=>p((h,g)=>h.literal>=g.literal);break}}if(Or.is(a.Type)&&Or.is(c.Type)){let p=h=>{let g=et(a.Value),v=et(c.Value);return!zo.is(g)||!zo.is(v)?Ye.create({node:e}):zo.create({node:e,literal:h(g,v)})};switch(e.operator){case"!=":f=()=>p((h,g)=>h.literal!=g.literal);break;case"==":f=()=>p((h,g)=>h.literal==g.literal);break}}if(f!==void 0){let p=f();return[{Type:o,Value:p},s]}let d=`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(a.Type)}' and '${$e(c.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:d})])]}if(u9(e)||l9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.left),[c,l]=cr(t,e.right);if(s=s.concat(u).concat(l),Or.is(a.Type)&&Or.is(c.Type)){let d,p=g=>{let v=et(a.Value),x=et(c.Value);return!zo.is(v)||!zo.is(x)?Ye.create({node:e}):zo.create({node:e,literal:g(v,x)})};switch(e.operator){case"&&":d=()=>p((g,v)=>g.literal!=v.literal);break;case"||":d=()=>p((g,v)=>g.literal==v.literal);break}let h=d();return[{Type:o,Value:h},s]}let f=`${e.$type}: cannot apply operator '${e.operator}' between operands '${$e(a.Type)}' and '${$e(c.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:f})])]}if(p9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.condition),[c,l]=cr(t,e.trueExpr),[f,d]=cr(t,e.falseExpr);if(s=s.concat(u).concat(l).concat(d),Or.is(a.Type)&&(Jt.is(c.Type)&&Jt.is(f.Type)||tr.is(c.Type)&&tr.is(f.Type)||Or.is(c.Type)&&Or.is(f.Type))){let h=et(a.Value);if(!zo.is(h))return[{Type:o,Value:Ye.create({node:e})},s];let g=h.literal?et(c.Value):et(f.Value);return[{Type:o,Value:g},s]}let p=`${e.$type}: cannot apply ternary operator with condition type '${$e(a.Type)}' and branch types '${$e(c.Type)}' and '${$e(f.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:p})])]}if(a9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.target);if(s=s.concat(u),tr.is(a.Type)){let l,f=p=>{let h=et(a.Value);return Un.is(h)?Un.create({node:e,literal:p(h)}):Ye.create({node:e})};switch(e.operator){case"++":l=()=>f(p=>p.literal+1);break;case"--":l=()=>f(p=>p.literal-1);break}let d=l();return[{Type:o,Value:d},s]}let c=`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${$e(a.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:c})])]}if(h9(e)){let[o,s]=t.infer(e),[a,u]=cr(t,e.left);s=s.concat(u);let c;if(tr.is(a.Type)){let f=d=>{let p=et(a.Value);return Un.is(p)?Un.create({node:e,literal:d(p)}):Ye.create({node:e})};switch(e.operator){case"+":c=()=>f(d=>d.literal);break;case"-":c=()=>f(d=>-d.literal);break}}if(Or.is(a.Type)){let f=d=>{let p=et(a.Value);return zo.is(p)?zo.create({node:e,literal:d(p)}):Ye.create({node:e})};switch(e.operator){case"!":c=()=>f(d=>!d.literal);break}}if(c!==void 0){let f=c();return[{Type:o,Value:f},s]}let l=`${e.$type}: cannot apply operator '${e.operator}' to operand of type '${$e(a.Type)}'`;return[{Value:$t(t,e),Type:o},s.concat([Le.create({node:e,message:l})])]}if(M0(e)){let[o,s]=t.infer(e),a=Un.create({node:e,literal:e.value});return[{Type:o,Value:a},s]}if(F0(e)){let[o,s]=t.infer(e),a=yt.create({node:e,literal:e.value});return[{Type:o,Value:a},s]}if(N0(e)){let[o,s]=t.infer(e),a=zo.create({node:e,literal:e.value==="true"});return[{Type:o,Value:a},s]}if(j0(e))return qZe(t,e);if(Fo(e)){let o=xS(e).value.ref;if(o===void 0)return[{Value:$t(t,e),Type:kr.create({node:e})},[Le.create({node:e,message:"unresolved reference"})]];if(bo(o)||hs(o)||ms(o)||lf(o))return UZe(t,e,o);let s=()=>cr(t,o);if(t.resolver){let[f,d]=[e,s];s=()=>t.resolver(f,d)}let[{Value:a,Type:u},c]=s();return[{Value:Qs.create({node:e,ref:a}),Type:u},c]}if(o9(e))return NZe(t,e);if(vm(e)||ym(e))return[{Value:$t(t,e),Type:kr.create({node:e})},[Le.create({node:e,message:"illegal expression: using type as value"})]];let r=`${e.$type}: unable to evaluate expression`;return[{Value:$t(t,e),Type:kr.create({node:e})},[Le.create({node:e,message:r})]]}function NZe(t,e){let[r,n]=t.infer(e);if(Zr.is(r))return MZe(t,e);if(pf.is(r)||Kd.is(r))return LZe(t,e);let i=`${e.$type}: illegal call to ${$e(r)}`;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:i})])]}function LZe(t,e){let[r,n]=t.infer(e);if(e.arguments.length!==1){let l=`${e.$type}: expected 1 argument on cast to '${$e(r)}`;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:l})])]}let i=e.arguments[0],o;[o,n]=cr(t,i);let s=et(o.Value);if(Ye.is(s))return[{Value:Ye.create({node:e}),Type:r},n];let[a,u]=[o.Type,r],c;return Dx({assignable:t.assignable,listeners:{construct(l){c=za.create({node:e,to:r,from:s,result:ws.create({node:e,definition:l,inner:s})})},extract(){(0,Ha.default)(ws.is(s)),c=za.create({node:e,to:r,from:s,result:te(C({},s.inner),{node:e})})},noop(){c=s},fail(){c=$t(t,e);let l=`${e.$type}: cannot convert '${$e(o.Type)}' to '${$e(r)}'`;n=n.concat([Le.create({node:e,message:l})])}}},a,u),(0,Ha.default)(c!==void 0),[{Value:c,Type:r},n]}function MZe(t,e){let[r,n]=t.infer(e);if((0,Ha.default)(Zr.is(r)),n.length)return[{Value:$t(t,e),Type:r},n];let i=kS(t.svcs,r),o=jZe[i];if(o!==void 0)return o(t,e);let s=`${e.$type}: unknown call to ${$e(r)}`;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:s})])]}var jZe={[wo.strconv.Format]:qfe,[wo.strconv.JSON]:Ufe,[wo.strconv.Concat]:zfe,[wo.strconv.Join]:Bfe,[wo.io.Open]:jfe},FZe=/(\d+)(\w+)/;function qZe(t,e){let[r,n]=t.infer(e),i=FZe.exec(e.value);if(i===null){let l=`invalid sized literal '${e.value}'`;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:l})])]}let[,o,s]=i,a=Number.parseInt(o,10);if(!Number.isInteger(a)){let l=`invalid sized literal '${e.value}': not an integer (${a})`;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:l})])]}let u=Uo.safeParse({size:a,unit:s});if(!u.success){let l=u.error.message;return[{Value:$t(t,e),Type:r},n.concat([Le.create({node:e,message:l})])]}let c=Oe.create({node:e,parameters:{size:Ua.create({node:e,value:Un.create({node:e,literal:u.data.size})}),unit:Ua.create({node:e,value:yt.create({node:e,literal:u.data.unit})})}});return[{Type:r,Value:c},n]}function UZe(t,e,r){if(!t.current)return[{Value:$t(t,r),Type:kr.create({node:e})},[Le.create({node:e,message:"unknown artifact in current context"})]];if(bo(t.current))return zZe(t,r);if(ms(t.current))return BZe(t,e,r);let n=`invalid artifact factory source: ${e.$type}`;return[{Value:$t(t,r),Type:kr.create({node:e})},[Le.create({node:e,message:n})]]}function zZe(t,e){var b,y,w,k,N,E,j,I;let r=t.current;(0,Ha.default)(r!==void 0),(0,Ha.default)(bo(r));let n=[],i=Vfe(t,r,e),o=te(C({},t),{resolver:i,cache:new Hb(t.cache)}),[{Value:s,Type:a},u]=cr(o,e);if(n=n.concat(u),!we.is(a)){let U=`unexpected artifact type: ${$e(a)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:r,message:U})])]}let c=(y=(b=a.parameters.config)==null?void 0:b.value)!=null?y:we.closed();if(c===void 0)return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:a.node,message:"missing parameter 'config'"})])];if(!we.is(c)){let U=`unexpected type: expected struct but found ${$e(a)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:c.node,message:U})])]}let l=(k=(w=a.parameters.resource)==null?void 0:w.value)!=null?k:we.closed();if(l===void 0)return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:a.node,message:"missing parameter 'resource'"})])];if(!we.is(l)){let U=`unexpected type: expected struct but found ${$e(a)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:l.node,message:U})])]}let[f,d]=t.infer(r);if(n=n.concat(d),!we.is(f)){let U=`unexpected artifact type: ${$e(f)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:r,message:U})])]}let p=(E=(N=f.parameters.config)==null?void 0:N.value)!=null?E:we.closed();if(p===void 0)return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:r,message:"missing parameter 'config'"})])];if(!we.is(p)){let U=`unexpected type: expected struct but found ${$e(f)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:p.node,message:U})])]}let h=(I=(j=f.parameters.resource)==null?void 0:j.value)!=null?I:we.closed();if(h===void 0)return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:r,message:"missing parameter 'resource'"})])];if(!we.is(h)){let U=`unexpected type: expected struct but found ${$e(f)}`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:h.node,message:U})])]}let g=t.assignable(p,c);if(J.isErr(g))return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:p.node||r,message:"TODO: assignability issue message"})])];let v=t.assignable(h,l);if(J.isErr(v)){(0,Ha.default)(we.is(v.err[0].from)&&we.is(v.err[0].to));let U=Object.keys(v.err[0].to.parameters),O=Object.keys(v.err[0].from.parameters),M=`invalid resource assignment: valid values are [${U.join(", ")}], while provided values are [${O.join(", ")}]`;return[{Value:$t(t,r),Type:a},n.concat([Le.create({node:p.node||r,message:M})])]}return[{Value:(()=>{var K,Q,Y,H,se,ie;let U=du(et(s));if(Ye.is(U))return Ye.create({node:r});if(!Oe.is(U))return Ye.create({node:r});let O=Oe.create({node:r,parameters:{}}),M=ip(r,"config");if(je.isSome(M)){let[{Value:ke}]=cr(t,M.value);O=et(ke)}if(!Oe.is(O))return Ye.create({node:r});let $=(Q=(K=U.parameters.config)==null?void 0:K.value)!=null?Q:Oe.create({node:r,parameters:{}});if($===void 0||!Oe.is($))return Ye.create({node:r});U.parameters.config=Ua.create({node:(Y=U.parameters.config)==null?void 0:Y.node,value:s_(O,$)});let L=Oe.create({node:r,parameters:{}}),q=ip(r,"resource");if(je.isSome(q)){let[{Value:ke}]=cr(t,q.value);L=et(ke)}if(!Oe.is(L))return Ye.create({node:r});let B=(se=(H=U.parameters.resource)==null?void 0:H.value)!=null?se:Oe.create({node:r,parameters:{}});return B===void 0||!Oe.is(B)?Ye.create({node:r}):(U.parameters.resource=Ua.create({node:(ie=U.parameters.resource)==null?void 0:ie.node,value:s_(L,B)}),U)})(),Type:a},n]}function BZe(t,e,r){var y,w,k,N,E,j,I,U;let n=t.current;(0,Ha.default)(n!==void 0),(0,Ha.default)(ms(n));let i=[],o=Vfe(t,n,e),s=te(C({},t),{resolver:o,cache:new Hb(t.cache)}),[{Value:a,Type:u},c]=cr(s,r);if(i=i.concat(c),!we.is(u)){let O=`unexpected artifact type: ${$e(u)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:n,message:O})])]}let l=(w=(y=u.parameters.config)==null?void 0:y.value)!=null?w:we.closed();if(l===void 0)return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:u.node,message:"missing parameter 'config'"})])];if(!we.is(l)){let O=`unexpected type: expected struct but found ${$e(u)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:l.node,message:O})])]}let f=(N=(k=u.parameters.resource)==null?void 0:k.value)!=null?N:we.closed();if(f===void 0)return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:u.node,message:"missing parameter 'resource'"})])];if(!we.is(f)){let O=`unexpected type: expected struct but found ${$e(u)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:f.node,message:O})])]}n=tt.getContainerOfType(e,gs),(0,Ha.default)(n!==void 0);let[d,p]=t.infer(n);if(i=i.concat(p),!we.is(d)){let O=`unexpected artifact type: ${$e(d)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:n,message:O})])]}let h=(j=(E=d.parameters.config)==null?void 0:E.value)!=null?j:we.closed();if(h===void 0)return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:n,message:"missing parameter 'config'"})])];if(!we.is(h)){let O=`unexpected type: expected struct but found ${$e(d)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:h.node,message:O})])]}let g=(U=(I=d.parameters.resource)==null?void 0:I.value)!=null?U:we.closed();if(g===void 0)return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:n,message:"missing parameter 'resource'"})])];if(!we.is(g)){let O=`unexpected type: expected struct but found ${$e(d)}`;return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:g.node,message:O})])]}let v=t.assignable(h,l);if(J.isErr(v))return[{Value:$t(t,n),Type:u},i.concat([Le.create({node:h.node||n,message:"TODO: assignability issue message"})])];let x=t.assignable(g,f);return J.isErr(x)?[{Value:$t(t,n),Type:u},i.concat([Le.create({node:h.node||n,message:"TODO: assignability issue message"})])]:[{Value:(()=>{var Q,Y,H,se,ie,ke;let O=du(et(a));if(Ye.is(O))return Ye.create({node:n});if(!Oe.is(O))return Ye.create({node:n});let M=Oe.create({node:n,parameters:{}}),$=ip(n,"config");if(je.isSome($)){let[{Value:ce}]=cr(t,$.value);M=et(ce)}if(!Oe.is(M))return Ye.create({node:n});let L=(Y=(Q=O.parameters.config)==null?void 0:Q.value)!=null?Y:Oe.create({node:n,parameters:{}});if(L===void 0||!Oe.is(L))return Ye.create({node:n});O.parameters.config=Ua.create({node:(H=O.parameters.config)==null?void 0:H.node,value:s_(M,L)});let q=Oe.create({node:n,parameters:{}}),B=ip(n,"resource");if(je.isSome(B)){let[{Value:ce}]=cr(t,B.value);q=et(ce)}if(!Oe.is(q))return Ye.create({node:n});let K=(ie=(se=O.parameters.resource)==null?void 0:se.value)!=null?ie:Oe.create({node:n,parameters:{}});return K===void 0||!Oe.is(K)?Ye.create({node:n}):(O.parameters.resource=Ua.create({node:(ke=O.parameters.resource)==null?void 0:ke.node,value:s_(q,K)}),O)})(),Type:u},i]}function s_(t,e){var n,i;let r=C({},e.parameters);for(let o of Object.keys(r)){let s=(n=r[o])==null?void 0:n.value;(0,Ha.default)(s!==void 0);let a=(i=t.parameters[o])==null?void 0:i.value;if(a===void 0)continue;let u;Oe.is(s)&&Oe.is(a)?u=s_(a,s):u=a,r[o]=Ua.create({node:s.node,value:u})}return Oe.create({node:e.node,parameters:r})}function ip(t,e){if(gs(t)){let n=t.entries.find(i=>i.key===e);return je.fromNullable(n)}let r=t.body.stmt.filter(si).find(n=>n.key===e);return je.fromNullable(r)}var $t=(t,e)=>Ye.create({node:e}),et=t=>Qs.is(t)?et(t.ref):za.is(t)||Tc.is(t)?et(t.result):t;function sn(t,e,...r){var i;let n=(i=t.parameters[e])==null?void 0:i.value;return n===void 0?Vt:r.length===0?Vr(et(n)):Oe.is(n)?sn(n,...r):Vt}function VZe(t,e){return Oe.create({node:e.node,parameters:C(C({},t.parameters),e.parameters)})}var bk=()=>Ke(void 0);function op(t,e){if(e=t.node||e,ws.is(t))return op(t.inner,e);if(pu.is(t))return bk();if(Oe.is(t)){let n=Object.values(t.parameters).filter(i=>i!==void 0).map(i=>op(i.value,e)).filter(i=>J.isErr(i)).map(i=>i.err).flat();return n.length?be(n):bk()}if(_i.is(t)){let n=Object.values(t.items).map(i=>op(i.value,e)).filter(i=>J.isErr(i)).map(i=>i.err).flat();return n.length?be(n):bk()}if(Tc.is(t)){let n=t.params.map(i=>op(i.value,e)).filter(i=>J.isErr(i)).map(i=>i.err).flat();return n.length?be(n):bk()}if(Qs.is(t))return op(t.ref,e);if(za.is(t))return op(t.from,e);let r=Pc.create({node:e,message:`incomplete value: ${_s(t)}`});return be([r])}var _k=class{constructor(e){this.svcs=e}NewContext(){return{EvalCache:new mn(this.svcs.shared),InferenceCache:new mn(this.svcs.shared),AssignableCache:new mn(this.svcs.shared)}}Infer(e,r){return Ct({svcs:this.svcs,cache:e.InferenceCache,assignable:(n,i)=>this.Assignable(e,n,i)},r)}Assignable(e,r,n){return Ma({svcs:this.svcs,cache:HZe(this.svcs.shared,e.AssignableCache)},r,n)}Eval(e,r){return vk({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 op(e,r)}};function HZe(t,e){return{get:(r,n)=>{let i=e.get(r);return i===void 0&&(i=new mn(t),e.set(r,i)),i.get(n)},set:(r,n,i)=>{let o=e.get(r);o===void 0&&(o=new mn(t),e.set(r,o)),o.set(n,i)}}}var WZe=[rn.$type,Kr.$type,vo.$type,Vi.$type],Wfe=()=>WZe.map(t=>[t,GZe]);function GZe(){return(t,e)=>{var i,o;let r=(o=(i=t.$cstNode)==null?void 0:i.root.fullText)!=null?o:"";if(r.length===0)return;let n=0;for(let s of r)if(s==="{")n++;else if(s==="}"&&(n--,n<0)){e("error",'Unmatched closing curly brace "}" found',{node:t});return}if(n>0){e("error",'Unmatched opening curly brace "{" found',{node:t});return}}}var Gfe=Me(require("assert"),1),wk=()=>Ke(void 0);function wf(t,e){var n,i;if(e=t.node||e,Fo(e)){(0,Gfe.default)(si((n=t.node)==null?void 0:n.$container));let o=Pc.create({node:e,message:`invalid type definition of field \`${(i=t.node)==null?void 0:i.$container.key}\`, did you forget to use ':'?`});return be([o])}if(ws.is(t))return wf(t.inner,e);if(pu.is(t))return wk();if(Oe.is(t)){let o=Object.values(t.parameters).filter(s=>s!==void 0).filter(s=>{let a=s.node;return!a||!si(a)||a.value!==void 0}).map(s=>wf(s.value,e)).filter(s=>J.isErr(s)).map(s=>s.err).flat();return o.length?be(o):wk()}if(_i.is(t)){let o=Object.values(t.items).map(s=>wf(s.value,e)).filter(s=>J.isErr(s)).map(s=>s.err).flat();return o.length?be(o):wk()}if(Tc.is(t)){let o=t.params.map(s=>wf(s.value,e)).filter(s=>J.isErr(s)).map(s=>s.err).flat();return o.length?be(o):wk()}if(Qs.is(t))return wf(t.ref,e);if(za.is(t))return wf(t.from,e);let r=Pc.create({node:e,message:`incomplete value: ${_s(t)}`});return be([r])}var KZe=[rn.$type,Kr.$type,vo.$type],Kfe=()=>KZe.map(t=>[t,ZZe]);function ZZe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{if(!tt.getDocument(r).uri.path.endsWith(".h.kumori"))return;let s=t.ctx(),[{Value:a}]=e.Eval(s,r);if(!Oe.is(a))return;let c=Object.entries(a.parameters).filter(([d])=>!["config","resource"].includes(d));for(let[,d]of c){if(d===void 0)continue;let p=e.Complete(d.value,r);if(J.isErr(p))for(let h of p.err)n("error",`completeness error: ${h.message}`,{node:h.node})}let l=Object.entries(a.parameters).find(([d])=>d==="config");if(l&&l[1]){let d=l[1],p=wf(d.value,r);if(J.isErr(p))for(let h of p.err)n("error",`completeness error: ${h.message}`,{node:h.node})}let f=Object.entries(a.parameters).find(([d])=>d==="resource");if(f&&f[1]){let d=f[1],p=wf(d.value,r);if(J.isErr(p))for(let h of p.err)n("error",`completeness error: ${h.message}`,{node:h.node})}}}var JZe=[rn.$type,Kr.$type,vo.$type],Zfe=()=>JZe.map(t=>[t,XZe]);function XZe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{if(!tt.getDocument(r).uri.path.endsWith(".h.kumori"))return;let s=t.ctx(),[a]=e.Infer(s,r);if(!we.is(a))return;let u=Object.entries(a.parameters).find(([l])=>l==="resource");if(u===void 0)return;let c=u[1];if(c!==void 0&&we.is(c.value))for(let l of Object.values(c.value.parameters)){let f=l==null?void 0:l.node;l!==void 0&&f!==void 0&&si(f)&&f.value!==void 0&&n("error","resources cannot have default values",{node:f})}}}var YZe=[rn.$type,Kr.$type,vo.$type],Jfe=()=>YZe.map(t=>[t,QZe]);function QZe(){return(t,e)=>{var s,a,u;if(tt.getDocument(t).uri.path.endsWith(".h.kumori"))return;let i=t.name.value.ref;if(i===void 0)return;let o=c=>{switch(c.$type){case rn.$type:return"component";case Kr.$type:return"service";case vo.$type:return"builtin";default:return c.$type}};if(i.$type!==t.$type){let c=`invalid implementation: ${o(t)} ${t.name.value.$refText} cannot implement ${o(i)} ${(u=(a=(s=i==null?void 0:i.name)==null?void 0:s.value)==null?void 0:a.$refText)!=null?u:"<unknown>"}`;e("error",c,{node:t.name})}}}var yy=Me(Na(),1);function vy(t,e){var o;let r=tt.getDocument(t).uri,n=((o=t.$cstNode)==null?void 0:o.range)||yy.Range.create({line:0,character:0},{line:0,character:0}),i=yy.Location.create(r.toString(),n);return yy.DiagnosticRelatedInformation.create(i,e)}function Ni(t,e){let r={node:t.from.node||e};return t.to.node&&(r.relatedInformation=[vy(t.to.node,"not assignable")]),r}var eJe=[Vd.$type],Xfe=()=>eJe.map(t=>[t,tJe]);function tJe(t){let e=new mn(t.svcs.shared),r=new mn(t.svcs.shared);return(n,i)=>{let o=tt.getDocument(n),s=o.uri.path.endsWith(".h.kumori"),a;s?a=e:a=r;let u=o.uri,c=me.dirname(u),l=(n.artifacts||[]).map(f=>bo(f)?void 0:f).filter(f=>f!==void 0);for(let f of l){let d=f.name.value,p=me.joinPath(c,"#",d.$refText).toString(),h=a.get(p);h!==void 0?(i("error",`illegal artifact declaration: name '${d}' used multiple times`,{node:f.name,relatedInformation:[vy(h.name,`artifact '${d}' declared here`)]}),i("error",`illegal artifact declaration: name '${d}' used multiple times`,{node:h.name,relatedInformation:[vy(f.name,`artifact '${d}' declared here`)]})):a.set(p,f)}}}var Yfe=Me(require("assert"),1);var rJe=[vo.$type],Qfe=()=>rJe.map(t=>[t,nJe]);function nJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let o=r.GetPackage(ai.Kumori);(0,Yfe.default)(J.isOk(o));let s=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(o.value.docs.map(p=>p.uri.toString()))).toArray().find(p=>p.name==="builtin");if(!s||!s.node){i("error","builtin type definition not found",{node:n});return}let a=t.ctx(),[u,c]=e.Infer(a,s.node);for(let p of c)i("error",`type error: ${p.message}`,{node:p.node});let[l,f]=e.Infer(a,n);for(let p of f)tt.getContainerOfType(p.node,h=>h===n)&&i("error",`type error: ${p.message}`,{node:p.node});if(f.length>0||c.length>0)return;let d=e.Assignable(a,l,u);if(J.isErr(d))for(let p of d.err){let h=Ni(p,n);i("error",`type error: ${p.cause}`,h)}}}var ede=Me(require("assert"),1);function xo(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),o=parseInt(r[3],10),s=r[4]?r[4].split("."):null,a=r[5]?r[5].split("."):null;return{$tag:"semver",major:n,minor:i,patch:o,prerelease:s,buildmetadata:a,toString(){return oJe(this)}}}(function(t){t.Compare=sJe,t.Parse=e=>J.tryCatch(()=>t(e)),t.Is=e=>iJe(e)})(xo||(xo={}));function iJe(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 oJe(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 sJe(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],o=e.prerelease[n],s=/^\d+$/.test(i),a=/^\d+$/.test(o);if(s&&a){let u=parseInt(i,10),c=parseInt(o,10);if(u!==c)return u-c}else{if(s&&!a)return-1;if(!s&&a)return 1;{let u=i.localeCompare(o);if(u!==0)return u}}}return t.prerelease.length-e.prerelease.length}return 0}var aJe=[vo.$type],tde=()=>aJe.map(t=>[t,cJe]);function cJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var c,l;let i=t.ctx(),[{Value:o}]=e.Eval(i,r);if(!Oe.is(o))return;let s=(c=o.parameters.id)==null?void 0:c.value;if(!s||!Oe.is(s))return;let a=(l=s.parameters.version)==null?void 0:l.value;if(!a||(a=et(a),!yt.is(a)))return;let u=xo.Parse(a.literal);if(J.isErr(u)){(0,ede.default)(a.node);let f=`invalid semantic version string: ${a.literal}`;n("error",f,{node:a.node});return}}}var rde=Me(require("assert"),1);var uJe=[rn.$type],nde=()=>uJe.map(t=>[t,lJe]);function lJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(tt.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(ai.Kumori);(0,rde.default)(J.isOk(a));let u=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(!u||!u.node){i("error","component type definition not found",{node:n});return}let c=t.ctx(),[l,f]=e.Infer(c,u.node);for(let g of f)i("error",`type error: ${g.message}`,{node:g.node});let[d,p]=e.Infer(c,n);for(let g of p)tt.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(p.length>0||f.length>0)return;let h=e.Assignable(c,d,l);if(J.isErr(h))for(let g of h.err){let v=Ni(g,n);i("error",`type error: ${g.cause}`,v)}}}var ide=Me(require("assert"),1);var fJe=[rn.$type],ode=()=>fJe.map(t=>[t,dJe]);function dJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(!tt.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(ai.Kumori);(0,ide.default)(J.isOk(a));let u=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(!u||!u.node){i("error","component interface type definition not found",{node:n});return}let c=t.ctx(),[l,f]=e.Infer(c,u.node);for(let g of f)i("error",`type error: ${g.message}`,{node:g.node});let[d,p]=e.Infer(c,n);for(let g of p)tt.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(p.length>0||f.length>0)return;let h=e.Assignable(c,d,l);if(J.isErr(h))for(let g of h.err){let v=Ni(g,n);i("error",`type error: ${g.cause}`,v)}}}var ks=(t,e)=>V.object({$type:V.string(),value:e}),sde=(t,e)=>`${ze.parse(t).toString()}@${e}`;function ade(t,...e){return((...r)=>t(...e,...r))}var Vo=ade(sde,ai.Kumori.toString());var UF=Vo("Ephemeral"),zF=ks(UF,Uo),BF=Vo("Persistent"),VF=ks(BF,V.string()),BJt=V.union([zF,VF]),HF=Vo("Volatile"),WF=ks(HF,Uo),GF=Vo("Persisted"),KF=ks(GF,Uo),ZF=Vo("NonReplicated"),JF=ks(ZF,Uo),pJe=V.union([WF,KF,JF]),XF=Vo("Registered"),YF=ks(XF,V.string()),VJt=Vo("Volume"),hJe=V.union([pJe,YF]),a_=Vo("CA"),QF=ks(a_,V.string()),c_=Vo("Certificate"),eq=ks(c_,V.string()),by=Vo("Secret"),tq=ks(by,V.string()),u_=Vo("Domain"),rq=ks(u_,V.string()),l_=Vo("Port"),nq=ks(l_,V.string()),Sf=V.union([hJe,QF,eq,tq,rq,nq]);var sp=Me(require("assert"),1),mJe=[rn.$type],cde=()=>mJe.map(t=>[t,gJe]);function gJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:o,Type:s},a]=e.Eval(i,r);if(a.length||!Oe.is(o)||!we.is(s))return;let u=[],c=zD(s,"resource");if(je.isSome(c)&&we.is(c.value))for(let[f,d]of Object.entries(c.value.parameters))d!==void 0&&(!qn.is(d.value)&&!La.is(d.value)||u.push([f,d.value]));let l=sn(o,"code");if(!(je.isNone(l)||!Oe.is(l.value)))for(let f of Object.values(l.value.parameters).filter(d=>d!==void 0)){if(!Oe.is(f.value))continue;let d=sn(f.value,"env");if(je.isNone(d)||!Oe.is(d.value))continue;for(let h of Object.values(d.value.parameters).filter(g=>g!==void 0)){if(!Oe.is(h.value))continue;let g=sn(h.value,"secret");if(je.isNone(g)||!yt.is(g.value))continue;let v=g.value.literal;u.filter(([b])=>b===v).filter(([,b])=>qn.is(b)&&b.meta.id===by).length===0&&((0,sp.default)(g.value.node),n("error",`undefined secret: '${v}'`,{node:g.value.node}))}let p=sn(f.value,"fs");if(!(je.isNone(p)||!Oe.is(p.value)))for(let h of Object.values(p.value.parameters).filter(g=>g!==void 0)){if(!Oe.is(h.value))continue;let g=sn(h.value,"volume");if(je.isSome(g)&&yt.is(g.value)){let k=g.value.literal;u.filter(([E])=>E===k).length===0&&((0,sp.default)(g.value.node),n("error",`undefined volume: '${k}'`,{node:g.value.node}))}let v=sn(h.value,"secret");if(je.isSome(v)&&yt.is(v.value)){let k=v.value.literal;u.filter(([E])=>E===k).filter(([,E])=>qn.is(E)&&E.meta.id===by).length===0&&((0,sp.default)(v.value.node),n("error",`undefined secret: '${k}'`,{node:v.value.node}))}let x=sn(h.value,"certificate");if(je.isSome(x)&&yt.is(x.value)){let k=x.value.literal;u.filter(([E])=>E===k).filter(([,E])=>qn.is(E)&&E.meta.id===c_).length===0&&((0,sp.default)(x.value.node),n("error",`undefined certificate: '${k}'`,{node:x.value.node}))}let b=sn(h.value,"port");if(je.isSome(b)&&yt.is(b.value)){let k=b.value.literal;u.filter(([E])=>E===k).filter(([,E])=>qn.is(E)&&E.meta.id===l_).length===0&&((0,sp.default)(b.value.node),n("error",`undefined port: '${k}'`,{node:b.value.node}))}let y=sn(h.value,"domain");if(je.isSome(y)&&yt.is(y.value)){let k=y.value.literal;u.filter(([E])=>E===k).filter(([,E])=>qn.is(E)&&E.meta.id===u_).length===0&&((0,sp.default)(y.value.node),n("error",`undefined domain: '${k}'`,{node:y.value.node}))}let w=sn(h.value,"ca");if(je.isSome(w)&&yt.is(w.value)){let k=w.value.literal;u.filter(([E])=>E===k).filter(([,E])=>qn.is(E)&&E.meta.id===a_).length===0&&((0,sp.default)(w.value.node),n("error",`undefined ca: '${k}'`,{node:w.value.node}))}}}}}var yJe=[rn.$type],ude=()=>yJe.map(t=>[t,vJe]);function vJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:o},s]=e.Eval(i,r);if(s.length||!Oe.is(o))return;let a=sn(o,"code");if(je.isNone(a)||!Oe.is(a.value))return;let u=0;for(let d of Object.values(a.value.parameters).filter(p=>p!==void 0)){if(!Oe.is(d.value))continue;let p=sn(d.value,"size");je.isNone(p)||!Un.is(p.value)||(u+=p.value.literal)}let c=sn(o,"size");if(je.isNone(c)||!Oe.is(c.value))return;let l=sn(c.value,"mincpu");if(je.isNone(l)||!Oe.is(l.value))return;let f=sn(l.value,"size");je.isNone(f)||!Un.is(f.value)||f.value.literal<u&&n("error",`Component ${r.name.value.$refText} mincpu (${f.value.literal}) is less than the sum of its containers' mincpu (${u}).`,{node:r})}}function Sk(t){let[e,...r]=t.split("/");return r.length===0?be(`invalid OCI image name: '${t}'`):Ke({tag:r.join("/"),hub:e})}var bJe=[rn.$type],lde=()=>bJe.map(t=>[t,_Je]);function _Je(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:o},s]=e.Eval(i,r);if(s.length||!Oe.is(o))return;let a=sn(o,"code");if(!(je.isNone(a)||!Oe.is(a.value)))for(let u of Object.values(a.value.parameters)){if(!u||!Oe.is(u.value))continue;let c=sn(u.value,"image");if(je.isNone(c))continue;let l=c.value.node||r,f=e.Complete(c.value,l);if(J.isErr(f)){n("error","incomplete image string",{node:l});continue}if(!yt.is(c.value))continue;let d=Sk(c.value.literal);if(J.isErr(d)){n("error",d.err,{node:l}),n("hint",`The expected format of an OCI image string is: "<host>/<name>:<tag>".
|
|
395
395
|
For example, "docker.io/alpine:3"`,{node:l});continue}}}}var wJe=[rn.$type],fde=()=>wJe.map(t=>[t,SJe]);function SJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:o},s]=e.Eval(i,r);if(s.length||!Oe.is(o))return;let a=sn(o,"code");if(je.isNone(a)||!Oe.is(a.value))return;let u=sn(o,"probe");if(je.isNone(u)||!Oe.is(u.value))return;let c=new Set(Object.keys(a.value.parameters)),l=new Set(Object.keys(u.value.parameters));for(let f of l)c.has(f)||n("error",`Probe "${f}" does not refer to any existing container. Existing containers are: ${[...c].map(d=>`"${d}"`).join(", ")}`,{node:r})}}var dde=Me(require("assert"),1);var xJe=[Vi.$type],pde=()=>xJe.map(t=>[t,kJe]);function kJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let o=r.GetPackage(ai.Kumori);(0,dde.default)(J.isOk(o));let s=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(o.value.docs.map(p=>p.uri.toString()))).toArray().find(p=>"name"in p&&p.name==="deployment");if(!s||!s.node){i("error","deployment type definition not found",{node:n});return}let a=t.ctx(),[u,c]=e.Infer(a,s.node);for(let p of c)i("error",`type error: ${p.message}`,{node:p.node});let[l,f]=e.Infer(a,n);for(let p of f)tt.getContainerOfType(p.node,h=>h===n)&&i("error",`type error: ${p.message}`,{node:p.node});let d=e.Assignable(a,l,u);if(J.isErr(d)){for(let p of d.err){let h=Ni(p,n);i("error",`type error: ${p.cause}`,h)}return}}}var hde=Me(require("assert"),1);var EJe=[Vi.$type],mde=()=>EJe.map(t=>[t,$Je]);function $Je(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let[{Value:i}]=e.Eval(t.ctx(),r);if(Oe.is(i))for(let[o,s]of Object.entries(i.parameters)){if((0,hde.default)(s!==void 0),o==="artifact")continue;let a=e.Complete(s.value,r);if(J.isErr(a))for(let u of a.err)n("error",`completeness error: ${u.message}`,{node:u.node})}}}var gde=Me(require("assert"),1);var TJe=[Vi.$type],yde=()=>TJe.map(t=>[t,PJe]);function PJe(t){let e=t.svcs.references.KumoriPackages;return(r,n)=>{let i=e.GetPackage(r);(0,gde.default)(J.isOk(i));let o=i.value.docs.flatMap(s=>tt.streamAst(s.parseResult.value).filter(bo).filter(a=>a!==r).toArray());if(o.length>0){let s={node:r};s.relatedInformation=o.map(a=>vy(a,"another deployment was found here")),n("error",`error: package ${i.value.name} (${i.value.uri.toString()}) contains too many deployments`,{node:r})}}}var RJe=[Vi.$type],vde=()=>RJe.map(t=>[t,CJe]);function CJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var l,f,d,p;let[i]=e.Infer(t.ctx(),r);if(!we.is(i))return;let o=(f=(l=i.parameters.artifact)==null?void 0:l.value)==null?void 0:f.node;if(!o)return;let[s]=e.Infer(t.ctx(),o);if(!we.is(s))return;let a=(d=i.parameters.config)==null?void 0:d.value,u=(p=s.parameters.config)==null?void 0:p.value;if(!a||!u)return;let c=e.Assignable(t.ctx(),a,u);if(!J.isOk(c))for(let h of c.err){let g=Ni(h,r);n("error",`type error: ${h.cause}`,g)}}}var AJe=[Vi.$type],bde=()=>AJe.map(t=>[t,OJe]);function OJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var l,f,d,p;let[i]=e.Infer(t.ctx(),r);if(!we.is(i))return;let o=(f=(l=i.parameters.artifact)==null?void 0:l.value)==null?void 0:f.node;if(!o)return;let[s]=e.Infer(t.ctx(),o);if(!we.is(s))return;let a=(d=i.parameters.resource)==null?void 0:d.value,u=(p=s.parameters.resource)==null?void 0:p.value;if(!a||!u)return;let c=e.Assignable(t.ctx(),a,u);if(!J.isOk(c))for(let h of c.err){let g=Ni(h,r);n("error",`type error: ${h.cause}`,g)}}}var _de=Me(require("assert"),1),IJe=[Vi.$type],wde=()=>IJe.map(t=>[t,DJe]);function DJe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{let i=t.ctx(),[{Value:o},s]=e.Eval(i,r);if(s.length||!Oe.is(o))return;let a=sn(o,"scale");if(!a||!je.isSome(a))return;let u=sn(o,"artifact");if(u&&!(!je.isSome(u)||!u.value.node)){if(u.value.node.$type===rn.$type)(!Un.is(a.value)||a.value.literal<0)&&n("error","Deployment scale for Component artifacts must be a non-negative number.",{node:r});else if(u.value.node.$type===Kr.$type&&(Oe.is(a.value)||n("error","Deployment scale for Service artifacts must be a struct specifying the number of replicas for each role.",{node:r}),Oe.is(u.value)&&u.value.parameters.role&&Oe.is(u.value.parameters.role.value)&&Oe.is(a.value))){let c=Object.keys(u.value.parameters.role.value.parameters),l=Object.keys(a.value.parameters);for(let f of l)if(!c.includes(f))n("error",`Role "${f}" is not defined in the Service artifact. Available roles are: ${c.map(d=>`"${d}"`).join(", ")}.`,{node:r});else{let d=a.value.parameters[f];(0,_de.default)(d),(!Un.is(d.value)||d.value.literal<0)&&n("error",`The number of replicas for role "${f}" must be a non-negative number.`,{node:r})}}}}}var NJe=[A0.$type,O0.$type,hm.$type],Sde=()=>NJe.map(t=>[t,LJe]);function LJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{let[,o]=e.Infer(r,n);for(let s of o)i("error",`type error: ${s.message}`,{node:s.node})}}var MJe=[z4.$type,mm.$type],xde=()=>MJe.map(t=>[t,jJe]);function jJe(){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 kde=Me(require("assert"),1);var FJe=[Kr.$type],Ede=()=>FJe.map(t=>[t,qJe]);function qJe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{let o=r.GetPackage(ai.Kumori);(0,kde.default)(J.isOk(o));let s=t.svcs.shared.workspace.IndexManager.allElements(void 0,new Set(o.value.docs.map(p=>p.uri.toString()))).toArray().find(p=>"name"in p&&p.name==="service");if(!s||!s.node){i("error","service type definition not found",{node:n});return}let a=t.ctx(),[u,c]=e.Infer(a,s.node);for(let p of c)i("error",`type error: ${p.message}`,{node:p.node});let[l,f]=e.Infer(a,n);for(let p of f)tt.getContainerOfType(p.node,h=>h===n)&&i("error",`type error: ${p.message}`,{node:p.node});if(f.length>0||c.length>0)return;let d=e.Assignable(a,l,u);if(J.isErr(d))for(let p of d.err){let h=Ni(p,n);i("error",`type error: ${p.cause}`,h)}}}var Qe=Me(require("assert"),1);var iq=V.union([V.literal("udp"),V.literal("tcp"),V.literal("http"),V.literal("grpc")]),UJe=iq,$de=V.union([iq,V.object({protocol:iq,port:V.number()})]),_y=V.object({client:V.object({}).catchall(UJe).optional(),server:V.object({}).catchall($de).optional(),duplex:V.object({}).catchall($de).optional()});var zJe=V.union([V.string(),V.object({data:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({secret:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({port:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({domain:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({certificate:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({ca:V.string(),mode:V.number(),format:V.enum(["text","json","yaml"]).optional()}),V.object({volume:V.string()})]),BJe=V.union([V.string(),V.number(),V.boolean(),V.object({secret:V.string()})]),VJe=V.object({hub:V.object({name:V.string(),secret:V.string().optional()}),tag:V.string()}),Tde=V.object({cmd:V.array(V.string()).optional(),image:V.union([V.string(),VJe]),entrypoint:V.array(V.string()).optional(),size:V.object({memory:Uo,cpu:Uo,mincpu:Uo}),env:V.object({}).catchall(BJe).optional(),fs:V.object({}).catchall(zJe).optional()}),Pde=V.object({port:V.number(),path:V.string()}),HJe=V.object({port:V.number()}),WJe=V.object({path:V.string()}),Rde=V.object({http:Pde.optional(),tcp:HJe.optional(),exec:WJe.optional()}),GJe=V.object({http:Pde.optional()}),KJe=V.object({unit:V.enum(["attempts","ms"]),duration:V.int().nonnegative(),probe:V.boolean()}),ZJe=V.object({protocol:V.object({}).catchall(Rde),startupGraceWindow:V.object({}).catchall(KJe).optional(),frequency:V.optional(V.any()),timeout:V.optional(V.int())}),JJe=V.object({protocol:V.object({}).catchall(Rde),frequency:V.optional(V.any()),timeout:V.optional(V.int())}),XJe=V.object({protocol:V.object({}).catchall(GJe)}),YJe=V.object({liveness:V.object({}).catchall(ZJe).optional(),readiness:V.object({}).catchall(JJe).optional(),pmetrics:V.object({}).catchall(XJe).optional()}),xk=V.object({srv:_y.optional(),config:V.object({}).catchall(V.any()).optional(),resource:V.object({}).catchall(Sf).optional(),code:V.object({}).catchall(Tde).optional(),init:V.array(Tde).optional(),size:V.object({bandwidth:Uo,minbandwidth:Uo,mincpu:Uo}),probe:V.object({}).catchall(YJe).optional()});var QJe=V.object({name:V.string(),kind:V.union([V.literal("service"),V.literal("component")]),domain:V.string(),module:V.string(),version:V.string()}),kk=V.object({id:QJe,srv:_y,config:V.record(V.string(),V.any()),resource:V.record(V.string(),Sf)});var eXe=V.object({config:V.record(V.string(),V.any()).optional(),resource:V.record(V.string(),Sf).optional(),meta:V.record(V.string(),V.any()).optional()}),tXe=eXe.extend({artifact:V.lazy(()=>V.union([xk,oq,kk]))}),wy=Vo("LoadBalancer"),rXe=ks(wy,V.object({from:V.union([V.object({target:V.string(),channel:V.string()}),V.array(V.object({target:V.string(),channel:V.string()}))]),to:V.union([V.object({target:V.string(),channel:V.string()}),V.array(V.object({target:V.string(),channel:V.string()}))]),meta:V.any().optional()})),nXe=V.object({target:V.string(),channel:V.string(),meta:V.any().optional()}),iXe=V.object({from:V.union([V.object({target:V.string(),channel:V.string()}),V.array(V.object({target:V.string(),channel:V.string()}))]),to:V.union([V.object({target:V.string(),channel:V.string()}),V.array(V.object({target:V.string(),channel:V.string()}))]),meta:V.any().optional()}),Sy=Vo("FullConnector"),oXe=ks(Sy,V.union([nXe,iXe])),sXe=V.union([rXe,oXe]),oq=V.object({srv:_y.optional(),config:V.record(V.string(),V.any()).optional(),resource:V.record(V.string(),Sf).optional(),role:V.record(V.string(),tXe).optional(),connect:V.record(V.string(),sXe).optional()});var aXe=[Kr.$type],Cde=()=>aXe.map(t=>[t,cXe]);function cXe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.ctx();return(n,i)=>{var p,h,g,v,x,b,y,w,k,N,E,j,I,U,O,M,$,L,q,B,K,Q,Y,H;let[{Value:o,Type:s},a]=e.Eval(r,n);if(a.length)return;(0,Qe.default)(Oe.is(o)&&we.is(s));let u=(p=o.parameters.connect)==null?void 0:p.value;if(!u)return;(0,Qe.default)(u&&Oe.is(u));let c=(h=s.parameters.role)==null?void 0:h.value;(0,Qe.default)(c&&we.is(c));let f=`[${Object.keys(c.parameters).join(", ")}]`,d=[];for(let se of Object.values(u.parameters)){let ie=se==null?void 0:se.value;(0,Qe.default)(ie),ie=et(ie),(0,Qe.default)(ws.is(ie)&&Oe.is(ie.inner));let ke=e.Complete(ie,n);if(J.isErr(ke))for(let ce of ke.err)i("error",`completeness error: ${ce.message}`,{node:ce.node});switch(ie.definition.meta.id){case wy:{let ce=(g=ie.inner.parameters.from)==null?void 0:g.value;if((0,Qe.default)(ce),_i.is(ce))for(let ve of ce.items){(0,Qe.default)(Oe.is(ve.value));let ue=(v=ve.value.parameters.target)==null?void 0:v.value;(0,Qe.default)(ue),ue=et(ue),(0,Qe.default)(yt.is(ue)&&ue.node);let Se=(x=ve.value.parameters.channel)==null?void 0:x.value;if((0,Qe.default)(Se),Se=et(Se),(0,Qe.default)(yt.is(Se)&&Se.node),d.find(([Ee,Pe])=>Ee.Target===ue.literal&&Pe.Channel===Se.literal&&Ee.node===ue.node&&Pe.node===Se.node&&Pe.type==="client")){i("error",`found duplicate "from" definition: role: ${ue.literal} channel: ${Se.literal}`,{node:Se.node});return}d.push([{Target:ue.literal,node:ue.node},{Channel:Se.literal,type:"client",node:Se.node}])}else if(Oe.is(ce)){let ve=(b=ce.parameters.target)==null?void 0:b.value;(0,Qe.default)(ve),ve=et(ve),(0,Qe.default)(yt.is(ve)&&ve.node);let ue=(y=ce.parameters.channel)==null?void 0:y.value;if((0,Qe.default)(ue),ue=et(ue),(0,Qe.default)(yt.is(ue)&&ue.node),d.find(([Se,Ee])=>Se.Target===ve.literal&&Ee.Channel===ue.literal&&Se.node===ve.node&&Ee.node===ue.node&&Ee.type==="client")){i("error",`found duplicate "from" definition: role: ${ve.literal} channel: ${ue.literal}`,{node:ue.node});return}d.push([{Target:ve.literal,node:ve.node},{Channel:ue.literal,type:"client",node:ue.node}])}let xe=(w=ie.inner.parameters.to)==null?void 0:w.value;if((0,Qe.default)(xe),_i.is(xe)){for(let ve of xe.items){(0,Qe.default)(Oe.is(ve.value));let ue=(k=ve.value.parameters.target)==null?void 0:k.value;(0,Qe.default)(ue),ue=et(ue),(0,Qe.default)(yt.is(ue)&&ue.node);let Se=(N=ve.value.parameters.channel)==null?void 0:N.value;if((0,Qe.default)(Se),Se=et(Se),(0,Qe.default)(yt.is(Se)&&Se.node),d.find(([Ee,Pe])=>Ee.Target===ue.literal&&Pe.Channel===Se.literal&&Ee.node===ue.node&&Pe.node===Se.node&&Pe.type==="server")){i("error",`found duplicated "to" definition: role: ${ue.literal} channel: ${Se.literal}`,{node:Se.node});return}d.push([{Target:ue.literal,node:ue.node},{Channel:Se.literal,type:"server",node:Se.node}])}break}else if(Oe.is(xe)){let ve=(E=xe.parameters.target)==null?void 0:E.value;(0,Qe.default)(ve),ve=et(ve),(0,Qe.default)(yt.is(ve)&&ve.node);let ue=(j=xe.parameters.channel)==null?void 0:j.value;if((0,Qe.default)(ue),ue=et(ue),(0,Qe.default)(yt.is(ue)&&ue.node),d.find(([Se,Ee])=>Se.Target===ve.literal&&Ee.Channel===ue.literal&&Se.node===ve.node&&Ee.node===ue.node&&Ee.type==="server")){i("error",`found duplicated "to" definition: role: ${ve.literal} channel: ${ue.literal}`,{node:ue.node});return}d.push([{Target:ve.literal,node:ve.node},{Channel:ue.literal,type:"server",node:ue.node}])}break}case Sy:{let ce=ie.inner.parameters.target!==void 0,xe=ie.inner.parameters.channel!==void 0;if(ce&&xe){let ve=(I=ie.inner.parameters.target)==null?void 0:I.value;(0,Qe.default)(ve),ve=et(ve),(0,Qe.default)(yt.is(ve)&&ve.node);let ue=(U=ie.inner.parameters.channel)==null?void 0:U.value;(0,Qe.default)(ue),ue=et(ue),(0,Qe.default)(yt.is(ue)&&ue.node),d.push([{Target:ve.literal,node:ve.node},{Channel:ue.literal,type:"server",node:ue.node}])}else{let ve=(O=ie.inner.parameters.from)==null?void 0:O.value;if((0,Qe.default)(ve),_i.is(ve))for(let Se of ve.items){(0,Qe.default)(Oe.is(Se.value));let Ee=(M=Se.value.parameters.target)==null?void 0:M.value;(0,Qe.default)(Ee),Ee=et(Ee),(0,Qe.default)(yt.is(Ee)&&Ee.node);let Pe=($=Se.value.parameters.channel)==null?void 0:$.value;if((0,Qe.default)(Pe),Pe=et(Pe),(0,Qe.default)(yt.is(Pe)&&Pe.node),d.find(([Fe,de])=>Fe.Target===Ee.literal&&de.Channel===Pe.literal&&Fe.node===Ee.node&&de.node===Pe.node)){i("error",`found duplicate "from" definition: role: ${Ee.literal} channel: ${Pe.literal}`,{node:Pe.node});return}d.push([{Target:Ee.literal,node:Ee.node},{Channel:Pe.literal,type:"client",node:Pe.node}])}else if(Oe.is(ve)){let Se=(L=ve.parameters.target)==null?void 0:L.value;(0,Qe.default)(Se),Se=et(Se),(0,Qe.default)(yt.is(Se)&&Se.node);let Ee=(q=ve.parameters.channel)==null?void 0:q.value;if((0,Qe.default)(Ee),Ee=et(Ee),(0,Qe.default)(yt.is(Ee)&&Ee.node),d.find(([Pe,Fe])=>Pe.Target===Se.literal&&Fe.Channel===Ee.literal&&Pe.node===Se.node&&Fe.node===Ee.node)){i("error",`found duplicate "from" definition: role: ${Se.literal} channel: ${Ee.literal}`,{node:Ee.node});return}d.push([{Target:Se.literal,node:Se.node},{Channel:Ee.literal,type:"client",node:Ee.node}])}let ue=(B=ie.inner.parameters.to)==null?void 0:B.value;if((0,Qe.default)(ue),_i.is(ue))for(let Se of ue.items){(0,Qe.default)(Oe.is(Se.value));let Ee=(K=Se.value.parameters.target)==null?void 0:K.value;(0,Qe.default)(Ee),Ee=et(Ee),(0,Qe.default)(yt.is(Ee)&&Ee.node);let Pe=(Q=Se.value.parameters.channel)==null?void 0:Q.value;if((0,Qe.default)(Pe),Pe=et(Pe),(0,Qe.default)(yt.is(Pe)&&Pe.node),d.find(([Fe,de])=>Fe.Target===Ee.literal&&de.Channel===Pe.literal&&Fe.node===Ee.node&&de.node===Pe.node)){i("error",`found duplicate "to" definition: role: ${Ee.literal} channel: ${Pe.literal}`,{node:Pe.node});return}d.push([{Target:Ee.literal,node:Ee.node},{Channel:Pe.literal,type:"server",node:Pe.node}])}else if(Oe.is(ue)){let Se=(Y=ue.parameters.target)==null?void 0:Y.value;(0,Qe.default)(Se),Se=et(Se),(0,Qe.default)(yt.is(Se)&&Se.node);let Ee=(H=ue.parameters.channel)==null?void 0:H.value;if((0,Qe.default)(Ee),Ee=et(Ee),(0,Qe.default)(yt.is(Ee)&&Ee.node),d.find(([Pe,Fe])=>Pe.Target===Se.literal&&Fe.Channel===Ee.literal&&Pe.node===Se.node&&Fe.node===Ee.node)){i("error",`found duplicate "to" definition: role: ${Se.literal} channel: ${Ee.literal}`,{node:Ee.node});return}d.push([{Target:Se.literal,node:Se.node},{Channel:Ee.literal,type:"server",node:Ee.node}])}}break}default:(0,Qe.default)(ie.node),i("error",`unknown connector type: ${ie.definition.meta.id}, valid types are: ${wy}, ${Sy}`,{node:ie.node});break}}for(let[se,ie]of d){let ke=se.Target;if(c.parameters[ke]===void 0&&ke!=="self"){i("error",`unknown target '${ke}': must be one of ${f}`,{node:se.node});continue}let ce=(()=>{let ve=()=>fXe(c,ke),ue=()=>dXe(c,ke);switch(ke==="self"&&(ve=()=>lXe(s),ue=()=>uXe(s)),ie.type){case"client":return ve();case"server":return ue()}})(),xe=ie.Channel;if(!ce.includes(xe)){i("error",`unknown channel '${xe}' in role '${ke}': must be one of [${ce.join(", ")}]`,{node:ie.node});continue}}}}var uXe=t=>{var i,o,s,a,u,c;let e=(o=(i=t.parameters.srv)==null?void 0:i.value)!=null?o:we.closed();(0,Qe.default)(e&&we.is(e));let r=(a=(s=e.parameters.client)==null?void 0:s.value)!=null?a:we.closed();(0,Qe.default)(r&&we.is(r));let n=(c=(u=e.parameters.duplex)==null?void 0:u.value)!=null?c:we.closed();return(0,Qe.default)(n&&we.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},lXe=t=>{var i,o,s,a,u,c;let e=(o=(i=t.parameters.srv)==null?void 0:i.value)!=null?o:we.closed();(0,Qe.default)(e&&we.is(e));let r=(a=(s=e.parameters.server)==null?void 0:s.value)!=null?a:we.closed();(0,Qe.default)(r&&we.is(r));let n=(c=(u=e.parameters.duplex)==null?void 0:u.value)!=null?c:we.closed();return(0,Qe.default)(n&&we.is(n)),[...new Set(Object.keys(r.parameters).concat(Object.keys(n.parameters)))]},fXe=(t,e)=>{var a,u,c,l,f,d,p,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,Qe.default)(r&&we.is(r));let n=(u=r.parameters.artifact)==null?void 0:u.value;(0,Qe.default)(n&&we.is(n));let i=(l=(c=n.parameters.srv)==null?void 0:c.value)!=null?l:we.closed();(0,Qe.default)(i&&we.is(i));let o=(d=(f=i.parameters.client)==null?void 0:f.value)!=null?d:we.closed();(0,Qe.default)(o&&we.is(o));let s=(h=(p=i.parameters.duplex)==null?void 0:p.value)!=null?h:we.closed();return(0,Qe.default)(s&&we.is(s)),[...new Set(Object.keys(o.parameters).concat(Object.keys(s.parameters)))]},dXe=(t,e)=>{var a,u,c,l,f,d,p,h;let r=(a=t.parameters[e])==null?void 0:a.value;(0,Qe.default)(r&&we.is(r));let n=(u=r.parameters.artifact)==null?void 0:u.value;(0,Qe.default)(n&&we.is(n));let i=(l=(c=n.parameters.srv)==null?void 0:c.value)!=null?l:we.closed();(0,Qe.default)(i&&we.is(i));let o=(d=(f=i.parameters.server)==null?void 0:f.value)!=null?d:we.closed();(0,Qe.default)(o&&we.is(o));let s=(h=(p=i.parameters.duplex)==null?void 0:p.value)!=null?h:we.closed();return(0,Qe.default)(s&&we.is(s)),[...new Set(Object.keys(o.parameters).concat(Object.keys(s.parameters)))]};var Ade=Me(require("assert"),1);var pXe=[Kr.$type],Ode=()=>pXe.map(t=>[t,hXe]);function hXe(t){let e=t.svcs.validation.KumoriTypeSystem,r=t.svcs.references.KumoriPackages;return(n,i)=>{if(!tt.getDocument(n).uri.path.endsWith(".h.kumori"))return;let a=r.GetPackage(ai.Kumori);(0,Ade.default)(J.isOk(a));let u=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(!u||!u.node){i("error","service interface type definition not found",{node:n});return}let c=t.ctx(),[l,f]=e.Infer(c,u.node);for(let g of f)i("error",`type error: ${g.message}`,{node:g.node});let[d,p]=e.Infer(c,n);for(let g of p)tt.getContainerOfType(g.node,v=>v===n)&&i("error",`type error: ${g.message}`,{node:g.node});if(p.length>0||f.length>0)return;let h=e.Assignable(c,d,l);if(J.isErr(h))for(let g of h.err){let v=Ni(g,n);i("error",`type error: ${g.cause}`,v)}}}var Ide=Me(require("assert"),1),mXe=[Kr.$type],Dde=()=>mXe.map(t=>[t,gXe]);function gXe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,u,c,l;let i=t.ctx(),[o]=e.Infer(i,r);if(!we.is(o))return;let s=(a=o.parameters.role)==null?void 0:a.value;if(!(!s||!we.is(s)))for(let f of Object.values(s.parameters)){(0,Ide.default)(f);let d=f.value;if(!d||!we.is(d))continue;let p=(u=d.parameters.artifact)==null?void 0:u.value;if(!p||!we.is(p))continue;let h=(c=d.parameters.config)==null?void 0:c.value,g=(l=p.parameters.config)==null?void 0:l.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!J.isOk(v))for(let x of v.err){let b=Ni(x,r);n("error",`type error: ${x.cause}`,b)}}}}var Nde=Me(require("assert"),1),yXe=[Kr.$type],Lde=()=>yXe.map(t=>[t,vXe]);function vXe(t){let e=t.svcs.validation.KumoriTypeSystem;return(r,n)=>{var a,u,c,l;let i=t.ctx(),[o]=e.Infer(i,r);if(!we.is(o))return;let s=(a=o.parameters.role)==null?void 0:a.value;if(!(!s||!we.is(s)))for(let f of Object.values(s.parameters)){(0,Nde.default)(f);let d=f.value;if(!d||!we.is(d))continue;let p=(u=d.parameters.artifact)==null?void 0:u.value;if(!p||!we.is(p))continue;let h=(c=d.parameters.resource)==null?void 0:c.value,g=(l=p.parameters.resource)==null?void 0:l.value;if(!h||!g)continue;let v=e.Assignable(i,h,g);if(!J.isOk(v))for(let x of v.err){let b=Ni(x,r);n("error",`type error: ${x.cause}`,b)}}}}var Mde=new Jn,jde=t=>{let e=new Jn;for(let[r,n]of Mde.entriesGroupedByKey()){let i=n.map(o=>o(t));e.addAll(r,i)}return r=>e.get(r)},yn=t=>{let e=t();for(let r of e){let n=r[0],i=r[1];Mde.add(n,i)}};yn(Wfe);yn(Kfe);yn(Zfe);yn(Jfe);yn(Xfe);yn(Qfe);yn(tde);yn(nde);yn(ode);yn(cde);yn(ude);yn(lde);yn(fde);yn(pde);yn(mde);yn(yde);yn(vde);yn(bde);yn(wde);yn(Sde);yn(xde);yn(Ede);yn(Cde);yn(Ode);yn(Dde);yn(Lde);var Fde=t=>(e,r)=>t.forEach(n=>n(e,r));function qde(t){let e=t.validation.ValidationRegistry,r=t.validation.KumoriValidations,n=jde(r),i=Object.fromEntries(t.shared.AstReflection.getAllTypes().map(o=>[o,n(o)]).filter(([,o])=>o.length>0).map(([o,s])=>[o,Fde(s)]));e.register(i)}var Ude=t=>({svcs:t,ctx:xc(()=>t.validation.KumoriTypeSystem.NewContext())});var ea=require("fs"),zde=require("url"),Ho=require("path"),bXe=(0,zde.fileURLToPath)(__importMetaUrl),Wa=(0,Ho.dirname)(bXe),ta=[],Bde=ta,Ga=(t,e)=>({src:t,data:e}),_Xe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/io/lib.kumori"),"utf-8");ta.push(Ga("/io/lib.kumori",_Xe));var wXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/builtin/httpinbound.h.kumori"),"utf-8");ta.push(Ga("/kumori/builtin/httpinbound.h.kumori",wXe));var SXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/builtin.kumori"),"utf-8");ta.push(Ga("/kumori/builtin.kumori",SXe));var xXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/builtin/tcpinbound.h.kumori"),"utf-8");ta.push(Ga("/kumori/builtin/tcpinbound.h.kumori",xXe));var kXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/component.kumori"),"utf-8");ta.push(Ga("/kumori/component.kumori",kXe));var EXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/deployment.kumori"),"utf-8");ta.push(Ga("/kumori/deployment.kumori",EXe));var $Xe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/resource.kumori"),"utf-8");ta.push(Ga("/kumori/resource.kumori",$Xe));var TXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/service.kumori"),"utf-8");ta.push(Ga("/kumori/service.kumori",TXe));var PXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/shared.kumori"),"utf-8");ta.push(Ga("/kumori/shared.kumori",PXe));var RXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/kumori/sized.kumori"),"utf-8");ta.push(Ga("/kumori/sized.kumori",RXe));var CXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/sized.kumori"),"utf-8");ta.push(Ga("/sized.kumori",CXe));var AXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/std.kumori"),"utf-8");ta.push(Ga("/std.kumori",AXe));var OXe=(0,ea.readFileSync)((0,Ho.join)(Wa,"lib/strconv/lib.kumori"),"utf-8");ta.push(Ga("/strconv/lib.kumori",OXe));var sq=Bde.map(t=>hae(t.src,t.data)),IXe=new Map;for(let t of sq){let e=me.dirname(t.uri).fsPath.split("/").filter(i=>i!==""),r=IXe,n="";for(let i of e){n=`${n}/${i}`;let o=r.get(i);if(o===void 0&&(o={type:"Dir",contents:new Map},r.set(i,o)),o.type==="File")throw new Error("fs collision on "+n);r=o.contents}r.set(me.basename(t.uri),{type:"File",data:t.data})}async function Ek(t,e,r,n=Ue.CancellationToken.None){await Vde(t,e,r,n)}async function Vde(t,e,r,n=Ue.CancellationToken.None){await Pt(n);let i=await t.readDirectory(e);if(r.Dir){let s=await r.Dir(e,i);if(s!=null&&s.break)return s;if(s!=null&&s.skipDir)return}let o=[];for(let s of i)if(await Pt(n),s.isDirectory)o.push(s.uri);else if(s.isFile&&r.File){let a=await r.File(s.uri);if(a!=null&&a.break)return a}for(let s of o){await Pt(n);let a=await Vde(t,s,r);if(a!=null&&a.break)return a}}var an="kumori.mod.json";async function Hde(t,e,r=Ue.CancellationToken.None){let n=[],i=await DXe(t,ze.parse(e.uri),r);for(let o of i){let s=await vn(t,o);J.isOk(s)&&n.push(s.value)}return n}async function DXe(t,e,r=Ue.CancellationToken.None){let n=[];return await Ek(t,e,{Dir:async i=>{if(e.fsPath===i.fsPath)return;let o=me.dirname(i);if((await t.readDirectory(o)).map(a=>a.uri).map(me.basename).includes(an))return{skipDir:!0}},File:i=>{me.basename(i)===an&&n.push(me.dirname(i))}},r),n}async function Lm(t,e){if((await t.readDirectory(e)).map(o=>me.basename(o.uri)).includes(an))return Vr(me.joinPath(e,an));let i=me.dirname(e);return e.fsPath===i.fsPath?Vt:Lm(t,i)}var aq=V.object({target:V.string(),version:V.string()}),Wde=aq.extend({headers:V.optional(aq)}),NXe=Wde.extend({alias:V.optional(V.string())}),LXe=V.object({spec:V.literal("kumori/module/v1"),module:V.string(),kumori:V.string(),version:V.string(),headers:V.optional(aq),cacheLocation:V.optional(V.string().prefault(".kumori/mod")),requires:V.array(NXe),indirect:V.array(Wde).optional()}),Gde=V.discriminatedUnion("spec",[LXe]);async function Oc(t,e,r=Ue.CancellationToken.None){try{await Pt(r)}catch(s){return be("error reading module: operation cancelled")}let n=e;if(n.scheme!=="file")return be(`unexpected URI scheme '${n.scheme}': ${n.toString()}`);me.basename(n)!==an&&(n=me.joinPath(n,an));let i;try{i=JSON.parse(await t.readFile(n))}catch(s){return be(`error reading file ${n.fsPath}: ${s}`)}let o=await Gde.safeParseAsync(i);return o.success?Ke({Root:me.dirname(n),Manifest:o.data}):be(`error parsing file ${n.fsPath}: ${JSON.stringify(o.error.format())}`)}function f_(t){return t instanceof ze||(t=t.Root),me.joinPath(t,"vendor")}function $k(t){if(!(t instanceof ze)){let e=t.Manifest,r=t.Root;if(e&&e.cacheLocation){let n=e.cacheLocation;return n.startsWith(".")?me.joinPath(r,n):n.startsWith("/")?ze.parse(n):me.joinPath(r,n)}t=r}return me.joinPath(t,".kumori/mod")}var k6=require("fs/promises");var cq=require("crypto"),Kde=require("fs"),Zde=require("fs/promises"),uq=Me(require("path"),1),Jde=require("stream/promises");async function ap(t){let e=[];async function r(i){let o=await(0,Zde.readdir)(i,{withFileTypes:!0});for(let s of o){let a=uq.default.join(i,s.name),u=uq.default.relative(i,a).replace(/\\/g,"/");if(s.isDirectory()&&s.name!==".git")await r(a);else if(s.isFile()){let c=(0,cq.createHash)("sha256"),l=(0,Kde.createReadStream)(a);await(0,Jde.pipeline)(l,c),e.push({relativePath:u,hash:c.digest("hex")})}}}await r(t),e.sort((i,o)=>i.relativePath.localeCompare(o.relativePath));let n=(0,cq.createHash)("sha256");for(let i of e)n.update(`${i.relativePath} ${i.hash}
|
|
396
|
-
`);return`h1:${n.digest("hex")}`}var ope=Me(rpe(),1);var gl=class{get[Symbol.toStringTag](){return"URLSearchParams"}constructor(e){this.isEncoded=!1,this.params=[],typeof e=="string"?lq(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[mu(this.params[e][0]),mu(this.params[e][1])]}append(e,r){this.params.push([Tk(e),Tk(r)])}delete(e){this.params=this.params.filter(([r])=>mu(r)!==e)}forEach(e){this.params.forEach(([r,n])=>{e(mu(n),mu(r),this)})}get(e){let r=this.params.find(([n])=>mu(n)===e);return r?mu(r[1]):null}getAll(e){return this.params.filter(([r])=>mu(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 mu(this.params[e][0])}set(e,r){let n=this.params.findIndex(([i])=>mu(i)===e);if(n===-1){this.append(e,r);return}this.delete(e),this.params.splice(n,0,[Tk(e),Tk(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 mu(this.params[e][1])}[Symbol.iterator](){return this.entries()}get size(){return this.params.length}};function lq(t,e,r,n,i,o,s,{encode:a}={encode:!1}){let u=e,c=u,l=0,f=0,d=a?n.append.bind(n):(p,h)=>n.params.push([p,h]);for(;u<=r;u+=1){let p=t.charCodeAt(u);if(p===o&&l===0)l=u,f=u+1;else if(i.indexOf(p)!==-1)u>c&&d(t.slice(c,l||u),t.slice(f||u,u)),c=u+1,l=0,f=0;else if(s.indexOf(p)!==-1)break}return u!==c&&d(t.slice(c,l||u),t.slice(f||u,u)),u}function mu(t){if(t.indexOf("%")!==-1)try{return decodeURIComponent(t.replace(/\+/g," "))}catch(e){return t}else return t}function Tk(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 ipe=[47,35,63];function iYe(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===45||t===43}var cp=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,ope.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 gl,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,o=!1,s=!1;if(this._href.charCodeAt(i)===91){for(o=!0;i<=e;i+=1)if(this._href.charCodeAt(i)===93){let c=this._href.charCodeAt(i+1);if(c===58)r=i+1,i+=1,n=!0;else if(c===47)i+=1,n=!0;else if(i!==e)throw new TypeError("expected `:` or `/` after IPv6 address");break}}if(!o)for(;i<=e;i+=1){let u=this._href.charCodeAt(i);if(u===58){r=i,n=!0;break}else if(u===64)return this._username=this._href.slice(t,i),this._password="",this._extractHostname(i+1,e);if(ipe.indexOf(u)!==-1){n=!0;break}else{if(u<=32)throw new TypeError(`Invalid character '${this.href[i]}' in hostname`);u>=65&&u<=90&&(s=!0)}}let a=n?i:i+1;if(s&&(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 u=i,c=!1;for(;i<=e;i+=1){let l=this._href.charCodeAt(i);if(ipe.indexOf(l)!==-1){this._port=this._href.slice(u,i);break}else{if(l===64)return this._username=this._href.slice(t,r||i),this._password=this._href.slice(r+1,i),this._extractHostname(i+1,e);(l<48||l>57)&&(c=!0)}}if(this._port||(this._port=this.href.slice(u,i)),c)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,o){return lq(this.href,t,e,r,n,i,o)}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 gl,this._query=new gl,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(iYe(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 o=this._href.charCodeAt(e);if(o===59&&!this.parameterStartIndex)this.parameterStartIndex=e;else if(o===63||o===35){this.queryStartIndex=e;break}}this._pathname=this.href.slice(i,this.queryStartIndex!==0?this.queryStartIndex:r+1)||"/"}}};var p_=class extends gl{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 up(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 cp(`${r.protocol}${t.slashes}${n}${r.host}${r.pathname}${r.search}${r.hash}`)}var Ry=class{get[Symbol.toStringTag](){return"URL"}constructor(t){this.url=new cp(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 cp(n)}get username(){return this.url.username}set username(t){this.url=up(this,{username:t||""})}get password(){return this.url.password}set password(t){this.url=up(this,{password:t||""})}get hostname(){return this.url.hostname}set hostname(t){this.url=up(this,{hostname:t||""})}get host(){return this.url.host}set host(t){this.url=up(this,{host:t})}get origin(){return this.url.origin}get port(){return this.url.port}set port(t){this.url=up(this,{port:t||""})}get pathname(){return this.url.pathname}set pathname(t){let e=t.charCodeAt(0)===47?t:`/${t}`;this.url=up(this,{pathname:e})}get search(){return this.url.search}set search(t){let e=t.charCodeAt(0)===63?t.slice(1):t;this.url=up(this,{search:e.length>0?`?${e}`:""})}get searchParams(){return new p_(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=up(this,{hash:e.length>0?`#${e}`:""})}get href(){return this.url.href}set href(t){this.url=new cp(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 Ef=class extends Ry{};var no=Me(require("fs"),1),Eu=Me(require("path"),1),S_e=Me(require("os"),1),x_e=Me(sme(),1);var ame={$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:0,uniqueItems:!0,description:"List of modules available in this registry index",items:{type:"object",required:["domain","version","location","checksum","artifacts"],properties:{domain:{type:"string",description:"Domain of the module (e.g. kumori.systems/jenkins)"},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"},releaseDate:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$",description:"Release date in YYYY-MM-DD format"},checksum:{type:"string",pattern:"^h1:[a-fA-F0-9]{64}$",description:"SHA-256 checksum of the module, prefixed with h1:"},artifacts:{type:"array",minItems:1,items:{type:"object",required:["name","type","marketplace","schema","location"],properties:{name:{type:"string",description:"Name of the artifact"},description:{type:"string",description:"Optional human-readable artifact description"},requirements:{type:"object",description:"Requirements for using this artifact",properties:{cpu:{type:"number",description:"Minimum vCPUs required"},memory:{type:"number",description:"Minimum memory (in GB) required"}}},marketplace:{type:"boolean",description:"Whether this artifact is available in the marketplace"},type:{type:"string",enum:["component","service"],description:"Type of artifact"},schema:{type:"object",description:"JSON Schema object describing the artifact"},location:{type:"string",description:"Relative path or URL to the artifact"},icon:{type:"string",description:"Filename for the artifact's icon"},categories:{type:"array",items:{type:"string"},description:"Categories for this artifact"},tags:{type:"array",items:{type:"string"},description:"Tags for this artifact"}},additionalProperties:!1}}},additionalProperties:!1}}},additionalProperties:!1};var VB=Me(Yve(),1);var __e=Me(h3e(),1);function Dft(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function Nft(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:Dft(t)}async function w_e(t,e){let r=Nft(t);for(;;){let{value:n,done:i}=await r.next();if(n&&await e(n),i)break}r.return&&r.return()}function Lft(t){let{PassThrough:e}=b_e(),r=new e;return setTimeout(async()=>{await w_e(t,n=>r.write(n)),r.end()},1),r}async function Mft(t){let e=0,r=[];await w_e(t,o=>{r.push(o),e+=o.byteLength});let n=new Uint8Array(e),i=0;for(let o of r)n.set(o,i),i+=o.byteLength;return n}function jft(t){let e=Object.getOwnPropertyDescriptor(t,Symbol.asyncIterator);if(e&&e.enumerable)return t;let r=!1,n=[],i={};return t.on("data",o=>{n.push(o),i.resolve&&(i.resolve({value:n.shift(),done:!1}),i={})}),t.on("error",o=>{i.reject&&(i.reject(o),i={})}),t.on("end",()=>{r=!0,i.resolve&&(i.resolve({done:!0}),i={})}),{next(){return new Promise((o,s)=>{if(n.length===0&&r)return o({done:!0});if(n.length>0)return o({value:n.shift(),done:!1});n.length===0&&!r&&(i={resolve:o,reject:s})})},return(){t.removeAllListeners(),t.destroy&&t.destroy()},[Symbol.asyncIterator](){return this}}}async function Fft({onProgress:t,url:e,method:r="GET",headers:n={},agent:i,body:o}){return o&&Array.isArray(o)?o=Buffer.from(await Mft(o)):o&&(o=Lft(o)),new Promise((s,a)=>{(0,__e.default)({url:e,method:r,headers:n,agent:i,body:o},(u,c)=>{if(u)return a(u);try{let l=jft(c);s({url:c.url,method:c.method,statusCode:c.statusCode,statusMessage:c.statusMessage,body:l,headers:c.headers})}catch(l){a(l)}})})}var qft={request:Fft},BB=qft;var xi=class{constructor(e){this.registries=[],this.defaultName="kumori.systems",this.defaultIndexUrl="https://gitlab.com/kumori-systems/registry/index.git";let r;if(e)r=Eu.default.resolve(e);else{r=Eu.default.join(S_e.default.homedir(),".config","kdsl");let n=process.argv.indexOf("--config");n!==-1&&process.argv[n+1]&&(r=Eu.default.resolve(process.argv[n+1]))}try{no.default.existsSync(r)||no.default.mkdirSync(r,{recursive:!0})}catch(n){throw new Error(`Failed to create config directory: ${n}`)}this.configDir=r,this.filePath=Eu.default.join(r,"registries.json"),this.load()}async ensureIndexes(){for(let e of this.registries){let r=Eu.default.join(this.configDir,".cache",e.selector),n=Eu.default.join(r,"index.json");if(no.default.existsSync(n))continue;console.info(`Index file not found for ${e.selector}, attempting to download...`),no.default.mkdirSync(r,{recursive:!0}),await VB.default.clone({fs:no.default,http:BB,dir:r,url:e.repoUrl,singleBranch:!0,depth:1}).catch(u=>{throw new Error(`Failed to clone repository ${e.repoUrl}: ${u}`)});let i=Eu.default.join(r,"index.json");if(!no.default.existsSync(i))throw new Error(`Index file not found in repository ${e.repoUrl}`);let o=no.default.readFileSync(i,"utf-8"),s;try{s=JSON.parse(o)}catch(u){throw new Error(`Failed to parse index file: ${u}`)}if(!this.validateIndexSchema(s))throw console.error(`Failed to validate index schema for ${e.repoUrl}`),new Error(`Index schema validation failed for ${e.repoUrl}`);no.default.writeFileSync(n,JSON.stringify(s,null,2),{encoding:"utf-8"}),console.info(`Successfully downloaded index for registry ${e.selector}. Location: ${n}`)}}async initialize(){this.registries=[{selector:this.defaultName,repoUrl:this.defaultIndexUrl}];try{await this.ensureIndexes()}catch(e){console.warn(`Failed to download index for default registry: ${e}`);return}this.save()}load(){if(no.default.existsSync(this.filePath))try{let e=no.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{no.default.writeFileSync(e,JSON.stringify({registries:this.registries},null,2),{encoding:"utf-8"}),no.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(u=>u.selector===e.selector))throw new Error(`Registry with selector '${e.selector}' already exists`);let r=Eu.default.join(this.configDir,".cache",e.selector),n=Eu.default.join(r,"index.json");no.default.mkdirSync(r,{recursive:!0}),e.repoUrl.endsWith(".git")||(e.repoUrl+=".git"),await VB.default.clone({fs:no.default,http:BB,dir:r,url:e.repoUrl,singleBranch:!0,depth:1,onAuth:()=>({password:e.token})}).catch(u=>{throw new Error(`Failed to clone repository ${e.repoUrl}: ${u}`)});let i=Eu.default.join(r,"index.json");if(!no.default.existsSync(i))throw new Error(`Index file not found in repository ${e.repoUrl}`);let o=no.default.readFileSync(i,"utf-8"),s;try{s=JSON.parse(o)}catch(u){throw new Error(`Failed to parse index file: ${u}`)}if(!this.validateIndexSchema(s))throw new Error(`Index schema validation failed for ${e.repoUrl}`);no.default.writeFileSync(n,JSON.stringify(s,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 x_e.default({validateSchema:!1,allErrors:!0}).compile(ame);return n(e)?!0:(console.warn("Index schema validation errors:",n.errors),!1)}};var $u=Me(require("path"),1),WB=Me(require("os"),1),w$=Me(require("fs"),1);var HB;(function(t){t.toString=e=>`${e.Location}@${e.Version}`,t.toURL=e=>new Ef(`${e.Scheme}://${e.Location}`)})(HB||(HB={}));function Fc(t,e){var c;let r=[t],n="git";if(r=r.pop().split("://"),r.length>2)return Vt;r.length===2&&(n=r.shift());let i="";r=r.pop().split("@");try{i=xo(r[1]).toString()}catch(l){return console.error(`Invalid version format for ${t} version: ${r[1]} is not a valid SemVer string`),Vt}let o=r[0],u=new xi(e).list().find(l=>o.startsWith(l.selector));if(u!==void 0){let l;if(e)l=$u.default.resolve(e);else{l=$u.default.join(WB.default.homedir(),".config","kdsl");let k=process.argv.indexOf("--config");k!==-1&&process.argv[k+1]&&(l=$u.default.resolve(process.argv[k+1]))}let f=$u.default.join(l,".cache",u.selector),d=$u.default.join(f,"index.json"),p=w$.default.readFileSync(d,{encoding:"utf-8"}),g=JSON.parse(p).modules.find(k=>k.domain==o);if(g===void 0)return console.warn(`Module not found in registry index: ${o} (registry: ${u.selector})`),Vt;if(g.version!==i)return console.warn(`Module version not found in registry index: ${o} (requested: ${i}, available: ${g.version})`),Vt;let v=o.substring(g.location.length),b=((c=g.location.split("://")[1])!=null?c:g.location).replace(/\/+$/,""),y=v.startsWith("/")?v:`/${v}`;o=`${b}${y}`}return Vr({Location:o,Scheme:n,Version:i,toString(){return HB.toString(this)}})}function k_e(t,e){let i=new xi(e).list().find(o=>t.startsWith(o.selector));if(i!==void 0){let o;if(e)o=$u.default.resolve(e);else{o=$u.default.join(WB.default.homedir(),".config","kdsl");let f=process.argv.indexOf("--config");f!==-1&&process.argv[f+1]&&(o=$u.default.resolve(process.argv[f+1]))}let s=$u.default.join(o,".cache",i.selector),a=$u.default.join(s,"index.json");if(!w$.default.existsSync(a))return console.warn(`Index not found in cache: ${a}`),Vt;let u=w$.default.readFileSync(a,{encoding:"utf-8"}),l=JSON.parse(u).modules.find(f=>f.domain==t);return l===void 0?(console.warn(`Module not found in registry index: ${t} (registry: ${i.selector})`),Vt):Vr(l.checksum)}return Vt}var Uft=V.object({indirect:V.optional(V.boolean()),sum:V.string()}),zft=V.object({spec:V.literal("kumori/sumdb/v1"),content:V.record(V.string(),Uft)}),Mf;(function(t){t.Type=V.discriminatedUnion("spec",[zft]),t.Parse=t.Type.safeParseAsync,t.Retrieve=Bft,t.Register=Vft,t.New=()=>({spec:"kumori/sumdb/v1",content:{}}),t.Open=Hft,t.Read=Wft,t.Write=T_e})(Mf||(Mf={}));var E_e=(t,e)=>{let r=`${t}@${e}`,n=Fc(r);return J.isOk(n)?n.value.toString():r};function Bft(t,e,r){var n;switch(t.spec){case"kumori/sumdb/v1":return je.fromNullable((n=t.content[E_e(e,r)])==null?void 0:n.sum)}}async function Vft(t,e,r,n,i){switch(t.spec){case"kumori/sumdb/v1":{let o=await ap(e.fsPath);t.content[E_e(n,i)]={sum:o};break}}return T_e(r.Locations.Checksum(),t)}var GB=t=>me.joinPath(t.Root,"kumori.sum.json");async function Hft(t){let e;try{e=(await(0,k6.readFile)(t.fsPath)).toString("utf-8")}catch(r){return Ke(Mf.New())}return J.mapErr(await $_e(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function Wft(t){let e;try{e=(await(0,k6.readFile)(t.fsPath)).toString("utf-8")}catch(r){return be(`unable to open sumdb: error reading file '${t.fsPath}'`)}return J.mapErr(await $_e(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function $_e(t){let e;try{e=JSON.parse(t)}catch(n){return be("invalid json data")}let r=await Mf.Parse(e);if(!r.success){let n,i=Gft(r.error);return i.length===0?n="<unknown error>":n=`
|
|
396
|
+
`);return`h1:${n.digest("hex")}`}var ope=Me(rpe(),1);var gl=class{get[Symbol.toStringTag](){return"URLSearchParams"}constructor(e){this.isEncoded=!1,this.params=[],typeof e=="string"?lq(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[mu(this.params[e][0]),mu(this.params[e][1])]}append(e,r){this.params.push([Tk(e),Tk(r)])}delete(e){this.params=this.params.filter(([r])=>mu(r)!==e)}forEach(e){this.params.forEach(([r,n])=>{e(mu(n),mu(r),this)})}get(e){let r=this.params.find(([n])=>mu(n)===e);return r?mu(r[1]):null}getAll(e){return this.params.filter(([r])=>mu(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 mu(this.params[e][0])}set(e,r){let n=this.params.findIndex(([i])=>mu(i)===e);if(n===-1){this.append(e,r);return}this.delete(e),this.params.splice(n,0,[Tk(e),Tk(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 mu(this.params[e][1])}[Symbol.iterator](){return this.entries()}get size(){return this.params.length}};function lq(t,e,r,n,i,o,s,{encode:a}={encode:!1}){let u=e,c=u,l=0,f=0,d=a?n.append.bind(n):(p,h)=>n.params.push([p,h]);for(;u<=r;u+=1){let p=t.charCodeAt(u);if(p===o&&l===0)l=u,f=u+1;else if(i.indexOf(p)!==-1)u>c&&d(t.slice(c,l||u),t.slice(f||u,u)),c=u+1,l=0,f=0;else if(s.indexOf(p)!==-1)break}return u!==c&&d(t.slice(c,l||u),t.slice(f||u,u)),u}function mu(t){if(t.indexOf("%")!==-1)try{return decodeURIComponent(t.replace(/\+/g," "))}catch(e){return t}else return t}function Tk(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 ipe=[47,35,63];function iYe(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===45||t===43}var cp=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,ope.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 gl,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,o=!1,s=!1;if(this._href.charCodeAt(i)===91){for(o=!0;i<=e;i+=1)if(this._href.charCodeAt(i)===93){let c=this._href.charCodeAt(i+1);if(c===58)r=i+1,i+=1,n=!0;else if(c===47)i+=1,n=!0;else if(i!==e)throw new TypeError("expected `:` or `/` after IPv6 address");break}}if(!o)for(;i<=e;i+=1){let u=this._href.charCodeAt(i);if(u===58){r=i,n=!0;break}else if(u===64)return this._username=this._href.slice(t,i),this._password="",this._extractHostname(i+1,e);if(ipe.indexOf(u)!==-1){n=!0;break}else{if(u<=32)throw new TypeError(`Invalid character '${this.href[i]}' in hostname`);u>=65&&u<=90&&(s=!0)}}let a=n?i:i+1;if(s&&(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 u=i,c=!1;for(;i<=e;i+=1){let l=this._href.charCodeAt(i);if(ipe.indexOf(l)!==-1){this._port=this._href.slice(u,i);break}else{if(l===64)return this._username=this._href.slice(t,r||i),this._password=this._href.slice(r+1,i),this._extractHostname(i+1,e);(l<48||l>57)&&(c=!0)}}if(this._port||(this._port=this.href.slice(u,i)),c)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,o){return lq(this.href,t,e,r,n,i,o)}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 gl,this._query=new gl,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(iYe(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 o=this._href.charCodeAt(e);if(o===59&&!this.parameterStartIndex)this.parameterStartIndex=e;else if(o===63||o===35){this.queryStartIndex=e;break}}this._pathname=this.href.slice(i,this.queryStartIndex!==0?this.queryStartIndex:r+1)||"/"}}};var p_=class extends gl{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 up(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 cp(`${r.protocol}${t.slashes}${n}${r.host}${r.pathname}${r.search}${r.hash}`)}var Ry=class{get[Symbol.toStringTag](){return"URL"}constructor(t){this.url=new cp(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 cp(n)}get username(){return this.url.username}set username(t){this.url=up(this,{username:t||""})}get password(){return this.url.password}set password(t){this.url=up(this,{password:t||""})}get hostname(){return this.url.hostname}set hostname(t){this.url=up(this,{hostname:t||""})}get host(){return this.url.host}set host(t){this.url=up(this,{host:t})}get origin(){return this.url.origin}get port(){return this.url.port}set port(t){this.url=up(this,{port:t||""})}get pathname(){return this.url.pathname}set pathname(t){let e=t.charCodeAt(0)===47?t:`/${t}`;this.url=up(this,{pathname:e})}get search(){return this.url.search}set search(t){let e=t.charCodeAt(0)===63?t.slice(1):t;this.url=up(this,{search:e.length>0?`?${e}`:""})}get searchParams(){return new p_(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=up(this,{hash:e.length>0?`#${e}`:""})}get href(){return this.url.href}set href(t){this.url=new cp(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 Ef=class extends Ry{};var no=Me(require("fs"),1),Eu=Me(require("path"),1),S_e=Me(require("os"),1),x_e=Me(sme(),1);var ame={$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.",$defs:{role:{type:"object",required:["name","type","roles"],properties:{name:{type:"string",description:"Role name"},type:{type:"string",enum:["component","service"],description:"Type of the role"},roles:{type:"array",minItems:0,items:{$ref:"#/$defs/role"},description:"Nested roles (for service roles)"}},additionalProperties:!1}},type:"object",required:["modules"],properties:{modules:{type:"array",minItems:0,uniqueItems:!0,description:"List of modules available in this registry index",items:{type:"object",required:["domain","version","location","checksum","artifacts"],properties:{domain:{type:"string",description:"Domain of the module (e.g. kumori.systems/jenkins)"},version:{type:"string",description:"Semantic version of the module"},description:{type:"string",description:"Optional human-readable module description"},location:{type:"string",description:"Location (URL) where the module resides"},releaseDate:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$",description:"Release date in YYYY-MM-DD format"},checksum:{type:"string",pattern:"^h1:[a-fA-F0-9]{64}$",description:"SHA-256 checksum of the module, prefixed with h1:"},artifacts:{type:"array",minItems:1,items:{type:"object",required:["name","type","marketplace","schema","location"],properties:{name:{type:"string",description:"Name of the artifact"},description:{type:"string",description:"Optional human-readable artifact description"},requirements:{type:"object",description:"Requirements for using this artifact",properties:{cpu:{type:"number",description:"Minimum vCPUs required"},memory:{type:"number",description:"Minimum memory (in GB) required"}}},marketplace:{type:"boolean",description:"Whether this artifact is available in the marketplace"},type:{type:"string",enum:["component","service"],description:"Type of artifact"},schema:{type:"object",description:"JSON Schema object describing the artifact"},location:{type:"string",description:"Relative path or URL to the artifact"},roles:{type:"array",minItems:0,items:{$ref:"#/$defs/role"},description:"List of roles exposed by this artifact"},icon:{type:"string",description:"Filename for the artifact's icon"},categories:{type:"array",items:{type:"string"},description:"Categories for this artifact"},tags:{type:"array",items:{type:"string"},description:"Tags for this artifact"}},additionalProperties:!1}}},additionalProperties:!1}}},additionalProperties:!1};var VB=Me(Yve(),1);var __e=Me(h3e(),1);function Dft(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function Nft(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:Dft(t)}async function w_e(t,e){let r=Nft(t);for(;;){let{value:n,done:i}=await r.next();if(n&&await e(n),i)break}r.return&&r.return()}function Lft(t){let{PassThrough:e}=b_e(),r=new e;return setTimeout(async()=>{await w_e(t,n=>r.write(n)),r.end()},1),r}async function Mft(t){let e=0,r=[];await w_e(t,o=>{r.push(o),e+=o.byteLength});let n=new Uint8Array(e),i=0;for(let o of r)n.set(o,i),i+=o.byteLength;return n}function jft(t){let e=Object.getOwnPropertyDescriptor(t,Symbol.asyncIterator);if(e&&e.enumerable)return t;let r=!1,n=[],i={};return t.on("data",o=>{n.push(o),i.resolve&&(i.resolve({value:n.shift(),done:!1}),i={})}),t.on("error",o=>{i.reject&&(i.reject(o),i={})}),t.on("end",()=>{r=!0,i.resolve&&(i.resolve({done:!0}),i={})}),{next(){return new Promise((o,s)=>{if(n.length===0&&r)return o({done:!0});if(n.length>0)return o({value:n.shift(),done:!1});n.length===0&&!r&&(i={resolve:o,reject:s})})},return(){t.removeAllListeners(),t.destroy&&t.destroy()},[Symbol.asyncIterator](){return this}}}async function Fft({onProgress:t,url:e,method:r="GET",headers:n={},agent:i,body:o}){return o&&Array.isArray(o)?o=Buffer.from(await Mft(o)):o&&(o=Lft(o)),new Promise((s,a)=>{(0,__e.default)({url:e,method:r,headers:n,agent:i,body:o},(u,c)=>{if(u)return a(u);try{let l=jft(c);s({url:c.url,method:c.method,statusCode:c.statusCode,statusMessage:c.statusMessage,body:l,headers:c.headers})}catch(l){a(l)}})})}var qft={request:Fft},BB=qft;var xi=class{constructor(e){this.registries=[],this.defaultName="kumori.systems",this.defaultIndexUrl="https://gitlab.com/kumori-systems/registry/index.git";let r;if(e)r=Eu.default.resolve(e);else{r=Eu.default.join(S_e.default.homedir(),".config","kdsl");let n=process.argv.indexOf("--config");n!==-1&&process.argv[n+1]&&(r=Eu.default.resolve(process.argv[n+1]))}try{no.default.existsSync(r)||no.default.mkdirSync(r,{recursive:!0})}catch(n){throw new Error(`Failed to create config directory: ${n}`)}this.configDir=r,this.filePath=Eu.default.join(r,"registries.json"),this.load()}async ensureIndexes(){for(let e of this.registries){let r=Eu.default.join(this.configDir,".cache",e.selector),n=Eu.default.join(r,"index.json");if(no.default.existsSync(n))continue;console.info(`Index file not found for ${e.selector}, attempting to download...`),no.default.mkdirSync(r,{recursive:!0}),await VB.default.clone({fs:no.default,http:BB,dir:r,url:e.repoUrl,singleBranch:!0,depth:1}).catch(u=>{throw new Error(`Failed to clone repository ${e.repoUrl}: ${u}`)});let i=Eu.default.join(r,"index.json");if(!no.default.existsSync(i))throw new Error(`Index file not found in repository ${e.repoUrl}`);let o=no.default.readFileSync(i,"utf-8"),s;try{s=JSON.parse(o)}catch(u){throw new Error(`Failed to parse index file: ${u}`)}if(!this.validateIndexSchema(s))throw console.error(`Failed to validate index schema for ${e.repoUrl}`),new Error(`Index schema validation failed for ${e.repoUrl}`);no.default.writeFileSync(n,JSON.stringify(s,null,2),{encoding:"utf-8"}),console.info(`Successfully downloaded index for registry ${e.selector}. Location: ${n}`)}}async initialize(){this.registries=[{selector:this.defaultName,repoUrl:this.defaultIndexUrl}];try{await this.ensureIndexes()}catch(e){console.warn(`Failed to download index for default registry: ${e}`);return}this.save()}load(){if(no.default.existsSync(this.filePath))try{let e=no.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{no.default.writeFileSync(e,JSON.stringify({registries:this.registries},null,2),{encoding:"utf-8"}),no.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(u=>u.selector===e.selector))throw new Error(`Registry with selector '${e.selector}' already exists`);let r=Eu.default.join(this.configDir,".cache",e.selector),n=Eu.default.join(r,"index.json");no.default.mkdirSync(r,{recursive:!0}),e.repoUrl.endsWith(".git")||(e.repoUrl+=".git"),await VB.default.clone({fs:no.default,http:BB,dir:r,url:e.repoUrl,singleBranch:!0,depth:1,onAuth:()=>({password:e.token})}).catch(u=>{throw new Error(`Failed to clone repository ${e.repoUrl}: ${u}`)});let i=Eu.default.join(r,"index.json");if(!no.default.existsSync(i))throw new Error(`Index file not found in repository ${e.repoUrl}`);let o=no.default.readFileSync(i,"utf-8"),s;try{s=JSON.parse(o)}catch(u){throw new Error(`Failed to parse index file: ${u}`)}if(!this.validateIndexSchema(s))throw new Error(`Index schema validation failed for ${e.repoUrl}`);no.default.writeFileSync(n,JSON.stringify(s,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 x_e.default({validateSchema:!1,allErrors:!0}).compile(ame);return n(e)?!0:(console.warn("Index schema validation errors:",n.errors),!1)}};var $u=Me(require("path"),1),WB=Me(require("os"),1),w$=Me(require("fs"),1);var HB;(function(t){t.toString=e=>`${e.Location}@${e.Version}`,t.toURL=e=>new Ef(`${e.Scheme}://${e.Location}`)})(HB||(HB={}));function Fc(t,e){var c;let r=[t],n="git";if(r=r.pop().split("://"),r.length>2)return Vt;r.length===2&&(n=r.shift());let i="";r=r.pop().split("@");try{i=xo(r[1]).toString()}catch(l){return console.error(`Invalid version format for ${t} version: ${r[1]} is not a valid SemVer string`),Vt}let o=r[0],u=new xi(e).list().find(l=>o.startsWith(l.selector));if(u!==void 0){let l;if(e)l=$u.default.resolve(e);else{l=$u.default.join(WB.default.homedir(),".config","kdsl");let k=process.argv.indexOf("--config");k!==-1&&process.argv[k+1]&&(l=$u.default.resolve(process.argv[k+1]))}let f=$u.default.join(l,".cache",u.selector),d=$u.default.join(f,"index.json"),p=w$.default.readFileSync(d,{encoding:"utf-8"}),g=JSON.parse(p).modules.find(k=>k.domain==o);if(g===void 0)return console.warn(`Module not found in registry index: ${o} (registry: ${u.selector})`),Vt;if(g.version!==i)return console.warn(`Module version not found in registry index: ${o} (requested: ${i}, available: ${g.version})`),Vt;let v=o.substring(g.location.length),b=((c=g.location.split("://")[1])!=null?c:g.location).replace(/\/+$/,""),y=v.startsWith("/")?v:`/${v}`;o=`${b}${y}`}return Vr({Location:o,Scheme:n,Version:i,toString(){return HB.toString(this)}})}function k_e(t,e){let i=new xi(e).list().find(o=>t.startsWith(o.selector));if(i!==void 0){let o;if(e)o=$u.default.resolve(e);else{o=$u.default.join(WB.default.homedir(),".config","kdsl");let f=process.argv.indexOf("--config");f!==-1&&process.argv[f+1]&&(o=$u.default.resolve(process.argv[f+1]))}let s=$u.default.join(o,".cache",i.selector),a=$u.default.join(s,"index.json");if(!w$.default.existsSync(a))return console.warn(`Index not found in cache: ${a}`),Vt;let u=w$.default.readFileSync(a,{encoding:"utf-8"}),l=JSON.parse(u).modules.find(f=>f.domain==t);return l===void 0?(console.warn(`Module not found in registry index: ${t} (registry: ${i.selector})`),Vt):Vr(l.checksum)}return Vt}var Uft=V.object({indirect:V.optional(V.boolean()),sum:V.string()}),zft=V.object({spec:V.literal("kumori/sumdb/v1"),content:V.record(V.string(),Uft)}),Mf;(function(t){t.Type=V.discriminatedUnion("spec",[zft]),t.Parse=t.Type.safeParseAsync,t.Retrieve=Bft,t.Register=Vft,t.New=()=>({spec:"kumori/sumdb/v1",content:{}}),t.Open=Hft,t.Read=Wft,t.Write=T_e})(Mf||(Mf={}));var E_e=(t,e)=>{let r=`${t}@${e}`,n=Fc(r);return J.isOk(n)?n.value.toString():r};function Bft(t,e,r){var n;switch(t.spec){case"kumori/sumdb/v1":return je.fromNullable((n=t.content[E_e(e,r)])==null?void 0:n.sum)}}async function Vft(t,e,r,n,i){switch(t.spec){case"kumori/sumdb/v1":{let o=await ap(e.fsPath);t.content[E_e(n,i)]={sum:o};break}}return T_e(r.Locations.Checksum(),t)}var GB=t=>me.joinPath(t.Root,"kumori.sum.json");async function Hft(t){let e;try{e=(await(0,k6.readFile)(t.fsPath)).toString("utf-8")}catch(r){return Ke(Mf.New())}return J.mapErr(await $_e(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function Wft(t){let e;try{e=(await(0,k6.readFile)(t.fsPath)).toString("utf-8")}catch(r){return be(`unable to open sumdb: error reading file '${t.fsPath}'`)}return J.mapErr(await $_e(e),r=>`error parsing sumdb '${t.fsPath}': ${r}`)}async function $_e(t){let e;try{e=JSON.parse(t)}catch(n){return be("invalid json data")}let r=await Mf.Parse(e);if(!r.success){let n,i=Gft(r.error);return i.length===0?n="<unknown error>":n=`
|
|
397
397
|
`+i.join(`
|
|
398
398
|
`),be(n)}return Ke(r.data)}async function T_e(t,e){let r;try{r=JSON.stringify(e,void 0,4)}catch(n){return be("unable to serialize sumdb")}try{await(0,k6.writeFile)(t.fsPath,r)}catch(n){return be(`error writing to sumdb: error writing file '${t.fsPath}': `+n)}return Ke(void 0)}function Gft(t){return P_e("",V.treeifyError(t)).map(([r,n])=>r===""?n:`- [${r}]: ${n}`)}function P_e(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(P_e(`${t}.${n}`,i))));return r}async function vn(t,e){let r=await Lm(t,e);if(J.isErr(r))return be(`not a module: unable to find ${an}`);let n=await Oc(t,r.value);if(J.isErr(n))return n;let i=n.value;return Ke({Current:i,Root:i,Locations:{Cache:xc(()=>$k(i)),Vendor:xc(()=>f_(i)),Checksum:xc(()=>GB(i))}})}(function(t){async function e(r,n,i){let o=await t(n,i);if(J.isErr(o))return be(`move context: ${i.fsPath}: no module in location`);if(o.value.Current.Root.fsPath===r.Current.Root.fsPath)return be(`move context: ${i.fsPath}: module not moved`);let s=o.value.Current;return Ke(te(C({},r),{Current:s,Locations:te(C({},r.Locations),{Vendor:xc(()=>f_(s)),Checksum:xc(()=>GB(s))})}))}t.Move=e})(vn||(vn={}));var R_e=Me(require("assert"),1),C_e=require("path");async function S$(t,e,r=Ue.CancellationToken.None){let n=t.svcs.workspace.FileSystemProvider,i=await vn(n,e.Root);return(0,R_e.default)(J.isOk(i)),await A_e(te(C({},t),{mod:i.value}),r),Array.from(t.cache.values()).filter(je.isSome).map(o=>o.value)}async function A_e(t,e=Ue.CancellationToken.None){let r=t.mod.Current;if(r.Manifest.headers!==void 0){let n=r.Manifest.headers;await Pt(e),await KB(t,n.target,n.version,e)}for(let n of r.Manifest.requires)if(await Pt(e),await KB(t,n.target,n.version,e),n.headers!==void 0){let i=n.headers;await Pt(e),await KB(t,i.target,i.version,e)}}async function KB(t,e,r,n=Ue.CancellationToken.None){let i=t.svcs.workspace.FileSystemProvider,o=to(e,r);if(t.cache.get(o)!==void 0)return;t.cache.set(o,Vt);let a=await Kft(t,e,r);if(J.isErr(a))return;let u=await vn.Move(t.mod,i,a.value);J.isErr(u)||(t.cache.set(o,Ke(u.value.Current)),t=te(C({},t),{mod:u.value}),await A_e(t,n))}async function Kft(t,e,r){let n=t.svcs.workspace.FileSystemProvider,i=to(e,r);if((0,C_e.isAbsolute)(e)){let a=ze.file(e),u=await J.tryCatchAsync(async()=>await n.readDirectory(a));if(J.isOk(u))return Vr(a)}let o=me.joinPath(t.mod.Locations.Vendor(),i),s=await J.tryCatchAsync(async()=>await n.readDirectory(o));return J.isOk(s)?Vr(o):(o=me.joinPath(t.mod.Locations.Cache(),i),s=await J.tryCatchAsync(async()=>await n.readDirectory(o)),J.isOk(s)?Vr(o):Vt)}async function $2(t,e,r=Ue.CancellationToken.None){await Pt(r);let n=[],i=t.ServiceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),o=f_(e).fsPath,s=$k(e).fsPath;return await Ek(t.workspace.FileSystemProvider,e,{Dir:a=>({skipDir:[o,s].includes(a.fsPath)}),File:a=>{let u=me.extname(a);i.includes(u)&&n.push(a)}},r),n}var x$=class{constructor(e){this.svcs=e,this.initialBuildOptions={},this.folders=[],this.mutex=new fm,this._ready=new go}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=Ue.CancellationToken.None){e=e.map(Zft);let n=this.svcs.workspace.LangiumDocuments,i=c=>{n.hasDocument(c.uri)||n.addDocument(c)};this.loadStdlib(i);let o=this.svcs.references.KumoriModules.ResolverCtx(),s=this.svcs.workspace.FileSystemProvider,a=(await Promise.all(e.map(async c=>{let l=await Hde(s,c,r),f=(await Promise.all(l.map(p=>Oc(s,p.Current.Root)))).filter(J.isOk).map(p=>p.value);return(await Promise.all(f.map(p=>S$(o,p,r)))).flat().concat(f)}))).flat();await Promise.all(a.map(async c=>{let l=await $2(this.svcs,c.Root),f=te(C({},c),{Docs:l});await this.svcs.references.KumoriModules.registerModule(f),await this.loadModule(f,i)})),this._ready.resolve(),await Pt(r);let u=this.svcs.workspace.LangiumDocuments.all.toArray();await this.svcs.workspace.DocumentBuilder.build(u,this.initialBuildOptions,r)}loadStdlib(e){let r=this.svcs.workspace.LangiumDocumentFactory;for(let n of sq)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))}async traverseFolder(e,r){try{let n=await this.svcs.workspace.FileSystemProvider.readDirectory(e);await Promise.all(n.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,r):i.isFile&&r.push(i.uri))}))}catch(n){console.error("Failure to read directory content of "+e.toString(!0),n)}}async searchFolder(e){let r=[];return await this.traverseFolder(e,r),r}shouldIncludeEntry(e){let r=me.basename(e.uri);return r.startsWith(".")?!1:e.isDirectory?r!=="node_modules"&&r!=="out":e.isFile?this.svcs.ServiceRegistry.hasServices(e.uri):!1}};function Zft(t){let e=hS(ze.parse(t.uri));return te(C({},t),{uri:e.toString()})}var O_e=Me(Na(),1);var k$=class extends V0{constructor(e){super(e),this.svcs=e}registerFileWatcher(e){let r=St(e.ServiceRegistry.all).flatMap(o=>o.LanguageMetaData.fileExtensions).map(o=>o.startsWith(".")?o.substring(1):o).distinct().toArray(),n={watchers:[]};r.length>0&&n.watchers.push({globPattern:r.length===1?`**/*.${r[0]}`:`**/*.{${r.join(",")}}`}),r.includes("kumori")&&n.watchers.push({globPattern:`**/${an}`});let i=e.lsp.Connection;i==null||i.client.register(O_e.DidChangeWatchedFilesNotification.type,n)}fireDocumentUpdate(e,r){(async()=>{let n=this.svcs.references.KumoriModules,i=[...e,...r].filter(a=>me.basename(a)===an);if(i.length){let a=n.ResolverCtx(),u=this.svcs.workspace.FileSystemProvider,c=(await Promise.all(i.map(async l=>{let f=await Oc(u,l);return J.isErr(f)?[]:(await S$(a,f.value)).concat(f.value)}))).flat();await Promise.all(c.map(async l=>{let f=await $2(this.svcs,l.Root),d=te(C({},l),{Docs:f});await n.registerModule(d)}))}for(let a of i)n.invalidateModule(a);let o=e.filter(a=>me.basename(a)!==an),s=r.filter(a=>me.basename(a)!==an);super.fireDocumentUpdate(o,s)})()}};var Jft={workspace:{WorkspaceManager:t=>new x$(t),IndexManager:t=>new dS(t),DocumentBuilder:t=>new lS(t)},references:{KumoriModules:t=>new mS(t)},lsp:{DocumentUpdateHandler:t=>new k$(t)}},Xft={references:{ScopeComputation:t=>new yS(t),ScopeProvider:t=>new vS(t),Linker:t=>new pS(t),KumoriPackages:t=>new gS(t)},validation:{KumoriValidations:t=>Ude(t),KumoriTypeSystem:t=>new _k(t),DocumentValidator:t=>new fS(t)},lsp:{SemanticTokenProvider:t=>new _S(t)}};function io(t){let e=dm(cae(t),lae,Jft),r=dm(aae({shared:e}),fae,Xft);return e.ServiceRegistry.register(r),qde(r),t.connection||e.workspace.ConfigurationProvider.initialized({}),{shared:e,Kumori:r}}var Zo=Me(require("node:fs"),1),ZB=class{constructor(){this.encoding="utf-8"}async stat(e){let r=await Zo.promises.stat(e.fsPath);return{isFile:r.isFile(),isDirectory:r.isDirectory(),uri:e}}statSync(e){let r=Zo.statSync(e.fsPath);return{isFile:r.isFile(),isDirectory:r.isDirectory(),uri:e}}exists(e){return new Promise(r=>{Zo.stat(e.fsPath,n=>{r(!n)})})}existsSync(e){return Zo.existsSync(e.fsPath)}readBinary(e){return Zo.promises.readFile(e.fsPath)}readBinarySync(e){return Zo.readFileSync(e.fsPath)}readFile(e){return Zo.promises.readFile(e.fsPath,this.encoding)}readFileSync(e){return Zo.readFileSync(e.fsPath,this.encoding)}async readDirectory(e){return(await Zo.promises.readdir(e.fsPath,{withFileTypes:!0})).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:me.joinPath(e,n.name)}))}readDirectorySync(e){return Zo.readdirSync(e.fsPath,{withFileTypes:!0}).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:me.joinPath(e,n.name)}))}},ti={fileSystemProvider:()=>new ZB};var I_e=V.object({name:V.string(),artifact:V.union([oq,xk,kk]),resilience:V.number().nonnegative().optional(),scale:V.union([V.object({}).catchall(V.any()),V.number().nonnegative()]).optional(),config:V.object({}).catchall(V.any()).optional(),resource:V.object({}).catchall(Sf).optional(),meta:V.object({}).catchall(V.any()).optional()});var D_e={m:.001,k:1e3,M:1e6,G:1e9,T:1e12,P:1e15,E:1e18,Ki:1024,Mi:1048576,Gi:1073741824,Ti:1099511627776,Pi:0x4000000000000,Ei:1152921504606847e3},N_e=(t,e)=>{let r=D_e[t.unit],n=D_e[e];return{size:t.size*(r/n),unit:e}};function Cl(t){if(t.$type===UF){let e=zF.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage"}}}if(t.$type===BF)return{volume:VF.parse(t).value};if(t.$type===XF)return{volume:YF.parse(t).value};if(t.$type===HF){let e=WF.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"volatile"}}}if(t.$type===GF){let e=KF.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"persistent"}}}if(t.$type===ZF){let e=JF.parse(t);return{volume:{size:e.value.size,unit:e.value.unit,kind:"storage",type:"nonreplicated"}}}if(t.$type===a_)return{ca:QF.parse(t).value};if(t.$type===c_)return{certificate:eq.parse(t).value};if(t.$type===by)return{secret:tq.parse(t).value};if(t.$type===u_)return{domain:rq.parse(t).value};if(t.$type===l_)return{port:nq.parse(t).value};throw new Error(`unknown resource type '${t.$type}'`)}var L_e=require("path");function M_e(t){return typeof t=="string"?J.orElse(J.map(Sk(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 pg(t,e){if(!e)return[];let r=tt.getDocument(e).uri,n=t.getModule(r);if(J.isErr(n))return[];let i=J.tryCatch(()=>new URL(`file://${n.value.Manifest.module}`));if(J.isErr(i))return[];let o=[];return i.value.hostname.length&&o.push(s=>s.domain=i.value.hostname),i.value.pathname.length&&o.push(s=>{s.module=i.value.pathname.replace(/^\//,""),s.name=(0,L_e.basename)(s.module)}),o}function j_e(t){let e="";return t.domain!==""?(e+=`${t.domain}`,t.module!==""&&(e+=`/${t.module}`)):t.module!==""&&(e+=t.module),e}function F_e(t,e,r){var u,c,l,f,d,p;let n={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},i=t.svcs.shared.references.KumoriModules,o=pg(i,t.nodes.get(e));for(let h of o)h(n);let s=t.nodes.get(e),a="";if(s&&hs(s)&&(a=s.name.value.$refText),a==="")throw new Error("Unable to determine component name for service artifact conversion.");return{spec:[1,0],ref:n,description:{builtin:!1,connector:{},config:{resilience:0,scale:{},parameter:{},resource:{}},role:{[a]:{name:a,meta:{},artifact:JB(t,e,r)}},srv:{client:Object.fromEntries(Object.entries((c=(u=e.srv)==null?void 0:u.client)!=null?c:{}).map(([h,g])=>[h,{protocol:g,inherited:!1}])),server:Object.fromEntries(Object.entries((f=(l=e.srv)==null?void 0:l.server)!=null?f:{}).map(([h,g])=>{let v;return typeof g=="string"?v={port:80,inherited:!1,protocol:g}:v=te(C({},g),{inherited:!1}),[h,v]})),duplex:Object.fromEntries(Object.entries((p=(d=e.srv)==null?void 0:d.duplex)!=null?p:{}).map(([h,g])=>{let v;return typeof g=="string"?v={port:80,inherited:!1,protocol:g}:v=te(C({},g),{inherited:!1}),[h,v]}))}}}}function JB(t,e,r){var l,f,d,p,h,g,v,x,b,y;let n={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"},i=t.svcs.shared.references.KumoriModules,o=pg(i,t.nodes.get(e));for(let w of o)w(n);function s(w,k=!1){return Object.fromEntries(Object.entries(w!=null?w:{}).map(([N,E])=>{var I,U;return[N,{name:N,init:k,entrypoint:E.entrypoint,image:M_e(E.image),cmd:E.cmd,size:{memory:te(C({},E.size.memory),{kind:"ram"}),cpu:te(C({},E.size.cpu),{kind:"cpu"}),mincpu:E.size.mincpu?E.size.mincpu.size:E.size.cpu.size},mapping:{filesystem:Object.fromEntries(Object.entries((I=E.fs)!=null?I:{}).map(([O,M])=>[O,Yft(O,M)])),env:Object.fromEntries(Object.entries((U=E.env)!=null?U:{}).map(([O,M])=>{let $=O,L=typeof M=="string"||typeof M=="number"||typeof M=="boolean"?{value:String(M)}:M;return[$,L]}))}}]}))}let a=Object.fromEntries(((l=e.init)!=null?l:[]).map((w,k)=>[`INIT_${k}`,w])),u=s(e.code),c=s(a,!0);return{spec:[1,0],ref:n,description:{builtin:!1,config:{resilience:0,scale:{hsize:r!=null?r:1},parameter:e.config,resource:Object.fromEntries(Object.entries((f=e.resource)!=null?f:{}).map(([w,k])=>[w,Cl(k)]))},size:{bandwidth:te(C({},e.size.bandwidth),{kind:"bandwidth"}),minbandwidth:Math.ceil(N_e((d=e.size.minbandwidth)!=null?d:e.size.bandwidth,e.size.bandwidth.unit).size),mincpu:te(C({},e.size.mincpu),{kind:"cpu"})},profile:{threadability:"*",iopsintensive:!1},srv:{client:Object.fromEntries(Object.entries((h=(p=e.srv)==null?void 0:p.client)!=null?h:{}).map(([w,k])=>[w,{protocol:k,inherited:!1}])),server:Object.fromEntries(Object.entries((v=(g=e.srv)==null?void 0:g.server)!=null?v:{}).map(([w,k])=>{let N;return typeof k=="string"?N={port:80,portnum:1,inherited:!1,protocol:k}:N=te(C({},k),{portnum:1,inherited:!1}),[w,N]})),duplex:Object.fromEntries(Object.entries((b=(x=e.srv)==null?void 0:x.duplex)!=null?b:{}).map(([w,k])=>{let N;return typeof k=="string"?N={port:80,portnum:1,inherited:!1,protocol:k}:N=te(C({},k),{portnum:1,inherited:!1}),[w,N]}))},code:C(C({},c),u),probe:Object.fromEntries(Object.entries((y=e.probe)!=null?y:{}).map(([w,k])=>[w,k]))}}}function Yft(t,e){var r,n,i,o;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(u=>u in e);if(a){let u=a;return{path:t,data:{[u]:e[u]},format:(i=e.format)!=null?i:"text",mode:(o=e.mode)!=null?o:420}}}throw new Error(`Unknown key '${t}': ${JSON.stringify(e)}`)}function XB(t){var r,n,i;let e=xo(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(([o])=>[o,{protocol:"http",inherited:!1}])),server:Object.fromEntries(Object.entries((n=t.srv.server)!=null?n:{}).map(([o,s])=>{let a;return typeof s=="string"?a={port:80,portnum:1,inherited:!1,protocol:s}:a=te(C({},s),{inherited:!1}),[o,a]}))},config:{resilience:0,scale:{},parameter:(i=t.config)!=null?i:{},resource:Object.fromEntries(Object.entries(t.resource).map(([o,s])=>[o,Cl(s)]))},connector:{},role:{}}}}function q_e(t,e){var r,n;return{name:hg(t),up:T2(t),meta:{},config:{resilience:0,scale:{},parameter:(r=e.config)!=null?r:{},resource:Object.fromEntries(Object.entries((n=e.resource)!=null?n:{}).map(([i,o])=>[i,Cl(o)]))},artifact:XB(e)}}function E$(t,e,r,n){let i=t.svcs.shared.references.KumoriModules,o=pg(i,t.nodes.get(e));for(let s of o)s(r);return n&&(r.kind="service"),r}function YB(t,e){return t.some(r=>JSON.stringify(r)===JSON.stringify(e))}function QB(t,e){return{role:t,channel:e}}function $$(t,e,r){return{meta:t,links:[{role:e,channel:r}]}}function U_e(t,e,r){var i,o,s,a;let n={version:[0,0,0],kind:"component",domain:"unknown",module:"unknown",name:"unknown"};if(r.$type===wy){r=r;let u=[],c=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let l of r.value.from){c.push(QB(l.target,l.channel));for(let f of r.value.to){let d=e.role[f.target=="self"?l.target:f.target],p=jf(d.artifact)||f.target=="self";E$(t,d,n,p);let h=(i=r.value.meta)!=null?i:[{auto:{channel:f.target!=="self"?f.target+"."+f.channel:f.channel,compRef:n,roleName:f.target=="self"?l.target:f.target},user:{}}],g=$$(h,f.target,f.channel);YB(u,g)||u.push(g)}}else if("from"in r.value&&!Array.isArray(r.value.from)&&!Array.isArray(r.value.to)){let l=r.value.from,f=r.value.to;c.push(QB(l.target,l.channel));let d=e.role[f.target=="self"?l.target:f.target],p=jf(d.artifact)||f.target=="self";E$(t,d,n,p);let h=(o=r.value.meta)!=null?o:[{auto:{channel:f.target!=="self"?f.target+"."+f.channel:f.channel,compRef:n,roleName:f.target=="self"?l.target:f.target},user:{}}],g=$$(h,f.target,f.channel);YB(u,g)||u.push(g)}return{kind:"lb",clients:c,servers:u}}if(r.$type===Sy){r=r;let u=[],c=[];if("from"in r.value&&Array.isArray(r.value.from)&&"to"in r.value&&Array.isArray(r.value.to))for(let l of r.value.from){c.push(QB(l.target,l.channel));for(let f of r.value.to){let d=e.role[f.target=="self"?l.target:f.target],p=jf(d.artifact);E$(t,d,n,p);let h=(s=r.value.meta)!=null?s:[{auto:{channel:f.target!=="self"?f.target+"."+f.channel:f.channel,compRef:n,roleName:f.target=="self"?l.target:f.target},user:{}}],g=$$(h,f.target,f.channel);YB(u,g)||u.push(g)}}else if("target"in r.value&&"channel"in r.value){let l=e.role[r.value.target],f=jf(l.artifact);E$(t,l,n,f);let d=(a=r.value.meta)!=null?a:[{auto:{channel:r.value.channel,compRef:n,roleName:r.value.target},user:{}}];u.push($$(d,r.value.target,r.value.channel))}return{kind:"full",clients:c,servers:u}}throw new Error(`unknown connection type '${r.$type}'`)}function eV(t,e,r){var a,u,c,l,f,d,p,h,g,v,x;let n={version:[0,0,0],kind:"service",domain:"unknown",module:"unknown",name:"unknown"},i=t.svcs.shared.references.KumoriModules,o=pg(i,t.nodes.get(e));for(let b of o)b(n);let s={spec:[1,0],ref:n,description:{builtin:!1,config:{resilience:0,scale:{detail:Object.fromEntries(Object.entries((a=e.role)!=null?a:{}).map(([b])=>[b,{hsize:r&&typeof r=="object"&&b in r?r[b]:1}]))},parameter:(u=e==null?void 0:e.config)!=null?u:{},resource:Object.fromEntries(Object.entries((c=e.resource)!=null?c:{}).map(([b,y])=>[b,Cl(y)]))},role:{},connector:Object.fromEntries(Object.entries((l=e.connect)!=null?l:{}).map(([b,y])=>[b,U_e(t,e,y)])),srv:{client:Object.fromEntries(Object.entries((d=(f=e.srv)==null?void 0:f.client)!=null?d:{}).map(([b,y])=>[b,{protocol:y,inherited:!1}])),server:Object.fromEntries(Object.entries((h=(p=e.srv)==null?void 0:p.server)!=null?h:{}).map(([b,y])=>{let w;return typeof y=="string"?w={port:80,inherited:!1,protocol:y}:w=te(C({},y),{inherited:!1}),[b,w]})),duplex:Object.fromEntries(Object.entries((v=(g=e.srv)==null?void 0:g.duplex)!=null?v:{}).map(([b,y])=>{let w;return typeof y=="string"?w={port:80,inherited:!1,protocol:y}:w=te(C({},y),{inherited:!1}),[b,w]}))}}};return s.description.role=Object.fromEntries(Object.entries((x=e.role)!=null?x:{}).map(([b,y])=>[b,edt(t,b,y,s)]).filter(([,b])=>je.isSome(b)).map(([b,y])=>[b,y.value])),s}function Qft(t,e){var r,n,i,o,s,a,u,c;return{name:hg(t),up:T2(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:(s=(o=e.config)==null?void 0:o.parameter)!=null?s:{},resource:Object.fromEntries(Object.entries((u=(a=e.config)==null?void 0:a.resource)!=null?u:{}).map(([l,f])=>[l,Cl(f)]))},artifact:eV(t,e,(c=e.config)==null?void 0:c.scale)}}function edt(t,e,r,n){var s,a,u,c,l,f,d,p,h,g,v,x,b,y,w,k,N,E,j,I,U;if(E6(r.artifact)){let O=(a=(s=n.description.config)==null?void 0:s.scale)!=null&&a.detail?(u=n.description.config.scale.detail[e])==null?void 0:u.hsize:1;return Vr({name:e,meta:r.meta,config:{resilience:0,scale:{hsize:O},parameter:(c=r.artifact.config)!=null?c:{},resource:{}},artifact:JB(t,r.artifact,O)})}let i=r.artifact;t=z_e(t,e),B_e(t,jf(i)?Qft(t,i):q_e(t,i)),(f=(l=n.description).srv)!=null||(l.srv={}),(p=(d=n.description.srv).server)!=null||(d.server={}),(g=(h=n.description.srv).client)!=null||(h.client={});for(let[,O]of Object.entries((v=n.description.connector)!=null?v:{})){for(let M of O.clients){if(M.role!==e)continue;let $=C({},M),L=`${M.role}.${M.channel}`,q=((b=(x=i==null?void 0:i.srv)==null?void 0:x.client)!=null?b:{})[M.channel];n.description.srv.server[L]={inherited:!0,protocol:M.channel=="inbound"?"http":q},M.role="self",M.channel=L,(w=(y=t.root).links)!=null||(y.links=[]),t.root.links.push({meta:{},s_d:hg(t),s_c:$.channel,t_d:T2(t),t_c:L})}for(let M of O.servers)for(let $ of M.links)if($.role===e){let L=`${$.role}.${$.channel}`,q=((N=(k=i==null?void 0:i.srv)==null?void 0:k.server)!=null?N:{})[$.channel];q===void 0&&(q=((j=(E=i==null?void 0:i.srv)==null?void 0:E.duplex)!=null?j:{})[$.channel]),n.description.srv.client[L]={inherited:!0,protocol:typeof q=="string"?q:q.protocol,port:typeof q=="object"?q.port:void 0},(U=(I=t.root).links)!=null||(I.links=[]),t.root.links.push({meta:{},s_d:T2(t),s_c:L,t_d:hg(t),t_c:$.channel}),$.role="self",$.channel=L}}return Vt}var hg=t=>t.path.join("."),T2=t=>t.path.slice(0,-1).join("."),z_e=(t,e)=>te(C({},t),{path:[...t.path,e]}),B_e=(t,e)=>t.root.deployments[hg(t)]=e;function V_e(t,e,r){var o,s,a;let n={cspec:"1.0",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:(o=r.config)!=null?o:{},resource:Object.fromEntries(Object.entries((s=r.resource)!=null?s:{}).map(([u,c])=>[u,Cl(c)])),resilience:(a=r.resilience)!=null?a:0,scale:{detail:(()=>{var u;if(E6(r.artifact)){let c=i.nodes.get(r.artifact),l="";if(c&&hs(c)&&(l=c.name.value.$refText),l==="")throw new Error("Unable to determine component name for scale detail.");return{[l]:{hsize:typeof r.scale=="number"?r.scale:1}}}if(jf(r.artifact)){let c=Object.entries((u=r.artifact.role)!=null?u:{});return Object.fromEntries(c.map(([l])=>[l,{hsize:r.scale&&typeof r.scale=="object"&&!Array.isArray(r.scale)&&l in r.scale?r.scale[l]:1}]))}return{}})()}},artifact:(()=>{if(E6(r.artifact))return F_e(i,r.artifact,r.scale);if(jf(r.artifact))return eV(i,r.artifact,r.scale);if(H_e(r.artifact))return XB(r.artifact);throw new Error("unknown artifact")})()},n}function E6(t){return"size"in t}function jf(t){return!(E6(t)||H_e(t))}function H_e(t){return"id"in t}function W_e(t,e,r){var l,f;let n=e.validation.KumoriTypeSystem,[{Value:i},o]=n.Eval(e.validation.KumoriValidations.ctx(),r);if(o.length!==0){let d=[];for(let p of o){let h=p.node,g=tt.getDocument(h),v=((l=h.$cstNode)==null?void 0:l.range.start)||{line:0,character:0},x=`${g.uri.fsPath}:${v.line}:${v.character}: type error: ${p.message}`;t.error(x),d.push(x)}return be(d)}let s=new Map,a=dl({svcs:e,nodes:s},i);if(J.isErr(a)){let d=[];for(let p of a.err){let h=p.node,g=tt.getDocument(h),v=((f=h.$cstNode)==null?void 0:f.range.start)||{line:0,character:0},x=`${g.uri.fsPath}:${v.line}:${v.character}: json conversion error: ${p.message}`;t.error(x),d.push(x)}return be(d)}let u=I_e.safeParse(a.value);if(!u.success){let d=[];for(let p of u.error.issues){let h=`${p.code}: ${p.path}: invalid deployment: ${p.message}`;t.error(h),d.push(h)}return be(d)}let c=JSON.stringify(V_e(e,s,a.value),null,2);return Ke(c)}function T$(t,e=new Jn){if(t.Manifest.headers!==void 0){let[r,n]=[t.Manifest.headers.target,t.Manifest.headers.version],i=to(r,n);e.add(i,{target:r,version:n})}for(let r of t.Manifest.requires){let[n,i]=[r.target,r.version],o={target:n,version:i},s=to(n,i);if(e.add(s,o),r.headers!==void 0){let[a,u]=[r.headers.target,r.headers.version],c=to(a,u);o.interface={target:a,version:u},e.add(c,o.interface)}}return e}var Yp=Me(require("assert"),1);var G_e=require("path");async function $6(t,e,r){let n=to(e,r),i=Fc(n);if(je.isSome(i)&&(e=i.value.Location),(0,G_e.isAbsolute)(e)){let a=ze.file(e),u=await Oc(t.FS,a);return J.isOk(u)?u:Vt}let o=me.joinPath(t.Locations.Vendor(),n),s=await Oc(t.FS,o);return J.isOk(s)||(o=me.joinPath(t.Locations.Cache(),n),s=await Oc(t.FS,o),J.isOk(s))?s:Vt}var wP=Me(require("node:path"),1);var YW=Me(m7e(),1);var c9e=require("node:buffer"),sP=Me(P7e(),1),nP=Me(nW(),1),Y9e=require("child_process"),NSe=Me(oW(),1),WSe=require("node:path"),ev=Me(oW(),1),uxe=require("node:events");var EW=Object.defineProperty,Vht=Object.getOwnPropertyDescriptor,$W=Object.getOwnPropertyNames,Hht=Object.prototype.hasOwnProperty,Ve=(t,e)=>function(){return t&&(e=(0,t[$W(t)[0]])(t=0)),e},Wht=(t,e)=>function(){return e||(0,t[$W(t)[0]])((e={exports:{}}).exports,e),e.exports},$i=(t,e)=>{for(var r in e)EW(t,r,{get:e[r],enumerable:!0})},Ght=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $W(e))!Hht.call(t,i)&&i!==r&&EW(t,i,{get:()=>e[i],enumerable:!(n=Vht(e,i))||n.enumerable});return t},di=t=>Ght(EW({},"__esModule",{value:!0}),t);function Kht(...t){let e=new String(t);return oP.set(e,t),e}function eP(t){return t instanceof String&&oP.has(t)}function R7e(t){return oP.get(t)||[]}var oP,H6=Ve({"src/lib/args/pathspec.ts"(){"use strict";oP=new WeakMap}}),zf,Zp=Ve({"src/lib/errors/git-error.ts"(){"use strict";zf=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),W6,rv=Ve({"src/lib/errors/git-response-error.ts"(){"use strict";Zp(),W6=class extends zf{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),s9e,a9e=Ve({"src/lib/errors/task-configuration-error.ts"(){"use strict";Zp(),s9e=class extends zf{constructor(t){super(void 0,t)}}}});function u9e(t){return typeof t!="function"?Tg:t}function l9e(t){return typeof t=="function"&&t!==Tg}function f9e(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function d9e(t,e=0){return p9e(t)&&t.length>e?t[e]:void 0}function $g(t,e=0){if(p9e(t)&&t.length>e)return t[t.length-1-e]}function p9e(t){return lP(t)}function G6(t="",e=!0,r=`
|
|
399
399
|
`){return t.split(r).reduce((n,i)=>{let o=e?i.trim():i;return o&&n.push(o),n},[])}function TW(t,e){return G6(t,!0).map(r=>e(r))}function PW(t){return(0,sP.exists)(t,sP.FOLDER)}function Nr(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function h9e(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function aP(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function Dl(t){return Array.isArray(t)?t:[t]}function m9e(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function nv(t){return Dl(t).map(e=>e instanceof String?e:String(e))}function _n(t,e=0){if(t==null)return e;let r=parseInt(t,10);return Number.isNaN(r)?e:r}function B6(t,e){let r=[];for(let n=0,i=t.length;n<i;n++)r.push(e,t[n]);return r}function V6(t){return(Array.isArray(t)?c9e.Buffer.concat(t):t).toString("utf-8")}function g9e(t,e){let r={};return e.forEach(n=>{t[n]!==void 0&&(r[n]=t[n])}),r}function dW(t=0){return new Promise(e=>setTimeout(e,t))}function pW(t){if(t!==!1)return t}var tv,Tg,K6,cP=Ve({"src/lib/utils/util.ts"(){"use strict";RW(),tv="\0",Tg=()=>{},K6=Object.prototype.toString.call.bind(Object.prototype.toString)}});function rc(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function hW(t,e){let r=eP(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function uP(t){return!!t&&K6(t)==="[object Object]"}function y9e(t){return typeof t=="function"}var Z6,v9e,co,tP,lP,RW=Ve({"src/lib/utils/argument-filters.ts"(){"use strict";H6(),cP(),Z6=t=>Array.isArray(t),v9e=t=>typeof t=="number",co=t=>typeof t=="string",tP=t=>co(t)||Array.isArray(t)&&t.every(co),lP=t=>t==null||"number|boolean|function".includes(typeof t)?!1:typeof t.length=="number"}}),mW,Zht=Ve({"src/lib/utils/exit-codes.ts"(){"use strict";mW=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(mW||{})}}),rP,Jht=Ve({"src/lib/utils/git-output-streams.ts"(){"use strict";rP=class b9e{constructor(e,r){this.stdOut=e,this.stdErr=r}asStrings(){return new b9e(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});function Xht(){throw new Error("LineParser:useMatches not implemented")}var Ut,Kp,Yht=Ve({"src/lib/utils/line-parser.ts"(){"use strict";Ut=class{constructor(t,e){this.matches=[],this.useMatches=Xht,this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,o)=>this.addMatch(i,o,r(o)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}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))}},Kp=class extends Ut{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 _9e(...t){let e=process.cwd(),r=Object.assign(C({baseDir:e},w9e),...t.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}var w9e,Qht=Ve({"src/lib/utils/simple-git-options.ts"(){"use strict";w9e={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function CW(t,e=[]){return uP(t)?Object.keys(t).reduce((r,n)=>{let i=t[n];if(eP(i))r.push(i);else if(hW(i,["boolean"]))r.push(n+"="+i);else if(Array.isArray(i))for(let o of i)hW(o,["string","number"])||r.push(n+"="+o);else r.push(n);return r},e):e}function pa(t,e=0,r=!1){let n=[];for(let i=0,o=e<0?t.length:e;i<o;i++)"string|number".includes(typeof t[i])&&n.push(String(t[i]));return CW(AW(t),n),r||n.push(...emt(t)),n}function emt(t){let e=typeof $g(t)=="function";return nv(rc($g(t,e?1:0),Z6,[]))}function AW(t){let e=y9e($g(t));return rc($g(t,e?1:0),uP)}function pi(t,e=!0){let r=u9e($g(t));return e||l9e(r)?r:void 0}var tmt=Ve({"src/lib/utils/task-options.ts"(){"use strict";RW(),cP(),H6()}});function gW(t,e){return t(e.stdOut,e.stdErr)}function ma(t,e,r,n=!0){return Dl(r).forEach(i=>{for(let o=G6(i,n),s=0,a=o.length;s<a;s++){let u=(c=0)=>{if(!(s+c>=a))return o[s+c]};e.some(({parse:c})=>c(u,t))}}),t}var rmt=Ve({"src/lib/utils/task-parser.ts"(){"use strict";cP()}}),S9e={};$i(S9e,{ExitCodes:()=>mW,GitOutputStreams:()=>rP,LineParser:()=>Ut,NOOP:()=>Tg,NULL:()=>tv,RemoteLineParser:()=>Kp,append:()=>Nr,appendTaskOptions:()=>CW,asArray:()=>Dl,asCamelCase:()=>m9e,asFunction:()=>u9e,asNumber:()=>_n,asStringArray:()=>nv,bufferToString:()=>V6,callTaskParser:()=>gW,createInstanceConfig:()=>_9e,delay:()=>dW,filterArray:()=>Z6,filterFunction:()=>y9e,filterHasLength:()=>lP,filterNumber:()=>v9e,filterPlainObject:()=>uP,filterPrimitives:()=>hW,filterString:()=>co,filterStringOrStringArray:()=>tP,filterType:()=>rc,first:()=>d9e,folderExists:()=>PW,forEachLineWithContent:()=>TW,getTrailingOptions:()=>pa,including:()=>h9e,isUserFunction:()=>l9e,last:()=>$g,objectToString:()=>K6,orVoid:()=>pW,parseStringResponse:()=>ma,pick:()=>g9e,prefixedArray:()=>B6,remove:()=>aP,splitOn:()=>f9e,toLinesWithContent:()=>G6,trailingFunctionArgument:()=>pi,trailingOptionsArgument:()=>AW});var It=Ve({"src/lib/utils/index.ts"(){"use strict";RW(),Zht(),Jht(),Yht(),Qht(),tmt(),rmt(),cP()}}),x9e={};$i(x9e,{CheckRepoActions:()=>yW,checkIsBareRepoTask:()=>E9e,checkIsRepoRootTask:()=>k9e,checkIsRepoTask:()=>nmt});function nmt(t){switch(t){case"bare":return E9e();case"root":return k9e()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:fP,parser:OW}}function k9e(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:fP,parser(e){return/^\.(git)?$/.test(e.trim())}}}function E9e(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:fP,parser:OW}}function imt(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}var yW,fP,OW,$9e=Ve({"src/lib/tasks/check-is-repo.ts"(){"use strict";It(),yW=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(yW||{}),fP=({exitCode:t},e,r,n)=>{if(t===128&&imt(e))return r(Buffer.from("false"));n(e)},OW=t=>t.trim()==="true"}});function omt(t,e){let r=new T9e(t),n=t?R9e:P9e;return G6(e).forEach(i=>{let o=i.replace(n,"");r.paths.push(o),(C9e.test(o)?r.folders:r.files).push(o)}),r}var T9e,P9e,R9e,C9e,smt=Ve({"src/lib/responses/CleanSummary.ts"(){"use strict";It(),T9e=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},P9e=/^[a-z]+\s*/i,R9e=/^[a-z]+\s+[a-z]+\s*/i,C9e=/\/$/}}),vW={};$i(vW,{EMPTY_COMMANDS:()=>dP,adhocExecTask:()=>A9e,configurationErrorTask:()=>ha,isBufferTask:()=>I9e,isEmptyTask:()=>D9e,straightThroughBufferTask:()=>O9e,straightThroughStringTask:()=>Rs});function A9e(t){return{commands:dP,format:"empty",parser:t}}function ha(t){return{commands:dP,format:"empty",parser(){throw typeof t=="string"?new s9e(t):t}}}function Rs(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function O9e(t){return{commands:t,format:"buffer",parser(e){return e}}}function I9e(t){return t.format==="buffer"}function D9e(t){return t.format==="empty"||!t.commands.length}var dP,Ei=Ve({"src/lib/tasks/task.ts"(){"use strict";a9e(),dP=[]}}),N9e={};$i(N9e,{CONFIG_ERROR_INTERACTIVE_MODE:()=>IW,CONFIG_ERROR_MODE_REQUIRED:()=>DW,CONFIG_ERROR_UNKNOWN_OPTION:()=>NW,CleanOptions:()=>JT,cleanTask:()=>L9e,cleanWithOptionsTask:()=>amt,isCleanOptionsArray:()=>cmt});function amt(t,e){let{cleanMode:r,options:n,valid:i}=umt(t);return r?i.options?(n.push(...e),n.some(dmt)?ha(IW):L9e(r,n)):ha(NW+JSON.stringify(t)):ha(DW)}function L9e(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(n){return omt(t==="n",n)}}}function cmt(t){return Array.isArray(t)&&t.every(e=>LW.has(e))}function umt(t){let e,r=[],n={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(i=>{lmt(i)?(e=i,n.cleanMode=!0):n.options=n.options&&fmt(r[r.length]=`-${i}`)}),{cleanMode:e,options:r,valid:n}}function lmt(t){return t==="f"||t==="n"}function fmt(t){return/^-[a-z]$/i.test(t)&&LW.has(t.charAt(1))}function dmt(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}var IW,DW,NW,JT,LW,M9e=Ve({"src/lib/tasks/clean.ts"(){"use strict";smt(),It(),Ei(),IW="Git clean interactive mode is not supported",DW='Git clean mode parameter ("n" or "f") is required',NW="Git clean unknown option found in: ",JT=(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))(JT||{}),LW=new Set(["i",...nv(Object.values(JT))])}});function pmt(t){let e=new F9e;for(let r of j9e(t))e.addValue(r.file,String(r.key),r.value);return e}function hmt(t,e){let r=null,n=[],i=new Map;for(let o of j9e(t,e))o.key===e&&(n.push(r=o.value),i.has(o.file)||i.set(o.file,[]),i.get(o.file).push(r));return{key:e,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function mmt(t){return t.replace(/^(file):/,"")}function*j9e(t,e=null){let r=t.split("\0");for(let n=0,i=r.length-1;n<i;){let o=mmt(r[n++]),s=r[n++],a=e;if(s.includes(`
|
|
@@ -432,7 +432,7 @@ Some usage examples:
|
|
|
432
432
|
The generated solution.json file will be created in the package directory, containing all necessary
|
|
433
433
|
information for deploying the resources defined in the package's deployment artifacts.
|
|
434
434
|
`.trim();function y0t(t){return async(e=".",r=".")=>{await new xi().ensureIndexes();let i=io(ti).Kumori,o=await v0t(t,i,e,r);J.isErr(o)&&process.exit(1)}}async function v0t(t,e,r,n){var U;let i=e.shared.workspace.FileSystemProvider,o=await vn(i,ze.file(wP.default.resolve(n)));if(J.isErr(o)){let O=`error: ${o.err}`;return t.error(O),be([O])}let s=C({FS:i},o.value),a=await Axe(s);if(a.size>0){let O=["error: missing modules"];t.error(O[0]);for(let $ of a){let L=`+ ${$}`;t.error(L),O.push(L)}let M="unable to build solution.json";return t.error(M),O.push(M),be(O)}let u=await Bf(t,e,o.value);if(J.isErr(u))return t.error(`failed to check modules ${u.err.join(`
|
|
435
|
-
`)}`),u;let c=me.joinPath(o.value.Current.Root,r),l=e.references.KumoriPackages.GetPackage(c);if(J.isErr(l)){let O=`error: failed to retrieve package: ${c.toString()}`;return t.error(O),be([O])}let f=new Set(l.value.docs.map(O=>O.uri.toString())),d=e.shared.workspace.IndexManager.allElements(Vi.$type,f).toArray();if(d.length<1){let O=`error: no deployment defined in ${c.toString()}`;return t.error(O),be([O])}if(d.length>1){let O=`error: too many deployments in ${c.toString()}`;return t.error(O),be([O])}let p=d[0],h=p.node;if(!bo(h)){let O=`error: invalid target doc=${p.documentUri} location=${p.path}`;return t.error(O),be([O])}let g=W_e(t,e,h);if(J.isErr(g))return g;let v=wP.default.join(c.fsPath,"solution.json");await QW.promises.writeFile(v,g.value,"utf-8"),t.info(`solution.json written to ${v}`);let x=JSON.parse(g.value),b=h.body.stmt.find(O=>O.$type==="StructEntry"&&O.key==="name");(0,Yp.default)(b&&b.$type==="StructEntry"&&b.value.$type==="StringLiteralExpression");let y=x.deployments[b.value.value];y&&y.artifact&&(delete y.artifact.description,delete y.artifact.spec);let w=h.body.stmt.find(O=>O.$type==="StructEntry"&&O.key==="artifact");(0,Yp.default)(w&&w.$type==="StructEntry"),(0,Yp.default)(w.value.$type==="IdentifierExpression"),(0,Yp.default)(w.value.value.ref);let k=y.artifact.ref,N=j_e(k),E=(U=h.$container.imports.find(O=>O.target.$refText.includes(N)))==null?void 0:U.target.$refText,j=E==null?void 0:E.substring(N.length+1);y.artifact.ref.package=j
|
|
435
|
+
`)}`),u;let c=me.joinPath(o.value.Current.Root,r),l=e.references.KumoriPackages.GetPackage(c);if(J.isErr(l)){let O=`error: failed to retrieve package: ${c.toString()}`;return t.error(O),be([O])}let f=new Set(l.value.docs.map(O=>O.uri.toString())),d=e.shared.workspace.IndexManager.allElements(Vi.$type,f).toArray();if(d.length<1){let O=`error: no deployment defined in ${c.toString()}`;return t.error(O),be([O])}if(d.length>1){let O=`error: too many deployments in ${c.toString()}`;return t.error(O),be([O])}let p=d[0],h=p.node;if(!bo(h)){let O=`error: invalid target doc=${p.documentUri} location=${p.path}`;return t.error(O),be([O])}let g=W_e(t,e,h);if(J.isErr(g))return g;let v=wP.default.join(c.fsPath,"solution.json");await QW.promises.writeFile(v,g.value,"utf-8"),t.info(`solution.json written to ${v}`);let x=JSON.parse(g.value),b=h.body.stmt.find(O=>O.$type==="StructEntry"&&O.key==="name");(0,Yp.default)(b&&b.$type==="StructEntry"&&b.value.$type==="StringLiteralExpression");let y=x.deployments[b.value.value];y&&y.artifact&&(delete y.artifact.description,delete y.artifact.spec);let w=h.body.stmt.find(O=>O.$type==="StructEntry"&&O.key==="artifact");(0,Yp.default)(w&&w.$type==="StructEntry"),(0,Yp.default)(w.value.$type==="IdentifierExpression"),(0,Yp.default)(w.value.value.ref);let k=y.artifact.ref,N=j_e(k),E=(U=h.$container.imports.find(O=>O.target.$refText.includes(N)))==null?void 0:U.target.$refText,j=E==null?void 0:E.substring(N.length+1);y.artifact.ref.package=j||"",w.value.next?((0,Yp.default)(w.value.next.$type==="IdentifierExpression"),y.artifact.ref.name=w.value.next.value.$refText):y.artifact.ref.name=w.value.value.$refText;let I=wP.default.join(c.fsPath,"deployment-config.json");return await QW.promises.writeFile(I,JSON.stringify(y,null,2),"utf-8"),t.info(`deployment-config.json written to ${I}`),Ke(void 0)}async function Axe(t,e=new Set){let r=T$(t.Current);for(let[,n]of r.entriesGroupedByKey()){(0,Yp.default)(n.length>0);let{target:i,version:o}=n[0],s=await $6(t,i,o);if(je.isNone(s)){e.add(to(i,o));continue}let a=await vn.Move(t,t.FS,s.value.Root);(0,Yp.default)(J.isOk(a));let u=C(C({},t),a.value);await Axe(u,e)}return e}var Oxe={Register:h0t};var Ixe=require("fs/promises"),Dxe={Register:b0t};function b0t(t,e){return t.command("clean").summary(_0t).description(w0t).action(S0t(e))}var _0t=`
|
|
436
436
|
remove cached files
|
|
437
437
|
`.trim(),w0t=`
|
|
438
438
|
The kdsl command builds most artifacts in a temporary directory, so kdsl clean is
|
|
@@ -539,7 +539,7 @@ If the module is not located in the current directory, you can provide a custom
|
|
|
539
539
|
kdsl mod update -v 1.0.0 -p ./my-module
|
|
540
540
|
`.trim();function Rbt(t){return async e=>{await Cbt(t,process.cwd(),e)}}var Cbt=async(t,e,r)=>{var l,f,d;let n=ti.fileSystemProvider(),i=(l=r.path)!=null?l:e;P8.default.isAbsolute(i)||(i=P8.default.join(e,i));let o=await Lm(n,ze.file(i));je.isSome(o)&&o.value.fsPath===i&&(t.error(`error: module ${i} already exists`),process.exit(1));let s=await n.readFile(ze.file(P8.default.join(i,an))),a=JSON.parse(s),u={spec:"kumori/module/v1",kumori:"0.0.1",version:(f=r.version)!=null?f:a.version,module:a.module,cacheLocation:(d=r.cacheLocation)!=null?d:a.cacheLocation,requires:[]},c=P8.default.join(i,an);await(0,uR.mkdir)(i,{recursive:!0}),await(0,uR.writeFile)(c,JSON.stringify(u,null,4)),t.info(`updated ${an}: module ${u.module}`)};var x$e={Register:Abt};function Abt(t,e){let r=t.command("mod").summary(Obt).description(Ibt).helpCommand(!1).helpOption(!1);return Nxe.Register(r,e),Pxe.Register(r,e),Uxe.Register(r,e),_$e.Register(r,e),w$e.Register(r),S$e.Register(r,e),r}var Obt="module maintenance",Ibt=`
|
|
541
541
|
Provides access to operations on modules.
|
|
542
|
-
`.trim();var k$e={name:"@kumori/kdsl",version:"0.0.
|
|
542
|
+
`.trim();var k$e={name:"@kumori/kdsl",version:"0.0.21",private:!1,files:["bin","out","dist"],type:"module",description:"Kumori DSL command line interface and library",bin:{kdsl:"bin/cli.js"},main:"./out/lib/index.cjs",module:"./dist/lib/index.js",types:"./dist/lib/index.d.ts",exports:{".":{import:"./dist/lib/index.js",require:"./out/lib/index.cjs",types:"./dist/lib/index.d.ts"},"./build":{import:"./dist/lib/build.js",require:"./out/lib/build.cjs",types:"./dist/lib/build.d.ts"},"./deployment":{import:"./dist/lib/deployment.js",require:"./out/lib/deployment.cjs",types:"./dist/lib/deployment.d.ts"},"./check":{import:"./dist/lib/check.js",require:"./out/lib/check.cjs",types:"./dist/lib/check.d.ts"},"./clean":{import:"./dist/lib/clean.js",require:"./out/lib/clean.cjs",types:"./dist/lib/clean.d.ts"},"./mod":{import:"./dist/lib/mod.js",require:"./out/lib/mod.cjs",types:"./dist/lib/mod.d.ts"},"./registry":{import:"./dist/lib/registry.js",require:"./out/lib/registry.cjs",types:"./dist/lib/registry.d.ts"},"./index-cmd":{import:"./dist/lib/index-cmd.js",require:"./out/lib/index-cmd.cjs",types:"./dist/lib/index-cmd.d.ts"}},scripts:{build:"npm run fix && npm run build:types && npm run build:cli && npm run copy-loader","build:types":"tsc -b tsconfig.json","build:cli":"node esbuild.mjs --minify","build:lib":"node esbuild.mjs --minify --target=cjs && node esbuild.mjs --minify --target=esm","copy-loader":"mkdir -p out/lib dist/lib && rsync -av --include='*/' --include='*.kumori' --exclude='*' src/ out/ && rsync -av --include='*/' --include='*.kumori' --exclude='*' src/ dist/ && rsync -av --include='*/' --include='*.kumori' --exclude='*' ../lsp/dist/language/builtin/lib/ out/lib/ && rsync -av --include='*/' --include='*.kumori' --exclude='*' ../lsp/dist/language/builtin/lib/ dist/lib/ && bash -c 'shopt -s globstar && cp src/**/*.kumori out/'",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":"^14.0.0","@inquirer/prompts":"^8.0.2","@kumori/kdsl-lsp":"0.0.1-alpha.15",ajv:"^8.17.1",chalk:"~5.6.2",commander:"~14.0.2",zod:"^4.1.13"},license:"EUPL",keywords:["cli","tool","automation","kumori","dsl"],gitHead:"89bea74c68de5f90f37ccc0e64b340408c90b76d",devDependencies:{"@eslint/js":"^9.39.1",eslint:"^9.39.1",globals:"^16.5.0",jiti:"^2.6.1",prettier:"3.7.3","typescript-eslint":"^8.48.0"}};var Nbt="<unknown>",E$e,Lbt=(E$e=k$e.version)!=null?E$e:Nbt,$$e=Lbt;var T$e={Register:Mbt};function Mbt(t,e){return t.command("add").argument("<selector>","Name selector for matching dependencies").argument("<url>","Repository URL where the registry index file is located").argument("[token]","(optional) Access token for private repositories").summary(jbt).description(Fbt).action(qbt(e))}var jbt=`
|
|
543
543
|
add a new registry
|
|
544
544
|
`.trim(),Fbt=`
|
|
545
545
|
Add a registry to the resolver configuration. The selector argument is used to match artifacts.
|