@kumori/kdsl 0.0.14 → 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 (171) hide show
  1. package/dist/build/deployment_spec.d.ts +2586 -0
  2. package/dist/build/deployment_spec.js +293 -0
  3. package/dist/build/deployment_spec.js.map +1 -0
  4. package/dist/build/helpers/builtin.d.ts +17 -0
  5. package/dist/build/helpers/builtin.js +80 -0
  6. package/dist/build/helpers/builtin.js.map +1 -0
  7. package/dist/build/helpers/component.d.ts +17 -0
  8. package/dist/build/helpers/component.js +212 -0
  9. package/dist/build/helpers/component.js.map +1 -0
  10. package/dist/build/helpers/connector.d.ts +13 -0
  11. package/dist/build/helpers/connector.js +189 -0
  12. package/dist/build/helpers/connector.js.map +1 -0
  13. package/dist/build/helpers/deployment.d.ts +326 -0
  14. package/dist/build/helpers/deployment.js +85 -0
  15. package/dist/build/helpers/deployment.js.map +1 -0
  16. package/dist/build/helpers/resource.d.ts +97 -0
  17. package/dist/build/helpers/resource.js +54 -0
  18. package/dist/build/helpers/resource.js.map +1 -0
  19. package/dist/build/helpers/service.d.ts +27 -0
  20. package/dist/build/helpers/service.js +196 -0
  21. package/dist/build/helpers/service.js.map +1 -0
  22. package/dist/build/helpers/utils.d.ts +30 -0
  23. package/dist/build/helpers/utils.js +77 -0
  24. package/dist/build/helpers/utils.js.map +1 -0
  25. package/dist/build/main.d.ts +17 -0
  26. package/dist/build/main.js +188 -0
  27. package/dist/build/main.js.map +1 -0
  28. package/dist/build/solution.d.ts +20 -0
  29. package/dist/build/solution.js +71 -0
  30. package/dist/build/solution.js.map +1 -0
  31. package/dist/check/main.d.ts +21 -0
  32. package/dist/check/main.js +99 -0
  33. package/dist/check/main.js.map +1 -0
  34. package/dist/clean/main.d.ts +11 -0
  35. package/dist/clean/main.js +26 -0
  36. package/dist/clean/main.js.map +1 -0
  37. package/dist/deployment/gen/deployment-template.kumori +33 -0
  38. package/dist/deployment/gen/main.d.ts +15 -0
  39. package/dist/deployment/gen/main.js +158 -0
  40. package/dist/deployment/gen/main.js.map +1 -0
  41. package/dist/deployment/gen/types.d.ts +27 -0
  42. package/dist/deployment/gen/types.js +2 -0
  43. package/dist/deployment/gen/types.js.map +1 -0
  44. package/dist/deployment/main.d.ts +8 -0
  45. package/dist/deployment/main.js +17 -0
  46. package/dist/deployment/main.js.map +1 -0
  47. package/dist/help/main.d.ts +13 -0
  48. package/dist/help/main.js +49 -0
  49. package/dist/help/main.js.map +1 -0
  50. package/dist/help/topic/build.d.ts +2 -0
  51. package/dist/help/topic/build.js +7 -0
  52. package/dist/help/topic/build.js.map +1 -0
  53. package/dist/help/topic/mod_dep.d.ts +2 -0
  54. package/dist/help/topic/mod_dep.js +8 -0
  55. package/dist/help/topic/mod_dep.js.map +1 -0
  56. package/dist/help/topic/mod_dl.d.ts +2 -0
  57. package/dist/help/topic/mod_dl.js +25 -0
  58. package/dist/help/topic/mod_dl.js.map +1 -0
  59. package/dist/index/create/main.d.ts +14 -0
  60. package/dist/index/create/main.js +286 -0
  61. package/dist/index/create/main.js.map +1 -0
  62. package/dist/index/main.d.ts +8 -0
  63. package/dist/index/main.js +17 -0
  64. package/dist/index/main.js.map +1 -0
  65. package/dist/lib/build.d.ts +42 -0
  66. package/dist/lib/build.js +42 -0
  67. package/dist/lib/build.js.map +1 -0
  68. package/dist/lib/check.d.ts +41 -0
  69. package/dist/lib/check.js +45 -0
  70. package/dist/lib/check.js.map +1 -0
  71. package/dist/lib/clean.d.ts +31 -0
  72. package/dist/lib/clean.js +39 -0
  73. package/dist/lib/clean.js.map +1 -0
  74. package/dist/lib/deployment.d.ts +35 -0
  75. package/dist/lib/deployment.js +31 -0
  76. package/dist/lib/deployment.js.map +1 -0
  77. package/dist/lib/index-cmd.d.ts +54 -0
  78. package/dist/lib/index-cmd.js +60 -0
  79. package/dist/lib/index-cmd.js.map +1 -0
  80. package/dist/lib/index.d.ts +58 -0
  81. package/dist/lib/index.js +54 -0
  82. package/dist/lib/index.js.map +1 -0
  83. package/dist/lib/io/lib.kumori +5 -0
  84. package/dist/lib/kumori/builtin/httpinbound.h.kumori +27 -0
  85. package/dist/lib/kumori/builtin/tcpinbound.h.kumori +25 -0
  86. package/dist/lib/kumori/builtin.kumori +18 -0
  87. package/dist/lib/kumori/component.kumori +120 -0
  88. package/dist/lib/kumori/deployment.kumori +16 -0
  89. package/dist/lib/kumori/resource.kumori +25 -0
  90. package/dist/lib/kumori/service.kumori +49 -0
  91. package/dist/lib/kumori/shared.kumori +11 -0
  92. package/dist/lib/kumori/sized.kumori +25 -0
  93. package/dist/lib/logger.d.ts +10 -0
  94. package/dist/lib/logger.js +23 -0
  95. package/dist/lib/logger.js.map +1 -0
  96. package/dist/lib/mod.d.ts +156 -0
  97. package/dist/lib/mod.js +144 -0
  98. package/dist/lib/mod.js.map +1 -0
  99. package/dist/lib/registry.d.ts +61 -0
  100. package/dist/lib/registry.js +67 -0
  101. package/dist/lib/registry.js.map +1 -0
  102. package/dist/lib/sized.kumori +8 -0
  103. package/dist/lib/std.kumori +8 -0
  104. package/dist/lib/strconv/lib.kumori +11 -0
  105. package/dist/lib/types.d.ts +26 -0
  106. package/dist/lib/types.js +2 -0
  107. package/dist/lib/types.js.map +1 -0
  108. package/dist/main.d.ts +1 -0
  109. package/dist/main.js +37 -0
  110. package/dist/main.js.map +1 -0
  111. package/dist/mod/checksum/main.d.ts +11 -0
  112. package/dist/mod/checksum/main.js +33 -0
  113. package/dist/mod/checksum/main.js.map +1 -0
  114. package/dist/mod/dependency/main.d.ts +19 -0
  115. package/dist/mod/dependency/main.js +163 -0
  116. package/dist/mod/dependency/main.js.map +1 -0
  117. package/dist/mod/download/functions.d.ts +53 -0
  118. package/dist/mod/download/functions.js +235 -0
  119. package/dist/mod/download/functions.js.map +1 -0
  120. package/dist/mod/download/main.d.ts +26 -0
  121. package/dist/mod/download/main.js +99 -0
  122. package/dist/mod/download/main.js.map +1 -0
  123. package/dist/mod/init/main.d.ts +13 -0
  124. package/dist/mod/init/main.js +66 -0
  125. package/dist/mod/init/main.js.map +1 -0
  126. package/dist/mod/jsonschema/gen/main.d.ts +11 -0
  127. package/dist/mod/jsonschema/gen/main.js +288 -0
  128. package/dist/mod/jsonschema/gen/main.js.map +1 -0
  129. package/dist/mod/jsonschema/get/kdslschema.d.ts +28 -0
  130. package/dist/mod/jsonschema/get/kdslschema.js +3 -0
  131. package/dist/mod/jsonschema/get/kdslschema.js.map +1 -0
  132. package/dist/mod/jsonschema/get/main.d.ts +76 -0
  133. package/dist/mod/jsonschema/get/main.js +346 -0
  134. package/dist/mod/jsonschema/get/main.js.map +1 -0
  135. package/dist/mod/jsonschema/main.d.ts +8 -0
  136. package/dist/mod/jsonschema/main.js +20 -0
  137. package/dist/mod/jsonschema/main.js.map +1 -0
  138. package/dist/mod/main.d.ts +8 -0
  139. package/dist/mod/main.js +27 -0
  140. package/dist/mod/main.js.map +1 -0
  141. package/dist/mod/update/main.d.ts +17 -0
  142. package/dist/mod/update/main.js +68 -0
  143. package/dist/mod/update/main.js.map +1 -0
  144. package/dist/registry/add.d.ts +15 -0
  145. package/dist/registry/add.js +58 -0
  146. package/dist/registry/add.js.map +1 -0
  147. package/dist/registry/list.d.ts +15 -0
  148. package/dist/registry/list.js +29 -0
  149. package/dist/registry/list.js.map +1 -0
  150. package/dist/registry/main.d.ts +8 -0
  151. package/dist/registry/main.js +21 -0
  152. package/dist/registry/main.js.map +1 -0
  153. package/dist/registry/remove.d.ts +15 -0
  154. package/dist/registry/remove.js +34 -0
  155. package/dist/registry/remove.js.map +1 -0
  156. package/dist/util/err-format.d.ts +2 -0
  157. package/dist/util/err-format.js +10 -0
  158. package/dist/util/err-format.js.map +1 -0
  159. package/dist/util/err-handler.d.ts +3 -0
  160. package/dist/util/err-handler.js +11 -0
  161. package/dist/util/err-handler.js.map +1 -0
  162. package/dist/util.d.ts +2 -0
  163. package/dist/util.js +2 -0
  164. package/dist/util.js.map +1 -0
  165. package/dist/version.d.ts +2 -0
  166. package/dist/version.js +5 -0
  167. package/dist/version.js.map +1 -0
  168. package/out/deployment/gen/deployment-template.kumori +33 -0
  169. package/out/deployment-template.kumori +33 -0
  170. package/out/main.cjs +378 -209
  171. package/package.json +67 -17
