@kumori/kdsl 0.0.15 → 0.0.16

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.
Files changed (92) hide show
  1. package/dist/build/deployment_spec.d.ts +1133 -19642
  2. package/dist/build/deployment_spec.js +14 -13
  3. package/dist/build/deployment_spec.js.map +1 -1
  4. package/dist/build/helpers/builtin.js +7 -9
  5. package/dist/build/helpers/builtin.js.map +1 -1
  6. package/dist/build/helpers/component.d.ts +2 -2
  7. package/dist/build/helpers/component.js +28 -28
  8. package/dist/build/helpers/component.js.map +1 -1
  9. package/dist/build/helpers/connector.js +4 -5
  10. package/dist/build/helpers/connector.js.map +1 -1
  11. package/dist/build/helpers/deployment.d.ts +96 -96
  12. package/dist/build/helpers/deployment.js +8 -9
  13. package/dist/build/helpers/deployment.js.map +1 -1
  14. package/dist/build/helpers/resource.d.ts +4 -4
  15. package/dist/build/helpers/service.d.ts +1 -1
  16. package/dist/build/helpers/service.js +29 -32
  17. package/dist/build/helpers/service.js.map +1 -1
  18. package/dist/build/helpers/utils.d.ts +8 -0
  19. package/dist/build/helpers/utils.js +23 -1
  20. package/dist/build/helpers/utils.js.map +1 -1
  21. package/dist/build/main.js +51 -2
  22. package/dist/build/main.js.map +1 -1
  23. package/dist/build/solution.js +2 -3
  24. package/dist/build/solution.js.map +1 -1
  25. package/dist/check/main.js +1 -1
  26. package/dist/check/main.js.map +1 -1
  27. package/dist/deployment/gen/deployment-template.kumori +33 -0
  28. package/dist/deployment/gen/main.d.ts +15 -0
  29. package/dist/deployment/gen/main.js +158 -0
  30. package/dist/deployment/gen/main.js.map +1 -0
  31. package/dist/deployment/gen/types.d.ts +27 -0
  32. package/dist/deployment/gen/types.js +2 -0
  33. package/dist/deployment/gen/types.js.map +1 -0
  34. package/dist/deployment/main.d.ts +8 -0
  35. package/dist/deployment/main.js +17 -0
  36. package/dist/deployment/main.js.map +1 -0
  37. package/dist/index/create/main.js +38 -16
  38. package/dist/index/create/main.js.map +1 -1
  39. package/dist/lib/build.js +42 -28
  40. package/dist/lib/build.js.map +1 -1
  41. package/dist/lib/check.js +45 -15
  42. package/dist/lib/check.js.map +1 -1
  43. package/dist/lib/clean.js +39 -1
  44. package/dist/lib/deployment.d.ts +35 -0
  45. package/dist/lib/deployment.js +31 -0
  46. package/dist/lib/deployment.js.map +1 -0
  47. package/dist/lib/index-cmd.js +60 -57
  48. package/dist/lib/index-cmd.js.map +1 -1
  49. package/dist/lib/index.d.ts +2 -0
  50. package/dist/lib/index.js +54 -117
  51. package/dist/lib/index.js.map +1 -1
  52. package/dist/lib/logger.js +1 -1
  53. package/dist/lib/logger.js.map +1 -1
  54. package/dist/lib/mod.js +144 -70
  55. package/dist/lib/mod.js.map +1 -1
  56. package/dist/lib/registry.d.ts +4 -4
  57. package/dist/lib/registry.js +67 -1
  58. package/dist/lib/registry.js.map +1 -1
  59. package/dist/main.js +2 -0
  60. package/dist/main.js.map +1 -1
  61. package/dist/mod/dependency/main.js +17 -10
  62. package/dist/mod/dependency/main.js.map +1 -1
  63. package/dist/mod/download/functions.js +5 -5
  64. package/dist/mod/download/functions.js.map +1 -1
  65. package/dist/mod/download/main.js +12 -2
  66. package/dist/mod/download/main.js.map +1 -1
  67. package/dist/mod/init/main.js +1 -1
  68. package/dist/mod/init/main.js.map +1 -1
  69. package/dist/mod/jsonschema/gen/main.js +14 -7
  70. package/dist/mod/jsonschema/gen/main.js.map +1 -1
  71. package/dist/mod/jsonschema/get/main.js +10 -2
  72. package/dist/mod/jsonschema/get/main.js.map +1 -1
  73. package/dist/mod/update/main.js +3 -4
  74. package/dist/mod/update/main.js.map +1 -1
  75. package/dist/registry/add.d.ts +1 -1
  76. package/dist/registry/add.js +12 -7
  77. package/dist/registry/add.js.map +1 -1
  78. package/dist/util/err-format.js +1 -2
  79. package/dist/util/err-format.js.map +1 -1
  80. package/dist/version.js +1 -2
  81. package/dist/version.js.map +1 -1
  82. package/out/deployment/gen/deployment-template.kumori +33 -0
  83. package/out/deployment-template.kumori +33 -0
  84. package/out/main.cjs +378 -209
  85. package/package.json +20 -14
  86. package/out/lib/build.cjs +0 -29
  87. package/out/lib/check.cjs +0 -16
  88. package/out/lib/clean.cjs +0 -2
  89. package/out/lib/index-cmd.cjs +0 -58
  90. package/out/lib/index.cjs +0 -118
  91. package/out/lib/mod.cjs +0 -71
  92. package/out/lib/registry.cjs +0 -2
