@amirdaraee/namewise 1.0.1 → 1.2.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 (122) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.md +8 -8
  3. package/dist/cli/apply.d.ts.map +1 -1
  4. package/dist/cli/apply.js +33 -6
  5. package/dist/cli/apply.js.map +1 -1
  6. package/dist/cli/clean-empty.d.ts.map +1 -1
  7. package/dist/cli/clean-empty.js +2 -3
  8. package/dist/cli/clean-empty.js.map +1 -1
  9. package/dist/cli/commands.d.ts.map +1 -1
  10. package/dist/cli/commands.js +18 -37
  11. package/dist/cli/commands.js.map +1 -1
  12. package/dist/cli/config-cmd.d.ts.map +1 -1
  13. package/dist/cli/config-cmd.js +7 -4
  14. package/dist/cli/config-cmd.js.map +1 -1
  15. package/dist/cli/dedup.d.ts.map +1 -1
  16. package/dist/cli/dedup.js +3 -11
  17. package/dist/cli/dedup.js.map +1 -1
  18. package/dist/cli/diff.d.ts.map +1 -1
  19. package/dist/cli/diff.js +3 -7
  20. package/dist/cli/diff.js.map +1 -1
  21. package/dist/cli/find.d.ts.map +1 -1
  22. package/dist/cli/find.js +2 -3
  23. package/dist/cli/find.js.map +1 -1
  24. package/dist/cli/flatten.d.ts.map +1 -1
  25. package/dist/cli/flatten.js +4 -11
  26. package/dist/cli/flatten.js.map +1 -1
  27. package/dist/cli/handle-cli-error.d.ts +7 -0
  28. package/dist/cli/handle-cli-error.d.ts.map +1 -0
  29. package/dist/cli/handle-cli-error.js +27 -0
  30. package/dist/cli/handle-cli-error.js.map +1 -0
  31. package/dist/cli/init.d.ts.map +1 -1
  32. package/dist/cli/init.js +8 -6
  33. package/dist/cli/init.js.map +1 -1
  34. package/dist/cli/organize.d.ts.map +1 -1
  35. package/dist/cli/organize.js +4 -11
  36. package/dist/cli/organize.js.map +1 -1
  37. package/dist/cli/rename.d.ts +4 -2
  38. package/dist/cli/rename.d.ts.map +1 -1
  39. package/dist/cli/rename.js +171 -227
  40. package/dist/cli/rename.js.map +1 -1
  41. package/dist/cli/sanitize.d.ts.map +1 -1
  42. package/dist/cli/sanitize.js +4 -12
  43. package/dist/cli/sanitize.js.map +1 -1
  44. package/dist/cli/shared-config.d.ts +60 -0
  45. package/dist/cli/shared-config.d.ts.map +1 -0
  46. package/dist/cli/shared-config.js +64 -0
  47. package/dist/cli/shared-config.js.map +1 -0
  48. package/dist/cli/stats.d.ts.map +1 -1
  49. package/dist/cli/stats.js +2 -4
  50. package/dist/cli/stats.js.map +1 -1
  51. package/dist/cli/tree.d.ts.map +1 -1
  52. package/dist/cli/tree.js +2 -3
  53. package/dist/cli/tree.js.map +1 -1
  54. package/dist/cli/watch.d.ts +3 -1
  55. package/dist/cli/watch.d.ts.map +1 -1
  56. package/dist/cli/watch.js +19 -63
  57. package/dist/cli/watch.js.map +1 -1
  58. package/dist/parsers/pdf-parser.d.ts.map +1 -1
  59. package/dist/parsers/pdf-parser.js +44 -27
  60. package/dist/parsers/pdf-parser.js.map +1 -1
  61. package/dist/services/base-cloud-service.d.ts +32 -0
  62. package/dist/services/base-cloud-service.d.ts.map +1 -0
  63. package/dist/services/base-cloud-service.js +73 -0
  64. package/dist/services/base-cloud-service.js.map +1 -0
  65. package/dist/services/base-local-service.d.ts +18 -0
  66. package/dist/services/base-local-service.d.ts.map +1 -0
  67. package/dist/services/base-local-service.js +81 -0
  68. package/dist/services/base-local-service.js.map +1 -0
  69. package/dist/services/claude-service.d.ts +8 -6
  70. package/dist/services/claude-service.d.ts.map +1 -1
  71. package/dist/services/claude-service.js +40 -98
  72. package/dist/services/claude-service.js.map +1 -1
  73. package/dist/services/file-renamer.d.ts +7 -0
  74. package/dist/services/file-renamer.d.ts.map +1 -1
  75. package/dist/services/file-renamer.js +63 -12
  76. package/dist/services/file-renamer.js.map +1 -1
  77. package/dist/services/lmstudio-service.d.ts +35 -9
  78. package/dist/services/lmstudio-service.d.ts.map +1 -1
  79. package/dist/services/lmstudio-service.js +23 -101
  80. package/dist/services/lmstudio-service.js.map +1 -1
  81. package/dist/services/ollama-service.d.ts +23 -9
  82. package/dist/services/ollama-service.d.ts.map +1 -1
  83. package/dist/services/ollama-service.js +16 -87
  84. package/dist/services/ollama-service.js.map +1 -1
  85. package/dist/services/openai-service.d.ts +8 -6
  86. package/dist/services/openai-service.d.ts.map +1 -1
  87. package/dist/services/openai-service.js +36 -94
  88. package/dist/services/openai-service.js.map +1 -1
  89. package/dist/utils/ai-name-sanitizer.d.ts +14 -0
  90. package/dist/utils/ai-name-sanitizer.d.ts.map +1 -0
  91. package/dist/utils/ai-name-sanitizer.js +55 -0
  92. package/dist/utils/ai-name-sanitizer.js.map +1 -0
  93. package/dist/utils/ai-prompts.d.ts.map +1 -1
  94. package/dist/utils/ai-prompts.js +2 -1
  95. package/dist/utils/ai-prompts.js.map +1 -1
  96. package/dist/utils/assert-directory.d.ts +9 -0
  97. package/dist/utils/assert-directory.d.ts.map +1 -0
  98. package/dist/utils/assert-directory.js +15 -0
  99. package/dist/utils/assert-directory.js.map +1 -0
  100. package/dist/utils/file-info.d.ts +8 -0
  101. package/dist/utils/file-info.d.ts.map +1 -0
  102. package/dist/utils/file-info.js +25 -0
  103. package/dist/utils/file-info.js.map +1 -0
  104. package/dist/utils/file-templates.d.ts.map +1 -1
  105. package/dist/utils/file-templates.js +31 -1
  106. package/dist/utils/file-templates.js.map +1 -1
  107. package/dist/utils/image-compressor.d.ts +1 -1
  108. package/dist/utils/image-compressor.d.ts.map +1 -1
  109. package/dist/utils/image-compressor.js +4 -2
  110. package/dist/utils/image-compressor.js.map +1 -1
  111. package/dist/utils/logger.d.ts +2 -0
  112. package/dist/utils/logger.d.ts.map +1 -1
  113. package/dist/utils/logger.js +4 -0
  114. package/dist/utils/logger.js.map +1 -1
  115. package/dist/utils/record-session.d.ts +18 -0
  116. package/dist/utils/record-session.d.ts.map +1 -0
  117. package/dist/utils/record-session.js +24 -0
  118. package/dist/utils/record-session.js.map +1 -0
  119. package/dist/utils/ui.d.ts.map +1 -1
  120. package/dist/utils/ui.js +1 -7
  121. package/dist/utils/ui.js.map +1 -1
  122. package/package.json +17 -18
