@reliverse/rempts 1.7.65 → 2.2.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.
Files changed (131) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1534 -1431
  3. package/cleanup.mjs +33 -0
  4. package/dist/cancel.d.ts +31 -0
  5. package/dist/cancel.js +28 -0
  6. package/dist/ffi.d.ts +1 -0
  7. package/dist/ffi.js +165 -0
  8. package/dist/group.d.ts +16 -0
  9. package/dist/group.js +22 -0
  10. package/dist/launcher/command.d.ts +8 -0
  11. package/dist/launcher/command.js +10 -0
  12. package/dist/launcher/discovery.d.ts +3 -0
  13. package/dist/launcher/discovery.js +207 -0
  14. package/dist/launcher/errors.d.ts +15 -0
  15. package/dist/launcher/errors.js +31 -0
  16. package/dist/launcher/help.d.ts +3 -0
  17. package/dist/launcher/help.js +145 -0
  18. package/dist/launcher/mod.d.ts +12 -0
  19. package/dist/launcher/mod.js +222 -0
  20. package/dist/launcher/parser.d.ts +14 -0
  21. package/dist/launcher/parser.js +255 -0
  22. package/dist/launcher/registry.d.ts +10 -0
  23. package/dist/launcher/registry.js +42 -0
  24. package/dist/launcher/types.d.ts +78 -0
  25. package/dist/launcher/validator.d.ts +3 -0
  26. package/dist/launcher/validator.js +39 -0
  27. package/dist/mod.d.ts +6 -0
  28. package/dist/mod.js +6 -0
  29. package/dist/prompt.d.ts +13 -0
  30. package/dist/prompt.js +53 -0
  31. package/dist/selection.d.ts +92 -0
  32. package/dist/selection.js +191 -0
  33. package/dist/spinner.d.ts +26 -0
  34. package/dist/spinner.js +141 -0
  35. package/dist/utils.d.ts +3 -0
  36. package/dist/utils.js +11 -0
  37. package/package.json +41 -47
  38. package/bin/libs/animate/animate-mod.ts.txt +0 -78
  39. package/bin/libs/anykey/anykey-mod.d.ts +0 -12
  40. package/bin/libs/anykey/anykey-mod.js +0 -125
  41. package/bin/libs/cancel/cancel.d.ts +0 -45
  42. package/bin/libs/cancel/cancel.js +0 -72
  43. package/bin/libs/confirm/confirm-alias.d.ts +0 -2
  44. package/bin/libs/confirm/confirm-alias.js +0 -2
  45. package/bin/libs/confirm/confirm-mod.d.ts +0 -5
  46. package/bin/libs/confirm/confirm-mod.js +0 -179
  47. package/bin/libs/date/date.d.ts +0 -2
  48. package/bin/libs/date/date.js +0 -254
  49. package/bin/libs/editor/editor-mod.d.ts +0 -25
  50. package/bin/libs/editor/editor-mod.js +0 -1133
  51. package/bin/libs/figures/figures-mod.d.ts +0 -461
  52. package/bin/libs/figures/figures-mod.js +0 -285
  53. package/bin/libs/group/group-mod.d.ts +0 -33
  54. package/bin/libs/group/group-mod.js +0 -89
  55. package/bin/libs/input/input-alias.d.ts +0 -5
  56. package/bin/libs/input/input-alias.js +0 -4
  57. package/bin/libs/input/input-mod.d.ts +0 -16
  58. package/bin/libs/input/input-mod.js +0 -370
  59. package/bin/libs/intro/intro-alias.d.ts +0 -3
  60. package/bin/libs/intro/intro-alias.js +0 -3
  61. package/bin/libs/intro/intro-mod.d.ts +0 -19
  62. package/bin/libs/intro/intro-mod.js +0 -71
  63. package/bin/libs/launcher/command-runner.d.ts +0 -31
  64. package/bin/libs/launcher/command-runner.js +0 -229
  65. package/bin/libs/launcher/launcher-alias.d.ts +0 -2
  66. package/bin/libs/launcher/launcher-alias.js +0 -2
  67. package/bin/libs/launcher/launcher-mod.d.ts +0 -66
  68. package/bin/libs/launcher/launcher-mod.js +0 -1037
  69. package/bin/libs/launcher/launcher-types.d.ts +0 -176
  70. package/bin/libs/launcher/launcher-types.js +0 -0
  71. package/bin/libs/log/log-alias.d.ts +0 -1
  72. package/bin/libs/log/log-alias.js +0 -2
  73. package/bin/libs/msg-fmt/colors.d.ts +0 -30
  74. package/bin/libs/msg-fmt/colors.js +0 -42
  75. package/bin/libs/msg-fmt/mapping.d.ts +0 -3
  76. package/bin/libs/msg-fmt/mapping.js +0 -41
  77. package/bin/libs/msg-fmt/messages.d.ts +0 -35
  78. package/bin/libs/msg-fmt/messages.js +0 -305
  79. package/bin/libs/msg-fmt/terminal.d.ts +0 -15
  80. package/bin/libs/msg-fmt/terminal.js +0 -60
  81. package/bin/libs/msg-fmt/variants.d.ts +0 -11
  82. package/bin/libs/msg-fmt/variants.js +0 -52
  83. package/bin/libs/multiselect/multiselect-alias.d.ts +0 -2
  84. package/bin/libs/multiselect/multiselect-alias.js +0 -2
  85. package/bin/libs/multiselect/multiselect-prompt.d.ts +0 -2
  86. package/bin/libs/multiselect/multiselect-prompt.js +0 -340
  87. package/bin/libs/next-steps/next-steps.d.ts +0 -13
  88. package/bin/libs/next-steps/next-steps.js +0 -24
  89. package/bin/libs/number/number-mod.d.ts +0 -28
  90. package/bin/libs/number/number-mod.js +0 -234
  91. package/bin/libs/outro/outro-alias.d.ts +0 -3
  92. package/bin/libs/outro/outro-alias.js +0 -3
  93. package/bin/libs/outro/outro-mod.d.ts +0 -7
  94. package/bin/libs/outro/outro-mod.js +0 -49
  95. package/bin/libs/reliarg/reliarg-mod.d.ts +0 -76
  96. package/bin/libs/reliarg/reliarg-mod.js +0 -276
  97. package/bin/libs/results/results.d.ts +0 -7
  98. package/bin/libs/results/results.js +0 -27
  99. package/bin/libs/select/nummultiselect-prompt.d.ts +0 -6
  100. package/bin/libs/select/nummultiselect-prompt.js +0 -141
  101. package/bin/libs/select/numselect-prompt.d.ts +0 -7
  102. package/bin/libs/select/numselect-prompt.js +0 -111
  103. package/bin/libs/select/select-alias.d.ts +0 -9
  104. package/bin/libs/select/select-alias.js +0 -9
  105. package/bin/libs/select/select-prompt.d.ts +0 -5
  106. package/bin/libs/select/select-prompt.js +0 -311
  107. package/bin/libs/select/toggle-prompt.d.ts +0 -5
  108. package/bin/libs/select/toggle-prompt.js +0 -207
  109. package/bin/libs/spinner/spinner-impl.d.ts +0 -70
  110. package/bin/libs/spinner/spinner-impl.js +0 -336
  111. package/bin/libs/spinner/spinner-mod.d.ts +0 -167
  112. package/bin/libs/spinner/spinner-mod.js +0 -447
  113. package/bin/libs/utils/colorize.d.ts +0 -2
  114. package/bin/libs/utils/colorize.js +0 -122
  115. package/bin/libs/utils/errors.d.ts +0 -1
  116. package/bin/libs/utils/errors.js +0 -17
  117. package/bin/libs/utils/prevent.d.ts +0 -8
  118. package/bin/libs/utils/prevent.js +0 -62
  119. package/bin/libs/utils/prompt-end.d.ts +0 -8
  120. package/bin/libs/utils/prompt-end.js +0 -36
  121. package/bin/libs/utils/stream-text.d.ts +0 -18
  122. package/bin/libs/utils/stream-text.js +0 -138
  123. package/bin/libs/utils/system.d.ts +0 -6
  124. package/bin/libs/utils/system.js +0 -7
  125. package/bin/libs/utils/validate.d.ts +0 -21
  126. package/bin/libs/utils/validate.js +0 -17
  127. package/bin/libs/visual/visual-mod.ts.txt +0 -19
  128. package/bin/mod.d.ts +0 -50
  129. package/bin/mod.js +0 -127
  130. package/bin/types.d.ts +0 -372
  131. /package/{bin → dist/launcher}/types.js +0 -0