package/dist/lib/mod.js CHANGED
@@ -1,70 +1,144 @@
1
- var de=Object.defineProperty,bt=Object.defineProperties;var St=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable;var ue=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t);var H=(t,e,r)=>e in t?de(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,f=(t,e)=>{for(var r in e||(e={}))Pt.call(e,r)&&H(t,r,e[r]);if(le)for(var r of le(e))Ct.call(e,r)&&H(t,r,e[r]);return t},y=(t,e)=>bt(t,St(e));var k=(t,e)=>()=>(t&&(e=t(t=0)),e);var R=(t,e)=>{for(var r in e)de(t,r,{get:e[r],enumerable:!0})};var w=(t,e,r)=>(H(t,typeof e!="symbol"?e+"":e,r),r);var ce=(t,e,r)=>{if(e!=null){if(typeof e!="object"&&typeof e!="function")throw TypeError("Object expected");var o;if(r&&(o=e[ue("asyncDispose")]),o===void 0&&(o=e[ue("dispose")]),typeof o!="function")throw TypeError("Object not disposable");t.push([r,o,e])}else r&&t.push([r]);return e},me=(t,e,r)=>{var o=typeof SuppressedError=="function"?SuppressedError:function(n,s,l,d){return d=Error(l),d.name="SuppressedError",d.error=n,d.suppressed=s,d},i=n=>e=r?new o(n,e,"An error was suppressed during disposal"):(r=!0,n),a=n=>{for(;n=t.pop();)try{var s=n[1]&&n[1].call(n[2]);if(n[0])return Promise.resolve(s).then(a,l=>(i(l),a()))}catch(l){i(l)}if(r)throw e};return a()};var Se={};R(Se,{Action:()=>xe,Description:()=>Me,NewModule:()=>be,Register:()=>Le,default:()=>$t});import{Maybe as kt}from"@kumori/kdsl-lsp/util/maybe.js";import{mkdir as Et,writeFile as Ot}from"fs/promises";import{URI as Rt}from"langium";import{NodeFileSystem as _t}from"langium/node";import{LocateModuleManifest as Ft,MOD_FILE as ye}from"@kumori/kdsl-lsp/module/locator.js";import W from"path";function Le(t,e){return t.command("init").summary(It).argument("<name>","module name (e.g., kumori.systems/my-module)").argument("<version>","module version - defaults to 0.0.1").argument("[path]","location to create the module under - defaults to the current directory").argument("[cacheLocation]","location to store cached modules - default to .kumori/mod").description(Me).helpOption(!0).action(xe(e))}function xe(t){return async(...e)=>{await be(t,process.cwd(),...e)}}var $t,It,Me,be,Pe=k(()=>{"use strict";$t={Register:Le};It="initializes a new kumori module",Me=`
2
- Initializes a new Kumori module, which effectively means to create a new
3
- kumori.mod.json file or overwrite it in case it already exists.
4
- It is required to provide a name and a version for the module and optionally
5
- a location path where the new module is going to be initialized.
6
-
7
- kdsl mod init kumori.systems/my-module
8
-
9
- You could as well provide a custom location for the module's local cache,
10
- where all the dependencies will be downloaded. By default, the cache location
11
- is set to ".kumori/mod" under the module location.
12
-
13
- kdsl mod init kumori.systems/my-module ./my-module
14
-
15
- `.trim();be=async(t,e,...[r,o,i,a])=>{let n=_t.fileSystemProvider();i=i!=null?i:e,W.isAbsolute(i)||(i=W.join(e,i));let s=await Ft(n,Rt.file(i));kt.isSome(s)&&s.value.fsPath===i&&(t.error(`error: module ${i} already exists`),process.exit(1));let l={spec:"kumori/module/v1",kumori:"0.0.1",version:o,module:r,cacheLocation:a,requires:[]},d=W.join(i,ye);await Et(i,{recursive:!0}),await Ot(d,JSON.stringify(l,null,4)),t.info(`creating new ${ye}: module ${r}`)}});import{Result as Nt}from"@kumori/kdsl-lsp/util/result.js";function F(t,e){if(Nt.isErr(e)){for(let r of e.err)t.error(r);process.exit(1)}return e.value}var K=k(()=>{"use strict"});import{ParseQuery as Te}from"@kumori/kdsl-lsp/module/query.js";import{Maybe as V,None as At,Some as Bt}from"@kumori/kdsl-lsp/util/maybe.js";import{Err as D,Ok as Y,Result as E}from"@kumori/kdsl-lsp/util/result.js";import{Version as Ce}from"@kumori/kdsl-lsp/module/version.js";import{ListDependencies as jt}from"@kumori/kdsl-lsp/module/dependency/list.js";import X from"assert";import{LocateDependency as ke}from"@kumori/kdsl-lsp/module/dependency/locate.js";import{ModuleContext as qt}from"@kumori/kdsl-lsp/module/context.js";import{MkdirTemp as Kt}from"@kumori/kdsl-lsp/util/tmp.js";import{ValidateChecksum as Vt}from"@kumori/kdsl-lsp/module/integrity/validate.js";import{URI as Ut,UriUtils as Jt}from"langium";import{mkdir as zt,rename as Gt,rm as Qt}from"fs/promises";import{ForURL as Ht}from"@kumori/kdsl-lsp/module/remote/factory.js";import{SemVer as De}from"@kumori/kdsl-lsp/util/semver.js";import{URL as Wt}from"@kumori/kdsl-lsp/util/url.js";import{DependencyId as Ee}from"@kumori/kdsl-lsp/module/dependency/id.js";async function Oe(t){let e=new Map;return await _e(t,e),e}async function Re(t,e){let r=new Map;console.log(e);for(let o of e){let i=Te(o);if(V.isNone(i)){let l=`invalid download query '${o}': failed to parse`;r.set(o,y(f({},D(l)),{required:!0}));continue}let a=Ce(i.value.Version);if(V.isNone(a)){let l=`invalid download query '${o}': invalid version specifier '${i.value.Version}': failed to parse`;r.set(o,y(f({},D(l)),{required:!0}));continue}if(!Ce.isSemVer(a.value)){let l=`invalid download query '${o}': invalid version specifier '${i.value.Version}': invalid semver`;r.set(o,y(f({},D(l)),{required:!0}));continue}let n=`${i.value.Scheme}://${i.value.Location}`,s=i.value.Version;await Fe(t,n,s,r)}return r}async function _e(t,e){var o;let r=jt(t.Current);for(let i of r.keys()){let a=r.get(i);if(a.length<1)continue;let{target:n,version:s}=a[0];await Fe(t,n,s,e);let l=a.reduce((u,c)=>u||c.interface===void 0,!1),d=Ee(n,s);X(e.has(d)),(o=e.get(d)).required||(o.required=l)}}async function Fe(t,e,r,o){let i=Ee(e,r);if(o.has(i))return;let a=await Yt(t,e,r);if(o.set(i,y(f({},a),{required:!1})),E.isErr(a))return;let n=await ke(t,e,r);X(V.isSome(n));let s=await qt.Move(t,t.FS,n.value.Root);X(E.isOk(s)),t=f(f({},t),s.value),await _e(t,o)}async function Yt(t,e,r){var d=[];try{let o=await ke(t,e,r);if(E.isOk(o))return Y(At);let i=ce(d,await Kt(),!0);let a=await Z(t,e,r,i.Path);if(E.isErr(a))return D(`failed to fetch ${e}@${r}: ${a.err}`);let n=await Vt(t.SumDB,Ut.file(i.Path),t,e,a.value);if(E.isErr(n))return n;let s=`${e}@${r}`;let l=Jt.joinPath(t.Locations.Cache(),s);await zt(l.fsPath,{recursive:!0});await Qt(l.fsPath,{recursive:!0,force:!0});await Gt(i.Path,l.fsPath);return Y(Bt(s))}catch(u){var c=u,g=!0}finally{var v=me(d,c,g);v&&await v}}async function Z(t,e,r,o){let i=`${e}@${r}`,a=Te(i);if(V.isNone(a))return D(`failed to resolve ${i}: invalid download query`);let n=De(a.value.Version),s=new Wt(`${a.value.Scheme}://${a.value.Location}`),l=Ht(t.Remotes,s);if(E.isErr(l))return D(`failed to resolve ${i}': invalid remote ${s}: ${l.err}`);let d=await l.value.Versions(s);if(E.isErr(d))return D(`failed to read ${s}: ${d.err}`);let u=n,c=d.value.filter(h=>De.Compare(h,u)===0);if(c.length===0)return D(`no remote matches for ${s}@v${n}`);if(c.length>1){let h=`[${c.map(String).join(", ")}]`;return D(`ambiguous match for ${s}@v${n}: found ${h}`)}let g=c[0],v=await l.value.Get(s,g.toString(),o);return E.isErr(v)?D(`failed to fetch ${s}@${n.toString()}: ${v.err}`):Y(g)}var ee=k(()=>{"use strict"});var je={};R(je,{Action:()=>Be,Description:()=>Ae,Download:()=>O,Register:()=>Ne,default:()=>ar});import{ModuleContext as Xt}from"@kumori/kdsl-lsp/module/context.js";import{SumDB as Zt}from"@kumori/kdsl-lsp/module/integrity/sumdb.js";import{RemoteFetcherFactory as $e}from"@kumori/kdsl-lsp/module/remote/factory.js";import{Maybe as er}from"@kumori/kdsl-lsp/util/maybe.js";import{Err as Ie,Ok as tr,Result as A}from"@kumori/kdsl-lsp/util/result.js";import{URI as rr}from"langium";import{NodeFileSystem as or}from"langium/node";import{createKumoriServices as ir}from"@kumori/kdsl-lsp/language/kumori.js";import{RegistryManager as nr}from"@kumori/kdsl-lsp/module/registry/manager.js";function Ne(t,e){return t.command("download").alias("dl").summary(sr).argument("[module...]").option("-q, --quiet","do not log warnings").description(Ae).helpOption(!0).action(Be(e))}function Be(t){let e=ir(or).Kumori,r=o=>F(t,o);return async(o,i)=>{await new nr().ensureIndexes(),r(await O(t,e,process.cwd(),o,i))}}var ar,sr,Ae,O,U=k(()=>{"use strict";K();ee();ar={Register:Ne};sr="download modules to local cache",Ae=`
16
- Downloads the specified modules, which can be module patterns selecting depen-
17
- dencies of the current module or module queries of the form path@version.
18
-
19
- With no arguments, download applies to the modules needed to build the packages
20
- in the current module.
21
-
22
- The kdsl command will automatically download modules as needed during ordinary
23
- execution. The "kdsl mod download" command is useful mainly for pre-filling the
24
- local cache.
25
-
26
- By default, download writes nothing to standard output. It may print progress
27
- messages and errors to standard error.
28
- `.trim();O=async(t,e,r,o,i)=>{let a=e.shared.workspace.FileSystemProvider,n=await Xt(a,rr.file(r));if(A.isErr(n))return Ie([n.err]);let s=await Zt.Open(n.value.Locations.Checksum());if(A.isErr(s))return A.mapErr(s,c=>[c]);let l;o.length?l=await Re(y(f({},n.value),{FS:a,Remotes:$e(),SumDB:s.value}),o):l=await Oe(y(f({},n.value),{FS:a,Remotes:$e(),SumDB:s.value}));let d=[];for(let[c,g]of l){if(A.isOk(g)){er.isSome(g.value)&&t.info(`Downloaded dependency ${c}`);continue}g.required?d.push(`${c}: ${g.err}`):i.quiet||(t.warn(`${c}: ${g.err}`),t.warn(`${c}: not required - continuing`))}return Array.from(l.entries()).filter(([,c])=>A.isErr(c)&&c.required).length>0?Ie(d):tr(void 0)}});var ze={};R(ze,{Action:()=>Ue,Dependency:()=>Je,Description:()=>Ke,Register:()=>Ve,default:()=>fr});import{URI as lr,UriUtils as te}from"langium";import{createKumoriServices as ur}from"@kumori/kdsl-lsp/language/kumori.js";import{NodeFileSystem as dr}from"langium/node";import{Result as B}from"@kumori/kdsl-lsp/util/result.js";import{ModuleContext as cr}from"@kumori/kdsl-lsp/module/context.js";import{writeFile as re}from"fs/promises";import{MOD_FILE as oe}from"@kumori/kdsl-lsp/module/locator.js";import{ParseQuery as qe}from"@kumori/kdsl-lsp/module/query.js";import{RegistryManager as mr}from"@kumori/kdsl-lsp/module/registry/manager.js";function Ve(t,e){return t.command("dependency").alias("dep").argument("<module>","Module URL with @<tag> (e.g. https://github.com/org/repo@v1.2.3)").option("--alias <alias>","Alias for the dependency").option("--headers <module>","Specify a separate location for the headers module").option("--remove","Remove the dependency").option("--download","Download the dependency after adding it").summary(gr).description(Ke).helpOption(!0).showHelpAfterError(!0).action(Ue(e))}function Ue(t){return async(e,r)=>{await new mr().ensureIndexes();try{await Je(t,lr.file(process.cwd()),e,r)}catch(i){throw t.error(`Failed to manage dependency: ${i}`),i}}}var gr,Ke,fr,Je,Ge=k(()=>{"use strict";U();gr="Add, update, or remove a dependency from the module declaration",Ke=`
29
- Manage dependencies within the current module. It can add, update
30
- or remove dependencies. Optionally, it can attempt to download the dependency after adding it.
31
- Dependencies should resolve to a git repository.
32
-
33
- To add a dependency:
34
- kdsl mod dep github.com/org/repo@v1.0.0
35
-
36
- To add a dependency with an alias:
37
- kdsl mod dep github.com/org/repo@v1.0.0 --alias mydep
38
-
39
- To update a dependency to a new version:
40
- kdsl mod dep github.com/org/repo@v1.2.0
41
-
42
- To remove a dependency:
43
- kdsl mod dep github.com/org/repo --remove
44
-
45
- To add a dependency and download it immediately:
46
- kdsl mod dep github.com/org/repo@v1.0.0 --download
47
- `.trim(),fr={Register:Ve};Je=async(t,e,r,o)=>{let i=ur(dr).Kumori,a=i.shared.workspace.FileSystemProvider,n=await cr(a,e);if(B.isErr(n))throw new Error(n.err);let s=n.value.Current.Manifest,l=qe(r);if(B.isErr(l))throw new Error(`invalid query '${r}': invalid format`);let d=null;if(o.headers&&(d=qe(o.headers),B.isErr(d)))throw new Error(`invalid query '${o.headers}': invalid format`);let u=d?d.value:null,c=l.value;c.Location.endsWith("/")&&(c.Location=c.Location.replace(/\/+$/,""));let g=o.alias;if(o.remove){let p=s.requires.findIndex(L=>L.target===c.Location&&L.version===c.Version);if(p===-1)throw new Error(`Dependency ${c} not found`);s.requires.splice(p,1),await re(te.joinPath(n.value.Current.Root,oe).fsPath,JSON.stringify(s,void 0,4)),t.info(`Removed dependency ${c.toString()}`);return}if(g&&s.requires.some(p=>p.alias===g&&p.target!==c.Location))throw new Error(`Alias '${g}' is already used by another dependency`);let h=s.requires.find(p=>p.target===c.Location);if(h){if(g?h.alias=g:delete h.alias,u&&(h.headers={target:u.Location,version:u.Version}),await re(te.joinPath(n.value.Current.Root,oe).fsPath,JSON.stringify(s,void 0,4)),o.download){let p=await O(t,i,e.fsPath,[],{quiet:!0});if(B.isErr(p))throw new Error(`Failed to download dependency: ${p.err.join(", ")}`)}t.info(`Updated dependency ${c.Location} to version ${c.Version}`+(g?` (alias: ${g})`:"")+(u?` (headers: ${u})`:""))}else{let p=c.Version,L=f(f({target:c.Location,version:p},g?{alias:g}:{}),u?{headers:{target:u.Location,version:u.Version}}:{});if(s.requires.push(L),await re(te.joinPath(n.value.Current.Root,oe).fsPath,JSON.stringify(s,void 0,4)),o.download){let P=await O(t,i,e.fsPath,[],{quiet:!0});if(B.isErr(P))throw new Error(`Failed to download dependency: ${P.err.join(", ")}`)}t.info(`Added dependency ${c.toString()}`+(g?` (alias: ${g})`:"")+(u?` (headers: ${u})`:"")+" to module manifest")}}});var Ze={};R(Ze,{Action:()=>Ye,Description:()=>We,NewModule:()=>Xe,Register:()=>He,default:()=>Lr});import{Maybe as hr}from"@kumori/kdsl-lsp/util/maybe.js";import{mkdir as pr,writeFile as wr}from"fs/promises";import{URI as Qe}from"langium";import{NodeFileSystem as vr}from"langium/node";import{LocateModuleManifest as yr,MOD_FILE as ie}from"@kumori/kdsl-lsp/module/locator.js";import J from"path";function He(t,e){return t.command("update").summary(Mr).option("-v, --version <version>","new module version").option("-p, --path <location>","location where the module to update is located - defaults to the current directory").option("-c, --cacheLocation <cacheLocation>","new cache location").description(We).helpOption(!0).action(Ye(e))}function Ye(t){return async e=>{await Xe(t,process.cwd(),e)}}var Lr,Mr,We,Xe,et=k(()=>{"use strict";Lr={Register:He};Mr="updates an existing kumori module's version or cache location",We=`
48
- This command updates an existing Kumori module's version or cache location in the kumori.mod.json file. It is required to provide the new version and optionally
49
- a new cache location for the module.
50
-
51
- kdsl mod update -v 1.0.0
52
-
53
- You could as well provide a new location for the module's local cache,
54
- where all the dependencies will be downloaded.
55
-
56
- kdsl mod update -v 1.0.0 -c ./my-mod-cache
57
-
58
- If the module is not located in the current directory, you can provide a custom location path.
59
-
60
- kdsl mod update -v 1.0.0 -p ./my-module
61
- `.trim();Xe=async(t,e,r)=>{var u,c,g;let o=vr.fileSystemProvider(),i=(u=r.path)!=null?u:e;J.isAbsolute(i)||(i=J.join(e,i));let a=await yr(o,Qe.file(i));hr.isSome(a)&&a.value.fsPath===i&&(t.error(`error: module ${i} already exists`),process.exit(1));let n=await o.readFile(Qe.file(J.join(i,ie))),s=JSON.parse(n),l={spec:"kumori/module/v1",kumori:"0.0.1",version:(c=r.version)!=null?c:s.version,module:s.module,cacheLocation:(g=r.cacheLocation)!=null?g:s.cacheLocation,requires:[]},d=J.join(i,ie);await pr(i,{recursive:!0}),await wr(d,JSON.stringify(l,null,4)),t.info(`updated ${ie}: module ${l.module}`)}});var at={};R(at,{Action:()=>it,Check:()=>z,RawCheck:()=>nt,Register:()=>ot,default:()=>_r});import{createKumoriServices as xr}from"@kumori/kdsl-lsp/language/kumori.js";import{URI as br,UriUtils as ae}from"langium";import{NodeFileSystem as Sr}from"langium/node";import{DiagnosticSeverity as tt}from"vscode-languageserver";import{Err as ne,Ok as rt,Result as j}from"@kumori/kdsl-lsp/util/result.js";import{ModuleContext as Pr}from"@kumori/kdsl-lsp/module/context.js";import Cr from"path";import{RegistryManager as Dr}from"@kumori/kdsl-lsp/module/registry/manager.js";function ot(t,e){return t.command("check").argument("[directory]","directory containing a Kumori module").description(kr).summary(Tr).action(it(e))}function it(t){return async e=>{await new Dr().ensureIndexes();let o=xr(Sr).Kumori,i=o.shared.workspace.FileSystemProvider,a=s=>F(t,s),n=a(j.mapErr(await Pr(i,br.file(Cr.resolve(e!=null?e:"."))),s=>[s]));a(await z(t,o,n))}}function Er(t,e){return`lexer error: ${ae.relative(process.cwd(),t.uri.fsPath)}:${e.line||1}:${e.column||1}: ${e.message}`}function Or(t,e){return`parser error: ${ae.relative(process.cwd(),t.uri.fsPath)}:${e.token.startLine||1}:${e.token.startColumn||1}: ${e.message}`}function Rr(t,e){return`diagnostic error: ${ae.relative(process.cwd(),t.uri.fsPath)}:${e.range.start.line+1}:${e.range.start.character+1}: ${e.message}`}var Tr,kr,z,nt,_r,se=k(()=>{"use strict";U();K();Tr="typecheck and validate a module",kr=`
62
- `.trim();z=async(t,e,r)=>{let o=r.Current.Root,i=await O(t,e,o.fsPath,[],{quiet:!0});if(j.isErr(i))return i;let a=await nt(e,r);if(j.isErr(a)){let n=a.err.warnings.concat(a.err.errors);return ne(n)}return rt(void 0)},nt=async(t,e)=>{let r={errors:[],warnings:[]},o=t.shared.workspace.FileSystemProvider,i=e.Current.Root,a=await j.tryCatchAsync(()=>o.readDirectory(i));if(j.isErr(a)){let d=""+a.err;return a.err instanceof Error&&(d=a.err.message),r.errors.push(`failed to read directory '${i.fsPath}': ${d}`),ne(r)}await t.shared.workspace.WorkspaceManager.initializeWorkspace([{name:"root",uri:i.toString()}]);let s=t.shared.workspace.LangiumDocuments;await t.shared.workspace.DocumentBuilder.build(s.all.toArray(),{validation:!0});for(let d of t.shared.workspace.LangiumDocuments.all){for(let u of d.parseResult.lexerErrors)r.errors.push(Er(d,u));for(let u of d.parseResult.parserErrors)r.errors.push(Or(d,u));for(let u of d.diagnostics||[]){let c=Rr(d,u);u.severity===tt.Error&&r.errors.push(c),u.severity===tt.Warning&&r.warnings.push(c)}}return r.errors.length>0?ne(r):rt(void 0)};_r={Register:ot}});import{AstUtils as Fr,UriUtils as $r}from"langium";function st(t){var o,i;let e=(i=(o=t.node.$cstNode)==null?void 0:o.range)!=null?i:{start:{line:-1,character:-1},end:{line:-1,character:-1}},r=Fr.getDocument(t.node);return`${$r.relative(process.cwd(),r.uri.fsPath)}:${e.start.line+1}:${e.start.character+1}: ${t.message}`}var lt=k(()=>{"use strict"});var Mt={};R(Mt,{Action:()=>wt,Description:()=>pt,GetSchema:()=>yt,LocateModule:()=>vt,Register:()=>ht,ToJSONSchema:()=>Lt,ToJSONSchemaInternal:()=>T,default:()=>so});import{createKumoriServices as Ir}from"@kumori/kdsl-lsp/language/kumori.js";import{ModuleContext as Nr}from"@kumori/kdsl-lsp/module/context.js";import{ParseQuery as Ar}from"@kumori/kdsl-lsp/module/query.js";import{Maybe as ct,None as Br,Some as jr}from"@kumori/kdsl-lsp/util/maybe.js";import{Err as C,Ok as S,Result as M}from"@kumori/kdsl-lsp/util/result.js";import{TempCache as qr}from"@kumori/kdsl-lsp/util/tmp.js";import{NodeFileSystem as mt}from"langium/node";import $ from"path";import{AstUtils as gt,URI as Kr,UriUtils as ft}from"langium";import q from"assert";import{TAny as ut,TBoolean as Vr,TEither as Ur,TFunction as Jr,TList as zr,TNumber as Gr,TOptional as dt,TString as Qr,TStruct as Hr,TTypeDefAlias as Wr,TTypeDefNamed as Yr,TypeSystemError as Xr,TypeToString as Zr}from"@kumori/kdsl-lsp/language/type-system/type.js";import{ModuleDescriptor as eo}from"@kumori/kdsl-lsp/module/descriptor.js";import{isBuiltinArtifact as to,isComponentArtifact as ro,isServiceArtifact as oo}from"@kumori/kdsl-lsp/language/generated/ast.js";import{Scheme as io}from"@kumori/kdsl-lsp/language/builtin/util.js";import{GatherModuleDocuments as no}from"@kumori/kdsl-lsp/module/documents.js";import{RemoteFetcherFactory as ao}from"@kumori/kdsl-lsp/module/remote/factory.js";function ht(t,e){return t.command("get").summary(lo).argument("<target>",'Unique path of the kmodule where the artifact is defined. Accepts remote targets (e.g., "github.com/MyOrg/component@v1.2.3") or local paths (e.g. "/abs/path/to/module", "../rel/path/to/module").').argument("<package-path>",`Relative path to the package that contains the artifact (e.g., "internal/service"). For artifacts in the module's root package, use ".".`).argument("<artifact-name>",'Name of the target artifact (e.g., "ExampleService").').description(pt).helpOption(!0).action(wt(e))}function wt(t){return async(e,r,o)=>{let i=Ir(mt).Kumori,a=u=>F(t,u),n=a(await vt(e)),s=i.shared.workspace.FileSystemProvider,l=a(M.mapErr(await Nr(s,Kr.file(n.fsPath)),u=>[u]));a(await z(t,i,l));let d=a(await yt(i,l,r,o));console.log(JSON.stringify(d,null,4))}}async function vt(t){let e=await qr(),r=mt.fileSystemProvider(),o=t;if(t[0]==="."||$.isAbsolute(t)){let u=$.isAbsolute(t)?t:$.resolve(process.cwd(),t);return S({$type:"local",fsPath:u})}let a=Ar(t);if(ct.isNone(a))return C([`invalid remote target '${t}': invalid syntax`]);let n=a.value.Version,s=`${a.value.Location}@${n}`,l=ft.joinPath(e,s),d=await eo(r,l);if(M.isErr(d)){let u=await Z({Remotes:ao()},a.value.Location,n,l.fsPath);if(M.isErr(u))return C([`failed to fetch ${o}: ${u.err}`])}return S({$type:"remote",fsPath:l.fsPath,query:a.value})}async function yt(t,e,r,o){let i=ft.joinPath(e.Current.Root,$.normalize(r)),a=t.references.KumoriPackages.GetPackage(i);if(M.isErr(a))return C([`error: failed to retrieve package: ${i.toString()}`]);let n=new Set(a.value.docs.map(p=>p.uri.toString())),s=t.shared.workspace.IndexManager.allElements(void 0,n).toArray().filter(p=>p.name===o);if(s.length<1)return C([`error: no artifact named defined in ${i.toString()}`]);if(s.length>2)return C([`error: too many matches in ${i.toString()}`]);let l=s[0].node;if(!(ro(l)||oo(l)||to(l)))return C([`invalid reference to node of type: ${l.$type}`]);if(!gt.getDocument(l).uri.fsPath.endsWith(".h.kumori")){if(!l.name.value.ref)return C(["no headers found for component"]);l=l.name.value.ref}let u=t.validation.KumoriTypeSystem,c=t.validation.KumoriValidations.ctx(),[g,v]=u.Infer(c,l);if(v.length>0){let p=[];return v.map(L=>p.concat(L.message)),C([`type inference failed with errors: ${p}`])}let h=await Lt(t,e,g,$.join(e.Current.Manifest.module,r+"@"+o));return M.mapErr(h,p=>p.map(st))}async function Lt(t,e,r,o){return M.map(await T({svcs:t,mod:e},r),i=>f({$schema:"https://json-schema.org/draft/2020-12/schema",$spec:"kumori/schema/v1",$id:o},i))}async function T(t,e){if(ut.is(e))return S({});if(Jr.is(e))return T(t,e.returns);if(dt.is(e))return T(t,e.inner);if(Wr.is(e))return T(t,e.spec);if(Gr.is(e))return e.literal===void 0?S({type:"number"}):S({const:e.literal});if(Qr.is(e))return e.literal===void 0?S({type:"string"}):S({const:e.literal});if(Vr.is(e))return e.literal===void 0?S({type:"boolean"}):S({const:e.literal});if(zr.is(e)){let r=await T(t,e.restriction);return M.isErr(r)?r:S({type:"array",items:r.value})}if(Ur.is(e)){let r=await Promise.all(e.variations.map(a=>T(t,a))),o=r.filter(M.isErr).map(a=>a.err).flat();if(o.length>0)return C(o);let i=r.filter(M.isOk).map(a=>a.value);return q(i.length===r.length),S({oneOf:i})}if(Hr.is(e)){let r=await Promise.all(Object.entries(e.parameters).map(async n=>({key:n[0],value:n[1],schema:await T(t,n[1].value)}))),o=r.map(n=>n.schema).filter(n=>M.isErr(n)).map(n=>n.err).flat(),i=Br;if(e.restriction!==void 0&&!ut.is(e.restriction)){let n=await T(t,e.restriction);M.isOk(n)?i=jr(n.value):o=o.concat(n.err)}if(o.length>0)return C(o);let a={type:"object",properties:Object.fromEntries(r.map(n=>(q(M.isOk(n.schema)),[n.key,n.schema.value]))),required:r.filter(n=>n.value.optional===!1&&!dt.is(n.value.value)).map(n=>n.key)};return ct.isSome(i)&&(a=y(f({},a),{additionalProperties:i.value})),S(a)}if(Yr.is(e)){let r=await T(t,e.spec);return M.isErr(r)?r:S({type:"object",properties:{$kdsl:{const:{NamedType:await uo(t,e)}},inner:r.value},required:["$kdsl","inner"]})}return C([Xr.create({node:e,message:`cannot convert definition to JSONSchema: ${Zr(e)}`})])}var so,lo,pt,uo,xt=k(()=>{"use strict";se();K();lt();ee();so={Register:ht};lo="extracts jsonschema for a specified module and artifact",pt=`
63
- Generates and outputs the JSON Schema that describes a particular Kumori DSL
64
- artifact. This schema defines the artifact's configurable properties, resource
65
- requirements, and overall structure, making it valuable for programmatic
66
- interaction, validation, or documentation purposes.
67
-
68
- The command allows you to specify artifacts from both remote/external modules
69
- and local modules.
70
- `.trim();uo=async(t,e)=>{let r=e.node;q(r);let o=t.svcs.shared.references.KumoriModules,i=gt.getDocument(r).uri,a=t.svcs.references.KumoriPackages.GetPackage(r),n=t.mod.Current;if(q(M.isOk(a)),i.scheme===io)return{Import:a.value.uri.path.slice(1),Name:e.meta.name};if(!(await no(t.svcs.shared,t.mod.Root.Root)).map(g=>g.fsPath).includes(i.fsPath)){let g=o.getModule(i);q(M.isOk(g)),n=g.value}let u=n.Root,c=a.value.uri.fsPath.slice(u.fsPath.length);return{Import:$.join(n.Manifest.module,c),Name:e.meta.name}}});var b=function(t){return t.info="info",t.warn="warn",t.error="error",t.debug="debug",t.trace="trace",t.fatal="fatal",t}({}),go={[b.trace]:10,[b.debug]:20,[b.info]:30,[b.warn]:40,[b.error]:50,[b.fatal]:60},fo={10:b.trace,20:b.debug,30:b.info,40:b.warn,50:b.error,60:b.fatal};var x=function(t){return t.onBeforeDataOut="onBeforeDataOut",t.shouldSendToLogger="shouldSendToLogger",t.onMetadataCalled="onMetadataCalled",t.onBeforeMessageOut="onBeforeMessageOut",t.onContextCalled="onContextCalled",t}({});var m=function(t){return t.info="info",t.warn="warn",t.error="error",t.debug="debug",t.trace="trace",t.fatal="fatal",t}({}),N={[m.trace]:10,[m.debug]:20,[m.info]:30,[m.warn]:40,[m.error]:50,[m.fatal]:60},vo={10:m.trace,20:m.debug,30:m.info,40:m.warn,50:m.error,60:m.fatal};var ge=class fe{constructor(){w(this,"context",{});w(this,"hasContext",!1)}setContext(e){if(!e){this.context={},this.hasContext=!1;return}this.context=e,this.hasContext=!0}appendContext(e){this.context=f(f({},this.context),e),this.hasContext=!0}getContext(){return this.context}hasContextData(){return this.hasContext}onChildLoggerCreated({parentContextManager:e,childContextManager:r}){if(e.hasContextData()){let o=e.getContext();r.setContext(f({},o))}}clone(){let e=new fe;return e.setContext(f({},this.context)),e.hasContext=this.hasContext,e}};var he=class{constructor(t){w(this,"err");w(this,"metadata");w(this,"structuredLogger");w(this,"hasMetadata");w(this,"pluginManager");this.err=null,this.metadata={},this.structuredLogger=t,this.hasMetadata=!1,this.pluginManager=t.pluginManager}withMetadata(t){let{pluginManager:e,structuredLogger:{_config:{consoleDebug:r}}}=this;if(!t)return r&&console.debug("[LogLayer] withMetadata was called with no metadata; dropping."),this;let o=t;return e.hasPlugins(x.onMetadataCalled)&&(o=e.runOnMetadataCalled(t,this.structuredLogger),!o)?(r&&console.debug("[LogLayer] Metadata was dropped due to plugin returning falsy value."),this):(this.metadata=f(f({},this.metadata),o),this.hasMetadata=!0,this)}withError(t){return this.err=t,this}info(...t){this.structuredLogger.isLevelEnabled(m.info)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.info,t))}warn(...t){this.structuredLogger.isLevelEnabled(m.warn)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.warn,t))}error(...t){this.structuredLogger.isLevelEnabled(m.error)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.error,t))}debug(...t){this.structuredLogger.isLevelEnabled(m.debug)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.debug,t))}trace(...t){this.structuredLogger.isLevelEnabled(m.trace)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.trace,t))}fatal(...t){this.structuredLogger.isLevelEnabled(m.fatal)&&(this.structuredLogger._formatMessage(t),this.formatLog(m.fatal,t))}disableLogging(){return this.structuredLogger.disableLogging(),this}enableLogging(){return this.structuredLogger.enableLogging(),this}formatLog(t,e){let{muteMetadata:r}=this.structuredLogger._config,o=r?!1:this.hasMetadata;this.structuredLogger._formatLog({logLevel:t,params:e,metadata:o?this.metadata:null,err:this.err})}},Dt=[x.onBeforeDataOut,x.onMetadataCalled,x.shouldSendToLogger,x.onBeforeMessageOut,x.onContextCalled],pe=class{constructor(t){w(this,"idToPlugin");w(this,"onBeforeDataOut",[]);w(this,"shouldSendToLogger",[]);w(this,"onMetadataCalled",[]);w(this,"onBeforeMessageOut",[]);w(this,"onContextCalled",[]);this.idToPlugin={},this.mapPlugins(t),this.indexPlugins()}mapPlugins(t){for(let e of t){if(e.id||(e.id=Date.now().toString()+Math.random().toString()),this.idToPlugin[e.id])throw new Error(`[LogLayer] Plugin with id ${e.id} already exists.`);e.registeredAt=Date.now(),this.idToPlugin[e.id]=e}}indexPlugins(){this.onBeforeDataOut=[],this.shouldSendToLogger=[],this.onMetadataCalled=[],this.onBeforeMessageOut=[],this.onContextCalled=[];let t=Object.values(this.idToPlugin).sort((e,r)=>e.registeredAt-r.registeredAt);for(let e of t){if(e.disabled)return;for(let r of Dt)e[r]&&e.id&&this[r].push(e.id)}}hasPlugins(t){return this[t].length>0}countPlugins(t){return t?this[t].length:Object.keys(this.idToPlugin).length}addPlugins(t){this.mapPlugins(t),this.indexPlugins()}enablePlugin(t){let e=this.idToPlugin[t];e&&(e.disabled=!1),this.indexPlugins()}disablePlugin(t){let e=this.idToPlugin[t];e&&(e.disabled=!0),this.indexPlugins()}removePlugin(t){delete this.idToPlugin[t],this.indexPlugins()}runOnBeforeDataOut(t,e){let r=f({},t);for(let o of this.onBeforeDataOut){let i=this.idToPlugin[o];if(i.onBeforeDataOut){let a=i.onBeforeDataOut({data:r.data,logLevel:r.logLevel,error:r.error,metadata:r.metadata,context:r.context},e);a&&(r.data||(r.data={}),Object.assign(r.data,a))}}return r.data}runShouldSendToLogger(t,e){return!this.shouldSendToLogger.some(r=>{var o,i;return!((i=(o=this.idToPlugin[r]).shouldSendToLogger)!=null&&i.call(o,t,e))})}runOnMetadataCalled(t,e){var o,i;let r=f({},t);for(let a of this.onMetadataCalled){let n=(i=(o=this.idToPlugin[a]).onMetadataCalled)==null?void 0:i.call(o,r,e);if(n)r=n;else return null}return r}runOnBeforeMessageOut(t,e){var o,i;let r=[...t.messages];for(let a of this.onBeforeMessageOut){let n=(i=(o=this.idToPlugin[a]).onBeforeMessageOut)==null?void 0:i.call(o,{messages:r,logLevel:t.logLevel},e);n&&(r=n)}return r}runOnContextCalled(t,e){var o,i;let r=f({},t);for(let a of this.onContextCalled){let n=(i=(o=this.idToPlugin[a]).onContextCalled)==null?void 0:i.call(o,r,e);if(n)r=n;else return null}return r}},we=class ve{constructor(e){w(this,"pluginManager");w(this,"idToTransport");w(this,"hasMultipleTransports");w(this,"singleTransport");w(this,"contextManager");w(this,"logLevelEnabledStatus",{info:!0,warn:!0,error:!0,debug:!0,trace:!0,fatal:!0});w(this,"_config");var r;this._config=y(f({},e),{enabled:(r=e.enabled)!=null?r:!0}),this._config.enabled||this.disableLogging(),this.contextManager=new ge,this.pluginManager=new pe(e.plugins||[]),this._config.errorFieldName||(this._config.errorFieldName="err"),this._config.copyMsgOnOnlyError||(this._config.copyMsgOnOnlyError=!1),this._initializeTransports(this._config.transport)}withContextManager(e){return this.contextManager&&typeof this.contextManager[Symbol.dispose]=="function"&&this.contextManager[Symbol.dispose](),this.contextManager=e,this}getContextManager(){return this.contextManager}_initializeTransports(e){if(this.idToTransport)for(let r in this.idToTransport)this.idToTransport[r]&&typeof this.idToTransport[r][Symbol.dispose]=="function"&&this.idToTransport[r][Symbol.dispose]();this.hasMultipleTransports=Array.isArray(e)&&e.length>1,this.singleTransport=this.hasMultipleTransports?null:Array.isArray(e)?e[0]:e,Array.isArray(e)?this.idToTransport=e.reduce((r,o)=>(r[o.id]=o,r),{}):this.idToTransport={[e.id]:e}}withPrefix(e){let r=this.child();return r._config.prefix=e,r}withContext(e){let r=e;return e?this.pluginManager.hasPlugins(x.onContextCalled)&&(r=this.pluginManager.runOnContextCalled(e,this),!r)?(this._config.consoleDebug&&console.debug("[LogLayer] Context was dropped due to plugin returning falsy value."),this):(this.contextManager.appendContext(r),this):(this._config.consoleDebug&&console.debug("[LogLayer] withContext was called with no context; dropping."),this)}clearContext(){return this.contextManager.setContext(void 0),this}getContext(){return this.contextManager.getContext()}addPlugins(e){this.pluginManager.addPlugins(e)}enablePlugin(e){this.pluginManager.enablePlugin(e)}disablePlugin(e){this.pluginManager.disablePlugin(e)}removePlugin(e){this.pluginManager.removePlugin(e)}withMetadata(e){return new he(this).withMetadata(e)}withError(e){return new he(this).withError(e)}child(){let e=new ve(y(f({},this._config),{transport:Array.isArray(this._config.transport)?[...this._config.transport]:this._config.transport})).withPluginManager(this.pluginManager).withContextManager(this.contextManager.clone());return this.contextManager.onChildLoggerCreated({parentContextManager:this.contextManager,childContextManager:e.contextManager,parentLogger:this,childLogger:e}),e}withFreshTransports(e){return this._config.transport=e,this._initializeTransports(e),this}withFreshPlugins(e){return this._config.plugins=e,this.pluginManager=new pe(e),this}withPluginManager(e){return this.pluginManager=e,this}errorOnly(e,r){let o=(r==null?void 0:r.logLevel)||m.error;if(!this.isLevelEnabled(o))return;let{copyMsgOnOnlyError:i}=this._config,a={logLevel:o,err:e};(i&&(r==null?void 0:r.copyMsg)!==!1||(r==null?void 0:r.copyMsg)===!0)&&(e!=null&&e.message)&&(a.params=[e.message]),this._formatLog(a)}metadataOnly(e,r=m.info){if(!this.isLevelEnabled(r))return;let{muteMetadata:o,consoleDebug:i}=this._config;if(o)return;if(!e){i&&console.debug("[LogLayer] metadataOnly was called with no metadata; dropping.");return}let a=e;if(this.pluginManager.hasPlugins(x.onMetadataCalled)&&(a=this.pluginManager.runOnMetadataCalled(e,this),!a)){i&&console.debug("[LogLayer] Metadata was dropped due to plugin returning falsy value.");return}let n={logLevel:r,metadata:a};this._formatLog(n)}info(...e){this.isLevelEnabled(m.info)&&(this._formatMessage(e),this._formatLog({logLevel:m.info,params:e}))}warn(...e){this.isLevelEnabled(m.warn)&&(this._formatMessage(e),this._formatLog({logLevel:m.warn,params:e}))}error(...e){this.isLevelEnabled(m.error)&&(this._formatMessage(e),this._formatLog({logLevel:m.error,params:e}))}debug(...e){this.isLevelEnabled(m.debug)&&(this._formatMessage(e),this._formatLog({logLevel:m.debug,params:e}))}trace(...e){this.isLevelEnabled(m.trace)&&(this._formatMessage(e),this._formatLog({logLevel:m.trace,params:e}))}fatal(...e){this.isLevelEnabled(m.fatal)&&(this._formatMessage(e),this._formatLog({logLevel:m.fatal,params:e}))}raw(e){if(!this.isLevelEnabled(e.logLevel))return;let r={logLevel:e.logLevel,params:e.messages,metadata:e.metadata,err:e.error,context:e.context};this._formatMessage(e.messages),this._formatLog(r)}disableLogging(){for(let e of Object.keys(this.logLevelEnabledStatus))this.logLevelEnabledStatus[e]=!1;return this}enableLogging(){for(let e of Object.keys(this.logLevelEnabledStatus))this.logLevelEnabledStatus[e]=!0;return this}muteContext(){return this._config.muteContext=!0,this}unMuteContext(){return this._config.muteContext=!1,this}muteMetadata(){return this._config.muteMetadata=!0,this}unMuteMetadata(){return this._config.muteMetadata=!1,this}enableIndividualLevel(e){let r=e;return r in this.logLevelEnabledStatus&&(this.logLevelEnabledStatus[r]=!0),this}disableIndividualLevel(e){let r=e;return r in this.logLevelEnabledStatus&&(this.logLevelEnabledStatus[r]=!1),this}setLevel(e){let r=N[e];for(let o of Object.values(m)){let i=o,a=N[o];this.logLevelEnabledStatus[i]=a>=r}return this}isLevelEnabled(e){let r=e;return this.logLevelEnabledStatus[r]}formatContext(e){let{contextFieldName:r,muteContext:o}=this._config;return e&&Object.keys(e).length>0&&!o?r?{[r]:f({},e)}:f({},e):{}}formatMetadata(e=null){let{metadataFieldName:r,muteMetadata:o}=this._config;return e&&!o?r?{[r]:f({},e)}:f({},e):{}}getLoggerInstance(e){let r=this.idToTransport[e];if(r)return r.getLoggerInstance()}_formatMessage(e=[]){let{prefix:r}=this._config;r&&typeof e[0]=="string"&&(e[0]=`${r} ${e[0]}`)}_formatLog({logLevel:e,params:r=[],metadata:o=null,err:i,context:a=null}){var p;let{errorSerializer:n,errorFieldInMetadata:s,muteContext:l,contextFieldName:d,metadataFieldName:u,errorFieldName:c}=this._config,g=a!==null?a:this.contextManager.getContext(),v=!!o||(l?!1:a!==null?Object.keys(a).length>0:this.contextManager.hasContextData()),h={};if(v)if(d&&d===u){let L=this.formatContext(g)[d],P=this.formatMetadata(o)[u];h={[d]:f(f({},L),P)}}else h=f(f({},this.formatContext(g)),this.formatMetadata(o));if(i){let L=n?n(i):i;s&&o&&u?h!=null&&h[u]?h[u][c]=L:h=y(f({},h),{[u]:{[c]:L}}):s&&!o&&u?h=y(f({},h),{[u]:{[c]:L}}):h=y(f({},h),{[c]:L}),v=!0}if(this.pluginManager.hasPlugins(x.onBeforeDataOut)&&(h=this.pluginManager.runOnBeforeDataOut({data:v?h:void 0,logLevel:e,error:i,metadata:o,context:g},this),h&&!v&&(v=!0)),this.pluginManager.hasPlugins(x.onBeforeMessageOut)&&(r=this.pluginManager.runOnBeforeMessageOut({messages:[...r],logLevel:e},this)),this.hasMultipleTransports){let L=this._config.transport.filter(P=>P.enabled).map(async P=>{if(!(this.pluginManager.hasPlugins(x.shouldSendToLogger)&&!this.pluginManager.runShouldSendToLogger({messages:[...r],data:v?h:void 0,logLevel:e,transportId:P.id,error:i,metadata:o,context:g},this)))return P._sendToLogger({logLevel:e,messages:[...r],data:v?h:void 0,hasData:v,error:i,metadata:o,context:g})});Promise.all(L).catch(P=>{this._config.consoleDebug&&console.error("[LogLayer] Error executing transports:",P)})}else{if(!((p=this.singleTransport)!=null&&p.enabled)||this.pluginManager.hasPlugins(x.shouldSendToLogger)&&!this.pluginManager.runShouldSendToLogger({messages:[...r],data:v?h:void 0,logLevel:e,transportId:this.singleTransport.id,error:i,metadata:o,context:g},this))return;this.singleTransport._sendToLogger({logLevel:e,messages:[...r],data:v?h:void 0,hasData:v,error:i,metadata:o,context:g})}}};function Tt(){let t={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};return new we({transport:t})}function _(t){return t!=null?t:Tt()}import{URI as co}from"langium";import{Result as G,Err as I,Ok as Q}from"@kumori/kdsl-lsp/util/result.js";async function $n(t){var o;let e=_(t.logger),{NewModule:r}=await Promise.resolve().then(()=>(Pe(),Se));try{let i=(o=t.cwd)!=null?o:process.cwd();return await r(e,i,t.name,t.version,t.location,t.cacheLocation),Q(void 0)}catch(i){return I([String(i)])}}async function In(t){var n;let e=_(t.logger),r=co.file((n=t.cwd)!=null?n:process.cwd()),{Dependency:o}=await Promise.resolve().then(()=>(Ge(),ze)),{RegistryManager:i}=await import("@kumori/kdsl-lsp/module/registry/manager.js");await new i().ensureIndexes();try{return await o(e,r,t.module,{alias:t.alias,headers:t.headers,remove:t.remove?!0:void 0,download:t.download?!0:void 0}),Q(void 0)}catch(s){return I([String(s)])}}async function Nn(t){var a,n;let e=_(t.logger),{Download:r}=await Promise.resolve().then(()=>(U(),je)),{RegistryManager:o}=await import("@kumori/kdsl-lsp/module/registry/manager.js");return await new o().ensureIndexes(),await r(e,t.services,(a=t.cwd)!=null?a:process.cwd(),(n=t.modules)!=null?n:[],{quiet:t.quiet?!0:void 0})}async function An(t){var o;let e=_(t.logger),{NewModule:r}=await Promise.resolve().then(()=>(et(),Ze));try{return await r(e,(o=t.cwd)!=null?o:process.cwd(),{version:t.version,cacheLocation:t.cacheLocation,path:t.path}),Q(void 0)}catch(i){return I([String(i)])}}async function Bn(t){var l,d;let{CalculateChecksum:e}=await import("@kumori/kdsl-lsp/module/integrity/checksum.js"),{ModuleContext:r}=await import("@kumori/kdsl-lsp/module/context.js"),{URI:o}=await import("langium"),i=await import("path"),a=t.services.shared.workspace.FileSystemProvider,n=(d=(l=t.directory)!=null?l:t.cwd)!=null?d:".",s=await r(a,o.file(i.resolve(n)));if(G.isErr(s))return I([s.err]);try{let u=await e(s.value.Current.Root.fsPath);return Q(u)}catch(u){return I([String(u)])}}async function jn(t){let e=_(t.logger),{LocateModule:r,GetSchema:o}=await Promise.resolve().then(()=>(xt(),Mt)),{ModuleContext:i}=await import("@kumori/kdsl-lsp/module/context.js"),{Check:a}=await Promise.resolve().then(()=>(se(),at)),{URI:n}=await import("langium"),s=t.services,l=s.shared.workspace.FileSystemProvider,d=await r(t.target);if(G.isErr(d))return d;let u=await i(l,n.file(d.value.fsPath));if(G.isErr(u))return I([u.err]);let c=await a(e,s,u.value);return G.isErr(c)?c:await o(s,u.value,t.packagePath,t.artifactName)}export{Bn as moduleChecksum,In as moduleDependency,Nn as moduleDownload,$n as moduleInit,jn as moduleSchemaGet,An as moduleUpdate};
1
+ import { getLogger } from "./logger.js";
2
+ import { URI } from "langium";
3
+ import { Result, Err, Ok } from "@kumori/kdsl-lsp/util/result.js";
4
+ /**
5
+ * Initialize a new Kumori module.
6
+ * Creates a new kumori.mod.json file.
7
+ *
8
+ * @param options - Module init options
9
+ * @returns Result with void on success, or string[] of errors
10
+ */
11
+ export async function moduleInit(options) {
12
+ const log = getLogger(options.logger);
13
+ const { NewModule } = await import("../mod/init/main.js");
14
+ try {
15
+ const cwd = options.cwd ?? process.cwd();
16
+ // NewModule uses rest parameters that include commander args, we need to cast
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ await NewModule(log, cwd, options.name, options.version, options.location, options.cacheLocation);
19
+ return Ok(undefined);
20
+ }
21
+ catch (err) {
22
+ return Err([String(err)]);
23
+ }
24
+ }
25
+ /**
26
+ * Add, update, or remove a dependency from the module declaration.
27
+ *
28
+ * @param options - Module dependency options
29
+ * @returns Result with void on success, or string[] of errors
30
+ */
31
+ export async function moduleDependency(options) {
32
+ const log = getLogger(options.logger);
33
+ const cwd = URI.file(options.cwd ?? process.cwd());
34
+ const { Dependency } = await import("../mod/dependency/main.js");
35
+ const { RegistryManager } = await import("@kumori/kdsl-lsp/module/registry/manager.js");
36
+ const manager = new RegistryManager();
37
+ await manager.ensureIndexes();
38
+ try {
39
+ await Dependency(log, cwd, options.module, {
40
+ alias: options.alias,
41
+ headers: options.headers,
42
+ remove: options.remove ? true : undefined,
43
+ download: options.download ? true : undefined,
44
+ });
45
+ return Ok(undefined);
46
+ }
47
+ catch (err) {
48
+ return Err([String(err)]);
49
+ }
50
+ }
51
+ /**
52
+ * Download modules to local cache.
53
+ * With no arguments, downloads all modules needed to build the packages
54
+ * in the current module.
55
+ *
56
+ * @param options - Module download options
57
+ * @returns Result with void on success, or string[] of errors
58
+ */
59
+ export async function moduleDownload(options) {
60
+ const log = getLogger(options.logger);
61
+ const { Download } = await import("../mod/download/main.js");
62
+ const { RegistryManager } = await import("@kumori/kdsl-lsp/module/registry/manager.js");
63
+ const manager = new RegistryManager();
64
+ await manager.ensureIndexes();
65
+ return await Download(log, options.services, options.cwd ?? process.cwd(), options.modules ?? [], { quiet: options.quiet ? true : undefined });
66
+ }
67
+ /**
68
+ * Update an existing Kumori module's version or cache location.
69
+ *
70
+ * @param options - Module update options
71
+ * @returns Result with void on success, or string[] of errors
72
+ */
73
+ export async function moduleUpdate(options) {
74
+ const log = getLogger(options.logger);
75
+ const { NewModule } = await import("../mod/update/main.js");
76
+ try {
77
+ await NewModule(log, options.cwd ?? process.cwd(), {
78
+ version: options.version,
79
+ cacheLocation: options.cacheLocation,
80
+ path: options.path,
81
+ });
82
+ return Ok(undefined);
83
+ }
84
+ catch (err) {
85
+ return Err([String(err)]);
86
+ }
87
+ }
88
+ /**
89
+ * Generate SHA-256 checksum for a module.
90
+ *
91
+ * @param options - Module checksum options
92
+ * @returns Result with checksum string on success, or string[] of errors
93
+ */
94
+ export async function moduleChecksum(options) {
95
+ const { CalculateChecksum } = await import("@kumori/kdsl-lsp/module/integrity/checksum.js");
96
+ const { ModuleContext } = await import("@kumori/kdsl-lsp/module/context.js");
97
+ const { URI } = await import("langium");
98
+ const path = await import("node:path");
99
+ const fs = options.services.shared.workspace.FileSystemProvider;
100
+ const target = options.directory ?? options.cwd ?? ".";
101
+ const ctx = await ModuleContext(fs, URI.file(path.resolve(target)));
102
+ if (Result.isErr(ctx)) {
103
+ return Err([ctx.err]);
104
+ }
105
+ try {
106
+ const checksum = await CalculateChecksum(ctx.value.Current.Root.fsPath);
107
+ return Ok(checksum);
108
+ }
109
+ catch (err) {
110
+ return Err([String(err)]);
111
+ }
112
+ }
113
+ /**
114
+ * Extract JSON Schema for a specified module and artifact.
115
+ * Generates and outputs the JSON Schema that describes a particular Kumori DSL artifact.
116
+ *
117
+ * @param options - Module schema get options
118
+ * @returns Result with schema object on success, or string[] of errors
119
+ */
120
+ export async function moduleSchemaGet(options) {
121
+ const log = getLogger(options.logger);
122
+ const { LocateModule, GetSchema } = await import("../mod/jsonschema/get/main.js");
123
+ const { ModuleContext } = await import("@kumori/kdsl-lsp/module/context.js");
124
+ const { Check } = await import("../check/main.js");
125
+ const { URI } = await import("langium");
126
+ const svcs = options.services;
127
+ const fs = svcs.shared.workspace.FileSystemProvider;
128
+ const locResult = await LocateModule(options.target);
129
+ if (Result.isErr(locResult)) {
130
+ return locResult;
131
+ }
132
+ const ctx = await ModuleContext(fs, URI.file(locResult.value.fsPath));
133
+ if (Result.isErr(ctx)) {
134
+ return Err([ctx.err]);
135
+ }
136
+ // Download dependencies
137
+ const checkResult = await Check(log, svcs, ctx.value);
138
+ if (Result.isErr(checkResult)) {
139
+ return checkResult;
140
+ }
141
+ // Get the schema
142
+ return await GetSchema(svcs, ctx.value, options.packagePath, options.artifactName);
143
+ }
144
+ //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/lib/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/lib/mod.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@ export interface RegistryAddOptions {
5
5
  * Name selector for matching dependencies
