appshot-cli 0.8.5 → 0.8.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YAiH/B"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YAgL/B"}
@@ -3,6 +3,7 @@ import { promises as fs } from 'fs';
3
3
  import path from 'path';
4
4
  import pc from 'picocolors';
5
5
  import { loadConfig, fileExists } from '../core/files.js';
6
+ import { validateBackgroundDimensions } from '../core/background.js';
6
7
  export default function checkCmd() {
7
8
  return new Command('check')
8
9
  .description('Validate project configuration and assets')
@@ -87,6 +88,65 @@ export default function checkCmd() {
87
88
  const frameFiles = frames.filter(f => f.match(/\.(png|jpg|jpeg)$/i));
88
89
  console.log(pc.green(' ✓'), `${frameFiles.length} frame files found`);
89
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}`);
97
+ }
98
+ else {
99
+ console.log(pc.red(' ✗'), `Global background not found: ${config.background.image}`);
100
+ errors++;
101
+ }
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;
112
+ }
113
+ else {
114
+ console.log(pc.red(` ✗ ${device}:`), `Configured background not found: ${backgroundPath}`);
115
+ errors++;
116
+ continue;
117
+ }
118
+ }
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;
129
+ backgroundFound = true;
130
+ break;
131
+ }
132
+ }
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})`);
140
+ }
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++;
147
+ }
148
+ }
149
+ }
90
150
  }