@@ -0,0 +1,158 @@
1
+ import { Err, Ok } from "@kumori/kdsl-lsp/util/result.js";
2
+ import { NodeFileSystem } from "langium/node";
3
+ import { URI } from "langium";
4
+ import { createKumoriServices, } from "@kumori/kdsl-lsp/language/kumori.js";
5
+ import Handlebars from "handlebars";
6
+ import * as files from "node:fs";
7
+ import * as path from "node:path";
8
+ const Summary = `generates a deployment based on a deployment config JSON`;
9
+ export const Description = `
10
+ After running the command kdsl build, which generates a deployment-config.json file containing
11
+ the JSON representation of a particular deployment, this command can be used to generate the corresponding
12
+ deployment artifact in Kumori DSL syntax.
13
+
14
+ Sometimes it is really useful to apply patches directly to the JSON representation of a deployment,
15
+ and then regenerate the Kumori DSL source code for that deployment. This command facilitates that process.
16
+
17
+ This command attempts to search for a deployment-config.json file in the current working directory,
18
+ and generates a deployment artifact file named generated-deployment.kumori in the same directory.
19
+
20
+ Additionally, you can specify a different path to where the deployment-config.json file is located as well
21
+ as a different output path for the generated Kumori DSL file.
22
+
23
+ Examples:
24
+ kdsl deployment gen
25
+ kdsl deployment gen path/to/deployment-config.json
26
+ kdsl deployment gen path/to/deployment-config.json path/to/output/generated-deployment.kumori
27
+ `.trim();
28
+ export default { Register };
29
+ export function Register(cmd, log) {
30
+ const c = cmd
31
+ .command("generate")
32
+ .alias("gen")
33
+ .argument("[input]", `path to deployment-config.json file`, "deployment-config.json")
34
+ .argument("[output]", `path to output generated Kumori DSL file`, "generated-deployment.kumori")
35
+ .summary(Summary)
36
+ .description(Description)
37
+ .helpOption(true)
38
+ .action(Action(log));
39
+ return c;
40
+ }
41
+ export function Action(log) {
42
+ return async (input = "deployment-config.json", output = "generated-deployment.kumori") => {
43
+ const svcs = createKumoriServices(NodeFileSystem).Kumori;
44
+ await GenDeployment(log, svcs, input, output);
45
+ };
46
+ }
47
+ export async function GenDeployment(log, svcs, input, output) {
48
+ // Read the input file
49
+ const fs = svcs.shared.workspace.FileSystemProvider;
50
+ let inputFile = "";
51
+ try {
52
+ const inputFilePath = path.resolve(input);
53
+ inputFile = fs.readFileSync(URI.file(inputFilePath));
54
+ }
55
+ catch (e) {
56
+ log.error(`Input file not found: ${input} error: ${e}`);
57
+ return Err([`Input file not found: ${input} error: ${e}`]);
58
+ }
59
+ // Parse the JSON
60
+ let deploymentJson;
61
+ try {
62
+ deploymentJson = JSON.parse(inputFile);
63
+ }
64
+ catch (e) {
65
+ log.error(`Failed to parse JSON from input file: ${input} error: ${e}`);
66
+ return Err([`Failed to parse JSON from input file: ${input} error: ${e}`]);
67
+ }
68
+ const name = deploymentJson.name;
69
+ const resilience = deploymentJson.config.resilience;
70
+ // Build the import path for our artifact. If package is empty, we skip it.
71
+ // Otherwise, we import everything up until the last slash of the package, which is the actual route
72
+ // to the artifact within the module
73
+ let artifactImport = undefined;
74
+ const lastSlash = deploymentJson.artifact.ref.package.lastIndexOf("/");
75
+ if (deploymentJson.artifact.ref.package !== "") {
76
+ artifactImport =
77
+ deploymentJson.artifact.ref.domain +
78
+ "/" +
79
+ deploymentJson.artifact.ref.module +
80
+ "/" +
81
+ deploymentJson.artifact.ref.package.substring(0, lastSlash);
82
+ }
83
+ const imports = artifactImport ? [artifactImport] : [];
84
+ // Build the artifact name <package>.<name>
85
+ // Again, if the package is empty, we just need to use the name
86
+ const artifact = deploymentJson.artifact.ref.package !== ""
87
+ ? deploymentJson.artifact.ref.package.substring(lastSlash + 1) +
88
+ "." +
89
+ deploymentJson.artifact.ref.name
90
+ : deploymentJson.artifact.ref.name;
91
+ const resources = [];
92
+ Object.entries(deploymentJson.config.resource).forEach(([key, value]) => {
93
+ const resourceName = Object.entries(Object(value))[0][1];
94
+ // First letter always uppercase for the resource type
95
+ const resourceType = Object.entries(Object(value))[0][0].charAt(0).toUpperCase() +
96
+ Object.entries(Object(value))[0][0].slice(1);
97
+ const resource = `${key} kumori.${resourceType}("${resourceName}")`;
98
+ resources.push(resource);
99
+ });
100
+ // Make sure to import "kumori" as well if we have resources
101
+ if (Object.keys(deploymentJson.config.resource).length > 0) {
102
+ if (!imports.includes("kumori")) {
103
+ imports.push("kumori");
104
+ }
105
+ }
106
+ const config = [];
107
+ Object.entries(deploymentJson.config.parameter).forEach(([key, value]) => {
108
+ const formattedValue = typeof value === "string" ? `"${value}"` : value;
109
+ config.push(`${key} ${formattedValue}`);
110
+ // If the value starts with "<something>.", we must import that as well
111
+ const splitValue = String(value).split(".");
112
+ if (splitValue.length == 2 && splitValue[1] != "") {
113
+ const importName = splitValue[0];
114
+ if (!imports.includes(importName)) {
115
+ imports.push(importName);
116
+ }
117
+ }
118
+ });
119
+ const scale = [];
120
+ let scaleValue = -1;
121
+ // We do not include inbound roles, they are always 1
122
+ // If the artifact is a component, we can define the scale as just a number
123
+ if (deploymentJson.artifact.ref.kind === "component") {
124
+ scaleValue = Object(deploymentJson.config.scale).hsize;
125
+ }
126
+ else {
127
+ Object.entries(deploymentJson.config.scale.detail)
128
+ .filter(([key]) => key !== "Inbound")
129
+ .forEach(([key, value]) => {
130
+ scale.push(`${key} ${Object(value).hsize}`);
131
+ });
132
+ }
133
+ // Call handlebars to generate the output file
134
+ const templateFile = fs.readFileSync(URI.file(new URL("./deployment-template.kumori", import.meta.url).pathname));
135
+ const template = Handlebars.compile(templateFile, { noEscape: true });
136
+ const outputFile = template({
137
+ name,
138
+ artifact,
139
+ resilience,
140
+ imports,
141
+ config,
142
+ scale,
143
+ scaleValue,
144
+ resources,
145
+ });
146
+ // Write the output file
147
+ try {
148
+ const outputFilePath = path.resolve(output);
149
+ files.writeFileSync(outputFilePath, outputFile);
150
+ log.info(`Generated deployment artifact at: ${output}`);
151
+ }
152
+ catch (e) {
153
+ log.error(`Failed to write output file: ${output} error: ${e}`);
154
+ return Err([`Failed to write output file: ${output} error: ${e}`]);
155
+ }
156
+ return Ok(undefined);
157
+ }
158
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/deployment/gen/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export type DeploymentJson = {
2
+ name: string;
3
+ config: {
4
+ parameter: Record<string, {
5
+ [k: string]: unknown;
6
+ }>;
7
+ resource: Record<string, {
8
+ [k: string]: unknown;
9
+ }>;
10
+ resilience: number;
11
+ scale: {
12
+ detail: Record<string, {
13
+ hsize: number;
14
+ }>;
15
+ };
16
+ };
17
+ artifact: {
18
+ ref: {
19
+ version: [number, number, number];
20
+ kind: "service" | "component" | string;
21
+ domain: string;
22
+ module: string;
23
+ name: string;
24
+ package: string;
25
+ };
26
+ };
27
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deployment/gen/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { Command } from "@commander-js/extra-typings";
2
+ import { ILogLayer } from "loglayer";
3
+ declare const _default: {
4
+ Register: typeof Register;
5
+ };
6
+ export default _default;
7
+ export declare function Register(cmd: Command, log: ILogLayer): Command<[], {}, {}>;
8
+ export declare const Description: string;
@@ -0,0 +1,17 @@
1
+ import gen from "./gen/main.js";
2
+ export default { Register };
3
+ export function Register(cmd, log) {
4
+ const program = cmd
5
+ .command("deployment")
6
+ .summary(Summary)
7
+ .description(Description)
8
+ .helpCommand(false)
9
+ .helpOption(false);
10
+ gen.Register(program, log);
11
+ return program;
12
+ }
13
+ const Summary = `deployment operations`;
14
+ export const Description = `
15
+ Provides access to operations on deployments.
16
+ `.trim();
17
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/deployment/main.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,eAAe,CAAA;AAE/B,eAAe,EAAE,QAAQ,EAAE,CAAA;AAC3B,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,GAAc;IACnD,MAAM,OAAO,GAAG,GAAG;SAChB,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC;SACxB,WAAW,CAAC,KAAK,CAAC;SAClB,UAAU,CAAC,KAAK,CAAC,CAAA;IAEpB,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE1B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,OAAO,GAAG,uBAAuB,CAAA;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG;;CAE1B,CAAC,IAAI,EAAE,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { Command } from "@commander-js/extra-typings";
2
+ import { CommanderActionParams } from "../util.js";
3
+ declare const _default: {
4
+ Register: typeof Register;
5
+ };
6
+ export default _default;
7
+ export declare function Register(cmd: Command): Command<[string[]], {
8
+ all?: true | undefined;
9
+ }, {}>;
10
+ export declare const Description: string;
11
+ export declare const RegisterTopic: (topic: string, fn: () => Promise<void>) => Map<string, () => Promise<void>>;
12
+ type Exec = CommanderActionParams<ReturnType<typeof Register>>;
13
+ export declare const Exec: Exec;
@@ -0,0 +1,49 @@
1
+ export default { Register };
2
+ export function Register(cmd) {
3
+ const c = cmd
4
+ .command("help")
5
+ .summary(Summary)
6
+ .description(Description)
7
+ .argument("[topic...]")
8
+ .option("-a, --all", "list all available topics")
9
+ .action(Exec);
10
+ return c;
11
+ }
12
+ const Summary = `
13
+ displays helpful information on various topics
14
+ `.trim();
15
+ export const Description = `
16
+ Use "kdsl help -a" for a list of available topics.
17
+ `.trim();
18
+ const Topics = new Map();
19
+ export const RegisterTopic = (topic, fn) => Topics.set(topic, fn);
20
+ export const Exec = async (topics, options, cmd) => {
21
+ if (options.all) {
22
+ return ListTopics();
23
+ }
24
+ if (!topics.length) {
25
+ cmd.outputHelp();
26
+ return;
27
+ }
28
+ const topic = topics.join(" ");
29
+ const fn = Topics.get(topic);
30
+ if (!fn) {
31
+ console.error(`unknown topic '${topic}'\n`);
32
+ return ListTopics();
33
+ }
34
+ await fn();
35
+ };
36
+ const ListTopics = () => {
37
+ console.log("Available topics:\n");
38
+ console.log(Array.from(Topics.keys())
39
+ .sort()
40
+ .map((e) => "\t" + e)
41
+ .join("\n"));
42
+ };
43
+ import mod_dep from "./topic/mod_dep.js";
44
+ RegisterTopic(...mod_dep);
45
+ import mod_dl from "./topic/mod_dl.js";
46
+ RegisterTopic(...mod_dl);
47
+ import build from "./topic/build.js";
48
+ RegisterTopic(...build);
49
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/help/main.ts"],"names":[],"mappings":"AAGA,eAAe,EAAE,QAAQ,EAAE,CAAA;AAC3B,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,MAAM,CAAC,GAAG,GAAG;SACV,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC;SACxB,QAAQ,CAAC,YAAY,CAAC;SACtB,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,IAAI,CAAC,CAAA;IACf,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,OAAO,GAAG;;CAEf,CAAC,IAAI,EAAE,CAAA;AACR,MAAM,CAAC,MAAM,WAAW,GAAG;;CAE1B,CAAC,IAAI,EAAE,CAAA;AAER,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAA;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAuB,EAAE,EAAE,CACtE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAGvB,MAAM,CAAC,MAAM,IAAI,GAAS,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAiB,EAAE;IACtE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,UAAU,EAAE,CAAA;QAChB,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAA;QAC3C,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,EAAE,EAAE,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACtB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CACd,CAAA;AACH,CAAC,CAAA;AAED,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAA;AAEzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,aAAa,CAAC,GAAG,MAAM,CAAC,CAAA;AAExB,OAAO,KAAK,MAAM,kBAAkB,CAAA;AACpC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: readonly ["build", () => Promise<void>];
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ export default [
2
+ "build",
3
+ async () => {
4
+ console.log("TBD");
5
+ },
6
+ ];
7
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/help/topic/build.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,OAAO;IACP,KAAK,IAAI,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;CACO,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: readonly ["mod dep", () => Promise<void>];
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { Description } from "../../mod/dependency/main.js";
2
+ export default [
3
+ "mod dep",
4
+ async () => {
5
+ console.log(Description);
6
+ },
7
+ ];
8
+ //# sourceMappingURL=mod_dep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod_dep.js","sourceRoot":"","sources":["../../../src/help/topic/mod_dep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,eAAe;IACb,SAAS;IACT,KAAK,IAAI,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;CACO,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: readonly ["mod dl", () => Promise<void>];
2
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import { Description } from "../../mod/download/main.js";
2
+ export default [
3
+ "mod dl",
4
+ async () => {
5
+ console.log(Description);
6
+ console.log(`
7
+ kdsl mod download
8
+ kdsl mod dl
9
+
10
+ Without arguments, downloads all dependencies and validates against the avail-
11
+ able checksums.
12
+
13
+ kdsl mod dl example.com/module
14
+
15
+ Downloads all dependencies that match the particular target (can match multi-
16
+ ple).
17
+
18
+ kdsl mod dl example.com/module@v1.2.3
19
+
20
+ Downloads a specific dependency, whether or not it is registered in the mani-
21
+ fest.
22
+ `.trimEnd());
23
+ },
24
+ ];
25
+ //# sourceMappingURL=mod_dl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod_dl.js","sourceRoot":"","sources":["../../../src/help/topic/mod_dl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,eAAe;IACb,QAAQ;IACR,KAAK,IAAI,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACxB,OAAO,CAAC,GAAG,CACT;;;;;;;;;;;;;;;;CAgBL,CAAC,OAAO,EAAE,CACN,CAAA;IACH,CAAC;CACO,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Command } from "@commander-js/extra-typings";
2
+ import { ILogLayer } from "loglayer";
3
+ import { CommanderActionParams } from "../../util.js";
4
+ export declare const Description: string;
5
+ declare const _default: {
6
+ Register: typeof Register;
7
+ };
8
+ export default _default;
9
+ export declare function Register(cmd: Command, log: ILogLayer): Command<[], {
10
+ module?: string | undefined;
11
+ index?: string | undefined;
12
+ }, {}>;
13
+ type Exec = CommanderActionParams<ReturnType<typeof Register>>;
14
+ export declare function Action(log: ILogLayer): Exec;