appshot-cli 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +244 -5
  2. package/dist/cli.js +23 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/device.d.ts +3 -0
  5. package/dist/commands/device.d.ts.map +1 -0
  6. package/dist/commands/device.js +414 -0
  7. package/dist/commands/device.js.map +1 -0
  8. package/dist/commands/frame.d.ts +3 -0
  9. package/dist/commands/frame.d.ts.map +1 -0
  10. package/dist/commands/frame.js +251 -0
  11. package/dist/commands/frame.js.map +1 -0
  12. package/dist/commands/unwatch.d.ts +3 -0
  13. package/dist/commands/unwatch.d.ts.map +1 -0
  14. package/dist/commands/unwatch.js +53 -0
  15. package/dist/commands/unwatch.js.map +1 -0
  16. package/dist/commands/watch-status.d.ts +3 -0
  17. package/dist/commands/watch-status.d.ts.map +1 -0
  18. package/dist/commands/watch-status.js +116 -0
  19. package/dist/commands/watch-status.js.map +1 -0
  20. package/dist/commands/watch.d.ts +3 -0
  21. package/dist/commands/watch.d.ts.map +1 -0
  22. package/dist/commands/watch.js +322 -0
  23. package/dist/commands/watch.js.map +1 -0
  24. package/dist/core/compose.d.ts +25 -0
  25. package/dist/core/compose.d.ts.map +1 -1
  26. package/dist/core/compose.js +82 -0
  27. package/dist/core/compose.js.map +1 -1
  28. package/dist/core/devices.d.ts +5 -0
  29. package/dist/core/devices.d.ts.map +1 -1
  30. package/dist/core/devices.js +43 -1
  31. package/dist/core/devices.js.map +1 -1
  32. package/dist/services/compose-bridge.d.ts +47 -0
  33. package/dist/services/compose-bridge.d.ts.map +1 -0
  34. package/dist/services/compose-bridge.js +222 -0
  35. package/dist/services/compose-bridge.js.map +1 -0
  36. package/dist/services/device-manager.d.ts +14 -0
  37. package/dist/services/device-manager.d.ts.map +1 -0
  38. package/dist/services/device-manager.js +244 -0
  39. package/dist/services/device-manager.js.map +1 -0
  40. package/dist/services/doctor.d.ts +1 -0
  41. package/dist/services/doctor.d.ts.map +1 -1
  42. package/dist/services/doctor.js +94 -2
  43. package/dist/services/doctor.js.map +1 -1
  44. package/dist/services/processing-queue.d.ts +32 -0
  45. package/dist/services/processing-queue.d.ts.map +1 -0
  46. package/dist/services/processing-queue.js +150 -0
  47. package/dist/services/processing-queue.js.map +1 -0
  48. package/dist/services/screenshot-router.d.ts +31 -0
  49. package/dist/services/screenshot-router.d.ts.map +1 -0
  50. package/dist/services/screenshot-router.js +227 -0
  51. package/dist/services/screenshot-router.js.map +1 -0
  52. package/dist/services/system-requirements.d.ts +26 -0
  53. package/dist/services/system-requirements.d.ts.map +1 -0
  54. package/dist/services/system-requirements.js +189 -0
  55. package/dist/services/system-requirements.js.map +1 -0
  56. package/dist/services/watch-service.d.ts +39 -0
  57. package/dist/services/watch-service.d.ts.map +1 -0
  58. package/dist/services/watch-service.js +293 -0
  59. package/dist/services/watch-service.js.map +1 -0
  60. package/dist/types/device.d.ts +52 -0
  61. package/dist/types/device.d.ts.map +1 -0
  62. package/dist/types/device.js +2 -0
  63. package/dist/types/device.js.map +1 -0
  64. package/dist/types.d.ts +9 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/utils/pid-manager.d.ts +11 -0
  67. package/dist/utils/pid-manager.d.ts.map +1 -0
  68. package/dist/utils/pid-manager.js +76 -0
  69. package/dist/utils/pid-manager.js.map +1 -0
  70. package/package.json +3 -3
