repomeld 2.0.5 β†’ 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,16 +15,18 @@
15
15
 
16
16
  ## ✨ Features
17
17
 
18
- - πŸš€ **Fast & Efficient** - Async scanning with real-time progress
18
+ - πŸš€ **Fast & Efficient** - Async scanning with real-time progress and binary caching
19
19
  - 🎨 **Multiple Styles** - Banner, Markdown, or Minimal output
20
20
  - πŸ” **Smart Filtering** - Extension, pattern, and size-based filtering
21
21
  - πŸ“ **Gitignore Support** - Respects your .gitignore rules automatically
22
- - πŸ’Ύ **Binary Detection** - Intelligently skips binary files
22
+ - πŸ’Ύ **Binary Detection** - Intelligent caching for binary file detection
23
23
  - πŸ“¦ **Single File Output** - Perfect for AI context windows
24
24
  - πŸ”„ **Auto-Numbering** - Never overwrites existing files
25
- - πŸ’Ώ **Zip Backup** - Creates timestamped backups of all included files
26
- - πŸ”” **Update Notifications** - Know when new versions are available
25
+ - πŸ’Ώ **Zip Backup** - Creates auto-numbered backups in `repomeld_zips/` folder
26
+ - πŸ”” **Update Notifications** - Non-intrusive version checking
27
27
  - 🎯 **Force Include** - Override ignore rules when needed
28
+ - πŸ“Š **Dependency Graph** - Optional Mermaid diagram of file dependencies
29
+ - 🌍 **Cross-Platform** - Works perfectly on Windows, macOS, and Linux
28
30
 
29
31
  ---
30
32
 
@@ -49,7 +51,7 @@ cd your-project
49
51
  repomeld
50
52
  ```
51
53
 
52
- That's it. repomeld walks your project, respects `.gitignore`, skips binary files, and writes everything into one readable file.
54
+ That's it. repomeld walks your project, respects `.gitignore`, skips binary files, and writes everything into one readable file with optional dependency graphs.
53
55
 
54
56
  ---
55
57
 
@@ -61,9 +63,13 @@ Every time you run repomeld it creates a **new numbered file** so previous runs
61
63
  repomeld_output.txt ← first run
62
64
  repomeld_output__2.txt ← second run
63
65
  repomeld_output__3.txt ← third run
66
+ repomeld_zips/ ← backup folder
67
+ β”œβ”€β”€ repomeld_output.zip
68
+ β”œβ”€β”€ repomeld_output__2.zip
69
+ └── repomeld_output__3.zip
64
70
  ```
65
71
 
66
- All previous output files are also **automatically excluded** from the next run's content β€” so you'll never get repomeld's own output included inside itself.
72
+ All previous output files and zips are **automatically excluded** from the next run β€” so you'll never get repomeld's own output included inside itself.
67
73
 
68
74
  ---
69
75
 
@@ -191,16 +197,20 @@ repomeld automatically skips these so your output stays clean:
191
197
 
192
198
  ### Method 1: repomeld.ignore.json
193
199
 
194
- Create a `repomeld.ignore.json` in your project root:
200
+ Create a `repomeld.ignore.json` in your project root for comprehensive ignore patterns:
195
201
 
196
202
  ```json
197
203
  {
204
+ "_comment": "repomeld.ignore.json β€” auto-ignored files and folders",
198
205
  "ignore": [
199
206
  "coverage",
200
207
  "logs",
201
208
  "tmp",
202
209
  "*.min.js",
203
- "**/generated/**"
210
+ "**/generated/**",
211
+ "vendor/**/bootstrap*",
212
+ "**/jquery*",
213
+ "**/fontawesome*"
204
214
  ]
205
215
  }
206
216
  ```
@@ -223,19 +233,19 @@ repomeld --ignore temp logs "*.tmp"
223
233
 
224
234
  ## Backup Zip Files
225
235
 
226
- When repomeld runs, it automatically creates a backup zip file in the `repomeld_repomeld/` folder:
236
+ When repomeld runs, it automatically creates a backup zip file in the `repomeld_zips/` folder:
227
237
 
228
238
  ```
229
239
  repomeld_output.txt
230
- repomeld_repomeld/
240
+ repomeld_zips/
231
241
  └── repomeld_output.zip ← contains all included files + output
232
242
 
233
243
  repomeld_output__2.txt
234
- repomeld_repomeld/
244
+ repomeld_zips/
235
245
  └── repomeld_output__2.zip ← corresponding backup
236
246
 
237
247
  repomeld_output__3.txt
238
- repomeld_repomeld/
248
+ repomeld_zips/
239
249
  └── repomeld_output__3.zip ← and so on...
240
250
  ```
241
251
 
@@ -246,74 +256,18 @@ The zip file contains:
246
256
  To disable backups: `repomeld --no-backup`
247
257
 
248
258
  ---
259
+
249
260
 
