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.
|
|
199
|
-
localeData.screenshots.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
234
|
+
const phoneCount = screenshots.phone.length;
|
|
229
235
|
if (phoneCount < 2) {
|
|
230
|
-
console.error(`[GooglePlay] ⚠️ Skipping ${locale} - needs at least 2 phone
|
|
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
|
-
//
|
|
236
|
-
//
|
|
237
|
-
|
|
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:
|
|
244
|
-
|
|
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}
|
|
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) {
|