@seedcli/print 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/box.d.ts +26 -0
- package/dist/box.d.ts.map +1 -0
- package/dist/box.js +30 -0
- package/dist/box.js.map +1 -0
- package/dist/colors.d.ts +3 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +3 -0
- package/dist/colors.js.map +1 -0
- package/dist/divider.d.ts +9 -0
- package/dist/divider.d.ts.map +1 -0
- package/dist/divider.js +19 -0
- package/dist/divider.js.map +1 -0
- package/dist/figlet.d.ts +9 -0
- package/dist/figlet.d.ts.map +1 -0
- package/dist/figlet.js +12 -0
- package/dist/figlet.js.map +1 -0
- package/dist/format.d.ts +8 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +44 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/keyValue.d.ts +12 -0
- package/dist/keyValue.d.ts.map +1 -0
- package/dist/keyValue.js +20 -0
- package/dist/keyValue.js.map +1 -0
- package/dist/log.d.ts +15 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +76 -0
- package/dist/log.js.map +1 -0
- package/dist/progress.d.ts +13 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +27 -0
- package/dist/progress.js.map +1 -0
- package/dist/spinner.d.ts +14 -0
- package/dist/spinner.d.ts.map +1 -0
- package/dist/spinner.js +34 -0
- package/dist/spinner.js.map +1 -0
- package/dist/table.d.ts +16 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +170 -0
- package/dist/table.js.map +1 -0
- package/dist/tree.d.ts +10 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +24 -0
- package/dist/tree.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +51 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Seed CLI Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/box.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface BoxOptions {
|
|
2
|
+
title?: string;
|
|
3
|
+
titleAlignment?: "left" | "center" | "right";
|
|
4
|
+
padding?: number | {
|
|
5
|
+
top?: number;
|
|
6
|
+
right?: number;
|
|
7
|
+
bottom?: number;
|
|
8
|
+
left?: number;
|
|
9
|
+
};
|
|
10
|
+
margin?: number | {
|
|
11
|
+
top?: number;
|
|
12
|
+
right?: number;
|
|
13
|
+
bottom?: number;
|
|
14
|
+
left?: number;
|
|
15
|
+
};
|
|
16
|
+
borderStyle?: "single" | "double" | "round" | "bold" | "singleDouble" | "doubleSingle" | "classic" | "arrow" | "none";
|
|
17
|
+
borderColor?: string;
|
|
18
|
+
backgroundColor?: string;
|
|
19
|
+
textAlignment?: "left" | "center" | "right";
|
|
20
|
+
width?: number;
|
|
21
|
+
fullscreen?: boolean;
|
|
22
|
+
dimBorder?: boolean;
|
|
23
|
+
float?: "left" | "center" | "right";
|
|
24
|
+
}
|
|
25
|
+
export declare function box(text: string, options?: BoxOptions): string;
|
|
26
|
+
//# sourceMappingURL=box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,WAAW,CAAC,EACT,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,cAAc,GACd,cAAc,GACd,SAAS,GACT,OAAO,GACP,MAAM,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACpC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAkB9D"}
|
package/dist/box.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import boxen from "boxen";
|
|
2
|
+
export function box(text, options) {
|
|
3
|
+
const opts = {
|
|
4
|
+
borderStyle: options?.borderStyle ?? "round",
|
|
5
|
+
};
|
|
6
|
+
if (options?.title !== undefined)
|
|
7
|
+
opts.title = options.title;
|
|
8
|
+
if (options?.titleAlignment !== undefined)
|
|
9
|
+
opts.titleAlignment = options.titleAlignment;
|
|
10
|
+
if (options?.padding !== undefined)
|
|
11
|
+
opts.padding = options.padding;
|
|
12
|
+
if (options?.margin !== undefined)
|
|
13
|
+
opts.margin = options.margin;
|
|
14
|
+
if (options?.borderColor !== undefined)
|
|
15
|
+
opts.borderColor = options.borderColor;
|
|
16
|
+
if (options?.backgroundColor !== undefined)
|
|
17
|
+
opts.backgroundColor = options.backgroundColor;
|
|
18
|
+
if (options?.textAlignment !== undefined)
|
|
19
|
+
opts.textAlignment = options.textAlignment;
|
|
20
|
+
if (options?.width !== undefined)
|
|
21
|
+
opts.width = options.width;
|
|
22
|
+
if (options?.fullscreen !== undefined)
|
|
23
|
+
opts.fullscreen = options.fullscreen;
|
|
24
|
+
if (options?.dimBorder !== undefined)
|
|
25
|
+
opts.dimBorder = options.dimBorder;
|
|
26
|
+
if (options?.float !== undefined)
|
|
27
|
+
opts.float = options.float;
|
|
28
|
+
return boxen(text, opts);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=box.js.map
|
package/dist/box.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,OAAoB;IACrD,MAAM,IAAI,GAA4B;QACrC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,OAAO;KAC5C,CAAC;IAEF,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7D,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IACxF,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnE,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAChE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC/E,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAC3F,IAAI,OAAO,EAAE,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IACrF,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7D,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5E,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACzE,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE7D,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/colors.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC"}
|
package/dist/colors.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../src/divider.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAkBxD"}
|
package/dist/divider.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
export function divider(options) {
|
|
3
|
+
const width = options?.width ?? process.stdout.columns ?? 80;
|
|
4
|
+
const char = options?.char ?? "─";
|
|
5
|
+
const color = options?.color ?? chalk.gray;
|
|
6
|
+
const _padding = options?.padding ?? 1;
|
|
7
|
+
if (!options?.title) {
|
|
8
|
+
return color(char.repeat(width));
|
|
9
|
+
}
|
|
10
|
+
const title = ` ${options.title} `;
|
|
11
|
+
const titleLen = title.length;
|
|
12
|
+
const remaining = width - titleLen;
|
|
13
|
+
if (remaining <= 0)
|
|
14
|
+
return color(title);
|
|
15
|
+
const left = Math.floor(remaining / 2);
|
|
16
|
+
const right = remaining - left;
|
|
17
|
+
return color(char.repeat(left)) + title + color(char.repeat(right));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.js","sourceRoot":"","sources":["../src/divider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC/C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7D,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/figlet.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface FigletOptions {
|
|
2
|
+
font?: string;
|
|
3
|
+
horizontalLayout?: "default" | "full" | "fitted" | "controlled smushing" | "universal smushing";
|
|
4
|
+
verticalLayout?: "default" | "full" | "fitted" | "controlled smushing" | "universal smushing";
|
|
5
|
+
width?: number;
|
|
6
|
+
whitespaceBreak?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function ascii(text: string, options?: FigletOptions): string;
|
|
9
|
+
//# sourceMappingURL=figlet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figlet.d.ts","sourceRoot":"","sources":["../src/figlet.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;IAChG,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAQnE"}
|
package/dist/figlet.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
2
|
+
import figlet from "figlet";
|
|
3
|
+
export function ascii(text, options) {
|
|
4
|
+
return figlet.textSync(text, {
|
|
5
|
+
font: options?.font ?? "Standard",
|
|
6
|
+
horizontalLayout: options?.horizontalLayout,
|
|
7
|
+
verticalLayout: options?.verticalLayout,
|
|
8
|
+
width: options?.width,
|
|
9
|
+
whitespaceBreak: options?.whitespaceBreak,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=figlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figlet.js","sourceRoot":"","sources":["../src/figlet.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,OAAuB;IAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC5B,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU;QACjC,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;QAC3C,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,KAAK,EAAE,OAAO,EAAE,KAAK;QACrB,eAAe,EAAE,OAAO,EAAE,eAAe;KACd,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function indent(text: string, spaces?: number): string;
|
|
2
|
+
export declare function wrap(text: string, width?: number): string;
|
|
3
|
+
export declare function columns(items: string[], options?: {
|
|
4
|
+
width?: number;
|
|
5
|
+
padding?: number;
|
|
6
|
+
columns?: number;
|
|
7
|
+
}): string;
|
|
8
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAMvD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAuBrD;AAED,wBAAgB,OAAO,CACtB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,MAAM,CAeR"}
|
package/dist/format.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function indent(text, spaces = 2) {
|
|
2
|
+
const pad = " ".repeat(spaces);
|
|
3
|
+
return text
|
|
4
|
+
.split("\n")
|
|
5
|
+
.map((line) => pad + line)
|
|
6
|
+
.join("\n");
|
|
7
|
+
}
|
|
8
|
+
export function wrap(text, width = 80) {
|
|
9
|
+
if (text.length <= width)
|
|
10
|
+
return text;
|
|
11
|
+
const words = text.split(" ");
|
|
12
|
+
const lines = [];
|
|
13
|
+
let currentLine = "";
|
|
14
|
+
for (const word of words) {
|
|
15
|
+
if (currentLine.length === 0) {
|
|
16
|
+
currentLine = word;
|
|
17
|
+
}
|
|
18
|
+
else if (currentLine.length + 1 + word.length <= width) {
|
|
19
|
+
currentLine += ` ${word}`;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
lines.push(currentLine);
|
|
23
|
+
currentLine = word;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (currentLine.length > 0) {
|
|
27
|
+
lines.push(currentLine);
|
|
28
|
+
}
|
|
29
|
+
return lines.join("\n");
|
|
30
|
+
}
|
|
31
|
+
export function columns(items, options) {
|
|
32
|
+
const termWidth = options?.width ?? process.stdout.columns ?? 80;
|
|
33
|
+
const padding = options?.padding ?? 2;
|
|
34
|
+
const maxItemLen = Math.max(...items.map((i) => i.length), 0);
|
|
35
|
+
const colWidth = maxItemLen + padding;
|
|
36
|
+
const numCols = options?.columns ?? Math.max(1, Math.floor(termWidth / colWidth));
|
|
37
|
+
const lines = [];
|
|
38
|
+
for (let i = 0; i < items.length; i += numCols) {
|
|
39
|
+
const row = items.slice(i, i + numCols);
|
|
40
|
+
lines.push(row.map((item) => item.padEnd(colWidth)).join(""));
|
|
41
|
+
}
|
|
42
|
+
return lines.join("\n");
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,MAAM,GAAG,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAI;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,KAAK,GAAG,EAAE;IAC5C,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAC1D,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC;QACpB,CAAC;IACF,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,OAAO,CACtB,KAAe,EACf,OAAgE;IAEhE,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type { BoxOptions } from "./box.js";
|
|
2
|
+
export { box } from "./box.js";
|
|
3
|
+
export { colors } from "./colors.js";
|
|
4
|
+
export type { DividerOptions } from "./divider.js";
|
|
5
|
+
export { divider } from "./divider.js";
|
|
6
|
+
export type { FigletOptions } from "./figlet.js";
|
|
7
|
+
export { ascii, ascii as figlet } from "./figlet.js";
|
|
8
|
+
export { columns, indent, wrap } from "./format.js";
|
|
9
|
+
export type { KeyValueOptions, KeyValuePair } from "./keyValue.js";
|
|
10
|
+
export { keyValue } from "./keyValue.js";
|
|
11
|
+
export { debug, error, highlight, info, muted, newline, print, setDebugMode, success, warning, } from "./log.js";
|
|
12
|
+
export type { ProgressBar, ProgressBarOptions } from "./progress.js";
|
|
13
|
+
export { progressBar } from "./progress.js";
|
|
14
|
+
export type { Spinner } from "./spinner.js";
|
|
15
|
+
export { spin } from "./spinner.js";
|
|
16
|
+
export type { Alignment, BorderStyle, ColumnConfig, TableOptions } from "./table.js";
|
|
17
|
+
export { table } from "./table.js";
|
|
18
|
+
export type { TreeNode, TreeOptions } from "./tree.js";
|
|
19
|
+
export { tree } from "./tree.js";
|
|
20
|
+
export type { PrintModule } from "./types.js";
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,GACP,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { box } from "./box.js";
|
|
2
|
+
export { colors } from "./colors.js";
|
|
3
|
+
export { divider } from "./divider.js";
|
|
4
|
+
export { ascii, ascii as figlet } from "./figlet.js";
|
|
5
|
+
export { columns, indent, wrap } from "./format.js";
|
|
6
|
+
export { keyValue } from "./keyValue.js";
|
|
7
|
+
export { debug, error, highlight, info, muted, newline, print, setDebugMode, success, warning, } from "./log.js";
|
|
8
|
+
export { progressBar } from "./progress.js";
|
|
9
|
+
export { spin } from "./spinner.js";
|
|
10
|
+
export { table } from "./table.js";
|
|
11
|
+
export { tree } from "./tree.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,GACP,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface KeyValueOptions {
|
|
2
|
+
separator?: string;
|
|
3
|
+
keyColor?: (text: string) => string;
|
|
4
|
+
valueColor?: (text: string) => string;
|
|
5
|
+
indent?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface KeyValuePair {
|
|
8
|
+
key: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function keyValue(pairs: KeyValuePair[] | Record<string, string>, options?: KeyValueOptions): string;
|
|
12
|
+
//# sourceMappingURL=keyValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValue.d.ts","sourceRoot":"","sources":["../src/keyValue.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,QAAQ,CACvB,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9C,OAAO,CAAC,EAAE,eAAe,GACvB,MAAM,CAoBR"}
|
package/dist/keyValue.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
export function keyValue(pairs, options) {
|
|
3
|
+
const separator = options?.separator ?? ": ";
|
|
4
|
+
const keyColor = options?.keyColor ?? chalk.bold;
|
|
5
|
+
const valueColor = options?.valueColor ?? ((t) => t);
|
|
6
|
+
const indentStr = " ".repeat(options?.indent ?? 0);
|
|
7
|
+
const entries = Array.isArray(pairs)
|
|
8
|
+
? pairs
|
|
9
|
+
: Object.entries(pairs).map(([key, value]) => ({ key, value }));
|
|
10
|
+
if (entries.length === 0)
|
|
11
|
+
return "";
|
|
12
|
+
const maxKeyLen = Math.max(...entries.map((e) => e.key.length));
|
|
13
|
+
return entries
|
|
14
|
+
.map((entry) => {
|
|
15
|
+
const paddedKey = entry.key.padEnd(maxKeyLen);
|
|
16
|
+
return `${indentStr}${keyColor(paddedKey)}${separator}${valueColor(entry.value)}`;
|
|
17
|
+
})
|
|
18
|
+
.join("\n");
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=keyValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValue.js","sourceRoot":"","sources":["../src/keyValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,UAAU,QAAQ,CACvB,KAA8C,EAC9C,OAAyB;IAEzB,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IAC7C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAmB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,OAAO,OAAO;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACnF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PrintModule } from "./types.js";
|
|
2
|
+
export declare function setDebugMode(enabled: boolean): void;
|
|
3
|
+
export declare function info(message: string): void;
|
|
4
|
+
export declare function success(message: string): void;
|
|
5
|
+
export declare function warning(message: string): void;
|
|
6
|
+
export declare function error(message: string): void;
|
|
7
|
+
export declare function debug(message: string): void;
|
|
8
|
+
export declare function highlight(message: string): void;
|
|
9
|
+
export declare function muted(message: string): void;
|
|
10
|
+
export declare function newline(count?: number): void;
|
|
11
|
+
/**
|
|
12
|
+
* The print module object — passed to commands via the toolbox.
|
|
13
|
+
*/
|
|
14
|
+
export declare const print: PrintModule;
|
|
15
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,OAAO,CAAC,KAAK,SAAI,GAAG,IAAI,CAIvC;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,WA8BnB,CAAC"}
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { box as renderBox } from "./box.js";
|
|
3
|
+
import { divider as renderDivider } from "./divider.js";
|
|
4
|
+
import { ascii as renderAscii } from "./figlet.js";
|
|
5
|
+
import { keyValue as renderKeyValue } from "./keyValue.js";
|
|
6
|
+
import { progressBar } from "./progress.js";
|
|
7
|
+
import { spin } from "./spinner.js";
|
|
8
|
+
import { table as renderTable } from "./table.js";
|
|
9
|
+
import { tree as renderTree } from "./tree.js";
|
|
10
|
+
let debugEnabled = false;
|
|
11
|
+
export function setDebugMode(enabled) {
|
|
12
|
+
debugEnabled = enabled;
|
|
13
|
+
}
|
|
14
|
+
export function info(message) {
|
|
15
|
+
console.log(message);
|
|
16
|
+
}
|
|
17
|
+
export function success(message) {
|
|
18
|
+
console.log(chalk.green(`✔ ${message}`));
|
|
19
|
+
}
|
|
20
|
+
export function warning(message) {
|
|
21
|
+
console.log(chalk.yellow(`⚠ ${message}`));
|
|
22
|
+
}
|
|
23
|
+
export function error(message) {
|
|
24
|
+
console.error(chalk.red(`✖ ${message}`));
|
|
25
|
+
}
|
|
26
|
+
export function debug(message) {
|
|
27
|
+
if (debugEnabled) {
|
|
28
|
+
console.log(chalk.gray(`● ${message}`));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function highlight(message) {
|
|
32
|
+
console.log(chalk.cyan.bold(message));
|
|
33
|
+
}
|
|
34
|
+
export function muted(message) {
|
|
35
|
+
console.log(chalk.gray(message));
|
|
36
|
+
}
|
|
37
|
+
export function newline(count = 1) {
|
|
38
|
+
for (let i = 0; i < count; i++) {
|
|
39
|
+
console.log();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The print module object — passed to commands via the toolbox.
|
|
44
|
+
*/
|
|
45
|
+
export const print = {
|
|
46
|
+
info,
|
|
47
|
+
success,
|
|
48
|
+
warning,
|
|
49
|
+
error,
|
|
50
|
+
debug,
|
|
51
|
+
highlight,
|
|
52
|
+
muted,
|
|
53
|
+
newline,
|
|
54
|
+
colors: chalk,
|
|
55
|
+
spin,
|
|
56
|
+
table(rows, options) {
|
|
57
|
+
console.log(renderTable(rows, options));
|
|
58
|
+
},
|
|
59
|
+
box(text, options) {
|
|
60
|
+
console.log(renderBox(text, options));
|
|
61
|
+
},
|
|
62
|
+
ascii(text, options) {
|
|
63
|
+
console.log(renderAscii(text, options));
|
|
64
|
+
},
|
|
65
|
+
tree(root, options) {
|
|
66
|
+
console.log(renderTree(root, options));
|
|
67
|
+
},
|
|
68
|
+
keyValue(pairs, options) {
|
|
69
|
+
console.log(renderKeyValue(pairs, options));
|
|
70
|
+
},
|
|
71
|
+
divider(options) {
|
|
72
|
+
console.log(renderDivider(options));
|
|
73
|
+
},
|
|
74
|
+
progressBar,
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ProgressBarOptions {
|
|
2
|
+
total: number;
|
|
3
|
+
width?: number;
|
|
4
|
+
complete?: string;
|
|
5
|
+
incomplete?: string;
|
|
6
|
+
format?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ProgressBar {
|
|
9
|
+
update(current: number): string;
|
|
10
|
+
done(): string;
|
|
11
|
+
}
|
|
12
|
+
export declare function progressBar(options: ProgressBarOptions): ProgressBar;
|
|
13
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC3B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,IAAI,IAAI,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA4BpE"}
|
package/dist/progress.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function progressBar(options) {
|
|
2
|
+
const { total, width = 30, complete = "█", incomplete = "░" } = options;
|
|
3
|
+
const format = options.format ?? ":bar :percent";
|
|
4
|
+
function render(current) {
|
|
5
|
+
const ratio = Math.min(Math.max(current / total, 0), 1);
|
|
6
|
+
const filled = Math.round(width * ratio);
|
|
7
|
+
const empty = width - filled;
|
|
8
|
+
const bar = complete.repeat(filled) + incomplete.repeat(empty);
|
|
9
|
+
const percent = `${Math.round(ratio * 100)}%`;
|
|
10
|
+
const eta = current >= total ? "0s" : "";
|
|
11
|
+
return format
|
|
12
|
+
.replace(":bar", bar)
|
|
13
|
+
.replace(":percent", percent)
|
|
14
|
+
.replace(":current", String(current))
|
|
15
|
+
.replace(":total", String(total))
|
|
16
|
+
.replace(":eta", eta);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
update(current) {
|
|
20
|
+
return render(current);
|
|
21
|
+
},
|
|
22
|
+
done() {
|
|
23
|
+
return render(total);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,WAAW,CAAC,OAA2B;IACtD,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC;IAEjD,SAAS,MAAM,CAAC,OAAe;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzC,OAAO,MAAM;aACX,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;aAC5B,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACpC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAChC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACN,MAAM,CAAC,OAAe;YACrB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,IAAI;YACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface Spinner {
|
|
2
|
+
text: string;
|
|
3
|
+
succeed(text?: string): void;
|
|
4
|
+
fail(text?: string): void;
|
|
5
|
+
warn(text?: string): void;
|
|
6
|
+
info(text?: string): void;
|
|
7
|
+
stop(): void;
|
|
8
|
+
isSpinning: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Create a spinner with the given message.
|
|
12
|
+
*/
|
|
13
|
+
export declare function spin(message: string): Spinner;
|
|
14
|
+
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA6B7C"}
|
package/dist/spinner.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import ora from "ora";
|
|
2
|
+
/**
|
|
3
|
+
* Create a spinner with the given message.
|
|
4
|
+
*/
|
|
5
|
+
export function spin(message) {
|
|
6
|
+
const spinner = ora(message).start();
|
|
7
|
+
return {
|
|
8
|
+
get text() {
|
|
9
|
+
return spinner.text;
|
|
10
|
+
},
|
|
11
|
+
set text(value) {
|
|
12
|
+
spinner.text = value;
|
|
13
|
+
},
|
|
14
|
+
succeed(text) {
|
|
15
|
+
spinner.succeed(text);
|
|
16
|
+
},
|
|
17
|
+
fail(text) {
|
|
18
|
+
spinner.fail(text);
|
|
19
|
+
},
|
|
20
|
+
warn(text) {
|
|
21
|
+
spinner.warn(text);
|
|
22
|
+
},
|
|
23
|
+
info(text) {
|
|
24
|
+
spinner.info(text);
|
|
25
|
+
},
|
|
26
|
+
stop() {
|
|
27
|
+
spinner.stop();
|
|
28
|
+
},
|
|
29
|
+
get isSpinning() {
|
|
30
|
+
return spinner.isSpinning;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAYtB;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,OAAe;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IAErC,OAAO;QACN,IAAI,IAAI;YACP,OAAO,OAAO,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,KAAa;YACrB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,IAAa;YACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,IAAa;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAa;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAa;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,UAAU;YACb,OAAO,OAAO,CAAC,UAAU,CAAC;QAC3B,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/table.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type BorderStyle = "single" | "double" | "rounded" | "bold" | "none";
|
|
2
|
+
export type Alignment = "left" | "center" | "right";
|
|
3
|
+
export interface ColumnConfig {
|
|
4
|
+
alignment?: Alignment;
|
|
5
|
+
width?: number;
|
|
6
|
+
truncate?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface TableOptions {
|
|
9
|
+
headers?: string[];
|
|
10
|
+
border?: BorderStyle;
|
|
11
|
+
columns?: Record<number, ColumnConfig>;
|
|
12
|
+
maxWidth?: number;
|
|
13
|
+
headerColor?: (text: string) => string;
|
|
14
|
+
}
|
|
15
|
+
export declare function table(rows: string[][], options?: TableOptions): string;
|
|
16
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AA0GD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAsFtE"}
|
package/dist/table.js
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
const BORDERS = {
|
|
3
|
+
single: {
|
|
4
|
+
topLeft: "┌",
|
|
5
|
+
topRight: "┐",
|
|
6
|
+
bottomLeft: "└",
|
|
7
|
+
bottomRight: "┘",
|
|
8
|
+
horizontal: "─",
|
|
9
|
+
vertical: "│",
|
|
10
|
+
topMiddle: "┬",
|
|
11
|
+
bottomMiddle: "┴",
|
|
12
|
+
leftMiddle: "├",
|
|
13
|
+
rightMiddle: "┤",
|
|
14
|
+
middle: "┼",
|
|
15
|
+
},
|
|
16
|
+
double: {
|
|
17
|
+
topLeft: "╔",
|
|
18
|
+
topRight: "╗",
|
|
19
|
+
bottomLeft: "╚",
|
|
20
|
+
bottomRight: "╝",
|
|
21
|
+
horizontal: "═",
|
|
22
|
+
vertical: "║",
|
|
23
|
+
topMiddle: "╦",
|
|
24
|
+
bottomMiddle: "╩",
|
|
25
|
+
leftMiddle: "╠",
|
|
26
|
+
rightMiddle: "╣",
|
|
27
|
+
middle: "╬",
|
|
28
|
+
},
|
|
29
|
+
rounded: {
|
|
30
|
+
topLeft: "╭",
|
|
31
|
+
topRight: "╮",
|
|
32
|
+
bottomLeft: "╰",
|
|
33
|
+
bottomRight: "╯",
|
|
34
|
+
horizontal: "─",
|
|
35
|
+
vertical: "│",
|
|
36
|
+
topMiddle: "┬",
|
|
37
|
+
bottomMiddle: "┴",
|
|
38
|
+
leftMiddle: "├",
|
|
39
|
+
rightMiddle: "┤",
|
|
40
|
+
middle: "┼",
|
|
41
|
+
},
|
|
42
|
+
bold: {
|
|
43
|
+
topLeft: "┏",
|
|
44
|
+
topRight: "┓",
|
|
45
|
+
bottomLeft: "┗",
|
|
46
|
+
bottomRight: "┛",
|
|
47
|
+
horizontal: "━",
|
|
48
|
+
vertical: "┃",
|
|
49
|
+
topMiddle: "┳",
|
|
50
|
+
bottomMiddle: "┻",
|
|
51
|
+
leftMiddle: "┣",
|
|
52
|
+
rightMiddle: "┫",
|
|
53
|
+
middle: "╋",
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: ANSI escape sequence stripping requires control chars
|
|
57
|
+
const ANSI_REGEX = /\x1B\[[0-9;]*m/g;
|
|
58
|
+
function stripAnsi(str) {
|
|
59
|
+
return str.replace(ANSI_REGEX, "");
|
|
60
|
+
}
|
|
61
|
+
function visibleLength(str) {
|
|
62
|
+
return stripAnsi(str).length;
|
|
63
|
+
}
|
|
64
|
+
function padCell(text, width, alignment) {
|
|
65
|
+
const visible = visibleLength(text);
|
|
66
|
+
const diff = width - visible;
|
|
67
|
+
if (diff <= 0)
|
|
68
|
+
return text;
|
|
69
|
+
switch (alignment) {
|
|
70
|
+
case "right":
|
|
71
|
+
return " ".repeat(diff) + text;
|
|
72
|
+
case "center": {
|
|
73
|
+
const left = Math.floor(diff / 2);
|
|
74
|
+
const right = diff - left;
|
|
75
|
+
return " ".repeat(left) + text + " ".repeat(right);
|
|
76
|
+
}
|
|
77
|
+
default:
|
|
78
|
+
return text + " ".repeat(diff);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function truncateStr(str, maxLen) {
|
|
82
|
+
if (visibleLength(str) <= maxLen)
|
|
83
|
+
return str;
|
|
84
|
+
const plain = stripAnsi(str);
|
|
85
|
+
return `${plain.slice(0, Math.max(0, maxLen - 1))}…`;
|
|
86
|
+
}
|
|
87
|
+
export function table(rows, options) {
|
|
88
|
+
if (rows.length === 0 && !options?.headers)
|
|
89
|
+
return "";
|
|
90
|
+
const border = options?.border ?? "single";
|
|
91
|
+
const allRows = options?.headers ? [options.headers, ...rows] : rows;
|
|
92
|
+
const colCount = Math.max(...allRows.map((r) => r.length));
|
|
93
|
+
const headerColor = options?.headerColor ?? ((t) => chalk.bold(t));
|
|
94
|
+
// Calculate column widths
|
|
95
|
+
const colWidths = [];
|
|
96
|
+
for (let c = 0; c < colCount; c++) {
|
|
97
|
+
const configWidth = options?.columns?.[c]?.width;
|
|
98
|
+
if (configWidth) {
|
|
99
|
+
colWidths[c] = configWidth;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
let max = 0;
|
|
103
|
+
for (const row of allRows) {
|
|
104
|
+
const cell = row[c] ?? "";
|
|
105
|
+
max = Math.max(max, visibleLength(cell));
|
|
106
|
+
}
|
|
107
|
+
colWidths[c] = max;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Apply max width constraint
|
|
111
|
+
const maxWidth = options?.maxWidth ?? process.stdout.columns ?? 120;
|
|
112
|
+
const borderOverhead = border === "none" ? (colCount - 1) * 3 : (colCount + 1) * 3 - 2;
|
|
113
|
+
const availableWidth = maxWidth - borderOverhead;
|
|
114
|
+
const totalWidth = colWidths.reduce((a, b) => a + b, 0);
|
|
115
|
+
if (totalWidth > availableWidth && availableWidth > 0) {
|
|
116
|
+
const ratio = availableWidth / totalWidth;
|
|
117
|
+
for (let c = 0; c < colCount; c++) {
|
|
118
|
+
colWidths[c] = Math.max(3, Math.floor(colWidths[c] * ratio));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (border === "none") {
|
|
122
|
+
const lines = [];
|
|
123
|
+
for (let r = 0; r < allRows.length; r++) {
|
|
124
|
+
const row = allRows[r];
|
|
125
|
+
const cells = [];
|
|
126
|
+
for (let c = 0; c < colCount; c++) {
|
|
127
|
+
let cell = row[c] ?? "";
|
|
128
|
+
const alignment = options?.columns?.[c]?.alignment ?? "left";
|
|
129
|
+
const shouldTruncate = options?.columns?.[c]?.truncate !== false;
|
|
130
|
+
if (shouldTruncate)
|
|
131
|
+
cell = truncateStr(cell, colWidths[c]);
|
|
132
|
+
if (r === 0 && options?.headers)
|
|
133
|
+
cell = headerColor(cell);
|
|
134
|
+
cells.push(padCell(cell, colWidths[c], alignment));
|
|
135
|
+
}
|
|
136
|
+
lines.push(cells.join(" "));
|
|
137
|
+
}
|
|
138
|
+
return lines.join("\n");
|
|
139
|
+
}
|
|
140
|
+
const b = BORDERS[border];
|
|
141
|
+
const lines = [];
|
|
142
|
+
// Top border
|
|
143
|
+
const topParts = colWidths.map((w) => b.horizontal.repeat(w + 2));
|
|
144
|
+
lines.push(b.topLeft + topParts.join(b.topMiddle) + b.topRight);
|
|
145
|
+
for (let r = 0; r < allRows.length; r++) {
|
|
146
|
+
const row = allRows[r];
|
|
147
|
+
const cells = [];
|
|
148
|
+
for (let c = 0; c < colCount; c++) {
|
|
149
|
+
let cell = row[c] ?? "";
|
|
150
|
+
const alignment = options?.columns?.[c]?.alignment ?? "left";
|
|
151
|
+
const shouldTruncate = options?.columns?.[c]?.truncate !== false;
|
|
152
|
+
if (shouldTruncate)
|
|
153
|
+
cell = truncateStr(cell, colWidths[c]);
|
|
154
|
+
if (r === 0 && options?.headers)
|
|
155
|
+
cell = headerColor(cell);
|
|
156
|
+
cells.push(` ${padCell(cell, colWidths[c], alignment)} `);
|
|
157
|
+
}
|
|
158
|
+
lines.push(b.vertical + cells.join(b.vertical) + b.vertical);
|
|
159
|
+
// Header separator
|
|
160
|
+
if (r === 0 && options?.headers) {
|
|
161
|
+
const sepParts = colWidths.map((w) => b.horizontal.repeat(w + 2));
|
|
162
|
+
lines.push(b.leftMiddle + sepParts.join(b.middle) + b.rightMiddle);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Bottom border
|
|
166
|
+
const bottomParts = colWidths.map((w) => b.horizontal.repeat(w + 2));
|
|
167
|
+
lines.push(b.bottomLeft + bottomParts.join(b.bottomMiddle) + b.bottomRight);
|
|
168
|
+
return lines.join("\n");
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|
package/dist/tree.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface TreeNode {
|
|
2
|
+
label: string;
|
|
3
|
+
children?: TreeNode[];
|
|
4
|
+
}
|
|
5
|
+
export interface TreeOptions {
|
|
6
|
+
indent?: number;
|
|
7
|
+
guides?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function tree(root: TreeNode, options?: TreeOptions): string;
|
|
10
|
+
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AA8BD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAGlE"}
|
package/dist/tree.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function renderNode(node, prefix, isLast, isRoot, guides) {
|
|
2
|
+
const lines = [];
|
|
3
|
+
if (isRoot) {
|
|
4
|
+
lines.push(node.label);
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
const connector = guides ? (isLast ? "└── " : "├── ") : " ";
|
|
8
|
+
lines.push(prefix + connector + node.label);
|
|
9
|
+
}
|
|
10
|
+
if (node.children) {
|
|
11
|
+
const childPrefix = isRoot ? "" : prefix + (guides ? (isLast ? " " : "│ ") : " ");
|
|
12
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
13
|
+
const child = node.children[i];
|
|
14
|
+
const childIsLast = i === node.children.length - 1;
|
|
15
|
+
lines.push(...renderNode(child, childPrefix, childIsLast, false, guides));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return lines;
|
|
19
|
+
}
|
|
20
|
+
export function tree(root, options) {
|
|
21
|
+
const guides = options?.guides !== false;
|
|
22
|
+
return renderNode(root, "", true, true, guides).join("\n");
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=tree.js.map
|
package/dist/tree.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAUA,SAAS,UAAU,CAClB,IAAc,EACd,MAAc,EACd,MAAe,EACf,MAAe,EACf,MAAe;IAEf,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACP,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAc,EAAE,OAAqB;IACzD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACzC,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type chalk from "chalk";
|
|
2
|
+
import type { BoxOptions } from "./box.js";
|
|
3
|
+
import type { DividerOptions } from "./divider.js";
|
|
4
|
+
import type { FigletOptions } from "./figlet.js";
|
|
5
|
+
import type { KeyValueOptions, KeyValuePair } from "./keyValue.js";
|
|
6
|
+
import type { ProgressBar, ProgressBarOptions } from "./progress.js";
|
|
7
|
+
import type { Spinner } from "./spinner.js";
|
|
8
|
+
import type { TableOptions } from "./table.js";
|
|
9
|
+
import type { TreeNode, TreeOptions } from "./tree.js";
|
|
10
|
+
export interface PrintModule {
|
|
11
|
+
info(message: string): void;
|
|
12
|
+
success(message: string): void;
|
|
13
|
+
warning(message: string): void;
|
|
14
|
+
error(message: string): void;
|
|
15
|
+
debug(message: string): void;
|
|
16
|
+
highlight(message: string): void;
|
|
17
|
+
muted(message: string): void;
|
|
18
|
+
newline(count?: number): void;
|
|
19
|
+
colors: typeof chalk;
|
|
20
|
+
spin(message: string): Spinner;
|
|
21
|
+
table(rows: string[][], options?: TableOptions): void;
|
|
22
|
+
box(text: string, options?: BoxOptions): void;
|
|
23
|
+
ascii(text: string, options?: FigletOptions): void;
|
|
24
|
+
tree(root: TreeNode, options?: TreeOptions): void;
|
|
25
|
+
keyValue(pairs: KeyValuePair[] | Record<string, string>, options?: KeyValueOptions): void;
|
|
26
|
+
divider(options?: DividerOptions): void;
|
|
27
|
+
progressBar(options: ProgressBarOptions): ProgressBar;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,KAAK,CAAC;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACtD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1F,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC;CACtD"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@seedcli/print",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Terminal output: logging, colors, spinner, table, box, ASCII art, tree, progress bar",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Rully Ardiansyah <rully@dreamshive.io>",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/SeedCLI/seed",
|
|
11
|
+
"directory": "packages/print"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://seedcli.dev",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"cli",
|
|
16
|
+
"terminal",
|
|
17
|
+
"print",
|
|
18
|
+
"table",
|
|
19
|
+
"spinner",
|
|
20
|
+
"colors",
|
|
21
|
+
"box",
|
|
22
|
+
"ascii"
|
|
23
|
+
],
|
|
24
|
+
"engines": {
|
|
25
|
+
"bun": ">=1.3.0"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"main": "./dist/index.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"import": "./dist/index.js",
|
|
35
|
+
"types": "./dist/index.d.ts"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"LICENSE"
|
|
41
|
+
],
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"boxen": "8.0.1",
|
|
44
|
+
"chalk": "5.6.2",
|
|
45
|
+
"figlet": "1.10.0",
|
|
46
|
+
"ora": "9.3.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/figlet": "1.7.0"
|
|
50
|
+
}
|
|
51
|
+
}
|