250
- ## Output Format
251
-
252
- Each run produces a file like this:
253
-
254
- ```
255
- # Generated by repomeld v2.0.4
256
- # Date : 2025-04-23T10:00:00.000Z
257
- # Source : /your/project
258
- # Files : 12
259
- # Lines : 847
260
-
261
- TABLE OF CONTENTS
262
- ════════════════════════════════════════════════════════════
263
- 1. src/index.js
264
- 2. src/utils.js
265
- 3. src/config.js
266
- ...
267
- ════════════════════════════════════════════════════════════
268
-
269
- ────────────────────────────────────────────────────────────
270
- FILE: src/index.js [120 lines | 3.2 KB | javascript]
271
- ────────────────────────────────────────────────────────────
272
-
273
- ... file contents ...
274
- ```
275
-
276
- ### Markdown Style Example
277
-
278
- With `--style markdown` each file becomes a fenced code block:
279
-
280
- ```markdown
281
- ## πŸ“„ src/index.js [120 lines | 3.2 KB | javascript]
282
-
283
- ```javascript
284
- // Your code here
285
- ```
286
-
287
- ## πŸ“„ src/utils.js [45 lines | 1.1 KB | javascript]
288
-
289
- ```javascript
290
- // More code here
291
- ```
292
- ```
293
-
294
- Perfect for pasting directly into Claude, ChatGPT, Cursor, or any AI tool!
295
-
296
- ### Minimal Style Example
297
-
298
- With `--style minimal`:
299
-
300
- ```
301
- # src/index.js
302
- your code here
303
-
304
- # src/utils.js
305
- more code here
306
- ```
307
-
308
- ---
309
-
310
- ## Performance
261
+ ## Performance Optimizations
311
262
 
312
263
  repomeld is optimized for large codebases:
313
- - Async file scanning (non-blocking)
314
- - Real-time progress indicator with ETA
315
- - Memory-efficient streaming
316
- - Handles repos with 10,000+ files easily
264
+
265
+ - **Async file scanning** - Non-blocking operations
266
+ - **Binary caching** - Extension-based detection cache
267
+ - **Real-time progress** - Shows ETA and completion percentage
268
+ - **Memory efficient** - Processes files in streams
269
+ - **Smart filtering** - Early filtering to reduce processing
270
+ - **Handles 50,000+ files** - Tested on large monorepos
317
271
 
318
272
  Example output:
319
273
  ```
@@ -322,8 +276,13 @@ Example output:
322
276
 
323
277
  πŸ“ Processing 2453 files...
324
278
 
325
- [1245/2453] files (50.7%) | 2.3s elapsed | ETA: 2s
326
- βœ… Completed 2453/2453 files in 4.7s
279
+ Processing: 1245/2453 files (50.7%) | 2.3s elapsed
280
+ Processing: βœ… Completed 2453/2453 files in 4.7s
281
+ ```
282
+
283
+ **Memory warning** for extremely large repos (>20,000 files):
284
+ ```
285
+ ⚠️ Large repository detected (~25347 files). Memory usage may be high.
327
286
  ```
328
287
 
329
288
  ---
@@ -355,29 +314,15 @@ repomeld --ext md --include docs --style markdown --output documentation.md
355
314
  repomeld --include feature-name --ext js css --output feature-context.txt
356
315
  ```
357
316
 
358
- ---
359
-
360
- ## FAQ
361
-
362
- **Q: Why are package.json and README.md included now?**
363
- A: They were removed in early versions but added back because they provide essential context for AI tools and code reviewers.
364
-
365
- **Q: How do I ignore package.json?**
366
- A: Add it to `repomeld.ignore.json` or use `--ignore package.json`
367
-
368
- **Q: Can I use this in CI/CD?**
369
- A: Yes! Use `--no-update-check` and `--no-backup` for automated environments.
370
-
371
- **Q: Does it work on Windows?**
372
- A: Yes! Paths are normalized for cross-platform compatibility.
317
+ ### πŸ—ΊοΈ Dependency Analysis
318
+ ```bash
319
+ repomeld --include src --style markdown --output analysis.md
320
+ # Then render the Mermaid graph in the output
321
+ ```
373
322
 
374
- **Q: How do I get just the file list without content?**
375
- A: Use `--dry-run` to preview without writing.
323
+ ---
376
324
 
377
- **Q: My binary files are being included?**
378
- A: repomeld uses intelligent binary detection. If something slips through, use `--ext` to filter specific extensions.
379
325
 
380
- ---
381
326
 
382
327
  ## Development
383
328
 
@@ -395,8 +340,14 @@ npm start -- --dry-run
395
340
  # Link for global testing
396
341
  npm link
397
342
  repomeld --help
343
+
344
+ # Run tests
345
+ npm test
398
346
  ```
399
347
 
348
+ ---
349
+
350
+
400
351
  ---
401
352
 
402
353
  ## Contributing
@@ -411,23 +362,7 @@ Contributions are welcome! Please feel free to submit a Pull Request.
411
362
 
412
363
  ---
413
364
 
414
- ## Changelog
415
-
416
- ### v2.0.4 (Current)
417
- - βœ… Added gitignore support with `ignore` package
418
- - βœ… Added zip backup feature (`repomeld_repomeld/` folder)
419
- - βœ… Added update notifications (non-intrusive)
420
- - βœ… Improved performance with async operations
421
- - βœ… Added progress indicator with ETA
422
- - βœ… Fixed Windows path compatibility
423
- - βœ… Improved binary detection
424
- - βœ… Added force-include for override scenarios
425
- - βœ… Removed `package.json` and `README.md` from default ignores
426
365
 
427
- ### v1.0.0
428
- - Initial release with basic functionality
429
-
430
- ---
431
366
 
432
367
  ## License
433
368
 
@@ -455,4 +390,4 @@ MIT Β© [Susheel](mailto:susheelhbti@gmail.com)
455
390
 
456
391
  ---
457
392
 
458
- **Made with ❀️ for developers who need better context for AI tools**
393
+ **Made with ❀️ for developers who need better context for AI tools**