@decaf-ts/cli 0.0.2
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/LICENSE.md +21 -0
- package/README.md +297 -0
- package/lib/CliWrapper.cjs +131 -0
- package/lib/CliWrapper.d.ts +51 -0
- package/lib/cli.cjs +17 -0
- package/lib/cli.d.ts +4 -0
- package/lib/constants.cjs +13 -0
- package/lib/constants.d.ts +8 -0
- package/lib/demo/cli-module.cjs +25 -0
- package/lib/demo/cli-module.d.ts +13 -0
- package/lib/esm/CliWrapper.d.ts +51 -0
- package/lib/esm/CliWrapper.js +124 -0
- package/lib/esm/cli.d.ts +4 -0
- package/lib/esm/cli.js +15 -0
- package/lib/esm/constants.d.ts +8 -0
- package/lib/esm/constants.js +10 -0
- package/lib/esm/demo/cli-module.d.ts +13 -0
- package/lib/esm/demo/cli-module.js +22 -0
- package/lib/esm/index.d.ts +29 -0
- package/lib/esm/index.js +31 -0
- package/lib/esm/types.d.ts +8 -0
- package/lib/esm/types.js +3 -0
- package/lib/esm/utils.d.ts +49 -0
- package/lib/esm/utils.js +78 -0
- package/lib/index.cjs +48 -0
- package/lib/index.d.ts +29 -0
- package/lib/types.cjs +4 -0
- package/lib/types.d.ts +8 -0
- package/lib/utils.cjs +118 -0
- package/lib/utils.d.ts +49 -0
- package/package.json +109 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { CLI_FILE_NAME } from "./constants";
|
|
5
|
+
import { CLIUtils } from "./utils";
|
|
6
|
+
/**
|
|
7
|
+
* @summary Util class to handle CLI functionality from all Decaf modules
|
|
8
|
+
* @description CLI handler class
|
|
9
|
+
*
|
|
10
|
+
* @param {string} [basepath] the base path to look for modules in. defaults to `./`
|
|
11
|
+
* @param {string} [crawlLevels] folders to crawl to find modules from the basePath. defaults to 4
|
|
12
|
+
*
|
|
13
|
+
* @class CliWrapper
|
|
14
|
+
*/
|
|
15
|
+
export class CliWrapper {
|
|
16
|
+
constructor(basePath = "./", crawlLevels = 4) {
|
|
17
|
+
this.basePath = basePath;
|
|
18
|
+
this.crawlLevels = crawlLevels;
|
|
19
|
+
this.modules = {};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @description Retrieves and initializes the {@link Command} object
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
get command() {
|
|
26
|
+
if (!this._command) {
|
|
27
|
+
this._command = new Command();
|
|
28
|
+
CLIUtils.initialize(this._command, this.basePath);
|
|
29
|
+
}
|
|
30
|
+
return this._command;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @description loads and registers module from a file
|
|
34
|
+
*
|
|
35
|
+
* @param {string} filePath path to look for modules
|
|
36
|
+
* @param {string} rootPath repo root to find the package.json
|
|
37
|
+
* @return {string} the module name
|
|
38
|
+
*
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
async load(filePath, rootPath) {
|
|
42
|
+
let name;
|
|
43
|
+
try {
|
|
44
|
+
const module = await CLIUtils.loadFromFile(filePath);
|
|
45
|
+
name = module.name;
|
|
46
|
+
const cmd = new Command();
|
|
47
|
+
CLIUtils.initialize(cmd, path.dirname(rootPath));
|
|
48
|
+
let m = module();
|
|
49
|
+
if (m instanceof Promise)
|
|
50
|
+
m = await m;
|
|
51
|
+
this.modules[name] = m;
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
throw new Error(`failed to load module ${name || "unnamed"} under ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
55
|
+
}
|
|
56
|
+
return name;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @description finds all the cli modules in the basePath via {@link CliWrapper.crawl}
|
|
60
|
+
* and loads them
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
async boot() {
|
|
64
|
+
const basePath = path.join(process.cwd(), this.basePath);
|
|
65
|
+
const modules = this.crawl(basePath, this.crawlLevels);
|
|
66
|
+
for (const module of modules) {
|
|
67
|
+
if (module.includes("@decaf-ts/cli")) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
let name;
|
|
71
|
+
try {
|
|
72
|
+
name = await this.load(module, process.cwd());
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error(e);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (!this.command.commands.find((c) => c["_name"] === name))
|
|
79
|
+
try {
|
|
80
|
+
this.command.command(name).addCommand(this.modules[name]);
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
console.error(e);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
console.log(`loaded modules:\n${Object.keys(this.modules)
|
|
87
|
+
.map((k) => `- ${k}`)
|
|
88
|
+
.join("\n")}`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @description crawls the basePath up for 'levels' folders to find a module,eg a {@link CLI_FILE_NAME} named file
|
|
92
|
+
* @param {string} basePath the relative base batch to start searching in
|
|
93
|
+
* @param {number} [levels] the max number of levels to crawl. defaults to 2
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
crawl(basePath, levels = 2) {
|
|
97
|
+
if (levels <= 0)
|
|
98
|
+
return [];
|
|
99
|
+
return fs.readdirSync(basePath).reduce((accum, file) => {
|
|
100
|
+
file = path.join(basePath, file);
|
|
101
|
+
if (fs.statSync(file).isDirectory()) {
|
|
102
|
+
accum.push(...this.crawl(file, levels - 1));
|
|
103
|
+
}
|
|
104
|
+
else if (file.endsWith(`${CLI_FILE_NAME}.cjs`)) {
|
|
105
|
+
accum.push(file);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// ignored file
|
|
109
|
+
}
|
|
110
|
+
return accum;
|
|
111
|
+
}, []);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @description runs the given command
|
|
115
|
+
*
|
|
116
|
+
* @param {string[]} [args] args to run. defaults to process.argv
|
|
117
|
+
*/
|
|
118
|
+
async run(args = process.argv) {
|
|
119
|
+
await this.boot();
|
|
120
|
+
return this.command.parseAsync(args);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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SyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFlO1lBQ2pCLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFpQixPQUFPLENBQUMsSUFBSTtRQUNyQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsImZpbGUiOiJDbGlXcmFwcGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDTElfRklMRV9OQU1FIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDTElVdGlscyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVXRpbCBjbGFzcyB0byBoYW5kbGUgQ0xJIGZ1bmN0aW9uYWxpdHkgZnJvbSBhbGwgRGVjYWYgbW9kdWxlc1xuICogQGRlc2NyaXB0aW9uIENMSSBoYW5kbGVyIGNsYXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlcGF0aF0gdGhlIGJhc2UgcGF0aCB0byBsb29rIGZvciBtb2R1bGVzIGluLiBkZWZhdWx0cyB0byBgLi9gXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NyYXdsTGV2ZWxzXSBmb2xkZXJzIHRvIGNyYXdsIHRvIGZpbmQgbW9kdWxlcyBmcm9tIHRoZSBiYXNlUGF0aC4gZGVmYXVsdHMgdG8gNFxuICpcbiAqIEBjbGFzcyBDbGlXcmFwcGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGlXcmFwcGVyIHtcbiAgcHJpdmF0ZSBfY29tbWFuZD86IENvbW1hbmQ7XG4gIHByaXZhdGUgbW9kdWxlczogUmVjb3JkPHN0cmluZywgQ29tbWFuZD4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJhc2VQYXRoOiBzdHJpbmcgPSBcIi4vXCIsXG4gICAgcHJpdmF0ZSBjcmF3bExldmVscyA9IDRcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGFuZCBpbml0aWFsaXplcyB0aGUge0BsaW5rIENvbW1hbmR9IG9iamVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgY29tbWFuZCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbW1hbmQpIHtcbiAgICAgIHRoaXMuX2NvbW1hbmQgPSBuZXcgQ29tbWFuZCgpO1xuICAgICAgQ0xJVXRpbHMuaW5pdGlhbGl6ZSh0aGlzLl9jb21tYW5kLCB0aGlzLmJhc2VQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NvbW1hbmQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGxvYWRzIGFuZCByZWdpc3RlcnMgbW9kdWxlIGZyb20gYSBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCBwYXRoIHRvIGxvb2sgZm9yIG1vZHVsZXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJvb3RQYXRoIHJlcG8gcm9vdCB0byBmaW5kIHRoZSBwYWNrYWdlLmpzb25cbiAgICogQHJldHVybiB7c3RyaW5nfSB0aGUgbW9kdWxlIG5hbWVcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZChmaWxlUGF0aDogc3RyaW5nLCByb290UGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgbmFtZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgQ0xJVXRpbHMubG9hZEZyb21GaWxlKGZpbGVQYXRoKTtcbiAgICAgIG5hbWUgPSBtb2R1bGUubmFtZTtcbiAgICAgIGNvbnN0IGNtZCA9IG5ldyBDb21tYW5kKCk7XG4gICAgICBDTElVdGlscy5pbml0aWFsaXplKGNtZCwgcGF0aC5kaXJuYW1lKHJvb3RQYXRoKSk7XG4gICAgICBsZXQgbSA9IG1vZHVsZSgpO1xuICAgICAgaWYgKG0gaW5zdGFuY2VvZiBQcm9taXNlKSBtID0gYXdhaXQgbTtcbiAgICAgIHRoaXMubW9kdWxlc1tuYW1lXSA9IG07XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgXG4gICAgICAgIGBmYWlsZWQgdG8gbG9hZCBtb2R1bGUgJHtuYW1lIHx8IFwidW5uYW1lZFwifSB1bmRlciAke2ZpbGVQYXRofTogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBmaW5kcyBhbGwgdGhlIGNsaSBtb2R1bGVzIGluIHRoZSBiYXNlUGF0aCB2aWEge0BsaW5rIENsaVdyYXBwZXIuY3Jhd2x9XG4gICAqIGFuZCBsb2FkcyB0aGVtXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGJvb3QoKSB7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGhpcy5iYXNlUGF0aCk7XG4gICAgY29uc3QgbW9kdWxlcyA9IHRoaXMuY3Jhd2woYmFzZVBhdGgsIHRoaXMuY3Jhd2xMZXZlbHMpO1xuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcbiAgICAgIGlmIChtb2R1bGUuaW5jbHVkZXMoXCJAZGVjYWYtdHMvY2xpXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIG5hbWUgPSBhd2FpdCB0aGlzLmxvYWQobW9kdWxlLCBwcm9jZXNzLmN3ZCgpKTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuY29tbWFuZC5jb21tYW5kcy5maW5kKFxuICAgICAgICAgIChjKSA9PiAoYyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pW1wiX25hbWVcIl0gPT09IG5hbWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuY29tbWFuZC5jb21tYW5kKG5hbWUpLmFkZENvbW1hbmQodGhpcy5tb2R1bGVzW25hbWVdKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgbG9hZGVkIG1vZHVsZXM6XFxuJHtPYmplY3Qua2V5cyh0aGlzLm1vZHVsZXMpXG4gICAgICAgIC5tYXAoKGspID0+IGAtICR7a31gKVxuICAgICAgICAuam9pbihcIlxcblwiKX1gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gY3Jhd2xzIHRoZSBiYXNlUGF0aCB1cCBmb3IgJ2xldmVscycgZm9sZGVycyB0byBmaW5kIGEgbW9kdWxlLGVnIGEge0BsaW5rIENMSV9GSUxFX05BTUV9IG5hbWVkIGZpbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2VQYXRoIHRoZSByZWxhdGl2ZSBiYXNlIGJhdGNoIHRvIHN0YXJ0IHNlYXJjaGluZyBpblxuICAgKiBAcGFyYW0ge251bWJlcn0gW2xldmVsc10gdGhlIG1heCBudW1iZXIgb2YgbGV2ZWxzIHRvIGNyYXdsLiBkZWZhdWx0cyB0byAyXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNyYXdsKGJhc2VQYXRoOiBzdHJpbmcsIGxldmVsczogbnVtYmVyID0gMikge1xuICAgIGlmIChsZXZlbHMgPD0gMCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyhiYXNlUGF0aCkucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGZpbGUpID0+IHtcbiAgICAgIGZpbGUgPSBwYXRoLmpvaW4oYmFzZVBhdGgsIGZpbGUpO1xuICAgICAgaWYgKGZzLnN0YXRTeW5jKGZpbGUpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgYWNjdW0ucHVzaCguLi50aGlzLmNyYXdsKGZpbGUsIGxldmVscyAtIDEpKTtcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS5lbmRzV2l0aChgJHtDTElfRklMRV9OQU1FfS5janNgKSkge1xuICAgICAgICBhY2N1bS5wdXNoKGZpbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWdub3JlZCBmaWxlXG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgW10pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBydW5zIHRoZSBnaXZlbiBjb21tYW5kXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzXSBhcmdzIHRvIHJ1bi4gZGVmYXVsdHMgdG8gcHJvY2Vzcy5hcmd2XG4gICAqL1xuICBhc3luYyBydW4oYXJnczogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3YpIHtcbiAgICBhd2FpdCB0aGlzLmJvb3QoKTtcbiAgICByZXR1cm4gdGhpcy5jb21tYW5kLnBhcnNlQXN5bmMoYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/esm/cli.d.ts
ADDED
package/lib/esm/cli.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Actual CLI file
|
|
3
|
+
*/
|
|
4
|
+
import { CliWrapper } from "./CliWrapper";
|
|
5
|
+
new CliWrapper()
|
|
6
|
+
.run(process.argv)
|
|
7
|
+
.then(() => {
|
|
8
|
+
console.log("Thank you for using decaf-ts' command line interface");
|
|
9
|
+
})
|
|
10
|
+
.catch((e) => {
|
|
11
|
+
console.error(`${e instanceof Error ? e.message : e}`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLElBQUksVUFBVSxFQUFFO0tBQ2IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDakIsSUFBSSxDQUFDLEdBQUcsRUFBRTtJQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUM7S0FDRCxLQUFLLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtJQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNsaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWN0dWFsIENMSSBmaWxlXG4gKi9cblxuaW1wb3J0IHsgQ2xpV3JhcHBlciB9IGZyb20gXCIuL0NsaVdyYXBwZXJcIjtcbm5ldyBDbGlXcmFwcGVyKClcbiAgLnJ1bihwcm9jZXNzLmFyZ3YpXG4gIC50aGVuKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhcIlRoYW5rIHlvdSBmb3IgdXNpbmcgZGVjYWYtdHMnIGNvbW1hbmQgbGluZSBpbnRlcmZhY2VcIik7XG4gIH0pXG4gIC5jYXRjaCgoZTogdW5rbm93bikgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoYCR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH0pO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The name for decaf cli modules where each library must export
|
|
3
|
+
* a single {@link CliModule}
|
|
4
|
+
*
|
|
5
|
+
* @constant
|
|
6
|
+
* @memberOf module:CLI.cli
|
|
7
|
+
*/
|
|
8
|
+
export const CLI_FILE_NAME = "cli-module";
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyIsImZpbGUiOiJjb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgeyBDbGlNb2R1bGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZSBmb3IgZGVjYWYgY2xpIG1vZHVsZXMgd2hlcmUgZWFjaCBsaWJyYXJ5IG11c3QgZXhwb3J0XG4gKiBhIHNpbmdsZSB7QGxpbmsgQ2xpTW9kdWxlfVxuICpcbiAqIEBjb25zdGFudFxuICogQG1lbWJlck9mIG1vZHVsZTpDTEkuY2xpXG4gKi9cbmV4cG9ydCBjb25zdCBDTElfRklMRV9OQU1FID0gXCJjbGktbW9kdWxlXCI7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* @description demo CLI module for libraries
|
|
4
|
+
* @summary minimal implementation on how to extend the decaf-ts cli
|
|
5
|
+
*
|
|
6
|
+
* Simply logs a message
|
|
7
|
+
*
|
|
8
|
+
* @function demo
|
|
9
|
+
*
|
|
10
|
+
* @category CLI
|
|
11
|
+
* @memberOf module:CLI.cli
|
|
12
|
+
*/
|
|
13
|
+
export default function demo(): Command;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* @description demo CLI module for libraries
|
|
4
|
+
* @summary minimal implementation on how to extend the decaf-ts cli
|
|
5
|
+
*
|
|
6
|
+
* Simply logs a message
|
|
7
|
+
*
|
|
8
|
+
* @function demo
|
|
9
|
+
*
|
|
10
|
+
* @category CLI
|
|
11
|
+
* @memberOf module:CLI.cli
|
|
12
|
+
*/
|
|
13
|
+
export default function demo() {
|
|
14
|
+
return new Command()
|
|
15
|
+
.command("command <type>")
|
|
16
|
+
.description("A demo command")
|
|
17
|
+
.action((args) => {
|
|
18
|
+
console.log(`executed demo command with type variable: ${args}`);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9kZW1vL2NsaS1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxJQUFJO0lBQzFCLE9BQU8sSUFBSSxPQUFPLEVBQUU7U0FDakIsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3QixNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsImZpbGUiOiJkZW1vL2NsaS1tb2R1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBkZW1vIENMSSBtb2R1bGUgZm9yIGxpYnJhcmllc1xuICogQHN1bW1hcnkgbWluaW1hbCBpbXBsZW1lbnRhdGlvbiBvbiBob3cgdG8gZXh0ZW5kIHRoZSBkZWNhZi10cyBjbGlcbiAqXG4gKiBTaW1wbHkgbG9ncyBhIG1lc3NhZ2VcbiAqXG4gKiBAZnVuY3Rpb24gZGVtb1xuICpcbiAqIEBjYXRlZ29yeSBDTElcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Q0xJLmNsaVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZW1vKCkge1xuICByZXR1cm4gbmV3IENvbW1hbmQoKVxuICAgIC5jb21tYW5kKFwiY29tbWFuZCA8dHlwZT5cIilcbiAgICAuZGVzY3JpcHRpb24oXCJBIGRlbW8gY29tbWFuZFwiKVxuICAgIC5hY3Rpb24oKGFyZ3M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc29sZS5sb2coYGV4ZWN1dGVkIGRlbW8gY29tbWFuZCB3aXRoIHR5cGUgdmFyaWFibGU6ICR7YXJnc31gKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * from "./CliWrapper";
|
|
2
|
+
/**
|
|
3
|
+
* @description Decaf Command Line Interface module
|
|
4
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
5
|
+
*
|
|
6
|
+
* For each other '@decaf-ts' dependency:
|
|
7
|
+
* - find the `cli-module` file if it exists;
|
|
8
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
9
|
+
*
|
|
10
|
+
* @module CLI
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @description Decaf Command Line Interface module
|
|
14
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
15
|
+
*
|
|
16
|
+
* For each other '@decaf-ts' dependency:
|
|
17
|
+
* - find the `cli-module` file if it exists;
|
|
18
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
19
|
+
*
|
|
20
|
+
* @namespace cli
|
|
21
|
+
* @memberOf module:CLI
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @summary stores the current package version
|
|
25
|
+
* @description this is how you should document a constant
|
|
26
|
+
* @const VERSION
|
|
27
|
+
* @memberOf module:CLI
|
|
28
|
+
*/
|
|
29
|
+
export declare const VERSION = "0.0.1";
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export * from "./CliWrapper";
|
|
2
|
+
/**
|
|
3
|
+
* @description Decaf Command Line Interface module
|
|
4
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
5
|
+
*
|
|
6
|
+
* For each other '@decaf-ts' dependency:
|
|
7
|
+
* - find the `cli-module` file if it exists;
|
|
8
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
9
|
+
*
|
|
10
|
+
* @module CLI
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @description Decaf Command Line Interface module
|
|
14
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
15
|
+
*
|
|
16
|
+
* For each other '@decaf-ts' dependency:
|
|
17
|
+
* - find the `cli-module` file if it exists;
|
|
18
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
19
|
+
*
|
|
20
|
+
* @namespace cli
|
|
21
|
+
* @memberOf module:CLI
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @summary stores the current package version
|
|
25
|
+
* @description this is how you should document a constant
|
|
26
|
+
* @const VERSION
|
|
27
|
+
* @memberOf module:CLI
|
|
28
|
+
*/
|
|
29
|
+
export const VERSION = "0.0.1";
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUU3Qjs7Ozs7Ozs7O0dBU0c7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vQ2xpV3JhcHBlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNhZiBDb21tYW5kIExpbmUgSW50ZXJmYWNlIG1vZHVsZVxuICogQHN1bW1hcnkgUHJvdmlkZXMgdGhlIGJhc2UgYWNjZXNzIHRvIHRoZSBkZWNhZiBDTEkgYW5kOlxuICpcbiAqIEZvciBlYWNoIG90aGVyICdAZGVjYWYtdHMnIGRlcGVuZGVuY3k6XG4gKiAgLSBmaW5kIHRoZSBgY2xpLW1vZHVsZWAgZmlsZSBpZiBpdCBleGlzdHM7XG4gKiAgLSBsb2FkIGl0IGFudG8gdGhlIG1haW4gZGVjYWYtY2xpIGFuZCBleHBvc2UgaXRzIGZ1bmN0aW9uYWxpdHlcbiAqXG4gKiBAbW9kdWxlIENMSVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY2FmIENvbW1hbmQgTGluZSBJbnRlcmZhY2UgbW9kdWxlXG4gKiBAc3VtbWFyeSBQcm92aWRlcyB0aGUgYmFzZSBhY2Nlc3MgdG8gdGhlIGRlY2FmIENMSSBhbmQ6XG4gKlxuICogRm9yIGVhY2ggb3RoZXIgJ0BkZWNhZi10cycgZGVwZW5kZW5jeTpcbiAqICAtIGZpbmQgdGhlIGBjbGktbW9kdWxlYCBmaWxlIGlmIGl0IGV4aXN0cztcbiAqICAtIGxvYWQgaXQgYW50byB0aGUgbWFpbiBkZWNhZi1jbGkgYW5kIGV4cG9zZSBpdHMgZnVuY3Rpb25hbGl0eVxuICpcbiAqIEBuYW1lc3BhY2UgY2xpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkNMSVxuICovXG5cbi8qKlxuICogQHN1bW1hcnkgc3RvcmVzIHRoZSBjdXJyZW50IHBhY2thZ2UgdmVyc2lvblxuICogQGRlc2NyaXB0aW9uIHRoaXMgaXMgaG93IHlvdSBzaG91bGQgZG9jdW1lbnQgYSBjb25zdGFudFxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Q0xJXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIwLjAuMVwiO1xuIl19
|
package/lib/esm/types.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6InR5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB7IENMSV9GSUxFX05BTUUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gZGVzY3JpYmVzIHRoZSBmdW5jdGlvbiB0eXBlIGVhY2ggZGVjYWYgbW9kdWxlIG11c3QgZXhwb3NlIHVuZGVyIHtAbGluayBDTElfRklMRV9OQU1FfVxuICogQHR5cGUgQ2xpTW9kdWxlXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZS5DTEkuY2xpXG4gKi9cbmV4cG9ydCB0eXBlIENsaU1vZHVsZSA9ICgpID0+IENvbW1hbmQgfCBQcm9taXNlPENvbW1hbmQ+O1xuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { CliModule } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* @description util class to retrieve versions and other information
|
|
5
|
+
*
|
|
6
|
+
* @class CLIUtils
|
|
7
|
+
* @static
|
|
8
|
+
*/
|
|
9
|
+
export declare class CLIUtils {
|
|
10
|
+
/**
|
|
11
|
+
* @description Dynamically imports a cjs file into a decaf module
|
|
12
|
+
* @param {string} path
|
|
13
|
+
* @static
|
|
14
|
+
*/
|
|
15
|
+
static loadFromFile(path: string): Promise<CliModule>;
|
|
16
|
+
/**
|
|
17
|
+
* @description allows safe dynamic imports
|
|
18
|
+
* @summary property imports JS files regardless of esm status
|
|
19
|
+
*
|
|
20
|
+
* @typeParam T
|
|
21
|
+
* @param {Promise} importPromise
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
private static normalizeImport;
|
|
25
|
+
/**
|
|
26
|
+
* @description initializes the Cli object
|
|
27
|
+
*
|
|
28
|
+
* @param {Command} command
|
|
29
|
+
* @param {string} [basePath] defaults to the current working directory
|
|
30
|
+
*/
|
|
31
|
+
static initialize(command: Command, basePath: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* @description retrieves and parses the package.json file
|
|
34
|
+
*
|
|
35
|
+
* @param {string} basePath
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
private static getPackage;
|
|
39
|
+
/**
|
|
40
|
+
* @description returns the package version
|
|
41
|
+
* @param {string} [basePath] defaults to current working dir
|
|
42
|
+
*/
|
|
43
|
+
static packageVersion(basePath: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* @description returns the package name
|
|
46
|
+
* @param {string} [basePath] defaults to current working dir
|
|
47
|
+
*/
|
|
48
|
+
static packageName(basePath: string): string;
|
|
49
|
+
}
|
package/lib/esm/utils.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
/**
|
|
4
|
+
* @description util class to retrieve versions and other information
|
|
5
|
+
*
|
|
6
|
+
* @class CLIUtils
|
|
7
|
+
* @static
|
|
8
|
+
*/
|
|
9
|
+
export class CLIUtils {
|
|
10
|
+
/**
|
|
11
|
+
* @description Dynamically imports a cjs file into a decaf module
|
|
12
|
+
* @param {string} path
|
|
13
|
+
* @static
|
|
14
|
+
*/
|
|
15
|
+
static async loadFromFile(path) {
|
|
16
|
+
try {
|
|
17
|
+
return CLIUtils.normalizeImport(import(path));
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
throw new Error(`Failed to load from ${path}: ${e instanceof Error ? e.message : e}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @description allows safe dynamic imports
|
|
25
|
+
* @summary property imports JS files regardless of esm status
|
|
26
|
+
*
|
|
27
|
+
* @typeParam T
|
|
28
|
+
* @param {Promise} importPromise
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
static async normalizeImport(importPromise) {
|
|
32
|
+
// CommonJS's `module.exports` is wrapped as `default` in ESModule.
|
|
33
|
+
return importPromise.then((m) => (m.default || m));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @description initializes the Cli object
|
|
37
|
+
*
|
|
38
|
+
* @param {Command} command
|
|
39
|
+
* @param {string} [basePath] defaults to the current working directory
|
|
40
|
+
*/
|
|
41
|
+
static initialize(command, basePath) {
|
|
42
|
+
const name = CLIUtils.packageName(basePath);
|
|
43
|
+
command
|
|
44
|
+
.name(name)
|
|
45
|
+
.description(`Runs ${name} related commands`)
|
|
46
|
+
.version(CLIUtils.packageVersion(basePath));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @description retrieves and parses the package.json file
|
|
50
|
+
*
|
|
51
|
+
* @param {string} basePath
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
static getPackage(basePath) {
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(fs.readFileSync(path.join(basePath, "package.json"), "utf8"));
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
throw new Error(`Unable to read version from ${basePath}: ${e}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @description returns the package version
|
|
64
|
+
* @param {string} [basePath] defaults to current working dir
|
|
65
|
+
*/
|
|
66
|
+
static packageVersion(basePath) {
|
|
67
|
+
return CLIUtils.getPackage(basePath)["version"];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @description returns the package name
|
|
71
|
+
* @param {string} [basePath] defaults to current working dir
|
|
72
|
+
*/
|
|
73
|
+
static packageName(basePath) {
|
|
74
|
+
return CLIUtils.getPackage(basePath)["name"].split("/")[1];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBSXBCOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQVk7UUFDcEMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUJBQXVCLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDckUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUNsQyxhQUF5QjtRQUV6QixtRUFBbUU7UUFDbkUsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUN2QixDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBRSxDQUFvQixDQUFDLE9BQU8sSUFBSSxDQUFDLENBQU0sQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZ0IsRUFBRSxRQUFnQjtRQUNsRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLE9BQU87YUFDSixJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ1YsV0FBVyxDQUFDLFFBQVEsSUFBSSxtQkFBbUIsQ0FBQzthQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQzdELENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBVyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLE9BQVEsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGIiwiZmlsZSI6InV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBDbGlNb2R1bGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiB1dGlsIGNsYXNzIHRvIHJldHJpZXZlIHZlcnNpb25zIGFuZCBvdGhlciBpbmZvcm1hdGlvblxuICpcbiAqIEBjbGFzcyBDTElVdGlsc1xuICogQHN0YXRpY1xuICovXG5leHBvcnQgY2xhc3MgQ0xJVXRpbHMge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIER5bmFtaWNhbGx5IGltcG9ydHMgYSBjanMgZmlsZSBpbnRvIGEgZGVjYWYgbW9kdWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqIEBzdGF0aWNcbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbUZpbGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxDbGlNb2R1bGU+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIENMSVV0aWxzLm5vcm1hbGl6ZUltcG9ydChpbXBvcnQocGF0aCkpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBsb2FkIGZyb20gJHtwYXRofTogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBhbGxvd3Mgc2FmZSBkeW5hbWljIGltcG9ydHNcbiAgICogQHN1bW1hcnkgcHJvcGVydHkgaW1wb3J0cyBKUyBmaWxlcyByZWdhcmRsZXNzIG9mIGVzbSBzdGF0dXNcbiAgICpcbiAgICogQHR5cGVQYXJhbSBUXG4gICAqIEBwYXJhbSB7UHJvbWlzZX0gaW1wb3J0UHJvbWlzZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgbm9ybWFsaXplSW1wb3J0PFQ+KFxuICAgIGltcG9ydFByb21pc2U6IFByb21pc2U8VD5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gQ29tbW9uSlMncyBgbW9kdWxlLmV4cG9ydHNgIGlzIHdyYXBwZWQgYXMgYGRlZmF1bHRgIGluIEVTTW9kdWxlLlxuICAgIHJldHVybiBpbXBvcnRQcm9taXNlLnRoZW4oXG4gICAgICAobTogdW5rbm93bikgPT4gKChtIGFzIHsgZGVmYXVsdDogVCB9KS5kZWZhdWx0IHx8IG0pIGFzIFRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBpbml0aWFsaXplcyB0aGUgQ2xpIG9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0ge0NvbW1hbmR9IGNvbW1hbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlUGF0aF0gZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAgICovXG4gIHN0YXRpYyBpbml0aWFsaXplKGNvbW1hbmQ6IENvbW1hbmQsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuYW1lID0gQ0xJVXRpbHMucGFja2FnZU5hbWUoYmFzZVBhdGgpO1xuICAgIGNvbW1hbmRcbiAgICAgIC5uYW1lKG5hbWUpXG4gICAgICAuZGVzY3JpcHRpb24oYFJ1bnMgJHtuYW1lfSByZWxhdGVkIGNvbW1hbmRzYClcbiAgICAgIC52ZXJzaW9uKENMSVV0aWxzLnBhY2thZ2VWZXJzaW9uKGJhc2VQYXRoKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIHJldHJpZXZlcyBhbmQgcGFyc2VzIHRoZSBwYWNrYWdlLmpzb24gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVBhdGhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldFBhY2thZ2UoYmFzZVBhdGg6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oYmFzZVBhdGgsIFwicGFja2FnZS5qc29uXCIpLCBcInV0ZjhcIilcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVhZCB2ZXJzaW9uIGZyb20gJHtiYXNlUGF0aH06ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIHBhY2thZ2UgdmVyc2lvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2Jhc2VQYXRoXSBkZWZhdWx0cyB0byBjdXJyZW50IHdvcmtpbmcgZGlyXG4gICAqL1xuICBzdGF0aWMgcGFja2FnZVZlcnNpb24oYmFzZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIENMSVV0aWxzLmdldFBhY2thZ2UoYmFzZVBhdGgpW1widmVyc2lvblwiXSBhcyBzdHJpbmc7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIHBhY2thZ2UgbmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2Jhc2VQYXRoXSBkZWZhdWx0cyB0byBjdXJyZW50IHdvcmtpbmcgZGlyXG4gICAqL1xuICBzdGF0aWMgcGFja2FnZU5hbWUoYmFzZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChDTElVdGlscy5nZXRQYWNrYWdlKGJhc2VQYXRoKVtcIm5hbWVcIl0gYXMgc3RyaW5nKS5zcGxpdChcIi9cIilbMV07XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.VERSION = void 0;
|
|
18
|
+
__exportStar(require("./CliWrapper.cjs"), exports);
|
|
19
|
+
/**
|
|
20
|
+
* @description Decaf Command Line Interface module
|
|
21
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
22
|
+
*
|
|
23
|
+
* For each other '@decaf-ts' dependency:
|
|
24
|
+
* - find the `cli-module` file if it exists;
|
|
25
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
26
|
+
*
|
|
27
|
+
* @module CLI
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* @description Decaf Command Line Interface module
|
|
31
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
32
|
+
*
|
|
33
|
+
* For each other '@decaf-ts' dependency:
|
|
34
|
+
* - find the `cli-module` file if it exists;
|
|
35
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
36
|
+
*
|
|
37
|
+
* @namespace cli
|
|
38
|
+
* @memberOf module:CLI
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* @summary stores the current package version
|
|
42
|
+
* @description this is how you should document a constant
|
|
43
|
+
* @const VERSION
|
|
44
|
+
* @memberOf module:CLI
|
|
45
|
+
*/
|
|
46
|
+
exports.VERSION = "0.0.1";
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QjtBQUU3Qjs7Ozs7Ozs7O0dBU0c7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUg7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxPQUFPLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9DbGlXcmFwcGVyXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY2FmIENvbW1hbmQgTGluZSBJbnRlcmZhY2UgbW9kdWxlXG4gKiBAc3VtbWFyeSBQcm92aWRlcyB0aGUgYmFzZSBhY2Nlc3MgdG8gdGhlIGRlY2FmIENMSSBhbmQ6XG4gKlxuICogRm9yIGVhY2ggb3RoZXIgJ0BkZWNhZi10cycgZGVwZW5kZW5jeTpcbiAqICAtIGZpbmQgdGhlIGBjbGktbW9kdWxlYCBmaWxlIGlmIGl0IGV4aXN0cztcbiAqICAtIGxvYWQgaXQgYW50byB0aGUgbWFpbiBkZWNhZi1jbGkgYW5kIGV4cG9zZSBpdHMgZnVuY3Rpb25hbGl0eVxuICpcbiAqIEBtb2R1bGUgQ0xJXG4gKi9cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjYWYgQ29tbWFuZCBMaW5lIEludGVyZmFjZSBtb2R1bGVcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBiYXNlIGFjY2VzcyB0byB0aGUgZGVjYWYgQ0xJIGFuZDpcbiAqXG4gKiBGb3IgZWFjaCBvdGhlciAnQGRlY2FmLXRzJyBkZXBlbmRlbmN5OlxuICogIC0gZmluZCB0aGUgYGNsaS1tb2R1bGVgIGZpbGUgaWYgaXQgZXhpc3RzO1xuICogIC0gbG9hZCBpdCBhbnRvIHRoZSBtYWluIGRlY2FmLWNsaSBhbmQgZXhwb3NlIGl0cyBmdW5jdGlvbmFsaXR5XG4gKlxuICogQG5hbWVzcGFjZSBjbGlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Q0xJXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBzdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAZGVzY3JpcHRpb24gdGhpcyBpcyBob3cgeW91IHNob3VsZCBkb2N1bWVudCBhIGNvbnN0YW50XG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTpDTElcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjAuMC4xXCI7XG4iXX0=
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * from "./CliWrapper";
|
|
2
|
+
/**
|
|
3
|
+
* @description Decaf Command Line Interface module
|
|
4
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
5
|
+
*
|
|
6
|
+
* For each other '@decaf-ts' dependency:
|
|
7
|
+
* - find the `cli-module` file if it exists;
|
|
8
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
9
|
+
*
|
|
10
|
+
* @module CLI
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @description Decaf Command Line Interface module
|
|
14
|
+
* @summary Provides the base access to the decaf CLI and:
|
|
15
|
+
*
|
|
16
|
+
* For each other '@decaf-ts' dependency:
|
|
17
|
+
* - find the `cli-module` file if it exists;
|
|
18
|
+
* - load it anto the main decaf-cli and expose its functionality
|
|
19
|
+
*
|
|
20
|
+
* @namespace cli
|
|
21
|
+
* @memberOf module:CLI
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @summary stores the current package version
|
|
25
|
+
* @description this is how you should document a constant
|
|
26
|
+
* @const VERSION
|
|
27
|
+
* @memberOf module:CLI
|
|
28
|
+
*/
|
|
29
|
+
export declare const VERSION = "0.0.1";
|
package/lib/types.cjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6InR5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB7IENMSV9GSUxFX05BTUUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gZGVzY3JpYmVzIHRoZSBmdW5jdGlvbiB0eXBlIGVhY2ggZGVjYWYgbW9kdWxlIG11c3QgZXhwb3NlIHVuZGVyIHtAbGluayBDTElfRklMRV9OQU1FfVxuICogQHR5cGUgQ2xpTW9kdWxlXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZS5DTEkuY2xpXG4gKi9cbmV4cG9ydCB0eXBlIENsaU1vZHVsZSA9ICgpID0+IENvbW1hbmQgfCBQcm9taXNlPENvbW1hbmQ+O1xuIl19
|
package/lib/types.d.ts
ADDED