@decaf-ts/cli 0.4.4 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.cjs +1 -1
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/cli.js +1 -1
  5. package/dist/cli.js.map +1 -1
  6. package/lib/CliWrapper.cjs +254 -91
  7. package/lib/CliWrapper.d.ts +32 -4
  8. package/lib/CliWrapper.js.map +1 -1
  9. package/lib/banners.cjs +394 -0
  10. package/lib/banners.d.ts +3 -0
  11. package/lib/banners.js.map +1 -0
  12. package/lib/demo/cli-module.cjs +9 -39
  13. package/lib/demo/cli-module.d.ts +0 -33
  14. package/lib/demo/cli-module.js.map +1 -1
  15. package/lib/environment.cjs +17 -0
  16. package/lib/environment.d.ts +17 -0
  17. package/lib/environment.js.map +1 -0
  18. package/lib/esm/CliWrapper.d.ts +32 -4
  19. package/lib/esm/CliWrapper.js +255 -92
  20. package/lib/esm/CliWrapper.js.map +1 -1
  21. package/lib/esm/banners.d.ts +3 -0
  22. package/lib/esm/banners.js +391 -0
  23. package/lib/esm/banners.js.map +1 -0
  24. package/lib/esm/demo/cli-module.d.ts +0 -33
  25. package/lib/esm/demo/cli-module.js +9 -39
  26. package/lib/esm/demo/cli-module.js.map +1 -1
  27. package/lib/esm/environment.d.ts +17 -0
  28. package/lib/esm/environment.js +11 -0
  29. package/lib/esm/environment.js.map +1 -0
  30. package/lib/esm/index.d.ts +1 -0
  31. package/lib/esm/index.js +1 -0
  32. package/lib/esm/index.js.map +1 -1
  33. package/lib/esm/logging.d.ts +3 -0
  34. package/lib/esm/logging.js +16 -0
  35. package/lib/esm/logging.js.map +1 -0
  36. package/lib/esm/slogans.d.ts +40 -0
  37. package/lib/esm/slogans.js +142 -0
  38. package/lib/esm/slogans.js.map +1 -0
  39. package/lib/esm/utils-module/cli-module.d.ts +2 -0
  40. package/lib/esm/utils-module/cli-module.js +77 -0
  41. package/lib/esm/utils-module/cli-module.js.map +1 -0
  42. package/lib/esm/utils.js +1 -1
  43. package/lib/esm/utils.js.map +1 -1
  44. package/lib/esm/version.d.ts +1 -1
  45. package/lib/esm/version.js +1 -1
  46. package/lib/index.cjs +1 -0
  47. package/lib/index.d.ts +1 -0
  48. package/lib/index.js.map +1 -1
  49. package/lib/logging.cjs +19 -0
  50. package/lib/logging.d.ts +3 -0
  51. package/lib/logging.js.map +1 -0
  52. package/lib/slogans.cjs +150 -0
  53. package/lib/slogans.d.ts +40 -0
  54. package/lib/slogans.js.map +1 -0
  55. package/lib/utils-module/cli-module.cjs +83 -0
  56. package/lib/utils-module/cli-module.d.ts +2 -0
  57. package/lib/utils-module/cli-module.js.map +1 -0
  58. package/lib/utils.cjs +1 -1
  59. package/lib/utils.js.map +1 -1
  60. package/lib/version.cjs +1 -1
  61. package/lib/version.d.ts +1 -1
  62. package/package.json +3 -2
  63. package/workdocs/assets/slogans.json +194 -0
@@ -10,18 +10,10 @@ const path_1 = __importDefault(require("path"));
10
10
  const constants_1 = require("./constants.cjs");
11
11
  const utils_1 = require("./utils.cjs");
12
12
  const logging_1 = require("@decaf-ts/logging");
