appshot-cli 0.9.0 → 0.9.2

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 (47) hide show
  1. package/README.md +320 -1
  2. package/dist/cli.js +6 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/export.d.ts +3 -0
  5. package/dist/commands/export.d.ts.map +1 -0
  6. package/dist/commands/export.js +382 -0
  7. package/dist/commands/export.js.map +1 -0
  8. package/dist/commands/order.d.ts +3 -0
  9. package/dist/commands/order.d.ts.map +1 -0
  10. package/dist/commands/order.js +321 -0
  11. package/dist/commands/order.js.map +1 -0
  12. package/dist/core/compose.d.ts.map +1 -1
  13. package/dist/core/compose.js +71 -138
  14. package/dist/core/compose.js.map +1 -1
  15. package/dist/core/layout-utils.d.ts +12 -0
  16. package/dist/core/layout-utils.d.ts.map +1 -0
  17. package/dist/core/layout-utils.js +28 -0
  18. package/dist/core/layout-utils.js.map +1 -0
  19. package/dist/core/text-utils.d.ts +1 -1
  20. package/dist/core/text-utils.d.ts.map +1 -1
  21. package/dist/core/text-utils.js +5 -9
  22. package/dist/core/text-utils.js.map +1 -1
  23. package/dist/services/doctor.js +1 -1
  24. package/dist/services/export-validator.d.ts +23 -0
  25. package/dist/services/export-validator.d.ts.map +1 -0
  26. package/dist/services/export-validator.js +209 -0
  27. package/dist/services/export-validator.js.map +1 -0
  28. package/dist/services/fastlane-config-generator.d.ts +17 -0
  29. package/dist/services/fastlane-config-generator.d.ts.map +1 -0
  30. package/dist/services/fastlane-config-generator.js +343 -0
  31. package/dist/services/fastlane-config-generator.js.map +1 -0
  32. package/dist/services/fastlane-language-mapper.d.ts +33 -0
  33. package/dist/services/fastlane-language-mapper.d.ts.map +1 -0
  34. package/dist/services/fastlane-language-mapper.js +167 -0
  35. package/dist/services/fastlane-language-mapper.js.map +1 -0
  36. package/dist/services/screenshot-order.d.ts +41 -0
  37. package/dist/services/screenshot-order.d.ts.map +1 -0
  38. package/dist/services/screenshot-order.js +211 -0
  39. package/dist/services/screenshot-order.js.map +1 -0
  40. package/dist/services/screenshot-organizer.d.ts +44 -0
  41. package/dist/services/screenshot-organizer.d.ts.map +1 -0
  42. package/dist/services/screenshot-organizer.js +234 -0
  43. package/dist/services/screenshot-organizer.js.map +1 -0
  44. package/dist/templates/registry.d.ts.map +1 -1
  45. package/dist/templates/registry.js +49 -159
  46. package/dist/templates/registry.js.map +1 -1
  47. package/package.json +1 -1
