appshot-cli 0.4.0 → 0.5.0
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 +92 -7
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +67 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +61 -46
- package/dist/commands/specs.js.map +1 -1
- package/dist/core/app-store-specs.d.ts +2 -0
- package/dist/core/app-store-specs.d.ts.map +1 -1
- package/dist/core/app-store-specs.js +2 -0
- package/dist/core/app-store-specs.js.map +1 -1
- package/dist/services/doctor.d.ts +35 -0
- package/dist/services/doctor.d.ts.map +1 -0
- package/dist/services/doctor.js +439 -0
- package/dist/services/doctor.js.map +1 -0
- package/dist/types/exec.d.ts +5 -0
- package/dist/types/exec.d.ts.map +1 -0
- package/dist/types/exec.js +2 -0
- package/dist/types/exec.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -627,6 +627,62 @@ appshot clean --all --yes
|
|
|
627
627
|
appshot clean --history
|
|
628
628
|
```
|
|
629
629
|
|
|
630
|
+
### `appshot doctor`
|
|
631
|
+
|
|
632
|
+
Run comprehensive system diagnostics to verify appshot installation and dependencies.
|
|
633
|
+
|
|
634
|
+
```bash
|
|
635
|
+
appshot doctor [options]
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
**Options:**
|
|
639
|
+
- `--json` - Output results as JSON for CI/automation
|
|
640
|
+
- `--verbose` - Show detailed diagnostic information
|
|
641
|
+
- `--category <categories>` - Run specific checks (comma-separated: system,dependencies,fonts,filesystem,frames)
|
|
642
|
+
|
|
643
|
+
**Checks:**
|
|
644
|
+
- **System Requirements** - Node.js version (≥18), npm availability, platform detection
|
|
645
|
+
- **Dependencies** - Sharp module installation, native bindings, image processing test, OpenAI API key
|
|
646
|
+
- **Font System** - Font detection commands, system font loading, common font availability
|
|
647
|
+
- **File System** - Write permissions (current/temp directories), .appshot directory, configuration validity
|
|
648
|
+
- **Frame Assets** - Frame directory presence, Frames.json validation, device frame counts, missing files
|
|
649
|
+
|
|
650
|
+
**Examples:**
|
|
651
|
+
```bash
|
|
652
|
+
# Run all diagnostics
|
|
653
|
+
appshot doctor
|
|
654
|
+
|
|
655
|
+
# Check specific categories
|
|
656
|
+
appshot doctor --category system,dependencies
|
|
657
|
+
|
|
658
|
+
# JSON output for CI
|
|
659
|
+
appshot doctor --json
|
|
660
|
+
|
|
661
|
+
# Verbose mode for debugging
|
|
662
|
+
appshot doctor --verbose
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
**Output Example:**
|
|
666
|
+
```
|
|
667
|
+
🏥 Appshot Doctor - System Diagnostics
|
|
668
|
+
|
|
669
|
+
System Requirements:
|
|
670
|
+
✓ Node.js v20.5.0 (minimum: v18.0.0)
|
|
671
|
+
✓ npm v9.8.0
|
|
672
|
+
✓ darwin (macOS)
|
|
673
|
+
|
|
674
|
+
Dependencies:
|
|
675
|
+
✓ Sharp v0.33.5 installed
|
|
676
|
+
✓ libvips v8.15.3 loaded
|
|
677
|
+
✓ Sharp image processing test passed
|
|
678
|
+
⚠ OpenAI API key not found (translation features disabled)
|
|
679
|
+
|
|
680
|
+
Summary: 20 passed, 1 warning, 0 errors
|
|
681
|
+
|
|
682
|
+
Suggestions:
|
|
683
|
+
• Set OPENAI_API_KEY environment variable to enable translation features
|
|
684
|
+
```
|
|
685
|
+
|
|
630
686
|
### `appshot fonts`
|
|
631
687
|
|
|
632
688
|
Browse, validate, and set fonts for captions.
|
|
@@ -798,21 +854,50 @@ appshot presets --generate iphone-6-9,ipad-13
|
|
|
798
854
|
|
|
799
855
|
### `appshot specs`
|
|
800
856
|
|
|
801
|
-
Display
|
|
857
|
+
Display complete Apple App Store screenshot specifications.
|
|
802
858
|
|
|
803
859
|
```bash
|
|
804
860
|
appshot specs [options]
|
|
805
861
|
```
|
|
806
862
|
|
|
807
863
|
**Options:**
|
|
808
|
-
- `--device <name>` - Filter by device
|
|
809
|
-
- `--json` - Output as JSON
|
|
864
|
+
- `--device <name>` - Filter by device type (iphone|ipad|mac|watch|appletv|visionpro)
|
|
865
|
+
- `--json` - Output as JSON (exact Apple specifications for diffing)
|
|
866
|
+
- `--required` - Show only required presets
|
|
810
867
|
|
|
811
868
|
**Shows:**
|
|
812
|
-
-
|
|
813
|
-
-
|
|
814
|
-
-
|
|
815
|
-
-
|
|
869
|
+
- Complete Apple specifications with exact resolutions
|
|
870
|
+
- Display sizes and device compatibility lists
|
|
871
|
+
- Required vs optional indicators
|
|
872
|
+
- Fallback notes and requirements
|
|
873
|
+
|
|
874
|
+
**JSON Output for Change Tracking:**
|
|
875
|
+
The `--json` flag outputs the complete Apple App Store specifications data, perfect for tracking changes over time:
|
|
876
|
+
|
|
877
|
+
```bash
|
|
878
|
+
# Save current specifications
|
|
879
|
+
appshot specs --json > apple-specs-2024-08.json
|
|
880
|
+
|
|
881
|
+
# After Apple updates (typically September)
|
|
882
|
+
appshot specs --json > apple-specs-2024-09.json
|
|
883
|
+
|
|
884
|
+
# See what changed
|
|
885
|
+
diff apple-specs-2024-08.json apple-specs-2024-09.json
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
**Data Source:**
|
|
889
|
+
The specifications mirror [Apple's official screenshot requirements](https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications)
|
|
890
|
+
and are maintained in sync with Apple's updates. The JSON output preserves all metadata including:
|
|
891
|
+
- Exact resolutions (e.g., `1290x2796` for iPhone 6.9")
|
|
892
|
+
- Device groupings (which devices share requirements)
|
|
893
|
+
- Requirement status (mandatory vs optional)
|
|
894
|
+
- Fallback rules and special notes
|
|
895
|
+
|
|
896
|
+
This is particularly useful for:
|
|
897
|
+
- Tracking when Apple adds new device requirements
|
|
898
|
+
- Validating screenshot compliance before submission
|
|
899
|
+
- Automating screenshot generation pipelines
|
|
900
|
+
- Planning resource allocation for new devices
|
|
816
901
|
|
|
817
902
|
### `appshot style`
|
|
818
903
|
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ import localizeCmd from './commands/localize.js';
|
|
|
6
6
|
import buildCmd from './commands/build.js';
|
|
7
7
|
import specsCmd from './commands/specs.js';
|
|
8
8
|
import checkCmd from './commands/check.js';
|
|
9
|
+
import doctorCmd from './commands/doctor.js';
|
|
9
10
|
import presetsCmd from './commands/presets.js';
|
|
10
11
|
import validateCmd from './commands/validate.js';
|
|
11
12
|
import styleCmd from './commands/style.js';
|
|
@@ -17,7 +18,7 @@ const program = new Command();
|
|
|
17
18
|
program
|
|
18
19
|
.name('appshot')
|
|
19
20
|
.description('Generate App Store–ready screenshots with frames, gradients, and captions.')
|
|
20
|
-
.version('0.
|
|
21
|
+
.version('0.5.0');
|
|
21
22
|
program.addCommand(initCmd());
|
|
22
23
|
program.addCommand(captionCmd());
|
|
23
24
|
program.addCommand(styleCmd());
|
|
@@ -27,6 +28,7 @@ program.addCommand(localizeCmd());
|
|
|
27
28
|
program.addCommand(buildCmd());
|
|
28
29
|
program.addCommand(specsCmd());
|
|
29
30
|
program.addCommand(checkCmd());
|
|
31
|
+
program.addCommand(doctorCmd());
|
|
30
32
|
program.addCommand(presetsCmd());
|
|
31
33
|
program.addCommand(validateCmd());
|
|
32
34
|
program.addCommand(migrateCmd());
|
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,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,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,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,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":"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,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,CAAC,OAAO,UAAU,SAAS,YAwEhC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import pc from 'picocolors';
|
|
3
|
+
import { DoctorService } from '../services/doctor.js';
|
|
4
|
+
export default function doctorCmd() {
|
|
5
|
+
return new Command('doctor')
|
|
6
|
+
.description('Run diagnostics to check system requirements and dependencies')
|
|
7
|
+
.option('--json', 'output results as JSON')
|
|
8
|
+
.option('--verbose', 'show detailed diagnostic information')
|
|
9
|
+
.option('--category <categories>', 'run specific checks (comma-separated: system,dependencies,fonts,filesystem,frames)')
|
|
10
|
+
.action(async (opts) => {
|
|
11
|
+
try {
|
|
12
|
+
const doctor = new DoctorService();
|
|
13
|
+
const categories = opts.category?.split(',').map((c) => c.trim());
|
|
14
|
+
if (!opts.json) {
|
|
15
|
+
console.log(pc.bold('\n🏥 Appshot Doctor - System Diagnostics\n'));
|
|
16
|
+
}
|
|
17
|
+
const report = await doctor.runAllChecks(categories);
|
|
18
|
+
if (opts.json) {
|
|
19
|
+
console.log(JSON.stringify(report, null, 2));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Format and display results
|
|
23
|
+
const categoryNames = {
|
|
24
|
+
system: 'System Requirements',
|
|
25
|
+
dependencies: 'Dependencies',
|
|
26
|
+
fonts: 'Font System',
|
|
27
|
+
filesystem: 'File System',
|
|
28
|
+
frames: 'Frame Assets'
|
|
29
|
+
};
|
|
30
|
+
for (const [category, checks] of Object.entries(report.checks)) {
|
|
31
|
+
console.log(pc.cyan(`${categoryNames[category] || category}:`));
|
|
32
|
+
for (const check of checks) {
|
|
33
|
+
const icon = check.status === 'pass' ? pc.green('✓')
|
|
34
|
+
: check.status === 'warning' ? pc.yellow('⚠')
|
|
35
|
+
: pc.red('✗');
|
|
36
|
+
console.log(` ${icon} ${check.message}`);
|
|
37
|
+
if (opts.verbose && check.details) {
|
|
38
|
+
console.log(pc.dim(` Details: ${check.details}`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
// Display summary
|
|
44
|
+
const { passed, warnings, errors } = report.summary;
|
|
45
|
+
console.log(pc.bold('Summary: ') +
|
|
46
|
+
pc.green(`${passed} passed`) + ', ' +
|
|
47
|
+
pc.yellow(`${warnings} warning${warnings !== 1 ? 's' : ''}`) + ', ' +
|
|
48
|
+
pc.red(`${errors} error${errors !== 1 ? 's' : ''}`));
|
|
49
|
+
// Display suggestions if any
|
|
50
|
+
if (report.suggestions.length > 0) {
|
|
51
|
+
console.log('\n' + pc.cyan('Suggestions:'));
|
|
52
|
+
for (const suggestion of report.suggestions) {
|
|
53
|
+
console.log(` • ${suggestion}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Exit with error code if there are errors
|
|
57
|
+
if (errors > 0) {
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error(pc.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YAwF/B"}
|
package/dist/commands/specs.js
CHANGED
|
@@ -1,64 +1,79 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import pc from 'picocolors';
|
|
3
|
-
|
|
4
|
-
iphone: {
|
|
5
|
-
'15-pro-max': { resolution: '1290x2796', displayName: 'iPhone 15 Pro Max' },
|
|
6
|
-
'15-pro': { resolution: '1179x2556', displayName: 'iPhone 15 Pro' },
|
|
7
|
-
'15': { resolution: '1179x2556', displayName: 'iPhone 15' },
|
|
8
|
-
'14-pro-max': { resolution: '1290x2796', displayName: 'iPhone 14 Pro Max' },
|
|
9
|
-
'14-pro': { resolution: '1179x2556', displayName: 'iPhone 14 Pro' },
|
|
10
|
-
'se-3rd': { resolution: '750x1334', displayName: 'iPhone SE (3rd gen)' }
|
|
11
|
-
},
|
|
12
|
-
ipad: {
|
|
13
|
-
'pro-12.9': { resolution: '2048x2732', displayName: 'iPad Pro 12.9"' },
|
|
14
|
-
'pro-11': { resolution: '1668x2388', displayName: 'iPad Pro 11"' },
|
|
15
|
-
'air-5th': { resolution: '1640x2360', displayName: 'iPad Air (5th gen)' },
|
|
16
|
-
'mini-6th': { resolution: '1488x2266', displayName: 'iPad mini (6th gen)' },
|
|
17
|
-
'10th': { resolution: '1640x2360', displayName: 'iPad (10th gen)' }
|
|
18
|
-
},
|
|
19
|
-
mac: {
|
|
20
|
-
'macbook-pro-16': { resolution: '3456x2234', displayName: 'MacBook Pro 16"' },
|
|
21
|
-
'macbook-pro-14': { resolution: '3024x1964', displayName: 'MacBook Pro 14"' },
|
|
22
|
-
'macbook-air-15': { resolution: '2880x1864', displayName: 'MacBook Air 15"' },
|
|
23
|
-
'macbook-air-13': { resolution: '2560x1664', displayName: 'MacBook Air 13"' },
|
|
24
|
-
'imac-24': { resolution: '4480x2520', displayName: 'iMac 24"' }
|
|
25
|
-
},
|
|
26
|
-
watch: {
|
|
27
|
-
'ultra-2': { resolution: '410x502', displayName: 'Apple Watch Ultra 2' },
|
|
28
|
-
'series-9-45mm': { resolution: '396x484', displayName: 'Apple Watch Series 9 (45mm)' },
|
|
29
|
-
'series-9-41mm': { resolution: '352x430', displayName: 'Apple Watch Series 9 (41mm)' },
|
|
30
|
-
'se-44mm': { resolution: '368x448', displayName: 'Apple Watch SE (44mm)' },
|
|
31
|
-
'se-40mm': { resolution: '324x394', displayName: 'Apple Watch SE (40mm)' }
|
|
32
|
-
}
|
|
33
|
-
};
|
|
3
|
+
import { ALL_PRESETS, SPECS_LAST_UPDATED } from '../core/app-store-specs.js';
|
|
34
4
|
export default function specsCmd() {
|
|
35
5
|
return new Command('specs')
|
|
36
|
-
.description('Show device specifications and resolutions')
|
|
37
|
-
.option('--device <name>', 'filter by device type (iphone|ipad|mac|watch)')
|
|
6
|
+
.description('Show device specifications and resolutions from Apple App Store requirements')
|
|
7
|
+
.option('--device <name>', 'filter by device type (iphone|ipad|mac|watch|appletv|visionpro)')
|
|
38
8
|
.option('--json', 'output as JSON')
|
|
9
|
+
.option('--required', 'show only required presets')
|
|
39
10
|
.action((opts) => {
|
|
40
11
|
try {
|
|
41
12
|
if (opts.json) {
|
|
42
|
-
|
|
13
|
+
// For JSON output, return the exact Apple specifications
|
|
14
|
+
let output = {
|
|
15
|
+
lastUpdated: SPECS_LAST_UPDATED
|
|
16
|
+
};
|
|
17
|
+
if (opts.device) {
|
|
18
|
+
const deviceType = opts.device.toLowerCase();
|
|
19
|
+
if (deviceType in ALL_PRESETS) {
|
|
20
|
+
const presets = ALL_PRESETS[deviceType];
|
|
21
|
+
output[deviceType] = opts.required ? presets.filter(p => p.required) : presets;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.error(pc.red(`Unknown device type: ${opts.device}`));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Include all device types
|
|
30
|
+
for (const [key, presets] of Object.entries(ALL_PRESETS)) {
|
|
31
|
+
output[key] = opts.required ? presets.filter(p => p.required) : presets;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
43
34
|
console.log(JSON.stringify(output, null, 2));
|
|
44
35
|
return;
|
|
45
36
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
37
|
+
// Non-JSON formatted output
|
|
38
|
+
console.log(pc.bold('\nApple App Store Screenshot Specifications\n'));
|
|
39
|
+
console.log(pc.dim('Source: https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications'));
|
|
40
|
+
console.log(pc.dim(`Last Updated: ${SPECS_LAST_UPDATED}\n`));
|
|
41
|
+
const deviceTypes = opts.device
|
|
42
|
+
? [opts.device.toLowerCase()]
|
|
43
|
+
: Object.keys(ALL_PRESETS);
|
|
44
|
+
for (const deviceType of deviceTypes) {
|
|
45
|
+
if (!ALL_PRESETS[deviceType]) {
|
|
46
|
+
console.log(pc.red(`Unknown device type: ${deviceType}`));
|
|
53
47
|
continue;
|
|
54
48
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
const presets = opts.required
|
|
50
|
+
? ALL_PRESETS[deviceType].filter(p => p.required)
|
|
51
|
+
: ALL_PRESETS[deviceType];
|
|
52
|
+
if (presets.length === 0)
|
|
53
|
+
continue;
|
|
54
|
+
console.log(pc.cyan(deviceType.toUpperCase()));
|
|
55
|
+
for (const preset of presets) {
|
|
56
|
+
const required = preset.required ? pc.green(' (REQUIRED)') : '';
|
|
57
|
+
console.log(` ${pc.bold(preset.name)}${required}`);
|
|
58
|
+
console.log(` Display: ${preset.displaySize}`);
|
|
59
|
+
if (preset.resolutions.portrait) {
|
|
60
|
+
console.log(` Portrait: ${pc.dim(preset.resolutions.portrait)}`);
|
|
61
|
+
}
|
|
62
|
+
if (preset.resolutions.landscape) {
|
|
63
|
+
console.log(` Landscape: ${pc.dim(preset.resolutions.landscape)}`);
|
|
64
|
+
}
|
|
65
|
+
if (preset.devices && preset.devices.length > 0) {
|
|
66
|
+
const deviceList = preset.devices.slice(0, 3).join(', ');
|
|
67
|
+
const more = preset.devices.length > 3 ? ` +${preset.devices.length - 3} more` : '';
|
|
68
|
+
console.log(` Devices: ${pc.dim(deviceList + more)}`);
|
|
69
|
+
}
|
|
70
|
+
if (preset.notes) {
|
|
71
|
+
console.log(` Note: ${pc.yellow(preset.notes)}`);
|
|
72
|
+
}
|
|
73
|
+
console.log();
|
|
58
74
|
}
|
|
59
|
-
console.log();
|
|
60
75
|
}
|
|
61
|
-
console.log(pc.dim('Use
|
|
76
|
+
console.log(pc.dim('Use --json to get complete data for diffing and automation'));
|
|
62
77
|
}
|
|
63
78
|
catch (error) {
|
|
64
79
|
console.error(pc.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Official App Store Screenshot Specifications
|
|
3
3
|
* Source: https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications
|
|
4
|
+
* Last Updated: 2024-12-01
|
|
4
5
|
*/
|
|
6
|
+
export declare const SPECS_LAST_UPDATED = "2024-12-01";
|
|
5
7
|
export interface DevicePreset {
|
|
6
8
|
id: string;
|
|
7
9
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-store-specs.d.ts","sourceRoot":"","sources":["../../src/core/app-store-specs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-store-specs.d.ts","sourceRoot":"","sources":["../../src/core/app-store-specs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EA8IxC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAAY,EA4GtC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAAY,EA2CrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAY,EAqB1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,EAW5C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAuD7C,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB;;;;;;;EASjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAMlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAa7F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAa3G"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Official App Store Screenshot Specifications
|
|
3
3
|
* Source: https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications
|
|
4
|
+
* Last Updated: 2024-12-01
|
|
4
5
|
*/
|
|
6
|
+
export const SPECS_LAST_UPDATED = '2024-12-01';
|
|
5
7
|
export const IPHONE_PRESETS = [
|
|
6
8
|
{
|
|
7
9
|
id: 'iphone-6-9',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-store-specs.js","sourceRoot":"","sources":["../../src/core/app-store-specs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-store-specs.js","sourceRoot":"","sources":["../../src/core/app-store-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type CheckSeverity = 'pass' | 'warning' | 'error';
|
|
2
|
+
export interface CheckResult {
|
|
3
|
+
name: string;
|
|
4
|
+
category: string;
|
|
5
|
+
status: CheckSeverity;
|
|
6
|
+
message: string;
|
|
7
|
+
details?: string;
|
|
8
|
+
suggestion?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DoctorReport {
|
|
11
|
+
timestamp: string;
|
|
12
|
+
version: string;
|
|
13
|
+
platform: string;
|
|
14
|
+
checks: Record<string, CheckResult[]>;
|
|
15
|
+
summary: {
|
|
16
|
+
passed: number;
|
|
17
|
+
warnings: number;
|
|
18
|
+
errors: number;
|
|
19
|
+
};
|
|
20
|
+
suggestions: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare class DoctorService {
|
|
23
|
+
private results;
|
|
24
|
+
private suggestions;
|
|
25
|
+
runAllChecks(categories?: string[]): Promise<DoctorReport>;
|
|
26
|
+
private addResult;
|
|
27
|
+
private checkSystemRequirements;
|
|
28
|
+
private checkDependencies;
|
|
29
|
+
private checkFontSystem;
|
|
30
|
+
private checkFileSystem;
|
|
31
|
+
private checkFrameAssets;
|
|
32
|
+
private getPlatformName;
|
|
33
|
+
private generateReport;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import { platform } from 'os';
|
|
6
|
+
import sharp from 'sharp';
|
|
7
|
+
import { FontService } from './fonts.js';
|
|
8
|
+
import { loadConfig } from '../core/files.js';
|
|
9
|
+
import { frameRegistry } from '../core/devices.js';
|
|
10
|
+
const execAsync = promisify(exec);
|
|
11
|
+
export class DoctorService {
|
|
12
|
+
results = [];
|
|
13
|
+
suggestions = [];
|
|
14
|
+
async runAllChecks(categories) {
|
|
15
|
+
this.results = [];
|
|
16
|
+
this.suggestions = [];
|
|
17
|
+
const availableCategories = ['system', 'dependencies', 'fonts', 'filesystem', 'frames'];
|
|
18
|
+
const categoriesToRun = categories?.length
|
|
19
|
+
? categories.filter(c => availableCategories.includes(c))
|
|
20
|
+
: availableCategories;
|
|
21
|
+
if (categoriesToRun.includes('system')) {
|
|
22
|
+
await this.checkSystemRequirements();
|
|
23
|
+
}
|
|
24
|
+
if (categoriesToRun.includes('dependencies')) {
|
|
25
|
+
await this.checkDependencies();
|
|
26
|
+
}
|
|
27
|
+
if (categoriesToRun.includes('fonts')) {
|
|
28
|
+
await this.checkFontSystem();
|
|
29
|
+
}
|
|
30
|
+
if (categoriesToRun.includes('filesystem')) {
|
|
31
|
+
await this.checkFileSystem();
|
|
32
|
+
}
|
|
33
|
+
if (categoriesToRun.includes('frames')) {
|
|
34
|
+
await this.checkFrameAssets();
|
|
35
|
+
}
|
|
36
|
+
return this.generateReport();
|
|
37
|
+
}
|
|
38
|
+
addResult(result) {
|
|
39
|
+
this.results.push(result);
|
|
40
|
+
if (result.suggestion && result.status !== 'pass') {
|
|
41
|
+
this.suggestions.push(result.suggestion);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async checkSystemRequirements() {
|
|
45
|
+
// Check Node.js version
|
|
46
|
+
const nodeVersion = process.version;
|
|
47
|
+
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
|
48
|
+
this.addResult({
|
|
49
|
+
name: 'Node.js Version',
|
|
50
|
+
category: 'system',
|
|
51
|
+
status: majorVersion >= 18 ? 'pass' : 'error',
|
|
52
|
+
message: `Node.js ${nodeVersion} (minimum: v18.0.0)`,
|
|
53
|
+
suggestion: majorVersion < 18 ? 'Update Node.js to version 18 or higher' : undefined
|
|
54
|
+
});
|
|
55
|
+
// Check npm availability
|
|
56
|
+
try {
|
|
57
|
+
const { stdout } = await execAsync('npm --version');
|
|
58
|
+
this.addResult({
|
|
59
|
+
name: 'npm',
|
|
60
|
+
category: 'system',
|
|
61
|
+
status: 'pass',
|
|
62
|
+
message: `npm v${stdout.trim()}`
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
this.addResult({
|
|
67
|
+
name: 'npm',
|
|
68
|
+
category: 'system',
|
|
69
|
+
status: 'warning',
|
|
70
|
+
message: 'npm not found',
|
|
71
|
+
suggestion: 'Install npm or ensure it\'s in your PATH'
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Platform detection
|
|
75
|
+
const os = platform();
|
|
76
|
+
this.addResult({
|
|
77
|
+
name: 'Platform',
|
|
78
|
+
category: 'system',
|
|
79
|
+
status: 'pass',
|
|
80
|
+
message: `${os} (${this.getPlatformName(os)})`
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async checkDependencies() {
|
|
84
|
+
// Check Sharp installation
|
|
85
|
+
try {
|
|
86
|
+
const sharpVersion = sharp.versions;
|
|
87
|
+
this.addResult({
|
|
88
|
+
name: 'Sharp Module',
|
|
89
|
+
category: 'dependencies',
|
|
90
|
+
status: 'pass',
|
|
91
|
+
message: `Sharp v${sharpVersion.sharp} installed`
|
|
92
|
+
});
|
|
93
|
+
// Check Sharp native bindings
|
|
94
|
+
if (sharpVersion.vips) {
|
|
95
|
+
this.addResult({
|
|
96
|
+
name: 'Sharp Native Bindings',
|
|
97
|
+
category: 'dependencies',
|
|
98
|
+
status: 'pass',
|
|
99
|
+
message: `libvips v${sharpVersion.vips} loaded`
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// Test Sharp functionality
|
|
103
|
+
try {
|
|
104
|
+
await sharp({
|
|
105
|
+
create: {
|
|
106
|
+
width: 100,
|
|
107
|
+
height: 100,
|
|
108
|
+
channels: 4,
|
|
109
|
+
background: { r: 255, g: 0, b: 0, alpha: 1 }
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
.png()
|
|
113
|
+
.toBuffer();
|
|
114
|
+
this.addResult({
|
|
115
|
+
name: 'Image Processing',
|
|
116
|
+
category: 'dependencies',
|
|
117
|
+
status: 'pass',
|
|
118
|
+
message: 'Sharp image processing test passed'
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
this.addResult({
|
|
123
|
+
name: 'Image Processing',
|
|
124
|
+
category: 'dependencies',
|
|
125
|
+
status: 'error',
|
|
126
|
+
message: 'Sharp image processing test failed',
|
|
127
|
+
details: error instanceof Error ? error.message : String(error),
|
|
128
|
+
suggestion: 'Try reinstalling sharp: npm install sharp --force'
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
this.addResult({
|
|
134
|
+
name: 'Sharp Module',
|
|
135
|
+
category: 'dependencies',
|
|
136
|
+
status: 'error',
|
|
137
|
+
message: 'Sharp not installed or not functional',
|
|
138
|
+
details: error instanceof Error ? error.message : String(error),
|
|
139
|
+
suggestion: 'Install sharp: npm install sharp'
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
// Check OpenAI API key
|
|
143
|
+
const hasApiKey = !!process.env.OPENAI_API_KEY;
|
|
144
|
+
this.addResult({
|
|
145
|
+
name: 'OpenAI API Key',
|
|
146
|
+
category: 'dependencies',
|
|
147
|
+
status: hasApiKey ? 'pass' : 'warning',
|
|
148
|
+
message: hasApiKey ? 'OpenAI API key found' : 'OpenAI API key not found (translation features disabled)',
|
|
149
|
+
suggestion: hasApiKey ? undefined : 'Set OPENAI_API_KEY environment variable to enable translation features'
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
async checkFontSystem() {
|
|
153
|
+
const fontService = FontService.getInstance();
|
|
154
|
+
const os = platform();
|
|
155
|
+
// Check font detection command availability
|
|
156
|
+
let fontCommandAvailable = false;
|
|
157
|
+
let fontCommand = '';
|
|
158
|
+
if (os === 'darwin') {
|
|
159
|
+
fontCommand = 'system_profiler';
|
|
160
|
+
try {
|
|
161
|
+
await execAsync('which system_profiler');
|
|
162
|
+
fontCommandAvailable = true;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
fontCommandAvailable = false;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (os === 'win32') {
|
|
169
|
+
fontCommand = 'PowerShell';
|
|
170
|
+
fontCommandAvailable = true; // PowerShell is always available on Windows
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
fontCommand = 'fc-list';
|
|
174
|
+
try {
|
|
175
|
+
await execAsync('which fc-list');
|
|
176
|
+
fontCommandAvailable = true;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
fontCommandAvailable = false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
this.addResult({
|
|
183
|
+
name: 'Font Detection',
|
|
184
|
+
category: 'fonts',
|
|
185
|
+
status: fontCommandAvailable ? 'pass' : 'warning',
|
|
186
|
+
message: fontCommandAvailable
|
|
187
|
+
? `Font detection available (${fontCommand})`
|
|
188
|
+
: `Font detection command not found (${fontCommand})`,
|
|
189
|
+
suggestion: !fontCommandAvailable && os === 'linux'
|
|
190
|
+
? 'Install fontconfig: apt-get install fontconfig or yum install fontconfig'
|
|
191
|
+
: undefined
|
|
192
|
+
});
|
|
193
|
+
// Try to load system fonts
|
|
194
|
+
try {
|
|
195
|
+
const fonts = await fontService.getSystemFonts();
|
|
196
|
+
this.addResult({
|
|
197
|
+
name: 'System Fonts',
|
|
198
|
+
category: 'fonts',
|
|
199
|
+
status: fonts.length > 0 ? 'pass' : 'warning',
|
|
200
|
+
message: fonts.length > 0
|
|
201
|
+
? `System fonts loaded (${fonts.length} fonts)`
|
|
202
|
+
: 'No system fonts detected',
|
|
203
|
+
suggestion: fonts.length === 0
|
|
204
|
+
? 'Font detection may not be working properly on your system'
|
|
205
|
+
: undefined
|
|
206
|
+
});
|
|
207
|
+
// Check for common fonts
|
|
208
|
+
const commonFonts = ['Arial', 'Helvetica', 'Times New Roman'];
|
|
209
|
+
for (const fontName of commonFonts) {
|
|
210
|
+
const isInstalled = await fontService.isFontInstalled(fontName);
|
|
211
|
+
if (isInstalled) {
|
|
212
|
+
this.addResult({
|
|
213
|
+
name: `${fontName} Font`,
|
|
214
|
+
category: 'fonts',
|
|
215
|
+
status: 'pass',
|
|
216
|
+
message: `${fontName} font available`
|
|
217
|
+
});
|
|
218
|
+
break; // Just need one common font to pass
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
this.addResult({
|
|
224
|
+
name: 'System Fonts',
|
|
225
|
+
category: 'fonts',
|
|
226
|
+
status: 'warning',
|
|
227
|
+
message: 'Could not load system fonts',
|
|
228
|
+
details: error instanceof Error ? error.message : String(error)
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async checkFileSystem() {
|
|
233
|
+
// Check write permissions in current directory
|
|
234
|
+
const testFile = path.join(process.cwd(), '.appshot-doctor-test');
|
|
235
|
+
try {
|
|
236
|
+
await fs.writeFile(testFile, 'test', 'utf8');
|
|
237
|
+
await fs.unlink(testFile);
|
|
238
|
+
this.addResult({
|
|
239
|
+
name: 'Current Directory',
|
|
240
|
+
category: 'filesystem',
|
|
241
|
+
status: 'pass',
|
|
242
|
+
message: 'Write permissions in current directory'
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
this.addResult({
|
|
247
|
+
name: 'Current Directory',
|
|
248
|
+
category: 'filesystem',
|
|
249
|
+
status: 'error',
|
|
250
|
+
message: 'No write permissions in current directory',
|
|
251
|
+
details: error instanceof Error ? error.message : String(error),
|
|
252
|
+
suggestion: 'Check directory permissions'
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// Check write permissions in temp directory
|
|
256
|
+
const tempDir = process.platform === 'win32' ? process.env.TEMP || 'C:\\Temp' : '/tmp';
|
|
257
|
+
const tempFile = path.join(tempDir, '.appshot-doctor-test');
|
|
258
|
+
try {
|
|
259
|
+
await fs.writeFile(tempFile, 'test', 'utf8');
|
|
260
|
+
await fs.unlink(tempFile);
|
|
261
|
+
this.addResult({
|
|
262
|
+
name: 'Temp Directory',
|
|
263
|
+
category: 'filesystem',
|
|
264
|
+
status: 'pass',
|
|
265
|
+
message: 'Write permissions in temp directory'
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
this.addResult({
|
|
270
|
+
name: 'Temp Directory',
|
|
271
|
+
category: 'filesystem',
|
|
272
|
+
status: 'warning',
|
|
273
|
+
message: 'No write permissions in temp directory',
|
|
274
|
+
details: error instanceof Error ? error.message : String(error)
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
// Check .appshot directory
|
|
278
|
+
const appshotDir = path.join(process.cwd(), '.appshot');
|
|
279
|
+
try {
|
|
280
|
+
await fs.stat(appshotDir);
|
|
281
|
+
this.addResult({
|
|
282
|
+
name: '.appshot Directory',
|
|
283
|
+
category: 'filesystem',
|
|
284
|
+
status: 'pass',
|
|
285
|
+
message: '.appshot directory exists'
|
|
286
|
+
});
|
|
287
|
+
// Check configuration file
|
|
288
|
+
try {
|
|
289
|
+
await loadConfig();
|
|
290
|
+
this.addResult({
|
|
291
|
+
name: 'Configuration File',
|
|
292
|
+
category: 'filesystem',
|
|
293
|
+
status: 'pass',
|
|
294
|
+
message: 'Configuration file valid'
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
this.addResult({
|
|
299
|
+
name: 'Configuration File',
|
|
300
|
+
category: 'filesystem',
|
|
301
|
+
status: 'warning',
|
|
302
|
+
message: 'Configuration file missing or invalid',
|
|
303
|
+
suggestion: 'Run "appshot init" to create configuration'
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
this.addResult({
|
|
309
|
+
name: '.appshot Directory',
|
|
310
|
+
category: 'filesystem',
|
|
311
|
+
status: 'warning',
|
|
312
|
+
message: '.appshot directory not found',
|
|
313
|
+
suggestion: 'Run "appshot init" to initialize project'
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
async checkFrameAssets() {
|
|
318
|
+
const framesDir = path.join(process.cwd(), 'frames');
|
|
319
|
+
try {
|
|
320
|
+
const files = await fs.readdir(framesDir);
|
|
321
|
+
const frameFiles = files.filter(f => f.endsWith('.png'));
|
|
322
|
+
this.addResult({
|
|
323
|
+
name: 'Frames Directory',
|
|
324
|
+
category: 'frames',
|
|
325
|
+
status: 'pass',
|
|
326
|
+
message: `Frames directory found (${frameFiles.length} files)`
|
|
327
|
+
});
|
|
328
|
+
// Check Frames.json
|
|
329
|
+
const framesJsonPath = path.join(framesDir, 'Frames.json');
|
|
330
|
+
try {
|
|
331
|
+
const framesJson = await fs.readFile(framesJsonPath, 'utf8');
|
|
332
|
+
JSON.parse(framesJson);
|
|
333
|
+
this.addResult({
|
|
334
|
+
name: 'Frames.json',
|
|
335
|
+
category: 'frames',
|
|
336
|
+
status: 'pass',
|
|
337
|
+
message: 'Frames.json valid'
|
|
338
|
+
});
|
|
339
|
+
// Count frames by device type
|
|
340
|
+
const deviceCounts = {
|
|
341
|
+
iphone: 0,
|
|
342
|
+
ipad: 0,
|
|
343
|
+
mac: 0,
|
|
344
|
+
watch: 0
|
|
345
|
+
};
|
|
346
|
+
for (const frame of frameRegistry) {
|
|
347
|
+
deviceCounts[frame.deviceType]++;
|
|
348
|
+
}
|
|
349
|
+
for (const [device, count] of Object.entries(deviceCounts)) {
|
|
350
|
+
if (count > 0) {
|
|
351
|
+
this.addResult({
|
|
352
|
+
name: `${device.charAt(0).toUpperCase() + device.slice(1)} Frames`,
|
|
353
|
+
category: 'frames',
|
|
354
|
+
status: 'pass',
|
|
355
|
+
message: `${device === 'mac' ? 'Mac' : device.charAt(0).toUpperCase() + device.slice(1)} frames: ${count}`
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
// Check if all frame files referenced in registry exist
|
|
360
|
+
let missingFrames = 0;
|
|
361
|
+
for (const frame of frameRegistry) {
|
|
362
|
+
const framePath = path.join(framesDir, `${frame.originalName || frame.displayName}.png`);
|
|
363
|
+
try {
|
|
364
|
+
await fs.access(framePath);
|
|
365
|
+
}
|
|
366
|
+
catch {
|
|
367
|
+
missingFrames++;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (missingFrames === 0) {
|
|
371
|
+
this.addResult({
|
|
372
|
+
name: 'Frame Files',
|
|
373
|
+
category: 'frames',
|
|
374
|
+
status: 'pass',
|
|
375
|
+
message: 'All frame files present'
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
this.addResult({
|
|
380
|
+
name: 'Frame Files',
|
|
381
|
+
category: 'frames',
|
|
382
|
+
status: 'warning',
|
|
383
|
+
message: `${missingFrames} frame files missing`,
|
|
384
|
+
suggestion: 'Some device frames may not be available'
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
this.addResult({
|
|
390
|
+
name: 'Frames.json',
|
|
391
|
+
category: 'frames',
|
|
392
|
+
status: 'warning',
|
|
393
|
+
message: 'Frames.json missing or invalid',
|
|
394
|
+
details: error instanceof Error ? error.message : String(error)
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
this.addResult({
|
|
400
|
+
name: 'Frames Directory',
|
|
401
|
+
category: 'frames',
|
|
402
|
+
status: 'warning',
|
|
403
|
+
message: 'Frames directory not found',
|
|
404
|
+
suggestion: 'Device frames may not be available for the build command'
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
getPlatformName(os) {
|
|
409
|
+
switch (os) {
|
|
410
|
+
case 'darwin': return 'macOS';
|
|
411
|
+
case 'win32': return 'Windows';
|
|
412
|
+
case 'linux': return 'Linux';
|
|
413
|
+
default: return os;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
generateReport() {
|
|
417
|
+
const categorizedChecks = {};
|
|
418
|
+
for (const result of this.results) {
|
|
419
|
+
if (!categorizedChecks[result.category]) {
|
|
420
|
+
categorizedChecks[result.category] = [];
|
|
421
|
+
}
|
|
422
|
+
categorizedChecks[result.category].push(result);
|
|
423
|
+
}
|
|
424
|
+
const summary = {
|
|
425
|
+
passed: this.results.filter(r => r.status === 'pass').length,
|
|
426
|
+
warnings: this.results.filter(r => r.status === 'warning').length,
|
|
427
|
+
errors: this.results.filter(r => r.status === 'error').length
|
|
428
|
+
};
|
|
429
|
+
return {
|
|
430
|
+
timestamp: new Date().toISOString(),
|
|
431
|
+
version: '0.5.0',
|
|
432
|
+
platform: platform(),
|
|
433
|
+
checks: categorizedChecks,
|
|
434
|
+
summary,
|
|
435
|
+
suggestions: [...new Set(this.suggestions)] // Remove duplicates
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/services/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/types/exec.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/types/exec.ts"],"names":[],"mappings":""}
|