appshot-cli 0.7.0 → 0.8.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 (70) hide show
  1. package/README.md +244 -5
  2. package/dist/cli.js +23 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/device.d.ts +3 -0
  5. package/dist/commands/device.d.ts.map +1 -0
  6. package/dist/commands/device.js +414 -0
  7. package/dist/commands/device.js.map +1 -0
  8. package/dist/commands/frame.d.ts +3 -0
  9. package/dist/commands/frame.d.ts.map +1 -0
  10. package/dist/commands/frame.js +251 -0
  11. package/dist/commands/frame.js.map +1 -0
  12. package/dist/commands/unwatch.d.ts +3 -0
  13. package/dist/commands/unwatch.d.ts.map +1 -0
  14. package/dist/commands/unwatch.js +53 -0
  15. package/dist/commands/unwatch.js.map +1 -0
  16. package/dist/commands/watch-status.d.ts +3 -0
  17. package/dist/commands/watch-status.d.ts.map +1 -0
  18. package/dist/commands/watch-status.js +116 -0
  19. package/dist/commands/watch-status.js.map +1 -0
  20. package/dist/commands/watch.d.ts +3 -0
  21. package/dist/commands/watch.d.ts.map +1 -0
  22. package/dist/commands/watch.js +322 -0
  23. package/dist/commands/watch.js.map +1 -0
  24. package/dist/core/compose.d.ts +25 -0
  25. package/dist/core/compose.d.ts.map +1 -1
  26. package/dist/core/compose.js +82 -0
  27. package/dist/core/compose.js.map +1 -1
  28. package/dist/core/devices.d.ts +5 -0
  29. package/dist/core/devices.d.ts.map +1 -1
  30. package/dist/core/devices.js +43 -1
  31. package/dist/core/devices.js.map +1 -1
  32. package/dist/services/compose-bridge.d.ts +47 -0
  33. package/dist/services/compose-bridge.d.ts.map +1 -0
  34. package/dist/services/compose-bridge.js +222 -0
  35. package/dist/services/compose-bridge.js.map +1 -0
  36. package/dist/services/device-manager.d.ts +14 -0
  37. package/dist/services/device-manager.d.ts.map +1 -0
  38. package/dist/services/device-manager.js +244 -0
  39. package/dist/services/device-manager.js.map +1 -0
  40. package/dist/services/doctor.d.ts +1 -0
  41. package/dist/services/doctor.d.ts.map +1 -1
  42. package/dist/services/doctor.js +94 -2
  43. package/dist/services/doctor.js.map +1 -1
  44. package/dist/services/processing-queue.d.ts +32 -0
  45. package/dist/services/processing-queue.d.ts.map +1 -0
  46. package/dist/services/processing-queue.js +150 -0
  47. package/dist/services/processing-queue.js.map +1 -0
  48. package/dist/services/screenshot-router.d.ts +31 -0
  49. package/dist/services/screenshot-router.d.ts.map +1 -0
  50. package/dist/services/screenshot-router.js +227 -0
  51. package/dist/services/screenshot-router.js.map +1 -0
  52. package/dist/services/system-requirements.d.ts +26 -0
  53. package/dist/services/system-requirements.d.ts.map +1 -0
  54. package/dist/services/system-requirements.js +189 -0
  55. package/dist/services/system-requirements.js.map +1 -0
  56. package/dist/services/watch-service.d.ts +39 -0
  57. package/dist/services/watch-service.d.ts.map +1 -0
  58. package/dist/services/watch-service.js +293 -0
  59. package/dist/services/watch-service.js.map +1 -0
  60. package/dist/types/device.d.ts +52 -0
  61. package/dist/types/device.d.ts.map +1 -0
  62. package/dist/types/device.js +2 -0
  63. package/dist/types/device.js.map +1 -0
  64. package/dist/types.d.ts +9 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/utils/pid-manager.d.ts +11 -0
  67. package/dist/utils/pid-manager.d.ts.map +1 -0
  68. package/dist/utils/pid-manager.js +76 -0
  69. package/dist/utils/pid-manager.js.map +1 -0
  70. package/package.json +3 -3