package/README.md CHANGED
@@ -10,7 +10,28 @@
10
10
  [![Node.js Version](https://img.shields.io/node/v/appshot-cli.svg)](https://nodejs.org)
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
12
12
 
13
- 🆕 **Version 0.9.0** - **Professional Template System & Enhanced Positioning**
13
+ 🆕 **Version 0.9.2** - **Simplified Layout Planner & Safe Caption Insets**
14
+ - **One Layout Engine**: Every caption/device combo now runs through a single planner, so presets only style things—you never fight per-template math again.
15
+ - **Safety Insets**: Automatic 40 px top/bottom protection plus default 48 px (above) / 36 px (below) gaps keep text clear of Apple’s quirky screenshot cropping.
16
+ - **Template Consistency**: All built-in templates inherit the same spacing and only override fonts/colors; watch captions still cap at 36 px automatically.
17
+ - **Caption-Only Presets**: Presets now render typography without auto-added boxes or borders so screenshots feel native to App Store Connect; add backgrounds manually if you really need them.
18
+ - **Verbose Debugging**: `appshot build --dry-run --verbose` now prints `Insets` / `Caption gap` lines so you can reason about spacing without opening the PSD.
19
+
20
+ **Version 0.9.1** - **Fastlane Export Integration & Screenshot Ordering**
21
+ - **Export Command**: New `appshot export` command for seamless Fastlane integration
22
+ - **Screenshot Ordering**: New `appshot order` command to control App Store screenshot sequence
23
+ - **Order Flag**: Export with `--order` to add numeric prefixes (01_, 02_, etc.)
24
+ - **Smart Ordering**: Handles existing prefixes, prevents double-prefixing
25
+ - **Auto-Detection**: Automatically detects languages from your screenshots
26
+ - **Language Mapping**: Smart mapping to Fastlane-compatible language codes (en → en-US, etc.)
27
+ - **Device Filtering**: Export specific devices with `--devices iphone,ipad`
28
+ - **Validation**: Pre-export validation with warnings and clear error messages
29
+ - **Configuration Generation**: Auto-generate Deliverfile and Fastfile with `--generate-config`
30
+ - **Flexible Output**: Choose between symlinks (default) or file copying with `--copy`
31
+ - **iPad Pro Support**: Automatic IPAD_PRO_3GEN_129_ prefix for proper Fastlane recognition
32
+ - **Dry Run Mode**: Preview export operations with `--dry-run`
33
+
34
+ **Version 0.9.0** - **Professional Template System & Enhanced Positioning**
14
35
  - **Quick Start**: New `appshot quickstart` command for instant setup with templates
15
36
  - **Templates**: 8 professional templates (modern, minimal, bold, elegant, showcase, playful, corporate, nerdy)
16
37
  - **One Command Setup**: Apply complete visual styles with `appshot template <name>`
@@ -46,6 +67,7 @@
46
67
  - [Style System Guide](#style-system-guide)
47
68
  - [Localization & Translation](#-localization--translation)
48
69
  - [Device Support](#-device-support)
70
+ - [Fastlane Integration](#-fastlane-integration)
49
71
  - [Command Reference](#-command-reference)
50
72
  - [Configuration Reference](#️-configuration-reference)
51
73
  - [Agent & Automation Guide](#-agent--automation-guide)
@@ -944,6 +966,14 @@ appshot style --device iphone
944
966
  }
945
967
  ```
946
968
 
969
+ #### Safe Layout Defaults (NEW in v0.9.2)
970
+
971
+ - **40 px Safety Insets** automatically pad the top/bottom of every canvas so captions survive App Store rounding—no manual margins required.
972
+ - **48 px Above / 36 px Below Gaps** keep the caption box visually detached from the device; override with `caption.box.marginTop` only if you truly need a different gap.
973
+ - **Bottom breathing room**: Increase `caption.box.marginBottom` per device (e.g., 80 px for iPad, 140 px for MacBook) whenever App Store Connect crops the screenshot bottom edge; the planner pushes the device up while keeping captions pinned.
974
+ - **Templates Only Style**: Built-in presets now just set fonts/colors; spacing always comes from the planner, so switching templates won’t break compliance.
975
+ - **Verbose Metrics**: Run `appshot build --dry-run --verbose` to see `Insets`, `Caption gap`, and `Overlay bottom spacing` lines for each device, then tweak the per-device `captionBox` margins without touching the template math.
976
+
947
977
  #### Caption Styling (Enhanced in v0.8.7)
948
978
 
949
979
  Create professional captions with customizable backgrounds and borders:
@@ -1203,6 +1233,295 @@ appshot validate --strict
1203
1233
  appshot validate --fix
1204
1234
  ```
1205
1235
 
1236
+ ## 🚀 Fastlane Integration
1237
+
1238
+ Appshot seamlessly integrates with [Fastlane](https://docs.fastlane.tools/) for uploading screenshots to App Store Connect. The `export` command reorganizes your Appshot-generated screenshots into Fastlane's expected directory structure.
1239
+
1240
+ ### Overview
1241
+
1242
+ Appshot and Fastlane work together but remain separate tools:
1243
+ - **Appshot**: Generates beautiful screenshots with frames, gradients, and captions
1244
+ - **Fastlane**: Uploads screenshots to App Store Connect
1245
+
1246
+ ### Quick Start
1247
+
1248
+ ```bash
1249
+ # 1. Generate screenshots with Appshot
1250
+ appshot build --preset iphone-6-9,ipad-13
1251
+
1252
+ # 2. Export for Fastlane (auto-detects languages)
1253
+ appshot export
1254
+
1255
+ # 3. Upload with Fastlane
1256
+ cd fastlane && fastlane deliver
1257
+ ```
1258
+
1259
+ ### Export Command
1260
+
1261
+ The `appshot export` command bridges Appshot and Fastlane:
1262
+
1263
+ ```bash
1264
+ # Basic export (auto-detects languages, creates symlinks)
1265
+ appshot export
1266
+
1267
+ # Export specific devices only
1268
+ appshot export --devices iphone,ipad
1269
+
1270
+ # Copy files instead of symlinks (for CI/CD)
1271
+ appshot export --copy --clean
1272
+
1273
+ # Generate Fastlane configuration
1274
+ appshot export --generate-config
1275
+
1276
+ # Preview without creating files
1277
+ appshot export --dry-run
1278
+
1279
+ # Custom paths
1280
+ appshot export --source ./my-screenshots --output ./upload
1281
+ ```
1282
+
1283
+ ### Language Mapping
1284
+
1285
+ Appshot automatically maps language codes to Fastlane format:
1286
+ - `en` → `en-US`
1287
+ - `es` → `es-ES`
1288
+ - `fr` → `fr-FR`
1289
+ - `de` → `de-DE`
1290
+ - `zh` → `zh-Hans`
1291
+ - `pt` → `pt-PT`
1292
+ - [and 20+ more mappings]
1293
+
1294
+ Custom mappings via `.appshot/export-config.json`:
1295
+ ```json
1296
+ {
1297
+ "languageMappings": {
1298
+ "en": "en-GB",
1299
+ "custom": "x-special"
1300
+ }
1301
+ }
1302
+ ```
1303
+
1304
+ ### Directory Structure
1305
+
1306
+ **Appshot Output** (source):
1307
+ ```
1308
+ final/
1309
+ ├── iphone/
1310
+ │ ├── en/
1311
+ │ │ ├── home.png
1312
+ │ │ └── features.png
1313
+ │ └── es/
1314
+ │ └── home.png
1315
+ └── ipad/
1316
+ └── en/
1317
+ └── home.png
1318
+ ```
1319
+
1320
+ **Fastlane Structure** (after export):
1321
+ ```
1322
+ fastlane/screenshots/
1323
+ ├── en-US/
1324
+ │ ├── iphone/
1325
+ │ │ ├── home.png
1326
+ │ │ └── features.png
1327
+ │ └── ipad/
1328
+ │ └── IPAD_PRO_3GEN_129_home.png # Auto-renamed
1329
+ └── es-ES/
1330
+ └── iphone/
1331
+ └── home.png
1332
+ ```
1333
+
1334
+ ### Special Handling
1335
+
1336
+ #### iPad Pro Naming
1337
+ iPad Pro 12.9" (3rd gen) screenshots are automatically renamed with the `IPAD_PRO_3GEN_129_` prefix for proper Fastlane recognition.
1338
+
1339
+ #### Symlinks vs Copying
1340
+ - **Default**: Creates symlinks (saves disk space, instant)
1341
+ - **CI/CD**: Use `--copy` for portable archives
1342
+ - **Clean**: Use `--clean` to remove old exports before creating new ones
1343
+
1344
+ ### Screenshot Ordering
1345
+
1346
+ > **📌 Important Discovery**: Fastlane uploads screenshots in alphabetical order by filename. Without explicit ordering, your carefully arranged screenshots may appear in the wrong sequence on the App Store!
1347
+
1348
+ #### The Order Problem
1349
+ When exporting screenshots for Fastlane, the alphabetical ordering can disrupt your intended flow:
1350
+ - ❌ Without ordering: `bluesky.png`, `cast.png`, `home.png`, `media.png`, `updates.png`
1351
+ - ✅ With ordering: `01_home.png`, `02_updates.png`, `03_cast.png`, `04_media.png`, `05_bluesky.png`
1352
+
1353
+ #### Managing Screenshot Order
1354
+
1355
+ ```bash
1356
+ # Set order interactively for each device
1357
+ appshot order --device iphone
1358
+ appshot order --device ipad
1359
+ appshot order --device watch
1360
+
1361
+ # Export with numeric prefixes
1362
+ appshot export --order --copy --clean
1363
+
1364
+ # View current order
1365
+ appshot order --show
1366
+ ```
1367
+
1368
+ The order configuration is saved in `.appshot/screenshot-order.json` and intelligently handles:
1369
+ - Files with existing numeric prefixes (prevents double-prefixing like `01_01_home.png`)
1370
+ - Mixed naming conventions in your source files
1371
+ - New screenshots added after initial ordering
1372
+
1373
+ #### Quick Order Setup
1374
+
1375
+ Create a standard order configuration:
1376
+ ```bash
1377
+ cat > .appshot/screenshot-order.json << 'EOF'
1378
+ {
1379
+ "version": "1.0",
1380
+ "orders": {
1381
+ "iphone": ["home.png", "features.png", "search.png", "profile.png", "settings.png"],
1382
+ "ipad": ["home.png", "features.png", "search.png", "profile.png", "settings.png"],
1383
+ "watch": ["home.png", "features.png", "profile.png"]
1384
+ }
1385
+ }
1386
+ EOF
1387
+ ```
1388
+
1389
+ ### Fastlane Gotchas & Solutions
1390
+
1391
+ > **🔍 Key Discoveries from Real-World Integration**
1392
+
1393
+ #### 1. Nested Directory Limitations
1394
+ **Problem**: Fastlane's `deliver` command struggles with nested device directories inside language folders.
1395
+
1396
+ **Solution**: Appshot automatically flattens the structure during export:
1397
+ ```bash
1398
+ # Appshot structure (nested):
1399
+ final/iphone/en/home.png →
1400
+
1401
+ # Fastlane structure (flattened):
1402
+ fastlane/screenshots/en-US/iphone/home.png
1403
+ ```
1404
+
1405
+ #### 2. Device-Specific Prefixes
1406
+ **Discovery**: Some devices require specific filename prefixes for Fastlane to recognize them correctly.
1407
+
1408
+ **Handled Automatically**:
1409
+ - iPad Pro 12.9" (3rd gen) → `IPAD_PRO_3GEN_129_` prefix
1410
+ - iPad Pro 11" → `IPAD_PRO_11_` prefix
1411
+
1412
+ #### 3. Upload Staging Approach
1413
+ For complex projects with many screenshots, use the staging approach in your Fastfile:
1414
+
1415
+ ```ruby
1416
+ lane :upload_screenshots_staged do
1417
+ # Flattens nested structures for Fastlane compatibility
1418
+ # Handles device prefixes automatically
1419
+ # See full implementation in Fastlane export --generate-config
1420
+ end
1421
+ ```
1422
+
1423
+ #### 4. API Key Configuration
1424
+ **Important**: Never commit your `api_key.json` to version control!
1425
+
1426
+ ```bash
1427
+ # Use the template
1428
+ cp fastlane/api_key.json.template fastlane/api_key.json
1429
+ # Edit with your credentials
1430
+ # Add to .gitignore (done automatically by export --generate-config)
1431
+ ```
1432
+
1433
+ ### Complete Workflow Example
1434
+
1435
+ ```bash
1436
+ # 1. Initialize Appshot project
1437
+ appshot init
1438
+
1439
+ # 2. Add your raw screenshots
1440
+ # Place them in screenshots/iphone/home.png, etc.
1441
+
1442
+ # 3. Generate styled screenshots
1443
+ appshot build --preset iphone-6-9,ipad-13 --langs en,es,fr
1444
+
1445
+ # 4. Export for Fastlane with config generation
1446
+ appshot export --generate-config
1447
+
1448
+ # 5. Configure Fastlane (one-time setup)
1449
+ cd fastlane
1450
+ # Edit Deliverfile with your App Store Connect credentials
1451
+ # app_identifier "com.example.myapp"
1452
+ # username "your@email.com"
1453
+
1454
+ # 6. Upload to App Store Connect
1455
+ fastlane deliver --skip_metadata --skip_app_version_update
1456
+
1457
+ # 7. For updates, just rebuild and re-export
1458
+ appshot build --preset iphone-6-9,ipad-13
1459
+ appshot export --clean
1460
+ cd fastlane && fastlane deliver
1461
+ ```
1462
+
1463
+ ### CI/CD Integration
1464
+
1465
+ ```yaml
1466
+ # GitHub Actions Example
1467
+ - name: Generate Screenshots
1468
+ run: |
1469
+ npm install -g appshot-cli
1470
+ appshot build --preset iphone-6-9,ipad-13
1471
+
1472
+ - name: Export for Fastlane
1473
+ run: appshot export --copy --clean
1474
+
1475
+ - name: Upload to App Store
1476
+ env:
1477
+ APP_STORE_CONNECT_API_KEY: ${{ secrets.ASC_API_KEY }}
1478
+ run: |
1479
+ cd fastlane
1480
+ fastlane deliver --api_key_path api_key.json
1481
+ ```
1482
+
1483
+ ### Validation
1484
+
1485
+ The export command includes comprehensive validation:
1486
+ - Checks for valid output directory permissions
1487
+ - Validates language codes against Fastlane's supported set
1488
+ - Warns about missing screenshots for requested devices
1489
+ - Suggests App Store required presets if missing
1490
+
1491
+ ```bash
1492
+ # Preview and validate
1493
+ appshot export --dry-run --verbose
1494
+
1495
+ # Check what would be exported
1496
+ appshot export --dry-run --json | jq
1497
+ ```
1498
+
1499
+ ### Generated Fastlane Files
1500
+
1501
+ With `--generate-config`, Appshot creates:
1502
+ - **Deliverfile**: Screenshot configuration
1503
+ - **Fastfile**: Upload lanes
1504
+ - **README.md**: Instructions
1505
+ - **.gitignore**: Excludes screenshots
1506
+
1507
+ Example generated Deliverfile:
1508
+ ```ruby
1509
+ # Generated by Appshot
1510
+ screenshots_path "./screenshots"
1511
+ languages ["en-US", "es-ES", "fr-FR"]
1512
+ skip_binary_upload true
1513
+ skip_metadata true
1514
+ overwrite_screenshots true
1515
+ ```
1516
+
1517
+ ### Tips
1518
+
1519
+ 1. **Language Detection**: Let Appshot auto-detect languages from your screenshots
1520
+ 2. **Device Filtering**: Export only what you need with `--devices`
1521
+ 3. **Dry Run First**: Always preview with `--dry-run` before actual export
1522
+ 4. **Validation**: Run `appshot validate` before export to ensure compliance
1523
+ 5. **Incremental Updates**: Use `--clean` to ensure fresh exports
1524
+
1206
1525
  ## 📝 Command Reference
1207
1526
 
1208
1527
  ### `appshot quickstart` (NEW!)
package/dist/cli.js CHANGED
@@ -24,6 +24,8 @@ import watchStatusCmd from './commands/watch-status.js';
24
24
  import templateCmd from './commands/template.js';
25
25
  import quickstartCmd from './commands/quickstart.js';
26
26
  import presetCmd from './commands/preset.js';
27
+ import exportCmd from './commands/export.js';
28
+ import orderCmd from './commands/order.js';
27
29
  const program = new Command();
28
30
  const logo = String.raw ` _ _ _
29
31
  / \ _ __ _ __ ___| |__ ___ | |_
@@ -59,12 +61,13 @@ ${pc.bold('Common Workflows:')}
59
61
  $ appshot backgrounds set iphone bg.jpg # Set background image
60
62
  $ appshot frame ./screenshots --recursive # Batch frame images
61
63
  $ appshot build --preset iphone-6-9,ipad-13 # App Store presets
64
+ $ appshot export fastlane # Export for Fastlane upload
62
65
  $ appshot localize --langs es,fr,de # Batch translate${platform() === 'darwin' ? `
63
66
  $ appshot device capture # Capture from simulator/device (macOS)
64
67
  $ appshot watch start --process # Auto-process new screenshots` : ''}
65
68
 
66
69
  ${pc.dim('Docs: https://github.com/chrisvanbuskirk/appshot')}`)
67
- .version('0.9.0')
70
+ .version('0.9.2')
68
71
  .addHelpText('after', `\n${pc.bold('Environment Variables:')}
69
72
  OPENAI_API_KEY API key for translation features
70
73
  APPSHOT_DISABLE_FONT_SCAN Skip system font detection (CI optimization)
@@ -87,6 +90,8 @@ program.addCommand(fontsCmd());
87
90
  program.addCommand(localizeCmd());
88
91
  program.addCommand(buildCmd());
89
92
  program.addCommand(frameCmd());
93
+ program.addCommand(orderCmd());
94
+ program.addCommand(exportCmd());
90
95
  // Add device and watch commands only on macOS
91
96
  if (platform() === 'darwin') {
92
97
  program.addCommand(deviceCmd());
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;6CAKsB,CAAC;AAE9C,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAI7B,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;;;EAUpB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;EAMvB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;;;;;gEAOkC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC;;6EAEb,CAAC,CAAC,CAAC,EAAE;;EAEhF,EAAE,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,CAAC;KAC5D,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;;;;EAI5D,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC;;;;;EAK/B,EAAE,CAAC,GAAG,CAAC,uDAAuD,CAAC,EAAE,CAAC,CAAC;AAErE,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;AAEhC,8CAA8C;AAC9C,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;IAC5B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEzC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAE9D,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export default function exportCmd(): Command;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,MAAM,CAAC,OAAO,UAAU,SAAS,YAiZhC"}