package/CHANGELOG.md CHANGED
@@ -5,6 +5,100 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.2.0] - 2026-07-12
9
+
10
+ ### Fixed
11
+ - **Scanned-PDF vision analysis never reached the AI**: the PDF parser embedded
12
+ the rendered page as a `[SCANNED_PDF_IMAGE]:<base64>` marker inside the text
13
+ content, but nothing consumed that marker — the AI received thousands of
14
+ characters of literal base64 as "document content" and produced generic names
15
+ (`scanned-document`, `bill-invoice`) for every scanned PDF. The rendered page
16
+ now flows through `ParseResult.imageData` (the vision path the image parser
17
+ already used), with any sparse extracted text kept as extra context. Naming
18
+ quality for scanned documents improves dramatically — in testing, a folder of
19
+ 53 scanned bills went from 0 to 53 specific issuer+date names
20
+ - **Two files could silently overwrite each other**: conflict resolution only
21
+ checked the disk, so dry-run plans could assign the identical target to two
22
+ files, and concurrent live renames (default concurrency 3) could race the
23
+ existence check — either way the second `fs.rename` clobbered the first file.
24
+ Targets are now claimed per batch, and `apply` rejects plans containing
25
+ duplicate targets
26
+ - **`namewise init` crashed at the first prompt**: inquirer v14 removed the
27
+ legacy `list` prompt type; the wizard's three selection prompts now use
28
+ `select`
29
+ - **`--log` produced no log file on crashes**: the process exited before queued
30
+ log writes reached disk; the logger is now flushed before exit — precisely the
31
+ situation where the log matters most
32
+ - **Config overwrites left the API key world-readable**: `writeFile`'s
33
+ `mode: 0o600` only applies when the file is created; `init` and `config set`
34
+ now `chmod` the config file explicitly on every write
35
+ - **Personal name no longer duplicated**: when the AI echoed the owner's name
36
+ into the generated content (it appears in most personal documents), the
37
+ document/photo templates produced `john-contract-john`; the template layer now
38
+ strips the personal name from AI content before appending it
39
+ - **Rename plans work from any directory**: `--output` reports store absolute
40
+ paths, and `apply` anchors relative paths from older plans to the plan's
41
+ recorded directory instead of the current working directory
42
+ - **`apply` validation failures are user errors, not crashes**: missing plan
43
+ file, moved source, or occupied target now print the actual problem with an
44
+ actionable hint instead of "An unexpected error occurred"
45
+
46
+ ### Added
47
+ - **Oversized images and PDFs are analyzed instead of skipped**: files above
48
+ `--max-size` proceed when a compressed analysis path exists (images via
49
+ `ImageCompressor`, PDFs via text extraction or page rendering) — the AI sees a
50
+ reduced temporary copy and the original file is never modified. A 100MB hard
51
+ ceiling still applies; other file types respect `--max-size` as before
52
+ - **Junk-name guards**: when the AI echoes back a meaningless camera/scanner
53
+ filename (`IMG_0042`, `scan-001`) or returns a prose explanation instead of a
54
+ filename, the file now fails with a clear error instead of receiving a junk
55
+ name
56
+
57
+ ### Changed
58
+ - **Vision input resolution raised from 1024px to 1568px** (longest side): at
59
+ 1024px the body text of A4 scans is illegible to vision models; 1568px is the
60
+ sweet spot for Claude/OpenAI vision. Scanned pages and photos of documents
61
+ become readable, and image token cost stays comparable
62
+ - Conflict counters now insert before a trailing personal name
63
+ (`bill-2-john.pdf`, not `bill-john-2.pdf`) so the personal name always ends
64
+ the filename
65
+ - The AI prompt now asks for distinctive identifying details (issuer, document
66
+ type, reference number, billing period) over generic terms, and forbids
67
+ echoing meaningless original filenames
68
+
69
+ ## [1.1.1] - 2026-07-05
70
+
71
+ ### Fixed
72
+ - PDF text extraction migrated from the unmaintained `pdf-extraction` package
73
+ (bundling pdf.js v1.10 from 2018) to the already-present, actively maintained
74
+ `pdfjs-dist`. The old bundle failed with `Illegal character` when parsing
75
+ certain PDFs under the test runner on Node >= 24.16, which blocked the 1.1.0
76
+ release pipeline; it has been removed from the dependency tree entirely
77
+ - `pdfjs-dist` is pinned to the same version range as `pdf-to-png-converter`'s
78
+ internal copy (`~6.0.227`) so both share one deduped install — two copies
79
+ register conflicting pdf.js worker versions at runtime
80
+
81
+ > Note: the `v1.1.0` tag exists but was never published to npm; `1.1.1` is the
82
+ > first published release containing the 1.1.0 changes below.
83
+
84
+ ## [1.1.0] - 2026-07-05
85
+
86
+ ### Changed
87
+ - **Default AI models updated to current generation**: `claude` now defaults to `claude-opus-4-8` (was `claude-sonnet-4-5-20250929`), `openai` to `gpt-5.5` (was `gpt-4o`). `--model` and config-file overrides work as before. The `ollama` default stays `llama3.1` — the newer `llama3.2` tags are smaller 1B/3B models and `llama3.3` (70B) is too heavy for a default
88
+ - Major dependency upgrades: `commander` 15, `pdf-to-png-converter` 4 (scanned-PDF conversion verified end-to-end against a real scanned sample), TypeScript 6, Vitest 4
89
+ - Remaining dependencies bumped to latest minor/patch versions (`@anthropic-ai/sdk` 0.110, `openai` 6.45, `pdfjs-dist` 6.1, and others)
90
+
91
+ ### Security
92
+ - Resolved the esbuild advisory (GHSA-g7r4-m6w7-qqqr, dev-only: arbitrary file read via the dev server on Windows) by upgrading the vitest/vite toolchain; `npm audit` is clean
93
+
94
+ ### Internal
95
+ - AI provider services refactored onto shared base classes (`BaseCloudService` for Claude/OpenAI, `BaseLocalService` for Ollama/LM Studio), eliminating ~360 lines of duplicated request, error-mapping, and sanitization logic with no behavior change
96
+ - CLI layer deduplicated: shared config assembly for `rename`/`watch`, `renameFiles()` decomposed from ~280 lines into focused helpers, typed option interfaces replace `any`, and one shared implementation each for directory validation, byte formatting, history recording, and error handling
97
+ - `config set` now accepts the previously missing `context` key
98
+ - The rename stats "Data" line now shows megabytes with two decimals (consistent byte formatting everywhere)
99
+ - Test coverage raised to 100% across statements, branches, functions, and lines (1041 tests); `src/utils/ui.ts` gained its first dedicated unit-test file
100
+ - Removed legacy OCR-era artifacts (`.ocr-cache/`, stale `dist/parsers/ocr-utils.*`)
101
+
8
102
  ## [1.0.1] - 2026-06-10
