appshot-cli 0.8.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 (61) hide show
  1. package/README.md +96 -0
  2. package/dist/cli.js +18 -3
  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/unwatch.d.ts +3 -0
  9. package/dist/commands/unwatch.d.ts.map +1 -0
  10. package/dist/commands/unwatch.js +53 -0
  11. package/dist/commands/unwatch.js.map +1 -0
  12. package/dist/commands/watch-status.d.ts +3 -0
  13. package/dist/commands/watch-status.d.ts.map +1 -0
  14. package/dist/commands/watch-status.js +116 -0
  15. package/dist/commands/watch-status.js.map +1 -0
  16. package/dist/commands/watch.d.ts +3 -0
  17. package/dist/commands/watch.d.ts.map +1 -0
  18. package/dist/commands/watch.js +322 -0
  19. package/dist/commands/watch.js.map +1 -0
  20. package/dist/core/compose.d.ts.map +1 -1
  21. package/dist/core/compose.js +4 -0
  22. package/dist/core/compose.js.map +1 -1
  23. package/dist/services/compose-bridge.d.ts +47 -0
  24. package/dist/services/compose-bridge.d.ts.map +1 -0
  25. package/dist/services/compose-bridge.js +222 -0
  26. package/dist/services/compose-bridge.js.map +1 -0
  27. package/dist/services/device-manager.d.ts +14 -0
  28. package/dist/services/device-manager.d.ts.map +1 -0
  29. package/dist/services/device-manager.js +244 -0
  30. package/dist/services/device-manager.js.map +1 -0
  31. package/dist/services/doctor.d.ts +1 -0
  32. package/dist/services/doctor.d.ts.map +1 -1
  33. package/dist/services/doctor.js +94 -2
  34. package/dist/services/doctor.js.map +1 -1
  35. package/dist/services/processing-queue.d.ts +32 -0
  36. package/dist/services/processing-queue.d.ts.map +1 -0
  37. package/dist/services/processing-queue.js +150 -0
  38. package/dist/services/processing-queue.js.map +1 -0
  39. package/dist/services/screenshot-router.d.ts +31 -0
  40. package/dist/services/screenshot-router.d.ts.map +1 -0
  41. package/dist/services/screenshot-router.js +227 -0
  42. package/dist/services/screenshot-router.js.map +1 -0
  43. package/dist/services/system-requirements.d.ts +26 -0
  44. package/dist/services/system-requirements.d.ts.map +1 -0
  45. package/dist/services/system-requirements.js +189 -0
  46. package/dist/services/system-requirements.js.map +1 -0
  47. package/dist/services/watch-service.d.ts +39 -0
  48. package/dist/services/watch-service.d.ts.map +1 -0
  49. package/dist/services/watch-service.js +293 -0
  50. package/dist/services/watch-service.js.map +1 -0
  51. package/dist/types/device.d.ts +52 -0
  52. package/dist/types/device.d.ts.map +1 -0
  53. package/dist/types/device.js +2 -0
  54. package/dist/types/device.js.map +1 -0
  55. package/dist/types.d.ts +9 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/utils/pid-manager.d.ts +11 -0
  58. package/dist/utils/pid-manager.d.ts.map +1 -0
  59. package/dist/utils/pid-manager.js +76 -0
  60. package/dist/utils/pid-manager.js.map +1 -0
  61. package/package.json +3 -3
