@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.
- package/dist/build/deployment_spec.d.ts +2586 -0
- package/dist/build/deployment_spec.js +293 -0
- package/dist/build/deployment_spec.js.map +1 -0
- package/dist/build/helpers/builtin.d.ts +17 -0
- package/dist/build/helpers/builtin.js +80 -0
- package/dist/build/helpers/builtin.js.map +1 -0
- package/dist/build/helpers/component.d.ts +17 -0
- package/dist/build/helpers/component.js +212 -0
- package/dist/build/helpers/component.js.map +1 -0
- package/dist/build/helpers/connector.d.ts +13 -0
- package/dist/build/helpers/connector.js +189 -0
- package/dist/build/helpers/connector.js.map +1 -0
- package/dist/build/helpers/deployment.d.ts +326 -0
- package/dist/build/helpers/deployment.js +85 -0
- package/dist/build/helpers/deployment.js.map +1 -0
- package/dist/build/helpers/resource.d.ts +97 -0
- package/dist/build/helpers/resource.js +54 -0
- package/dist/build/helpers/resource.js.map +1 -0
- package/dist/build/helpers/service.d.ts +27 -0
- package/dist/build/helpers/service.js +196 -0
- package/dist/build/helpers/service.js.map +1 -0
- package/dist/build/helpers/utils.d.ts +30 -0
- package/dist/build/helpers/utils.js +77 -0
- package/dist/build/helpers/utils.js.map +1 -0
- package/dist/build/main.d.ts +17 -0
- package/dist/build/main.js +188 -0
- package/dist/build/main.js.map +1 -0
- package/dist/build/solution.d.ts +20 -0
- package/dist/build/solution.js +71 -0
- package/dist/build/solution.js.map +1 -0
- package/dist/check/main.d.ts +21 -0
- package/dist/check/main.js +99 -0
- package/dist/check/main.js.map +1 -0
- package/dist/clean/main.d.ts +11 -0
- package/dist/clean/main.js +26 -0
- package/dist/clean/main.js.map +1 -0
- package/dist/deployment/gen/deployment-template.kumori +33 -0
- package/dist/deployment/gen/main.d.ts +15 -0
- package/dist/deployment/gen/main.js +158 -0
- package/dist/deployment/gen/main.js.map +1 -0
- package/dist/deployment/gen/types.d.ts +27 -0
- package/dist/deployment/gen/types.js +2 -0
- package/dist/deployment/gen/types.js.map +1 -0
- package/dist/deployment/main.d.ts +8 -0
- package/dist/deployment/main.js +17 -0
- package/dist/deployment/main.js.map +1 -0
- package/dist/help/main.d.ts +13 -0
- package/dist/help/main.js +49 -0
- package/dist/help/main.js.map +1 -0
- package/dist/help/topic/build.d.ts +2 -0
- package/dist/help/topic/build.js +7 -0
- package/dist/help/topic/build.js.map +1 -0
- package/dist/help/topic/mod_dep.d.ts +2 -0
- package/dist/help/topic/mod_dep.js +8 -0
- package/dist/help/topic/mod_dep.js.map +1 -0
- package/dist/help/topic/mod_dl.d.ts +2 -0
- package/dist/help/topic/mod_dl.js +25 -0
- package/dist/help/topic/mod_dl.js.map +1 -0
- package/dist/index/create/main.d.ts +14 -0
- package/dist/index/create/main.js +286 -0
- package/dist/index/create/main.js.map +1 -0
- package/dist/index/main.d.ts +8 -0
- package/dist/index/main.js +17 -0
- package/dist/index/main.js.map +1 -0
- package/dist/lib/build.d.ts +42 -0
- package/dist/lib/build.js +42 -0
- package/dist/lib/build.js.map +1 -0
- package/dist/lib/check.d.ts +41 -0
- package/dist/lib/check.js +45 -0
- package/dist/lib/check.js.map +1 -0
- package/dist/lib/clean.d.ts +31 -0
- package/dist/lib/clean.js +39 -0
- package/dist/lib/clean.js.map +1 -0
- package/dist/lib/deployment.d.ts +35 -0
- package/dist/lib/deployment.js +31 -0
- package/dist/lib/deployment.js.map +1 -0
- package/dist/lib/index-cmd.d.ts +54 -0
- package/dist/lib/index-cmd.js +60 -0
- package/dist/lib/index-cmd.js.map +1 -0
- package/dist/lib/index.d.ts +58 -0
- package/dist/lib/index.js +54 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/io/lib.kumori +5 -0
- package/dist/lib/kumori/builtin/httpinbound.h.kumori +27 -0
- package/dist/lib/kumori/builtin/tcpinbound.h.kumori +25 -0
- package/dist/lib/kumori/builtin.kumori +18 -0
- package/dist/lib/kumori/component.kumori +120 -0
- package/dist/lib/kumori/deployment.kumori +16 -0
- package/dist/lib/kumori/resource.kumori +25 -0
- package/dist/lib/kumori/service.kumori +49 -0
- package/dist/lib/kumori/shared.kumori +11 -0
- package/dist/lib/kumori/sized.kumori +25 -0
- package/dist/lib/logger.d.ts +10 -0
- package/dist/lib/logger.js +23 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/mod.d.ts +156 -0
- package/dist/lib/mod.js +144 -0
- package/dist/lib/mod.js.map +1 -0
- package/dist/lib/registry.d.ts +61 -0
- package/dist/lib/registry.js +67 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/sized.kumori +8 -0
- package/dist/lib/std.kumori +8 -0
- package/dist/lib/strconv/lib.kumori +11 -0
- package/dist/lib/types.d.ts +26 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +37 -0
- package/dist/main.js.map +1 -0
- package/dist/mod/checksum/main.d.ts +11 -0
- package/dist/mod/checksum/main.js +33 -0
- package/dist/mod/checksum/main.js.map +1 -0
- package/dist/mod/dependency/main.d.ts +19 -0
- package/dist/mod/dependency/main.js +163 -0
- package/dist/mod/dependency/main.js.map +1 -0
- package/dist/mod/download/functions.d.ts +53 -0
- package/dist/mod/download/functions.js +235 -0
- package/dist/mod/download/functions.js.map +1 -0
- package/dist/mod/download/main.d.ts +26 -0
- package/dist/mod/download/main.js +99 -0
- package/dist/mod/download/main.js.map +1 -0
- package/dist/mod/init/main.d.ts +13 -0
- package/dist/mod/init/main.js +66 -0
- package/dist/mod/init/main.js.map +1 -0
- package/dist/mod/jsonschema/gen/main.d.ts +11 -0
- package/dist/mod/jsonschema/gen/main.js +288 -0
- package/dist/mod/jsonschema/gen/main.js.map +1 -0
- package/dist/mod/jsonschema/get/kdslschema.d.ts +28 -0
- package/dist/mod/jsonschema/get/kdslschema.js +3 -0
- package/dist/mod/jsonschema/get/kdslschema.js.map +1 -0
- package/dist/mod/jsonschema/get/main.d.ts +76 -0
- package/dist/mod/jsonschema/get/main.js +346 -0
- package/dist/mod/jsonschema/get/main.js.map +1 -0
- package/dist/mod/jsonschema/main.d.ts +8 -0
- package/dist/mod/jsonschema/main.js +20 -0
- package/dist/mod/jsonschema/main.js.map +1 -0
- package/dist/mod/main.d.ts +8 -0
- package/dist/mod/main.js +27 -0
- package/dist/mod/main.js.map +1 -0
- package/dist/mod/update/main.d.ts +17 -0
- package/dist/mod/update/main.js +68 -0
- package/dist/mod/update/main.js.map +1 -0
- package/dist/registry/add.d.ts +15 -0
- package/dist/registry/add.js +58 -0
- package/dist/registry/add.js.map +1 -0
- package/dist/registry/list.d.ts +15 -0
- package/dist/registry/list.js +29 -0
- package/dist/registry/list.js.map +1 -0
- package/dist/registry/main.d.ts +8 -0
- package/dist/registry/main.js +21 -0
- package/dist/registry/main.js.map +1 -0
- package/dist/registry/remove.d.ts +15 -0
- package/dist/registry/remove.js +34 -0
- package/dist/registry/remove.js.map +1 -0
- package/dist/util/err-format.d.ts +2 -0
- package/dist/util/err-format.js +10 -0
- package/dist/util/err-format.js.map +1 -0
- package/dist/util/err-handler.d.ts +3 -0
- package/dist/util/err-handler.js +11 -0
- package/dist/util/err-handler.js.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.js +2 -0
- package/dist/util.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/out/deployment/gen/deployment-template.kumori +33 -0
- package/out/deployment-template.kumori +33 -0
- package/out/main.cjs +378 -209
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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,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;
|