@fazetitans/fscopy 1.0.1 → 1.1.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.
Files changed (3) hide show
  1. package/README.md +21 -1
  2. package/package.json +1 -1
  3. package/src/cli.ts +298 -1377
package/README.md CHANGED
@@ -33,10 +33,14 @@ Transfer documents between Firebase projects with support for subcollections, fi
33
33
  - **Webhook notifications** - Send Slack, Discord, or custom webhooks on completion
34
34
  - **Resume transfers** - Continue interrupted transfers from saved state
35
35
  - **Interactive mode** - Guided setup with prompts for project and collection selection
36
- - **Progress bar** - Real-time progress with ETA
36
+ - **Progress bar** - Real-time progress with speed (docs/s) and ETA
37
37
  - **Automatic retry** - Exponential backoff on network errors
38
38
  - **Dry run mode** - Preview changes before applying (enabled by default)
39
39
  - **Flexible config** - INI, JSON, or CLI arguments
40
+ - **Rate limiting** - Control transfer speed to avoid quota issues
41
+ - **Size validation** - Skip oversized documents (>1MB)
42
+ - **JSON output** - Machine-readable output for CI/CD pipelines
43
+ - **Post-transfer verification** - Verify document counts after transfer
40
44
 
41
45
  ## Installation
42
46
 
@@ -158,6 +162,18 @@ fscopy -f config.ini --webhook https://hooks.slack.com/services/...
158
162
 
159
163
  # Resume an interrupted transfer
160
164
  fscopy -f config.ini --resume
165
+
166
+ # Verify document counts after transfer
167
+ fscopy -f config.ini --verify
168
+
169
+ # Rate limit to 100 docs/second (avoid quota issues)
170
+ fscopy -f config.ini --rate-limit 100
171
+
172
+ # Skip documents larger than 1MB
173
+ fscopy -f config.ini --skip-oversized
174
+
175
+ # JSON output for CI/CD pipelines
176
+ fscopy -f config.ini --json
161
177
  ```
162
178
 
163
179
  ### Collection Renaming
@@ -364,6 +380,10 @@ fscopy --init config.json
364
380
  | `--webhook` | | string | | Webhook URL for notifications |
365
381
  | `--resume` | | boolean | `false` | Resume from saved state |
366
382
  | `--state-file` | | string | `.fscopy-state.json` | State file path |
383
+ | `--verify` | | boolean | `false` | Verify counts after transfer |
384
+ | `--rate-limit` | | number | `0` | Limit docs/second (0 = unlimited) |
385
+ | `--skip-oversized` | | boolean | `false` | Skip documents > 1MB |
386
+ | `--json` | | boolean | `false` | JSON output for CI/CD |
367
387
 
368
388
  ## How It Works
369
389
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fazetitans/fscopy",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "Fast CLI tool to copy Firestore collections between Firebase projects with filtering, parallel transfers, and subcollection support",
5
5
  "type": "module",
6
6
  "bin": {