9
103
 
10
104
  ### Security
package/README.md CHANGED
@@ -128,7 +128,7 @@ After init, all saved settings apply automatically — no flags needed on every
128
128
  | `--name` | Personal name to include in filenames | - |
129
129
  | `--date` | Date format (YYYY-MM-DD, YYYY, YYYYMMDD, none) | `none` |
130
130
  | `--dry-run` | Preview changes without renaming | `false` |
131
- | `--max-size` | Maximum file size in MB | `10` |
131
+ | `--max-size` | Maximum file size in MB (images/PDFs above it are still analyzed via a compressed copy) | `10` |
132
132
  | `-r, --recursive` | Recursively scan subdirectories | `false` |
133
133
  | `--depth <n>` | Maximum recursion depth (requires `--recursive`) | Unlimited |
134
134
  | `--concurrency <n>` | Files to process in parallel | `3` |
@@ -459,7 +459,7 @@ Supported keys: `provider`, `apiKey`, `case`, `template`, `name`, `date`, `maxSi
459
459
 
460
460
  | Type | Extensions | Parser |
461
461
  |------|------------|--------|
462
- | PDF Documents | `.pdf` | pdf-extraction |
462
+ | PDF Documents | `.pdf` | pdfjs-dist |
463
463
  | Microsoft Word | `.docx`, `.doc` | mammoth |
464
464
  | Microsoft Excel | `.xlsx`, `.xls` | exceljs |
465
465
  | Text Files | `.txt`, `.md`, `.rtf` | Native fs |
@@ -482,8 +482,8 @@ Supported keys: `provider`, `apiKey`, `case`, `template`, `name`, `date`, `maxSi
482
482
 