@@ -0,0 +1,322 @@
1
+ import { Command } from 'commander';
2
+ import { spawn } from 'child_process';
3
+ import { platform } from 'os';
4
+ import pc from 'picocolors';
5
+ import fs from 'fs/promises';
6
+ import path from 'path';
7
+ import { select, confirm, checkbox } from '@inquirer/prompts';
8
+ import { watchService, WatchService } from '../services/watch-service.js';
9
+ import { deviceManager } from '../services/device-manager.js';
10
+ import { PIDManager } from '../utils/pid-manager.js';
11
+ export default function watchCommand() {
12
+ const cmd = new Command('watch')
13
+ .description('Monitor directories for new screenshots and auto-process them');
14
+ // Start watching
15
+ cmd
16
+ .command('start')
17
+ .description('Start watching directories for screenshots')
18
+ .option('-d, --dirs <directories...>', 'Directories to watch (default: current directory)')
19
+ .option('--devices <names...>', 'Device names to process for')
20
+ .option('--process', 'Auto-process with frames and gradients')
21
+ .option('--frame-only', 'Apply frames only (no gradient/caption)')
22
+ .option('--verbose', 'Show detailed output')
23
+ .option('--background', 'Run in background (detached process)')
24
+ .action(async (options) => {
25
+ try {
26
+ // Check if already running
27
+ if (await WatchService.isRunning()) {
28
+ const pid = await WatchService.getCurrentPID();
29
+ console.error(pc.red(`❌ Watch service is already running (PID: ${pid})`));
30
+ console.log(pc.dim(' Use "appshot watch stop" to stop it first'));
31
+ process.exit(1);
32
+ }
33
+ // Determine directories to watch
34
+ let directories = options.dirs || [process.cwd()];
35
+ // Validate directories
36
+ for (const dir of directories) {
37
+ try {
38
+ const stat = await fs.stat(dir);
39
+ if (!stat.isDirectory()) {
40
+ console.error(pc.red(`❌ Not a directory: ${dir}`));
41
+ process.exit(1);
42
+ }
43
+ }
44
+ catch {
45
+ console.error(pc.red(`❌ Directory not found: ${dir}`));
46
+ process.exit(1);
47
+ }
48
+ }
49
+ // If devices specified on macOS, validate them
50
+ let validatedDevices = [];
51
+ if (options.devices && platform() === 'darwin') {
52
+ const allDevices = await deviceManager.listAllDevices();
53
+ for (const deviceName of options.devices) {
54
+ const device = allDevices.find(d => d.name.toLowerCase().includes(deviceName.toLowerCase()));
55
+ if (device) {
56
+ validatedDevices.push(device.name);
57
+ }
58
+ else {
59
+ console.warn(pc.yellow(`⚠️ Device not found: ${deviceName}`));
60
+ }
61
+ }
62
+ if (validatedDevices.length === 0 && options.devices.length > 0) {
63
+ console.error(pc.red('❌ No valid devices found'));
64
+ process.exit(1);
65
+ }
66
+ }
67
+ if (options.background) {
68
+ // Start in background
69
+ console.log(pc.cyan('🚀 Starting watch service in background...'));
70
+ // Build command arguments
71
+ const args = ['watch', 'start'];
72
+ if (options.dirs)
73
+ args.push('--dirs', ...options.dirs);
74
+ if (validatedDevices.length > 0)
75
+ args.push('--devices', ...validatedDevices);
76
+ if (options.process)
77
+ args.push('--process');
78
+ if (options.frameOnly)
79
+ args.push('--frame-only');
80
+ if (options.verbose)
81
+ args.push('--verbose');
82
+ // Spawn detached process
83
+ const child = spawn('appshot', args, {
84
+ detached: true,
85
+ stdio: 'ignore',
86
+ env: process.env
87
+ });
88
+ child.unref();
89
+ // Wait a moment to check if it started
90
+ await new Promise(resolve => setTimeout(resolve, 1000));
91
+ if (await WatchService.isRunning()) {
92
+ const pid = await WatchService.getCurrentPID();
93
+ console.log(pc.green(`✅ Watch service started in background (PID: ${pid})`));
94
+ console.log(pc.dim(' Use "appshot watch status" to check status'));
95
+ console.log(pc.dim(' Use "appshot watch stop" to stop watching'));
96
+ }
97
+ else {
98
+ console.error(pc.red('❌ Failed to start watch service'));
99
+ process.exit(1);
100
+ }
101
+ }
102
+ else {
103
+ // Start in foreground
104
+ console.log(pc.cyan('🚀 Starting watch service...'));
105
+ console.log(pc.dim(' Press Ctrl+C to stop\n'));
106
+ await watchService.start({
107
+ directories,
108
+ devices: validatedDevices,
109
+ process: options.process || false,
110
+ frameOnly: options.frameOnly || false,
111
+ verbose: options.verbose || false
112
+ });
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.error(pc.red('❌ Error starting watch service:'), error);
117
+ process.exit(1);
118
+ }
119
+ });
120
+ // Stop watching
121
+ cmd
122
+ .command('stop')
123
+ .description('Stop the watch service')
124
+ .action(async () => {
125
+ try {
126
+ const pidManager = new PIDManager('.appshot/watch.pid');
127
+ const pid = await pidManager.readPID();
128
+ if (!pid) {
129
+ console.log(pc.yellow('⚠️ Watch service is not running'));
130
+ return;
131
+ }
132
+ if (!(await pidManager.isProcessRunning(pid))) {
133
+ console.log(pc.yellow('⚠️ Watch service PID file exists but process is not running'));
134
+ await pidManager.cleanup();
135
+ return;
136
+ }
137
+ console.log(pc.cyan(`🛑 Stopping watch service (PID: ${pid})...`));
138
+ try {
139
+ process.kill(pid, 'SIGTERM');
140
+ // Wait for process to stop
141
+ let attempts = 0;
142
+ while (attempts < 10 && await pidManager.isProcessRunning(pid)) {
143
+ await new Promise(resolve => setTimeout(resolve, 500));
144
+ attempts++;
145
+ }
146
+ if (await pidManager.isProcessRunning(pid)) {
147
+ // Force kill if still running
148
+ console.log(pc.yellow('⚠️ Process did not stop gracefully, forcing...'));
149
+ process.kill(pid, 'SIGKILL');
150
+ }
151
+ await pidManager.cleanup();
152
+ console.log(pc.green('✅ Watch service stopped'));
153
+ }
154
+ catch (error) {
155
+ if (error.code === 'ESRCH') {
156
+ console.log(pc.yellow('⚠️ Process already stopped'));
157
+ await pidManager.cleanup();
158
+ }
159
+ else {
160
+ throw error;
161
+ }
162
+ }
163
+ }
164
+ catch (error) {
165
+ console.error(pc.red('❌ Error stopping watch service:'), error);
166
+ process.exit(1);
167
+ }
168
+ });
169
+ // Check status
170
+ cmd
171
+ .command('status')
172
+ .description('Check watch service status')
173
+ .option('--json', 'Output as JSON')
174
+ .action(async (options) => {
175
+ try {
176
+ const pidManager = new PIDManager('.appshot/watch.pid');
177
+ const pid = await pidManager.readPID();
178
+ if (!pid) {
179
+ if (options.json) {
180
+ console.log(JSON.stringify({ running: false }));
181
+ }
182
+ else {
183
+ console.log(pc.yellow('⚠️ Watch service is not running'));
184
+ }
185
+ return;
186
+ }
187
+ const isRunning = await pidManager.isProcessRunning(pid);
188
+ if (!isRunning) {
189
+ if (options.json) {
190
+ console.log(JSON.stringify({ running: false, stalePid: pid }));
191
+ }
192
+ else {
193
+ console.log(pc.yellow('⚠️ Watch service PID file exists but process is not running'));
194
+ console.log(pc.dim(` Stale PID: ${pid}`));
195
+ console.log(pc.dim(' Run "appshot watch stop" to clean up'));
196
+ }
197
+ return;
198
+ }
199
+ if (options.json) {
200
+ console.log(JSON.stringify({
201
+ running: true,
202
+ pid,
203
+ pidFile: '.appshot/watch.pid'
204
+ }));
205
+ }
206
+ else {
207
+ console.log(pc.green('✅ Watch service is running'));
208
+ console.log(pc.dim(` PID: ${pid}`));
209
+ console.log(pc.dim(' PID file: .appshot/watch.pid'));
210
+ console.log(pc.dim('\n Use "appshot watch stop" to stop watching'));
211
+ }
212
+ }
213
+ catch (error) {
214
+ console.error(pc.red('❌ Error checking status:'), error);
215
+ process.exit(1);
216
+ }
217
+ });
218
+ // Interactive setup
219
+ cmd
220
+ .command('setup')
221
+ .description('Interactive watch configuration')
222
+ .action(async () => {
223
+ try {
224
+ console.log(pc.bold('\n🔧 Watch Service Setup\n'));
225
+ // Select directories
226
+ const currentDir = process.cwd();
227
+ const screenshotsDir = path.join(currentDir, 'screenshots');
228
+ const hasScreenshotsDir = await fs.stat(screenshotsDir).then(() => true).catch(() => false);
229
+ const dirChoices = [
230
+ { name: 'Current directory', value: currentDir }
231
+ ];
232
+ if (hasScreenshotsDir) {
233
+ dirChoices.push({ name: 'screenshots/ directory', value: screenshotsDir });
234
+ }
235
+ dirChoices.push({ name: 'Custom directory...', value: 'custom' });
236
+ const selectedDirs = [];
237
+ const dirChoice = await select({
238
+ message: 'Which directory should we watch?',
239
+ choices: dirChoices
240
+ });
241
+ if (dirChoice === 'custom') {
242
+ console.log(pc.dim('Enter the path to watch (or multiple paths separated by commas)'));
243
+ // Would need text input here, using current dir as fallback for now
244
+ selectedDirs.push(currentDir);
245
+ }
246
+ else {
247
+ selectedDirs.push(dirChoice);
248
+ }
249
+ // Select devices (macOS only)
250
+ let selectedDevices = [];
251
+ if (platform() === 'darwin') {
252
+ const useDevices = await confirm({
253
+ message: 'Process screenshots for specific devices?',
254
+ default: false
255
+ });
256
+ if (useDevices) {
257
+ const devices = await deviceManager.listAllDevices();
258
+ if (devices.length > 0) {
259
+ const deviceChoices = devices.map(d => ({
260
+ name: `${d.name} (${d.category})`,
261
+ value: d.name,
262
+ checked: false
263
+ }));
264
+ selectedDevices = await checkbox({
265
+ message: 'Select devices to process for:',
266
+ choices: deviceChoices
267
+ });
268
+ }
269
+ }
270
+ }
271
+ // Processing options
272
+ const shouldProcess = await confirm({
273
+ message: 'Auto-process screenshots with frames and gradients?',
274
+ default: true
275
+ });
276
+ let frameOnly = false;
277
+ if (shouldProcess) {
278
+ frameOnly = await confirm({
279
+ message: 'Frame only mode? (no gradient/caption)',
280
+ default: false
281
+ });
282
+ }
283
+ // Background mode
284
+ const runInBackground = await confirm({
285
+ message: 'Run in background?',
286
+ default: true
287
+ });
288
+ // Build and execute command
289
+ const args = ['watch', 'start', '--dirs', ...selectedDirs];
290
+ if (selectedDevices.length > 0) {
291
+ args.push('--devices', ...selectedDevices);
292
+ }
293
+ if (shouldProcess) {
294
+ args.push('--process');
295
+ if (frameOnly) {
296
+ args.push('--frame-only');
297
+ }
298
+ }
299
+ if (runInBackground) {
300
+ args.push('--background');
301
+ }
302
+ console.log(pc.cyan('\n📝 Configuration complete!\n'));
303
+ console.log(pc.dim('Running command:'));
304
+ console.log(pc.dim(` appshot ${args.join(' ')}\n`));
305
+ // Execute the command
306
+ const { spawn } = await import('child_process');
307
+ const child = spawn('appshot', args, {
308
+ stdio: 'inherit',
309
+ env: process.env
310
+ });
311
+ child.on('exit', (code) => {
312
+ process.exit(code || 0);
313
+ });
314
+ }
315
+ catch (error) {
316
+ console.error(pc.red('❌ Error in setup:'), error);
317
+ process.exit(1);
318
+ }
319
+ });
320
+ return cmd;
321
+ }
322
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,31 @@ export interface ComposeOptions {
28
28
  * Compose a complete App Store screenshot with gradient, caption, and framed device
29
29
  */
30
30
  export declare function composeAppStoreScreenshot(options: ComposeOptions): Promise<Buffer>;
31
+ /**
32
+ * Compose a framed device with a fully transparent background.
33
+ * No gradient or captions are applied; output is frame-sized.
34
+ */
35
+ export declare function composeFrameOnly(options: {
36
+ screenshot: Buffer;
37
+ frame: Buffer;
38
+ frameMetadata: {
39
+ frameWidth: number;
40
+ frameHeight: number;
41
+ screenRect: {
42
+ x: number;
43
+ y: number;
44
+ width: number;
45
+ height: number;
46
+ };
47
+ maskPath?: string;
48
+ deviceType?: 'iphone' | 'ipad' | 'mac' | 'watch';
49
+ displayName?: string;
50
+ name?: string;
51
+ };
52
+ outputFormat?: 'png' | 'jpeg';
53
+ jpegQuality?: number;
54
+ verbose?: boolean;
55
+ }): Promise<Buffer>;
31
56
  /**
32
57
  * Get a safe font stack that Sharp's SVG renderer can use
33
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoI/E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAoyBxF;AAqGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB7H;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CA0F1D"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoI/E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA0yBxF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuFlB;AAqGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB7H;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CA0F1D"}
@@ -270,6 +270,10 @@ export async function composeAppStoreScreenshot(options) {
270
270
  if (!Buffer.isBuffer(frame)) {
271
271
  throw new Error(`Frame is not a valid buffer for ${frameMetadata.displayName || frameMetadata.name}`);
272
272
  }
273
+ // Validate screenshot buffer
274
+ if (!Buffer.isBuffer(screenshot) || screenshot.length === 0) {
275
+ throw new Error('Screenshot is not a valid buffer or is empty');
276
+ }
273
277
  // Calculate scale factor if frame needs to be resized to fit output
274
278
  const originalFrameWidth = frameMetadata.frameWidth;
275
279
  const originalFrameHeight = frameMetadata.frameHeight;
@@ -783,6 +787,84 @@ export async function composeAppStoreScreenshot(options) {
783
787
  .toBuffer();
784
788
  return result;
785
789
  }
790
+ /**
791
+ * Compose a framed device with a fully transparent background.
792
+ * No gradient or captions are applied; output is frame-sized.
793
+ */
794
+ export async function composeFrameOnly(options) {
795
+ const { screenshot, frame, frameMetadata, outputFormat = 'png', jpegQuality = 92, verbose = false } = options;
796
+ if (!frame || !frameMetadata) {
797
+ throw new Error('composeFrameOnly requires a frame buffer and frame metadata');
798
+ }
799
+ const { frameWidth, frameHeight, screenRect } = frameMetadata;
800
+ if (verbose) {
801
+ console.log(pc.dim('Framing with transparent background:'));
802
+ if (frameMetadata.displayName || frameMetadata.name) {
803
+ console.log(pc.dim(` Frame: ${frameMetadata.displayName || frameMetadata.name}`));
804
+ }
805
+ console.log(pc.dim(` Frame size: ${frameWidth}x${frameHeight}`));
806
+ console.log(pc.dim(` Screen rect: ${screenRect.width}x${screenRect.height} @ (${screenRect.x}, ${screenRect.y})`));
807
+ }
808
+ // Prepare screenshot to fit the frame's screen area
809
+ let resizedScreenshot = await sharp(screenshot)
810
+ .resize(screenRect.width, screenRect.height, { fit: 'fill' })
811
+ .toBuffer();
812
+ // Apply mask if available; otherwise add rounded corners for iPhone heuristically
813
+ let maskApplied = false;
814
+ if (frameMetadata.maskPath) {
815
+ try {
816
+ const maskBuffer = await fs.readFile(frameMetadata.maskPath);
817
+ const resizedMask = await sharp(maskBuffer)
818
+ .resize(screenRect.width, screenRect.height, { fit: 'fill' })
819
+ .toBuffer();
820
+ const screenshotRgb = await sharp(resizedScreenshot).removeAlpha().toBuffer();
821
+ const maskAlpha = await sharp(resizedMask).extractChannel('red').toBuffer();
822
+ resizedScreenshot = await sharp(screenshotRgb).joinChannel(maskAlpha).png().toBuffer();
823
+ maskApplied = true;
824
+ }
825
+ catch (err) {
826
+ if (verbose) {
827
+ console.warn(pc.dim(` Mask load failed, falling back to rounded corners (if applicable): ${err instanceof Error ? err.message : String(err)}`));
828
+ }
829
+ }
830
+ }
831
+ if (!maskApplied && frameMetadata.deviceType === 'iphone') {
832
+ // Heuristic rounded corners for iPhone if mask missing
833
+ let cornerRadius;
834
+ const frameName = frameMetadata.displayName?.toLowerCase() || frameMetadata.name?.toLowerCase() || '';
835
+ if (frameName.includes('16 pro') || frameName.includes('15 pro') || frameName.includes('14 pro')) {
836
+ cornerRadius = Math.floor(screenRect.width * 0.12);
837
+ }
838
+ else if (frameName.includes('se') || frameName.includes('8')) {
839
+ cornerRadius = 0;
840
+ }
841
+ else {
842
+ cornerRadius = Math.floor(screenRect.width * 0.10);
843
+ }
844
+ if (cornerRadius > 0) {
845
+ resizedScreenshot = await applyRoundedCorners(resizedScreenshot, screenRect.width, screenRect.height, cornerRadius);
846
+ }
847
+ }
848
+ // Base transparent canvas sized to the frame
849
+ const base = sharp({
850
+ create: {
851
+ width: frameWidth,
852
+ height: frameHeight,
853
+ channels: 4,
854
+ background: { r: 0, g: 0, b: 0, alpha: 0 }
855
+ }
856
+ });
857
+ // Composite screenshot at screen coordinates, then overlay frame image
858
+ let composed = base.composite([
859
+ { input: resizedScreenshot, top: screenRect.y, left: screenRect.x },
860
+ { input: frame, top: 0, left: 0 }
861
+ ]);
862
+ if (outputFormat === 'png') {
863
+ return composed.png().toBuffer();
864
+ }
865
+ // JPEG cannot store alpha; flatten on white
866
+ return composed.flatten({ background: '#ffffff' }).jpeg({ quality: jpegQuality }).toBuffer();
867
+ }
786
868
  /**
787
869
  * Create SVG for caption text
788
870
  */
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"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"}