6
6
  */
7
7
  selector: string;
8
- /**
9
- * Version of the registry specification (git tag)
10
- */
11
- version: string;
12
8
  /**
13
9
  * URL that contains the registry index for resolving modules
14
10
  */
15
11
  url: string;
12
+ /**
13
+ * Optional token for authentication.
14
+ */
15
+ token?: string;
16
16
  /**
17
17
  * Optional logger for output.
18
18
  */
@@ -1 +1,67 @@
1
- var A=Object.defineProperty,N=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var F=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable;var C=(r,e,t)=>e in r?A(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,a=(r,e)=>{for(var t in e||(e={}))z.call(e,t)&&C(r,t,e[t]);if(F)for(var t of F(e))J.call(e,t)&&C(r,t,e[t]);return r},m=(r,e)=>N(r,I(e));var s=(r,e,t)=>(C(r,typeof e!="symbol"?e+"":e,t),t);var h=function(r){return r.info="info",r.warn="warn",r.error="error",r.debug="debug",r.trace="trace",r.fatal="fatal",r}({}),q={[h.trace]:10,[h.debug]:20,[h.info]:30,[h.warn]:40,[h.error]:50,[h.fatal]:60},G={10:h.trace,20:h.debug,30:h.info,40:h.warn,50:h.error,60:h.fatal};var u=function(r){return r.onBeforeDataOut="onBeforeDataOut",r.shouldSendToLogger="shouldSendToLogger",r.onMetadataCalled="onMetadataCalled",r.onBeforeMessageOut="onBeforeMessageOut",r.onContextCalled="onContextCalled",r}({});var n=function(r){return r.info="info",r.warn="warn",r.error="error",r.debug="debug",r.trace="trace",r.fatal="fatal",r}({}),M={[n.trace]:10,[n.debug]:20,[n.info]:30,[n.warn]:40,[n.error]:50,[n.fatal]:60},X={10:n.trace,20:n.debug,30:n.info,40:n.warn,50:n.error,60:n.fatal};var D=class E{constructor(){s(this,"context",{});s(this,"hasContext",!1)}setContext(e){if(!e){this.context={},this.hasContext=!1;return}this.context=e,this.hasContext=!0}appendContext(e){this.context=a(a({},this.context),e),this.hasContext=!0}getContext(){return this.context}hasContextData(){return this.hasContext}onChildLoggerCreated({parentContextManager:e,childContextManager:t}){if(e.hasContextData()){let i=e.getContext();t.setContext(a({},i))}}clone(){let e=new E;return e.setContext(a({},this.context)),e.hasContext=this.hasContext,e}};var S=class{constructor(r){s(this,"err");s(this,"metadata");s(this,"structuredLogger");s(this,"hasMetadata");s(this,"pluginManager");this.err=null,this.metadata={},this.structuredLogger=r,this.hasMetadata=!1,this.pluginManager=r.pluginManager}withMetadata(r){let{pluginManager:e,structuredLogger:{_config:{consoleDebug:t}}}=this;if(!r)return t&&console.debug("[LogLayer] withMetadata was called with no metadata; dropping."),this;let i=r;return e.hasPlugins(u.onMetadataCalled)&&(i=e.runOnMetadataCalled(r,this.structuredLogger),!i)?(t&&console.debug("[LogLayer] Metadata was dropped due to plugin returning falsy value."),this):(this.metadata=a(a({},this.metadata),i),this.hasMetadata=!0,this)}withError(r){return this.err=r,this}info(...r){this.structuredLogger.isLevelEnabled(n.info)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.info,r))}warn(...r){this.structuredLogger.isLevelEnabled(n.warn)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.warn,r))}error(...r){this.structuredLogger.isLevelEnabled(n.error)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.error,r))}debug(...r){this.structuredLogger.isLevelEnabled(n.debug)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.debug,r))}trace(...r){this.structuredLogger.isLevelEnabled(n.trace)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.trace,r))}fatal(...r){this.structuredLogger.isLevelEnabled(n.fatal)&&(this.structuredLogger._formatMessage(r),this.formatLog(n.fatal,r))}disableLogging(){return this.structuredLogger.disableLogging(),this}enableLogging(){return this.structuredLogger.enableLogging(),this}formatLog(r,e){let{muteMetadata:t}=this.structuredLogger._config,i=t?!1:this.hasMetadata;this.structuredLogger._formatLog({logLevel:r,params:e,metadata:i?this.metadata:null,err:this.err})}},K=[u.onBeforeDataOut,u.onMetadataCalled,u.shouldSendToLogger,u.onBeforeMessageOut,u.onContextCalled],k=class{constructor(r){s(this,"idToPlugin");s(this,"onBeforeDataOut",[]);s(this,"shouldSendToLogger",[]);s(this,"onMetadataCalled",[]);s(this,"onBeforeMessageOut",[]);s(this,"onContextCalled",[]);this.idToPlugin={},this.mapPlugins(r),this.indexPlugins()}mapPlugins(r){for(let e of r){if(e.id||(e.id=Date.now().toString()+Math.random().toString()),this.idToPlugin[e.id])throw new Error(`[LogLayer] Plugin with id ${e.id} already exists.`);e.registeredAt=Date.now(),this.idToPlugin[e.id]=e}}indexPlugins(){this.onBeforeDataOut=[],this.shouldSendToLogger=[],this.onMetadataCalled=[],this.onBeforeMessageOut=[],this.onContextCalled=[];let r=Object.values(this.idToPlugin).sort((e,t)=>e.registeredAt-t.registeredAt);for(let e of r){if(e.disabled)return;for(let t of K)e[t]&&e.id&&this[t].push(e.id)}}hasPlugins(r){return this[r].length>0}countPlugins(r){return r?this[r].length:Object.keys(this.idToPlugin).length}addPlugins(r){this.mapPlugins(r),this.indexPlugins()}enablePlugin(r){let e=this.idToPlugin[r];e&&(e.disabled=!1),this.indexPlugins()}disablePlugin(r){let e=this.idToPlugin[r];e&&(e.disabled=!0),this.indexPlugins()}removePlugin(r){delete this.idToPlugin[r],this.indexPlugins()}runOnBeforeDataOut(r,e){let t=a({},r);for(let i of this.onBeforeDataOut){let o=this.idToPlugin[i];if(o.onBeforeDataOut){let l=o.onBeforeDataOut({data:t.data,logLevel:t.logLevel,error:t.error,metadata:t.metadata,context:t.context},e);l&&(t.data||(t.data={}),Object.assign(t.data,l))}}return t.data}runShouldSendToLogger(r,e){return!this.shouldSendToLogger.some(t=>{var i,o;return!((o=(i=this.idToPlugin[t]).shouldSendToLogger)!=null&&o.call(i,r,e))})}runOnMetadataCalled(r,e){var i,o;let t=a({},r);for(let l of this.onMetadataCalled){let d=(o=(i=this.idToPlugin[l]).onMetadataCalled)==null?void 0:o.call(i,t,e);if(d)t=d;else return null}return t}runOnBeforeMessageOut(r,e){var i,o;let t=[...r.messages];for(let l of this.onBeforeMessageOut){let d=(o=(i=this.idToPlugin[l]).onBeforeMessageOut)==null?void 0:o.call(i,{messages:t,logLevel:r.logLevel},e);d&&(t=d)}return t}runOnContextCalled(r,e){var i,o;let t=a({},r);for(let l of this.onContextCalled){let d=(o=(i=this.idToPlugin[l]).onContextCalled)==null?void 0:o.call(i,t,e);if(d)t=d;else return null}return t}},B=class R{constructor(e){s(this,"pluginManager");s(this,"idToTransport");s(this,"hasMultipleTransports");s(this,"singleTransport");s(this,"contextManager");s(this,"logLevelEnabledStatus",{info:!0,warn:!0,error:!0,debug:!0,trace:!0,fatal:!0});s(this,"_config");var t;this._config=m(a({},e),{enabled:(t=e.enabled)!=null?t:!0}),this._config.enabled||this.disableLogging(),this.contextManager=new D,this.pluginManager=new k(e.plugins||[]),this._config.errorFieldName||(this._config.errorFieldName="err"),this._config.copyMsgOnOnlyError||(this._config.copyMsgOnOnlyError=!1),this._initializeTransports(this._config.transport)}withContextManager(e){return this.contextManager&&typeof this.contextManager[Symbol.dispose]=="function"&&this.contextManager[Symbol.dispose](),this.contextManager=e,this}getContextManager(){return this.contextManager}_initializeTransports(e){if(this.idToTransport)for(let t in this.idToTransport)this.idToTransport[t]&&typeof this.idToTransport[t][Symbol.dispose]=="function"&&this.idToTransport[t][Symbol.dispose]();this.hasMultipleTransports=Array.isArray(e)&&e.length>1,this.singleTransport=this.hasMultipleTransports?null:Array.isArray(e)?e[0]:e,Array.isArray(e)?this.idToTransport=e.reduce((t,i)=>(t[i.id]=i,t),{}):this.idToTransport={[e.id]:e}}withPrefix(e){let t=this.child();return t._config.prefix=e,t}withContext(e){let t=e;return e?this.pluginManager.hasPlugins(u.onContextCalled)&&(t=this.pluginManager.runOnContextCalled(e,this),!t)?(this._config.consoleDebug&&console.debug("[LogLayer] Context was dropped due to plugin returning falsy value."),this):(this.contextManager.appendContext(t),this):(this._config.consoleDebug&&console.debug("[LogLayer] withContext was called with no context; dropping."),this)}clearContext(){return this.contextManager.setContext(void 0),this}getContext(){return this.contextManager.getContext()}addPlugins(e){this.pluginManager.addPlugins(e)}enablePlugin(e){this.pluginManager.enablePlugin(e)}disablePlugin(e){this.pluginManager.disablePlugin(e)}removePlugin(e){this.pluginManager.removePlugin(e)}withMetadata(e){return new S(this).withMetadata(e)}withError(e){return new S(this).withError(e)}child(){let e=new R(m(a({},this._config),{transport:Array.isArray(this._config.transport)?[...this._config.transport]:this._config.transport})).withPluginManager(this.pluginManager).withContextManager(this.contextManager.clone());return this.contextManager.onChildLoggerCreated({parentContextManager:this.contextManager,childContextManager:e.contextManager,parentLogger:this,childLogger:e}),e}withFreshTransports(e){return this._config.transport=e,this._initializeTransports(e),this}withFreshPlugins(e){return this._config.plugins=e,this.pluginManager=new k(e),this}withPluginManager(e){return this.pluginManager=e,this}errorOnly(e,t){let i=(t==null?void 0:t.logLevel)||n.error;if(!this.isLevelEnabled(i))return;let{copyMsgOnOnlyError:o}=this._config,l={logLevel:i,err:e};(o&&(t==null?void 0:t.copyMsg)!==!1||(t==null?void 0:t.copyMsg)===!0)&&(e!=null&&e.message)&&(l.params=[e.message]),this._formatLog(l)}metadataOnly(e,t=n.info){if(!this.isLevelEnabled(t))return;let{muteMetadata:i,consoleDebug:o}=this._config;if(i)return;if(!e){o&&console.debug("[LogLayer] metadataOnly was called with no metadata; dropping.");return}let l=e;if(this.pluginManager.hasPlugins(u.onMetadataCalled)&&(l=this.pluginManager.runOnMetadataCalled(e,this),!l)){o&&console.debug("[LogLayer] Metadata was dropped due to plugin returning falsy value.");return}let d={logLevel:t,metadata:l};this._formatLog(d)}info(...e){this.isLevelEnabled(n.info)&&(this._formatMessage(e),this._formatLog({logLevel:n.info,params:e}))}warn(...e){this.isLevelEnabled(n.warn)&&(this._formatMessage(e),this._formatLog({logLevel:n.warn,params:e}))}error(...e){this.isLevelEnabled(n.error)&&(this._formatMessage(e),this._formatLog({logLevel:n.error,params:e}))}debug(...e){this.isLevelEnabled(n.debug)&&(this._formatMessage(e),this._formatLog({logLevel:n.debug,params:e}))}trace(...e){this.isLevelEnabled(n.trace)&&(this._formatMessage(e),this._formatLog({logLevel:n.trace,params:e}))}fatal(...e){this.isLevelEnabled(n.fatal)&&(this._formatMessage(e),this._formatLog({logLevel:n.fatal,params:e}))}raw(e){if(!this.isLevelEnabled(e.logLevel))return;let t={logLevel:e.logLevel,params:e.messages,metadata:e.metadata,err:e.error,context:e.context};this._formatMessage(e.messages),this._formatLog(t)}disableLogging(){for(let e of Object.keys(this.logLevelEnabledStatus))this.logLevelEnabledStatus[e]=!1;return this}enableLogging(){for(let e of Object.keys(this.logLevelEnabledStatus))this.logLevelEnabledStatus[e]=!0;return this}muteContext(){return this._config.muteContext=!0,this}unMuteContext(){return this._config.muteContext=!1,this}muteMetadata(){return this._config.muteMetadata=!0,this}unMuteMetadata(){return this._config.muteMetadata=!1,this}enableIndividualLevel(e){let t=e;return t in this.logLevelEnabledStatus&&(this.logLevelEnabledStatus[t]=!0),this}disableIndividualLevel(e){let t=e;return t in this.logLevelEnabledStatus&&(this.logLevelEnabledStatus[t]=!1),this}setLevel(e){let t=M[e];for(let i of Object.values(n)){let o=i,l=M[i];this.logLevelEnabledStatus[o]=l>=t}return this}isLevelEnabled(e){let t=e;return this.logLevelEnabledStatus[t]}formatContext(e){let{contextFieldName:t,muteContext:i}=this._config;return e&&Object.keys(e).length>0&&!i?t?{[t]:a({},e)}:a({},e):{}}formatMetadata(e=null){let{metadataFieldName:t,muteMetadata:i}=this._config;return e&&!i?t?{[t]:a({},e)}:a({},e):{}}getLoggerInstance(e){let t=this.idToTransport[e];if(t)return t.getLoggerInstance()}_formatMessage(e=[]){let{prefix:t}=this._config;t&&typeof e[0]=="string"&&(e[0]=`${t} ${e[0]}`)}_formatLog({logLevel:e,params:t=[],metadata:i=null,err:o,context:l=null}){var P;let{errorSerializer:d,errorFieldInMetadata:O,muteContext:j,contextFieldName:v,metadataFieldName:f,errorFieldName:x}=this._config,p=l!==null?l:this.contextManager.getContext(),c=!!i||(j?!1:l!==null?Object.keys(l).length>0:this.contextManager.hasContextData()),g={};if(c)if(v&&v===f){let L=this.formatContext(p)[v],b=this.formatMetadata(i)[f];g={[v]:a(a({},L),b)}}else g=a(a({},this.formatContext(p)),this.formatMetadata(i));if(o){let L=d?d(o):o;O&&i&&f?g!=null&&g[f]?g[f][x]=L:g=m(a({},g),{[f]:{[x]:L}}):O&&!i&&f?g=m(a({},g),{[f]:{[x]:L}}):g=m(a({},g),{[x]:L}),c=!0}if(this.pluginManager.hasPlugins(u.onBeforeDataOut)&&(g=this.pluginManager.runOnBeforeDataOut({data:c?g:void 0,logLevel:e,error:o,metadata:i,context:p},this),g&&!c&&(c=!0)),this.pluginManager.hasPlugins(u.onBeforeMessageOut)&&(t=this.pluginManager.runOnBeforeMessageOut({messages:[...t],logLevel:e},this)),this.hasMultipleTransports){let L=this._config.transport.filter(b=>b.enabled).map(async b=>{if(!(this.pluginManager.hasPlugins(u.shouldSendToLogger)&&!this.pluginManager.runShouldSendToLogger({messages:[...t],data:c?g:void 0,logLevel:e,transportId:b.id,error:o,metadata:i,context:p},this)))return b._sendToLogger({logLevel:e,messages:[...t],data:c?g:void 0,hasData:c,error:o,metadata:i,context:p})});Promise.all(L).catch(b=>{this._config.consoleDebug&&console.error("[LogLayer] Error executing transports:",b)})}else{if(!((P=this.singleTransport)!=null&&P.enabled)||this.pluginManager.hasPlugins(u.shouldSendToLogger)&&!this.pluginManager.runShouldSendToLogger({messages:[...t],data:c?g:void 0,logLevel:e,transportId:this.singleTransport.id,error:o,metadata:i,context:p},this))return;this.singleTransport._sendToLogger({logLevel:e,messages:[...t],data:c?g:void 0,hasData:c,error:o,metadata:i,context:p})}}};function V(){let r={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};return new B({transport:r})}function w(r){return r!=null?r:V()}import{RegistryManager as _}from"@kumori/kdsl-lsp/module/registry/manager.js";import{Ok as y,Err as T}from"@kumori/kdsl-lsp/util/result.js";async function Me(r){let e=w(r.logger),t=new _,i={selector:r.selector,version:r.version,indexUrl:r.url};try{return t.add(i),e.info(`Registry '${r.selector}' added at ${r.url}`),y(void 0)}catch(o){return T([`Failed to add registry: ${o}`])}}async function ve(r={}){let e=w(r.logger),t=new _;try{let i=t.list();return e.info("Configured Registries:"),y(i)}catch(i){return T([`Failed to list registries: ${i}`])}}async function xe(r){let e=w(r.logger),t=new _;try{return t.remove(r.name),e.info(`Registry '${r.name}' removed`),y(void 0)}catch(i){return T([`Failed to remove registry: ${i}`])}}export{Me as registryAdd,ve as registryList,xe as registryRemove};
1
+ import { getLogger } from "./logger.js";
2
+ import { RegistryManager } from "@kumori/kdsl-lsp/module/registry/manager.js";
3
+ import { Ok, Err } from "@kumori/kdsl-lsp/util/result.js";
4
+ /**
5
+ * Add a registry to the resolver configuration.
6
+ *
7
+ * The selector argument is used to match artifacts. For example, a registry
8
+ * with Index URL "https://github.com/kumori" and selector "kumori.systems"
9
+ * will resolve dependencies starting with "kumori.systems".
10
+ *
11
+ * @param options - Registry add options
12
+ * @returns Result with void on success, or string[] of errors
13
+ */
14
+ export async function registryAdd(options) {
15
+ const log = getLogger(options.logger);
16
+ const manager = new RegistryManager();
17
+ const registry = {
18
+ selector: options.selector,
19
+ repoUrl: options.url,
20
+ token: options.token,
21
+ };
22
+ try {
23
+ await manager.add(registry);
24
+ log.info(`Registry '${options.selector}' added at ${options.url}`);
25
+ return Ok(undefined);
26
+ }
27
+ catch (err) {
28
+ return Err([`Failed to add registry: ${err}`]);
29
+ }
30
+ }
31
+ /**
32
+ * List all configured registries.
33
+ *
34
+ * @param options - Registry list options
35
+ * @returns Result with array of registry objects on success, or string[] of errors
36
+ */
37
+ export async function registryList(options = {}) {
38
+ const log = getLogger(options.logger);
39
+ const manager = new RegistryManager();
40
+ try {
41
+ const registries = manager.list();
42
+ log.info("Configured Registries:");
43
+ return Ok(registries);
44
+ }
45
+ catch (err) {
46
+ return Err([`Failed to list registries: ${err}`]);
47
+ }
48
+ }
49
+ /**
50
+ * Remove a configured registry by name.
51
+ *
52
+ * @param options - Registry remove options
53
+ * @returns Result with void on success, or string[] of errors
54
+ */
55
+ export async function registryRemove(options) {
56
+ const log = getLogger(options.logger);
57
+ const manager = new RegistryManager();
58
+ try {
59
+ manager.remove(options.name);
60
+ log.info(`Registry '${options.name}' removed`);
61
+ return Ok(undefined);
62
+ }
63
+ catch (err) {
64
+ return Err([`Failed to remove registry: ${err}`]);
65
+ }
66
+ }
67
+ //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAA;AAyBzD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,GAAG;KACtB,CAAA;IAED,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,CAAO,SAAS,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AASD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QACjC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAClC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC;AAcD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,WAAW,CAAC,CAAA;QAC9C,OAAO,EAAE,CAAO,SAAS,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAA;AAyBzD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,GAAG;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAA;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,CAAO,SAAS,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AASD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QACjC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAClC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC;AAcD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;IAErC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,WAAW,CAAC,CAAA;QAC9C,OAAO,EAAE,CAAO,SAAS,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC"}
package/dist/main.js CHANGED
@@ -7,6 +7,7 @@ import mod from "./mod/main.js";
7
7
  import version from "./version.js";