@@ -0,0 +1,244 @@
1
+ import { exec as execCallback } from 'child_process';
2
+ import { promisify } from 'util';
3
+ import pc from 'picocolors';
4
+ import fs from 'fs/promises';
5
+ import path from 'path';
6
+ const exec = promisify(execCallback);
7
+ // Device name to category mapping
8
+ const DEVICE_MAPPING = {
9
+ // iPhone simulators
10
+ 'iPhone 16 Pro Max': { category: 'iphone', displaySize: '6.9', appStoreResolution: '1320x2868' },
11
+ 'iPhone 16 Pro': { category: 'iphone', displaySize: '6.3', appStoreResolution: '1206x2622' },
12
+ 'iPhone 16 Plus': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1290x2796' },
13
+ 'iPhone 16': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1179x2556' },
14
+ 'iPhone 16e': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1179x2556' },
15
+ 'iPhone 15 Pro Max': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1290x2796' },
16
+ 'iPhone 15 Pro': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1179x2556' },
17
+ 'iPhone 15 Plus': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1290x2796' },
18
+ 'iPhone 15': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1179x2556' },
19
+ 'iPhone 14 Pro Max': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1290x2796' },
20
+ 'iPhone 14 Pro': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1179x2556' },
21
+ 'iPhone 14 Plus': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1290x2796' },
22
+ 'iPhone 14': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1170x2532' },
23
+ 'iPhone 13 Pro Max': { category: 'iphone', displaySize: '6.7', appStoreResolution: '1284x2778' },
24
+ 'iPhone 13 Pro': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1170x2532' },
25
+ 'iPhone 13': { category: 'iphone', displaySize: '6.1', appStoreResolution: '1170x2532' },
26
+ 'iPhone 13 mini': { category: 'iphone', displaySize: '5.4', appStoreResolution: '1080x2340' },
27
+ 'iPhone SE (3rd generation)': { category: 'iphone', displaySize: '4.7', appStoreResolution: '750x1334' },
28
+ // iPad simulators
29
+ 'iPad Pro 13-inch (M4)': { category: 'ipad', displaySize: '13', appStoreResolution: '2064x2752' },
30
+ 'iPad Pro 11-inch (M4)': { category: 'ipad', displaySize: '11', appStoreResolution: '1668x2388' },
31
+ 'iPad Pro 12.9-inch (6th generation)': { category: 'ipad', displaySize: '12.9', appStoreResolution: '2048x2732' },
32
+ 'iPad Pro 11-inch (4th generation)': { category: 'ipad', displaySize: '11', appStoreResolution: '1668x2388' },
33
+ 'iPad Air 13-inch (M2)': { category: 'ipad', displaySize: '13', appStoreResolution: '2064x2752' },
34
+ 'iPad Air 11-inch (M2)': { category: 'ipad', displaySize: '11', appStoreResolution: '1668x2388' },
35
+ 'iPad (10th generation)': { category: 'ipad', displaySize: '10.9', appStoreResolution: '1640x2360' },
36
+ 'iPad mini (A17 Pro)': { category: 'ipad', displaySize: '8.3', appStoreResolution: '1488x2266' },
37
+ 'iPad mini (6th generation)': { category: 'ipad', displaySize: '8.3', appStoreResolution: '1488x2266' },
38
+ // Apple Watch simulators
39
+ 'Apple Watch Series 10 (46mm)': { category: 'watch', displaySize: '46mm', appStoreResolution: '396x484' },
40
+ 'Apple Watch Series 10 (42mm)': { category: 'watch', displaySize: '42mm', appStoreResolution: '368x448' },
41
+ 'Apple Watch Ultra 2 (49mm)': { category: 'watch', displaySize: '49mm', appStoreResolution: '410x502' },
42
+ 'Apple Watch Series 9 (45mm)': { category: 'watch', displaySize: '45mm', appStoreResolution: '396x484' },
43
+ 'Apple Watch Series 9 (41mm)': { category: 'watch', displaySize: '41mm', appStoreResolution: '352x430' },
44
+ // Apple TV
45
+ 'Apple TV': { category: 'tv', displaySize: 'HD', appStoreResolution: '1920x1080' },
46
+ 'Apple TV 4K': { category: 'tv', displaySize: '4K', appStoreResolution: '3840x2160' },
47
+ // Vision Pro
48
+ 'Apple Vision Pro': { category: 'vision', displaySize: 'Vision', appStoreResolution: '3840x2160' }
49
+ };
50
+ export class DeviceManager {
51
+ simulatorService = new SimulatorService();
52
+ async listAllDevices() {
53
+ return this.simulatorService.listSimulators();
54
+ }
55
+ async listSimulators() {
56
+ return this.simulatorService.listSimulators();
57
+ }
58
+ async bootSimulator(device) {
59
+ if (device.type !== 'simulator') {
60
+ throw new Error('Can only boot simulators');
61
+ }
62
+ await this.simulatorService.bootDevice(device.id);
63
+ }
64
+ async shutdownSimulator(device) {
65
+ if (device.type !== 'simulator') {
66
+ throw new Error('Can only shutdown simulators');
67
+ }
68
+ await this.simulatorService.shutdownDevice(device.id);
69
+ }
70
+ async captureScreenshot(options) {
71
+ if (options.device.type !== 'simulator') {
72
+ throw new Error('Screenshot capture is only supported for simulators');
73
+ }
74
+ return this.simulatorService.captureScreenshot(options);
75
+ }
76
+ async launchApp(options) {
77
+ if (options.device.type !== 'simulator') {
78
+ throw new Error('App launch is only supported for simulators');
79
+ }
80
+ await this.simulatorService.launchApp(options);
81
+ }
82
+ async installApp(device, appPath) {
83
+ if (device.type !== 'simulator') {
84
+ throw new Error('App installation is only supported for simulators');
85
+ }
86
+ await this.simulatorService.installApp(device.id, appPath);
87
+ }
88
+ detectDeviceCategory(deviceName) {
89
+ // Check mapping first
90
+ const mapping = DEVICE_MAPPING[deviceName];
91
+ if (mapping) {
92
+ return mapping.category;
93
+ }
94
+ // Fallback to name-based detection
95
+ const nameLower = deviceName.toLowerCase();
96
+ if (nameLower.includes('iphone'))
97
+ return 'iphone';
98
+ if (nameLower.includes('ipad'))
99
+ return 'ipad';
100
+ if (nameLower.includes('watch'))
101
+ return 'watch';
102
+ if (nameLower.includes('tv'))
103
+ return 'tv';
104
+ if (nameLower.includes('vision'))
105
+ return 'vision';
106
+ if (nameLower.includes('mac'))
107
+ return 'mac';
108
+ return 'iphone'; // Default fallback
109
+ }
110
+ }
111
+ class SimulatorService {
112
+ async listSimulators() {
113
+ try {
114
+ const { stdout } = await exec('xcrun simctl list devices available -j');
115
+ const data = JSON.parse(stdout);
116
+ const devices = [];
117
+ for (const runtime in data.devices) {
118
+ const runtimeDevices = data.devices[runtime];
119
+ for (const device of runtimeDevices) {
120
+ if (!device.isAvailable)
121
+ continue;
122
+ const deviceName = device.name;
123
+ const mapping = DEVICE_MAPPING[deviceName] || {};
124
+ // Extract OS version from runtime ID
125
+ const osVersionMatch = runtime.match(/iOS-(\d+-\d+)/);
126
+ const osVersion = osVersionMatch ? osVersionMatch[1].replace('-', '.') : 'Unknown';
127
+ devices.push({
128
+ id: device.udid,
129
+ name: deviceName,
130
+ type: 'simulator',
131
+ category: mapping.category || this.detectCategory(deviceName),
132
+ displaySize: mapping.displaySize,
133
+ resolution: mapping.appStoreResolution,
134
+ state: this.mapSimulatorState(device.state),
135
+ osVersion: `iOS ${osVersion}`,
136
+ modelIdentifier: device.deviceTypeIdentifier
137
+ });
138
+ }
139
+ }
140
+ return devices;
141
+ }
142
+ catch (error) {
143
+ console.error(pc.red('Failed to list simulators:'), error);
144
+ return [];
145
+ }
146
+ }
147
+ detectCategory(deviceName) {
148
+ const nameLower = deviceName.toLowerCase();
149
+ if (nameLower.includes('iphone'))
150
+ return 'iphone';
151
+ if (nameLower.includes('ipad'))
152
+ return 'ipad';
153
+ if (nameLower.includes('watch'))
154
+ return 'watch';
155
+ if (nameLower.includes('tv'))
156
+ return 'tv';
157
+ if (nameLower.includes('vision'))
158
+ return 'vision';
159
+ return 'iphone';
160
+ }
161
+ mapSimulatorState(state) {
162
+ switch (state.toLowerCase()) {
163
+ case 'booted':
164
+ return 'booted';
165
+ case 'shutdown':
166
+ return 'shutdown';
167
+ default:
168
+ return 'shutdown';
169
+ }
170
+ }
171
+ async bootDevice(deviceId) {
172
+ console.log(pc.cyan(`Booting simulator ${deviceId}...`));
173
+ await exec(`xcrun simctl boot ${deviceId}`);
174
+ // Wait for boot to complete
175
+ await this.waitForBoot(deviceId);
176
+ console.log(pc.green('✅ Simulator booted'));
177
+ }
178
+ async shutdownDevice(deviceId) {
179
+ console.log(pc.cyan(`Shutting down simulator ${deviceId}...`));
180
+ await exec(`xcrun simctl shutdown ${deviceId}`);
181
+ console.log(pc.green('✅ Simulator shutdown'));
182
+ }
183
+ async waitForBoot(deviceId, maxWait = 30000) {
184
+ const startTime = Date.now();
185
+ while (Date.now() - startTime < maxWait) {
186
+ try {
187
+ const { stdout } = await exec('xcrun simctl list devices -j');
188
+ const data = JSON.parse(stdout);
189
+ for (const runtime in data.devices) {
190
+ const devices = data.devices[runtime];
191
+ const device = devices.find(d => d.udid === deviceId);
192
+ if (device && device.state === 'Booted') {
193
+ return;
194
+ }
195
+ }
196
+ }
197
+ catch {
198
+ // Ignore errors during boot check
199
+ }
200
+ await new Promise(resolve => setTimeout(resolve, 1000));
201
+ }
202
+ throw new Error('Simulator boot timeout');
203
+ }
204
+ async captureScreenshot(options) {
205
+ const tempFile = path.join('/tmp', `appshot-${Date.now()}.${options.format || 'png'}`);
206
+ try {
207
+ // Build command
208
+ let cmd = `xcrun simctl io ${options.device.id} screenshot`;
209
+ if (options.format && options.format !== 'png') {
210
+ cmd += ` --type=${options.format}`;
211
+ }
212
+ if (options.mask) {
213
+ cmd += ` --mask=${options.mask}`;
214
+ }
215
+ cmd += ` "${tempFile}"`;
216
+ await exec(cmd);
217
+ // Read the file
218
+ const screenshot = await fs.readFile(tempFile);
219
+ // Clean up
220
+ await fs.unlink(tempFile).catch(() => { });
221
+ return screenshot;
222
+ }
223
+ catch (error) {
224
+ // Clean up on error
225
+ await fs.unlink(tempFile).catch(() => { });
226
+ throw error;
227
+ }
228
+ }
229
+ async launchApp(options) {
230
+ let cmd = `xcrun simctl launch ${options.device.id} ${options.bundleId}`;
231
+ if (options.arguments && options.arguments.length > 0) {
232
+ cmd += ` ${options.arguments.join(' ')}`;
233
+ }
234
+ await exec(cmd);
235
+ }
236
+ async installApp(deviceId, appPath) {
237
+ await exec(`xcrun simctl install ${deviceId} "${appPath}"`);
238
+ }
239
+ }
240
+ // Physical device support has been removed.
241
+ // Screenshots from physical devices don't automatically transfer to Mac,
242
+ // making the feature impractical for automated workflows.
243
+ export const deviceManager = new DeviceManager();
244
+ //# sourceMappingURL=device-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../../src/services/device-manager.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export declare class DoctorService {
25
25
  runAllChecks(categories?: string[]): Promise<DoctorReport>;