483
483
  | Provider | Vision Support | API Key Required | Default Model |
484
484
  |----------|---------------|-----------------|---------------|
485
- | `claude` | Yes | Yes (`ANTHROPIC_API_KEY`) | `claude-sonnet-4-5-20250929` |
486
- | `openai` | Yes | Yes (`OPENAI_API_KEY`) | `gpt-4o` |
485
+ | `claude` | Yes | Yes (`ANTHROPIC_API_KEY`) | `claude-opus-4-8` |
486
+ | `openai` | Yes | Yes (`OPENAI_API_KEY`) | `gpt-5.5` |
487
487
  | `ollama` | Model-dependent | No | `llama3.1` |
488
488
  | `lmstudio` | Model-dependent | No | `local-model` |
489
489
 
@@ -534,13 +534,13 @@ namewise rename ./photos --no-ai --dry-run
534
534
  1. Visit [Anthropic Console](https://console.anthropic.com/)
535
535
  2. Generate an API key
536
536
  3. `export ANTHROPIC_API_KEY=your-key`
537
- 4. Default model: `claude-sonnet-4-5-20250929` (override with `--model`)
537
+ 4. Default model: `claude-opus-4-8` (override with `--model`)
538
538
 
539
539
  **OpenAI**
540
540
  1. Visit [OpenAI Platform](https://platform.openai.com/api-keys)
541
541
  2. Create an API key
542
542
  3. `export OPENAI_API_KEY=your-key`
543
- 4. Default model: `gpt-4o` (override with `--model`)
543
+ 4. Default model: `gpt-5.5` (override with `--model`)
544
544
 
545
545
  ## How It Works
546
546
 
@@ -634,9 +634,9 @@ For unexpected errors, the terminal either points to the log (if `--log` was use
634
634
  - **Dry Run Mode**: Always preview changes first with `--dry-run`
635
635
  - **Undo**: Reverse any session with `namewise undo` (or `undo --all`)
636
636
  - **Conflict Auto-Numbering**: Never overwrites an existing file
637
- - **File Size Limits**: Skips files above `--max-size`
637
+ - **File Size Limits**: Files above `--max-size` are skipped — except images and PDFs, which are analyzed through a size-reduced copy (originals are never modified); a 100MB hard ceiling applies
638
638
  - **Extension Preservation**: Original file extensions are never changed
639
- - **Comprehensive Testing**: 900+ tests with ~100% coverage, run on Node 20/22/24 in CI
639
+ - **Comprehensive Testing**: 1,000+ tests with 100% coverage, run on Node 20/22/24 in CI
640
640
 
641
641
  ## Testing & Development
642
642
 
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"AAeA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEnG"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"AAiBA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGnG"}
package/dist/cli/apply.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { promises as fs } from 'fs';
2
2
  import path from 'path';
3
+ import { NamewiseError } from '../errors.js';
3
4
  import { appendHistory } from '../utils/history.js';
4
5
  import * as ui from '../utils/ui.js';
5
6
  export async function applyPlan(planPath, options = {}) {
@@ -9,12 +10,22 @@ export async function applyPlan(planPath, options = {}) {
9
10
  plan = JSON.parse(raw);
10
11
  }
11
12
  catch (error) {
12
- throw new Error(`Could not read plan file: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
13
+ throw new NamewiseError(`Could not read plan file: ${error instanceof Error ? error.message : 'Unknown error'}`, {
14
+ cause: error,
15
+ hint: 'Generate a plan with: namewise rename <dir> --dry-run --output plan.json'
16
+ });
13
17
  }
14
18
  if (!Array.isArray(plan.results)) {
15
- throw new Error('Invalid plan file: missing "results" array');
19
+ throw new NamewiseError('Invalid plan file: missing "results" array', {
20
+ hint: 'Generate a plan with: namewise rename <dir> --dry-run --output plan.json'
21
+ });
16
22
  }
17
- const pending = plan.results.filter(r => r.success && r.originalPath !== r.newPath);
23
+ // Plans written by older versions stored paths relative to the scanned
24
+ // directory; anchor them there instead of whatever cwd apply runs from.
25
+ const anchor = (f) => path.isAbsolute(f) || !plan.directory ? f : path.join(plan.directory, f);
26
+ const pending = plan.results
27
+ .filter(r => r.success && r.originalPath !== r.newPath)
28
+ .map(r => ({ ...r, originalPath: anchor(r.originalPath), newPath: anchor(r.newPath) }));
18
29
  if (pending.length === 0) {
19
30
  ui.info('No renames to apply.');
20
31
  return;
@@ -24,8 +35,21 @@ export async function applyPlan(planPath, options = {}) {
24
35
  await fs.access(r.originalPath);
25
36
  }
26
37
  catch {
27
- throw new Error(`Source file not found: ${r.originalPath}`);
38
+ throw new NamewiseError(`Source file not found: ${r.originalPath}`, {
39
+ hint: 'The file moved or was renamed since the plan was created — regenerate the plan or remove the entry'
40
+ });
41
+ }
42
+ }
43
+ // Two plan entries pointing at one target would silently overwrite each
44
+ // other when applied — fs.rename replaces existing files without error.
45
+ const seenTargets = new Set();
46
+ for (const r of pending) {
47
+ if (seenTargets.has(r.newPath)) {
48
+ throw new NamewiseError(`Duplicate target in plan: ${r.newPath} (two files would overwrite each other)`, {
49
+ hint: 'Edit the plan so every newPath is unique, then re-run apply'
50
+ });
28
51
  }
52
+ seenTargets.add(r.newPath);
29
53
  }
30
54
  for (const r of pending) {
31
55
  let targetExists = false;
@@ -37,8 +61,11 @@ export async function applyPlan(planPath, options = {}) {
37
61
  if (error.code !== 'ENOENT')
38
62
  throw error;
39
63
  }
40
- if (targetExists)
41
- throw new Error(`Target already exists: ${r.newPath}`);
64
+ if (targetExists) {
65
+ throw new NamewiseError(`Target already exists: ${r.newPath}`, {
66
+ hint: 'A file already occupies this name — regenerate the plan or remove the entry'
67
+ });
68
+ }
42
69
  }
43
70
  const renames = [];
44
71
  let previewCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clean-empty.d.ts","sourceRoot":"","sources":["../../src/cli/clean-empty.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"clean-empty.d.ts","sourceRoot":"","sources":["../../src/cli/clean-empty.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -1,10 +1,9 @@
1
1
  import { promises as fs } from 'fs';
2
2
  import path from 'path';
3
+ import { assertDirectory } from '../utils/assert-directory.js';
3
4
  import * as ui from '../utils/ui.js';
4
5
  export async function cleanEmptyDirs(directory, options = {}) {
5
- const stat = await fs.stat(directory);
6
- if (!stat.isDirectory())
7
- throw new Error(`${directory} is not a directory`);
6
+ await assertDirectory(directory);
8
7
  const dryRun = options.dryRun ?? false;
9
8
  const { emptyDirs } = await scan(directory);
10
9
  if (emptyDirs.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"clean-empty.js","sourceRoot":"","sources":["../../src/cli/clean-empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,qBAAqB,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,EAAE,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/B,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3G,CAAC;AAOD,KAAK,UAAU,IAAI,CAAC,GAAW;IAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"clean-empty.js","sourceRoot":"","sources":["../../src/cli/clean-empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAAgC,EAAE;IAElC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,EAAE,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/B,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3G,CAAC;AAOD,KAAK,UAAU,IAAI,CAAC,GAAW;IAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqUpD"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqUpD"}
@@ -14,9 +14,8 @@ import { cleanEmptyDirs } from './clean-empty.js';
14
14
  import { findFiles } from './find.js';
15
15
  import { diffDirectories } from './diff.js';
16
16
  import { initCommand } from './init.js';
17
- import { NamewiseError } from '../errors.js';
17
+ import { handleCliError } from './handle-cli-error.js';
18
18
  import { createLogger } from '../utils/logger.js';
19
- import * as ui from '../utils/ui.js';
20
19
  export function setupCommands(program) {
21
20
  program.option('--log', 'Write a session log to ~/.namewise/logs/');
22
21
  program
@@ -46,7 +45,7 @@ Example:
46
45
  await initCommand();
47
46
  }
48
47
  catch (error) {
49
- handleCliError(error, log);
48
+ await handleCliError(error, log);
50
49
  }
51
50
  });
52
51
  program
@@ -60,7 +59,7 @@ Example:
60
59
  .option('-n, --name <personalName>', 'Personal name for document/photo templates')
61
60
  .option('-d, --date <format>', 'Date format: YYYY-MM-DD|YYYY|YYYYMMDD|none (default: none)')
62
61
  .option('--dry-run', 'Preview changes without renaming files (RECOMMENDED first!)')
63
- .option('--max-size <size>', 'Maximum file size in MB (default: 10)')
62
+ .option('--max-size <size>', 'Maximum file size in MB (default: 10); images and PDFs above it are still analyzed via a compressed copy')
64
63
  .option('--base-url <url>', 'Base URL for local LLM providers')
65
64
  .option('--model <name>', 'Model name to use (overrides provider default)')
66
65
  .option('-r, --recursive', 'Recursively scan subdirectories')
@@ -154,7 +153,7 @@ Batch Rename (no AI, no API key):
154
153
  await configCommand(subcommand, key, value);
155
154
  }
156
155
  catch (error) {
157
- handleCliError(error, log);
156
+ await handleCliError(error, log);
158
157
  }
159
158
  });
160
159
  program
@@ -170,7 +169,7 @@ Batch Rename (no AI, no API key):
170
169
  await sanitizeFiles(directory, { dryRun: options.dryRun, recursive: options.recursive, case: options.case });
171
170
  }
172
171
  catch (error) {
173
- handleCliError(error, log);
172
+ await handleCliError(error, log);
174
173
  }
175
174
  });
176
175
  program
@@ -184,7 +183,7 @@ Batch Rename (no AI, no API key):
184
183
  await applyPlan(planPath, { dryRun: options.dryRun });
185
184
  }
186
185
  catch (error) {
187
- handleCliError(error, log);
186
+ await handleCliError(error, log);
188
187
  }
189
188
  });
190
189
  program
@@ -199,7 +198,7 @@ Batch Rename (no AI, no API key):
199
198
  await dedupFiles(directory, { recursive: options.recursive, delete: options.delete });
200
199
  }
201
200
  catch (error) {
202
- handleCliError(error, log);
201
+ await handleCliError(error, log);
203
202
  }
204
203
  });
205
204
  program
@@ -213,7 +212,7 @@ Batch Rename (no AI, no API key):
213
212
  .option('-n, --name <personalName>', 'Personal name for document/photo templates')
214
213
  .option('-d, --date <format>', 'Date format: YYYY-MM-DD|YYYY|YYYYMMDD|none (default: none)')
215
214
  .option('--dry-run', 'Preview changes without renaming files', false)
216
- .option('--max-size <size>', 'Maximum file size in MB (default: 10)')
215
+ .option('--max-size <size>', 'Maximum file size in MB (default: 10); images and PDFs above it are still analyzed via a compressed copy')
217
216
  .option('--base-url <url>', 'Base URL for local LLM providers')
218
217
  .option('--model <name>', 'Model name to use (overrides provider default)')
219
218
  .option('-r, --recursive', 'Watch subdirectories', false)
@@ -228,7 +227,7 @@ Batch Rename (no AI, no API key):
228
227
  await watchDirectory(directory, options);
229
228
  }
230
229
  catch (error) {
231
- handleCliError(error, log);
230
+ await handleCliError(error, log);
232
231
  }
233
232
  });
234
233
  program
@@ -243,7 +242,7 @@ Batch Rename (no AI, no API key):
243
242
  await undoRename(sessionId, { list: options.list, all: options.all });
244
243
  }
245
244
  catch (error) {
246
- handleCliError(error, log);
245
+ await handleCliError(error, log);
247
246
  }
248
247
  });
249
248
  program
@@ -257,7 +256,7 @@ Batch Rename (no AI, no API key):
257
256
  await statsCommand(directory, { recursive: options.recursive });
258
257
  }
259
258
  catch (error) {
260
- handleCliError(error, log);
259
+ await handleCliError(error, log);
261
260
  }
262
261
  });
263
262
  program
@@ -271,7 +270,7 @@ Batch Rename (no AI, no API key):
271
270
  await treeCommand(directory, { depth: options.depth ? parseInt(options.depth) : undefined });
272
271
  }
273
272
  catch (error) {
274
- handleCliError(error, log);
273
+ await handleCliError(error, log);
275
274
  }
276
275
  });
277
276
  program
@@ -284,7 +283,7 @@ Batch Rename (no AI, no API key):
284
283
  await infoCommand(targetPath);
285
284
  }
286
285
  catch (error) {
287
- handleCliError(error, log);
286
+ await handleCliError(error, log);
288
287
  }
289
288
  });
290
289
  program
@@ -300,7 +299,7 @@ Batch Rename (no AI, no API key):
300
299
  await organizeFiles(directory, { by: options.by, recursive: options.recursive, dryRun: options.dryRun });
301
300
  }
302
301
  catch (error) {
303
- handleCliError(error, log);
302
+ await handleCliError(error, log);
304
303
  }
305
304
  });
306
305
  program
@@ -314,7 +313,7 @@ Batch Rename (no AI, no API key):
314
313
  await flattenDirectory(directory, { dryRun: options.dryRun });
315
314
  }
316
315
  catch (error) {
317
- handleCliError(error, log);
316
+ await handleCliError(error, log);
318
317
  }
319
318
  });
320
319
  program
@@ -328,7 +327,7 @@ Batch Rename (no AI, no API key):
328
327
  await cleanEmptyDirs(directory, { dryRun: options.dryRun });
329
328
  }
330
329
  catch (error) {
331
- handleCliError(error, log);
330
+ await handleCliError(error, log);
332
331
  }
333
332
  });
334
333
  program
@@ -356,7 +355,7 @@ Batch Rename (no AI, no API key):
356
355
  });
357
356
  }
358
357
  catch (error) {
359
- handleCliError(error, log);
358
+ await handleCliError(error, log);
360
359
  }
361
360
  });
362
361
  program
@@ -372,26 +371,8 @@ Batch Rename (no AI, no API key):
372
371
  await diffDirectories(dir1, dir2, { by: options.by, recursive: options.recursive });
373
372
  }
374
373
  catch (error) {
375
- handleCliError(error, log);
374
+ await handleCliError(error, log);
376
375
  }
377
376
  });
378
377
  }
379
- function handleCliError(error, log) {
380
- log.error(error);
381
- if (error instanceof NamewiseError) {
382
- ui.error(error.message);
383
- if (error.hint)
384
- ui.hint(error.hint);
385
- }
386
- else {
387
- ui.error('An unexpected error occurred.');
388
- if (log.enabled) {
389
- ui.hint(`See log: ${log.currentLogPath}`);
390
- }
391
- else {
392
- ui.hint('Run with --log for detailed error information.');
393
- }
394
- }
395
- process.exit(1);
396
- }
397
378
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAmCA,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnG"}
1
+ {"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAqCA,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCnG"}
@@ -5,7 +5,7 @@ import * as ui from '../utils/ui.js';
5
5
  const CONFIG_PATH = path.join(os.homedir(), '.namewise.json');
6
6
  const VALID_KEYS = new Set([
7
7
  'provider', 'apiKey', 'case', 'template', 'name', 'date',
8
- 'maxSize', 'model', 'baseUrl', 'concurrency', 'recursive', 'depth', 'output', 'dryRun', 'language', 'log'
8
+ 'maxSize', 'model', 'baseUrl', 'concurrency', 'recursive', 'depth', 'output', 'dryRun', 'language', 'context', 'log'
9
9
  ]);
10
10
  async function readConfig() {
11
11
  try {
@@ -18,8 +18,10 @@ async function readConfig() {
18
18
  }
19
19
  async function writeConfig(config) {
20
20
  await fs.mkdir(path.dirname(CONFIG_PATH), { recursive: true });
21
- // 600: the config may hold an API key — keep it out of other users' reach
21
+ // 600: the config may hold an API key — keep it out of other users' reach.
22
+ // writeFile's mode only applies on creation, so chmod covers overwrites too.
22
23
  await fs.writeFile(CONFIG_PATH, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
24
+ await fs.chmod(CONFIG_PATH, 0o600);
23
25
  }
24
26
  function coerceValue(value) {
25
27
  if (value === 'true')
@@ -63,9 +65,10 @@ export async function configCommand(subcommand, key, value) {
63
65
  throw new Error(`Unknown config key: ${key}. Valid keys: ${[...VALID_KEYS].join(', ')}`);
64
66
  }
65
67
  const config = await readConfig();
66
- config[key] = coerceValue(value);
68
+ const coerced = coerceValue(value);
69
+ config[key] = coerced;
67
70
  await writeConfig(config);
68
- ui.success(`Set ${key} = ${JSON.stringify(config[key])}`);
71
+ ui.success(`Set ${key} = ${JSON.stringify(coerced)}`);
69
72
  return;
70
73
  }
71
74
  throw new Error(`Unknown subcommand: ${subcommand}. Use: list, get, set`);
@@ -1 +1 @@
1
- {"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/cli/dedup.ts"],"names":[],"mappings":"AAYA,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAuDf"}
1
+ {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/cli/dedup.ts"],"names":[],"mappings":"AAQA,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAoDf"}
package/dist/cli/dedup.js CHANGED
@@ -2,19 +2,11 @@ import { promises as fs } from 'fs';
2
2
  import path from 'path';
3
3
  import inquirer from 'inquirer';
4
4
  import { findDuplicates } from '../utils/dedup.js';
5
+ import { formatBytes } from '../utils/fs-collect.js';
6
+ import { assertDirectory } from '../utils/assert-directory.js';
5
7
  import * as ui from '../utils/ui.js';
6
- function formatBytes(bytes) {
7
- if (bytes >= 1024 * 1024)
8
- return `${(bytes / 1024 / 1024).toFixed(2)} MB`;
9
- if (bytes >= 1024)
10
- return `${(bytes / 1024).toFixed(1)} KB`;
11
- return `${bytes} B`;
12
- }
13
8
  export async function dedupFiles(directory, options = {}) {
14
- const stats = await fs.stat(directory);
15
- if (!stats.isDirectory()) {
16
- throw new Error(`${directory} is not a directory`);
17
- }
9
+ await assertDirectory(directory);
18
10
  ui.dim('Scanning for duplicates…');
19
11
  const duplicates = await findDuplicates(directory, options.recursive ?? false);
20
12
  if (duplicates.size === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/cli/dedup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/cli/dedup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf"}