pabal-store-api-mcp 1.1.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 (111) hide show
  1. package/README.md +95 -0
  2. package/bin/pabal-mcp.js +6 -0
  3. package/dist/src/core/clients/app-store-factory.d.ts +29 -0
  4. package/dist/src/core/clients/app-store-factory.js +72 -0
  5. package/dist/src/core/clients/client-factory-helpers.d.ts +7 -0
  6. package/dist/src/core/clients/client-factory-helpers.js +10 -0
  7. package/dist/src/core/clients/google-play-factory.d.ts +29 -0
  8. package/dist/src/core/clients/google-play-factory.js +72 -0
  9. package/dist/src/core/clients/types.d.ts +8 -0
  10. package/dist/src/core/clients/types.js +1 -0
  11. package/dist/src/core/helpers/formatters.d.ts +3 -0
  12. package/dist/src/core/helpers/formatters.js +38 -0
  13. package/dist/src/core/helpers/registration.d.ts +21 -0
  14. package/dist/src/core/helpers/registration.js +21 -0
  15. package/dist/src/core/helpers/translate-release-notes.d.ts +46 -0
  16. package/dist/src/core/helpers/translate-release-notes.js +87 -0
  17. package/dist/src/core/services/app-resolution-service.d.ts +14 -0
  18. package/dist/src/core/services/app-resolution-service.js +35 -0
  19. package/dist/src/core/services/app-store-service.d.ts +41 -0
  20. package/dist/src/core/services/app-store-service.js +266 -0
  21. package/dist/src/core/services/google-play-service.d.ts +36 -0
  22. package/dist/src/core/services/google-play-service.js +203 -0
  23. package/dist/src/core/services/service-helpers.d.ts +15 -0
  24. package/dist/src/core/services/service-helpers.js +31 -0
  25. package/dist/src/core/services/types.d.ts +81 -0
  26. package/dist/src/core/services/types.js +1 -0
  27. package/dist/src/core/workflows/version-info.d.ts +29 -0
  28. package/dist/src/core/workflows/version-info.js +100 -0
  29. package/dist/src/index.d.ts +10 -0
  30. package/dist/src/index.js +279 -0
  31. package/dist/src/packages/common/errors/app-error.d.ts +39 -0
  32. package/dist/src/packages/common/errors/app-error.js +134 -0
  33. package/dist/src/packages/common/errors/error-codes.d.ts +63 -0
  34. package/dist/src/packages/common/errors/error-codes.js +71 -0
  35. package/dist/src/packages/common/errors/status-codes.d.ts +10 -0
  36. package/dist/src/packages/common/errors/status-codes.js +9 -0
  37. package/dist/src/packages/configs/aso-config/constants.d.ts +14 -0
  38. package/dist/src/packages/configs/aso-config/constants.js +102 -0
  39. package/dist/src/packages/configs/aso-config/locale-guards.d.ts +3 -0
  40. package/dist/src/packages/configs/aso-config/locale-guards.js +7 -0
  41. package/dist/src/packages/configs/aso-config/store.d.ts +11 -0
  42. package/dist/src/packages/configs/aso-config/store.js +11 -0
  43. package/dist/src/packages/configs/aso-config/types.d.ts +98 -0
  44. package/dist/src/packages/configs/aso-config/types.js +2 -0
  45. package/dist/src/packages/configs/aso-config/utils.d.ts +43 -0
  46. package/dist/src/packages/configs/aso-config/utils.js +223 -0
  47. package/dist/src/packages/configs/secrets-config/config.d.ts +12 -0
  48. package/dist/src/packages/configs/secrets-config/config.js +187 -0
  49. package/dist/src/packages/configs/secrets-config/constants.d.ts +1 -0
  50. package/dist/src/packages/configs/secrets-config/constants.js +1 -0
  51. package/dist/src/packages/configs/secrets-config/errors.d.ts +9 -0
  52. package/dist/src/packages/configs/secrets-config/errors.js +15 -0
  53. package/dist/src/packages/configs/secrets-config/registered-apps.d.ts +52 -0
  54. package/dist/src/packages/configs/secrets-config/registered-apps.js +108 -0
  55. package/dist/src/packages/configs/secrets-config/schemas.d.ts +21 -0
  56. package/dist/src/packages/configs/secrets-config/schemas.js +9 -0
  57. package/dist/src/packages/configs/secrets-config/types.d.ts +8 -0
  58. package/dist/src/packages/configs/secrets-config/types.js +1 -0
  59. package/dist/src/packages/stores/app-store/api-converters.d.ts +26 -0
  60. package/dist/src/packages/stores/app-store/api-converters.js +131 -0
  61. package/dist/src/packages/stores/app-store/api-endpoints.d.ts +33 -0
  62. package/dist/src/packages/stores/app-store/api-endpoints.js +157 -0
  63. package/dist/src/packages/stores/app-store/auth.d.ts +12 -0
  64. package/dist/src/packages/stores/app-store/auth.js +36 -0
  65. package/dist/src/packages/stores/app-store/client.d.ts +78 -0
  66. package/dist/src/packages/stores/app-store/client.js +637 -0
  67. package/dist/src/packages/stores/app-store/constants.d.ts +11 -0
  68. package/dist/src/packages/stores/app-store/constants.js +38 -0
  69. package/dist/src/packages/stores/app-store/generated-types.d.ts +118537 -0
  70. package/dist/src/packages/stores/app-store/generated-types.js +5 -0
  71. package/dist/src/packages/stores/app-store/types.d.ts +39 -0
  72. package/dist/src/packages/stores/app-store/types.js +9 -0
  73. package/dist/src/packages/stores/app-store/verify-auth.d.ts +16 -0
  74. package/dist/src/packages/stores/app-store/verify-auth.js +34 -0
  75. package/dist/src/packages/stores/play-store/api-converters.d.ts +58 -0
  76. package/dist/src/packages/stores/play-store/api-converters.js +209 -0
  77. package/dist/src/packages/stores/play-store/api-endpoints.d.ts +68 -0
  78. package/dist/src/packages/stores/play-store/api-endpoints.js +145 -0
  79. package/dist/src/packages/stores/play-store/client.d.ts +55 -0
  80. package/dist/src/packages/stores/play-store/client.js +628 -0
  81. package/dist/src/packages/stores/play-store/constants.d.ts +10 -0
  82. package/dist/src/packages/stores/play-store/constants.js +17 -0
  83. package/dist/src/packages/stores/play-store/types.d.ts +146 -0
  84. package/dist/src/packages/stores/play-store/types.js +9 -0
  85. package/dist/src/packages/stores/play-store/verify-auth.d.ts +13 -0
  86. package/dist/src/packages/stores/play-store/verify-auth.js +31 -0
  87. package/dist/src/tools/apps/add.d.ts +28 -0
  88. package/dist/src/tools/apps/add.js +307 -0
  89. package/dist/src/tools/apps/init.d.ts +58 -0
  90. package/dist/src/tools/apps/init.js +390 -0
  91. package/dist/src/tools/apps/search.d.ts +33 -0
  92. package/dist/src/tools/apps/search.js +147 -0
  93. package/dist/src/tools/aso/pull.d.ts +22 -0
  94. package/dist/src/tools/aso/pull.js +264 -0
  95. package/dist/src/tools/aso/push.d.ts +23 -0
  96. package/dist/src/tools/aso/push.js +189 -0
  97. package/dist/src/tools/auth/app-store.d.ts +9 -0
  98. package/dist/src/tools/auth/app-store.js +34 -0
  99. package/dist/src/tools/auth/check.d.ts +14 -0
  100. package/dist/src/tools/auth/check.js +50 -0
  101. package/dist/src/tools/auth/play-store.d.ts +9 -0
  102. package/dist/src/tools/auth/play-store.js +30 -0
  103. package/dist/src/tools/release/check-versions.d.ts +14 -0
  104. package/dist/src/tools/release/check-versions.js +65 -0
  105. package/dist/src/tools/release/create.d.ts +23 -0
  106. package/dist/src/tools/release/create.js +128 -0
  107. package/dist/src/tools/release/pull-notes.d.ts +22 -0
  108. package/dist/src/tools/release/pull-notes.js +151 -0
  109. package/dist/src/tools/release/update-notes.d.ts +110 -0
  110. package/dist/src/tools/release/update-notes.js +537 -0
  111. package/package.json +71 -0