91
151
  catch (error) {
92
152
  console.log(pc.red(' ✗'), error instanceof Error ? error.message : String(error));
@@ -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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"}
@@ -0,0 +1,31 @@
1
+ import type { BackgroundConfig } from '../types.js';
2
+ export type BackgroundFit = 'cover' | 'contain' | 'fill' | 'scale-down';
3
+ interface ValidationResult {
4
+ valid: boolean;
5
+ warnings: string[];
6
+ dimensions: {
7
+ source: {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ target: {
12
+ width: number;
13
+ height: number;
14
+ };
15
+ };
16
+ aspectRatioDiff: number;
17
+ }
18
+ /**
19
+ * Load and render a background (image or gradient)
20
+ */
21
+ export declare function renderBackground(width: number, height: number, config: BackgroundConfig, devicePath?: string): Promise<Buffer>;
22
+ /**
23
+ * Validate background dimensions against target
24
+ */
25
+ export declare function validateBackgroundDimensions(imagePath: string, targetWidth: number, targetHeight: number): Promise<ValidationResult>;
26
+ /**
27
+ * Auto-detect the best fit mode based on image and target dimensions
28
+ */
29
+ export declare function detectBestFit(sourceWidth: number, sourceHeight: number, targetWidth: number, targetHeight: number): BackgroundFit;
30
+ export {};
31
+ //# sourceMappingURL=background.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/core/background.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAUxE,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE;QACV,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAsJD;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAmE3B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,aAAa,CAiBf"}
@@ -0,0 +1,240 @@
1
+ import sharp from 'sharp';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
4
+ import pc from 'picocolors';
5
+ import { renderGradient } from './render.js';
6
+ /**
7
+ * Load and render a background (image or gradient)
8
+ */
9
+ export async function renderBackground(width, height, config, devicePath) {
10
+ // Check for background image in priority order
11
+ const backgroundPath = await findBackgroundImage(config, devicePath);
12
+ if (backgroundPath) {
13
+ // Use image background
14
+ return await renderImageBackground(backgroundPath, { width, height, fit: config.fit, position: config.position });
15
+ }
16
+ else if (config.gradient) {
17
+ // Use gradient background
18
+ return await renderGradient(width, height, config.gradient);
19
+ }
20
+ else if (config.color) {
21
+ // Use solid color background
22
+ return await renderSolidBackground(width, height, config.color);
23
+ }
24
+ else {
25
+ // Default gradient fallback
26
+ const defaultGradient = {
27
+ colors: ['#4A90E2', '#7B68EE'],
28
+ direction: 'top-bottom'
29
+ };
30
+ return await renderGradient(width, height, defaultGradient);
31
+ }
32
+ }
33
+ /**
34
+ * Find background image based on priority
35
+ */
36
+ async function findBackgroundImage(config, devicePath) {
37
+ const candidates = [];
38
+ // 1. Explicit path in config
39
+ if (config.image) {
40
+ candidates.push(config.image);
41
+ }
42
+ // 2. Device-specific background
43
+ if (devicePath) {
44
+ candidates.push(path.join(devicePath, 'background.png'));
45
+ candidates.push(path.join(devicePath, 'background.jpg'));
46
+ candidates.push(path.join(devicePath, 'background.jpeg'));
47
+ }
48
+ // 3. Global background in screenshots folder
49
+ candidates.push(path.join('screenshots', 'background.png'));
50
+ candidates.push(path.join('screenshots', 'background.jpg'));
51
+ candidates.push(path.join('screenshots', 'background.jpeg'));
52
+ // Check each candidate
53
+ for (const candidate of candidates) {
54
+ try {
55
+ await fs.access(candidate);
56
+ return candidate;
57
+ }
58
+ catch {
59
+ // File doesn't exist, try next
60
+ }
61
+ }
62
+ return null;
63
+ }
64
+ /**
65
+ * Render an image as background with specified fit
66
+ */
67
+ async function renderImageBackground(imagePath, options) {
68
+ const { width, height, fit = 'cover', position = 'center', backgroundColor = '#000000' } = options;
69
+ try {
70
+ let image = sharp(imagePath);
71
+ const metadata = await image.metadata();
72
+ if (!metadata.width || !metadata.height) {
73
+ throw new Error('Invalid image dimensions');
74
+ }
75
+ // Calculate how to fit the image
76
+ const fitOptions = calculateFitOptions({ width: metadata.width, height: metadata.height }, { width, height }, fit, position);
77
+ // Apply the fit
78
+ if (fit === 'cover') {
79
+ // Scale to cover entire area (may crop)
80
+ image = image.resize(width, height, {
81
+ fit: 'cover',
82
+ position: fitOptions.position
83
+ });
84
+ }
85
+ else if (fit === 'contain') {
86
+ // Scale to fit within area (may add bars)
87
+ image = image.resize(width, height, {
88
+ fit: 'contain',
89
+ background: backgroundColor,
90
+ position: fitOptions.position
91
+ });
92
+ }
93
+ else if (fit === 'fill') {
94
+ // Stretch to exact dimensions (may distort)
95
+ image = image.resize(width, height, {
96
+ fit: 'fill'
97
+ });
98
+ }
99
+ else if (fit === 'scale-down') {
100
+ // Only scale down if larger, never scale up
101
+ const needsScaling = metadata.width > width || metadata.height > height;
102
+ if (needsScaling) {
103
+ image = image.resize(width, height, {
104
+ fit: 'inside',
105
+ withoutEnlargement: true,
106
+ background: backgroundColor
107
+ });
108
+ }
109
+ else {
110
+ // Center the image on a colored background
111
+ const background = await renderSolidBackground(width, height, backgroundColor);
112
+ const left = Math.floor((width - metadata.width) / 2);
113
+ const top = Math.floor((height - metadata.height) / 2);
114
+ return await sharp(background)
115
+ .composite([{
116
+ input: await image.toBuffer(),
117
+ left,
118
+ top
119
+ }])
120
+ .toBuffer();
121
+ }
122
+ }
123
+ return await image.toBuffer();
124
+ }
125
+ catch (error) {
126
+ console.error(pc.red(`Failed to load background image: ${imagePath}`));
127
+ throw error;
128
+ }
129
+ }
130
+ /**
131
+ * Render a solid color background
132
+ */
133
+ async function renderSolidBackground(width, height, color) {
134
+ // Create solid color as SVG
135
+ const svg = `
136
+ <svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
137
+ <rect width="${width}" height="${height}" fill="${color}"/>
138
+ </svg>
139
+ `;
140
+ return await sharp(Buffer.from(svg))
141
+ .resize(width, height)
142
+ .png()
143
+ .toBuffer();
144
+ }
145
+ /**
146
+ * Calculate fit options based on position
147
+ */
148
+ function calculateFitOptions(source, target, fit, position) {
149
+ const positionMap = {
150
+ 'center': 'center',
151
+ 'top': 'top',
152
+ 'bottom': 'bottom',
153
+ 'left': 'left',
154
+ 'right': 'right'
155
+ };
156
+ return {
157
+ position: positionMap[position] || 'center'
158
+ };
159
+ }
160
+ /**
161
+ * Validate background dimensions against target
162
+ */
163
+ export async function validateBackgroundDimensions(imagePath, targetWidth, targetHeight) {
164
+ try {
165
+ const metadata = await sharp(imagePath).metadata();
166
+ if (!metadata.width || !metadata.height) {
167
+ return {
168
+ valid: false,
169
+ warnings: ['Cannot determine image dimensions'],
170
+ dimensions: {
171
+ source: { width: 0, height: 0 },
172
+ target: { width: targetWidth, height: targetHeight }
173
+ },
174
+ aspectRatioDiff: 100
175
+ };
176
+ }
177
+ const warnings = [];
178
+ const sourceAspect = metadata.width / metadata.height;
179
+ const targetAspect = targetWidth / targetHeight;
180
+ const aspectRatioDiff = Math.abs((sourceAspect - targetAspect) / targetAspect) * 100;
181
+ // Check dimensions
182
+ if (metadata.width < targetWidth || metadata.height < targetHeight) {
183
+ warnings.push(`Background smaller than target resolution (${metadata.width}x${metadata.height} < ${targetWidth}x${targetHeight})`);
184
+ warnings.push('Image will be stretched or upscaled, which may reduce quality');
185
+ }
186
+ // Check aspect ratio
187
+ if (aspectRatioDiff > 10) {
188
+ warnings.push(`Aspect ratio mismatch (${aspectRatioDiff.toFixed(1)}% difference)`);
189
+ warnings.push('Image may be cropped or distorted to fit');
190
+ }
191
+ // Check file size
192
+ const stats = await fs.stat(imagePath);
193
+ const sizeMB = stats.size / (1024 * 1024);
194
+ if (sizeMB > 50) {
195
+ warnings.push(`Large file size (${sizeMB.toFixed(1)}MB) may impact performance`);
196
+ }
197
+ else if (sizeMB > 10) {
198
+ warnings.push(`Consider optimizing file size (${sizeMB.toFixed(1)}MB)`);
199
+ }
200
+ return {
201
+ valid: warnings.length === 0,
202
+ warnings,
203
+ dimensions: {
204
+ source: { width: metadata.width, height: metadata.height },
205
+ target: { width: targetWidth, height: targetHeight }
206
+ },
207
+ aspectRatioDiff
208
+ };
209
+ }
210
+ catch (error) {
211
+ return {
212
+ valid: false,
213
+ warnings: [`Failed to validate image: ${error instanceof Error ? error.message : 'Unknown error'}`],
214
+ dimensions: {
215
+ source: { width: 0, height: 0 },
216
+ target: { width: targetWidth, height: targetHeight }
217
+ },
218
+ aspectRatioDiff: 100
219
+ };
220
+ }
221
+ }
222
+ /**
223
+ * Auto-detect the best fit mode based on image and target dimensions
224
+ */
225
+ export function detectBestFit(sourceWidth, sourceHeight, targetWidth, targetHeight) {
226
+ const sourceAspect = sourceWidth / sourceHeight;
227
+ const targetAspect = targetWidth / targetHeight;
228
+ const aspectDiff = Math.abs(sourceAspect - targetAspect) / targetAspect;
229
+ // If aspect ratios are very close, use fill
230
+ if (aspectDiff < 0.05) {
231
+ return 'fill';
232
+ }
233
+ // If source is smaller than target, use contain to avoid upscaling
234
+ if (sourceWidth < targetWidth || sourceHeight < targetHeight) {
235
+ return 'contain';
236
+ }
237
+ // Default to cover for larger images
238
+ return 'cover';
239
+ }
240
+ //# sourceMappingURL=background.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../src/core/background.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { GradientConfig, CaptionConfig, DeviceConfig } from '../types.js';
1
+ import type { GradientConfig, CaptionConfig, DeviceConfig, BackgroundConfig } from '../types.js';
2
2
  export interface ComposeOptions {
3
3
  screenshot: Buffer;
4
4
  frame?: Buffer | null;
@@ -18,7 +18,8 @@ export interface ComposeOptions {
18
18
  };
19
19
  caption?: string;
20
20
  captionConfig: CaptionConfig;
21
- gradientConfig: GradientConfig;
21
+ gradientConfig?: GradientConfig;
22
+ backgroundConfig?: BackgroundConfig;
22
23
  deviceConfig: DeviceConfig;
23
24
  outputWidth: number;
24
25
  outputHeight: number;
@@ -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,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"}
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,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqIjG,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,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,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,CAm0BxF;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"}
@@ -2,6 +2,7 @@ import sharp from 'sharp';
2
2
  import { promises as fs } from 'fs';
3
3
  import pc from 'picocolors';
4
4
  import { renderGradient } from './render.js';
5
+ import { renderBackground, validateBackgroundDimensions } from './background.js';
5
6
  import { applyRoundedCorners } from './mask-generator.js';
6
7
  import { calculateAdaptiveCaptionHeight, wrapText } from './text-utils.js';
7
8
  import { FontService } from '../services/fonts.js';
@@ -102,7 +103,7 @@ function generateCaptionSVG(lines, width, height, fontSize, fontFamily, fontStyl
102
103
  * Compose a complete App Store screenshot with gradient, caption, and framed device
103
104
  */
104
105
  export async function composeAppStoreScreenshot(options) {
105
- const { screenshot, frame, frameMetadata, caption, captionConfig, gradientConfig, deviceConfig, outputWidth, outputHeight, verbose = false } = options;
106
+ const { screenshot, frame, frameMetadata, caption, captionConfig, gradientConfig, backgroundConfig, deviceConfig, outputWidth, outputHeight, verbose = false } = options;
106
107
  // Determine caption position (default to 'above' for better App Store style)
107
108
  // Check for device-specific override first
108
109
  const captionPosition = deviceConfig.captionPosition || captionConfig.position || 'above';
@@ -200,8 +201,36 @@ export async function composeAppStoreScreenshot(options) {
200
201
  // Calculate total canvas dimensions (should be output dimensions)
201
202
  const canvasWidth = outputWidth;
202
203
  const canvasHeight = outputHeight;
203
- // Create gradient background
204
- const gradient = await renderGradient(canvasWidth, canvasHeight, gradientConfig);
204
+ // Create background (image or gradient)
205
+ let backgroundBuffer;
206
+ if (backgroundConfig) {
207
+ // Use new background system
208
+ backgroundBuffer = await renderBackground(canvasWidth, canvasHeight, backgroundConfig, deviceConfig.input // Pass device path for auto-detection
209
+ );
210
+ // Validate background if it's an image
211
+ if (backgroundConfig.warnOnMismatch && backgroundConfig.image) {
212
+ const validation = await validateBackgroundDimensions(backgroundConfig.image, canvasWidth, canvasHeight);
213
+ if (validation.warnings.length > 0) {
214
+ console.warn(pc.yellow('⚠️ Background dimension warnings:'));
215
+ validation.warnings.forEach(warning => {
216
+ console.warn(pc.dim(` ${warning}`));
217
+ });
218
+ }
219
+ }
220
+ }
221
+ else if (gradientConfig) {
222
+ // Backwards compatibility: use gradient if no background config
223
+ backgroundBuffer = await renderGradient(canvasWidth, canvasHeight, gradientConfig);
224
+ }
225
+ else {
226
+ // Default gradient if neither is specified
227
+ const defaultGradient = {
228
+ colors: ['#4A90E2', '#7B68EE'],
229
+ direction: 'top-bottom'
230
+ };
231
+ backgroundBuffer = await renderGradient(canvasWidth, canvasHeight, defaultGradient);
232
+ }
233
+ const gradient = backgroundBuffer; // Keep variable name for compatibility
205
234
  // Start compositing
206
235
  const composites = [];
207
236
  // Add caption if positioned above
@@ -305,8 +334,8 @@ export async function composeAppStoreScreenshot(options) {
305
334
  scale = Math.min(scaleX, scaleY) * deviceFrameScale;
306
335
  }
307
336
  else if (frameMetadata.deviceType === 'watch') {
308
- // For watch, make it larger since bottom will be cut off
309
- scale = Math.min(scaleX, scaleY) * 1.3; // Use 130% scale for watch
337
+ // For watch, use standard scaling
338
+ scale = Math.min(scaleX, scaleY) * 0.9; // Use 90% scale for watch to fit properly
310
339
  }
311
340
  else if (frameMetadata.deviceType === 'mac') {
312
341
  // For Mac, make it larger to be more visible
@@ -482,14 +511,8 @@ export async function composeAppStoreScreenshot(options) {
482
511
  }
483
512
  else if (framePosition === 'center') {
484
513
  // Default centered positioning
485
- if (frameMetadata.deviceType === 'watch' && !deviceConfig.framePosition) {
486
- // Special watch positioning (unless explicitly overridden)
487
- deviceTop = canvasHeight - Math.floor(targetDeviceHeight * 0.75) - 25;
488
- }
489
- else {
490
- const availableSpace = canvasHeight - captionHeight;
491
- deviceTop = captionHeight + Math.floor((availableSpace - targetDeviceHeight) / 2);
492
- }
514
+ const availableSpace = canvasHeight - captionHeight;
515
+ deviceTop = captionHeight + Math.floor((availableSpace - targetDeviceHeight) / 2);
493
516
  }
494
517
  else {
495
518
  // Default to centered
@@ -514,13 +537,7 @@ export async function composeAppStoreScreenshot(options) {
514
537
  }
515
538
  else if (framePosition === 'center') {
516
539
  // Default centered positioning in device area
517
- if (frameMetadata.deviceType === 'watch' && !deviceConfig.framePosition) {
518
- // Special watch positioning (unless explicitly overridden)
519
- deviceTop = Math.max(0, deviceAreaHeight - Math.floor(targetDeviceHeight * 0.75) - 25);
520
- }
521
- else {
522
- deviceTop = Math.floor((deviceAreaHeight - targetDeviceHeight) / 2);
523
- }
540
+ deviceTop = Math.floor((deviceAreaHeight - targetDeviceHeight) / 2);
524
541
  }
525
542
  else {
526
543
  // Default to centered in device area
@@ -542,12 +559,7 @@ export async function composeAppStoreScreenshot(options) {
542
559
  deviceTop = canvasHeight - targetDeviceHeight;
543
560
  }
544
561
  else if (framePosition === 'center') {
545
- if (frameMetadata.deviceType === 'watch' && !deviceConfig.framePosition) {
546
- deviceTop = canvasHeight - Math.floor(targetDeviceHeight * 0.75) - 25;
547
- }
548
- else {
549
- deviceTop = Math.floor((canvasHeight - targetDeviceHeight) / 2);
550
- }
562
+ deviceTop = Math.floor((canvasHeight - targetDeviceHeight) / 2);
551
563
  }
552
564
  else {
553
565
  deviceTop = Math.floor((canvasHeight - targetDeviceHeight) / 2);