26
26
  private addResult;
27
27
  private checkSystemRequirements;
28
+ private checkXcodeTools;
28
29
  private checkDependencies;
29
30
  private checkFontSystem;
30
31
  private checkFileSystem;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/services/doctor.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAgB;IAE7B,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BhE,OAAO,CAAC,SAAS;YAOH,uBAAuB;YA0CvB,iBAAiB;YAwEjB,eAAe;YAiFf,eAAe;YAqFf,gBAAgB;IAiG9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;CAyBvB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/services/doctor.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAgB;IAE7B,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BhE,OAAO,CAAC,SAAS;YAOH,uBAAuB;YA0CvB,eAAe;YAiGf,iBAAiB;YAwEjB,eAAe;YAiFf,eAAe;YAqFf,gBAAgB;IAiG9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;CAyBvB"}
@@ -7,6 +7,7 @@ import sharp from 'sharp';
7
7
  import { FontService } from './fonts.js';
8
8
  import { loadConfig } from '../core/files.js';
9
9
  import { frameRegistry } from '../core/devices.js';
10
+ import { systemRequirements } from './system-requirements.js';
10
11
  const execAsync = promisify(exec);
11
12
  export class DoctorService {
12
13
  results = [];
@@ -14,13 +15,16 @@ export class DoctorService {
14
15
  async runAllChecks(categories) {
15
16
  this.results = [];
16
17
  this.suggestions = [];
17
- const availableCategories = ['system', 'dependencies', 'fonts', 'filesystem', 'frames'];
18
+ const availableCategories = ['system', 'xcode', 'dependencies', 'fonts', 'filesystem', 'frames'];
18
19
  const categoriesToRun = categories?.length
19
20
  ? categories.filter(c => availableCategories.includes(c))
20
21
  : availableCategories;
21
22
  if (categoriesToRun.includes('system')) {
22
23
  await this.checkSystemRequirements();
23
24
  }
25
+ if (categoriesToRun.includes('xcode')) {
26
+ await this.checkXcodeTools();
27
+ }
24
28
  if (categoriesToRun.includes('dependencies')) {
25
29
  await this.checkDependencies();
26
30
  }
@@ -80,6 +84,94 @@ export class DoctorService {
80
84
  message: `${os} (${this.getPlatformName(os)})`
81
85
  });
82
86
  }
87
+ async checkXcodeTools() {
88
+ // Skip on non-macOS platforms
89
+ if (platform() !== 'darwin') {
90
+ this.addResult({
91
+ name: 'Xcode Tools',
92
+ category: 'xcode',
93
+ status: 'warning',
94
+ message: 'Not applicable on this platform',
95
+ details: 'Device features are only available on macOS'
96
+ });
97
+ return;
98
+ }
99
+ // Check Xcode Command Line Tools
100
+ const xcodeCheck = await systemRequirements.checkXcodeTools();
101
+ if (xcodeCheck.success && xcodeCheck.checks) {
102
+ // Command Line Tools
103
+ this.addResult({
104
+ name: 'Xcode Command Line Tools',
105
+ category: 'xcode',
106
+ status: xcodeCheck.checks.commandLineTools ? 'pass' : 'error',
107
+ message: xcodeCheck.checks.commandLineTools ? 'Installed' : 'Not installed',
108
+ suggestion: !xcodeCheck.checks.commandLineTools ? 'Run: xcode-select --install' : undefined
109
+ });
110
+ // xcrun
111
+ this.addResult({
112
+ name: 'xcrun',
113
+ category: 'xcode',
114
+ status: xcodeCheck.checks.xcrun ? 'pass' : 'error',
115
+ message: xcodeCheck.checks.xcrun ? 'Available' : 'Not available',
116
+ suggestion: !xcodeCheck.checks.xcrun ? 'Ensure Xcode or Command Line Tools are properly installed' : undefined
117
+ });
118
+ // simctl
119
+ this.addResult({
120
+ name: 'simctl (Simulator Control)',
121
+ category: 'xcode',
122
+ status: xcodeCheck.checks.simctl ? 'pass' : 'warning',
123
+ message: xcodeCheck.checks.simctl ? 'Available' : 'Not available',
124
+ suggestion: !xcodeCheck.checks.simctl ? 'Install Xcode from Mac App Store for simulator support' : undefined
125
+ });
126
+ // devicectl
127
+ this.addResult({
128
+ name: 'devicectl (Physical Devices)',
129
+ category: 'xcode',
130
+ status: xcodeCheck.checks.devicectl ? 'pass' : 'warning',
131
+ message: xcodeCheck.checks.devicectl ? 'Available (Xcode 15+)' : 'Not available',
132
+ details: !xcodeCheck.checks.devicectl ? 'Requires Xcode 15 or later' : undefined,
133
+ suggestion: !xcodeCheck.checks.devicectl ? 'Update to Xcode 15+ or install libimobiledevice' : undefined
134
+ });
135
+ // Xcode version
136
+ if (xcodeCheck.checks.xcodeVersion) {
137
+ const version = parseFloat(xcodeCheck.checks.xcodeVersion);
138
+ this.addResult({
139
+ name: 'Xcode Version',
140
+ category: 'xcode',
141
+ status: version >= 14.0 ? 'pass' : 'warning',
142
+ message: `Xcode ${xcodeCheck.checks.xcodeVersion}`,
143
+ suggestion: version < 14.0 ? 'Consider updating to Xcode 14.0 or later' : undefined
144
+ });
145
+ }
146
+ }
147
+ else {
148
+ this.addResult({
149
+ name: 'Xcode Tools',
150
+ category: 'xcode',
151
+ status: 'error',
152
+ message: xcodeCheck.error || 'Failed to check Xcode tools',
153
+ suggestion: xcodeCheck.fix
154
+ });
155
+ }
156
+ // Check optional tools
157
+ const optional = await systemRequirements.checkOptionalTools();
158
+ this.addResult({
159
+ name: 'libimobiledevice',
160
+ category: 'xcode',
161
+ status: optional.libimobiledevice ? 'pass' : 'warning',
162
+ message: optional.libimobiledevice ? 'Installed' : 'Not installed (optional)',
163
+ details: !optional.libimobiledevice ? 'Provides physical device screenshot support' : undefined,
164
+ suggestion: !optional.libimobiledevice ? 'Install with: brew install libimobiledevice' : undefined
165
+ });
166
+ this.addResult({
167
+ name: 'ios-deploy',
168
+ category: 'xcode',
169
+ status: optional.iosDeploy ? 'pass' : 'warning',
170
+ message: optional.iosDeploy ? 'Installed' : 'Not installed (optional)',
171
+ details: !optional.iosDeploy ? 'Provides app deployment to physical devices' : undefined,
172
+ suggestion: !optional.iosDeploy ? 'Install with: npm install -g ios-deploy' : undefined
173
+ });
174
+ }
83
175
  async checkDependencies() {
84
176
  // Check Sharp installation
85
177
  try {
@@ -428,7 +520,7 @@ export class DoctorService {
428
520
  };
429
521
  return {
430
522
  timestamp: new Date().toISOString(),
431
- version: '0.8.0',
523
+ version: '0.8.1',
432
524
  platform: platform(),
433
525
  checks: categorizedChecks,
434
526
  summary,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/services/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/services/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface QueueItem {
2
+ filepath: string;
3
+ hash?: string;
4
+ addedAt: Date;
5
+ attempts: number;
6
+ }
7
+ export interface QueueStats {
8
+ pending: number;
9
+ processed: number;
10
+ failed: number;
11
+ duplicates: number;
12
+ }
13
+ export declare class ProcessingQueue {
14
+ private queue;
15
+ private processing;
16
+ private processed;
17
+ private stats;
18
+ private hashCacheFile;
19
+ private processor?;
20
+ constructor(processor?: (filepath: string) => Promise<void>);
21
+ add(filepath: string): Promise<boolean>;
22
+ private processNext;
23
+ private hashFile;
24
+ isDuplicate(filepath: string): Promise<boolean>;
25
+ flush(): Promise<void>;
26
+ private loadHashCache;
27
+ private saveHashCache;
28
+ getStats(): QueueStats;
29
+ getPendingCount(): number;
30
+ clear(): void;
31
+ }
32
+ //# sourceMappingURL=processing-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processing-queue.d.ts","sourceRoot":"","sources":["../../src/services/processing-queue.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAC,CAAsC;gBAE5C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAKrD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAqC/B,WAAW;YA0CX,QAAQ;IAahB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAcd,aAAa;YAUb,aAAa;IAa3B,QAAQ,IAAI,UAAU;IAItB,eAAe,IAAI,MAAM;IAIzB,KAAK,IAAI,IAAI;CAKd"}