pabal-store-api-mcp 1.3.4 → 1.3.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.
@@ -180,6 +180,7 @@ export class AppStoreService {
180
180
  console.error(`[MCP] 📤 Pushing to App Store...`);
181
181
  console.error(`[MCP] Bundle ID: ${bundleId}`);
182
182
  try {
183
+ // Push locale data (supportUrl/marketingUrl already set by prepareAsoDataForPush)
183
184
  const localesToPush = Object.keys(appStoreData.locales);
184
185
  const failedFieldsList = [];
185
186
  for (const [locale, localeData] of Object.entries(appStoreData.locales)) {
@@ -169,6 +169,7 @@ export class GooglePlayService {
169
169
  for (const locale of localesToPush) {
170
170
  console.error(`[GooglePlay] 📤 Preparing locale: ${locale}`);
171
171
  }
172
+ // Push locale data as-is from aso-data.json
172
173
  await client.pushMultilingualAsoData(googlePlayData);
173
174
  // Push app-level contact information
174
175
  if (googlePlayData.contactEmail || googlePlayData.contactWebsite) {
@@ -179,7 +180,6 @@ export class GooglePlayService {
179
180
  });
180
181
  console.error(`[GooglePlay] ✅ App details uploaded successfully`);
181
182
  }
182
- // Note: YouTube URL is pushed as part of listing data for each locale
183
183
  // Upload screenshots if enabled
184
184
  if (uploadImages && slug) {
185
185
  console.error(`[GooglePlay] 📤 Uploading screenshots...`);
@@ -195,19 +195,19 @@ export class GooglePlayService {
195
195
  const hasScreenshotsInJson = localeData?.screenshots &&
196
196
  ((localeData.screenshots.phone &&
197
197
  localeData.screenshots.phone.length > 0) ||
198
- (localeData.screenshots.tablet7 &&
199
- localeData.screenshots.tablet7.length > 0) ||
200
- (localeData.screenshots.tablet10 &&
201
- localeData.screenshots.tablet10.length > 0));
198
+ (localeData.screenshots.tablet &&
199
+ localeData.screenshots.tablet.length > 0));
202
200
  let screenshots;
203
201
  if (hasScreenshotsInJson) {
204
202
  // Use screenshots from aso-data.json (relative paths)
205
203
  console.error(`[GooglePlay] 📋 Using screenshots from aso-data.json for ${locale}`);
206
204
  const relativePaths = localeData.screenshots;
205
+ // Google Play upload strategy:
206
+ // - phone array → uploads to both phoneScreenshots AND sevenInchScreenshots
207
+ // - tablet array → uploads to tenInchScreenshots only
207
208
  screenshots = {
208
209
  phone: (relativePaths.phone || []).map((p) => `${screenshotsBaseDir}/${p}`),
209
- tablet7: (relativePaths.tablet7 || []).map((p) => `${screenshotsBaseDir}/${p}`),
210
- tablet10: (relativePaths.tablet10 || []).map((p) => `${screenshotsBaseDir}/${p}`),
210
+ tablet: (relativePaths.tablet || []).map((p) => `${screenshotsBaseDir}/${p}`),
211
211
  featureGraphic: localeData.featureGraphic
212
212
  ? `${screenshotsBaseDir}/${localeData.featureGraphic}`
213
213
  : null,
@@ -222,29 +222,33 @@ export class GooglePlayService {
222
222
  continue;
223
223
  }
224
224
  console.error(`[GooglePlay] 📂 Parsing screenshots from file system for ${locale}`);
225
- screenshots = parseGooglePlayScreenshots(screenshotsFsDir, locale);
225
+ const fsScreenshots = parseGooglePlayScreenshots(screenshotsFsDir, locale);
226
+ // File system fallback: use tablet10 as tablet
227
+ screenshots = {
228
+ phone: fsScreenshots.phone,
229
+ tablet: fsScreenshots.tablet10,
230
+ featureGraphic: fsScreenshots.featureGraphic,
231
+ };
226
232
  }
227
233
  // Google Play requires minimum 2 phone screenshots
228
- const phoneCount = screenshots.phone.length + screenshots.tablet7.length;
234
+ const phoneCount = screenshots.phone.length;
229
235
  if (phoneCount < 2) {
230
- console.error(`[GooglePlay] ⚠️ Skipping ${locale} - needs at least 2 phone/tablet7 screenshots (found ${phoneCount})`);
236
+ console.error(`[GooglePlay] ⚠️ Skipping ${locale} - needs at least 2 phone screenshots (found ${phoneCount})`);
231
237
  skippedLocales.push(locale);
232
238
  continue;
233
239
  }
234
240
  console.error(`[GooglePlay] 📤 Uploading screenshots for ${locale} (batch mode - will replace existing)...`);
235
- // Use batch upload method - deletes existing and uploads new in single edit session
236
- // Combine phone and tablet7 screenshots as phoneScreenshots (Google Play accepts both sizes)
237
- const phoneScreenshotPaths = [
238
- ...screenshots.phone,
239
- ...screenshots.tablet7,
240
- ];
241
+ // Google Play upload strategy:
242
+ // - phone uploads to phoneScreenshots AND sevenInchScreenshots (both use same images)
243
+ // - tablet → uploads to tenInchScreenshots only
241
244
  const uploadResult = await client.uploadScreenshotsForLocale({
242
245
  language: locale,
243
- phoneScreenshots: phoneScreenshotPaths,
244
- tenInchScreenshots: screenshots.tablet10,
246
+ phoneScreenshots: screenshots.phone,
247
+ sevenInchScreenshots: screenshots.phone,
248
+ tenInchScreenshots: screenshots.tablet,
245
249
  featureGraphic: screenshots.featureGraphic || undefined,
246
250
  });
247
- console.error(`[GooglePlay] ✅ Screenshots uploaded for ${locale}: ${uploadResult.uploaded.phoneScreenshots} phone, ${uploadResult.uploaded.tenInchScreenshots} tablet`);
251
+ console.error(`[GooglePlay] ✅ Screenshots uploaded for ${locale}: ${uploadResult.uploaded.phoneScreenshots} phone, ${uploadResult.uploaded.sevenInchScreenshots} 7-inch, ${uploadResult.uploaded.tenInchScreenshots} 10-inch`);
248
252
  uploadedLocales.push(locale);
249
253
  }
250
254
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pabal-store-api-mcp",
3
- "version": "1.3.4",
3
+ "version": "1.3.6",
4
4
  "description": "MCP server for App Store / Play Store ASO workflows",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",