8
8
  import registry from "./registry/main.js";
9
9
  import index from "./index/main.js";
10
+ import deployment from "./deployment/main.js";
10
11
  import { LogLayer } from "loglayer";
11
12
  import { TsLogTransport } from "@loglayer/transport-tslog";
12
13
  import { Logger } from "tslog";
@@ -27,6 +28,7 @@ export async function main() {
27
28
  mod.Register(program, log);
28
29
  registry.Register(program, log);
29
30
  index.Register(program, log);
31
+ deployment.Register(program, log);
30
32
  await new Promise((resolve) => {
31
33
  program.hook("postAction", () => resolve());
32
34
  program.parse();
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,GAAG,MAAM,eAAe,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE9B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,QAAQ;QACd,4BAA4B,EAAE,IAAI;QAClC,SAAS,EAAE;YACT,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACzC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;SAC1C;KACF,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAEvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpD,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE5B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,GAAG,MAAM,eAAe,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,MAAM,iBAAiB,CAAA;AACnC,OAAO,UAAU,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE9B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,QAAQ;QACd,4BAA4B,EAAE,IAAI;QAClC,SAAS,EAAE;YACT,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACzC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;SAC1C;KACF,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAEvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpD,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5B,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAEjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -21,7 +21,7 @@ To add a dependency with an alias:
21
21
  kdsl mod dep github.com/org/repo@v1.0.0 --alias mydep
22
22
 
23
23
  To update a dependency to a new version:
24
- kdsl mod dep github.com/org/repo@v1.2.0
24
+ kdsl mod dep github.com/org/repo@1.2.0
25
25
 
26
26
  To remove a dependency:
27
27
  kdsl mod dep github.com/org/repo --remove
@@ -117,13 +117,15 @@ export const Dependency = async (log, cwd, module, options) => {
117
117
  version: headers.Version,
118
118
  };
119
119
  }
120
- await writeFile(UriUtils.joinPath(ctx.value.Current.Root, MOD_FILE).fsPath, JSON.stringify(manifest, undefined, 4));
121
120
  if (options.download) {
122
121
  const dl = await Download(log, svcs, cwd.fsPath, [], { quiet: true });
123
122
  if (Result.isErr(dl)) {
124
123
  throw new Error(`Failed to download dependency: ${dl.err.join(", ")}`);
125
124
  }
126
125
  }
126
+ // Update the dependency version
127
+ dep.version = url.Version;
128
+ await writeFile(UriUtils.joinPath(ctx.value.Current.Root, MOD_FILE).fsPath, JSON.stringify(manifest, undefined, 4));
127
129
  log.info(`Updated dependency ${url.Location} to version ${url.Version}` +
128
130
  (alias ? ` (alias: ${alias})` : "") +
129
131
  (headers ? ` (headers: ${headers})` : ""));
@@ -131,14 +133,19 @@ export const Dependency = async (log, cwd, module, options) => {
131
133
  else {
132
134
  // Not found? Then build a new dependency object and add it to the manifest
133
135
  const version = url.Version;
134
- const depObj = Object.assign(Object.assign({ target: url.Location, version }, (alias ? { alias } : {})), (headers
135
- ? {
136
- headers: {
137
- target: headers.Location,
138
- version: headers.Version,
139
- },
140
- }
141
- : {}));
136
+ const depObj = {
137
+ target: url.Location,
138
+ version,
139
+ ...(alias ? { alias } : {}),
140
+ ...(headers
141
+ ? {
142
+ headers: {
143
+ target: headers.Location,
144
+ version: headers.Version,
145
+ },
146
+ }
147
+ : {}),
148
+ };
142
149
  manifest.requires.push(depObj);
143
150
  await writeFile(UriUtils.joinPath(ctx.value.Current.Root, MOD_FILE).fsPath, JSON.stringify(manifest, undefined, 4));
144
151
  if (options.download) {
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/mod/dependency/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAE7E,MAAM,OAAO,GAAG,iEAAiE,CAAA;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;CAmB1B,CAAC,IAAI,EAAE,CAAA;AAER,eAAe,EAAE,QAAQ,EAAE,CAAA;AAC3B,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,GAAc;IACnD,MAAM,CAAC,GAAG,GAAG;SACV,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,KAAK,CAAC;SACZ,QAAQ,CACP,UAAU,EACV,kEAAkE,CACnE;SACA,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CACL,oBAAoB,EACpB,oDAAoD,CACrD;SACA,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,YAAY,EAAE,yCAAyC,CAAC;SAC/D,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC;SACxB,UAAU,CAAC,IAAI,CAAC;SAChB,kBAAkB,CAAC,IAAI,CAAC;SACxB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACtB,OAAO,CAAC,CAAA;AACV,CAAC;AAGD,MAAM,UAAU,MAAM,CAAC,GAAc;IACnC,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;QACrC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;QAE7B,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;YAChD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,GAAc,EACd,GAAQ,EACR,MAAiB,EACjB,OAAkB,EAClB,EAAE;IACF,MAAM,IAAI,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;IACxD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAA;IAEnD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAA;IAE3C,uCAAuC;IACvC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,mBAAmB,CAAC,CAAA;IAC9D,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1C,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAExD,6EAA6E;IAC7E,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAA;IAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,oBAAoB;IACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,MAAM,EAAE,CAAC;QACX,gEAAgE;QAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,CACpE,CAAA;QAED,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,CAAA;QAChD,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAEhC,MAAM,SAAS,CACb,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,EAC1D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CACvC,CAAA;QAED,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAChD,OAAM;IACR,CAAC;IAED,8CAA8C;IAC9C,IACE,KAAK;QACL,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACpB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAC5D,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,yCAAyC,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxE,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;;YACvB,OAAO,GAAG,CAAC,KAAK,CAAA;QAErB,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,OAAO,GAAG;gBACZ,MAAM,EAAE,OAAO,CAAC,QAAQ;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAA;QACH,CAAC;QAED,MAAM,SAAS,CACb,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,EAC1D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CACvC,CAAA;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAErE,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CACN,sBAAsB,GAAG,CAAC,QAAQ,eAAe,GAAG,CAAC,OAAO,EAAE;YAC5D,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAA;IACH,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAC3B,MAAM,MAAM,iCACV,MAAM,EAAE,GAAG,CAAC,QAAQ,EACpB,OAAO,IACJ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACxB,CAAC,OAAO;YACT,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,MAAM,EAAE,OAAO,CAAC,QAAQ;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB;aACF;YACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAA;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9B,MAAM,SAAS,CACb,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,EAC1D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CACvC,CAAA;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAExE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAA;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CACN,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE;YAClC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,qBAAqB,CACxB,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/mod/dependency/main.ts"],"names":[],"mappings":"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"}