package/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
  [![npm version](https://badge.fury.io/js/appshot-cli.svg)](https://www.npmjs.com/package/appshot-cli)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
 
9
- 🆕 **Version 0.7.0** - **Enhanced caption styling**, flexible positioning (above/below/overlay), customizable backgrounds and borders for professional App Store screenshots!
9
+ 🆕 **Version 0.8.0** - **Frame-Only Mode**, apply device frames quickly to screenshots with transparent backgrounds - perfect for design workflows and quick exports!
10
10
 
11
- > ⚠️ **NEW in v0.7.0**: Complete caption styling system with backgrounds, borders, and flexible positioning. Create professional captions with customizable colors, opacity, padding, and rounded corners.
11
+ > ⚠️ **NEW in v0.8.0**: `appshot frame` command for standalone device framing without gradients or captions. Auto-detects device types and supports batch processing with transparent PNG output.
12
12
 
13
13
  > ⚠️ **BREAKING CHANGE in v0.4.0**: Output structure now always uses language subdirectories.
14
14
  > Single language builds now output to `final/device/lang/` instead of `final/device/`.
@@ -61,8 +61,11 @@ Appshot is the only **agent-first CLI tool** designed for automated App Store sc
61
61
  - ✏️ **Dynamic Captions** - Smart text wrapping, auto-sizing, and multi-line support
62
62
  - 🌍 **AI Translation** - Real-time and batch translation using OpenAI's latest models
63
63
  - 📱 **Multi-Device** - iPhone, iPad, Mac, Apple TV, Vision Pro, and Apple Watch support
64
+ - 🎭 **Frame-Only Mode** - Quick device framing with transparent backgrounds (no gradients/captions)
64
65
  - 📏 **App Store Specs** - All official resolutions with validation and presets
65
66
  - 🔄 **Orientation Detection** - Intelligently handles both portrait and landscape
67
+ - 👁️ **Watch Mode** - File system monitoring with auto-processing (macOS)
68
+ - 📱 **Device Capture** - Direct capture from iOS simulators (macOS)
66
69
  - ⚡ **Parallel Processing** - Configurable concurrency for large batches
67
70
  - 🔍 **Caption Autocomplete** - Intelligent suggestions with fuzzy search and learning
68
71
  - 🔬 **Dry-Run Mode** - Preview what would be built without generating images
@@ -115,6 +118,38 @@ appshot build
115
118
  # ✨ Output ready in final/ directory!
116
119
  ```
117
120
 
121
+ ### Quick Frame-Only Mode
122
+
123
+ Need just device frames without the full treatment? Use the new frame command:
124
+
125
+ ```bash
126
+ # Frame a single screenshot
127
+ appshot frame screenshot.png
128
+
129
+ # Batch frame a directory
130
+ appshot frame ./screenshots --recursive
131
+
132
+ # ✨ Framed PNGs with transparent backgrounds ready!
133
+ ```
134
+
135
+ ### Watch Mode (macOS)
136
+
137
+ Automatically process screenshots as they're added:
138
+
139
+ ```bash
140
+ # Start watching for new screenshots
141
+ appshot watch start --process --background
142
+
143
+ # Capture from simulator (auto-processes via watch)
144
+ appshot device capture
145
+
146
+ # Check status
147
+ appshot watch status
148
+
149
+ # Stop watching
150
+ appshot watch stop
151
+ ```
152
+
118
153
  ### Example Output Structure
119
154
 
120
155
  ```
@@ -304,6 +339,78 @@ Every font automatically includes appropriate fallback chains:
304
339
  - **Linux**: Uses `fc-list` for fontconfig fonts
305
340
  - **Windows**: PowerShell queries font registry
306
341
 
342
+ ### Frame-Only Mode
343
+
344
+ New in v0.8.0, the `appshot frame` command provides a quick way to apply device frames to screenshots without adding gradients or captions. Perfect for design workflows, quick exports, and when you just need a framed device mockup.
345
+
346
+ #### Features
347
+
348
+ - **Auto Device Detection** - Intelligently detects iPhone, iPad, Mac, or Apple Watch from image dimensions
349
+ - **Transparent Backgrounds** - Outputs PNG with alpha channel preserved
350
+ - **Batch Processing** - Frame entire directories with recursive support
351
+ - **Smart Frame Selection** - Automatically chooses portrait/landscape frames
352
+ - **No Configuration Required** - Works instantly without setup
353
+
354
+ #### Basic Usage
355
+
356
+ ```bash
357
+ # Frame a single screenshot
358
+ appshot frame screenshot.png
359
+
360
+ # Frame all images in a directory
361
+ appshot frame ./screenshots
362
+
363
+ # Recursive directory processing
364
+ appshot frame ./screenshots --recursive
365
+
366
+ # Output to specific directory
367
+ appshot frame screenshot.png -o ./framed
368
+
369
+ # Force device type
370
+ appshot frame screenshot.png --device iphone
371
+ ```
372
+
373
+ #### Options
374
+
375
+ - `-o, --output <dir>` - Output directory (default: same as input)
376
+ - `-d, --device <type>` - Force device type (iphone|ipad|mac|watch)
377
+ - `-r, --recursive` - Process directories recursively
378
+ - `-f, --format <type>` - Output format: png (default) or jpeg
379
+ - `--suffix <text>` - Filename suffix (default: "-framed")
380
+ - `--overwrite` - Overwrite original file name
381
+ - `--dry-run` - Preview without processing
382
+ - `--verbose` - Show detailed information
383
+
384
+ #### Examples
385
+
386
+ ```bash
387
+ # Batch frame iPhone screenshots
388
+ appshot frame ./iphone-screenshots
389
+
390
+ # Frame with custom output directory
391
+ appshot frame ./screenshots -o ./mockups --recursive
392
+
393
+ # Preview what would be framed
394
+ appshot frame ./screenshots --dry-run
395
+
396
+ # Force iPad frame for ambiguous dimensions
397
+ appshot frame screenshot.png --device ipad
398
+
399
+ # JPEG output with white background
400
+ appshot frame screenshot.png --format jpeg
401
+ ```
402
+
403
+ #### Device Detection Logic
404
+
405
+ The frame command uses intelligent heuristics to detect device type:
406
+
407
+ 1. **Apple Watch** - Small, square-ish images (< 600k pixels, aspect ratio 0.75-1.3)
408
+ 2. **iPad** - 4:3 aspect ratio (1.20-1.40) with 1.5M-8M pixels
409
+ 3. **Mac** - 16:10 or 16:9 aspect ratio (1.50-1.85) with 2M+ pixels
410
+ 4. **iPhone** - Tall aspect ratios (1.60-2.40) with < 5M pixels
411
+
412
+ When dimensions are ambiguous, use `--device` to specify the target device.
413
+
307
414
  ### Device Frames
308
415
 
309
416
  #### Smart Frame Selection
@@ -847,6 +954,131 @@ appshot fonts --all
847
954
  appshot fonts --json > fonts.json
848
955
  ```
849
956
 
957
+ ### `appshot frame`
958
+
959
+ Apply device frames to screenshots with transparent backgrounds (no gradients or captions).
960
+
961
+ ```bash
962
+ appshot frame <input> [options]
963
+ ```
964
+
965
+ **Arguments:**
966
+ - `<input>` - Input image file or directory
967
+
968
+ **Options:**
969
+ - `-o, --output <dir>` - Output directory (default: same as input)
970
+ - `-d, --device <type>` - Force device type (iphone|ipad|mac|watch)
971
+ - `-r, --recursive` - Process directories recursively
972
+ - `-f, --format <type>` - Output format: png or jpeg (default: png)
973
+ - `--suffix <text>` - Filename suffix when not overwriting (default: "-framed")
974
+ - `--overwrite` - Overwrite original file name
975
+ - `--dry-run` - Preview files without processing
976
+ - `--verbose` - Show detailed information
977
+
978
+ **Features:**
979
+ - Auto-detects device type from image dimensions
980
+ - Preserves transparency with PNG output
981
+ - Batch processes entire directories
982
+ - Smart portrait/landscape frame selection
983
+ - Progress indicators for large batches
984
+
985
+ **Examples:**
986
+ ```bash
987
+ # Frame single file (auto-detect device)
988
+ appshot frame screenshot.png
989
+
990
+ # Specify output directory
991
+ appshot frame screenshot.png -o framed/
992
+
993
+ # Force device type
994
+ appshot frame screenshot.png --device iphone
995
+
996
+ # Batch process directory
997
+ appshot frame ./screenshots -o ./framed --recursive
998
+
999
+ # Dry run with verbose logs
1000
+ appshot frame ./screenshots --dry-run --verbose
1001
+
1002
+ # JPEG output (white background)
1003
+ appshot frame screenshot.png --format jpeg
1004
+ ```
1005
+
1006
+ ### `appshot device` (macOS only)
1007
+
1008
+ Capture screenshots from iOS simulators.
1009
+
1010
+ ```bash
1011
+ appshot device <command> [options]
1012
+ ```
1013
+
1014
+ **Commands:**
1015
+ - `capture` - Capture screenshot from device
1016
+ - `list` - List available devices
1017
+ - `prepare` - Boot simulators
1018
+
1019
+ **Capture Options:**
1020
+ - `-d, --device <name>` - Device name or alias
1021
+ - `--all` - Capture from all devices
1022
+ - `--simulators` - Filter simulators
1023
+ - `--booted` - Currently booted simulators
1024
+ - `--process` - Auto-process with frames
1025
+ - `--app <bundleId>` - Launch app before capture
1026
+
1027
+ **Examples:**
1028
+ ```bash
1029
+ # List devices
1030
+ appshot device list
1031
+
1032
+ # Interactive capture
1033
+ appshot device capture
1034
+
1035
+ # Capture from specific device
1036
+ appshot device capture --device "iPhone 15 Pro"
1037
+
1038
+ # Capture and process
1039
+ appshot device capture --process
1040
+ ```
1041
+
1042
+ ### `appshot watch` (macOS only)
1043
+
1044
+ Monitor directories for new screenshots with automatic processing.
1045
+
1046
+ ```bash
1047
+ appshot watch <command> [options]
1048
+ ```
1049
+
1050
+ **Commands:**
1051
+ - `start` - Start watching directories
1052
+ - `stop` - Stop the watch service
1053
+ - `status` - Check service status
1054
+ - `setup` - Interactive configuration
1055
+
1056
+ **Start Options:**
1057
+ - `-d, --dirs <paths...>` - Directories to watch
1058
+ - `--devices <names...>` - Device names for processing
1059
+ - `--process` - Auto-process with frames
1060
+ - `--frame-only` - Frames only (no gradient/caption)
1061
+ - `--background` - Run in background
1062
+ - `--verbose` - Detailed output
1063
+
1064
+ **Examples:**
1065
+ ```bash
1066
+ # Interactive setup
1067
+ appshot watch setup
1068
+
1069
+ # Start in background with processing
1070
+ appshot watch start --process --background
1071
+
1072
+ # Watch multiple directories
1073
+ appshot watch start --dirs ./screenshots ./downloads
1074
+
1075
+ # Check status
1076
+ appshot watch status --verbose
1077
+
1078
+ # Stop watching
1079
+ appshot watch stop
1080
+ ```
1081
+
850
1082
  ### `appshot gradients`
851
1083
 
852
1084
  Manage gradient presets.
@@ -1768,20 +2000,27 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
1768
2000
  - [x] Gradient presets system (24+ gradients)
1769
2001
  - [x] AI-Powered Translations (GPT-4o, GPT-5, o1, o3)
1770
2002
  - [x] Comprehensive Font System (v0.4.0)
2003
+ - [x] Frame-Only Mode (v0.8.0)
1771
2004
 
1772
2005
  ### In Progress 🚧
1773
2006
  - [ ] MCP Integration Guide
1774
2007
  - [ ] Agent API Mode
1775
2008
 
1776
2009
  ### Planned 📋
2010
+ - [ ] Fastlane Integration Plugin
2011
+ - [ ] GitHub Actions Marketplace Action
2012
+ - [ ] CI/CD Templates (Jenkins, GitLab CI, CircleCI)
2013
+ - [ ] Image Backgrounds (as alternative to gradients)
2014
+ - [ ] Screenshot Templates System
1777
2015
  - [ ] Android Device Support (Google Play Store)
1778
2016
  - [ ] Batch Config Files
1779
2017
  - [ ] Screenshot Validation API
1780
- - [ ] Auto-Caption Generation
1781
- - [ ] Smart Frame Detection
2018
+ - [ ] Auto-Caption Generation (AI-powered)
2019
+ - [ ] Smart Frame Detection (ML-based)
1782
2020
  - [ ] Pipeline Mode
1783
2021
  - [ ] WebP/AVIF Support
1784
2022
  - [ ] Differential Builds
2023
+ - [ ] Screenshot A/B Testing Framework
1785
2024
 
1786
2025
  ## 📄 License & Support
1787
2026
 
@@ -1803,7 +2042,7 @@ For security vulnerabilities, please see [SECURITY.md](SECURITY.md).
1803
2042
  ### NPM Package
1804
2043
 
1805
2044
  - 📦 [appshot-cli on NPM](https://www.npmjs.com/package/appshot-cli)
1806
- - 🔄 Latest version: 0.6.0
2045
+ - 🔄 Latest version: 0.8.0
1807
2046
  - ⬇️ Weekly downloads: ![npm](https://img.shields.io/npm/dw/appshot-cli)
1808
2047
 
1809
2048
  ---
package/dist/cli.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Command } from 'commander';
2
+ import { platform } from 'os';
2
3
  import pc from 'picocolors';
3
4
  import initCmd from './commands/init.js';
4
5
  import captionCmd from './commands/caption.js';
@@ -14,6 +15,11 @@ import gradientsCmd from './commands/gradients.js';
14
15
  import fontsCmd from './commands/fonts.js';
15
16
  import migrateCmd from './commands/migrate.js';
16
17
  import { createCleanCommand } from './commands/clean.js';
18
+ import frameCmd from './commands/frame.js';
19
+ import deviceCmd from './commands/device.js';
20
+ import watchCmd from './commands/watch.js';
21
+ import unwatchCmd from './commands/unwatch.js';
22
+ import watchStatusCmd from './commands/watch-status.js';
17
23
  const program = new Command();
18
24
  program
19
25
  .name('appshot')
@@ -26,21 +32,26 @@ ${pc.bold('Features:')}
26
32
  • AI-powered translation to 25+ languages
27
33
  • Smart caption wrapping and positioning
28
34
  • All official App Store resolutions
29
- Parallel processing for large batches
35
+ File system watch mode for auto-processing
36
+ • Device capture from simulators/physical devices (macOS)
30
37
 
31
38
  ${pc.bold('Quick Start:')}
32
39
  $ appshot init # Initialize project
33
40
  $ appshot caption --device iphone # Add captions
34
- $ appshot build # Generate screenshots
41
+ $ appshot frame screenshot.png # Apply device frame only
42
+ $ appshot build # Generate full screenshots
35
43
 
36
44
  ${pc.bold('Common Workflows:')}
37
45
  $ appshot fonts --set "Poppins Italic" # Set italic font
38
46
  $ appshot gradients select # Pick gradient
47
+ $ appshot frame ./screenshots --recursive # Batch frame images
39
48
  $ appshot build --preset iphone-6-9,ipad-13 # App Store presets
40
- $ appshot localize --langs es,fr,de # Batch translate
49
+ $ appshot localize --langs es,fr,de # Batch translate${platform() === 'darwin' ? `
50
+ $ appshot device capture # Capture from simulator/device (macOS)
51
+ $ appshot watch start --process # Auto-process new screenshots` : ''}
41
52
 
42
53
  ${pc.dim('Docs: https://github.com/chrisvanbuskirk/appshot')}`)
43
- .version('0.7.0')
54
+ .version('0.8.1')
44
55
  .addHelpText('after', `\n${pc.bold('Environment Variables:')}
45
56
  OPENAI_API_KEY API key for translation features
46
57
  APPSHOT_DISABLE_FONT_SCAN Skip system font detection (CI optimization)
@@ -58,6 +69,14 @@ program.addCommand(gradientsCmd());
58
69
  program.addCommand(fontsCmd());
59
70
  program.addCommand(localizeCmd());
60
71
  program.addCommand(buildCmd());
72
+ program.addCommand(frameCmd());
73
+ // Add device and watch commands only on macOS
74
+ if (platform() === 'darwin') {
75
+ program.addCommand(deviceCmd());
76
+ program.addCommand(watchCmd());
77
+ program.addCommand(unwatchCmd());
78
+ program.addCommand(watchStatusCmd());
79
+ }
61
80
  program.addCommand(specsCmd());
62
81
  program.addCommand(checkCmd());
63
82
  program.addCommand(doctorCmd());
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,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,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC;;EAEb,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;;EASpB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;EAKvB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;;;;EAM5B,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,OAAO,EAAE,CAAC,CAAC;AAC9B,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,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;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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export default function deviceCommand(): Command;
3
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,MAAM,CAAC,OAAO,UAAU,aAAa,IAAI,OAAO,CAoR/C"}