@cakemail-org/cakemail-cli 1.3.0 → 1.5.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/dist/cli.js +40 -6
- package/dist/cli.js.map +1 -1
- package/dist/client.js +0 -2
- package/dist/client.js.map +1 -1
- package/dist/commands/account.d.ts +5 -0
- package/dist/commands/account.d.ts.map +1 -0
- package/dist/commands/account.js +231 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/attributes.d.ts.map +1 -1
- package/dist/commands/attributes.js +43 -15
- package/dist/commands/attributes.js.map +1 -1
- package/dist/commands/campaigns.d.ts.map +1 -1
- package/dist/commands/campaigns.js +153 -19
- package/dist/commands/campaigns.js.map +1 -1
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +235 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/contacts.js +233 -38
- package/dist/commands/contacts.js.map +1 -1
- package/dist/commands/lists.d.ts.map +1 -1
- package/dist/commands/lists.js +160 -23
- package/dist/commands/lists.js.map +1 -1
- package/dist/commands/reports.d.ts.map +1 -1
- package/dist/commands/reports.js +90 -13
- package/dist/commands/reports.js.map +1 -1
- package/dist/commands/segments.d.ts.map +1 -1
- package/dist/commands/segments.js +59 -21
- package/dist/commands/segments.js.map +1 -1
- package/dist/commands/senders.d.ts.map +1 -1
- package/dist/commands/senders.js +36 -5
- package/dist/commands/senders.js.map +1 -1
- package/dist/commands/suppressed.d.ts.map +1 -1
- package/dist/commands/suppressed.js +20 -6
- package/dist/commands/suppressed.js.map +1 -1
- package/dist/commands/templates.d.ts.map +1 -1
- package/dist/commands/templates.js +11 -3
- package/dist/commands/templates.js.map +1 -1
- package/dist/types/profile.d.ts +92 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +119 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/utils/auth.d.ts +26 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +198 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/config-file.d.ts +92 -0
- package/dist/utils/config-file.d.ts.map +1 -0
- package/dist/utils/config-file.js +244 -0
- package/dist/utils/config-file.js.map +1 -0
- package/dist/utils/config.d.ts +11 -2
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +74 -8
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/confirm.d.ts +38 -0
- package/dist/utils/confirm.d.ts.map +1 -0
- package/dist/utils/confirm.js +124 -0
- package/dist/utils/confirm.js.map +1 -0
- package/dist/utils/defaults.d.ts +39 -0
- package/dist/utils/defaults.d.ts.map +1 -0
- package/dist/utils/defaults.js +195 -0
- package/dist/utils/defaults.js.map +1 -0
- package/dist/utils/errors.d.ts +67 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +395 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/interactive.d.ts +97 -0
- package/dist/utils/interactive.d.ts.map +1 -0
- package/dist/utils/interactive.js +265 -0
- package/dist/utils/interactive.js.map +1 -0
- package/dist/utils/output.d.ts +72 -2
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +383 -37
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/progress.d.ts +139 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +216 -0
- package/dist/utils/progress.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Prompt System
|
|
3
|
+
*
|
|
4
|
+
* Profile-aware prompts that adapt to user preferences:
|
|
5
|
+
* - Developer profile: Skip prompts, require explicit arguments
|
|
6
|
+
* - Marketer profile: Interactive prompts for missing arguments
|
|
7
|
+
* - Balanced profile: Auto-detect TTY and prompt when interactive
|
|
8
|
+
*/
|
|
9
|
+
import { ProfileConfig } from '../types/profile.js';
|
|
10
|
+
/**
|
|
11
|
+
* Check if we're in an interactive terminal
|
|
12
|
+
*/
|
|
13
|
+
export declare function isInteractive(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Check if we're in scripting/batch mode
|
|
16
|
+
* Indicators: CI environment, non-TTY, or explicit flags
|
|
17
|
+
*/
|
|
18
|
+
export declare function isScriptingMode(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Determine if prompts should be shown based on profile and environment
|
|
21
|
+
*/
|
|
22
|
+
export declare function shouldPrompt(profileConfig?: ProfileConfig): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Prompt for a text input
|
|
25
|
+
*/
|
|
26
|
+
export declare function promptText(message: string, options?: {
|
|
27
|
+
default?: string;
|
|
28
|
+
required?: boolean;
|
|
29
|
+
validate?: (input: string) => boolean | string;
|
|
30
|
+
profileConfig?: ProfileConfig;
|
|
31
|
+
}): Promise<string | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Prompt for a number input
|
|
34
|
+
*/
|
|
35
|
+
export declare function promptNumber(message: string, options?: {
|
|
36
|
+
default?: number;
|
|
37
|
+
required?: boolean;
|
|
38
|
+
min?: number;
|
|
39
|
+
max?: number;
|
|
40
|
+
profileConfig?: ProfileConfig;
|
|
41
|
+
}): Promise<number | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Prompt for a selection from a list
|
|
44
|
+
*/
|
|
45
|
+
export declare function promptSelect<T = string>(message: string, choices: Array<{
|
|
46
|
+
name: string;
|
|
47
|
+
value: T;
|
|
48
|
+
description?: string;
|
|
49
|
+
}>, options?: {
|
|
50
|
+
default?: T;
|
|
51
|
+
required?: boolean;
|
|
52
|
+
profileConfig?: ProfileConfig;
|
|
53
|
+
}): Promise<T | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Prompt for multiple selections from a list
|
|
56
|
+
*/
|
|
57
|
+
export declare function promptMultiSelect<T = string>(message: string, choices: Array<{
|
|
58
|
+
name: string;
|
|
59
|
+
value: T;
|
|
60
|
+
description?: string;
|
|
61
|
+
checked?: boolean;
|
|
62
|
+
}>, options?: {
|
|
63
|
+
required?: boolean;
|
|
64
|
+
profileConfig?: ProfileConfig;
|
|
65
|
+
}): Promise<T[] | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* Prompt for yes/no confirmation
|
|
68
|
+
*/
|
|
69
|
+
export declare function promptConfirm(message: string, options?: {
|
|
70
|
+
default?: boolean;
|
|
71
|
+
profileConfig?: ProfileConfig;
|
|
72
|
+
}): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Prompt for password/secret input (hidden)
|
|
75
|
+
*/
|
|
76
|
+
export declare function promptPassword(message: string, options?: {
|
|
77
|
+
required?: boolean;
|
|
78
|
+
validate?: (input: string) => boolean | string;
|
|
79
|
+
profileConfig?: ProfileConfig;
|
|
80
|
+
}): Promise<string | undefined>;
|
|
81
|
+
/**
|
|
82
|
+
* Show a loading spinner (profile-aware)
|
|
83
|
+
*/
|
|
84
|
+
export interface Spinner {
|
|
85
|
+
start(text?: string): void;
|
|
86
|
+
stop(text?: string): void;
|
|
87
|
+
succeed(text?: string): void;
|
|
88
|
+
fail(text?: string): void;
|
|
89
|
+
text: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a profile-aware spinner
|
|
93
|
+
* Returns a real spinner for profiles with show_progress enabled,
|
|
94
|
+
* otherwise returns a no-op spinner
|
|
95
|
+
*/
|
|
96
|
+
export declare function createSpinner(initialText: string, profileConfig?: ProfileConfig): Spinner;
|
|
97
|
+
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Prompt System
|
|
3
|
+
*
|
|
4
|
+
* Profile-aware prompts that adapt to user preferences:
|
|
5
|
+
* - Developer profile: Skip prompts, require explicit arguments
|
|
6
|
+
* - Marketer profile: Interactive prompts for missing arguments
|
|
7
|
+
* - Balanced profile: Auto-detect TTY and prompt when interactive
|
|
8
|
+
*/
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
/**
|
|
11
|
+
* Check if we're in an interactive terminal
|
|
12
|
+
*/
|
|
13
|
+
export function isInteractive() {
|
|
14
|
+
return process.stdin.isTTY === true && process.stdout.isTTY === true;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if we're in scripting/batch mode
|
|
18
|
+
* Indicators: CI environment, non-TTY, or explicit flags
|
|
19
|
+
*/
|
|
20
|
+
export function isScriptingMode() {
|
|
21
|
+
// CI environment variables
|
|
22
|
+
if (process.env.CI === 'true' || process.env.CONTINUOUS_INTEGRATION === 'true') {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
// Non-interactive terminal
|
|
26
|
+
if (!isInteractive()) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
// Explicit batch mode flag (can be set by commands)
|
|
30
|
+
if (process.env.CAKEMAIL_BATCH_MODE === 'true') {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Determine if prompts should be shown based on profile and environment
|
|
37
|
+
*/
|
|
38
|
+
export function shouldPrompt(profileConfig) {
|
|
39
|
+
// Always skip in scripting mode
|
|
40
|
+
if (isScriptingMode()) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
// No profile config - default to prompting in interactive mode
|
|
44
|
+
if (!profileConfig) {
|
|
45
|
+
return isInteractive();
|
|
46
|
+
}
|
|
47
|
+
const setting = profileConfig.behavior.interactive_prompts;
|
|
48
|
+
// Explicit true/false from profile
|
|
49
|
+
if (setting === true)
|
|
50
|
+
return true;
|
|
51
|
+
if (setting === false)
|
|
52
|
+
return false;
|
|
53
|
+
// 'auto' mode - prompt only if interactive
|
|
54
|
+
return isInteractive();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Prompt for a text input
|
|
58
|
+
*/
|
|
59
|
+
export async function promptText(message, options = {}) {
|
|
60
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
const answer = await inquirer.prompt([
|
|
64
|
+
{
|
|
65
|
+
type: 'input',
|
|
66
|
+
name: 'value',
|
|
67
|
+
message,
|
|
68
|
+
default: options.default,
|
|
69
|
+
validate: (input) => {
|
|
70
|
+
if (options.required && !input.trim()) {
|
|
71
|
+
return 'This field is required';
|
|
72
|
+
}
|
|
73
|
+
if (options.validate) {
|
|
74
|
+
return options.validate(input);
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]);
|
|
80
|
+
return answer.value;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Prompt for a number input
|
|
84
|
+
*/
|
|
85
|
+
export async function promptNumber(message, options = {}) {
|
|
86
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
const answer = await inquirer.prompt([
|
|
90
|
+
{
|
|
91
|
+
type: 'number',
|
|
92
|
+
name: 'value',
|
|
93
|
+
message,
|
|
94
|
+
default: options.default,
|
|
95
|
+
validate: (input) => {
|
|
96
|
+
if (options.required && (input === undefined || input === null)) {
|
|
97
|
+
return 'This field is required';
|
|
98
|
+
}
|
|
99
|
+
if (options.min !== undefined && input < options.min) {
|
|
100
|
+
return `Value must be at least ${options.min}`;
|
|
101
|
+
}
|
|
102
|
+
if (options.max !== undefined && input > options.max) {
|
|
103
|
+
return `Value must be at most ${options.max}`;
|
|
104
|
+
}
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]);
|
|
109
|
+
return answer.value;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Prompt for a selection from a list
|
|
113
|
+
*/
|
|
114
|
+
export async function promptSelect(message, choices, options = {}) {
|
|
115
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
const answer = await inquirer.prompt([
|
|
119
|
+
{
|
|
120
|
+
type: 'list',
|
|
121
|
+
name: 'value',
|
|
122
|
+
message,
|
|
123
|
+
choices: choices.map(choice => ({
|
|
124
|
+
name: choice.description ? `${choice.name} - ${choice.description}` : choice.name,
|
|
125
|
+
value: choice.value,
|
|
126
|
+
short: choice.name
|
|
127
|
+
})),
|
|
128
|
+
default: options.default,
|
|
129
|
+
pageSize: 10
|
|
130
|
+
}
|
|
131
|
+
]);
|
|
132
|
+
return answer.value;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Prompt for multiple selections from a list
|
|
136
|
+
*/
|
|
137
|
+
export async function promptMultiSelect(message, choices, options = {}) {
|
|
138
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
const answer = await inquirer.prompt([
|
|
142
|
+
{
|
|
143
|
+
type: 'checkbox',
|
|
144
|
+
name: 'value',
|
|
145
|
+
message,
|
|
146
|
+
choices: choices.map(choice => ({
|
|
147
|
+
name: choice.description ? `${choice.name} - ${choice.description}` : choice.name,
|
|
148
|
+
value: choice.value,
|
|
149
|
+
short: choice.name,
|
|
150
|
+
checked: choice.checked ?? false
|
|
151
|
+
})),
|
|
152
|
+
validate: (input) => {
|
|
153
|
+
if (options.required && input.length === 0) {
|
|
154
|
+
return 'You must select at least one option';
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
},
|
|
158
|
+
pageSize: 10
|
|
159
|
+
}
|
|
160
|
+
]);
|
|
161
|
+
return answer.value;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Prompt for yes/no confirmation
|
|
165
|
+
*/
|
|
166
|
+
export async function promptConfirm(message, options = {}) {
|
|
167
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
168
|
+
// In non-interactive mode, default to false for safety
|
|
169
|
+
return options.default ?? false;
|
|
170
|
+
}
|
|
171
|
+
const answer = await inquirer.prompt([
|
|
172
|
+
{
|
|
173
|
+
type: 'confirm',
|
|
174
|
+
name: 'value',
|
|
175
|
+
message,
|
|
176
|
+
default: options.default ?? false
|
|
177
|
+
}
|
|
178
|
+
]);
|
|
179
|
+
return answer.value;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Prompt for password/secret input (hidden)
|
|
183
|
+
*/
|
|
184
|
+
export async function promptPassword(message, options = {}) {
|
|
185
|
+
if (!shouldPrompt(options.profileConfig)) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
const answer = await inquirer.prompt([
|
|
189
|
+
{
|
|
190
|
+
type: 'password',
|
|
191
|
+
name: 'value',
|
|
192
|
+
message,
|
|
193
|
+
mask: '*',
|
|
194
|
+
validate: (input) => {
|
|
195
|
+
if (options.required && !input) {
|
|
196
|
+
return 'This field is required';
|
|
197
|
+
}
|
|
198
|
+
if (options.validate) {
|
|
199
|
+
return options.validate(input);
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
]);
|
|
205
|
+
return answer.value;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Create a profile-aware spinner
|
|
209
|
+
* Returns a real spinner for profiles with show_progress enabled,
|
|
210
|
+
* otherwise returns a no-op spinner
|
|
211
|
+
*/
|
|
212
|
+
export function createSpinner(initialText, profileConfig) {
|
|
213
|
+
const shouldShow = profileConfig?.behavior.show_progress ?? true;
|
|
214
|
+
if (!shouldShow || !isInteractive()) {
|
|
215
|
+
// No-op spinner for scripting mode or when progress is disabled
|
|
216
|
+
return {
|
|
217
|
+
start: () => { },
|
|
218
|
+
stop: () => { },
|
|
219
|
+
succeed: () => { },
|
|
220
|
+
fail: () => { },
|
|
221
|
+
text: initialText
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
// Import ora dynamically to avoid loading it when not needed
|
|
225
|
+
let ora;
|
|
226
|
+
try {
|
|
227
|
+
ora = require('ora');
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// ora not available, use no-op
|
|
231
|
+
return {
|
|
232
|
+
start: () => { },
|
|
233
|
+
stop: () => { },
|
|
234
|
+
succeed: () => { },
|
|
235
|
+
fail: () => { },
|
|
236
|
+
text: initialText
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const spinner = ora(initialText);
|
|
240
|
+
return {
|
|
241
|
+
start: (text) => {
|
|
242
|
+
if (text)
|
|
243
|
+
spinner.text = text;
|
|
244
|
+
spinner.start();
|
|
245
|
+
},
|
|
246
|
+
stop: (text) => {
|
|
247
|
+
if (text)
|
|
248
|
+
spinner.text = text;
|
|
249
|
+
spinner.stop();
|
|
250
|
+
},
|
|
251
|
+
succeed: (text) => {
|
|
252
|
+
if (text)
|
|
253
|
+
spinner.text = text;
|
|
254
|
+
spinner.succeed();
|
|
255
|
+
},
|
|
256
|
+
fail: (text) => {
|
|
257
|
+
if (text)
|
|
258
|
+
spinner.text = text;
|
|
259
|
+
spinner.fail();
|
|
260
|
+
},
|
|
261
|
+
get text() { return spinner.text; },
|
|
262
|
+
set text(value) { spinner.text = value; }
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/output.d.ts
CHANGED
|
@@ -1,16 +1,86 @@
|
|
|
1
|
-
import { OutputFormat } from './config.js';
|
|
1
|
+
import { OutputFormat, ProfileConfig } from './config.js';
|
|
2
2
|
export declare class OutputFormatter {
|
|
3
3
|
private formatGetter;
|
|
4
|
-
|
|
4
|
+
private profileConfigGetter?;
|
|
5
|
+
constructor(formatOrGetter?: OutputFormat | (() => OutputFormat), profileConfigGetter?: () => ProfileConfig | undefined);
|
|
5
6
|
private getFormat;
|
|
7
|
+
private getProfileConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Get profile config (public accessor for commands)
|
|
10
|
+
*/
|
|
11
|
+
getProfile(): ProfileConfig | undefined;
|
|
12
|
+
private getColorScheme;
|
|
13
|
+
private shouldShowTips;
|
|
14
|
+
/**
|
|
15
|
+
* Apply color based on profile's color scheme
|
|
16
|
+
*/
|
|
17
|
+
private applyColor;
|
|
18
|
+
/**
|
|
19
|
+
* Conditionally show tip based on profile
|
|
20
|
+
*/
|
|
21
|
+
private showTip;
|
|
6
22
|
output(data: any, fields?: string[]): void;
|
|
7
23
|
success(message: string): void;
|
|
8
24
|
error(message: string): void;
|
|
9
25
|
info(message: string): void;
|
|
26
|
+
warning(message: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Output JSON with syntax highlighting
|
|
29
|
+
*/
|
|
30
|
+
private outputJson;
|
|
31
|
+
/**
|
|
32
|
+
* Syntax highlighting for JSON output
|
|
33
|
+
*/
|
|
34
|
+
private highlightJson;
|
|
10
35
|
private outputTable;
|
|
36
|
+
/**
|
|
37
|
+
* Display pagination header with item counts
|
|
38
|
+
*/
|
|
39
|
+
private displayPaginationHeader;
|
|
40
|
+
/**
|
|
41
|
+
* Display pagination footer with navigation hints
|
|
42
|
+
*/
|
|
43
|
+
private displayPaginationFooter;
|
|
44
|
+
/**
|
|
45
|
+
* Calculate optimal column widths
|
|
46
|
+
*/
|
|
47
|
+
private calculateColumnWidths;
|
|
11
48
|
private getDisplayFields;
|
|
12
49
|
private outputCompact;
|
|
13
50
|
private compactObjectSummary;
|
|
51
|
+
/**
|
|
52
|
+
* Format value for table display with enhanced colors and formatting
|
|
53
|
+
*/
|
|
54
|
+
private formatTableValue;
|
|
55
|
+
/**
|
|
56
|
+
* Format status with color-coded badges
|
|
57
|
+
*/
|
|
58
|
+
private formatStatus;
|
|
59
|
+
/**
|
|
60
|
+
* Format date based on profile settings
|
|
61
|
+
*/
|
|
62
|
+
private formatDate;
|
|
63
|
+
/**
|
|
64
|
+
* Format date as ISO 8601 (for developer profile)
|
|
65
|
+
*/
|
|
66
|
+
private formatDateISO;
|
|
67
|
+
/**
|
|
68
|
+
* Format date in friendly format (for balanced profile)
|
|
69
|
+
* Example: "Oct 12, 2025 10:30 AM"
|
|
70
|
+
*/
|
|
71
|
+
private formatDateFriendly;
|
|
72
|
+
/**
|
|
73
|
+
* Format date with relative time (for marketer profile)
|
|
74
|
+
* Example: "2 hours ago"
|
|
75
|
+
*/
|
|
76
|
+
private formatDateRelative;
|
|
77
|
+
/**
|
|
78
|
+
* Format number with thousands separator
|
|
79
|
+
*/
|
|
80
|
+
private formatNumber;
|
|
81
|
+
/**
|
|
82
|
+
* Legacy formatValue for compact mode
|
|
83
|
+
*/
|
|
14
84
|
private formatValue;
|
|
15
85
|
}
|
|
16
86
|
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1D,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,mBAAmB,CAAC,CAAkC;gBAG5D,cAAc,GAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAU,EAC5D,mBAAmB,CAAC,EAAE,MAAM,aAAa,GAAG,SAAS;IAUvD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACI,UAAU,IAAI,aAAa,GAAG,SAAS;IAI9C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAc1C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,WAAW;IAqDnB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;IAyIrB,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;CASpB"}
|