13
- const styled_string_builder_1 = require("styled-string-builder");
14
- const colors = [
15
- "\x1b[38;5;215m", // soft orange
16
- "\x1b[38;5;209m", // coral
17
- "\x1b[38;5;205m", // pink
18
- "\x1b[38;5;210m", // peachy
19
- "\x1b[38;5;217m", // salmon
20
- "\x1b[38;5;216m", // light coral
21
- "\x1b[38;5;224m", // light peach
22
- "\x1b[38;5;230m", // soft cream
23
- "\x1b[38;5;230m", // soft cream
24
- ];
13
+ const banners_1 = require("./banners.cjs");
14
+ const slogans_1 = require("./slogans.cjs");
15
+ const environment_1 = require("./environment.cjs");
16
+ const MIN_BANNER_WIDTH = 92;
25
17
  /**
26
18
  * @description Utility class to handle CLI functionality from all Decaf modules
27
19
  * @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
@@ -39,11 +31,15 @@ const colors = [
39
31
  *
40
32
  * @class CliWrapper
41
33
  */
42
- class CliWrapper {
43
- constructor(basePath = "./", crawlLevels = 4) {
34
+ class CliWrapper extends logging_1.LoggedClass {
35
+ static { this.env = environment_1.DecafCLieEnvironment; }
36
+ constructor(basePath = environment_1.DecafCLieEnvironment.cliModuleRoot, crawlLevels = 4) {
37
+ super();
44
38
  this.basePath = basePath;
45
39
  this.crawlLevels = crawlLevels;
46
40
  this.modules = {};
41
+ this.moduleSlogans = {};
42
+ this.globalSlogans = [];
47
43
  this.rootPath = path_1.default.resolve(__dirname, "..");
48
44
  }
49
45
  /**
@@ -87,6 +83,7 @@ class CliWrapper {
87
83
  * CliWrapper-->>CliWrapper: Return name
88
84
  */
89
85
  async load(filePath) {
86
+ const log = this.log.for(this.load);
90
87
  let name;
91
88
  try {
92
89
  let module = await utils_1.CLIUtils.loadFromFile(filePath);
@@ -95,13 +92,24 @@ class CliWrapper {
95
92
  module = module();
96
93
  if (module instanceof Promise)
97
94
  module = await module;
98
- if (!(module instanceof commander_1.Command))
95
+ if (!this.isCommandInstance(module))
99
96
  throw new Error(`You should export the instantiated Commands class as default.`);
100
97
  this.modules[name] = module;
101
98
  }
102
99
  catch (e) {
103
100
  throw new Error(`failed to load module under ${filePath}: ${e instanceof Error ? e.message : e}`);
104
101
  }
102
+ try {
103
+ const moduleRoot = this.findModuleRoot(path_1.default.dirname(filePath));
104
+ const records = (0, slogans_1.readSlogans)(log, moduleRoot);
105
+ const strings = this.extractSloganStrings(records);
106
+ if (strings.length) {
107
+ this.moduleSlogans[name] = strings;
108
+ }
109
+ }
110
+ catch (e) {
111
+ console.error(`Failed to load slogans for ${name}: ${e}`);
112
+ }
105
113
  return name;
106
114
  }
107
115
  /**
@@ -134,6 +142,7 @@ class CliWrapper {
134
142
  * CliWrapper->>Console: Log loaded modules
135
143
  */
136
144
  async boot() {
145
+ const log = this.log.for(this.boot);
137
146
  const basePath = path_1.default.resolve(this.rootPath, this.basePath);
138
147
  const modules = this.crawl(basePath, this.crawlLevels);
139
148
  for (const module of modules) {
@@ -150,13 +159,13 @@ class CliWrapper {
150
159
  }
151
160
  if (!this.command.commands.find((c) => c["_name"] === name))
152
161
  try {
153
- this.command.command(name).addCommand(this.modules[name]);
162
+ this.command.addCommand(this.modules[name]);
154
163
  }
155
164
  catch (e) {
156
165
  console.error(e);
157
166
  }
158
167
  }
159
- console.log(`loaded modules:\n${Object.keys(this.modules)
168
+ log.debug(`loaded modules:\n${Object.keys(this.modules)
160
169
  .map((k) => `- ${k}`)
161
170
  .join("\n")}`);
162
171
  }
@@ -184,98 +193,237 @@ class CliWrapper {
184
193
  return accum;
185
194
  }, []);
186
195
  }
187
- getSlogan() {
188
- // Find nearest node_modules from this file's directory to survive bundling
189
- const startDir = __dirname;
190
- let current = startDir;
191
- let nodeModulesDir;
196
+ findModuleRoot(initialDir) {
197
+ let current = initialDir;
198
+ const root = path_1.default.parse(initialDir).root;
199
+ while (true) {
200
+ if (fs_1.default.existsSync(path_1.default.join(current, "package.json"))) {
201
+ return current;
202
+ }
203
+ if (current === root)
204
+ break;
205
+ const parent = path_1.default.dirname(current);
206
+ if (parent === current)
207
+ break;
208
+ current = parent;
209
+ }
210
+ return initialDir;
211
+ }
212
+ getSlogan(priorityModule) {
213
+ this.ensureGlobalSlogans();
214
+ const priority = priorityModule
215
+ ? this.moduleSlogans[priorityModule] || []
216
+ : [];
217
+ const others = this.otherSlogans(priorityModule);
218
+ if (!priority.length && !others.length) {
219
+ return "Decaf: strongly brewed TypeScript.";
220
+ }
221
+ if (!priority.length) {
222
+ return others[Math.floor(Math.random() * others.length)];
223
+ }
224
+ if (!others.length) {
225
+ return priority[Math.floor(Math.random() * priority.length)];
226
+ }
227
+ const pool = this.buildBalancedSloganPool(priority, others);
228
+ return pool[Math.floor(Math.random() * pool.length)];
229
+ }
230
+ otherSlogans(priorityModule) {
231
+ const modules = Object.entries(this.moduleSlogans)
232
+ .filter(([name]) => name !== priorityModule)
233
+ .flatMap(([, slogans]) => slogans);
234
+ if (this.globalSlogans.length === 0 && modules.length === 0) {
235
+ return [];
236
+ }
237
+ return [...this.globalSlogans, ...modules];
238
+ }
239
+ buildBalancedSloganPool(primary, secondary) {
240
+ const targetLength = Math.max(primary.length, secondary.length);
241
+ const primaryBucket = this.repeatToLength(primary, targetLength);
242
+ const secondaryBucket = this.repeatToLength(secondary, targetLength);
243
+ const result = [];
244
+ for (let i = 0; i < targetLength; i++) {
245
+ result.push(primaryBucket[i]);
246
+ result.push(secondaryBucket[i]);
247
+ }
248
+ return result;
249
+ }
250
+ repeatToLength(values, targetLength) {
251
+ if (!values.length || targetLength <= 0)
252
+ return [];
253
+ return Array.from({ length: targetLength }, (_, index) => {
254
+ return values[index % values.length];
255
+ });
256
+ }
257
+ ensureGlobalSlogans() {
258
+ if (this.globalSlogans.length > 0)
259
+ return;
260
+ const log = this.log.for(this.ensureGlobalSlogans);
261
+ const gathered = [];
262
+ const basePaths = [this.rootPath];
263
+ const hostPath = path_1.default.resolve(this.rootPath, this.basePath);
264
+ if (hostPath !== this.rootPath) {
265
+ basePaths.push(hostPath);
266
+ }
267
+ for (const candidate of basePaths) {
268
+ this.collectSlogansFromPath(log, candidate, gathered);
269
+ this.collectSlogansFromScope(log, candidate, gathered);
270
+ }
271
+ this.globalSlogans = gathered;
272
+ }
273
+ collectSlogansFromPath(log, basePath, accumulator) {
192
274
  try {
193
- while (current && current !== path_1.default.parse(current).root) {
194
- const candidate = path_1.default.join(current, "node_modules");
195
- if (fs_1.default.existsSync(candidate) && fs_1.default.statSync(candidate).isDirectory()) {
196
- nodeModulesDir = candidate;
197
- break;
275
+ const records = (0, slogans_1.readSlogans)(log, basePath);
276
+ if (!records)
277
+ return;
278
+ for (const entry of records) {
279
+ if (entry && typeof entry.Slogan === "string" && entry.Slogan.trim()) {
280
+ accumulator.push(entry.Slogan.trim());
198
281
  }
199
- const parent = path_1.default.dirname(current);
200
- if (parent === current)
201
- break;
202
- current = parent;
203
282
  }
204
283
  }
205
284
  catch {
206
- // ignore errors during traversal
285
+ // readSlogans already logs issues
207
286
  }
208
- const slogans = [];
209
- if (nodeModulesDir) {
210
- const scopeDir = path_1.default.join(nodeModulesDir, "@decaf-ts");
211
- try {
212
- if (fs_1.default.existsSync(scopeDir) && fs_1.default.statSync(scopeDir).isDirectory()) {
213
- const pkgs = fs_1.default.readdirSync(scopeDir);
214
- for (const pkg of pkgs) {
215
- const depPath = path_1.default.join(scopeDir, pkg);
216
- try {
217
- const slogansPath = path_1.default.join(depPath, "workdocs", "assets", "slogans.json");
218
- if (fs_1.default.existsSync(slogansPath) &&
219
- fs_1.default.statSync(slogansPath).isFile()) {
220
- const raw = fs_1.default.readFileSync(slogansPath, "utf-8");
221
- const parsed = JSON.parse(raw);
222
- if (Array.isArray(parsed)) {
223
- for (const s of parsed) {
224
- if (typeof s === "string" && s.trim().length > 0) {
225
- slogans.push(s.trim());
226
- }
227
- }
228
- }
229
- }
230
- }
231
- catch {
232
- // ignore per-package errors
233
- }
287
+ }
288
+ collectSlogansFromScope(log, basePath, accumulator) {
289
+ const scopeDir = path_1.default.join(basePath, "node_modules", "@decaf-ts");
290
+ try {
291
+ if (!fs_1.default.existsSync(scopeDir) || !fs_1.default.statSync(scopeDir).isDirectory()) {
292
+ return;
293
+ }
294
+ const pkgs = fs_1.default.readdirSync(scopeDir);
295
+ for (const pkg of pkgs) {
296
+ const candidate = path_1.default.join(scopeDir, pkg);
297
+ try {
298
+ if (!fs_1.default.existsSync(candidate) || !fs_1.default.statSync(candidate).isDirectory()) {
299
+ continue;
234
300
  }
301
+ this.collectSlogansFromPath(log, candidate, accumulator);
302
+ }
303
+ catch {
304
+ // ignore individual package errors
235
305
  }
236
- }
237
- catch {
238
- // ignore scope directory errors
239
306
  }
240
307
  }
241
- if (slogans.length === 0) {
242
- return "Decaf: strongly brewed TypeScript.";
308
+ catch {
309
+ // ignore scope directory errors
243
310
  }
244
- const idx = Math.floor(Math.random() * slogans.length);
245
- return slogans[idx];
246
311
  }
247
- printBanner(logger = logging_1.Logging.get()) {
312
+ extractSloganStrings(records) {
313
+ if (!records || !records.length)
314
+ return [];
315
+ return records
316
+ .map((entry) => (entry && entry.Slogan ? entry.Slogan.trim() : ""))
317
+ .filter((value) => value.length > 0);
318
+ }
319
+ isCommandInstance(value) {
320
+ if (value instanceof commander_1.Command)
321
+ return true;
322
+ if (!value || typeof value !== "object")
323
+ return false;
324
+ const candidate = value;
325
+ return (typeof candidate.parseAsync === "function" &&
326
+ typeof candidate.addCommand === "function" &&
327
+ typeof candidate.name === "function");
328
+ }
329
+ printBanner(args) {
248
330
  let message;
249
331
  try {
250
- message = this.getSlogan();
332
+ const priorityModule = this.getPriorityModule(args);
333
+ message = this.getSlogan(priorityModule);
251
334
  }
252
335
  catch {
253
336
  message = "Decaf: strongly brewed TypeScript.";
254
337
  }
255
- const banner = `# ░▒▓███████▓▒░ ░▒▓████████▓▒░ ░▒▓██████▓▒░ ░▒▓██████▓▒░ ░▒▓████████▓▒░ ░▒▓████████▓▒░ ░▒▓███████▓▒░
256
- # ( ( ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░
257
- # ) ) ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░
258
- # [=======] ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░ ░▒▓████████▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░ ░▒▓██████▓▒░
259
- # \`-----´ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░
260
- # ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░
261
- # ░▒▓███████▓▒░ ░▒▓████████▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓███████▓▒░
262
- #`.split("\n");
263
- const maxLength = banner.reduce((max, line) => Math.max(max, line.length), 0);
264
- banner.push(`# ${message.padStart(maxLength - 3)}`);
265
- banner.forEach((line, index) => {
266
- const color = colors[index % colors.length] || "";
267
- const logFn = logger
268
- ? logger.info.bind(logger)
269
- : console.log.bind(console);
270
- try {
271
- const msg = (0, styled_string_builder_1.style)(line || "").raw(color).text;
272
- logFn(msg);
338
+ // Select random banner and color palette
339
+ const bannerTemplate = banners_1.banners[Math.floor(Math.random() * banners_1.banners.length)];
340
+ const paletteKeys = Object.keys(banners_1.colorPalettes);
341
+ const palette = banners_1.colorPalettes[paletteKeys[Math.floor(Math.random() * paletteKeys.length)]];
342
+ const rawLines = bannerTemplate
343
+ .split("\n")
344
+ .filter((line) => line.length > 0);
345
+ const maxLineWidth = rawLines.reduce((max, line) => Math.max(max, line.length), 0);
346
+ const messageWidth = Math.max(0, message.length);
347
+ const targetWidth = Math.max(MIN_BANNER_WIDTH, maxLineWidth, messageWidth);
348
+ const banner = rawLines.map((line) => line.padEnd(targetWidth));
349
+ banner.push(message.padStart(targetWidth));
350
+ const reservedLines = "\n".repeat(Math.max(0, banner.length));
351
+ process.stdout.write(reservedLines);
352
+ const stop = this.animateBanner(banner, palette);
353
+ this.bannerAnimation = stop;
354
+ return stop;
355
+ }
356
+ getPriorityModule(args) {
357
+ if (!args || args.length <= 2)
358
+ return undefined;
359
+ const candidates = args.slice(2);
360
+ for (const item of candidates) {
361
+ if (!item || item.startsWith("-"))
362
+ continue;
363
+ const trimmed = item.trim();
364
+ if (!trimmed)
365
+ continue;
366
+ if (this.modules[trimmed]) {
367
+ return trimmed;
273
368
  }
274
- catch {
275
- // Fallback to plain output if styling fails for any reason
276
- logFn(String(line || ""));
369
+ return trimmed;
370
+ }
371
+ return undefined;
372
+ }
373
+ stopBannerAnimation() {
374
+ if (this.bannerAnimation) {
375
+ this.bannerAnimation();
376
+ this.bannerAnimation = undefined;
377
+ }
378
+ }
379
+ animateBanner(lines, palette) {
380
+ if (!lines.length) {
381
+ return () => { };
382
+ }
383
+ this.stopBannerAnimation();
384
+ const frameInterval = 150;
385
+ const duration = 5000;
386
+ const totalFrames = Math.max(1, Math.ceil(duration / frameInterval));
387
+ let framesRendered = 0;
388
+ let stopped = false;
389
+ let timer;
390
+ const paletteLength = Math.max(1, palette.length);
391
+ const colorOffsets = lines.map((_, index) => index % paletteLength);
392
+ const reset = "\x1b[0m";
393
+ const height = lines.length;
394
+ const moveUp = `\u001b[${height}A`;
395
+ const stop = () => {
396
+ if (stopped)
397
+ return;
398
+ stopped = true;
399
+ if (timer) {
400
+ clearInterval(timer);
401
+ timer = undefined;
277
402
  }
278
- });
403
+ };
404
+ const renderFrame = () => {
405
+ const offset = framesRendered % paletteLength;
406
+ const colored = lines.map((line, index) => {
407
+ const colorIndex = (colorOffsets[index] + offset) % paletteLength;
408
+ const color = palette[colorIndex] || "";
409
+ return `${color}${line}${reset}`;
410
+ });
411
+ process.stdout.write(moveUp);
412
+ for (const line of colored) {
413
+ process.stdout.write("\u001b[2K");
414
+ process.stdout.write(`${line}\n`);
415
+ }
416
+ framesRendered++;
417
+ };
418
+ renderFrame();
419
+ timer = setInterval(() => {
420
+ if (framesRendered >= totalFrames) {
421
+ stop();
422
+ return;
423
+ }
424
+ renderFrame();
425
+ }, frameInterval);
426
+ return stop;
279
427
  }
280
428
  /**
281
429
  * @description Executes the CLI with the provided arguments
@@ -299,8 +447,23 @@ class CliWrapper {
299
447
  */
300
448
  async run(args = process.argv) {
301
449
  await this.boot();
302
- this.printBanner();
303
- return this.command.parseAsync(args);
450
+ const stopAnimation = environment_1.DecafCLieEnvironment.banner
451
+ ? this.printBanner(args)
452
+ : undefined;
453
+ try {
454
+ return await this.command.parseAsync(args);
455
+ }
456
+ finally {
457
+ if (stopAnimation)
458
+ stopAnimation();
459
+ this.bannerAnimation = undefined;
460
+ }
461
+ }
462
+ static accumulateEnvironment(obj) {
463
+ this.env = this.env.accumulate(obj);
464
+ }
465
+ static getEnv() {
466
+ return this.env;
304
467
  }
305
468
  }
306
469
  exports.CliWrapper = CliWrapper;
@@ -1,5 +1,5 @@
1
1
  import { Command } from "commander";
2
- import { Logger } from "@decaf-ts/logging";
2
+ import { LoggedClass } from "@decaf-ts/logging";
3
3
  /**
4
4
  * @description Utility class to handle CLI functionality from all Decaf modules
5
5
  * @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
@@ -17,12 +17,16 @@ import { Logger } from "@decaf-ts/logging";
17
17
  *
18
18
  * @class CliWrapper
19
19
  */
20
- export declare class CliWrapper {
20
+ export declare class CliWrapper extends LoggedClass {
21
21
  private basePath;
22
22
  private crawlLevels;
23
23
  private _command?;
24
24
  private modules;
25
25
  private readonly rootPath;
26
+ private moduleSlogans;
27
+ private globalSlogans;
28
+ private bannerAnimation?;
29
+ private static env;
26
30
  constructor(basePath?: string, crawlLevels?: number);
27
31
  /**
28
32
  * @description Retrieves and initializes the Commander Command object
@@ -100,8 +104,20 @@ export declare class CliWrapper {
100
104
  * @private
101
105
  */
102
106
  private crawl;
103
- protected getSlogan(): string;
104
- protected printBanner(logger?: Logger): void;
107
+ private findModuleRoot;
108
+ protected getSlogan(priorityModule?: string): string;
109
+ private otherSlogans;
110
+ private buildBalancedSloganPool;
111
+ private repeatToLength;
112
+ private ensureGlobalSlogans;
113
+ private collectSlogansFromPath;
114
+ private collectSlogansFromScope;
115
+ private extractSloganStrings;
116
+ private isCommandInstance;
117
+ protected printBanner(args?: string[]): () => void;
118
+ private getPriorityModule;
119
+ private stopBannerAnimation;
120
+ private animateBanner;
105
121
  /**
106
122
  * @description Executes the CLI with the provided arguments
107
123
  * @summary Boots the CLI by loading all modules, then parses and executes the command specified in the arguments
@@ -123,4 +139,16 @@ export declare class CliWrapper {
123
139
  * CliWrapper-->>Client: result
124
140
  */
125
141
  run(args?: string[]): Promise<Command>;
142
+ static accumulateEnvironment(obj: object): void;
143
+ static getEnv(): object & import("@decaf-ts/logging").LoggingConfig & {
144
+ env: any;
145
+ } & {
146
+ banner: boolean;
147
+ cliModuleRoot: string;
148
+ } & import("typed-object-accumulator").ObjectAccumulator<object & import("@decaf-ts/logging").LoggingConfig & {
149
+ env: any;
150
+ } & {
151
+ banner: boolean;
152
+ cliModuleRoot: string;
153
+ }>;
126
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliWrapper.js","sourceRoot":"","sources":["../src/CliWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CliWrapper.js","sourceRoot":"","sources":["../src/CliWrapper.ts"],"names":[],"mappings":"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"}