@codenotch/codenotch.cli 1.0.53 → 1.0.55
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/README.md +14 -5
- package/dist/commands/generate/app.js +22 -14
- package/dist/commands/generate/app.js.map +1 -1
- package/dist/commands/generate/appmanifest.js +14 -2
- package/dist/commands/generate/appmanifest.js.map +1 -1
- package/dist/commands/generate/dbcontext.js +9 -2
- package/dist/commands/generate/dbcontext.js.map +1 -1
- package/dist/commands/generate/i18n.js +15 -0
- package/dist/commands/generate/i18n.js.map +1 -1
- package/dist/commands/generate/manifest.js +7 -2
- package/dist/commands/generate/manifest.js.map +1 -1
- package/dist/commands/generate/openapi.js +9 -2
- package/dist/commands/generate/openapi.js.map +1 -1
- package/dist/commands/generate/pkg.js +7 -2
- package/dist/commands/generate/pkg.js.map +1 -1
- package/dist/commands/generate/process.js +26 -18
- package/dist/commands/generate/process.js.map +1 -1
- package/dist/commands/generate/shared.d.ts +5 -0
- package/dist/commands/generate/shared.js +12 -0
- package/dist/commands/generate/shared.js.map +1 -1
- package/dist/commands/project/bump.d.ts +2 -0
- package/dist/commands/project/bump.js +130 -0
- package/dist/commands/project/bump.js.map +1 -0
- package/dist/commands/project/compile.js +11 -2
- package/dist/commands/project/compile.js.map +1 -1
- package/dist/commands/project/deploy.js +10 -2
- package/dist/commands/project/deploy.js.map +1 -1
- package/dist/commands/project/index.js +3 -0
- package/dist/commands/project/index.js.map +1 -1
- package/dist/commands/project/open.js +4 -4
- package/dist/commands/project/open.js.map +1 -1
- package/dist/commands/project/package.js +60 -4
- package/dist/commands/project/package.js.map +1 -1
- package/dist/commands/project/refresh.js +12 -3
- package/dist/commands/project/refresh.js.map +1 -1
- package/dist/commands/project/remove.js +4 -1
- package/dist/commands/project/remove.js.map +1 -1
- package/dist/commands/project/start.js +8 -4
- package/dist/commands/project/start.js.map +1 -1
- package/dist/commands/project/test.js +41 -3
- package/dist/commands/project/test.js.map +1 -1
- package/dist/commands/runtime/clear.js +5 -0
- package/dist/commands/runtime/clear.js.map +1 -1
- package/dist/commands/runtime/info.js +1 -1
- package/dist/commands/runtime/info.js.map +1 -1
- package/dist/commands/runtime/portal.js +4 -4
- package/dist/commands/runtime/portal.js.map +1 -1
- package/dist/commands/runtime/start.js +10 -1
- package/dist/commands/runtime/start.js.map +1 -1
- package/dist/commands/runtime/stop.js +5 -0
- package/dist/commands/runtime/stop.js.map +1 -1
- package/dist/commands/runtime/update.js +4 -3
- package/dist/commands/runtime/update.js.map +1 -1
- package/dist/commands/system/completion.d.ts +7 -0
- package/dist/commands/system/completion.js +145 -0
- package/dist/commands/system/completion.js.map +1 -0
- package/dist/commands/system/index.js +2 -0
- package/dist/commands/system/index.js.map +1 -1
- package/dist/commands/system/info.js +42 -8
- package/dist/commands/system/info.js.map +1 -1
- package/dist/commands/validation/validate.js +3 -3
- package/dist/commands/validation/validate.js.map +1 -1
- package/dist/index.js +32 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/BuildUtils.js +49 -36
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/ConsoleUtils.d.ts +27 -0
- package/dist/utils/ConsoleUtils.js +53 -4
- package/dist/utils/ConsoleUtils.js.map +1 -1
- package/dist/utils/FileUtils.js +1 -1
- package/dist/utils/FileUtils.js.map +1 -1
- package/dist/utils/GitHubAuthUtils.js +5 -5
- package/dist/utils/GitHubAuthUtils.js.map +1 -1
- package/dist/utils/PackageUtils.js +15 -15
- package/dist/utils/PackageUtils.js.map +1 -1
- package/dist/utils/ProjectCompilationUtils.d.ts +0 -1
- package/dist/utils/ProjectCompilationUtils.js +22 -23
- package/dist/utils/ProjectCompilationUtils.js.map +1 -1
- package/dist/utils/ProjectUtils.d.ts +6 -0
- package/dist/utils/ProjectUtils.js +34 -1
- package/dist/utils/ProjectUtils.js.map +1 -1
- package/dist/utils/RuntimeUtils.d.ts +71 -10
- package/dist/utils/RuntimeUtils.js +218 -69
- package/dist/utils/RuntimeUtils.js.map +1 -1
- package/dist/utils/ShellUtils.js +6 -2
- package/dist/utils/ShellUtils.js.map +1 -1
- package/dist/utils/TemplateUtils.js +10 -9
- package/dist/utils/TemplateUtils.js.map +1 -1
- package/package.json +4 -1
- package/resources/docs/project.md +21 -8
|
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerPortal = registerPortal;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
7
|
const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
|
|
9
8
|
const OsUtils_1 = require("../../utils/OsUtils");
|
|
10
9
|
// Root-level command, but it lives here because it targets the runtime portal
|
|
11
10
|
function registerPortal(program) {
|
|
12
11
|
program
|
|
13
12
|
.command('portal')
|
|
14
|
-
.description('Open the Codenotch portal in the default browser')
|
|
13
|
+
.description('Open the Codenotch portal in the default browser (proposes to install/start the runtime when needed)')
|
|
15
14
|
.action(async () => {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
// The portal is served by the runtime: propose to install and/or start it rather than giving up
|
|
16
|
+
if (!await RuntimeUtils_1.default.ensureRuntimeIsRunning()) {
|
|
17
|
+
process.exitCode = 1;
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
const basePath = await RuntimeUtils_1.default.getRuntimeBaseUrl();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/commands/runtime/portal.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/commands/runtime/portal.ts"],"names":[],"mappings":";;;;;AAKA,wCAcC;AAlBD,4EAAoD;AACpD,iDAA8C;AAE9C,8EAA8E;AAC9E,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,gGAAgG;QAChG,IAAI,CAAC,MAAM,sBAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,8 +12,17 @@ function registerStart(runtime) {
|
|
|
12
12
|
.option('-p, --port <port>', 'port used by the runtime (default 5005)', (value) => parseInt(value, 10), 5005)
|
|
13
13
|
.option('-a, --attach', 'attach to the runtime process (default false)', false)
|
|
14
14
|
.option('-d, --data-path <path>', 'path to the runtime data directory')
|
|
15
|
-
.description('Start the Codenotch runtime')
|
|
15
|
+
.description('Start the Codenotch runtime (proposes to install it first when it is missing)')
|
|
16
16
|
.action(async (options) => {
|
|
17
|
+
if (await RuntimeUtils_1.default.isRuntimeRunning()) {
|
|
18
|
+
console.log(chalk_1.default.green(`Codenotch runtime is already running at ${await RuntimeUtils_1.default.getRuntimeBaseUrl()}`));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
// Nothing to start without a runtime: propose to install it (accepted by default, so scripts go through)
|
|
22
|
+
if (!await RuntimeUtils_1.default.ensureRuntimeInstalled()) {
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
17
26
|
await RuntimeUtils_1.default.startRuntime(options);
|
|
18
27
|
console.log(chalk_1.default.green(`Codenotch runtime started successfully`));
|
|
19
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/runtime/start.ts"],"names":[],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/runtime/start.ts"],"names":[],"mappings":";;;;;AAIA,sCAuBC;AA1BD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;SACpH,MAAM,CAAC,cAAc,EAAE,+CAA+C,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;SACtE,WAAW,CAAC,+EAA+E,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAE5E,IAAI,MAAM,sBAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,MAAM,sBAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QAED,yGAAyG;QACzG,IAAI,CAAC,MAAM,sBAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -11,6 +11,11 @@ function registerStop(runtime) {
|
|
|
11
11
|
.command('stop')
|
|
12
12
|
.description('Stop the Codenotch runtime')
|
|
13
13
|
.action(async () => {
|
|
14
|
+
// Stopping what does not run is not an error, but claiming a success would be a lie
|
|
15
|
+
if (!await RuntimeUtils_1.default.isRuntimeRunning()) {
|
|
16
|
+
console.error(chalk_1.default.yellow(`Codenotch runtime is not running`));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
14
19
|
await RuntimeUtils_1.default.stopRuntime();
|
|
15
20
|
console.log(chalk_1.default.green(`Codenotch runtime stopped successfully`));
|
|
16
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/runtime/stop.ts"],"names":[],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/runtime/stop.ts"],"names":[],"mappings":";;;;;AAIA,oCAeC;AAlBD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,oFAAoF;QACpF,IAAI,CAAC,MAAM,sBAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -9,9 +9,10 @@ function registerUpdate(runtime) {
|
|
|
9
9
|
runtime
|
|
10
10
|
.command('update')
|
|
11
11
|
.alias('install')
|
|
12
|
-
.description('
|
|
13
|
-
.
|
|
14
|
-
|
|
12
|
+
.description('Install the latest Codenotch runtime release, or update the installed runtime to it when it is newer')
|
|
13
|
+
.option('-f, --force', 'reinstall even when the installed runtime already is the latest release', false)
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
await RuntimeUtils_1.default.installLatestRuntime({ force: options.force });
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/runtime/update.ts"],"names":[],"mappings":";;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/runtime/update.ts"],"names":[],"mappings":";;;;;AAGA,wCASC;AAXD,4EAAoD;AAEpD,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,aAAa,EAAE,yEAAyE,EAAE,KAAK,CAAC;SACvG,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC1C,MAAM,sBAAY,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* 'cn completion <shell>': prints a completion script built from the command tree, so it always
|
|
4
|
+
* matches the installed CLI. The script holds one table, "command path" -> "words to propose",
|
|
5
|
+
* and looks the typed path up: no shell has to know anything about commander.
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerCompletion(program: Command): void;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCompletion = registerCompletion;
|
|
4
|
+
const SHELLS = ['bash', 'zsh', 'powershell'];
|
|
5
|
+
/** The names the CLI is installed under, both completed */
|
|
6
|
+
const COMMAND_NAMES = ['cn', 'codenotch-cli'];
|
|
7
|
+
/**
|
|
8
|
+
* 'cn completion <shell>': prints a completion script built from the command tree, so it always
|
|
9
|
+
* matches the installed CLI. The script holds one table, "command path" -> "words to propose",
|
|
10
|
+
* and looks the typed path up: no shell has to know anything about commander.
|
|
11
|
+
*/
|
|
12
|
+
function registerCompletion(program) {
|
|
13
|
+
program
|
|
14
|
+
.command('completion')
|
|
15
|
+
.description('Print the shell completion script of the CLI (bash, zsh or powershell)')
|
|
16
|
+
.argument('<shell>', `shell to print the script for: ${SHELLS.join(', ')}`)
|
|
17
|
+
.addHelpText('after', `
|
|
18
|
+
Install it once, then open a new terminal:
|
|
19
|
+
bash echo 'eval "$(cn completion bash)"' >> ~/.bashrc
|
|
20
|
+
zsh echo 'eval "$(cn completion zsh)"' >> ~/.zshrc
|
|
21
|
+
powershell Add-Content $PROFILE 'cn completion powershell | Out-String | Invoke-Expression'
|
|
22
|
+
`)
|
|
23
|
+
.action((shell) => {
|
|
24
|
+
if (!isShell(shell)) {
|
|
25
|
+
throw new Error(`Unknown shell '${shell}', expected one of: ${SHELLS.join(', ')}.`);
|
|
26
|
+
}
|
|
27
|
+
const table = buildTable(program);
|
|
28
|
+
console.log(shell === 'bash' ? bashScript(table) : shell === 'zsh' ? zshScript(table) : powershellScript(table));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function isShell(value) {
|
|
32
|
+
return SHELLS.includes(value);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Every command path (aliases included) with the words it accepts next: its subcommands, its
|
|
36
|
+
* options, and the global options that are valid anywhere. Keyed "cn <path>" for the lookup.
|
|
37
|
+
*/
|
|
38
|
+
function buildTable(program) {
|
|
39
|
+
const table = new Map();
|
|
40
|
+
const globalOptions = optionWords(program);
|
|
41
|
+
const collect = (command, path) => {
|
|
42
|
+
const subcommands = command.commands.filter(sub => !sub._hidden);
|
|
43
|
+
const words = [];
|
|
44
|
+
for (const sub of subcommands) {
|
|
45
|
+
words.push(sub.name(), ...sub.aliases());
|
|
46
|
+
}
|
|
47
|
+
if (subcommands.length > 0) {
|
|
48
|
+
words.push('help');
|
|
49
|
+
}
|
|
50
|
+
words.push(...(command === program ? [] : optionWords(command)), ...globalOptions, '--help', '-h');
|
|
51
|
+
table.set(['cn', ...path].join(' '), [...new Set(words)]);
|
|
52
|
+
for (const sub of subcommands) {
|
|
53
|
+
for (const name of [sub.name(), ...sub.aliases()]) {
|
|
54
|
+
collect(sub, [...path, name]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
collect(program, []);
|
|
59
|
+
return table;
|
|
60
|
+
}
|
|
61
|
+
function optionWords(command) {
|
|
62
|
+
const words = [];
|
|
63
|
+
for (const option of command.options) {
|
|
64
|
+
if (option.hidden) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (option.long) {
|
|
68
|
+
words.push(option.long);
|
|
69
|
+
}
|
|
70
|
+
if (option.short) {
|
|
71
|
+
words.push(option.short);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return words;
|
|
75
|
+
}
|
|
76
|
+
function bashScript(table) {
|
|
77
|
+
const cases = [...table.entries()].map(([key, words]) => ` "${key}") candidates="${words.join(' ')}" ;;`).join('\n');
|
|
78
|
+
return `# Completion of the Codenotch CLI, generated by 'cn completion bash'
|
|
79
|
+
_cn_completion() {
|
|
80
|
+
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
81
|
+
local path="cn" word i
|
|
82
|
+
for ((i = 1; i < COMP_CWORD; i++)); do
|
|
83
|
+
word="\${COMP_WORDS[i]}"
|
|
84
|
+
case "$word" in -*) continue ;; esac
|
|
85
|
+
path="$path $word"
|
|
86
|
+
done
|
|
87
|
+
local candidates=""
|
|
88
|
+
case "$path" in
|
|
89
|
+
${cases}
|
|
90
|
+
esac
|
|
91
|
+
COMPREPLY=( $(compgen -W "$candidates" -- "$cur") )
|
|
92
|
+
}
|
|
93
|
+
${COMMAND_NAMES.map(name => `complete -o default -F _cn_completion ${name}`).join('\n')}
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
function zshScript(table) {
|
|
97
|
+
const cases = [...table.entries()].map(([key, words]) => ` "${key}") candidates=(${words.join(' ')}) ;;`).join('\n');
|
|
98
|
+
return `#compdef ${COMMAND_NAMES.join(' ')}
|
|
99
|
+
# Completion of the Codenotch CLI, generated by 'cn completion zsh'
|
|
100
|
+
_cn_completion() {
|
|
101
|
+
local -a candidates
|
|
102
|
+
local path="cn" word
|
|
103
|
+
for word in "\${(@)words[2,CURRENT-1]}"; do
|
|
104
|
+
[[ "$word" == -* ]] && continue
|
|
105
|
+
path="$path $word"
|
|
106
|
+
done
|
|
107
|
+
case "$path" in
|
|
108
|
+
${cases}
|
|
109
|
+
esac
|
|
110
|
+
if (( \${#candidates} )); then
|
|
111
|
+
compadd -- "\${candidates[@]}"
|
|
112
|
+
else
|
|
113
|
+
_files
|
|
114
|
+
fi
|
|
115
|
+
}
|
|
116
|
+
(( \${+functions[compdef]} )) || { autoload -Uz compinit && compinit; }
|
|
117
|
+
compdef _cn_completion ${COMMAND_NAMES.join(' ')}
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
function powershellScript(table) {
|
|
121
|
+
const entries = [...table.entries()].map(([key, words]) => ` '${key}' = @(${words.map(word => `'${word}'`).join(', ')})`).join('\n');
|
|
122
|
+
return `# Completion of the Codenotch CLI, generated by 'cn completion powershell'
|
|
123
|
+
$cnCompletion = {
|
|
124
|
+
param($wordToComplete, $commandAst, $cursorPosition)
|
|
125
|
+
$table = @{
|
|
126
|
+
${entries}
|
|
127
|
+
}
|
|
128
|
+
# The words typed before the one being completed, options left aside
|
|
129
|
+
$path = @('cn')
|
|
130
|
+
foreach ($element in ($commandAst.CommandElements | Select-Object -Skip 1)) {
|
|
131
|
+
if ($element.Extent.EndOffset -ge $cursorPosition) { break }
|
|
132
|
+
$word = $element.ToString()
|
|
133
|
+
if ($word.StartsWith('-')) { continue }
|
|
134
|
+
$path += $word
|
|
135
|
+
}
|
|
136
|
+
$candidates = $table[($path -join ' ')]
|
|
137
|
+
if ($null -eq $candidates) { return }
|
|
138
|
+
$candidates | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
|
|
139
|
+
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
${COMMAND_NAMES.map(name => `Register-ArgumentCompleter -Native -CommandName ${name} -ScriptBlock $cnCompletion`).join('\n')}
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/commands/system/completion.ts"],"names":[],"mappings":";;AAaA,gDAkBC;AA7BD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAU,CAAC;AAGtD,2DAA2D;AAC3D,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAE9C;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IAC/C,OAAO;SACF,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,wEAAwE,CAAC;SACrF,QAAQ,CAAC,SAAS,EAAE,kCAAkC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1E,WAAW,CAAC,OAAO,EAAE;;;;;CAK7B,CAAC;SACO,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC1B,OAAQ,MAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,OAAgB;IAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,IAAc,EAAE,EAAE;QACjD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,GAAwC,CAAC,OAAO,CAAC,CAAC;QACvG,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,SAAS;QACb,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAA4B;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,kBAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5H,OAAO;;;;;;;;;;;EAWT,KAAK;;;;EAIL,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACtF,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,KAA4B;IAC3C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,kBAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5H,OAAO,YAAY,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;EAU5C,KAAK;;;;;;;;;yBASkB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;CAC/C,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IAClD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5I,OAAO;;;;EAIT,OAAO;;;;;;;;;;;;;;;;EAgBP,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mDAAmD,IAAI,6BAA6B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC3H,CAAC;AACF,CAAC"}
|
|
@@ -4,10 +4,12 @@ exports.registerSystemCommands = registerSystemCommands;
|
|
|
4
4
|
const info_1 = require("./info");
|
|
5
5
|
const read_1 = require("./read");
|
|
6
6
|
const docs_1 = require("./docs");
|
|
7
|
+
const completion_1 = require("./completion");
|
|
7
8
|
// Root-level commands that are not tied to a specific project or the runtime
|
|
8
9
|
function registerSystemCommands(program) {
|
|
9
10
|
(0, info_1.registerInfo)(program);
|
|
10
11
|
(0, read_1.registerRead)(program);
|
|
11
12
|
(0, docs_1.registerDocs)(program);
|
|
13
|
+
(0, completion_1.registerCompletion)(program);
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/system/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/system/index.ts"],"names":[],"mappings":";;AAOA,wDAKC;AAXD,iCAAsC;AACtC,iCAAsC;AACtC,iCAAsC;AACtC,6CAAkD;AAElD,6EAA6E;AAC7E,SAAgB,sBAAsB,CAAC,OAAgB;IACnD,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,+BAAkB,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -5,17 +5,51 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerInfo = registerInfo;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
|
|
8
9
|
function registerInfo(program) {
|
|
9
10
|
program
|
|
10
11
|
.command('info')
|
|
11
|
-
.description('Display
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
.description('Display the versions of the CLI, Node.js and the local runtime, and whether the runtime is running')
|
|
13
|
+
.option('--json', 'output the result in JSON format')
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
// One place to diagnose a setup: what runs the CLI, and what the CLI can run the projects on
|
|
16
|
+
const installed = await RuntimeUtils_1.default.isRuntimeInstalled();
|
|
17
|
+
const running = installed && await RuntimeUtils_1.default.isRuntimeRunning();
|
|
18
|
+
const runtime = {
|
|
19
|
+
installed,
|
|
20
|
+
version: installed ? await RuntimeUtils_1.default.getRuntimeVersion() : undefined,
|
|
21
|
+
path: installed ? RuntimeUtils_1.default.getRuntimeExecutablePath() : undefined,
|
|
22
|
+
url: installed ? await RuntimeUtils_1.default.getRuntimeBaseUrl() : undefined,
|
|
23
|
+
running,
|
|
24
|
+
dataPath: installed ? await RuntimeUtils_1.default.getRuntimeDataPath() : undefined
|
|
25
|
+
};
|
|
26
|
+
const info = {
|
|
27
|
+
cli: program.version(),
|
|
28
|
+
node: process.version,
|
|
29
|
+
platform: process.platform,
|
|
30
|
+
arch: process.arch,
|
|
31
|
+
cwd: process.cwd(),
|
|
32
|
+
runtime
|
|
33
|
+
};
|
|
34
|
+
if (options.json) {
|
|
35
|
+
console.log(JSON.stringify(info));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log(chalk_1.default.green('Codenotch CLI'));
|
|
39
|
+
console.log(`- CLI version: ${chalk_1.default.yellow(info.cli ?? 'unknown')}`);
|
|
40
|
+
console.log(`- Node.js version: ${chalk_1.default.yellow(info.node)}`);
|
|
41
|
+
console.log(`- Platform: ${chalk_1.default.yellow(`${info.platform} ${info.arch}`)}`);
|
|
42
|
+
console.log(`- Current directory: ${chalk_1.default.yellow(info.cwd)}`);
|
|
43
|
+
console.log(chalk_1.default.green('Codenotch runtime'));
|
|
44
|
+
if (!installed) {
|
|
45
|
+
console.log(chalk_1.default.yellow(`- Not installed: 'cn runtime install' installs it, 'cn project start' proposes it when needed`));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(`- Version: ${chalk_1.default.yellow(runtime.version)} at ${chalk_1.default.yellow(runtime.path)}`);
|
|
49
|
+
console.log(`- Status: ${running ? chalk_1.default.green('running') : chalk_1.default.yellow('not running')} (${runtime.url})`);
|
|
50
|
+
if (runtime.dataPath) {
|
|
51
|
+
console.log(`- Data path: ${chalk_1.default.yellow(runtime.dataPath)}`);
|
|
52
|
+
}
|
|
19
53
|
});
|
|
20
54
|
}
|
|
21
55
|
//# sourceMappingURL=info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":";;;;;AAIA,oCAgDC;AAnDD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oGAAoG,CAAC;SACjH,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAE1C,6FAA6F;QAC7F,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,SAAS,IAAI,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG;YACZ,SAAS;YACT,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS;YACvE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,sBAAY,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,SAAS;YACrE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS;YACnE,OAAO;YACP,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG;YACT,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;YACtB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,OAAO;SACV,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAClC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,eAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,wBAAwB,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+FAA+F,CAAC,CAAC,CAAC;YAC3H,OAAO;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5G,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -19,13 +19,13 @@ const MAX_VALIDATED_FILES = 100;
|
|
|
19
19
|
function registerValidate(program) {
|
|
20
20
|
program
|
|
21
21
|
.command('validate')
|
|
22
|
-
.description('Validate a file or a folder and print hints, warnings and errors.')
|
|
23
|
-
.argument('
|
|
22
|
+
.description('Validate a file or a folder (default: the current directory) and print hints, warnings and errors.')
|
|
23
|
+
.argument('[path]', 'File to validate, or folder to scan recursively', '.')
|
|
24
24
|
.option('--json', 'Output the messages as a JSON array instead of text')
|
|
25
25
|
.option('--nolimit', `Validate all files instead of capping at ${MAX_VALIDATED_FILES}`)
|
|
26
26
|
.addHelpText('after', `
|
|
27
27
|
Examples:
|
|
28
|
-
$ cn validate
|
|
28
|
+
$ cn validate the whole project, from its folder
|
|
29
29
|
$ cn validate processes/books.ts a single file
|
|
30
30
|
$ cn validate . --json machine-readable output
|
|
31
31
|
`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validation/validate.ts"],"names":[],"mappings":";;;;;AAgBA,4CA0FC;AAzGD,sEAA8C;AAC9C,kDAA0B;AAC1B,+BAAkD;AAClD,2BAA+B;AAE/B,wEAAgD;AAChD,wEAAuE;AACvE,wFAAgE;AAChE,8EAAsD;AACtD,0EAAkD;AAClD,gGAAwE;AACxE,0EAAkD;AAElD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAgB,gBAAgB,CAAC,OAAgB;IAC7C,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validation/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,10 +38,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
42
|
const fs_1 = require("fs");
|
|
42
43
|
const path_1 = __importStar(require("path"));
|
|
43
44
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
44
45
|
const commands_1 = require("./commands");
|
|
46
|
+
const ConsoleUtils_1 = __importDefault(require("./utils/ConsoleUtils"));
|
|
45
47
|
// / Load environment variables from .env file in the CLI's own root directory, regardless of where the command is run from
|
|
46
48
|
dotenv_1.default.config({ path: path_1.default.resolve(__dirname, "../.env"), quiet: true });
|
|
47
49
|
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf8'));
|
|
@@ -50,16 +52,42 @@ program
|
|
|
50
52
|
.name('codenotch-cli')
|
|
51
53
|
.description('CLI of the Codenotch platform: manage the local runtime, scaffold and deploy projects, generate their derived files, and work on their React apps')
|
|
52
54
|
.version(packageJson.version)
|
|
55
|
+
.option('-q, --quiet', 'print the results, the warnings and the errors only, no progress')
|
|
56
|
+
// Program options are accepted before and after the subcommand, so the flag is read once the command is known
|
|
57
|
+
.hook('preAction', () => {
|
|
58
|
+
ConsoleUtils_1.default.quiet = program.opts().quiet === true;
|
|
59
|
+
})
|
|
53
60
|
.addHelpText('after', `
|
|
54
61
|
The reference documentation ships with the CLI: 'cn docs' lists its topics (project anatomy,
|
|
55
62
|
tables, processes, queries, apps, i18n). Read the topic before writing a file of that kind.
|
|
56
63
|
|
|
57
64
|
Getting started:
|
|
58
|
-
$ cn runtime update install (or update) the local Codenotch runtime
|
|
59
|
-
$ cn runtime start
|
|
60
65
|
$ cn project new create a project (asks for the template and the name)
|
|
61
|
-
$ cn project start build, deploy and open it
|
|
66
|
+
$ cn project start build, deploy and open it (installs and starts the local runtime when needed)
|
|
67
|
+
|
|
68
|
+
Automation:
|
|
69
|
+
stdout carries the results only, the progress and the messages go to stderr. Most commands take
|
|
70
|
+
'--json' for a machine-readable result and '--quiet' drops the progress. 'cn completion <shell>'
|
|
71
|
+
prints the completion script of bash, zsh or powershell.
|
|
72
|
+
|
|
73
|
+
Environment:
|
|
74
|
+
CODENOTCH_PATH folder of the local runtime (default: ~/.codenotch)
|
|
75
|
+
CODENOTCH_DEBUG set to 1 to print the stack trace of a failure and the debug lines
|
|
76
|
+
GITHUB_TOKEN token used to download the runtime releases, instead of the browser login
|
|
62
77
|
`);
|
|
63
78
|
(0, commands_1.registerAllCommands)(program);
|
|
64
|
-
|
|
79
|
+
// Every failure an action did not handle ends here: one message for the user, the stack trace on demand only
|
|
80
|
+
program.parseAsync().catch((error) => {
|
|
81
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
+
ConsoleUtils_1.default.error(`Error: ${message}`);
|
|
83
|
+
if (error instanceof Error && error.stack) {
|
|
84
|
+
if (ConsoleUtils_1.default.debug) {
|
|
85
|
+
console.error(chalk_1.default.gray(error.stack));
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.error(chalk_1.default.gray(`(set CODENOTCH_DEBUG=1 for the stack trace)`));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
process.exitCode = 1;
|
|
92
|
+
});
|
|
65
93
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2BAAkC;AAClC,6CAAkC;AAClC,oDAA4B;AAC5B,yCAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,2BAAkC;AAClC,6CAAkC;AAClC,oDAA4B;AAC5B,yCAAiD;AACjD,wEAAgD;AAEhD,2HAA2H;AAC3H,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,mJAAmJ,CAAC;KAChK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,MAAM,CAAC,aAAa,EAAE,kEAAkE,CAAC;IAC1F,8GAA8G;KAC7G,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACpB,sBAAY,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC,CAAC;KACD,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;CAiBzB,CAAC,CAAC;AAEH,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;AAE7B,6GAA6G;AAC7G,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,sBAAY,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,sBAAY,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;aACI,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"}
|