@@ -1,122 +0,0 @@
1
- import { re } from "@reliverse/relico";
2
- import { relinka } from "@reliverse/relinka";
3
- import gradient, { cristal, mind, passion, rainbow, vice } from "gradient-string";
4
- function stripAnsi(text) {
5
- return re.reset(text);
6
- }
7
- export function colorize(text, colorName, typography) {
8
- if (!colorName) return text;
9
- text = stripAnsi(text);
10
- let result = text;
11
- if (colorName.endsWith("Gradient")) {
12
- switch (colorName) {
13
- case "gradientGradient":
14
- result = gradient(["red", "yellow", "green", "cyan", "blue", "magenta"])(result);
15
- break;
16
- case "rainbowGradient":
17
- result = rainbow(result);
18
- break;
19
- case "cristalGradient":
20
- result = cristal(result);
21
- break;
22
- case "mindGradient":
23
- result = mind(result);
24
- break;
25
- case "passionGradient":
26
- result = passion(result);
27
- break;
28
- case "viceGradient":
29
- result = vice(result);
30
- break;
31
- case "retroGradient":
32
- result = gradient(["#ff8a00", "#e52e71"])(result);
33
- break;
34
- default:
35
- break;
36
- }
37
- return result;
38
- }
39
- switch (colorName) {
40
- case "inverse":
41
- result = re.inverse(` ${result} `);
42
- break;
43
- case "dim":
44
- result = re.dim(result);
45
- break;
46
- case "black":
47
- result = re.black(result);
48
- break;
49
- case "red":
50
- result = re.red(result);
51
- break;
52
- case "redBright":
53
- result = re.redBright(result);
54
- break;
55
- case "green":
56
- result = re.green(result);
57
- break;
58
- case "greenBright":
59
- result = re.greenBright(result);
60
- break;
61
- case "yellow":
62
- result = re.yellow(result);
63
- break;
64
- case "yellowBright":
65
- result = re.yellowBright(result);
66
- break;
67
- case "blue":
68
- result = re.blue(result);
69
- break;
70
- case "blueBright":
71
- result = re.blueBright(result);
72
- break;
73
- case "magenta":
74
- result = re.magenta(result);
75
- break;
76
- case "magentaBright":
77
- result = re.magentaBright(result);
78
- break;
79
- case "cyan":
80
- result = re.cyan(result);
81
- break;
82
- case "cyanBright":
83
- result = re.cyanBright(result);
84
- break;
85
- case "bgCyan":
86
- result = re.bgCyan(` ${result} `);
87
- break;
88
- case "bgCyanBright":
89
- result = re.bgCyanBright(` ${result} `);
90
- break;
91
- case "white":
92
- result = re.white(result);
93
- break;
94
- case "gray":
95
- result = re.gray(result);
96
- break;
97
- case "none":
98
- break;
99
- default:
100
- relinka("warn", `Warning: Unknown color "${colorName}"`);
101
- break;
102
- }
103
- if (typography) {
104
- switch (typography) {
105
- case "bold":
106
- result = re.bold(result);
107
- break;
108
- case "strikethrough":
109
- result = re.strikethrough(result);
110
- break;
111
- case "underline":
112
- result = re.underline(result);
113
- break;
114
- case "italic":
115
- result = re.italic(result);
116
- break;
117
- default:
118
- break;
119
- }
120
- }
121
- return result;
122
- }
@@ -1 +0,0 @@
1
- export declare const errorHandler: (error: Error, customMessage?: string) => never;
@@ -1,17 +0,0 @@
1
- import { relinka } from "@reliverse/relinka";
2
- export const errorHandler = (error, customMessage) => {
3
- const separator = "\u2500".repeat(71);
4
- relinka("error", `\u2502${separator}`);
5
- relinka("error", "\u2502 AN ERROR OCCURRED:\n\u2502 ", error.message);
6
- relinka("error", `\u2502${separator}`);
7
- if (customMessage) {
8
- relinka("error", `\u2502 ${customMessage}`);
9
- } else {
10
- relinka(
11
- "error",
12
- "\u2502 If this issue is related to @reliverse/rempts itself, please\n\u2502 report the details at https://github.com/reliverse/rempts/issues"
13
- );
14
- }
15
- relinka("error", `\u2570${separator}`);
16
- process.exit(1);
17
- };
@@ -1,8 +0,0 @@
1
- import type { PreventWrongTerminalSizeOptions } from "../../types";
2
- export declare function preventUnsupportedTTY(): void;
3
- /**
4
- * Prevents EISDIR errors when trying to read Windows home directory as a file
5
- * @param filePath The file path to check
6
- */
7
- export declare function preventWindowsHomeDirRoot(filePath: string): never | undefined;
8
- export declare function preventWrongTerminalSize({ isDev, shouldExit, minWidth, minHeight, sizeErrorDescription, }: PreventWrongTerminalSizeOptions): Promise<void>;
@@ -1,62 +0,0 @@
1
- import { homedir } from "node:os";
2
- import { re } from "@reliverse/relico";
3
- import { relinka } from "@reliverse/relinka";
4
- import terminalSize from "terminal-size";
5
- import { msg } from "../msg-fmt/messages.js";
6
- import { getExactTerminalWidth, getTerminalWidth } from "../msg-fmt/terminal.js";
7
- export function preventUnsupportedTTY() {
8
- if (!process.stdout.isTTY) {
9
- relinka(
10
- "warn",
11
- "\u2502 Your terminal does not support terminal's cursor manipulations.\n\u2502 It's recommended to use a terminal which supports TTY."
12
- );
13
- }
14
- }
15
- export function preventWindowsHomeDirRoot(filePath) {
16
- if (process.platform !== "win32") {
17
- return;
18
- }
19
- const home = homedir();
20
- if (filePath === home || filePath === `${home}\\`) {
21
- msg({
22
- type: "M_ERROR",
23
- title: re.redBright("Cannot operate in Windows home directory root"),
24
- content: `Please use a command like ${re.cyan(`cd ${home}\\Desktop`)} to move to a safe working directory first.`,
25
- contentColor: "redBright"
26
- });
27
- process.exit(1);
28
- }
29
- }
30
- export async function preventWrongTerminalSize({
31
- isDev = false,
32
- shouldExit = true,
33
- minWidth = 80,
34
- minHeight = 12,
35
- sizeErrorDescription = "Please increase the terminal size to run the application"
36
- }) {
37
- const size = terminalSize();
38
- const exactTerminalWidth = getExactTerminalWidth();
39
- const terminalWidth = getTerminalWidth();
40
- const errors = [];
41
- if (terminalWidth < minWidth) {
42
- errors.push(
43
- isDev ? `Oops! Terminal width is too small. Expected >${minWidth} | Current: ${terminalWidth} (Exact: ${exactTerminalWidth})` : `Oops! Terminal width is too small. Expected >${minWidth} | Current: ${terminalWidth}`
44
- );
45
- }
46
- if (size.rows < minHeight) {
47
- errors.push(
48
- `Oops! Terminal height is too small. Expected >${minHeight} | Current: ${size.rows}`
49
- );
50
- }
51
- if (errors.length > 0) {
52
- msg({
53
- type: "M_ERROR",
54
- title: re.redBright(errors.join("\n\u2502\u2502 ")),
55
- content: size.rows >= 7 && terminalWidth >= 70 ? sizeErrorDescription : "",
56
- contentColor: "redBright"
57
- });
58
- if (shouldExit) {
59
- process.exit(1);
60
- }
61
- }
62
- }
@@ -1,8 +0,0 @@
1
- import type { BorderColorName, ColorName, TypographyName, VariantName } from "../../types";
2
- /**
3
- * Ends the prompt by optionally displaying an end message and running the action if confirmed.
4
- * Preserves the last prompt state unless there's an endTitle.
5
- */
6
- export declare function completePrompt(prompt: "input" | "confirm" | "select" | "multiselect" | "toggle", isCtrlC: boolean, _endTitle: string | undefined, _endTitleColor: ColorName | undefined, _titleTypography: TypographyName | undefined, _titleVariant: VariantName | undefined, _border?: boolean, borderColor?: BorderColorName, action?: () => Promise<void>, value?: boolean): Promise<boolean>;
7
- export declare function renderEndLine(): void;
8
- export declare function renderEndLineInput(): void;
@@ -1,36 +0,0 @@
1
- import { re } from "@reliverse/relico";
2
- import { relinka } from "@reliverse/relinka";
3
- import { msg, symbols } from "../msg-fmt/messages.js";
4
- import { deleteLastLine, getExactTerminalWidth } from "../msg-fmt/terminal.js";
5
- export async function completePrompt(prompt, isCtrlC, _endTitle = "", _endTitleColor = "dim", _titleTypography = "none", _titleVariant, _border = true, borderColor = "dim", action, value) {
6
- if (action && value) {
7
- await action();
8
- }
9
- if (prompt === "input") {
10
- renderEndLineInput();
11
- return value ?? false;
12
- }
13
- if (isCtrlC) {
14
- renderEndLine();
15
- } else {
16
- deleteLastLine();
17
- msg({
18
- type: "M_BAR",
19
- borderColor
20
- });
21
- renderEndLineInput();
22
- }
23
- return value ?? false;
24
- }
25
- export function renderEndLine() {
26
- const lineLength = getExactTerminalWidth() - 6;
27
- relinka("null", re.dim(symbols.middle));
28
- relinka("null", re.dim(`${symbols.end}${symbols.line.repeat(lineLength)}\u22B1`));
29
- relinka("null", "");
30
- }
31
- export function renderEndLineInput() {
32
- const lineLength = getExactTerminalWidth() - 6;
33
- relinka("null", "");
34
- relinka("null", re.dim(`${symbols.end}${symbols.line.repeat(lineLength)}\u22B1`));
35
- relinka("null", "");
36
- }
@@ -1,18 +0,0 @@
1
- import type { BorderColorName, StreamTextOptions } from "../../types";
2
- /**
3
- * Simulates streaming text output in the console, character by character
4
- */
5
- export declare function streamText({ text, delay, showCursor, color, newline, clearLine, onProgress, }: StreamTextOptions): Promise<void>;
6
- /**
7
- * Simulates streaming text output in a message box
8
- */
9
- export declare function streamTextBox({ text, delay, color, borderColor, }: Omit<StreamTextOptions, "showCursor" | "newline" | "clearLine"> & {
10
- borderColor?: BorderColorName;
11
- }): Promise<void>;
12
- /**
13
- * Simulates streaming text output with a loading spinner using ora
14
- */
15
- export declare function streamTextWithSpinner({ text, delay, color, spinnerFrames, spinnerDelay, }: StreamTextOptions & {
16
- spinnerFrames?: string[];
17
- spinnerDelay?: number;
18
- }): Promise<void>;
@@ -1,138 +0,0 @@
1
- import { stdout } from "node:process";
2
- import { re } from "@reliverse/relico";
3
- import { cursor } from "sisteransi";
4
- import terminalSize from "terminal-size";
5
- import wrapAnsi from "wrap-ansi";
6
- import { toBaseColor } from "../msg-fmt/colors.js";
7
- import { colorMap } from "../msg-fmt/mapping.js";
8
- import { msg } from "../msg-fmt/messages.js";
9
- import { ora } from "../spinner/spinner-impl.js";
10
- function getTerminalWidth() {
11
- return terminalSize().columns;
12
- }
13
- let isStartOfLine = true;
14
- let isFirstLine = true;
15
- function stripAnsi(text) {
16
- return text.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
17
- }
18
- function extractAnsi(text) {
19
- return text.match(/\x1b\[[0-9;]*[a-zA-Z]/g) || [];
20
- }
21
- function wrapWithBar(text, isFirst, color) {
22
- const prefix = isFirst ? re.green("\u25C6") : re.dim("\u2502");
23
- const ansiCodes = extractAnsi(text);
24
- const cleanText = stripAnsi(text);
25
- const coloredText = color ? colorMap[color](cleanText) : re.dim(cleanText);
26
- const finalText = ansiCodes.length > 0 ? ansiCodes.join("") + coloredText : coloredText;
27
- return `${prefix} ${finalText}`;
28
- }
29
- function wrapText(text) {
30
- const width = getTerminalWidth();
31
- return wrapAnsi(text, width - 4, { hard: false, trim: true });
32
- }
33
- export async function streamText({
34
- text,
35
- delay = 50,
36
- showCursor = false,
37
- color,
38
- newline = true,
39
- clearLine = false,
40
- onProgress
41
- }) {
42
- if (!showCursor) {
43
- stdout.write(cursor.hide);
44
- }
45
- if (clearLine) {
46
- stdout.write("\r\x1B[K");
47
- }
48
- const wrappedText = wrapText(text);
49
- isFirstLine = true;
50
- let buffer = "";
51
- for (const char of wrappedText) {
52
- if (char === "\n") {
53
- if (buffer) {
54
- const output = isStartOfLine ? wrapWithBar(buffer, isFirstLine, color) : color ? colorMap[color](buffer) : re.dim(buffer);
55
- stdout.write(output);
56
- buffer = "";
57
- }
58
- stdout.write(char);
59
- isStartOfLine = true;
60
- isFirstLine = false;
61
- continue;
62
- }
63
- buffer += char;
64
- if (!char.includes("\x1B[") && buffer) {
65
- const output = isStartOfLine ? wrapWithBar(buffer, isFirstLine, color) : color ? colorMap[color](buffer) : re.dim(buffer);
66
- stdout.write(output);
67
- await new Promise((resolve) => setTimeout(resolve, delay));
68
- isStartOfLine = false;
69
- buffer = "";
70
- if (onProgress) {
71
- onProgress(output);
72
- }
73
- }
74
- }
75
- if (buffer) {
76
- const output = isStartOfLine ? wrapWithBar(buffer, isFirstLine, color) : color ? colorMap[color](buffer) : re.dim(buffer);
77
- stdout.write(output);
78
- if (onProgress) {
79
- onProgress(output);
80
- }
81
- }
82
- if (newline) {
83
- stdout.write("\n");
84
- }
85
- if (!showCursor) {
86
- stdout.write(cursor.show);
87
- }
88
- }
89
- export async function streamTextBox({
90
- text,
91
- delay = 50,
92
- color,
93
- borderColor = "dim"
94
- }) {
95
- stdout.write(cursor.hide);
96
- msg({
97
- type: "M_START",
98
- title: "",
99
- borderColor
100
- });
101
- await streamText({
102
- text,
103
- delay,
104
- showCursor: false,
105
- ...color !== void 0 && { color },
106
- newline: false,
107
- clearLine: false
108
- });
109
- msg({
110
- type: "M_END",
111
- borderColor
112
- });
113
- stdout.write(cursor.show);
114
- }
115
- export async function streamTextWithSpinner({
116
- text,
117
- delay = 50,
118
- color = "cyan",
119
- spinnerFrames,
120
- spinnerDelay
121
- }) {
122
- let currentText = "";
123
- const baseColor = toBaseColor(color);
124
- const spinner = ora({
125
- text: currentText,
126
- ...baseColor !== void 0 && { color: baseColor },
127
- spinner: spinnerFrames ? {
128
- frames: spinnerFrames,
129
- interval: spinnerDelay ?? 80
130
- } : "dots"
131
- }).start();
132
- for (const char of text) {
133
- currentText += char;
134
- spinner.text = color ? colorMap[color](currentText) : currentText;
135
- await new Promise((resolve) => setTimeout(resolve, delay));
136
- }
137
- spinner.stop();
138
- }
@@ -1,6 +0,0 @@
1
- export declare const pm: import("@reliverse/reltime").PkgManagerInfo;
2
- export declare const reliversePrompts: {
3
- name: string;
4
- version: string;
5
- description: string;
6
- };
@@ -1,7 +0,0 @@
1
- import { getUserPkgManager } from "@reliverse/reltime";
2
- export const pm = await getUserPkgManager();
3
- export const reliversePrompts = {
4
- name: "@reliverse/rempts",
5
- version: "1.6.0",
6
- description: "@reliverse/rempts is a powerful library that enables seamless, typesafe, and resilient prompts for command-line applications. Crafted with simplicity and elegance, it provides developers with an intuitive and robust way to build interactive CLIs."
7
- };
@@ -1,21 +0,0 @@
1
- /**
2
- * Checks if the terminal is interactive
3
- */
4
- export declare function isTerminalInteractive(input?: NodeJS.ReadStream & {
5
- fd: 0;
6
- }): boolean;
7
- /**
8
- * Validates a name against allowed characters
9
- */
10
- interface ValidationResult {
11
- isValid: boolean;
12
- message?: string;
13
- }
14
- export declare function isValidName(name: string): ValidationResult;
15
- /**
16
- * Cleans up project name from config by removing scope and invalid characters.
17
- * For paths with multiple segments (e.g. "@org/subpath/cli"), takes the last segment.
18
- * This also ensures complex cases (e.g. "@some@weird/path/the-name!" returns "the-name").
19
- */
20
- export declare function normalizeName(name: string): string;
21
- export {};
@@ -1,17 +0,0 @@
1
- export function isTerminalInteractive(input = process.stdin) {
2
- return Boolean(input.isTTY);
3
- }
4
- export function isValidName(name) {
5
- if (!/^[a-zA-Z0-9-]+$/.test(name)) {
6
- return {
7
- isValid: false,
8
- message: "Project name can only contain latin letters, numbers and hyphens"
9
- };
10
- }
11
- return { isValid: true };
12
- }
13
- export function normalizeName(name) {
14
- const segments = name.split("/");
15
- const lastSegment = segments[segments.length - 1] ?? name;
16
- return lastSegment.replace(/[^a-zA-Z0-9-]/g, "");
17
- }
@@ -1,19 +0,0 @@
1
- import { relinka } from "@reliverse/relinka";
2
- // import figlet, { type Fonts } from "figlet";
3
-
4
- export async function createAsciiArt({
5
- message,
6
- font = "Standard",
7
- clearConsole = false,
8
- }: {
9
- message: string;
10
- font?: Fonts;
11
- clearConsole?: boolean;
12
- }): Promise<void> {
13
- if (clearConsole) {
14
- relinka("clear", "");
15
- }
16
-
17
- const asciiArt = figlet.textSync(message, { font });
18
- relinka("log", asciiArt);
19
- }
package/bin/mod.d.ts DELETED
@@ -1,50 +0,0 @@
1
- export { anykeyPrompt } from "./libs/anykey/anykey-mod";
2
- export type { CancelValue } from "./libs/cancel/cancel";
3
- export { block, CANCEL, cancel, createCancel, getColumns, isCancel, isWindows, setRawMode, } from "./libs/cancel/cancel";
4
- export { confirm } from "./libs/confirm/confirm-alias";
5
- export { confirmPrompt } from "./libs/confirm/confirm-mod";
6
- export { datePrompt } from "./libs/date/date";
7
- export { startEditor } from "./libs/editor/editor-mod";
8
- export { fallbackSymbols, figures, mainSymbols, } from "./libs/figures/figures-mod";
9
- export type { GroupContext, GroupOptions, GroupStep, GroupSteps, } from "./libs/group/group-mod";
10
- export { createMultiStep, createStep, group } from "./libs/group/group-mod";
11
- export { input, password, text } from "./libs/input/input-alias";
12
- export { inputPrompt } from "./libs/input/input-mod";
13
- export { intro, startPrompt } from "./libs/intro/intro-alias";
14
- export { introPrompt } from "./libs/intro/intro-mod";
15
- export type { CallCmdOptions } from "./libs/launcher/command-runner";
16
- export { callCmd } from "./libs/launcher/command-runner";
17
- export { runMain } from "./libs/launcher/launcher-alias";
18
- export { createCli, defineArgs, defineCommand, showUsage, } from "./libs/launcher/launcher-mod";
19
- export type { ArgDefinition, ArgDefinitions, ArrayArgDefinition, BaseArgDefinition, BaseArgProps, BooleanArgDefinition, Command, CommandContext, CommandHook, CommandMeta, CommandRun, CommandSpec, CommandsMap, DefineCommandOptions, EmptyArgs, FileBasedOptions, InferArgTypes, NumberArgDefinition, PositionalArgDefinition, StringArgDefinition, } from "./libs/launcher/launcher-types";
20
- export { log } from "./libs/log/log-alias";
21
- export { toBaseColor, toSolidColor } from "./libs/msg-fmt/colors";
22
- export { colorMap, typographyMap } from "./libs/msg-fmt/mapping";
23
- export { bar, fmt, msg, msgUndo, msgUndoAll, printLineBar, symbols, } from "./libs/msg-fmt/messages";
24
- export { breakLines, countLines, deleteLastLine, deleteLastLines, getExactTerminalWidth, getTerminalHeight, getTerminalWidth, removeCursor, restoreCursor, } from "./libs/msg-fmt/terminal";
25
- export { applyVariant, isValidVariant, variantMap, } from "./libs/msg-fmt/variants";
26
- export { multiselect } from "./libs/multiselect/multiselect-alias";
27
- export { multiselectPrompt } from "./libs/multiselect/multiselect-prompt";
28
- export { nextStepsPrompt } from "./libs/next-steps/next-steps";
29
- export { numberPrompt } from "./libs/number/number-mod";
30
- export { endPrompt, outro } from "./libs/outro/outro-alias";
31
- export { outroPrompt } from "./libs/outro/outro-mod";
32
- export type { ResultsType } from "./libs/results/results";
33
- export { resultPrompt } from "./libs/results/results";
34
- export { numMultiSelectPrompt } from "./libs/select/nummultiselect-prompt";
35
- export { numSelectPrompt } from "./libs/select/numselect-prompt";
36
- export { select, selectSimple } from "./libs/select/select-alias";
37
- export { selectPrompt } from "./libs/select/select-prompt";
38
- export { togglePrompt } from "./libs/select/toggle-prompt";
39
- export type { Ora, OraOptions, OraPromiseOptions, StopAndPersistOptions, } from "./libs/spinner/spinner-impl";
40
- export { error, info, ora, oraPromise, randomSpinner, spinners, success, warning, } from "./libs/spinner/spinner-impl";
41
- export type { FileProgressOptions, SimpleSpinner, SpinnerGroupOptions, SpinnerOptions, } from "./libs/spinner/spinner-mod";
42
- export { createBuildSpinner, createFileProgressSpinner, createMultiStepSpinner, createSpinner, createSpinnerGroup, createTimedSpinner, createTransferSpinner, defaultSpinnerOptions, formatSpinnerBytes, formatSpinnerElapsed, formatSpinnerTiming, isSpinnerEnabled, isSpinnerRunning, safeStopSpinner, stopAndPersist, updateSpinnerText, withEnhancedSpinner, withSpinner, withSpinnerPromise, } from "./libs/spinner/spinner-mod";
43
- export { colorize } from "./libs/utils/colorize";
44
- export { errorHandler } from "./libs/utils/errors";
45
- export { preventUnsupportedTTY, preventWindowsHomeDirRoot, preventWrongTerminalSize, } from "./libs/utils/prevent";
46
- export { completePrompt, renderEndLine, renderEndLineInput, } from "./libs/utils/prompt-end";
47
- export { streamText, streamTextBox, streamTextWithSpinner, } from "./libs/utils/stream-text";
48
- export { pm, reliversePrompts } from "./libs/utils/system";
49
- export { isTerminalInteractive, isValidName, normalizeName, } from "./libs/utils/validate";
50
- export type { AllKinds, BorderColorName, ChoiceOptions, ColorName, ConfirmPromptOptions, DatePromptOptions, EditorExitResult, FmtMsgOptions, InputPromptOptions, MessageConfig, MessageKind, MsgConfig, MsgType, MultiselectPromptParams, OutputColor, PreventWrongTerminalSizeOptions, ProgressBar, ProgressBarOptions, PromptOptions, PromptType, RenderParams, SelectOption, SelectPromptParams, SeparatorOption, StandardColor, StreamOptions, StreamTextOptions, SymbolName, Symbols, TogglePromptParams, TypographyName, VariantName, } from "./types";
package/bin/mod.js DELETED
@@ -1,127 +0,0 @@
1
- export { anykeyPrompt } from "./libs/anykey/anykey-mod.js";
2
- export {
3
- block,
4
- CANCEL,
5
- cancel,
6
- createCancel,
7
- getColumns,
8
- isCancel,
9
- isWindows,
10
- setRawMode
11
- } from "./libs/cancel/cancel.js";
12
- export { confirm } from "./libs/confirm/confirm-alias.js";
13
- export { confirmPrompt } from "./libs/confirm/confirm-mod.js";
14
- export { datePrompt } from "./libs/date/date.js";
15
- export { startEditor } from "./libs/editor/editor-mod.js";
16
- export {
17
- fallbackSymbols,
18
- figures,
19
- mainSymbols
20
- } from "./libs/figures/figures-mod.js";
21
- export { createMultiStep, createStep, group } from "./libs/group/group-mod.js";
22
- export { input, password, text } from "./libs/input/input-alias.js";
23
- export { inputPrompt } from "./libs/input/input-mod.js";
24
- export { intro, startPrompt } from "./libs/intro/intro-alias.js";
25
- export { introPrompt } from "./libs/intro/intro-mod.js";
26
- export { callCmd } from "./libs/launcher/command-runner.js";
27
- export { runMain } from "./libs/launcher/launcher-alias.js";
28
- export {
29
- createCli,
30
- defineArgs,
31
- defineCommand,
32
- showUsage
33
- } from "./libs/launcher/launcher-mod.js";
34
- export { log } from "./libs/log/log-alias.js";
35
- export { toBaseColor, toSolidColor } from "./libs/msg-fmt/colors.js";
36
- export { colorMap, typographyMap } from "./libs/msg-fmt/mapping.js";
37
- export {
38
- bar,
39
- fmt,
40
- msg,
41
- msgUndo,
42
- msgUndoAll,
43
- printLineBar,
44
- symbols
45
- } from "./libs/msg-fmt/messages.js";
46
- export {
47
- breakLines,
48
- countLines,
49
- deleteLastLine,
50
- deleteLastLines,
51
- getExactTerminalWidth,
52
- getTerminalHeight,
53
- getTerminalWidth,
54
- removeCursor,
55
- restoreCursor
56
- } from "./libs/msg-fmt/terminal.js";
57
- export {
58
- applyVariant,
59
- isValidVariant,
60
- variantMap
61
- } from "./libs/msg-fmt/variants.js";
62
- export { multiselect } from "./libs/multiselect/multiselect-alias.js";
63
- export { multiselectPrompt } from "./libs/multiselect/multiselect-prompt.js";
64
- export { nextStepsPrompt } from "./libs/next-steps/next-steps.js";
65
- export { numberPrompt } from "./libs/number/number-mod.js";
66
- export { endPrompt, outro } from "./libs/outro/outro-alias.js";
67
- export { outroPrompt } from "./libs/outro/outro-mod.js";
68
- export { resultPrompt } from "./libs/results/results.js";
69
- export { numMultiSelectPrompt } from "./libs/select/nummultiselect-prompt.js";
70
- export { numSelectPrompt } from "./libs/select/numselect-prompt.js";
71
- export { select, selectSimple } from "./libs/select/select-alias.js";
72
- export { selectPrompt } from "./libs/select/select-prompt.js";
73
- export { togglePrompt } from "./libs/select/toggle-prompt.js";
74
- export {
75
- error,
76
- info,
77
- ora,
78
- oraPromise,
79
- randomSpinner,
80
- spinners,
81
- success,
82
- warning
83
- } from "./libs/spinner/spinner-impl.js";
84
- export {
85
- createBuildSpinner,
86
- createFileProgressSpinner,
87
- createMultiStepSpinner,
88
- createSpinner,
89
- createSpinnerGroup,
90
- createTimedSpinner,
91
- createTransferSpinner,
92
- defaultSpinnerOptions,
93
- formatSpinnerBytes,
94
- formatSpinnerElapsed,
95
- formatSpinnerTiming,
96
- isSpinnerEnabled,
97
- isSpinnerRunning,
98
- safeStopSpinner,
99
- stopAndPersist,
100
- updateSpinnerText,
101
- withEnhancedSpinner,
102
- withSpinner,
103
- withSpinnerPromise
104
- } from "./libs/spinner/spinner-mod.js";
105
- export { colorize } from "./libs/utils/colorize.js";
106
- export { errorHandler } from "./libs/utils/errors.js";
107
- export {
108
- preventUnsupportedTTY,
109
- preventWindowsHomeDirRoot,
110
- preventWrongTerminalSize
111
- } from "./libs/utils/prevent.js";
112
- export {
113
- completePrompt,
114
- renderEndLine,
115
- renderEndLineInput
116
- } from "./libs/utils/prompt-end.js";
117
- export {
118
- streamText,
119
- streamTextBox,
120
- streamTextWithSpinner
121
- } from "./libs/utils/stream-text.js";
122
- export { pm, reliversePrompts } from "./libs/utils/system.js";
123
- export {
124
- isTerminalInteractive,
125
- isValidName,
126
- normalizeName
127
- } from "./libs/utils/validate.js";