@creem_io/cli 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +155 -0
- package/dist/commands/checkouts.d.ts +3 -0
- package/dist/commands/checkouts.d.ts.map +1 -0
- package/dist/commands/checkouts.js +175 -0
- package/dist/commands/checkouts.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +184 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/customers.d.ts +3 -0
- package/dist/commands/customers.d.ts.map +1 -0
- package/dist/commands/customers.js +246 -0
- package/dist/commands/customers.js.map +1 -0
- package/dist/commands/discounts.d.ts +3 -0
- package/dist/commands/discounts.d.ts.map +1 -0
- package/dist/commands/discounts.js +419 -0
- package/dist/commands/discounts.js.map +1 -0
- package/dist/commands/index.d.ts +12 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +26 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +115 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +61 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +1073 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/products.d.ts +3 -0
- package/dist/commands/products.d.ts.map +1 -0
- package/dist/commands/products.js +400 -0
- package/dist/commands/products.js.map +1 -0
- package/dist/commands/subscriptions.d.ts +3 -0
- package/dist/commands/subscriptions.d.ts.map +1 -0
- package/dist/commands/subscriptions.js +476 -0
- package/dist/commands/subscriptions.js.map +1 -0
- package/dist/commands/transactions.d.ts +3 -0
- package/dist/commands/transactions.d.ts.map +1 -0
- package/dist/commands/transactions.js +326 -0
- package/dist/commands/transactions.js.map +1 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +76 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +25 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +77 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth.d.ts +28 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +113 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +34 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +144 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/env-cache.d.ts +10 -0
- package/dist/lib/env-cache.d.ts.map +1 -0
- package/dist/lib/env-cache.js +27 -0
- package/dist/lib/env-cache.js.map +1 -0
- package/dist/tui/command-bar.d.ts +10 -0
- package/dist/tui/command-bar.d.ts.map +1 -0
- package/dist/tui/command-bar.js +35 -0
- package/dist/tui/command-bar.js.map +1 -0
- package/dist/tui/engine.d.ts +3 -0
- package/dist/tui/engine.d.ts.map +1 -0
- package/dist/tui/engine.js +454 -0
- package/dist/tui/engine.js.map +1 -0
- package/dist/tui/index.d.ts +3 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +6 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/keymap.d.ts +29 -0
- package/dist/tui/keymap.d.ts.map +1 -0
- package/dist/tui/keymap.js +143 -0
- package/dist/tui/keymap.js.map +1 -0
- package/dist/tui/renderer.d.ts +12 -0
- package/dist/tui/renderer.d.ts.map +1 -0
- package/dist/tui/renderer.js +379 -0
- package/dist/tui/renderer.js.map +1 -0
- package/dist/tui/types.d.ts +53 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +24 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/utils/output.d.ts +67 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +245 -0
- package/dist/utils/output.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":";;AA0DA,gDAmBC;AAnBD,SAAgB,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,IAAI;QAClB,kBAAkB,EAAE,CAAC;QACrB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,IAAI;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface OutputOptions {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Outputs data as JSON
|
|
6
|
+
*/
|
|
7
|
+
export declare function outputJson(data: unknown): void;
|
|
8
|
+
/**
|
|
9
|
+
* Outputs data as a formatted table, adapting to terminal width.
|
|
10
|
+
* Falls back to a compact card layout when columns won't fit.
|
|
11
|
+
*/
|
|
12
|
+
export declare function outputTable(headers: string[], rows: (string | number | boolean | null | undefined)[][]): void;
|
|
13
|
+
/**
|
|
14
|
+
* Outputs key-value pairs
|
|
15
|
+
*/
|
|
16
|
+
export declare function outputKeyValue(data: Record<string, unknown>, options?: OutputOptions): void;
|
|
17
|
+
/**
|
|
18
|
+
* Outputs a success message
|
|
19
|
+
*/
|
|
20
|
+
export declare function success(message: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Outputs an error message
|
|
23
|
+
*/
|
|
24
|
+
export declare function error(message: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Outputs a warning message
|
|
27
|
+
*/
|
|
28
|
+
export declare function warning(message: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Outputs an info message
|
|
31
|
+
*/
|
|
32
|
+
export declare function info(message: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Outputs a dim/muted message
|
|
35
|
+
*/
|
|
36
|
+
export declare function dim(message: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Creates a styled header
|
|
39
|
+
*/
|
|
40
|
+
export declare function header(text: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Adds a blank line
|
|
43
|
+
*/
|
|
44
|
+
export declare function newline(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Formats a date for display
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatDate(date: string | Date): string;
|
|
49
|
+
/**
|
|
50
|
+
* Formats currency for display
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatCurrency(amount: number, currency?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Truncates a string with ellipsis
|
|
55
|
+
*/
|
|
56
|
+
export declare function truncate(str: string, maxLength: number): string;
|
|
57
|
+
/**
|
|
58
|
+
* Returns the label padding width for TUI detail views,
|
|
59
|
+
* adapted to the current terminal width.
|
|
60
|
+
*/
|
|
61
|
+
export declare function detailLabelWidth(): number;
|
|
62
|
+
/**
|
|
63
|
+
* Formats a key-value line for TUI detail views.
|
|
64
|
+
* Label is cyan and padded to a width that adapts to the terminal.
|
|
65
|
+
*/
|
|
66
|
+
export declare function detailLine(label: string, value: string): string;
|
|
67
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE9C;AAUD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,GACvD,IAAI,CAkEN;AAuCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAa/F;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIzC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAStD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAKvE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.outputJson = outputJson;
|
|
7
|
+
exports.outputTable = outputTable;
|
|
8
|
+
exports.outputKeyValue = outputKeyValue;
|
|
9
|
+
exports.success = success;
|
|
10
|
+
exports.error = error;
|
|
11
|
+
exports.warning = warning;
|
|
12
|
+
exports.info = info;
|
|
13
|
+
exports.dim = dim;
|
|
14
|
+
exports.header = header;
|
|
15
|
+
exports.newline = newline;
|
|
16
|
+
exports.formatDate = formatDate;
|
|
17
|
+
exports.formatCurrency = formatCurrency;
|
|
18
|
+
exports.truncate = truncate;
|
|
19
|
+
exports.detailLabelWidth = detailLabelWidth;
|
|
20
|
+
exports.detailLine = detailLine;
|
|
21
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
22
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
23
|
+
/**
|
|
24
|
+
* Outputs data as JSON
|
|
25
|
+
*/
|
|
26
|
+
function outputJson(data) {
|
|
27
|
+
console.log(JSON.stringify(data, null, 2));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Strips ANSI escape codes to measure visible string length
|
|
31
|
+
*/
|
|
32
|
+
function stripAnsi(str) {
|
|
33
|
+
// eslint-disable-next-line no-control-regex
|
|
34
|
+
return str.replace(/\x1B\[[0-9;]*m/g, "");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Outputs data as a formatted table, adapting to terminal width.
|
|
38
|
+
* Falls back to a compact card layout when columns won't fit.
|
|
39
|
+
*/
|
|
40
|
+
function outputTable(headers, rows) {
|
|
41
|
+
const termWidth = process.stdout.columns || 80;
|
|
42
|
+
const colCount = headers.length;
|
|
43
|
+
// cli-table3 uses 3 chars per border/padding (│ + space padding) plus 1 for the trailing │
|
|
44
|
+
const borderOverhead = colCount + 1;
|
|
45
|
+
// Measure the max visible width needed per column (from headers + data)
|
|
46
|
+
const maxColWidths = headers.map((h) => stripAnsi(h).length);
|
|
47
|
+
for (const row of rows) {
|
|
48
|
+
for (let i = 0; i < colCount; i++) {
|
|
49
|
+
const cell = row[i];
|
|
50
|
+
const len = stripAnsi(cell === null || cell === undefined ? "-" : String(cell)).length;
|
|
51
|
+
if (len > maxColWidths[i]) {
|
|
52
|
+
maxColWidths[i] = len;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Each column needs at least its content width + 2 chars padding (cli-table3 default)
|
|
57
|
+
const naturalWidth = maxColWidths.reduce((sum, w) => sum + w + 2, 0) + borderOverhead;
|
|
58
|
+
// If the table fits, render normally
|
|
59
|
+
if (naturalWidth <= termWidth) {
|
|
60
|
+
const table = new cli_table3_1.default({
|
|
61
|
+
head: headers.map((h) => chalk_1.default.cyan(h)),
|
|
62
|
+
style: { head: [], border: [] },
|
|
63
|
+
});
|
|
64
|
+
rows.forEach((row) => {
|
|
65
|
+
table.push(row.map((cell) => (cell === null || cell === undefined ? "-" : String(cell))));
|
|
66
|
+
});
|
|
67
|
+
console.log(table.toString());
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Try to fit by truncating columns proportionally
|
|
71
|
+
const availableContent = termWidth - borderOverhead - colCount * 2; // subtract padding
|
|
72
|
+
if (availableContent >= colCount * 4) {
|
|
73
|
+
// Enough room for at least 4 chars per column — use truncated table
|
|
74
|
+
const colWidths = fitColumns(maxColWidths, availableContent);
|
|
75
|
+
const table = new cli_table3_1.default({
|
|
76
|
+
head: headers.map((h, i) => chalk_1.default.cyan(truncate(h, colWidths[i]))),
|
|
77
|
+
style: { head: [], border: [] },
|
|
78
|
+
colWidths: colWidths.map((w) => w + 2), // add padding
|
|
79
|
+
});
|
|
80
|
+
rows.forEach((row) => {
|
|
81
|
+
table.push(row.map((cell, i) => {
|
|
82
|
+
const val = cell === null || cell === undefined ? "-" : String(cell);
|
|
83
|
+
return truncate(stripAnsi(val), colWidths[i]);
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
console.log(table.toString());
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Terminal is very narrow — fall back to card layout
|
|
90
|
+
for (let r = 0; r < rows.length; r++) {
|
|
91
|
+
if (r > 0)
|
|
92
|
+
console.log(chalk_1.default.dim("─".repeat(Math.min(termWidth - 1, 40))));
|
|
93
|
+
for (let c = 0; c < colCount; c++) {
|
|
94
|
+
const cell = rows[r][c];
|
|
95
|
+
const val = cell === null || cell === undefined ? "-" : String(cell);
|
|
96
|
+
console.log(`${chalk_1.default.cyan(headers[c])}: ${val}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Distributes available width across columns, shrinking the widest first.
|
|
102
|
+
*/
|
|
103
|
+
function fitColumns(naturalWidths, available) {
|
|
104
|
+
const widths = [...naturalWidths];
|
|
105
|
+
let total = widths.reduce((s, w) => s + w, 0);
|
|
106
|
+
while (total > available) {
|
|
107
|
+
const maxWidth = Math.max(...widths);
|
|
108
|
+
// Find all columns at the maximum width
|
|
109
|
+
const maxIndices = widths.map((w, i) => (w === maxWidth ? i : -1)).filter((i) => i !== -1);
|
|
110
|
+
// When multiple columns are tied at max width, shrink them all by 1
|
|
111
|
+
if (maxIndices.length > 1) {
|
|
112
|
+
for (const idx of maxIndices) {
|
|
113
|
+
if (widths[idx] > 4 && total > available) {
|
|
114
|
+
widths[idx]--;
|
|
115
|
+
total--;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// If we couldn't shrink any (all at minimum), break to avoid infinite loop
|
|
119
|
+
if (maxIndices.every((idx) => widths[idx] <= 4))
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Single max column: shrink to second max or as needed
|
|
124
|
+
const maxIdx = maxIndices[0];
|
|
125
|
+
const secondMax = Math.max(...widths.filter((_, i) => i !== maxIdx), 4);
|
|
126
|
+
const target = Math.max(secondMax, 4);
|
|
127
|
+
const reduction = Math.min(widths[maxIdx] - target, total - available);
|
|
128
|
+
if (reduction === 0)
|
|
129
|
+
break;
|
|
130
|
+
widths[maxIdx] -= reduction;
|
|
131
|
+
total -= reduction;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return widths.map((w) => Math.max(w, 4));
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Outputs key-value pairs
|
|
138
|
+
*/
|
|
139
|
+
function outputKeyValue(data, options = {}) {
|
|
140
|
+
if (options.json) {
|
|
141
|
+
outputJson(data);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const maxKeyLength = Math.max(...Object.keys(data).map((k) => k.length));
|
|
145
|
+
for (const [key, value] of Object.entries(data)) {
|
|
146
|
+
const paddedKey = key.padEnd(maxKeyLength);
|
|
147
|
+
const displayValue = value === null || value === undefined ? chalk_1.default.dim("-") : String(value);
|
|
148
|
+
console.log(`${chalk_1.default.cyan(paddedKey)} ${displayValue}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Outputs a success message
|
|
153
|
+
*/
|
|
154
|
+
function success(message) {
|
|
155
|
+
console.log(chalk_1.default.green("✓"), message);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Outputs an error message
|
|
159
|
+
*/
|
|
160
|
+
function error(message) {
|
|
161
|
+
console.error(chalk_1.default.red("✗"), message);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Outputs a warning message
|
|
165
|
+
*/
|
|
166
|
+
function warning(message) {
|
|
167
|
+
console.log(chalk_1.default.yellow("⚠"), message);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Outputs an info message
|
|
171
|
+
*/
|
|
172
|
+
function info(message) {
|
|
173
|
+
console.log(chalk_1.default.blue("ℹ"), message);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Outputs a dim/muted message
|
|
177
|
+
*/
|
|
178
|
+
function dim(message) {
|
|
179
|
+
console.log(chalk_1.default.dim(message));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Creates a styled header
|
|
183
|
+
*/
|
|
184
|
+
function header(text) {
|
|
185
|
+
console.log();
|
|
186
|
+
console.log(chalk_1.default.bold(text));
|
|
187
|
+
console.log(chalk_1.default.dim("─".repeat(text.length)));
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Adds a blank line
|
|
191
|
+
*/
|
|
192
|
+
function newline() {
|
|
193
|
+
console.log();
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Formats a date for display
|
|
197
|
+
*/
|
|
198
|
+
function formatDate(date) {
|
|
199
|
+
const d = typeof date === "string" ? new Date(date) : date;
|
|
200
|
+
return d.toLocaleDateString("en-US", {
|
|
201
|
+
year: "numeric",
|
|
202
|
+
month: "short",
|
|
203
|
+
day: "numeric",
|
|
204
|
+
hour: "2-digit",
|
|
205
|
+
minute: "2-digit",
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Formats currency for display
|
|
210
|
+
*/
|
|
211
|
+
function formatCurrency(amount, currency = "USD") {
|
|
212
|
+
return new Intl.NumberFormat("en-US", {
|
|
213
|
+
style: "currency",
|
|
214
|
+
currency: currency.toUpperCase(),
|
|
215
|
+
}).format(amount / 100); // Assuming amounts are in cents
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Truncates a string with ellipsis
|
|
219
|
+
*/
|
|
220
|
+
function truncate(str, maxLength) {
|
|
221
|
+
if (str.length <= maxLength)
|
|
222
|
+
return str;
|
|
223
|
+
return str.slice(0, maxLength - 3) + "...";
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Returns the label padding width for TUI detail views,
|
|
227
|
+
* adapted to the current terminal width.
|
|
228
|
+
*/
|
|
229
|
+
function detailLabelWidth() {
|
|
230
|
+
const cols = process.stdout.columns || 80;
|
|
231
|
+
if (cols < 50)
|
|
232
|
+
return 10;
|
|
233
|
+
if (cols < 70)
|
|
234
|
+
return 14;
|
|
235
|
+
return 18;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Formats a key-value line for TUI detail views.
|
|
239
|
+
* Label is cyan and padded to a width that adapts to the terminal.
|
|
240
|
+
*/
|
|
241
|
+
function detailLine(label, value) {
|
|
242
|
+
const w = detailLabelWidth();
|
|
243
|
+
return `${chalk_1.default.cyan(label.padEnd(w))} ${value}`;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@creem_io/cli",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Official CLI for Creem - the Stripe alternative for SaaS",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"creem",
|
|
7
|
+
"cli",
|
|
8
|
+
"payments",
|
|
9
|
+
"saas",
|
|
10
|
+
"subscriptions"
|
|
11
|
+
],
|
|
12
|
+
"author": "Creem <support@creem.io>",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/armitage-labs/creem.git",
|
|
17
|
+
"directory": "packages/cli"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/armitage-labs/creem/tree/main/packages/cli",
|
|
20
|
+
"bugs": "https://github.com/armitage-labs/creem/issues",
|
|
21
|
+
"bin": {
|
|
22
|
+
"creem": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"main": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc",
|
|
31
|
+
"dev": "tsc --watch",
|
|
32
|
+
"start": "node dist/index.js",
|
|
33
|
+
"format:check": "prettier --check \"src/**/*.ts\"",
|
|
34
|
+
"clean": "rm -rf dist",
|
|
35
|
+
"prepublishOnly": "npm run build"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@inquirer/prompts": "^7.5.1",
|
|
39
|
+
"chalk": "^4.1.2",
|
|
40
|
+
"cli-table3": "^0.6.5",
|
|
41
|
+
"commander": "^12.1.0",
|
|
42
|
+
"creem": "^1.3.6",
|
|
43
|
+
"ora": "^5.4.1"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^20.14.0",
|
|
47
|
+
"typescript": "^5.4.5"
|
|
48
|
+
},
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">=18.0.0"
|
|
51
|
+
},
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public",
|
|
54
|
+
"provenance": true
|
|
55
|
+
}
|
|
56
|
+
}
|