@nathanvale/chatline 0.0.1 → 0.0.2-next.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 (213) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/bin/index.js +1 -1
  3. package/dist/index.js +1 -1
  4. package/package.json +1 -1
  5. package/dist/cli/commands/clean.d.ts +0 -17
  6. package/dist/cli/commands/clean.d.ts.map +0 -1
  7. package/dist/cli/commands/clean.js +0 -142
  8. package/dist/cli/commands/clean.js.map +0 -1
  9. package/dist/cli/commands/doctor.d.ts +0 -17
  10. package/dist/cli/commands/doctor.d.ts.map +0 -1
  11. package/dist/cli/commands/doctor.js +0 -202
  12. package/dist/cli/commands/doctor.js.map +0 -1
  13. package/dist/cli/commands/enrich-ai.d.ts +0 -17
  14. package/dist/cli/commands/enrich-ai.d.ts.map +0 -1
  15. package/dist/cli/commands/enrich-ai.js +0 -371
  16. package/dist/cli/commands/enrich-ai.js.map +0 -1
  17. package/dist/cli/commands/index.d.ts +0 -16
  18. package/dist/cli/commands/index.d.ts.map +0 -1
  19. package/dist/cli/commands/index.js +0 -16
  20. package/dist/cli/commands/index.js.map +0 -1
  21. package/dist/cli/commands/ingest-csv.d.ts +0 -17
  22. package/dist/cli/commands/ingest-csv.d.ts.map +0 -1
  23. package/dist/cli/commands/ingest-csv.js +0 -138
  24. package/dist/cli/commands/ingest-csv.js.map +0 -1
  25. package/dist/cli/commands/ingest-db.d.ts +0 -17
  26. package/dist/cli/commands/ingest-db.d.ts.map +0 -1
  27. package/dist/cli/commands/ingest-db.js +0 -159
  28. package/dist/cli/commands/ingest-db.js.map +0 -1
  29. package/dist/cli/commands/init.d.ts +0 -17
  30. package/dist/cli/commands/init.d.ts.map +0 -1
  31. package/dist/cli/commands/init.js +0 -110
  32. package/dist/cli/commands/init.js.map +0 -1
  33. package/dist/cli/commands/normalize-link.d.ts +0 -16
  34. package/dist/cli/commands/normalize-link.d.ts.map +0 -1
  35. package/dist/cli/commands/normalize-link.js +0 -144
  36. package/dist/cli/commands/normalize-link.js.map +0 -1
  37. package/dist/cli/commands/render-markdown.d.ts +0 -17
  38. package/dist/cli/commands/render-markdown.d.ts.map +0 -1
  39. package/dist/cli/commands/render-markdown.js +0 -218
  40. package/dist/cli/commands/render-markdown.js.map +0 -1
  41. package/dist/cli/commands/stats.d.ts +0 -17
  42. package/dist/cli/commands/stats.d.ts.map +0 -1
  43. package/dist/cli/commands/stats.js +0 -175
  44. package/dist/cli/commands/stats.js.map +0 -1
  45. package/dist/cli/commands/validate.d.ts +0 -17
  46. package/dist/cli/commands/validate.d.ts.map +0 -1
  47. package/dist/cli/commands/validate.js +0 -152
  48. package/dist/cli/commands/validate.js.map +0 -1
  49. package/dist/cli/index.d.ts +0 -13
  50. package/dist/cli/index.d.ts.map +0 -1
  51. package/dist/cli/index.js +0 -121
  52. package/dist/cli/index.js.map +0 -1
  53. package/dist/cli/types.d.ts +0 -93
  54. package/dist/cli/types.d.ts.map +0 -1
  55. package/dist/cli/types.js +0 -7
  56. package/dist/cli/types.js.map +0 -1
  57. package/dist/cli/utils.d.ts +0 -29
  58. package/dist/cli/utils.d.ts.map +0 -1
  59. package/dist/cli/utils.js +0 -53
  60. package/dist/cli/utils.js.map +0 -1
  61. package/dist/cli.d.ts +0 -9
  62. package/dist/cli.d.ts.map +0 -1
  63. package/dist/cli.js +0 -1805
  64. package/dist/config/generator.d.ts +0 -90
  65. package/dist/config/generator.d.ts.map +0 -1
  66. package/dist/config/generator.js +0 -320
  67. package/dist/config/generator.js.map +0 -1
  68. package/dist/config/loader.d.ts +0 -107
  69. package/dist/config/loader.d.ts.map +0 -1
  70. package/dist/config/loader.js +0 -251
  71. package/dist/config/loader.js.map +0 -1
  72. package/dist/config/schema.d.ts +0 -107
  73. package/dist/config/schema.d.ts.map +0 -1
  74. package/dist/config/schema.js +0 -169
  75. package/dist/config/schema.js.map +0 -1
  76. package/dist/enrich/audio-transcription.d.ts +0 -77
  77. package/dist/enrich/audio-transcription.d.ts.map +0 -1
  78. package/dist/enrich/audio-transcription.js +0 -370
  79. package/dist/enrich/audio-transcription.js.map +0 -1
  80. package/dist/enrich/checkpoint.d.ts +0 -137
  81. package/dist/enrich/checkpoint.d.ts.map +0 -1
  82. package/dist/enrich/checkpoint.js +0 -205
  83. package/dist/enrich/checkpoint.js.map +0 -1
  84. package/dist/enrich/idempotency.d.ts +0 -90
  85. package/dist/enrich/idempotency.d.ts.map +0 -1
  86. package/dist/enrich/idempotency.js +0 -188
  87. package/dist/enrich/idempotency.js.map +0 -1
  88. package/dist/enrich/image-analysis.d.ts +0 -62
  89. package/dist/enrich/image-analysis.d.ts.map +0 -1
  90. package/dist/enrich/image-analysis.js +0 -264
  91. package/dist/enrich/image-analysis.js.map +0 -1
  92. package/dist/enrich/index.d.ts +0 -60
  93. package/dist/enrich/index.d.ts.map +0 -1
  94. package/dist/enrich/index.js +0 -74
  95. package/dist/enrich/index.js.map +0 -1
  96. package/dist/enrich/link-enrichment.d.ts +0 -37
  97. package/dist/enrich/link-enrichment.d.ts.map +0 -1
  98. package/dist/enrich/link-enrichment.js +0 -202
  99. package/dist/enrich/link-enrichment.js.map +0 -1
  100. package/dist/enrich/pdf-video-handling.d.ts +0 -49
  101. package/dist/enrich/pdf-video-handling.d.ts.map +0 -1
  102. package/dist/enrich/pdf-video-handling.js +0 -325
  103. package/dist/enrich/pdf-video-handling.js.map +0 -1
  104. package/dist/enrich/progress-tracker.d.ts +0 -120
  105. package/dist/enrich/progress-tracker.d.ts.map +0 -1
  106. package/dist/enrich/progress-tracker.js +0 -220
  107. package/dist/enrich/progress-tracker.js.map +0 -1
  108. package/dist/enrich/providers/firecrawl.d.ts +0 -18
  109. package/dist/enrich/providers/firecrawl.d.ts.map +0 -1
  110. package/dist/enrich/providers/firecrawl.js +0 -48
  111. package/dist/enrich/providers/firecrawl.js.map +0 -1
  112. package/dist/enrich/providers/generic.d.ts +0 -16
  113. package/dist/enrich/providers/generic.d.ts.map +0 -1
  114. package/dist/enrich/providers/generic.js +0 -36
  115. package/dist/enrich/providers/generic.js.map +0 -1
  116. package/dist/enrich/providers/index.d.ts +0 -14
  117. package/dist/enrich/providers/index.d.ts.map +0 -1
  118. package/dist/enrich/providers/index.js +0 -13
  119. package/dist/enrich/providers/index.js.map +0 -1
  120. package/dist/enrich/providers/instagram.d.ts +0 -16
  121. package/dist/enrich/providers/instagram.d.ts.map +0 -1
  122. package/dist/enrich/providers/instagram.js +0 -43
  123. package/dist/enrich/providers/instagram.js.map +0 -1
  124. package/dist/enrich/providers/spotify.d.ts +0 -16
  125. package/dist/enrich/providers/spotify.d.ts.map +0 -1
  126. package/dist/enrich/providers/spotify.js +0 -45
  127. package/dist/enrich/providers/spotify.js.map +0 -1
  128. package/dist/enrich/providers/twitter.d.ts +0 -16
  129. package/dist/enrich/providers/twitter.d.ts.map +0 -1
  130. package/dist/enrich/providers/twitter.js +0 -43
  131. package/dist/enrich/providers/twitter.js.map +0 -1
  132. package/dist/enrich/providers/types.d.ts +0 -47
  133. package/dist/enrich/providers/types.d.ts.map +0 -1
  134. package/dist/enrich/providers/types.js +0 -15
  135. package/dist/enrich/providers/types.js.map +0 -1
  136. package/dist/enrich/providers/youtube.d.ts +0 -16
  137. package/dist/enrich/providers/youtube.d.ts.map +0 -1
  138. package/dist/enrich/providers/youtube.js +0 -43
  139. package/dist/enrich/providers/youtube.js.map +0 -1
  140. package/dist/enrich/rate-limiting.d.ts +0 -118
  141. package/dist/enrich/rate-limiting.d.ts.map +0 -1
  142. package/dist/enrich/rate-limiting.js +0 -258
  143. package/dist/enrich/rate-limiting.js.map +0 -1
  144. package/dist/index.d.ts.map +0 -1
  145. package/dist/index.js.map +0 -1
  146. package/dist/ingest/dedup-merge.d.ts +0 -82
  147. package/dist/ingest/dedup-merge.d.ts.map +0 -1
  148. package/dist/ingest/dedup-merge.js +0 -262
  149. package/dist/ingest/dedup-merge.js.map +0 -1
  150. package/dist/ingest/ingest-csv.d.ts +0 -62
  151. package/dist/ingest/ingest-csv.d.ts.map +0 -1
  152. package/dist/ingest/ingest-csv.js +0 -300
  153. package/dist/ingest/ingest-csv.js.map +0 -1
  154. package/dist/ingest/ingest-db.d.ts +0 -64
  155. package/dist/ingest/ingest-db.d.ts.map +0 -1
  156. package/dist/ingest/ingest-db.js +0 -172
  157. package/dist/ingest/ingest-db.js.map +0 -1
  158. package/dist/ingest/link-replies-and-tapbacks.d.ts +0 -53
  159. package/dist/ingest/link-replies-and-tapbacks.d.ts.map +0 -1
  160. package/dist/ingest/link-replies-and-tapbacks.js +0 -381
  161. package/dist/ingest/link-replies-and-tapbacks.js.map +0 -1
  162. package/dist/normalize/date-converters.d.ts +0 -45
  163. package/dist/normalize/date-converters.d.ts.map +0 -1
  164. package/dist/normalize/date-converters.js +0 -166
  165. package/dist/normalize/date-converters.js.map +0 -1
  166. package/dist/normalize/path-validator.d.ts +0 -65
  167. package/dist/normalize/path-validator.d.ts.map +0 -1
  168. package/dist/normalize/path-validator.js +0 -221
  169. package/dist/normalize/path-validator.js.map +0 -1
  170. package/dist/normalize/validate-normalized.d.ts +0 -45
  171. package/dist/normalize/validate-normalized.d.ts.map +0 -1
  172. package/dist/normalize/validate-normalized.js +0 -144
  173. package/dist/normalize/validate-normalized.js.map +0 -1
  174. package/dist/render/embeds-blockquotes.d.ts +0 -84
  175. package/dist/render/embeds-blockquotes.d.ts.map +0 -1
  176. package/dist/render/embeds-blockquotes.js +0 -204
  177. package/dist/render/embeds-blockquotes.js.map +0 -1
  178. package/dist/render/grouping.d.ts +0 -78
  179. package/dist/render/grouping.d.ts.map +0 -1
  180. package/dist/render/grouping.js +0 -134
  181. package/dist/render/grouping.js.map +0 -1
  182. package/dist/render/index.d.ts +0 -47
  183. package/dist/render/index.d.ts.map +0 -1
  184. package/dist/render/index.js +0 -245
  185. package/dist/render/index.js.map +0 -1
  186. package/dist/render/reply-rendering.d.ts +0 -88
  187. package/dist/render/reply-rendering.d.ts.map +0 -1
  188. package/dist/render/reply-rendering.js +0 -196
  189. package/dist/render/reply-rendering.js.map +0 -1
  190. package/dist/schema/message.d.ts +0 -125
  191. package/dist/schema/message.d.ts.map +0 -1
  192. package/dist/schema/message.js +0 -331
  193. package/dist/schema/message.js.map +0 -1
  194. package/dist/utils/delta-detection.d.ts +0 -107
  195. package/dist/utils/delta-detection.d.ts.map +0 -1
  196. package/dist/utils/delta-detection.js +0 -199
  197. package/dist/utils/delta-detection.js.map +0 -1
  198. package/dist/utils/enrichment-merge.d.ts +0 -135
  199. package/dist/utils/enrichment-merge.d.ts.map +0 -1
  200. package/dist/utils/enrichment-merge.js +0 -280
  201. package/dist/utils/enrichment-merge.js.map +0 -1
  202. package/dist/utils/human.d.ts +0 -15
  203. package/dist/utils/human.d.ts.map +0 -1
  204. package/dist/utils/human.js +0 -27
  205. package/dist/utils/human.js.map +0 -1
  206. package/dist/utils/incremental-state.d.ts +0 -133
  207. package/dist/utils/incremental-state.d.ts.map +0 -1
  208. package/dist/utils/incremental-state.js +0 -237
  209. package/dist/utils/incremental-state.js.map +0 -1
  210. package/dist/utils/logger.d.ts +0 -40
  211. package/dist/utils/logger.d.ts.map +0 -1
  212. package/dist/utils/logger.js +0 -176
  213. package/dist/utils/logger.js.map +0 -1
