appshot-cli 1.0.3 → 2.0.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.
Files changed (151) hide show
  1. package/README.md +300 -559
  2. package/dist/cli.js +5 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/backgrounds.d.ts.map +1 -1
  5. package/dist/commands/backgrounds.js +164 -9
  6. package/dist/commands/backgrounds.js.map +1 -1
  7. package/dist/commands/build.d.ts.map +1 -1
  8. package/dist/commands/build.js +154 -54
  9. package/dist/commands/build.js.map +1 -1
  10. package/dist/commands/caption.d.ts.map +1 -1
  11. package/dist/commands/caption.js +350 -6
  12. package/dist/commands/caption.js.map +1 -1
  13. package/dist/commands/check.d.ts.map +1 -1
  14. package/dist/commands/check.js +174 -97
  15. package/dist/commands/check.js.map +1 -1
  16. package/dist/commands/clean.d.ts.map +1 -1
  17. package/dist/commands/clean.js +16 -0
  18. package/dist/commands/clean.js.map +1 -1
  19. package/dist/commands/fonts.d.ts.map +1 -1
  20. package/dist/commands/fonts.js +44 -26
  21. package/dist/commands/fonts.js.map +1 -1
  22. package/dist/commands/gradients.d.ts.map +1 -1
  23. package/dist/commands/gradients.js +32 -15
  24. package/dist/commands/gradients.js.map +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +18 -16
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/migrate.d.ts.map +1 -1
  29. package/dist/commands/migrate.js +51 -104
  30. package/dist/commands/migrate.js.map +1 -1
  31. package/dist/commands/preset.d.ts.map +1 -1
  32. package/dist/commands/preset.js +16 -14
  33. package/dist/commands/preset.js.map +1 -1
  34. package/dist/commands/presets.d.ts.map +1 -1
  35. package/dist/commands/presets.js +15 -0
  36. package/dist/commands/presets.js.map +1 -1
  37. package/dist/commands/quickstart.d.ts.map +1 -1
  38. package/dist/commands/quickstart.js +40 -53
  39. package/dist/commands/quickstart.js.map +1 -1
  40. package/dist/commands/style.d.ts.map +1 -1
  41. package/dist/commands/style.js +101 -57
  42. package/dist/commands/style.js.map +1 -1
  43. package/dist/commands/template.d.ts.map +1 -1
  44. package/dist/commands/template.js +68 -80
  45. package/dist/commands/template.js.map +1 -1
  46. package/dist/commands/validate.d.ts.map +1 -1
  47. package/dist/commands/validate.js +141 -0
  48. package/dist/commands/validate.js.map +1 -1
  49. package/dist/commands/wizard.d.ts +25 -0
  50. package/dist/commands/wizard.d.ts.map +1 -0
  51. package/dist/commands/wizard.js +366 -0
  52. package/dist/commands/wizard.js.map +1 -0
  53. package/dist/core/compose.d.ts +60 -1
  54. package/dist/core/compose.d.ts.map +1 -1
  55. package/dist/core/compose.js +150 -0
  56. package/dist/core/compose.js.map +1 -1
  57. package/dist/core/device-strategies/index.d.ts +8 -0
  58. package/dist/core/device-strategies/index.d.ts.map +1 -0
  59. package/dist/core/device-strategies/index.js +22 -0
  60. package/dist/core/device-strategies/index.js.map +1 -0
  61. package/dist/core/device-strategies/ipad.d.ts +3 -0
  62. package/dist/core/device-strategies/ipad.d.ts.map +1 -0
  63. package/dist/core/device-strategies/ipad.js +13 -0
  64. package/dist/core/device-strategies/ipad.js.map +1 -0
  65. package/dist/core/device-strategies/iphone.d.ts +3 -0
  66. package/dist/core/device-strategies/iphone.d.ts.map +1 -0
  67. package/dist/core/device-strategies/iphone.js +13 -0
  68. package/dist/core/device-strategies/iphone.js.map +1 -0
  69. package/dist/core/device-strategies/mac.d.ts +3 -0
  70. package/dist/core/device-strategies/mac.d.ts.map +1 -0
  71. package/dist/core/device-strategies/mac.js +13 -0
  72. package/dist/core/device-strategies/mac.js.map +1 -0
  73. package/dist/core/device-strategies/watch.d.ts +3 -0
  74. package/dist/core/device-strategies/watch.d.ts.map +1 -0
  75. package/dist/core/device-strategies/watch.js +13 -0
  76. package/dist/core/device-strategies/watch.js.map +1 -0
  77. package/dist/core/files.d.ts +3 -3
  78. package/dist/core/files.d.ts.map +1 -1
  79. package/dist/core/files.js.map +1 -1
  80. package/dist/core/layouts/device-fit.d.ts +10 -0
  81. package/dist/core/layouts/device-fit.d.ts.map +1 -0
  82. package/dist/core/layouts/device-fit.js +18 -0
  83. package/dist/core/layouts/device-fit.js.map +1 -0
  84. package/dist/core/layouts/index.d.ts +4 -0
  85. package/dist/core/layouts/index.d.ts.map +1 -0
  86. package/dist/core/layouts/index.js +4 -0
  87. package/dist/core/layouts/index.js.map +1 -0
  88. package/dist/core/layouts/math.d.ts +23 -0
  89. package/dist/core/layouts/math.d.ts.map +1 -0
  90. package/dist/core/layouts/math.js +63 -0
  91. package/dist/core/layouts/math.js.map +1 -0
  92. package/dist/core/layouts/text-layout.d.ts +10 -0
  93. package/dist/core/layouts/text-layout.d.ts.map +1 -0
  94. package/dist/core/layouts/text-layout.js +60 -0
  95. package/dist/core/layouts/text-layout.js.map +1 -0
  96. package/dist/mcp/cli-options.d.ts +15 -0
  97. package/dist/mcp/cli-options.d.ts.map +1 -1
  98. package/dist/mcp/cli-options.js +16 -0
  99. package/dist/mcp/cli-options.js.map +1 -1
  100. package/dist/mcp/server.d.ts.map +1 -1
  101. package/dist/mcp/server.js +173 -33
  102. package/dist/mcp/server.js.map +1 -1
  103. package/dist/services/caption-enhancement.d.ts +32 -0
  104. package/dist/services/caption-enhancement.d.ts.map +1 -0
  105. package/dist/services/caption-enhancement.js +156 -0
  106. package/dist/services/caption-enhancement.js.map +1 -0
  107. package/dist/services/compose-bridge.d.ts +3 -3
  108. package/dist/services/compose-bridge.d.ts.map +1 -1
  109. package/dist/services/compose-bridge.js +64 -21
  110. package/dist/services/compose-bridge.js.map +1 -1
  111. package/dist/services/doctor.d.ts.map +1 -1
  112. package/dist/services/doctor.js +13 -2
  113. package/dist/services/doctor.js.map +1 -1
  114. package/dist/services/translation.d.ts +8 -0
  115. package/dist/services/translation.d.ts.map +1 -1
  116. package/dist/services/translation.js +117 -29
  117. package/dist/services/translation.js.map +1 -1
  118. package/dist/services/watch-service.d.ts.map +1 -1
  119. package/dist/services/watch-service.js.map +1 -1
  120. package/dist/templates/registry.d.ts +18 -59
  121. package/dist/templates/registry.d.ts.map +1 -1
  122. package/dist/templates/registry.js +138 -500
  123. package/dist/templates/registry.js.map +1 -1
  124. package/dist/types.d.ts +35 -0
  125. package/dist/types.d.ts.map +1 -1
  126. package/dist/utils/config-migration.d.ts +7 -0
  127. package/dist/utils/config-migration.d.ts.map +1 -0
  128. package/dist/utils/config-migration.js +58 -0
  129. package/dist/utils/config-migration.js.map +1 -0
  130. package/dist/utils/config-version.d.ts +5 -0
  131. package/dist/utils/config-version.d.ts.map +1 -0
  132. package/dist/utils/config-version.js +10 -0
  133. package/dist/utils/config-version.js.map +1 -0
  134. package/dist/utils/language.d.ts +2 -2
  135. package/dist/utils/language.d.ts.map +1 -1
  136. package/dist/utils/language.js +1 -1
  137. package/dist/utils/language.js.map +1 -1
  138. package/dist/utils/spinner.d.ts +21 -0
  139. package/dist/utils/spinner.d.ts.map +1 -0
  140. package/dist/utils/spinner.js +60 -0
  141. package/dist/utils/spinner.js.map +1 -0
  142. package/dist/utils/v2-banner.d.ts +2 -0
  143. package/dist/utils/v2-banner.d.ts.map +1 -0
  144. package/dist/utils/v2-banner.js +14 -0
  145. package/dist/utils/v2-banner.js.map +1 -0
  146. package/dist/utils/validation.d.ts.map +1 -1
  147. package/dist/utils/validation.js +4 -3
  148. package/dist/utils/validation.js.map +1 -1
  149. package/package.json +1 -1
  150. package/skill/SKILL.md +5 -1
  151. package/skill/references/templates.md +26 -0
