depfixer 1.0.0 → 1.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/dist/commands/audit.d.ts +19 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +170 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/fix.d.ts +10 -3
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +407 -41
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/graph.d.ts +1 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +17 -12
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +120 -19
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +6 -0
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/migrate.d.ts +22 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +874 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/smart.d.ts +23 -0
- package/dist/commands/smart.d.ts.map +1 -0
- package/dist/commands/smart.js +1024 -0
- package/dist/commands/smart.js.map +1 -0
- package/dist/commands/whoami.d.ts +14 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +65 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.js +156 -39
- package/dist/index.js.map +1 -1
- package/dist/services/analytics.d.ts +108 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/analytics.js +305 -0
- package/dist/services/analytics.js.map +1 -0
- package/dist/services/api-client.d.ts +159 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +192 -10
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/auth-manager.d.ts +14 -0
- package/dist/services/auth-manager.d.ts.map +1 -1
- package/dist/services/auth-manager.js +30 -0
- package/dist/services/auth-manager.js.map +1 -1
- package/dist/services/cache-manager.d.ts +55 -22
- package/dist/services/cache-manager.d.ts.map +1 -1
- package/dist/services/cache-manager.js +99 -29
- package/dist/services/cache-manager.js.map +1 -1
- package/dist/services/device-id.d.ts +20 -0
- package/dist/services/device-id.d.ts.map +1 -0
- package/dist/services/device-id.js +70 -0
- package/dist/services/device-id.js.map +1 -0
- package/dist/services/package-json.d.ts +44 -5
- package/dist/services/package-json.d.ts.map +1 -1
- package/dist/services/package-json.js +273 -20
- package/dist/services/package-json.js.map +1 -1
- package/dist/services/payment-flow.d.ts +108 -0
- package/dist/services/payment-flow.d.ts.map +1 -0
- package/dist/services/payment-flow.js +476 -0
- package/dist/services/payment-flow.js.map +1 -0
- package/dist/services/session-manager.d.ts +85 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +203 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/utils/design-system.d.ts +90 -0
- package/dist/utils/design-system.d.ts.map +1 -0
- package/dist/utils/design-system.js +338 -0
- package/dist/utils/design-system.js.map +1 -0
- package/dist/utils/output.d.ts +48 -1
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +180 -17
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/print.d.ts +116 -0
- package/dist/utils/print.d.ts.map +1 -0
- package/dist/utils/print.js +190 -0
- package/dist/utils/print.js.map +1 -0
- package/package.json +13 -2
- package/dist/commands/analyze.d.ts +0 -18
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -404
- package/dist/commands/analyze.js.map +0 -1
- package/dist/services/gitignore.d.ts +0 -19
- package/dist/services/gitignore.d.ts.map +0 -1
- package/dist/services/gitignore.js +0 -64
- package/dist/services/gitignore.js.map +0 -1
package/dist/utils/output.d.ts
CHANGED
|
@@ -60,13 +60,14 @@ export declare function createFullTable(conflicts: Array<{
|
|
|
60
60
|
description: string;
|
|
61
61
|
}>): string;
|
|
62
62
|
/**
|
|
63
|
-
* Create migration table
|
|
63
|
+
* Create migration table (clean, without Reason column)
|
|
64
64
|
*/
|
|
65
65
|
export declare function createMigrationTable(corePackages: Array<{
|
|
66
66
|
package: string;
|
|
67
67
|
currentVersion: string;
|
|
68
68
|
targetVersion: string;
|
|
69
69
|
changeType: string;
|
|
70
|
+
isRemoval?: boolean;
|
|
70
71
|
}>): string;
|
|
71
72
|
/**
|
|
72
73
|
* Print upgrade call-to-action box
|
|
@@ -88,4 +89,50 @@ export declare function printPrefetchProgress(fetchedCount: number, totalPackage
|
|
|
88
89
|
* Clear the current line (for progress updates)
|
|
89
90
|
*/
|
|
90
91
|
export declare function clearLine(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Run an animated step sequence with spinner
|
|
94
|
+
* Each step displays for a short time before moving to the next
|
|
95
|
+
* For long-running tasks, shows elapsed time after steps complete
|
|
96
|
+
*/
|
|
97
|
+
export declare function runStepSequence(steps: string[], task: () => Promise<void>, options: {
|
|
98
|
+
successMessage?: string | null;
|
|
99
|
+
minStepDuration?: number;
|
|
100
|
+
}): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Print project info header for analysis
|
|
103
|
+
*/
|
|
104
|
+
export declare function printProjectInfo(projectName: string, fileSize: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Print migration target header
|
|
107
|
+
*/
|
|
108
|
+
export declare function printMigrationHeader(projectName: string, targetFramework: string, targetVersion: string): void;
|
|
109
|
+
/**
|
|
110
|
+
* Sleep helper for delays
|
|
111
|
+
*/
|
|
112
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Print content with a delay before it
|
|
115
|
+
*/
|
|
116
|
+
export declare function printWithDelay(content: string | (() => void), delayMs?: number): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Reveal multiple sections with staggered delays
|
|
119
|
+
* Each section is a function that prints content
|
|
120
|
+
*/
|
|
121
|
+
export declare function revealSections(sections: Array<() => void>, options?: {
|
|
122
|
+
delayBetween?: number;
|
|
123
|
+
initialDelay?: number;
|
|
124
|
+
}): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Print lines one by one with a typing effect
|
|
127
|
+
*/
|
|
128
|
+
export declare function printLinesAnimated(lines: string[], options?: {
|
|
129
|
+
delayPerLine?: number;
|
|
130
|
+
indent?: string;
|
|
131
|
+
}): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Animate table rows appearing one by one
|
|
134
|
+
*/
|
|
135
|
+
export declare function printTableAnimated(headerFn: () => void, rows: Array<() => void>, footerFn?: () => void, options?: {
|
|
136
|
+
delayPerRow?: number;
|
|
137
|
+
}): Promise<void>;
|
|
91
138
|
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAEA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/output.js
CHANGED
|
@@ -107,6 +107,9 @@ export function createAuditTable(conflicts) {
|
|
|
107
107
|
],
|
|
108
108
|
colWidths: [12, 25, 15, 50],
|
|
109
109
|
wordWrap: true,
|
|
110
|
+
chars: {
|
|
111
|
+
'mid': '', 'left-mid': '', 'mid-mid': '', 'right-mid': '',
|
|
112
|
+
},
|
|
110
113
|
});
|
|
111
114
|
for (const conflict of conflicts) {
|
|
112
115
|
table.push([
|
|
@@ -132,6 +135,9 @@ export function createFullTable(conflicts) {
|
|
|
132
135
|
],
|
|
133
136
|
colWidths: [12, 22, 13, 13, 40],
|
|
134
137
|
wordWrap: true,
|
|
138
|
+
chars: {
|
|
139
|
+
'mid': '', 'left-mid': '', 'mid-mid': '', 'right-mid': '',
|
|
140
|
+
},
|
|
135
141
|
});
|
|
136
142
|
for (const conflict of conflicts) {
|
|
137
143
|
table.push([
|
|
@@ -145,32 +151,60 @@ export function createFullTable(conflicts) {
|
|
|
145
151
|
return table.toString();
|
|
146
152
|
}
|
|
147
153
|
/**
|
|
148
|
-
*
|
|
154
|
+
* Format change type with symbols and colors
|
|
155
|
+
*/
|
|
156
|
+
function formatChangeType(type, isRemoval) {
|
|
157
|
+
if (isRemoval) {
|
|
158
|
+
return chalk.yellow('✗ Deprec.');
|
|
159
|
+
}
|
|
160
|
+
switch (type?.toLowerCase()) {
|
|
161
|
+
case 'major':
|
|
162
|
+
return chalk.red('▲ Major');
|
|
163
|
+
case 'minor':
|
|
164
|
+
return chalk.cyan('~ Minor');
|
|
165
|
+
case 'patch':
|
|
166
|
+
return chalk.green('• Patch');
|
|
167
|
+
default:
|
|
168
|
+
return chalk.gray(type || '');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Create migration table (clean, without Reason column)
|
|
149
173
|
*/
|
|
150
174
|
export function createMigrationTable(corePackages) {
|
|
151
175
|
const table = new Table({
|
|
152
176
|
head: [
|
|
153
|
-
chalk.bold('
|
|
154
|
-
chalk.bold('
|
|
155
|
-
chalk.bold('
|
|
156
|
-
chalk.bold('
|
|
177
|
+
chalk.bold('PACKAGE'),
|
|
178
|
+
chalk.bold('CURRENT'),
|
|
179
|
+
chalk.bold('TARGET'),
|
|
180
|
+
chalk.bold('TYPE'),
|
|
157
181
|
],
|
|
158
|
-
colWidths: [
|
|
159
|
-
|
|
182
|
+
colWidths: [35, 14, 14, 14],
|
|
183
|
+
style: {
|
|
184
|
+
head: [],
|
|
185
|
+
border: ['gray'],
|
|
186
|
+
},
|
|
187
|
+
chars: {
|
|
188
|
+
'mid': '', 'left-mid': '', 'mid-mid': '', 'right-mid': '',
|
|
189
|
+
},
|
|
160
190
|
});
|
|
161
191
|
for (const pkg of corePackages) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
else if (pkg.
|
|
168
|
-
|
|
192
|
+
// Handle target display
|
|
193
|
+
let targetDisplay;
|
|
194
|
+
if (pkg.isRemoval) {
|
|
195
|
+
targetDisplay = chalk.red('🗑 REMOVE');
|
|
196
|
+
}
|
|
197
|
+
else if (!pkg.targetVersion || pkg.targetVersion === pkg.currentVersion) {
|
|
198
|
+
targetDisplay = chalk.dim('Pinned');
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
targetDisplay = chalk.green(pkg.targetVersion);
|
|
202
|
+
}
|
|
169
203
|
table.push([
|
|
170
204
|
pkg.package,
|
|
171
205
|
pkg.currentVersion,
|
|
172
|
-
|
|
173
|
-
|
|
206
|
+
targetDisplay,
|
|
207
|
+
formatChangeType(pkg.changeType, pkg.isRemoval),
|
|
174
208
|
]);
|
|
175
209
|
}
|
|
176
210
|
return table.toString();
|
|
@@ -185,7 +219,7 @@ export function printUpgradeBox(issueCount) {
|
|
|
185
219
|
│ Found ${chalk.bold(issueCount)} issue${issueCount !== 1 ? 's' : ''}. Get specific version recommendations: │
|
|
186
220
|
│ │
|
|
187
221
|
│ ${chalk.cyan('npx depfixer login')} │
|
|
188
|
-
│ ${chalk.cyan('npx depfixer
|
|
222
|
+
│ ${chalk.cyan('npx depfixer')} │
|
|
189
223
|
└──────────────────────────────────────────────────────────────┘`;
|
|
190
224
|
console.log(box);
|
|
191
225
|
}
|
|
@@ -219,4 +253,133 @@ export function printPrefetchProgress(fetchedCount, totalPackages, percentage) {
|
|
|
219
253
|
export function clearLine() {
|
|
220
254
|
process.stdout.write('\r\x1b[K');
|
|
221
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Run an animated step sequence with spinner
|
|
258
|
+
* Each step displays for a short time before moving to the next
|
|
259
|
+
* For long-running tasks, shows elapsed time after steps complete
|
|
260
|
+
*/
|
|
261
|
+
export async function runStepSequence(steps, task, options) {
|
|
262
|
+
const startTime = Date.now();
|
|
263
|
+
const minStepDuration = options.minStepDuration || 200;
|
|
264
|
+
let currentStep = 0;
|
|
265
|
+
let completed = false;
|
|
266
|
+
// Start the spinner with first step
|
|
267
|
+
const spinner = ora({
|
|
268
|
+
text: steps[0],
|
|
269
|
+
spinner: 'dots',
|
|
270
|
+
indent: 2,
|
|
271
|
+
}).start();
|
|
272
|
+
// Advance steps periodically, then show elapsed time for long tasks
|
|
273
|
+
const stepInterval = setInterval(() => {
|
|
274
|
+
if (completed)
|
|
275
|
+
return;
|
|
276
|
+
currentStep++;
|
|
277
|
+
if (currentStep < steps.length) {
|
|
278
|
+
spinner.text = steps[currentStep];
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
// All steps exhausted - show elapsed time for long-running tasks
|
|
282
|
+
const elapsed = Math.floor((Date.now() - startTime) / 1000);
|
|
283
|
+
if (elapsed >= 3) {
|
|
284
|
+
spinner.text = `Processing large project... ${elapsed}s`;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}, minStepDuration);
|
|
288
|
+
try {
|
|
289
|
+
await task();
|
|
290
|
+
completed = true;
|
|
291
|
+
clearInterval(stepInterval);
|
|
292
|
+
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
293
|
+
if (options.successMessage) {
|
|
294
|
+
spinner.succeed(`${options.successMessage} (${elapsed}s)`);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
// No success message - just stop the spinner silently
|
|
298
|
+
spinner.stop();
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
completed = true;
|
|
303
|
+
clearInterval(stepInterval);
|
|
304
|
+
spinner.fail('Failed');
|
|
305
|
+
throw error;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Print project info header for analysis
|
|
310
|
+
*/
|
|
311
|
+
export function printProjectInfo(projectName, fileSize) {
|
|
312
|
+
console.log();
|
|
313
|
+
console.log(chalk.dim(` 📦 Project: ${chalk.white(projectName)}`));
|
|
314
|
+
console.log(chalk.dim(` 📋 File: package.json (${fileSize})`));
|
|
315
|
+
console.log();
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Print migration target header
|
|
319
|
+
*/
|
|
320
|
+
export function printMigrationHeader(projectName, targetFramework, targetVersion) {
|
|
321
|
+
console.log();
|
|
322
|
+
console.log(chalk.dim(` 📦 Project: ${chalk.white(projectName)}`));
|
|
323
|
+
console.log(chalk.dim(` 🎯 Target: ${chalk.cyan(`${targetFramework} ${targetVersion}`)}`));
|
|
324
|
+
console.log();
|
|
325
|
+
}
|
|
326
|
+
// ============================================================================
|
|
327
|
+
// SMOOTH REVEAL UTILITIES
|
|
328
|
+
// ============================================================================
|
|
329
|
+
/**
|
|
330
|
+
* Sleep helper for delays
|
|
331
|
+
*/
|
|
332
|
+
export function sleep(ms) {
|
|
333
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Print content with a delay before it
|
|
337
|
+
*/
|
|
338
|
+
export async function printWithDelay(content, delayMs = 100) {
|
|
339
|
+
await sleep(delayMs);
|
|
340
|
+
if (typeof content === 'function') {
|
|
341
|
+
content();
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
console.log(content);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Reveal multiple sections with staggered delays
|
|
349
|
+
* Each section is a function that prints content
|
|
350
|
+
*/
|
|
351
|
+
export async function revealSections(sections, options = {}) {
|
|
352
|
+
const { delayBetween = 150, initialDelay = 50 } = options;
|
|
353
|
+
await sleep(initialDelay);
|
|
354
|
+
for (let i = 0; i < sections.length; i++) {
|
|
355
|
+
sections[i]();
|
|
356
|
+
if (i < sections.length - 1) {
|
|
357
|
+
await sleep(delayBetween);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Print lines one by one with a typing effect
|
|
363
|
+
*/
|
|
364
|
+
export async function printLinesAnimated(lines, options = {}) {
|
|
365
|
+
const { delayPerLine = 50, indent = '' } = options;
|
|
366
|
+
for (const line of lines) {
|
|
367
|
+
console.log(indent + line);
|
|
368
|
+
await sleep(delayPerLine);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Animate table rows appearing one by one
|
|
373
|
+
*/
|
|
374
|
+
export async function printTableAnimated(headerFn, rows, footerFn, options = {}) {
|
|
375
|
+
const { delayPerRow = 30 } = options;
|
|
376
|
+
headerFn();
|
|
377
|
+
for (const row of rows) {
|
|
378
|
+
await sleep(delayPerRow);
|
|
379
|
+
row();
|
|
380
|
+
}
|
|
381
|
+
if (footerFn) {
|
|
382
|
+
footerFn();
|
|
383
|
+
}
|
|
384
|
+
}
|
|
222
385
|
//# sourceMappingURL=output.js.map
|
package/dist/utils/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animated Print Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized, reusable print functions with AI-style typing effects.
|
|
5
|
+
* Use these for a smooth, step-by-step reveal experience.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Sleep helper
|
|
9
|
+
*/
|
|
10
|
+
declare function sleep(ms: number): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Print text character by character (typewriter effect)
|
|
13
|
+
*/
|
|
14
|
+
export declare function printChars(text: string, options?: {
|
|
15
|
+
delay?: number;
|
|
16
|
+
newline?: boolean;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Print text word by word
|
|
20
|
+
*/
|
|
21
|
+
export declare function printWords(text: string, options?: {
|
|
22
|
+
delay?: number;
|
|
23
|
+
newline?: boolean;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Print a single line with optional delay before
|
|
27
|
+
*/
|
|
28
|
+
export declare function printLine(text: string, options?: {
|
|
29
|
+
delayBefore?: number;
|
|
30
|
+
delayAfter?: number;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Print multiple lines with staggered delays
|
|
34
|
+
*/
|
|
35
|
+
export declare function printLines(lines: string[], options?: {
|
|
36
|
+
delay?: number;
|
|
37
|
+
initialDelay?: number;
|
|
38
|
+
}): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Print a section with header and content
|
|
41
|
+
*/
|
|
42
|
+
export declare function printSection(header: string, content: string | string[], options?: {
|
|
43
|
+
headerDelay?: number;
|
|
44
|
+
contentDelay?: number;
|
|
45
|
+
icon?: string;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Print table rows one by one
|
|
49
|
+
*/
|
|
50
|
+
export declare function printTableAnimated(rows: string[], options?: {
|
|
51
|
+
rowDelay?: number;
|
|
52
|
+
headerRows?: number;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Print with a reveal effect (fade in simulation via delay)
|
|
56
|
+
*/
|
|
57
|
+
export declare function printReveal(text: string, options?: {
|
|
58
|
+
delay?: number;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Print a progress indicator while waiting
|
|
62
|
+
*/
|
|
63
|
+
export declare function printProgress(items: string[], options?: {
|
|
64
|
+
delay?: number;
|
|
65
|
+
prefix?: string;
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Print a key-value pair with animation
|
|
69
|
+
*/
|
|
70
|
+
export declare function printKeyValue(key: string, value: string, options?: {
|
|
71
|
+
delay?: number;
|
|
72
|
+
keyWidth?: number;
|
|
73
|
+
keyColor?: (s: string) => string;
|
|
74
|
+
valueColor?: (s: string) => string;
|
|
75
|
+
}): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Print multiple key-value pairs
|
|
78
|
+
*/
|
|
79
|
+
export declare function printKeyValues(pairs: Array<{
|
|
80
|
+
key: string;
|
|
81
|
+
value: string;
|
|
82
|
+
}>, options?: {
|
|
83
|
+
delay?: number;
|
|
84
|
+
keyWidth?: number;
|
|
85
|
+
keyColor?: (s: string) => string;
|
|
86
|
+
valueColor?: (s: string) => string;
|
|
87
|
+
}): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Print a boxed message with animation
|
|
90
|
+
*/
|
|
91
|
+
export declare function printBox(lines: string[], options?: {
|
|
92
|
+
width?: number;
|
|
93
|
+
borderColor?: (s: string) => string;
|
|
94
|
+
delay?: number;
|
|
95
|
+
}): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Print a divider line
|
|
98
|
+
*/
|
|
99
|
+
export declare function printDivider(options?: {
|
|
100
|
+
char?: string;
|
|
101
|
+
width?: number;
|
|
102
|
+
color?: (s: string) => string;
|
|
103
|
+
delay?: number;
|
|
104
|
+
}): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Print an empty line with optional delay
|
|
107
|
+
*/
|
|
108
|
+
export declare function printEmpty(delay?: number): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Batch print - print multiple items with a consistent rhythm
|
|
111
|
+
*/
|
|
112
|
+
export declare function printBatch(items: Array<string | (() => void) | (() => Promise<void>)>, options?: {
|
|
113
|
+
delay?: number;
|
|
114
|
+
}): Promise<void>;
|
|
115
|
+
export { sleep };
|
|
116
|
+
//# sourceMappingURL=print.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../src/utils/print.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animated Print Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized, reusable print functions with AI-style typing effects.
|
|
5
|
+
* Use these for a smooth, step-by-step reveal experience.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
// Default timing configuration
|
|
9
|
+
const DEFAULT_CHAR_DELAY = 8; // ms per character
|
|
10
|
+
const DEFAULT_WORD_DELAY = 30; // ms per word
|
|
11
|
+
const DEFAULT_LINE_DELAY = 50; // ms per line
|
|
12
|
+
const DEFAULT_SECTION_DELAY = 150; // ms between sections
|
|
13
|
+
/**
|
|
14
|
+
* Sleep helper
|
|
15
|
+
*/
|
|
16
|
+
function sleep(ms) {
|
|
17
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Print text character by character (typewriter effect)
|
|
21
|
+
*/
|
|
22
|
+
export async function printChars(text, options = {}) {
|
|
23
|
+
const { delay = DEFAULT_CHAR_DELAY, newline = true } = options;
|
|
24
|
+
for (const char of text) {
|
|
25
|
+
process.stdout.write(char);
|
|
26
|
+
if (delay > 0)
|
|
27
|
+
await sleep(delay);
|
|
28
|
+
}
|
|
29
|
+
if (newline) {
|
|
30
|
+
console.log();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Print text word by word
|
|
35
|
+
*/
|
|
36
|
+
export async function printWords(text, options = {}) {
|
|
37
|
+
const { delay = DEFAULT_WORD_DELAY, newline = true } = options;
|
|
38
|
+
const words = text.split(' ');
|
|
39
|
+
for (let i = 0; i < words.length; i++) {
|
|
40
|
+
process.stdout.write(words[i]);
|
|
41
|
+
if (i < words.length - 1) {
|
|
42
|
+
process.stdout.write(' ');
|
|
43
|
+
}
|
|
44
|
+
if (delay > 0)
|
|
45
|
+
await sleep(delay);
|
|
46
|
+
}
|
|
47
|
+
if (newline) {
|
|
48
|
+
console.log();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Print a single line with optional delay before
|
|
53
|
+
*/
|
|
54
|
+
export async function printLine(text, options = {}) {
|
|
55
|
+
const { delayBefore = 0, delayAfter = 0 } = options;
|
|
56
|
+
if (delayBefore > 0)
|
|
57
|
+
await sleep(delayBefore);
|
|
58
|
+
console.log(text);
|
|
59
|
+
if (delayAfter > 0)
|
|
60
|
+
await sleep(delayAfter);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Print multiple lines with staggered delays
|
|
64
|
+
*/
|
|
65
|
+
export async function printLines(lines, options = {}) {
|
|
66
|
+
const { delay = DEFAULT_LINE_DELAY, initialDelay = 0 } = options;
|
|
67
|
+
if (initialDelay > 0)
|
|
68
|
+
await sleep(initialDelay);
|
|
69
|
+
for (let i = 0; i < lines.length; i++) {
|
|
70
|
+
console.log(lines[i]);
|
|
71
|
+
if (i < lines.length - 1 && delay > 0) {
|
|
72
|
+
await sleep(delay);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Print a section with header and content
|
|
78
|
+
*/
|
|
79
|
+
export async function printSection(header, content, options = {}) {
|
|
80
|
+
const { headerDelay = DEFAULT_SECTION_DELAY, contentDelay = DEFAULT_LINE_DELAY, icon = '' } = options;
|
|
81
|
+
// Print header
|
|
82
|
+
await sleep(headerDelay);
|
|
83
|
+
console.log(icon ? `${icon} ${header}` : header);
|
|
84
|
+
// Print content
|
|
85
|
+
const lines = Array.isArray(content) ? content : [content];
|
|
86
|
+
for (const line of lines) {
|
|
87
|
+
await sleep(contentDelay);
|
|
88
|
+
console.log(line);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Print table rows one by one
|
|
93
|
+
*/
|
|
94
|
+
export async function printTableAnimated(rows, options = {}) {
|
|
95
|
+
const { rowDelay = 35, headerRows = 3 } = options;
|
|
96
|
+
for (let i = 0; i < rows.length; i++) {
|
|
97
|
+
console.log(rows[i]);
|
|
98
|
+
// Faster for header rows, slower for data rows
|
|
99
|
+
if (i < headerRows) {
|
|
100
|
+
await sleep(rowDelay / 2);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
await sleep(rowDelay);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Print with a reveal effect (fade in simulation via delay)
|
|
109
|
+
*/
|
|
110
|
+
export async function printReveal(text, options = {}) {
|
|
111
|
+
const { delay = 100 } = options;
|
|
112
|
+
await sleep(delay);
|
|
113
|
+
console.log(text);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Print a progress indicator while waiting
|
|
117
|
+
*/
|
|
118
|
+
export async function printProgress(items, options = {}) {
|
|
119
|
+
const { delay = 200, prefix = ' ' } = options;
|
|
120
|
+
for (const item of items) {
|
|
121
|
+
console.log(`${prefix}${item}`);
|
|
122
|
+
await sleep(delay);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Print a key-value pair with animation
|
|
127
|
+
*/
|
|
128
|
+
export async function printKeyValue(key, value, options = {}) {
|
|
129
|
+
const { delay = 50, keyWidth = 12, keyColor = chalk.dim, valueColor = chalk.white } = options;
|
|
130
|
+
await sleep(delay);
|
|
131
|
+
console.log(` ${keyColor(key.padEnd(keyWidth))} ${valueColor(value)}`);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Print multiple key-value pairs
|
|
135
|
+
*/
|
|
136
|
+
export async function printKeyValues(pairs, options = {}) {
|
|
137
|
+
for (const { key, value } of pairs) {
|
|
138
|
+
await printKeyValue(key, value, options);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Print a boxed message with animation
|
|
143
|
+
*/
|
|
144
|
+
export async function printBox(lines, options = {}) {
|
|
145
|
+
const { width = 50, borderColor = chalk.gray, delay = 40 } = options;
|
|
146
|
+
const top = borderColor('┌' + '─'.repeat(width - 2) + '┐');
|
|
147
|
+
const bottom = borderColor('└' + '─'.repeat(width - 2) + '┘');
|
|
148
|
+
console.log(top);
|
|
149
|
+
await sleep(delay);
|
|
150
|
+
for (const line of lines) {
|
|
151
|
+
const paddedLine = line.padEnd(width - 4);
|
|
152
|
+
console.log(borderColor('│') + ' ' + paddedLine + ' ' + borderColor('│'));
|
|
153
|
+
await sleep(delay);
|
|
154
|
+
}
|
|
155
|
+
console.log(bottom);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Print a divider line
|
|
159
|
+
*/
|
|
160
|
+
export async function printDivider(options = {}) {
|
|
161
|
+
const { char = '─', width = 50, color = chalk.gray, delay = 30 } = options;
|
|
162
|
+
await sleep(delay);
|
|
163
|
+
console.log(color(char.repeat(width)));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Print an empty line with optional delay
|
|
167
|
+
*/
|
|
168
|
+
export async function printEmpty(delay = 0) {
|
|
169
|
+
if (delay > 0)
|
|
170
|
+
await sleep(delay);
|
|
171
|
+
console.log();
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Batch print - print multiple items with a consistent rhythm
|
|
175
|
+
*/
|
|
176
|
+
export async function printBatch(items, options = {}) {
|
|
177
|
+
const { delay = 50 } = options;
|
|
178
|
+
for (const item of items) {
|
|
179
|
+
if (typeof item === 'string') {
|
|
180
|
+
console.log(item);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
await item();
|
|
184
|
+
}
|
|
185
|
+
await sleep(delay);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Re-export sleep for convenience
|
|
189
|
+
export { sleep };
|
|
190
|
+
//# sourceMappingURL=print.js.map
|