package/dist/cli/index.js DELETED
@@ -1,121 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * iMessage Timeline CLI
4
- *
5
- * Main CLI entry point that registers all commands and handles execution.
6
- * This is the modular replacement for the monolithic cli.ts file.
7
- */
8
- import { readFileSync } from 'node:fs';
9
- import { dirname, resolve } from 'node:path';
10
- import { fileURLToPath } from 'node:url';
11
- import { Command } from 'commander';
12
- import { humanError, setHumanLoggingEnabled } from '#utils/human';
13
- import { createLogger } from '#utils/logger';
14
- import { registerCleanCommand, registerDoctorCommand, registerEnrichAICommand, registerIngestCSVCommand, registerIngestDBCommand, registerInitCommand, registerNormalizeLinkCommand, registerRenderMarkdownCommand, registerStatsCommand, registerValidateCommand, } from './commands/index.js';
15
- // Get package.json for version
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = dirname(__filename);
18
- // Path is relative to the bundled output location (dist/bin/index.js)
19
- const packageJsonPath = resolve(__dirname, '../../package.json');
20
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
21
- // Create CLI logger
22
- const cliLogger = createLogger('cli');
23
- /**
24
- * Creates and configures the main CLI program with all commands.
25
- */
26
- export function createProgram() {
27
- const program = new Command();
28
- program
29
- .name('imessage-timeline')
30
- .description('Extract, transform, and analyze iMessage conversations with AI-powered enrichment and timeline rendering')
31
- .version(packageJson.version);
32
- // Global options
33
- program
34
- .option('-v, --verbose', 'enable verbose logging', false)
35
- .option('-q, --quiet', 'suppress non-error output', false)
36
- .option('-c, --config <path>', 'path to config file', 'imessage-config.json')
37
- .option('--json', 'emit structured JSON log events only (machine-readable)', false);
38
- // Toggle human logging before each command action
39
- program.hook('preAction', () => {
40
- const opts = program.opts();
41
- const envJson = String(process.env.IMESSAGE_JSON || '').toLowerCase();
42
- const envJsonOnly = ['1', 'true', 'yes', 'y', 'json', 'json-only'].includes(envJson);
43
- const jsonOnly = Boolean(opts.json) || envJsonOnly;
44
- setHumanLoggingEnabled(!jsonOnly);
45
- });
46
- // Custom error handling
47
- program.configureOutput({
48
- outputError: (str, write) => {
49
- const errorMsg = str
50
- .replace(/^error: /, '❌ Error: ')
51
- .replace(/^Error: /, '❌ Error: ');
52
- write(errorMsg);
53
- cliLogger.error('Commander output error', { raw: str });
54
- },
55
- });
56
- // Custom error handler for better error messages
57
- program.exitOverride((err) => {
58
- if (err.code === 'commander.help' ||
59
- err.code === 'commander.helpDisplayed') {
60
- process.exit(0);
61
- }
62
- if (err.code === 'commander.version') {
63
- process.exit(0);
64
- }
65
- if (err.code === 'commander.missingArgument') {
66
- humanError(`❌ Error: ${err.message}`);
67
- humanError(`\nRun 'imessage-timeline ${program.args[0] || ''} --help' for usage information`);
68
- process.exit(1);
69
- }
70
- if (err.code === 'commander.unknownCommand') {
71
- humanError(`❌ Error: ${err.message}`);
72
- humanError(`\nRun 'imessage-timeline --help' to see available commands`);
73
- process.exit(1);
74
- }
75
- humanError(`❌ Error: ${err.message}`);
76
- cliLogger.error('CLI exit override error', {
77
- code: err.code,
78
- message: err.message,
79
- });
80
- process.exit(err.exitCode || 1);
81
- });
82
- // Function to get global options - passed to each command registration
83
- const getGlobalOptions = () => program.opts();
84
- // Register all commands with the shared global options getter
85
- registerIngestCSVCommand(program, getGlobalOptions);
86
- registerIngestDBCommand(program, getGlobalOptions);
87
- registerNormalizeLinkCommand(program, getGlobalOptions);
88
- registerEnrichAICommand(program, getGlobalOptions);
89
- registerRenderMarkdownCommand(program, getGlobalOptions);
90
- registerValidateCommand(program, getGlobalOptions);
91
- registerStatsCommand(program, getGlobalOptions);
92
- registerCleanCommand(program, getGlobalOptions);
93
- registerDoctorCommand(program, getGlobalOptions);
94
- registerInitCommand(program, getGlobalOptions);
95
- return program;
96
- }
97
- /**
98
- * Main CLI entry point.
99
- */
100
- async function main() {
101
- const program = createProgram();
102
- try {
103
- await program.parseAsync(process.argv);
104
- }
105
- catch (error) {
106
- // Commander handles most errors, but catch any uncaught ones
107
- if (error instanceof Error) {
108
- console.error(`Error: ${error.message}`);
109
- process.exitCode = 1;
110
- }
111
- else {
112
- throw error;
113
- }
114
- }
115
- }
116
- // Run CLI if this is the main module
117
- main().catch((error) => {
118
- console.error('Unexpected error:', error);
119
- process.exitCode = 1;
120
- });
121
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- /**
2
- * CLI Option Types
3
- *
4
- * Shared type definitions for all CLI command options.
5
- */
6
- export type RenderMarkdownOptions = {
7
- input: string;
8
- output?: string;
9
- startDate?: string;
10
- endDate?: string;
11
- groupByTime?: boolean;
12
- nestedReplies?: boolean;
13
- maxNestingDepth?: string;
14
- };
15
- export type ValidateOptions = {
16
- input: string;
17
- quiet?: boolean;
18
- };
19
- export type StatsOptions = {
20
- input: string;
21
- verbose?: boolean;
22
- };
23
- export type CleanOptions = {
24
- checkpointDir: string;
25
- force?: boolean;
26
- all?: boolean;
27
- };
28
- export type DoctorOptions = {
29
- verbose?: boolean;
30
- };
31
- export type InitOptions = {
32
- format: 'json' | 'yaml';
33
- force: boolean;
34
- output?: string;
35
- };
36
- export type IngestCSVOptions = {
37
- input: string;
38
- output: string;
39
- attachments?: Array<string>;
40
- };
41
- export type IngestDBOptions = {
42
- input: string;
43
- output: string;
44
- attachments?: Array<string>;
45
- contact?: string;
46
- };
47
- export type NormalizeLinkOptions = {
48
- input: Array<string> | string;
49
- output: string;
50
- };
51
- export type EnrichAIOptions = {
52
- input: string;
53
- output: string;
54
- checkpointDir: string;
55
- resume?: boolean;
56
- incremental?: boolean;
57
- stateFile?: string;
58
- resetState?: boolean;
59
- forceRefresh?: boolean;
60
- rateLimitMs?: string;
61
- maxRetries?: string;
62
- checkpointInterval?: string;
63
- enableVision?: boolean;
64
- enableAudio?: boolean;
65
- enableLinks?: boolean;
66
- };
67
- /**
68
- * CLI Log Event Metadata
69
- */
70
- export type CLILogMeta = {
71
- command: string;
72
- phase: 'start' | 'progress' | 'summary' | 'warning' | 'error';
73
- message?: string;
74
- options?: Record<string, unknown>;
75
- metrics?: Record<string, unknown>;
76
- error?: {
77
- type?: string;
78
- message: string;
79
- stack?: string;
80
- };
81
- context?: Record<string, unknown>;
82
- exitCode?: number;
83
- };
84
- /**
85
- * Global CLI options from Commander program
86
- */
87
- export type GlobalOptions = {
88
- verbose: boolean;
89
- quiet: boolean;
90
- config: string;
91
- json?: boolean;
92
- };
93
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"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"}
package/dist/cli/types.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * CLI Option Types
3
- *
4
- * Shared type definitions for all CLI command options.
5
- */
6
- export {};
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,29 +0,0 @@
1
- /**
2
- * CLI Utility Functions
3
- *
4
- * Shared utilities for CLI command handling including logging,
5
- * error handling, and common operations.
6
- */
7
- import type { CLILogMeta } from './types.js';
8
- /**
9
- * CLI Logger instance
10
- */
11
- export declare const cliLogger: import("#utils/logger").ComponentLogger;
12
- /**
13
- * Apply log level based on verbose/quiet flags
14
- */
15
- export declare function applyLogLevel(verbose: boolean, quiet: boolean): void;
16
- /**
17
- * Emit structured CLI events for logging
18
- */
19
- export declare function logEvent(event: string, meta: CLILogMeta): void;
20
- /**
21
- * Format an error for CLI logging
22
- */
23
- export declare function formatErrorMeta(error: unknown): CLILogMeta['error'];
24
- /**
25
- * Standard command error handler
26
- * Logs error and exits with specified code
27
- */
28
- export declare function handleCommandError(commandName: string, error: unknown, verbose: boolean): never;
29
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,SAAS,yCAAsB,CAAA;AAE5C;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAGpE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAMnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GACd,KAAK,CAoBP"}
package/dist/cli/utils.js DELETED
@@ -1,53 +0,0 @@
1
- /**
2
- * CLI Utility Functions
3
- *
4
- * Shared utilities for CLI command handling including logging,
5
- * error handling, and common operations.
6
- */
7
- import { createLogger, setLogLevel } from '#utils/logger';
8
- /**
9
- * CLI Logger instance
10
- */
11
- export const cliLogger = createLogger('cli');
12
- /**
13
- * Apply log level based on verbose/quiet flags
14
- */
15
- export function applyLogLevel(verbose, quiet) {
16
- const level = quiet ? 'error' : verbose ? 'debug' : 'info';
17
- setLogLevel(level);
18
- }
19
- /**
20
- * Emit structured CLI events for logging
21
- */
22
- export function logEvent(event, meta) {
23
- cliLogger.info(event, meta);
24
- }
25
- /**
26
- * Format an error for CLI logging
27
- */
28
- export function formatErrorMeta(error) {
29
- return {
30
- type: error instanceof Error ? error.name : 'Unknown',
31
- message: error instanceof Error ? error.message : String(error),
32
- ...(error instanceof Error && error.stack ? { stack: error.stack } : {}),
33
- };
34
- }
35
- /**
36
- * Standard command error handler
37
- * Logs error and exits with specified code
38
- */
39
- export function handleCommandError(commandName, error, verbose) {
40
- const { humanError } = require('#utils/human');
41
- humanError(`❌ Failed to ${commandName}:`, error instanceof Error ? error.message : String(error));
42
- if (verbose && error instanceof Error) {
43
- humanError(error.stack);
44
- }
45
- logEvent(`${commandName}-error`, {
46
- command: commandName,
47
- phase: 'error',
48
- error: formatErrorMeta(error),
49
- exitCode: 2,
50
- });
51
- process.exit(2);
52
- }
53
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;AAE5C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,KAAc;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;IAC1D,WAAW,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,IAAgB;IACvD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC7C,OAAO;QACN,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACrD,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,GAAG,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CACjC,WAAmB,EACnB,KAAc,EACd,OAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAE9C,UAAU,CACT,eAAe,WAAW,GAAG,EAC7B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAA;IAED,IAAI,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAED,QAAQ,CAAC,GAAG,WAAW,QAAQ,EAAE;QAChC,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;QAC7B,QAAQ,EAAE,CAAC;KACX,CAAC,CAAA;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC"}
package/dist/cli.d.ts DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * iMessage Timeline CLI
4
- *
5
- * Main entry point for the CLI using commander.js.
6
- * Implements CLI--T01: Setup Commander.js Structure
7
- */
8
- export {};
9
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}