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.
Files changed (85) hide show
  1. package/dist/commands/audit.d.ts +19 -0
  2. package/dist/commands/audit.d.ts.map +1 -0
  3. package/dist/commands/audit.js +170 -0
  4. package/dist/commands/audit.js.map +1 -0
  5. package/dist/commands/fix.d.ts +10 -3
  6. package/dist/commands/fix.d.ts.map +1 -1
  7. package/dist/commands/fix.js +407 -41
  8. package/dist/commands/fix.js.map +1 -1
  9. package/dist/commands/graph.d.ts +1 -1
  10. package/dist/commands/graph.d.ts.map +1 -1
  11. package/dist/commands/graph.js +17 -12
  12. package/dist/commands/graph.js.map +1 -1
  13. package/dist/commands/login.d.ts.map +1 -1
  14. package/dist/commands/login.js +120 -19
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/logout.d.ts.map +1 -1
  17. package/dist/commands/logout.js +6 -0
  18. package/dist/commands/logout.js.map +1 -1
  19. package/dist/commands/migrate.d.ts +22 -0
  20. package/dist/commands/migrate.d.ts.map +1 -0
  21. package/dist/commands/migrate.js +874 -0
  22. package/dist/commands/migrate.js.map +1 -0
  23. package/dist/commands/smart.d.ts +23 -0
  24. package/dist/commands/smart.d.ts.map +1 -0
  25. package/dist/commands/smart.js +1024 -0
  26. package/dist/commands/smart.js.map +1 -0
  27. package/dist/commands/whoami.d.ts +14 -0
  28. package/dist/commands/whoami.d.ts.map +1 -0
  29. package/dist/commands/whoami.js +65 -0
  30. package/dist/commands/whoami.js.map +1 -0
  31. package/dist/index.js +156 -39
  32. package/dist/index.js.map +1 -1
  33. package/dist/services/analytics.d.ts +108 -0
  34. package/dist/services/analytics.d.ts.map +1 -0
  35. package/dist/services/analytics.js +305 -0
  36. package/dist/services/analytics.js.map +1 -0
  37. package/dist/services/api-client.d.ts +159 -0
  38. package/dist/services/api-client.d.ts.map +1 -1
  39. package/dist/services/api-client.js +192 -10
  40. package/dist/services/api-client.js.map +1 -1
  41. package/dist/services/auth-manager.d.ts +14 -0
  42. package/dist/services/auth-manager.d.ts.map +1 -1
  43. package/dist/services/auth-manager.js +30 -0
  44. package/dist/services/auth-manager.js.map +1 -1
  45. package/dist/services/cache-manager.d.ts +55 -22
  46. package/dist/services/cache-manager.d.ts.map +1 -1
  47. package/dist/services/cache-manager.js +99 -29
  48. package/dist/services/cache-manager.js.map +1 -1
  49. package/dist/services/device-id.d.ts +20 -0
  50. package/dist/services/device-id.d.ts.map +1 -0
  51. package/dist/services/device-id.js +70 -0
  52. package/dist/services/device-id.js.map +1 -0
  53. package/dist/services/package-json.d.ts +44 -5
  54. package/dist/services/package-json.d.ts.map +1 -1
  55. package/dist/services/package-json.js +273 -20
  56. package/dist/services/package-json.js.map +1 -1
  57. package/dist/services/payment-flow.d.ts +108 -0
  58. package/dist/services/payment-flow.d.ts.map +1 -0
  59. package/dist/services/payment-flow.js +476 -0
  60. package/dist/services/payment-flow.js.map +1 -0
  61. package/dist/services/session-manager.d.ts +85 -0
  62. package/dist/services/session-manager.d.ts.map +1 -0
  63. package/dist/services/session-manager.js +203 -0
  64. package/dist/services/session-manager.js.map +1 -0
  65. package/dist/utils/design-system.d.ts +90 -0
  66. package/dist/utils/design-system.d.ts.map +1 -0
  67. package/dist/utils/design-system.js +338 -0
  68. package/dist/utils/design-system.js.map +1 -0
  69. package/dist/utils/output.d.ts +48 -1
  70. package/dist/utils/output.d.ts.map +1 -1
  71. package/dist/utils/output.js +180 -17
  72. package/dist/utils/output.js.map +1 -1
  73. package/dist/utils/print.d.ts +116 -0
  74. package/dist/utils/print.d.ts.map +1 -0
  75. package/dist/utils/print.js +190 -0
  76. package/dist/utils/print.js.map +1 -0
  77. package/package.json +13 -2
  78. package/dist/commands/analyze.d.ts +0 -18
  79. package/dist/commands/analyze.d.ts.map +0 -1
  80. package/dist/commands/analyze.js +0 -404
  81. package/dist/commands/analyze.js.map +0 -1
  82. package/dist/services/gitignore.d.ts +0 -19
  83. package/dist/services/gitignore.d.ts.map +0 -1
  84. package/dist/services/gitignore.js +0 -64
  85. package/dist/services/gitignore.js.map +0 -1
@@ -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;AAe/B;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAK/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAQpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAYP;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,GAAG,MAAM,CAsBV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,GAAG,MAAM,CAwBV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,GAAG,MAAM,CA2BV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAKhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAG3G;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
@@ -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
- * Create migration table
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('Package'),
154
- chalk.bold('Current'),
155
- chalk.bold('Target'),
156
- chalk.bold('Change'),
177
+ chalk.bold('PACKAGE'),
178
+ chalk.bold('CURRENT'),
179
+ chalk.bold('TARGET'),
180
+ chalk.bold('TYPE'),
157
181
  ],
158
- colWidths: [30, 15, 15, 15],
159
- wordWrap: true,
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
- let changeColor = chalk.white;
163
- if (pkg.changeType === 'major')
164
- changeColor = chalk.red;
165
- else if (pkg.changeType === 'minor')
166
- changeColor = chalk.yellow;
167
- else if (pkg.changeType === 'patch')
168
- changeColor = chalk.blue;
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
- chalk.green(pkg.targetVersion),
173
- changeColor(pkg.changeType),
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 analyze --full')}
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
@@ -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":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,iBAAS,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B,GACL,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5C,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B,GACL,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3D,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,IAAI,CAAC,CAWf;AAGD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -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