@@ -4,6 +4,7 @@ import path from 'path';
4
4
  import pc from 'picocolors';
5
5
  import { loadConfig, fileExists } from '../core/files.js';
6
6
  import { validateBackgroundDimensions } from '../core/background.js';
7
+ import { isV2Config } from '../utils/config-version.js';
7
8
  export default function checkCmd() {
8
9
  return new Command('check')
9
10
  .description('Validate project configuration and assets')
@@ -17,133 +18,209 @@ export default function checkCmd() {
17
18
  console.log(pc.cyan('Configuration:'));
18
19
  try {
19
20
  const config = await loadConfig();
20
- console.log(pc.green(' ✓'), 'appshot.json found and valid');
21
- // Check output directory
22
- if (!await fileExists(config.output)) {
23
- if (opts.fix) {
24
- await fs.mkdir(config.output, { recursive: true });
25
- console.log(pc.green(' ✓'), `Created output directory: ${config.output}`);
26
- }
27
- else {
28
- console.log(pc.yellow(' ⚠'), `Output directory does not exist: ${config.output}`);
29
- warnings++;
21
+ console.log(pc.green(' ✓'), `appshot.json found and valid${isV2Config(config) ? ' (v2)' : ''}`);
22
+ if (isV2Config(config)) {
23
+ const v2Config = config;
24
+ if (v2Config.output) {
25
+ if (!await fileExists(v2Config.output)) {
26
+ if (opts.fix) {
27
+ await fs.mkdir(v2Config.output, { recursive: true });
28
+ console.log(pc.green(' ✓'), `Created output directory: ${v2Config.output}`);
29
+ }
30
+ else {
31
+ console.log(pc.yellow(' ⚠'), `Output directory does not exist: ${v2Config.output}`);
32
+ warnings++;
33
+ }
34
+ }
35
+ else {
36
+ console.log(pc.green(' ✓'), `Output directory exists: ${v2Config.output}`);
37
+ }
30
38
  }
31
- }
32
- else {
33
- console.log(pc.green(''), `Output directory exists: ${config.output}`);
34
- }
35
- // Check device configurations
36
- console.log('\n' + pc.cyan('Devices:'));
37
- for (const [device, deviceConfig] of Object.entries(config.devices)) {
38
- console.log(` ${device}:`);
39
- // Check input directory
40
- const inputPath = path.resolve(deviceConfig.input);
41
- if (!await fileExists(inputPath)) {
42
- if (opts.fix) {
43
- await fs.mkdir(inputPath, { recursive: true });
44
- console.log(pc.green(' ✓'), `Created: ${deviceConfig.input}`);
39
+ console.log('\n' + pc.cyan('Devices:'));
40
+ for (const [device, deviceConfig] of Object.entries(v2Config.devices)) {
41
+ const inputDir = typeof deviceConfig === 'string' ? deviceConfig : deviceConfig.input;
42
+ console.log(` ${device}:`);
43
+ const inputPath = path.resolve(inputDir);
44
+ if (!await fileExists(inputPath)) {
45
+ if (opts.fix) {
46
+ await fs.mkdir(inputPath, { recursive: true });
47
+ console.log(pc.green(' ✓'), `Created: ${inputDir}`);
48
+ }
49
+ else {
50
+ console.log(pc.red(' ✗'), `Input directory not found: ${inputDir}`);
51
+ errors++;
52
+ }
45
53
  }
46
54
  else {
47
- console.log(pc.red(' ✗'), `Input directory not found: ${deviceConfig.input}`);
48
- errors++;
55
+ const files = await fs.readdir(inputPath);
56
+ const screenshots = files.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
57
+ if (screenshots.length > 0) {
58
+ console.log(pc.green(' ✓'), `${screenshots.length} screenshots found`);
59
+ }
60
+ else {
61
+ console.log(pc.yellow(' ⚠'), 'No screenshots found');
62
+ warnings++;
63
+ }
49
64
  }
50
65
  }
51
- else {
52
- // Count screenshots
53
- const files = await fs.readdir(inputPath);
54
- const screenshots = files.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
55
- console.log(pc.green(' ✓'), `${screenshots.length} screenshots found`);
56
- // Check captions file
57
- const captionsPath = path.join(inputPath, 'captions.json');
58
- if (!await fileExists(captionsPath)) {
66
+ if (v2Config.frames) {
67
+ console.log('\n' + pc.cyan('Frames:'));
68
+ const framesPath = path.resolve(v2Config.frames);
69
+ if (!await fileExists(framesPath)) {
59
70
  if (opts.fix) {
60
- await fs.writeFile(captionsPath, '{}', 'utf8');
61
- console.log(pc.green(' ✓'), 'Created captions.json');
71
+ await fs.mkdir(framesPath, { recursive: true });
72
+ console.log(pc.green(' ✓'), `Created frames directory: ${v2Config.frames}`);
62
73
  }
63
74
  else {
64
- console.log(pc.yellow(' ⚠'), 'No captions.json file');
75
+ console.log(pc.yellow(' ⚠'), `Frames directory not found: ${v2Config.frames}`);
65
76
  warnings++;
66
77
  }
67
78
  }
68
79
  else {
69
- console.log(pc.green(' ✓'), 'captions.json exists');
80
+ const frames = await fs.readdir(framesPath);
81
+ const frameFiles = frames.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
82
+ console.log(pc.green(' ✓'), `${frameFiles.length} frame files found`);
83
+ }
84
+ }
85
+ console.log('\n' + pc.cyan('Backgrounds:'));
86
+ if (v2Config.background?.image) {
87
+ if (await fileExists(v2Config.background.image)) {
88
+ console.log(pc.green(' ✓'), `Global background found: ${v2Config.background.image}`);
89
+ }
90
+ else {
91
+ console.log(pc.red(' ✗'), `Global background not found: ${v2Config.background.image}`);
92
+ errors++;
70
93
  }
71
94
  }
72
95
  }
73
- // Check frames directory
74
- console.log('\n' + pc.cyan('Frames:'));
75
- const framesPath = path.resolve(config.frames);
76
- if (!await fileExists(framesPath)) {
77
- if (opts.fix) {
78
- await fs.mkdir(framesPath, { recursive: true });
79
- console.log(pc.green(' ✓'), `Created frames directory: ${config.frames}`);
96
+ else {
97
+ // Check output directory
98
+ if (!await fileExists(config.output)) {
99
+ if (opts.fix) {
100
+ await fs.mkdir(config.output, { recursive: true });
101
+ console.log(pc.green(' ✓'), `Created output directory: ${config.output}`);
102
+ }
103
+ else {
104
+ console.log(pc.yellow(' ⚠'), `Output directory does not exist: ${config.output}`);
105
+ warnings++;
106
+ }
80
107
  }
81
108
  else {
82
- console.log(pc.yellow(' '), `Frames directory not found: ${config.frames}`);
83
- warnings++;
109
+ console.log(pc.green(' '), `Output directory exists: ${config.output}`);
84
110
  }
85
- }
86
- else {
87
- const frames = await fs.readdir(framesPath);
88
- const frameFiles = frames.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
89
- console.log(pc.green(' ✓'), `${frameFiles.length} frame files found`);
90
- }
91
- // Check backgrounds
92
- console.log('\n' + pc.cyan('Backgrounds:'));
93
- if (config.background?.image) {
94
- // Global background configured
95
- if (await fileExists(config.background.image)) {
96
- console.log(pc.green(' ✓'), `Global background found: ${config.background.image}`);
111
+ // Check device configurations
112
+ console.log('\n' + pc.cyan('Devices:'));
113
+ for (const [device, deviceConfig] of Object.entries(config.devices)) {
114
+ console.log(` ${device}:`);
115
+ // Check input directory
116
+ const inputPath = path.resolve(deviceConfig.input);
117
+ if (!await fileExists(inputPath)) {
118
+ if (opts.fix) {
119
+ await fs.mkdir(inputPath, { recursive: true });
120
+ console.log(pc.green(' ✓'), `Created: ${deviceConfig.input}`);
121
+ }
122
+ else {
123
+ console.log(pc.red(' ✗'), `Input directory not found: ${deviceConfig.input}`);
124
+ errors++;
125
+ }
126
+ }
127
+ else {
128
+ // Count screenshots
129
+ const files = await fs.readdir(inputPath);
130
+ const screenshots = files.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
131
+ console.log(pc.green(' ✓'), `${screenshots.length} screenshots found`);
132
+ // Check captions file
133
+ const captionsPath = path.join(inputPath, 'captions.json');
134
+ if (!await fileExists(captionsPath)) {
135
+ if (opts.fix) {
136
+ await fs.writeFile(captionsPath, '{}', 'utf8');
137
+ console.log(pc.green(' ✓'), 'Created captions.json');
138
+ }
139
+ else {
140
+ console.log(pc.yellow(' ⚠'), 'No captions.json file');
141
+ warnings++;
142
+ }
143
+ }
144
+ else {
145
+ console.log(pc.green(' ✓'), 'captions.json exists');
146
+ }
147
+ }
148
+ }
149
+ // Check frames directory
150
+ console.log('\n' + pc.cyan('Frames:'));
151
+ const framesPath = path.resolve(config.frames);
152
+ if (!await fileExists(framesPath)) {
153
+ if (opts.fix) {
154
+ await fs.mkdir(framesPath, { recursive: true });
155
+ console.log(pc.green(' ✓'), `Created frames directory: ${config.frames}`);
156
+ }
157
+ else {
158
+ console.log(pc.yellow(' ⚠'), `Frames directory not found: ${config.frames}`);
159
+ warnings++;
160
+ }
97
161
  }
98
162
  else {
99
- console.log(pc.red(' ✗'), `Global background not found: ${config.background.image}`);
100
- errors++;
163
+ const frames = await fs.readdir(framesPath);
164
+ const frameFiles = frames.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
165
+ console.log(pc.green(' ✓'), `${frameFiles.length} frame files found`);
101
166
  }
102
- }
103
- // Check device-specific backgrounds
104
- for (const [device, deviceConfig] of Object.entries(config.devices)) {
105
- let backgroundFound = false;
106
- let backgroundPath = null;
107
- // Check explicit device background config
108
- if (deviceConfig.background?.image) {
109
- backgroundPath = deviceConfig.background.image;
110
- if (await fileExists(backgroundPath)) {
111
- backgroundFound = true;
167
+ // Check backgrounds
168
+ console.log('\n' + pc.cyan('Backgrounds:'));
169
+ if (config.background?.image) {
170
+ // Global background configured
171
+ if (await fileExists(config.background.image)) {
172
+ console.log(pc.green(' ✓'), `Global background found: ${config.background.image}`);
112
173
  }
113
174
  else {
114
- console.log(pc.red(` ${device}:`), `Configured background not found: ${backgroundPath}`);
175
+ console.log(pc.red(''), `Global background not found: ${config.background.image}`);
115
176
  errors++;
116
- continue;
117
177
  }
118
178
  }
119
- // Check for auto-detected background.png
120
- if (!backgroundFound) {
121
- const autoBackgrounds = [
122
- path.join(deviceConfig.input, 'background.png'),
123
- path.join(deviceConfig.input, 'background.jpg'),
124
- path.join(deviceConfig.input, 'background.jpeg')
125
- ];
126
- for (const bgPath of autoBackgrounds) {
127
- if (await fileExists(bgPath)) {
128
- backgroundPath = bgPath;
179
+ // Check device-specific backgrounds
180
+ for (const [device, deviceConfig] of Object.entries(config.devices)) {
181
+ let backgroundFound = false;
182
+ let backgroundPath = null;
183
+ // Check explicit device background config
184
+ if (deviceConfig.background?.image) {
185
+ backgroundPath = deviceConfig.background.image;
186
+ if (await fileExists(backgroundPath)) {
129
187
  backgroundFound = true;
130
- break;
188
+ }
189
+ else {
190
+ console.log(pc.red(` ✗ ${device}:`), `Configured background not found: ${backgroundPath}`);
191
+ errors++;
192
+ continue;
131
193
  }
132
194
  }
133
- }
134
- // Validate background dimensions if found
135
- if (backgroundFound && backgroundPath) {
136
- const [width, height] = deviceConfig.resolution.split('x').map(Number);
137
- const validation = await validateBackgroundDimensions(backgroundPath, width, height);
138
- if (validation.valid) {
139
- console.log(pc.green(` ✓ ${device}:`), `Background OK (${validation.dimensions.source.width}x${validation.dimensions.source.height})`);
195
+ // Check for auto-detected background.png
196
+ if (!backgroundFound) {
197
+ const autoBackgrounds = [
198
+ path.join(deviceConfig.input, 'background.png'),
199
+ path.join(deviceConfig.input, 'background.jpg'),
200
+ path.join(deviceConfig.input, 'background.jpeg')
201
+ ];
202
+ for (const bgPath of autoBackgrounds) {
203
+ if (await fileExists(bgPath)) {
204
+ backgroundPath = bgPath;
205
+ backgroundFound = true;
206
+ break;
207
+ }
208
+ }
140
209
  }
141
- else {
142
- console.log(pc.yellow(` ⚠ ${device}:`), 'Background dimension mismatch');
143
- validation.warnings.forEach(warning => {
144
- console.log(pc.dim(` ${warning}`));
145
- });
146
- warnings++;
210
+ // Validate background dimensions if found
211
+ if (backgroundFound && backgroundPath) {
212
+ const [width, height] = deviceConfig.resolution.split('x').map(Number);
213
+ const validation = await validateBackgroundDimensions(backgroundPath, width, height);
214
+ if (validation.valid) {
215
+ console.log(pc.green(` ✓ ${device}:`), `Background OK (${validation.dimensions.source.width}x${validation.dimensions.source.height})`);
216
+ }
217
+ else {
218
+ console.log(pc.yellow(` ⚠ ${device}:`), 'Background dimension mismatch');
219
+ validation.warnings.forEach(warning => {
220
+ console.log(pc.dim(` ${warning}`));
221
+ });
222
+ warnings++;
223
+ }
147
224
  }
148
225
  }
149
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,kBAAkB,IAAI,OAAO,CAmH5C"}
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,kBAAkB,IAAI,OAAO,CAkI5C"}
@@ -9,6 +9,7 @@ export function createCleanCommand() {
9
9
  .description('Clean generated screenshots and temporary files')
10
10
  .option('-o, --output <dir>', 'Output directory to clean', 'final')
11
11
  .option('-a, --all', 'Clean all generated files including .appshot config')
12
+ .option('--reset', 'Remove generated files but keep screenshots/')
12
13
  .option('--history', 'Clear caption autocomplete history')
13
14
  .option('--keep-history', 'Keep caption history when using --all')
14
15
  .option('-y, --yes', 'Skip confirmation prompt')
@@ -16,8 +17,23 @@ export function createCleanCommand() {
16
17
  const dirs = [options.output];
17
18
  let shouldClearHistory = options.history;
18
19
  let historyFile = null;
20
+ if (options.reset) {
21
+ dirs.push('.appshot', 'gradient-samples');
22
+ if (!options.keepHistory) {
23
+ shouldClearHistory = true;
24
+ }
25
+ else {
26
+ try {
27
+ historyFile = await fs.readFile(path.join(process.cwd(), '.appshot', 'caption-history.json'));
28
+ }
29
+ catch {
30
+ // History file doesn't exist yet
31
+ }
32
+ }
33
+ }
19
34
  if (options.all) {
20
35
  dirs.push('.appshot');
36
+ dirs.push('gradient-samples');
21
37
  // If --all is used without --keep-history, history will be cleared
22
38
  if (!options.keepHistory) {
23
39
  shouldClearHistory = true;
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/commands/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,MAAM,CAAC,OAAO,UAAU,QAAQ,IAAI,OAAO,CAsQ1C"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/commands/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,CAAC,OAAO,UAAU,QAAQ,IAAI,OAAO,CAyQ1C"}
@@ -1,17 +1,9 @@
1
1
  import { Command } from 'commander';
2
2
  import pc from 'picocolors';
3
3
  import inquirer from 'inquirer';
4
- import { promises as fs } from 'fs';
5
- import path from 'path';
6
4
  import { FontService } from '../services/fonts.js';
7
- import { loadConfig } from '../core/files.js';
8
- /**
9
- * Save configuration to .appshot/config.json
10
- */
11
- async function saveConfig(config) {
12
- const configPath = path.join(process.cwd(), '.appshot', 'config.json');
13
- await fs.writeFile(configPath, JSON.stringify(config, null, 2));
14
- }
5
+ import { loadConfig, saveConfig } from '../core/files.js';
6
+ import { isV2Config } from '../utils/config-version.js';
15
7
  export default function fontsCmd() {
16
8
  const cmd = new Command('fonts')
17
9
  .description('Browse, validate, and configure fonts for captions')
@@ -59,7 +51,10 @@ ${pc.bold('Font Variants:')}
59
51
  • "Poppins Bold Italic" → Bold + Italic
60
52
 
61
53
  ${pc.dim('All embedded fonts use OFL or Apache 2.0 licenses.')}
62
- ${pc.dim('Embedded fonts work consistently across all platforms.')}`)
54
+ ${pc.dim('Embedded fonts work consistently across all platforms.')}
55
+ ${pc.bold('v2 vs v1:')}
56
+ v2 configs only support a global caption font.
57
+ Per-device font overrides are legacy and only apply to v1 configs.`)
63
58
  .action(async (options) => {
64
59
  const fontService = FontService.getInstance();
65
60
  // Set font mode
@@ -273,22 +268,32 @@ async function handleSetFont(fontName, deviceName, fontService) {
273
268
  }
274
269
  // Load current config
275
270
  const config = await loadConfig();
271
+ if (isV2Config(config)) {
272
+ if (deviceName) {
273
+ console.log(pc.yellow('Per-device fonts are not supported in v2. Setting global caption font instead.'));
274
+ }
275
+ config.caption.font = fontName;
276
+ await saveConfig(config);
277
+ console.log(pc.green('✓'), `Set caption font to "${fontName}"`);
278
+ return;
279
+ }
280
+ const v1Config = config;
276
281
  if (deviceName) {
277
282
  // Set device-specific font
278
- if (!config.devices[deviceName]) {
283
+ if (!v1Config.devices[deviceName]) {
279
284
  console.error(pc.red(`Device "${deviceName}" not found in configuration`));
280
- console.log(pc.dim('Available devices: ' + Object.keys(config.devices).join(', ')));
285
+ console.log(pc.dim('Available devices: ' + Object.keys(v1Config.devices).join(', ')));
281
286
  process.exit(1);
282
287
  }
283
288
  // Set device-specific font
284
- config.devices[deviceName].captionFont = fontName;
289
+ v1Config.devices[deviceName].captionFont = fontName;
285
290
  }
286
291
  else {
287
292
  // Set global font
288
- config.caption.font = fontName;
293
+ v1Config.caption.font = fontName;
289
294
  }
290
295
  // Save config
291
- await saveConfig(config);
296
+ await saveConfig(v1Config);
292
297
  if (deviceName) {
293
298
  console.log(pc.green('✓'), `Set font to "${fontName}" for device: ${deviceName}`);
294
299
  }
@@ -308,19 +313,25 @@ async function handleSelectFont(deviceName, fontService) {
308
313
  try {
309
314
  // Load current config to show current font
310
315
  const config = await loadConfig();
316
+ const isV2 = isV2Config(config);
311
317
  let currentFont = config.caption.font;
312
318
  let isDeviceSpecific = false;
319
+ if (isV2 && deviceName) {
320
+ console.log(pc.yellow('Per-device fonts are not supported in v2. Using global font.'));
321
+ deviceName = undefined;
322
+ }
313
323
  console.log(pc.bold('\n🎨 Font Selection\n'));
314
- if (deviceName) {
315
- if (!config.devices[deviceName]) {
324
+ if (!isV2 && deviceName) {
325
+ const v1Config = config;
326
+ if (!v1Config.devices[deviceName]) {
316
327
  console.error(pc.red(`Device "${deviceName}" not found in configuration`));
317
- console.log(pc.dim('Available devices: ' + Object.keys(config.devices).join(', ')));
328
+ console.log(pc.dim('Available devices: ' + Object.keys(v1Config.devices).join(', ')));
318
329
  process.exit(1);
319
330
  }
320
331
  console.log(pc.dim(`Configuring font for device: ${deviceName}`));
321
332
  // Check if device has specific font, otherwise use global
322
- if (config.devices[deviceName].captionFont) {
323
- currentFont = config.devices[deviceName].captionFont;
333
+ if (v1Config.devices[deviceName].captionFont) {
334
+ currentFont = v1Config.devices[deviceName].captionFont;
324
335
  isDeviceSpecific = true;
325
336
  }
326
337
  }
@@ -442,14 +453,21 @@ async function handleSelectFont(deviceName, fontService) {
442
453
  }
443
454
  }
444
455
  // Update config
445
- if (deviceName) {
446
- config.devices[deviceName].captionFont = selectedFont;
456
+ if (isV2) {
457
+ config.caption.font = selectedFont;
458
+ await saveConfig(config);
447
459
  }
448
460
  else {
449
- config.caption.font = selectedFont;
461
+ const v1Config = config;
462
+ if (deviceName) {
463
+ v1Config.devices[deviceName].captionFont = selectedFont;
464
+ }
465
+ else {
466
+ v1Config.caption.font = selectedFont;
467
+ }
468
+ await saveConfig(v1Config);
450
469
  }
451
- await saveConfig(config);
452
- if (deviceName) {
470
+ if (deviceName && !isV2) {
453
471
  console.log(pc.green('✓'), `Set font to "${selectedFont}" for device: ${deviceName}`);
454
472
  }
455
473
  else {