@pristine-ts/cli 2.0.6 → 2.0.7
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/lib/cjs/bootstrap/build-runner.js +1 -1
- package/dist/lib/cjs/cli.module.js +12 -7
- package/dist/lib/cjs/cli.module.js.map +1 -1
- package/dist/lib/cjs/commands/build.command.js +15 -14
- package/dist/lib/cjs/commands/build.command.js.map +1 -1
- package/dist/lib/cjs/commands/config-print.command.js +16 -11
- package/dist/lib/cjs/commands/config-print.command.js.map +1 -1
- package/dist/lib/cjs/commands/help.command.js +17 -17
- package/dist/lib/cjs/commands/help.command.js.map +1 -1
- package/dist/lib/cjs/commands/info.command.js +26 -21
- package/dist/lib/cjs/commands/info.command.js.map +1 -1
- package/dist/lib/cjs/commands/init.command.js +22 -21
- package/dist/lib/cjs/commands/init.command.js.map +1 -1
- package/dist/lib/cjs/commands/list.command.js +6 -6
- package/dist/lib/cjs/commands/list.command.js.map +1 -1
- package/dist/lib/cjs/commands/start.command.js +12 -13
- package/dist/lib/cjs/commands/start.command.js.map +1 -1
- package/dist/lib/cjs/event-handlers/cli.event-handler.js +9 -7
- package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/cjs/managers/cli-output.manager.js +45 -0
- package/dist/lib/cjs/managers/cli-output.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-progress-bar.manager.js +49 -0
- package/dist/lib/cjs/managers/cli-progress-bar.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-prompt.manager.js +99 -0
- package/dist/lib/cjs/managers/cli-prompt.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-spinner.manager.js +93 -0
- package/dist/lib/cjs/managers/cli-spinner.manager.js.map +1 -0
- package/dist/lib/cjs/managers/managers.js +4 -1
- package/dist/lib/cjs/managers/managers.js.map +1 -1
- package/dist/lib/cjs/managers/shell.manager.js +25 -20
- package/dist/lib/cjs/managers/shell.manager.js.map +1 -1
- package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/lib/esm/bootstrap/build-runner.js +1 -1
- package/dist/lib/esm/cli.module.js +12 -7
- package/dist/lib/esm/cli.module.js.map +1 -1
- package/dist/lib/esm/commands/build.command.js +16 -15
- package/dist/lib/esm/commands/build.command.js.map +1 -1
- package/dist/lib/esm/commands/config-print.command.js +16 -11
- package/dist/lib/esm/commands/config-print.command.js.map +1 -1
- package/dist/lib/esm/commands/help.command.js +17 -17
- package/dist/lib/esm/commands/help.command.js.map +1 -1
- package/dist/lib/esm/commands/info.command.js +27 -22
- package/dist/lib/esm/commands/info.command.js.map +1 -1
- package/dist/lib/esm/commands/init.command.js +23 -22
- package/dist/lib/esm/commands/init.command.js.map +1 -1
- package/dist/lib/esm/commands/list.command.js +6 -6
- package/dist/lib/esm/commands/list.command.js.map +1 -1
- package/dist/lib/esm/commands/start.command.js +13 -14
- package/dist/lib/esm/commands/start.command.js.map +1 -1
- package/dist/lib/esm/event-handlers/cli.event-handler.js +9 -7
- package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/esm/managers/cli-output.manager.js +42 -0
- package/dist/lib/esm/managers/cli-output.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-progress-bar.manager.js +46 -0
- package/dist/lib/esm/managers/cli-progress-bar.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-prompt.manager.js +63 -0
- package/dist/lib/esm/managers/cli-prompt.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-spinner.manager.js +90 -0
- package/dist/lib/esm/managers/cli-spinner.manager.js.map +1 -0
- package/dist/lib/esm/managers/managers.js +4 -1
- package/dist/lib/esm/managers/managers.js.map +1 -1
- package/dist/lib/esm/managers/shell.manager.js +26 -21
- package/dist/lib/esm/managers/shell.manager.js.map +1 -1
- package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/types/bootstrap/build-runner.d.ts +1 -1
- package/dist/types/commands/build.command.d.ts +3 -3
- package/dist/types/commands/config-print.command.d.ts +8 -3
- package/dist/types/commands/help.command.d.ts +3 -3
- package/dist/types/commands/info.command.d.ts +5 -3
- package/dist/types/commands/init.command.d.ts +3 -3
- package/dist/types/commands/list.command.d.ts +3 -3
- package/dist/types/commands/start.command.d.ts +3 -3
- package/dist/types/event-handlers/cli.event-handler.d.ts +1 -3
- package/dist/types/managers/cli-output.manager.d.ts +21 -0
- package/dist/types/managers/cli-progress-bar.manager.d.ts +17 -0
- package/dist/types/managers/cli-prompt.manager.d.ts +22 -0
- package/dist/types/managers/cli-spinner.manager.d.ts +34 -0
- package/dist/types/managers/managers.d.ts +4 -1
- package/dist/types/managers/shell.manager.d.ts +3 -3
- package/package.json +9 -9
- package/dist/lib/cjs/managers/console.manager.js +0 -277
- package/dist/lib/cjs/managers/console.manager.js.map +0 -1
- package/dist/lib/esm/managers/console.manager.js +0 -241
- package/dist/lib/esm/managers/console.manager.js.map +0 -1
- package/dist/types/managers/console.manager.d.ts +0 -93
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/commands/init.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
exports.ListCommand = void 0;
|
|
25
25
|
const common_1 = require("@pristine-ts/common");
|
|
26
26
|
const tsyringe_1 = require("tsyringe");
|
|
27
|
-
const
|
|
27
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
28
28
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
29
29
|
/**
|
|
30
30
|
* Lists every registered command's name. Like `HelpCommand`, this resolves the command set
|
|
@@ -32,8 +32,8 @@ const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
|
32
32
|
* that constructor-time `@injectAll(Command)` would create — see `HelpCommand` for details.
|
|
33
33
|
*/
|
|
34
34
|
let ListCommand = class ListCommand {
|
|
35
|
-
constructor(
|
|
36
|
-
this.
|
|
35
|
+
constructor(cliOutput, container) {
|
|
36
|
+
this.cliOutput = cliOutput;
|
|
37
37
|
this.container = container;
|
|
38
38
|
this.optionsType = null;
|
|
39
39
|
this.name = "p:list";
|
|
@@ -41,7 +41,7 @@ let ListCommand = class ListCommand {
|
|
|
41
41
|
}
|
|
42
42
|
run(args) {
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
this.
|
|
44
|
+
this.cliOutput.writeLine("List of registered commands:");
|
|
45
45
|
// ── container.resolveAll, justified ─────────────────────────────────────────
|
|
46
46
|
// Per CLAUDE.md: constructor-time `@injectAll(Command)` would create a self-
|
|
47
47
|
// referential cycle since `ListCommand` is itself a `Command`-tagged service.
|
|
@@ -50,7 +50,7 @@ let ListCommand = class ListCommand {
|
|
|
50
50
|
// container itself is still acquired via proper DI — only the enumeration is
|
|
51
51
|
// late-bound.
|
|
52
52
|
const commands = this.container.resolveAll(common_1.ServiceDefinitionTagEnum.Command);
|
|
53
|
-
commands.forEach(command => this.
|
|
53
|
+
commands.forEach(command => this.cliOutput.writeLine(command.name));
|
|
54
54
|
return common_1.ExitCode.Success;
|
|
55
55
|
});
|
|
56
56
|
}
|
|
@@ -61,6 +61,6 @@ exports.ListCommand = ListCommand = __decorate([
|
|
|
61
61
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
62
62
|
(0, tsyringe_1.injectable)(),
|
|
63
63
|
__param(1, (0, tsyringe_1.inject)(common_1.ServiceDefinitionTagEnum.CurrentChildContainer)),
|
|
64
|
-
__metadata("design:paramtypes", [
|
|
64
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput, Object])
|
|
65
65
|
], ListCommand);
|
|
66
66
|
//# sourceMappingURL=list.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../../../src/commands/list.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAiE;AAEjE,
|
|
1
|
+
{"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../../../src/commands/list.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAiE;AAEjE,uEAAyD;AACzD,8DAAuD;AAEvD;;;;GAIG;AAII,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKtB,YACmB,SAAoB,EACmB,SAA+C;QADtF,cAAS,GAAT,SAAS,CAAW;QACoC,cAAS,GAAT,SAAS,CAAqB;QANzG,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,sDAAsD,CAAC;IAMrE,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;YACzD,+EAA+E;YAC/E,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;YACzE,4EAA4E;YAC5E,6EAA6E;YAC7E,cAAc;YACd,MAAM,QAAQ,GAA4B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iCAAwB,CAAC,OAAO,CAAC,CAAC;YACtG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpE,OAAO,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AAzBY,kCAAW;sBAAX,WAAW;IAHvB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;IAQR,WAAA,IAAA,iBAAM,EAAC,iCAAwB,CAAC,qBAAqB,CAAC,CAAA;qCAD3B,8BAAS;GAN5B,WAAW,CAyBvB"}
|
|
@@ -26,7 +26,6 @@ exports.StartCommand = void 0;
|
|
|
26
26
|
const common_1 = require("@pristine-ts/common");
|
|
27
27
|
const tsyringe_1 = require("tsyringe");
|
|
28
28
|
const core_1 = require("@pristine-ts/core");
|
|
29
|
-
const console_manager_1 = require("../managers/console.manager");
|
|
30
29
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
31
30
|
const start_command_options_1 = require("./start.command-options");
|
|
32
31
|
/**
|
|
@@ -60,8 +59,8 @@ const start_command_options_1 = require("./start.command-options");
|
|
|
60
59
|
* `nodemon` or `tsx --watch`.
|
|
61
60
|
*/
|
|
62
61
|
let StartCommand = StartCommand_1 = class StartCommand {
|
|
63
|
-
constructor(
|
|
64
|
-
this.
|
|
62
|
+
constructor(logHandler, kernel, servers) {
|
|
63
|
+
this.logHandler = logHandler;
|
|
65
64
|
this.kernel = kernel;
|
|
66
65
|
this.servers = servers;
|
|
67
66
|
this.optionsType = start_command_options_1.StartCommandOptions;
|
|
@@ -84,7 +83,7 @@ let StartCommand = StartCommand_1 = class StartCommand {
|
|
|
84
83
|
yield server.start(overrides);
|
|
85
84
|
}
|
|
86
85
|
catch (error) {
|
|
87
|
-
this.
|
|
86
|
+
this.logHandler.error(`Failed to start server '${server.name}'`, { highlights: { server: server.name, error: error.message } });
|
|
88
87
|
// Best-effort: stop any servers that did start before we abort.
|
|
89
88
|
for (const started of servers) {
|
|
90
89
|
if (started === server)
|
|
@@ -98,11 +97,11 @@ let StartCommand = StartCommand_1 = class StartCommand {
|
|
|
98
97
|
}
|
|
99
98
|
}
|
|
100
99
|
if (servers.length === 0) {
|
|
101
|
-
this.
|
|
100
|
+
this.logHandler.success("Pristine app running. Send SIGTERM (or Ctrl+C) to stop.");
|
|
102
101
|
}
|
|
103
102
|
else {
|
|
104
103
|
const labels = servers.map(s => s.name).join(", ");
|
|
105
|
-
this.
|
|
104
|
+
this.logHandler.success(`Pristine app running with ${servers.length} server(s): ${labels}. Send SIGTERM (or Ctrl+C) to stop.`, { highlights: { serverCount: servers.length } });
|
|
106
105
|
}
|
|
107
106
|
return new Promise((resolve) => {
|
|
108
107
|
let shuttingDown = false;
|
|
@@ -116,13 +115,13 @@ let StartCommand = StartCommand_1 = class StartCommand {
|
|
|
116
115
|
// Second signal arrived while we're already shutting down — escalate to an immediate
|
|
117
116
|
// hard exit. This mirrors the behavior of most production runtimes (one Ctrl+C =
|
|
118
117
|
// graceful, two = right now).
|
|
119
|
-
this.
|
|
118
|
+
this.logHandler.warning(`Received ${signal} again — forcing exit.`, { highlights: { signal } });
|
|
120
119
|
process.exit(130);
|
|
121
120
|
}
|
|
122
121
|
shuttingDown = true;
|
|
123
|
-
this.
|
|
122
|
+
this.logHandler.info(`Received ${signal}, shutting down gracefully...`, { highlights: { signal } });
|
|
124
123
|
const hardExitTimer = setTimeout(() => {
|
|
125
|
-
this.
|
|
124
|
+
this.logHandler.error(`Shutdown exceeded ${StartCommand_1.HARD_EXIT_TIMEOUT_MS}ms — forcing exit.`);
|
|
126
125
|
process.exit(1);
|
|
127
126
|
}, StartCommand_1.HARD_EXIT_TIMEOUT_MS);
|
|
128
127
|
// Don't keep the event loop alive just for the timer.
|
|
@@ -132,13 +131,13 @@ let StartCommand = StartCommand_1 = class StartCommand {
|
|
|
132
131
|
// HttpModule.onShutdown which calls KernelHttpServer.stop(). No need to stop the
|
|
133
132
|
// servers individually here.
|
|
134
133
|
yield this.kernel.stop();
|
|
135
|
-
this.
|
|
134
|
+
this.logHandler.success("Shutdown complete.");
|
|
136
135
|
clearTimeout(hardExitTimer);
|
|
137
136
|
clearInterval(heartbeat);
|
|
138
137
|
resolve(common_1.ExitCode.Success);
|
|
139
138
|
}
|
|
140
139
|
catch (error) {
|
|
141
|
-
this.
|
|
140
|
+
this.logHandler.error("Shutdown error", { highlights: { error: error.message } });
|
|
142
141
|
clearTimeout(hardExitTimer);
|
|
143
142
|
clearInterval(heartbeat);
|
|
144
143
|
resolve(common_1.ExitCode.Error);
|
|
@@ -161,8 +160,8 @@ exports.StartCommand = StartCommand = StartCommand_1 = __decorate([
|
|
|
161
160
|
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
162
161
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
163
162
|
(0, tsyringe_1.injectable)(),
|
|
163
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
164
164
|
__param(2, (0, tsyringe_1.injectAll)(common_1.ServiceDefinitionTagEnum.RuntimeServer)),
|
|
165
|
-
__metadata("design:paramtypes", [
|
|
166
|
-
core_1.Kernel, Array])
|
|
165
|
+
__metadata("design:paramtypes", [Object, core_1.Kernel, Array])
|
|
167
166
|
], StartCommand);
|
|
168
167
|
//# sourceMappingURL=start.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.command.js","sourceRoot":"","sources":["../../../../src/commands/start.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,
|
|
1
|
+
{"version":3,"file":"start.command.js","sourceRoot":"","sources":["../../../../src/commands/start.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,14 +28,12 @@ const common_1 = require("@pristine-ts/common");
|
|
|
28
28
|
const cli_error_code_enum_1 = require("../errors/cli-error-code.enum");
|
|
29
29
|
const command_not_found_error_1 = require("../errors/command-not-found.error");
|
|
30
30
|
const class_validator_1 = require("@pristine-ts/class-validator");
|
|
31
|
-
const console_manager_1 = require("../managers/console.manager");
|
|
32
31
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
33
32
|
const class_transformer_1 = require("class-transformer");
|
|
34
33
|
let CliEventHandler = class CliEventHandler {
|
|
35
|
-
constructor(logHandler, validator,
|
|
34
|
+
constructor(logHandler, validator, commands) {
|
|
36
35
|
this.logHandler = logHandler;
|
|
37
36
|
this.validator = validator;
|
|
38
|
-
this.consoleManager = consoleManager;
|
|
39
37
|
this.commands = commands;
|
|
40
38
|
}
|
|
41
39
|
handle(event) {
|
|
@@ -122,7 +120,12 @@ let CliEventHandler = class CliEventHandler {
|
|
|
122
120
|
}
|
|
123
121
|
logExitStatus(commandName, exitCode) {
|
|
124
122
|
const status = exitCode === common_1.ExitCode.Success ? "Success" : "Error";
|
|
125
|
-
|
|
123
|
+
if (exitCode === common_1.ExitCode.Success) {
|
|
124
|
+
this.logHandler.info(`Command '${commandName}' exited`, { highlights: { status, exitCode, commandName } });
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.logHandler.error(`Command '${commandName}' exited`, { highlights: { status, exitCode, commandName } });
|
|
128
|
+
}
|
|
126
129
|
}
|
|
127
130
|
};
|
|
128
131
|
exports.CliEventHandler = CliEventHandler;
|
|
@@ -131,8 +134,7 @@ exports.CliEventHandler = CliEventHandler = __decorate([
|
|
|
131
134
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
132
135
|
(0, tsyringe_1.injectable)(),
|
|
133
136
|
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
134
|
-
__param(
|
|
135
|
-
__metadata("design:paramtypes", [Object, class_validator_1.Validator,
|
|
136
|
-
console_manager_1.ConsoleManager, Array])
|
|
137
|
+
__param(2, (0, tsyringe_1.injectAll)(common_1.ServiceDefinitionTagEnum.Command)),
|
|
138
|
+
__metadata("design:paramtypes", [Object, class_validator_1.Validator, Array])
|
|
137
139
|
], CliEventHandler);
|
|
138
140
|
//# sourceMappingURL=cli.event-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuD;AAEvD,mFAA4E;AAI5E,gDAAuH;AACvH,uEAA2D;AAC3D,+EAAuE;AAEvE,kEAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CliOutput = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const common_1 = require("@pristine-ts/common");
|
|
12
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
13
|
+
/**
|
|
14
|
+
* Pipe-friendly stdout primitives for the CLI. Use this when you need to emit text that
|
|
15
|
+
* a user might redirect or pipe — help banners, command tables, JSON dumps — and the
|
|
16
|
+
* `LogHandler` pipeline would be wrong because it can be severity-gated, routed to
|
|
17
|
+
* stderr per-severity, or fanned out to file/Sentry transports. For event narration
|
|
18
|
+
* ("Compiling X", "Server started"), use `LogHandler` instead.
|
|
19
|
+
*/
|
|
20
|
+
let CliOutput = class CliOutput {
|
|
21
|
+
/**
|
|
22
|
+
* Writes a message to stdout without a newline.
|
|
23
|
+
*/
|
|
24
|
+
write(message) {
|
|
25
|
+
process.stdout.write(message);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Writes a message to stdout with a newline.
|
|
29
|
+
*/
|
|
30
|
+
writeLine(message) {
|
|
31
|
+
process.stdout.write(message + "\n");
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Renders an array of objects as a table using Node's `console.table`.
|
|
35
|
+
*/
|
|
36
|
+
writeTable(rows) {
|
|
37
|
+
console.table(rows);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.CliOutput = CliOutput;
|
|
41
|
+
exports.CliOutput = CliOutput = __decorate([
|
|
42
|
+
(0, tsyringe_1.injectable)(),
|
|
43
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname)
|
|
44
|
+
], CliOutput);
|
|
45
|
+
//# sourceMappingURL=cli-output.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-output.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-output.manager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AACpC,gDAAiD;AACjD,8DAAuD;AAEvD;;;;;;GAMG;AAGI,IAAM,SAAS,GAAf,MAAM,SAAS;IAEpB;;OAEG;IACH,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAe;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAW;QACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAtBY,8BAAS;oBAAT,SAAS;IAFrB,IAAA,qBAAU,GAAE;IACZ,IAAA,qBAAY,EAAC,qCAAgB,CAAC;GAClB,SAAS,CAsBrB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var CliProgressBar_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CliProgressBar = void 0;
|
|
11
|
+
const tsyringe_1 = require("tsyringe");
|
|
12
|
+
const common_1 = require("@pristine-ts/common");
|
|
13
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
14
|
+
const node_readline_1 = require("node:readline");
|
|
15
|
+
/**
|
|
16
|
+
* Inline progress bar rendered on the current TTY line. Each call clears and redraws
|
|
17
|
+
* the line, so callers must not interleave other output (LogHandler narration, raw
|
|
18
|
+
* CliOutput writes, etc.) between updates or the previous bar will be left behind on
|
|
19
|
+
* the line above.
|
|
20
|
+
*/
|
|
21
|
+
let CliProgressBar = CliProgressBar_1 = class CliProgressBar {
|
|
22
|
+
/**
|
|
23
|
+
* Renders the progress bar at the current line. When `current >= total` the cursor
|
|
24
|
+
* is advanced to the next line so subsequent output doesn't overwrite the finished bar.
|
|
25
|
+
*/
|
|
26
|
+
update(current, total, message = "", width = 30) {
|
|
27
|
+
const percentage = Math.min(Math.max(current / total, 0), 1);
|
|
28
|
+
const filledWidth = Math.round(width * percentage);
|
|
29
|
+
const emptyWidth = width - filledWidth;
|
|
30
|
+
const filledBar = CliProgressBar_1.FILLED.repeat(filledWidth);
|
|
31
|
+
const emptyBar = CliProgressBar_1.EMPTY.repeat(emptyWidth);
|
|
32
|
+
(0, node_readline_1.clearLine)(process.stdout, 0);
|
|
33
|
+
(0, node_readline_1.cursorTo)(process.stdout, 0);
|
|
34
|
+
process.stdout.write(`${CliProgressBar_1.CYAN}[${filledBar}${emptyBar}]${CliProgressBar_1.RESET} ${Math.round(percentage * 100)}% ${message}`);
|
|
35
|
+
if (current >= total) {
|
|
36
|
+
process.stdout.write("\n");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.CliProgressBar = CliProgressBar;
|
|
41
|
+
CliProgressBar.FILLED = "█";
|
|
42
|
+
CliProgressBar.EMPTY = "░";
|
|
43
|
+
CliProgressBar.CYAN = "\x1b[36m";
|
|
44
|
+
CliProgressBar.RESET = "\x1b[0m";
|
|
45
|
+
exports.CliProgressBar = CliProgressBar = CliProgressBar_1 = __decorate([
|
|
46
|
+
(0, tsyringe_1.injectable)(),
|
|
47
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname)
|
|
48
|
+
], CliProgressBar);
|
|
49
|
+
//# sourceMappingURL=cli-progress-bar.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-progress-bar.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-progress-bar.manager.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,uCAAoC;AACpC,gDAAiD;AACjD,8DAAuD;AACvD,iDAAkD;AAElD;;;;;GAKG;AAGI,IAAM,cAAc,sBAApB,MAAM,cAAc;IAOzB;;;OAGG;IACH,MAAM,CAAC,OAAe,EAAE,KAAa,EAAE,UAAkB,EAAE,EAAE,QAAgB,EAAE;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,KAAK,GAAG,WAAW,CAAC;QAEvC,MAAM,SAAS,GAAG,gBAAc,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,gBAAc,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzD,IAAA,yBAAS,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAA,wBAAQ,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAc,CAAC,IAAI,IAAI,SAAS,GAAG,QAAQ,IAAI,gBAAc,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAE3I,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;;AA1BU,wCAAc;AAED,qBAAM,GAAG,GAAG,AAAN,CAAO;AACb,oBAAK,GAAG,GAAG,AAAN,CAAO;AACZ,mBAAI,GAAG,UAAU,AAAb,CAAc;AAClB,oBAAK,GAAG,SAAS,AAAZ,CAAa;yBAL/B,cAAc;IAF1B,IAAA,qBAAU,GAAE;IACZ,IAAA,qBAAY,EAAC,qCAAgB,CAAC;GAClB,cAAc,CA2B1B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
42
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
43
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
44
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
45
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
46
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
47
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.CliPrompt = void 0;
|
|
52
|
+
const tsyringe_1 = require("tsyringe");
|
|
53
|
+
const common_1 = require("@pristine-ts/common");
|
|
54
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
55
|
+
const readline = __importStar(require("node:readline/promises"));
|
|
56
|
+
const node_readline_1 = require("node:readline");
|
|
57
|
+
const node_process_1 = require("node:process");
|
|
58
|
+
const console_readline_options_1 = require("../options/console-readline.options");
|
|
59
|
+
/**
|
|
60
|
+
* Interactive stdin reader for CLI commands. Wraps Node's `readline/promises` and offers
|
|
61
|
+
* a single `readLine` method with optional masking after input is received.
|
|
62
|
+
*/
|
|
63
|
+
let CliPrompt = class CliPrompt {
|
|
64
|
+
/**
|
|
65
|
+
* Reads a string from stdin synchronously. Returns whatever `process.stdin.read()`
|
|
66
|
+
* gives back (which may be `null` when no data is buffered).
|
|
67
|
+
*/
|
|
68
|
+
read() {
|
|
69
|
+
return process.stdin.read();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Reads a line from stdin after displaying a prompt. When
|
|
73
|
+
* `options.showCharactersOnTyping` is false, the answered line is cleared and replaced
|
|
74
|
+
* with a masked echo so the typed value isn't left visible on screen.
|
|
75
|
+
*
|
|
76
|
+
* Note: this is not a true keystroke-suppressing password input — Node's stock
|
|
77
|
+
* `readline` does not support that without raw-mode handling. The current behavior is
|
|
78
|
+
* a post-input clear, sufficient for most CLI prompts.
|
|
79
|
+
*/
|
|
80
|
+
readLine(question_1) {
|
|
81
|
+
return __awaiter(this, arguments, void 0, function* (question, options = new console_readline_options_1.ConsoleReadlineOptions()) {
|
|
82
|
+
const rl = readline.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
|
|
83
|
+
const answer = yield rl.question(question);
|
|
84
|
+
if (!options.showCharactersOnTyping) {
|
|
85
|
+
(0, node_readline_1.moveCursor)(node_process_1.stdout, 0, -1);
|
|
86
|
+
(0, node_readline_1.clearLine)(node_process_1.stdout, 0);
|
|
87
|
+
process.stdout.write(`${question} [******]\n`);
|
|
88
|
+
}
|
|
89
|
+
rl.close();
|
|
90
|
+
return answer;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
exports.CliPrompt = CliPrompt;
|
|
95
|
+
exports.CliPrompt = CliPrompt = __decorate([
|
|
96
|
+
(0, tsyringe_1.injectable)(),
|
|
97
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname)
|
|
98
|
+
], CliPrompt);
|
|
99
|
+
//# sourceMappingURL=cli-prompt.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-prompt.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-prompt.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,gDAAiD;AACjD,8DAAuD;AACvD,iEAAmD;AACnD,iDAAoD;AACpD,+CAA8D;AAC9D,kFAA2E;AAE3E;;;GAGG;AAGI,IAAM,SAAS,GAAf,MAAM,SAAS;IAEpB;;;OAGG;IACH,IAAI;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAY,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACG,QAAQ;6DAAC,QAAgB,EAAE,UAAkC,IAAI,iDAAsB,EAAE;YAC7F,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAC,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACpC,IAAA,0BAAU,EAAC,qBAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAA,yBAAS,EAAC,qBAAM,EAAE,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC;YACjD,CAAC;YAED,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF,CAAA;AAlCY,8BAAS;oBAAT,SAAS;IAFrB,IAAA,qBAAU,GAAE;IACZ,IAAA,qBAAY,EAAC,qCAAgB,CAAC;GAClB,SAAS,CAkCrB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var CliSpinner_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CliSpinner = void 0;
|
|
17
|
+
const tsyringe_1 = require("tsyringe");
|
|
18
|
+
const common_1 = require("@pristine-ts/common");
|
|
19
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
20
|
+
const node_readline_1 = require("node:readline");
|
|
21
|
+
/**
|
|
22
|
+
* Animated spinner for indicating long-running work in a TTY. Hides the cursor while
|
|
23
|
+
* spinning, redraws the current line every 80ms, and routes the completion message
|
|
24
|
+
* through the injected `LogHandler` so success/failure rendering matches the rest of
|
|
25
|
+
* the framework.
|
|
26
|
+
*
|
|
27
|
+
* Avoid emitting other output (especially LogHandler narration) while the spinner is
|
|
28
|
+
* active — concurrent writes will fight the spinner's line clearing and produce visual
|
|
29
|
+
* artifacts.
|
|
30
|
+
*/
|
|
31
|
+
let CliSpinner = CliSpinner_1 = class CliSpinner {
|
|
32
|
+
constructor(logHandler) {
|
|
33
|
+
this.logHandler = logHandler;
|
|
34
|
+
this.spinnerInterval = null;
|
|
35
|
+
this.isSpinning = false;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Starts the spinner with the given label. Subsequent calls are no-ops until `stop()`
|
|
39
|
+
* is invoked.
|
|
40
|
+
*/
|
|
41
|
+
start(message) {
|
|
42
|
+
if (this.isSpinning)
|
|
43
|
+
return;
|
|
44
|
+
this.isSpinning = true;
|
|
45
|
+
let i = 0;
|
|
46
|
+
process.stdout.write(CliSpinner_1.HIDE_CURSOR);
|
|
47
|
+
this.spinnerInterval = setInterval(() => {
|
|
48
|
+
(0, node_readline_1.clearLine)(process.stdout, 0);
|
|
49
|
+
(0, node_readline_1.cursorTo)(process.stdout, 0);
|
|
50
|
+
const frame = CliSpinner_1.FRAMES[i = (i + 1) % CliSpinner_1.FRAMES.length];
|
|
51
|
+
process.stdout.write(`${CliSpinner_1.CYAN}${frame}${CliSpinner_1.RESET} ${message}`);
|
|
52
|
+
}, CliSpinner_1.FRAME_INTERVAL_MS);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Stops the spinner, restores the cursor, and optionally emits a final completion
|
|
56
|
+
* message. `success` controls whether the message is rendered as a success log
|
|
57
|
+
* (`logHandler.success`) or an error log (`logHandler.error`).
|
|
58
|
+
*/
|
|
59
|
+
stop(message, success = true) {
|
|
60
|
+
if (!this.isSpinning)
|
|
61
|
+
return;
|
|
62
|
+
if (this.spinnerInterval) {
|
|
63
|
+
clearInterval(this.spinnerInterval);
|
|
64
|
+
this.spinnerInterval = null;
|
|
65
|
+
}
|
|
66
|
+
this.isSpinning = false;
|
|
67
|
+
(0, node_readline_1.clearLine)(process.stdout, 0);
|
|
68
|
+
(0, node_readline_1.cursorTo)(process.stdout, 0);
|
|
69
|
+
process.stdout.write(CliSpinner_1.SHOW_CURSOR);
|
|
70
|
+
if (message) {
|
|
71
|
+
if (success) {
|
|
72
|
+
this.logHandler.success(message);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.logHandler.error(message);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
exports.CliSpinner = CliSpinner;
|
|
81
|
+
CliSpinner.FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
82
|
+
CliSpinner.FRAME_INTERVAL_MS = 80;
|
|
83
|
+
CliSpinner.CYAN = "\x1b[36m";
|
|
84
|
+
CliSpinner.RESET = "\x1b[0m";
|
|
85
|
+
CliSpinner.HIDE_CURSOR = "\x1B[?25l";
|
|
86
|
+
CliSpinner.SHOW_CURSOR = "\x1B[?25h";
|
|
87
|
+
exports.CliSpinner = CliSpinner = CliSpinner_1 = __decorate([
|
|
88
|
+
(0, tsyringe_1.injectable)(),
|
|
89
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
90
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
91
|
+
__metadata("design:paramtypes", [Object])
|
|
92
|
+
], CliSpinner);
|
|
93
|
+
//# sourceMappingURL=cli-spinner.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-spinner.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-spinner.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAA4C;AAC5C,gDAAiD;AAEjD,8DAAuD;AACvD,iDAAkD;AAElD;;;;;;;;;GASG;AAGI,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAWrB,YAA2C,UAAgD;QAA/B,eAAU,GAAV,UAAU,CAAqB;QAVnF,oBAAe,GAA0B,IAAI,CAAC;QAC9C,eAAU,GAAG,KAAK,CAAC;IAU3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAU,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAA,yBAAS,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAA,wBAAQ,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,YAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAU,CAAC,IAAI,GAAG,KAAK,GAAG,YAAU,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC,EAAE,YAAU,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAgB,EAAE,UAAmB,IAAI;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAA,yBAAS,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAA,wBAAQ,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAU,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;;AAxDU,gCAAU;AAIG,iBAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,AAArD,CAAsD;AAC5D,4BAAiB,GAAG,EAAE,AAAL,CAAM;AACvB,eAAI,GAAG,UAAU,AAAb,CAAc;AAClB,gBAAK,GAAG,SAAS,AAAZ,CAAa;AAClB,sBAAW,GAAG,WAAW,AAAd,CAAe;AAC1B,sBAAW,GAAG,WAAW,AAAd,CAAe;qBATvC,UAAU;IAFtB,IAAA,qBAAU,GAAE;IACZ,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAYhB,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAX/B,UAAU,CAyDtB"}
|
|
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./cli-output.manager"), exports);
|
|
18
|
+
__exportStar(require("./cli-progress-bar.manager"), exports);
|
|
19
|
+
__exportStar(require("./cli-prompt.manager"), exports);
|
|
20
|
+
__exportStar(require("./cli-spinner.manager"), exports);
|
|
18
21
|
__exportStar(require("./shell.manager"), exports);
|
|
19
22
|
//# sourceMappingURL=managers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../../src/managers/managers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../../src/managers/managers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,kDAAgC"}
|