@@ -0,0 +1,65 @@
1
+ import { getStoreTargets } from "../../packages/configs/aso-config/store.js";
2
+ import { AppResolutionService } from "../../core/services/app-resolution-service.js";
3
+ import { getLatestVersions } from "../../core/workflows/version-info.js";
4
+ const appResolutionService = new AppResolutionService();
5
+ export async function handleCheckLatestVersions(options) {
6
+ const { app, store } = options;
7
+ let { packageName, bundleId } = options;
8
+ const { store: selectedStore, includeAppStore, includeGooglePlay, } = getStoreTargets(store);
9
+ console.error(`[MCP] 🔍 Checking latest versions (store: ${selectedStore})`);
10
+ const resolved = appResolutionService.resolve({
11
+ slug: app,
12
+ packageName,
13
+ bundleId,
14
+ });
15
+ if (!resolved.success) {
16
+ return {
17
+ content: [
18
+ {
19
+ type: "text",
20
+ text: resolved.error.message,
21
+ },
22
+ ],
23
+ };
24
+ }
25
+ const { slug, bundleId: resolvedBundleId, packageName: resolvedPackageName, hasAppStore, hasGooglePlay, } = resolved.data;
26
+ bundleId = resolvedBundleId;
27
+ packageName = resolvedPackageName;
28
+ // Check latest versions (without prompt message since this is a dedicated check tool)
29
+ console.error(`[MCP] App: ${slug}`);
30
+ if (bundleId)
31
+ console.error(`[MCP] App Store bundleId: ${bundleId}`);
32
+ if (packageName)
33
+ console.error(`[MCP] Google Play packageName: ${packageName}`);
34
+ const skips = [];
35
+ if (includeAppStore && !hasAppStore) {
36
+ skips.push(`⏭️ Skipping App Store (not registered for App Store)`);
37
+ }
38
+ else if (includeAppStore && !bundleId) {
39
+ skips.push(`⏭️ Skipping App Store (no bundleId provided)`);
40
+ }
41
+ if (includeGooglePlay && !hasGooglePlay) {
42
+ skips.push(`⏭️ Skipping Google Play (not registered for Google Play)`);
43
+ }
44
+ else if (includeGooglePlay && !packageName) {
45
+ skips.push(`⏭️ Skipping Google Play (no packageName provided)`);
46
+ }
47
+ const versionInfo = await getLatestVersions({
48
+ bundleId,
49
+ includePrompt: false,
50
+ store: selectedStore,
51
+ packageName,
52
+ hasAppStore,
53
+ hasGooglePlay,
54
+ });
55
+ console.error(`[MCP] ✅ Version check completed`);
56
+ const contentLines = [...skips, ...versionInfo.messages];
57
+ return {
58
+ content: [
59
+ {
60
+ type: "text",
61
+ text: contentLines.join("\n"),
62
+ },
63
+ ],
64
+ };
65
+ }
@@ -0,0 +1,23 @@
1
+ import { type StoreType } from "../../packages/configs/aso-config/types.js";
2
+ interface AsoCreateVersionOptions {
3
+ app?: string;
4
+ packageName?: string;
5
+ bundleId?: string;
6
+ version?: string;
7
+ store?: StoreType;
8
+ versionCodes?: number[];
9
+ }
10
+ export declare function handleAsoCreateVersion(options: AsoCreateVersionOptions): Promise<{
11
+ content: {
12
+ type: "text";
13
+ text: string;
14
+ }[];
15
+ isError?: undefined;
16
+ } | {
17
+ content: {
18
+ type: "text";
19
+ text: string;
20
+ }[];
21
+ isError: boolean;
22
+ }>;
23
+ export {};
@@ -0,0 +1,128 @@
1
+ import { loadConfig } from "../../packages/configs/secrets-config/config.js";
2
+ import { AppResolutionService } from "../../core/services/app-resolution-service.js";
3
+ import { AppStoreService } from "../../core/services/app-store-service.js";
4
+ import { GooglePlayService } from "../../core/services/google-play-service.js";
5
+ import { getLatestVersions } from "../../core/workflows/version-info.js";
6
+ const appStoreService = new AppStoreService();
7
+ const googlePlayService = new GooglePlayService();
8
+ const appResolutionService = new AppResolutionService();
9
+ export async function handleAsoCreateVersion(options) {
10
+ const { app, version, store = "both", versionCodes } = options;
11
+ let { packageName, bundleId } = options;
12
+ const resolved = appResolutionService.resolve({
13
+ slug: app,
14
+ packageName,
15
+ bundleId,
16
+ });
17
+ if (!resolved.success) {
18
+ return {
19
+ content: [
20
+ {
21
+ type: "text",
22
+ text: resolved.error.message,
23
+ },
24
+ ],
25
+ };
26
+ }
27
+ const { slug, bundleId: resolvedBundleId, packageName: resolvedPackageName, hasAppStore, hasGooglePlay, } = resolved.data;
28
+ bundleId = resolvedBundleId;
29
+ packageName = resolvedPackageName;
30
+ let config;
31
+ try {
32
+ config = loadConfig();
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : String(error);
36
+ return {
37
+ content: [
38
+ {
39
+ type: "text",
40
+ text: `❌ Failed to load config: ${message}`,
41
+ },
42
+ ],
43
+ isError: true,
44
+ };
45
+ }
46
+ // If version is not provided, check latest versions and prompt user
47
+ if (!version) {
48
+ const versionInfo = await getLatestVersions({
49
+ store,
50
+ bundleId,
51
+ packageName,
52
+ hasAppStore,
53
+ hasGooglePlay,
54
+ });
55
+ return {
56
+ content: [
57
+ {
58
+ type: "text",
59
+ text: versionInfo.messages.join("\n"),
60
+ },
61
+ ],
62
+ };
63
+ }
64
+ // Version is provided, proceed with creation
65
+ console.error(`[MCP] 📦 Creating version: ${version}`);
66
+ console.error(`[MCP] Store: ${store}`);
67
+ console.error(`[MCP] App: ${slug}`);
68
+ if (packageName)
69
+ console.error(`[MCP] Package Name: ${packageName}`);
70
+ if (bundleId)
71
+ console.error(`[MCP] Bundle ID: ${bundleId}`);
72
+ if (versionCodes) {
73
+ console.error(`[MCP] Version Codes: ${versionCodes.join(", ")}`);
74
+ }
75
+ const results = [];
76
+ if (store === "appStore" || store === "both") {
77
+ if (!hasAppStore) {
78
+ results.push(`⏭️ Skipping App Store (not registered for App Store)`);
79
+ }
80
+ else if (!config.appStore) {
81
+ results.push(`⏭️ Skipping App Store (not configured in ~/.config/pabal-mcp/config.json)`);
82
+ }
83
+ else if (!bundleId) {
84
+ results.push(`⏭️ Skipping App Store (no bundleId provided)`);
85
+ }
86
+ else {
87
+ const createResult = await appStoreService.createVersion(bundleId, version);
88
+ if (!createResult.success) {
89
+ results.push(`❌ App Store version creation failed: ${createResult.error.message}`);
90
+ }
91
+ else {
92
+ const state = createResult.data.state?.toUpperCase() || "UNKNOWN";
93
+ results.push(`✅ App Store version ${createResult.data.versionString} created (${state})`);
94
+ }
95
+ }
96
+ }
97
+ if (store === "googlePlay" || store === "both") {
98
+ if (!hasGooglePlay) {
99
+ results.push(`⏭️ Skipping Google Play (not registered for Google Play)`);
100
+ }
101
+ else if (!config.playStore) {
102
+ results.push(`⏭️ Skipping Google Play (not configured in ~/.config/pabal-mcp/config.json)`);
103
+ }
104
+ else if (!packageName) {
105
+ results.push(`⏭️ Skipping Google Play (no packageName provided)`);
106
+ }
107
+ else if (!versionCodes || versionCodes.length === 0) {
108
+ results.push(`⏭️ Skipping Google Play (no version codes provided)`);
109
+ }
110
+ else {
111
+ const createResult = await googlePlayService.createVersion(packageName, version, versionCodes);
112
+ if (!createResult.success) {
113
+ results.push(`❌ Google Play version creation failed: ${createResult.error.message}`);
114
+ }
115
+ else {
116
+ results.push(`✅ Google Play production draft created with versionCodes: ${versionCodes.join(", ")}`);
117
+ }
118
+ }
119
+ }
120
+ return {
121
+ content: [
122
+ {
123
+ type: "text",
124
+ text: `📦 Version Creation Results:\n${results.join("\n")}`,
125
+ },
126
+ ],
127
+ };
128
+ }
@@ -0,0 +1,22 @@
1
+ import type { StoreType } from "../../packages/configs/aso-config/types.js";
2
+ interface AsoPullReleaseNotesOptions {
3
+ app?: string;
4
+ packageName?: string;
5
+ bundleId?: string;
6
+ store?: StoreType;
7
+ dryRun?: boolean;
8
+ }
9
+ export declare function handleAsoPullReleaseNotes(options: AsoPullReleaseNotesOptions): Promise<{
10
+ content: {
11
+ type: "text";
12
+ text: string;
13
+ }[];
14
+ isError?: undefined;
15
+ } | {
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ }[];
20
+ isError: boolean;
21
+ }>;
22
+ export {};
@@ -0,0 +1,151 @@
1
+ import { ensureDir, getAsoPullDir, getPullProductAsoDir, getStoreDir, getReleaseNotesPath, } from "../../packages/configs/aso-config/utils.js";
2
+ import { getStoreTargets } from "../../packages/configs/aso-config/store.js";
3
+ import { loadConfig } from "../../packages/configs/secrets-config/config.js";
4
+ import { AppResolutionService } from "../../core/services/app-resolution-service.js";
5
+ import { AppStoreService } from "../../core/services/app-store-service.js";
6
+ import { GooglePlayService } from "../../core/services/google-play-service.js";
7
+ import { writeFileSync } from "node:fs";
8
+ const appStoreService = new AppStoreService();
9
+ const googlePlayService = new GooglePlayService();
10
+ const appResolutionService = new AppResolutionService();
11
+ export async function handleAsoPullReleaseNotes(options) {
12
+ const { app, store, dryRun = false } = options;
13
+ let { packageName, bundleId } = options;
14
+ const { store: targetStore, includeAppStore, includeGooglePlay, } = getStoreTargets(store);
15
+ const resolved = appResolutionService.resolve({
16
+ slug: app,
17
+ packageName,
18
+ bundleId,
19
+ });
20
+ if (!resolved.success) {
21
+ return {
22
+ content: [
23
+ {
24
+ type: "text",
25
+ text: resolved.error.message,
26
+ },
27
+ ],
28
+ };
29
+ }
30
+ const { slug, bundleId: resolvedBundleId, packageName: resolvedPackageName, hasAppStore, hasGooglePlay, } = resolved.data;
31
+ bundleId = resolvedBundleId;
32
+ packageName = resolvedPackageName;
33
+ console.error(`[MCP] 📥 Pulling release notes`);
34
+ console.error(`[MCP] Store: ${targetStore}`);
35
+ console.error(`[MCP] App: ${slug}`);
36
+ if (packageName)
37
+ console.error(`[MCP] Package Name: ${packageName}`);
38
+ if (bundleId)
39
+ console.error(`[MCP] Bundle ID: ${bundleId}`);
40
+ console.error(`[MCP] Mode: ${dryRun ? "Dry run" : "Actual fetch"}`);
41
+ let config;
42
+ try {
43
+ config = loadConfig();
44
+ }
45
+ catch (error) {
46
+ const message = error instanceof Error ? error.message : String(error);
47
+ return {
48
+ content: [
49
+ {
50
+ type: "text",
51
+ text: `❌ Failed to load config: ${message}`,
52
+ },
53
+ ],
54
+ isError: true,
55
+ };
56
+ }
57
+ const releaseNotes = {};
58
+ if (includeGooglePlay) {
59
+ if (!hasGooglePlay) {
60
+ console.error(`[MCP] ⏭️ Skipping Google Play (not registered for Google Play)`);
61
+ }
62
+ else if (!config.playStore) {
63
+ console.error(`[MCP] ⏭️ Skipping Google Play (not configured in ~/.config/pabal-mcp/config.json)`);
64
+ }
65
+ else if (!packageName) {
66
+ console.error(`[MCP] ⏭️ Skipping Google Play (no packageName provided)`);
67
+ }
68
+ else {
69
+ const notesResult = await googlePlayService.pullReleaseNotes(packageName);
70
+ if (!notesResult.success) {
71
+ console.error(`[MCP] ❌ Failed to fetch Google Play release notes: ${notesResult.error.message}`);
72
+ }
73
+ else {
74
+ releaseNotes.googlePlay = notesResult.data;
75
+ console.error(`[MCP] 📊 Google Play Release Notes:`);
76
+ console.error(`[MCP] Total versions: ${notesResult.data.length}`);
77
+ for (const rn of notesResult.data) {
78
+ const code = rn.versionCode ?? "N/A";
79
+ console.error(`[MCP] Version ${rn.versionName} (${code}): ${Object.keys(rn.releaseNotes).length} languages`);
80
+ }
81
+ console.error(`[MCP] ✅ Google Play release notes fetched`);
82
+ }
83
+ }
84
+ }
85
+ if (includeAppStore) {
86
+ if (!hasAppStore) {
87
+ console.error(`[MCP] ⏭️ Skipping App Store (not registered for App Store)`);
88
+ }
89
+ else if (!config.appStore) {
90
+ console.error(`[MCP] ⏭️ Skipping App Store (not configured in ~/.config/pabal-mcp/config.json)`);
91
+ }
92
+ else if (!bundleId) {
93
+ console.error(`[MCP] ⏭️ Skipping App Store (no bundleId provided)`);
94
+ }
95
+ else {
96
+ const notesResult = await appStoreService.pullReleaseNotes(bundleId);
97
+ if (!notesResult.success) {
98
+ console.error(`[MCP] ❌ Failed to fetch App Store release notes: ${notesResult.error.message}`);
99
+ }
100
+ else {
101
+ releaseNotes.appStore = notesResult.data;
102
+ console.error(`[MCP] 📊 App Store Release Notes:`);
103
+ console.error(`[MCP] Total versions: ${notesResult.data.length}`);
104
+ for (const rn of notesResult.data) {
105
+ console.error(`[MCP] Version ${rn.versionString}: ${Object.keys(rn.releaseNotes).length} locales`);
106
+ }
107
+ console.error(`[MCP] ✅ App Store release notes fetched`);
108
+ }
109
+ }
110
+ }
111
+ if (dryRun) {
112
+ return {
113
+ content: [
114
+ {
115
+ type: "text",
116
+ text: `📋 Dry run - Release notes:\n${JSON.stringify(releaseNotes, null, 2)}`,
117
+ },
118
+ ],
119
+ };
120
+ }
121
+ // Save to ASO directory
122
+ const asoDir = getPullProductAsoDir(slug, getAsoPullDir());
123
+ if (releaseNotes.googlePlay) {
124
+ const googlePlayDir = getStoreDir(asoDir, "google-play");
125
+ ensureDir(googlePlayDir);
126
+ const filePath = getReleaseNotesPath(googlePlayDir);
127
+ writeFileSync(filePath, JSON.stringify(releaseNotes.googlePlay, null, 2));
128
+ console.error(`[MCP] 💾 Google Play release notes saved to ${filePath}`);
129
+ }
130
+ if (releaseNotes.appStore) {
131
+ const appStoreDir = getStoreDir(asoDir, "app-store");
132
+ ensureDir(appStoreDir);
133
+ const filePath = getReleaseNotesPath(appStoreDir);
134
+ writeFileSync(filePath, JSON.stringify(releaseNotes.appStore, null, 2));
135
+ console.error(`[MCP] 💾 App Store release notes saved to ${filePath}`);
136
+ }
137
+ return {
138
+ content: [
139
+ {
140
+ type: "text",
141
+ text: `✅ Release notes pulled\n` +
142
+ ` Google Play: ${releaseNotes.googlePlay
143
+ ? `${releaseNotes.googlePlay.length} versions`
144
+ : "✗"}\n` +
145
+ ` App Store: ${releaseNotes.appStore
146
+ ? `${releaseNotes.appStore.length} versions`
147
+ : "✗"}`,
148
+ },
149
+ ],
150
+ };
151
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Release notes update tool
3
+ *
4
+ * Supports both App Store and Google Play.
5
+ * Automatically translates to all supported languages if text is provided.
6
+ */
7
+ import { type StoreType } from "../../packages/configs/aso-config/types.js";
8
+ interface UpdateNotesOptions {
9
+ app?: string;
10
+ bundleId?: string;
11
+ packageName?: string;
12
+ store?: StoreType;
13
+ versionId?: string;
14
+ whatsNew?: Record<string, string>;
15
+ text?: string;
16
+ sourceLocale?: string;
17
+ }
18
+ export declare function handleUpdateNotes(options: UpdateNotesOptions): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ _meta?: undefined;
25
+ } | {
26
+ content: {
27
+ type: "text";
28
+ text: string;
29
+ }[];
30
+ isError: boolean;
31
+ _meta?: undefined;
32
+ } | {
33
+ content: {
34
+ type: "text";
35
+ text: string;
36
+ }[];
37
+ _meta: {
38
+ translationPipeline: {
39
+ step: number;
40
+ detectedLocale: string;
41
+ sourceLocale: string;
42
+ providedText: string;
43
+ providedLocales: string[];
44
+ missingLocales: string[];
45
+ allSupportedLocales: string[];
46
+ appStoreLocales: string[];
47
+ googlePlayLocales: string[];
48
+ sourceText?: undefined;
49
+ };
50
+ registeredApp: import("../../packages/configs/secrets-config/registered-apps.js").RegisteredApp;
51
+ slug: string;
52
+ store: StoreType;
53
+ versionId: string | undefined;
54
+ translationRequests?: undefined;
55
+ };
56
+ isError?: undefined;
57
+ } | {
58
+ content: {
59
+ type: "text";
60
+ text: string;
61
+ }[];
62
+ _meta: {
63
+ translationPipeline: {
64
+ step: number;
65
+ sourceLocale: string;
66
+ sourceText: string;
67
+ providedLocales: string[];
68
+ missingLocales: string[];
69
+ allSupportedLocales: string[];
70
+ appStoreLocales: string[];
71
+ googlePlayLocales: string[];
72
+ detectedLocale?: undefined;
73
+ providedText?: undefined;
74
+ };
75
+ registeredApp: import("../../packages/configs/secrets-config/registered-apps.js").RegisteredApp;
76
+ slug: string;
77
+ store: StoreType;
78
+ versionId: string | undefined;
79
+ translationRequests?: undefined;
80
+ };
81
+ isError?: undefined;
82
+ } | {
83
+ content: {
84
+ type: "text";
85
+ text: string;
86
+ }[];
87
+ _meta: {
88
+ translationRequests: {
89
+ appStore: {
90
+ sourceText: string;
91
+ sourceLocale: string;
92
+ targetLocales: string[];
93
+ store: "appStore";
94
+ } | undefined;
95
+ googlePlay: {
96
+ sourceText: string;
97
+ sourceLocale: string;
98
+ targetLocales: string[];
99
+ store: "googlePlay";
100
+ } | undefined;
101
+ };
102
+ registeredApp: import("../../packages/configs/secrets-config/registered-apps.js").RegisteredApp;
103
+ slug: string;
104
+ store: StoreType;
105
+ versionId: string | undefined;
106
+ translationPipeline?: undefined;
107
+ };
108
+ isError?: undefined;
109
+ }>;
110
+ export {};