@onmyway133/asc-cli 1.0.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 (55) hide show
  1. package/README.md +299 -0
  2. package/bun.lock +231 -0
  3. package/dist/index.js +179 -0
  4. package/docs/API_COVERAGE.md +355 -0
  5. package/docs/openapi/latest.json +230597 -0
  6. package/docs/openapi/paths.txt +1208 -0
  7. package/openapi-ts.config.ts +25 -0
  8. package/package.json +32 -0
  9. package/scripts/gen-paths-index.py +24 -0
  10. package/src/api/client.ts +132 -0
  11. package/src/api/generated/client/client.gen.ts +298 -0
  12. package/src/api/generated/client/index.ts +25 -0
  13. package/src/api/generated/client/types.gen.ts +214 -0
  14. package/src/api/generated/client/utils.gen.ts +316 -0
  15. package/src/api/generated/client.gen.ts +16 -0
  16. package/src/api/generated/core/auth.gen.ts +41 -0
  17. package/src/api/generated/core/bodySerializer.gen.ts +82 -0
  18. package/src/api/generated/core/params.gen.ts +169 -0
  19. package/src/api/generated/core/pathSerializer.gen.ts +171 -0
  20. package/src/api/generated/core/queryKeySerializer.gen.ts +117 -0
  21. package/src/api/generated/core/serverSentEvents.gen.ts +242 -0
  22. package/src/api/generated/core/types.gen.ts +104 -0
  23. package/src/api/generated/core/utils.gen.ts +140 -0
  24. package/src/api/generated/index.ts +4 -0
  25. package/src/api/generated/sdk.gen.ts +11701 -0
  26. package/src/api/generated/types.gen.ts +92035 -0
  27. package/src/api/hey-api-client.ts +20 -0
  28. package/src/api/types.ts +160 -0
  29. package/src/auth/credentials.ts +125 -0
  30. package/src/auth/jwt.ts +118 -0
  31. package/src/commands/app-info.ts +110 -0
  32. package/src/commands/apps.ts +44 -0
  33. package/src/commands/auth.ts +327 -0
  34. package/src/commands/availability.ts +52 -0
  35. package/src/commands/beta-review.ts +145 -0
  36. package/src/commands/builds.ts +97 -0
  37. package/src/commands/game-center.ts +114 -0
  38. package/src/commands/iap.ts +105 -0
  39. package/src/commands/metadata.ts +81 -0
  40. package/src/commands/pricing.ts +110 -0
  41. package/src/commands/reports.ts +116 -0
  42. package/src/commands/reviews.ts +93 -0
  43. package/src/commands/screenshots.ts +139 -0
  44. package/src/commands/signing.ts +214 -0
  45. package/src/commands/subscriptions.ts +144 -0
  46. package/src/commands/testflight.ts +110 -0
  47. package/src/commands/versions.ts +76 -0
  48. package/src/commands/xcode-cloud.ts +207 -0
  49. package/src/index.ts +1661 -0
  50. package/src/utils/help-spec.ts +835 -0
  51. package/src/utils/output.ts +79 -0
  52. package/tests/auth.test.ts +105 -0
  53. package/tests/client.test.ts +22 -0
  54. package/tests/output.test.ts +36 -0
  55. package/tsconfig.json +15 -0
@@ -0,0 +1,355 @@
1
+ # API Coverage Checklist
2
+
3
+ Tracks which App Store Connect API endpoint groups are exposed via CLI commands.
4
+ Generated from `docs/openapi/latest.json` (1208 endpoints across 174 resource groups).
5
+
6
+ **Regenerate snapshot:** `bun run generate`
7
+ **Browse raw paths:** `grep <term> docs/openapi/paths.txt`
8
+ **SDK functions:** `src/api/generated/sdk.gen.ts`
9
+
10
+ Legend: โœ… CLI command exists ยท ๐Ÿ”ฒ Not yet exposed ยท โž– Internal/relationship-only (no direct CLI value)
11
+
12
+ ---
13
+
14
+ ## Apps
15
+
16
+ | Status | Resource | Endpoints | CLI Command |
17
+ |--------|----------|-----------|-------------|
18
+ | โœ… | `apps` | 86 | `asc apps list / get` |
19
+ | โœ… | `appInfos` | 20 | `asc app-info get / update` |
20
+ | โœ… | `appInfoLocalizations` | 4 | via `asc metadata list` |
21
+ | โœ… | `appCategories` | 6 | `asc app-info categories list` |
22
+ | โœ… | `ageRatingDeclarations` | 1 | `asc app-info age-rating` (update only) |
23
+ | โœ… | `appAvailabilities` | 4 | `asc availability get / set` |
24
+ | ๐Ÿ”ฒ | `appTags` | 3 | โ€” |
25
+ | โž– | `actors` | 2 | internal |
26
+ | ๐Ÿ”ฒ | `endAppAvailabilityPreOrders` | 1 | โ€” |
27
+ | ๐Ÿ”ฒ | `preReleaseVersions` | 6 | โ€” |
28
+ | ๐Ÿ”ฒ | `nominations` | 5 | โ€” |
29
+
30
+ ## Builds
31
+
32
+ | Status | Resource | Endpoints | CLI Command |
33
+ |--------|----------|-----------|-------------|
34
+ | โœ… | `builds` | 30 | `asc builds list / get / update-beta-notes` |
35
+ | โœ… | `buildBetaDetails` | 5 | `asc beta-review notify` |
36
+ | โœ… | `betaBuildLocalizations` | 7 | `asc beta-review localizations list` |
37
+ | ๐Ÿ”ฒ | `buildBetaNotifications` | 1 | โ€” |
38
+ | ๐Ÿ”ฒ | `buildBundles` | 8 | โ€” |
39
+ | ๐Ÿ”ฒ | `buildUploadFiles` | 3 | โ€” |
40
+ | ๐Ÿ”ฒ | `buildUploads` | 5 | โ€” |
41
+ | โž– | `preReleaseVersions` | 6 | โ€” |
42
+
43
+ ## App Store Versions
44
+
45
+ | Status | Resource | Endpoints | CLI Command |
46
+ |--------|----------|-----------|-------------|
47
+ | โœ… | `appStoreVersions` | 30 | `asc versions list / create / submit` |
48
+ | โœ… | `appStoreVersionLocalizations` | 12 | `asc metadata list / update` |
49
+ | ๐Ÿ”ฒ | `appStoreVersionPhasedReleases` | 3 | โ€” |
50
+ | ๐Ÿ”ฒ | `appStoreVersionReleaseRequests` | 1 | โ€” |
51
+ | ๐Ÿ”ฒ | `appStoreVersionSubmissions` | 1 | โ€” |
52
+ | ๐Ÿ”ฒ | `appStoreVersionPromotions` | 1 | โ€” |
53
+ | ๐Ÿ”ฒ | `appStoreVersionExperiments` | 12 | โ€” |
54
+ | ๐Ÿ”ฒ | `appStoreVersionExperimentTreatments` | 6 | โ€” |
55
+ | ๐Ÿ”ฒ | `appStoreVersionExperimentTreatmentLocalizations` | 7 | โ€” |
56
+ | ๐Ÿ”ฒ | `appStoreReviewDetails` | 5 | โ€” |
57
+ | ๐Ÿ”ฒ | `appStoreReviewAttachments` | 4 | โ€” |
58
+ | ๐Ÿ”ฒ | `routingAppCoverages` | 4 | โ€” |
59
+ | ๐Ÿ”ฒ | `reviewSubmissions` | 6 | โ€” |
60
+ | ๐Ÿ”ฒ | `reviewSubmissionItems` | 3 | โ€” |
61
+
62
+ ## Screenshots & Previews
63
+
64
+ | Status | Resource | Endpoints | CLI Command |
65
+ |--------|----------|-----------|-------------|
66
+ | โœ… | `appScreenshotSets` | 6 | `asc screenshots sets list` |
67
+ | โœ… | `appScreenshots` | 4 | `asc screenshots list / upload / delete` |
68
+ | โœ… | `appPreviewSets` | 6 | `asc screenshots previews list` |
69
+ | ๐Ÿ”ฒ | `appPreviews` | 4 | โ€” |
70
+
71
+ ## TestFlight
72
+
73
+ | Status | Resource | Endpoints | CLI Command |
74
+ |--------|----------|-----------|-------------|
75
+ | โœ… | `betaGroups` | 21 | `asc testflight groups list` |
76
+ | โœ… | `betaTesters` | 16 | `asc testflight testers list / add / remove` |
77
+ | โœ… | `betaAppReviewSubmissions` | 5 | `asc beta-review submit / status` |
78
+ | โœ… | `betaAppReviewDetails` | 5 | `asc beta-review detail-get / detail-update` |
79
+ | โœ… | `betaAppLocalizations` | 7 | via builds |
80
+ | ๐Ÿ”ฒ | `betaLicenseAgreements` | 5 | โ€” |
81
+ | ๐Ÿ”ฒ | `betaTesterInvitations` | 1 | โ€” |
82
+ | ๐Ÿ”ฒ | `betaRecruitmentCriteria` | 3 | โ€” |
83
+ | ๐Ÿ”ฒ | `betaCrashLogs` | 1 | โ€” |
84
+ | ๐Ÿ”ฒ | `betaFeedbackCrashSubmissions` | 4 | โ€” |
85
+ | ๐Ÿ”ฒ | `betaFeedbackScreenshotSubmissions` | 2 | โ€” |
86
+ | ๐Ÿ”ฒ | `betaAppClipInvocations` | 4 | โ€” |
87
+ | ๐Ÿ”ฒ | `betaAppClipInvocationLocalizations` | 3 | โ€” |
88
+
89
+ ## Pricing & Territories
90
+
91
+ | Status | Resource | Endpoints | CLI Command |
92
+ |--------|----------|-----------|-------------|
93
+ | โœ… | `appPriceSchedules` | 8 | `asc pricing get / set` |
94
+ | โœ… | `appPricePoints` | 3 | `asc pricing points list` |
95
+ | โœ… | `territories` | 1 | `asc pricing territories list` |
96
+ | ๐Ÿ”ฒ | `territoryAvailabilities` | 1 | โ€” |
97
+
98
+ ## In-App Purchases
99
+
100
+ | Status | Resource | Endpoints | CLI Command |
101
+ |--------|----------|-----------|-------------|
102
+ | โœ… | `inAppPurchases` | 23 | `asc iap list / get / create / delete` |
103
+ | โœ… | `inAppPurchaseLocalizations` | 4 | โ€” |
104
+ | ๐Ÿ”ฒ | `inAppPurchasePriceSchedules` | 8 | โ€” |
105
+ | ๐Ÿ”ฒ | `inAppPurchasePricePoints` | 2 | โ€” |
106
+ | ๐Ÿ”ฒ | `inAppPurchaseAvailabilities` | 4 | โ€” |
107
+ | ๐Ÿ”ฒ | `inAppPurchaseOfferCodes` | 9 | โ€” |
108
+ | ๐Ÿ”ฒ | `inAppPurchaseOfferCodeCustomCodes` | 3 | โ€” |
109
+ | ๐Ÿ”ฒ | `inAppPurchaseOfferCodeOneTimeUseCodes` | 4 | โ€” |
110
+ | ๐Ÿ”ฒ | `inAppPurchaseContents` | 1 | โ€” |
111
+ | ๐Ÿ”ฒ | `inAppPurchaseImages` | 4 | โ€” |
112
+ | ๐Ÿ”ฒ | `inAppPurchaseAppStoreReviewScreenshots` | 4 | โ€” |
113
+ | ๐Ÿ”ฒ | `inAppPurchaseSubmissions` | 1 | โ€” |
114
+ | ๐Ÿ”ฒ | `promotedPurchases` | 4 | โ€” |
115
+
116
+ ## Subscriptions
117
+
118
+ | Status | Resource | Endpoints | CLI Command |
119
+ |--------|----------|-----------|-------------|
120
+ | โœ… | `subscriptionGroups` | 8 | `asc subscriptions groups list / create` |
121
+ | โœ… | `subscriptions` | 28 | `asc subscriptions list / get / create / prices` |
122
+ | โœ… | `subscriptionPrices` | 2 | `asc subscriptions prices` |
123
+ | ๐Ÿ”ฒ | `subscriptionPricePoints` | 3 | โ€” |
124
+ | ๐Ÿ”ฒ | `subscriptionAvailabilities` | 4 | โ€” |
125
+ | ๐Ÿ”ฒ | `subscriptionLocalizations` | 4 | โ€” |
126
+ | ๐Ÿ”ฒ | `subscriptionGroupLocalizations` | 4 | โ€” |
127
+ | ๐Ÿ”ฒ | `subscriptionGroupSubmissions` | 1 | โ€” |
128
+ | ๐Ÿ”ฒ | `subscriptionIntroductoryOffers` | 3 | โ€” |
129
+ | ๐Ÿ”ฒ | `subscriptionPromotionalOffers` | 6 | โ€” |
130
+ | ๐Ÿ”ฒ | `subscriptionOfferCodes` | 9 | โ€” |
131
+ | ๐Ÿ”ฒ | `subscriptionOfferCodeCustomCodes` | 3 | โ€” |
132
+ | ๐Ÿ”ฒ | `subscriptionOfferCodeOneTimeUseCodes` | 4 | โ€” |
133
+ | ๐Ÿ”ฒ | `subscriptionImages` | 4 | โ€” |
134
+ | ๐Ÿ”ฒ | `subscriptionAppStoreReviewScreenshots` | 4 | โ€” |
135
+ | ๐Ÿ”ฒ | `subscriptionSubmissions` | 1 | โ€” |
136
+ | ๐Ÿ”ฒ | `subscriptionGracePeriods` | 2 | โ€” |
137
+ | ๐Ÿ”ฒ | `winBackOffers` | 6 | โ€” |
138
+
139
+ ## Customer Reviews
140
+
141
+ | Status | Resource | Endpoints | CLI Command |
142
+ |--------|----------|-----------|-------------|
143
+ | โœ… | `customerReviews` | 3 | `asc reviews list / get` |
144
+ | โœ… | `customerReviewResponses` | 3 | `asc reviews respond` |
145
+
146
+ ## Code Signing
147
+
148
+ | Status | Resource | Endpoints | CLI Command |
149
+ |--------|----------|-----------|-------------|
150
+ | โœ… | `certificates` | 7 | `asc signing certs list / get / revoke` |
151
+ | โœ… | `devices` | 4 | `asc signing devices list / register` |
152
+ | โœ… | `bundleIds` | 11 | `asc signing bundle-ids list / register` |
153
+ | โœ… | `profiles` | 10 | `asc signing profiles list / delete` |
154
+ | ๐Ÿ”ฒ | `bundleIdCapabilities` | 3 | โ€” |
155
+ | ๐Ÿ”ฒ | `merchantIds` | 7 | โ€” |
156
+ | ๐Ÿ”ฒ | `passTypeIds` | 7 | โ€” |
157
+
158
+ ## Reports & Analytics
159
+
160
+ | Status | Resource | Endpoints | CLI Command |
161
+ |--------|----------|-----------|-------------|
162
+ | โœ… | `salesReports` | 1 | `asc reports sales` |
163
+ | โœ… | `financeReports` | 1 | `asc reports finance` |
164
+ | โœ… | `analyticsReportRequests` | 5 | `asc reports analytics request / list` |
165
+ | ๐Ÿ”ฒ | `analyticsReports` | 3 | โ€” |
166
+ | ๐Ÿ”ฒ | `analyticsReportInstances` | 3 | โ€” |
167
+ | ๐Ÿ”ฒ | `analyticsReportSegments` | 1 | โ€” |
168
+ | ๐Ÿ”ฒ | `diagnosticSignatures` | 1 | โ€” |
169
+
170
+ ## Xcode Cloud
171
+
172
+ | Status | Resource | Endpoints | CLI Command |
173
+ |--------|----------|-----------|-------------|
174
+ | โœ… | `ciProducts` | 13 | `asc xcode-cloud products list` |
175
+ | โœ… | `ciWorkflows` | 8 | `asc xcode-cloud workflows list / get` |
176
+ | โœ… | `ciBuildRuns` | 6 | `asc xcode-cloud builds list / run` |
177
+ | โœ… | `ciArtifacts` | 1 | `asc xcode-cloud artifacts list` |
178
+ | โœ… | `ciTestResults` | 1 | `asc xcode-cloud test-results list` |
179
+ | ๐Ÿ”ฒ | `ciBuildActions` | 9 | โ€” |
180
+ | ๐Ÿ”ฒ | `ciIssues` | 1 | โ€” |
181
+ | ๐Ÿ”ฒ | `ciMacOsVersions` | 4 | โ€” |
182
+ | ๐Ÿ”ฒ | `ciXcodeVersions` | 4 | โ€” |
183
+ | ๐Ÿ”ฒ | `scmProviders` | 4 | โ€” |
184
+ | ๐Ÿ”ฒ | `scmRepositories` | 6 | โ€” |
185
+ | ๐Ÿ”ฒ | `scmGitReferences` | 1 | โ€” |
186
+ | ๐Ÿ”ฒ | `scmPullRequests` | 1 | โ€” |
187
+
188
+ ## Game Center
189
+
190
+ | Status | Resource | Endpoints | CLI Command |
191
+ |--------|----------|-----------|-------------|
192
+ | โœ… | `gameCenterAchievements` | 19 | `asc game-center achievements list / get` |
193
+ | โœ… | `gameCenterLeaderboards` | 21 | `asc game-center leaderboards list` |
194
+ | โœ… | `gameCenterLeaderboardSets` | 27 | `asc game-center leaderboard-sets list` |
195
+ | โœ… | `gameCenterEnabledVersions` | 5 | `asc game-center check` |
196
+ | โœ… | `gameCenterDetails` | 42 | โ€” |
197
+ | ๐Ÿ”ฒ | `gameCenterGroups` | 29 | โ€” |
198
+ | ๐Ÿ”ฒ | `gameCenterAchievementLocalizations` | 14 | โ€” |
199
+ | ๐Ÿ”ฒ | `gameCenterAchievementImages` | 8 | โ€” |
200
+ | ๐Ÿ”ฒ | `gameCenterAchievementReleases` | 3 | โ€” |
201
+ | ๐Ÿ”ฒ | `gameCenterLeaderboardLocalizations` | 12 | โ€” |
202
+ | ๐Ÿ”ฒ | `gameCenterLeaderboardImages` | 8 | โ€” |
203
+ | ๐Ÿ”ฒ | `gameCenterLeaderboardReleases` | 3 | โ€” |
204
+ | ๐Ÿ”ฒ | `gameCenterLeaderboardSetLocalizations` | 12 | โ€” |
205
+ | ๐Ÿ”ฒ | `gameCenterMatchmakingQueues` | 10 | โ€” |
206
+ | ๐Ÿ”ฒ | `gameCenterMatchmakingRuleSets` | 11 | โ€” |
207
+ | ๐Ÿ”ฒ | `gameCenterMatchmakingRules` | 6 | โ€” |
208
+ | ๐Ÿ”ฒ | `gameCenterActivities` | 14 | โ€” |
209
+ | ๐Ÿ”ฒ | `gameCenterChallenges` | 8 | โ€” |
210
+ | โž– | `gameCenterAppVersions` | 9 | internal |
211
+
212
+ ## App Events
213
+
214
+ | Status | Resource | Endpoints | CLI Command |
215
+ |--------|----------|-----------|-------------|
216
+ | ๐Ÿ”ฒ | `appEvents` | 6 | โ€” |
217
+ | ๐Ÿ”ฒ | `appEventLocalizations` | 8 | โ€” |
218
+ | ๐Ÿ”ฒ | `appEventScreenshots` | 4 | โ€” |
219
+ | ๐Ÿ”ฒ | `appEventVideoClips` | 4 | โ€” |
220
+
221
+ ## App Clips
222
+
223
+ | Status | Resource | Endpoints | CLI Command |
224
+ |--------|----------|-----------|-------------|
225
+ | ๐Ÿ”ฒ | `appClips` | 5 | โ€” |
226
+ | ๐Ÿ”ฒ | `appClipDefaultExperiences` | 11 | โ€” |
227
+ | ๐Ÿ”ฒ | `appClipDefaultExperienceLocalizations` | 6 | โ€” |
228
+ | ๐Ÿ”ฒ | `appClipAdvancedExperiences` | 3 | โ€” |
229
+ | ๐Ÿ”ฒ | `appClipAdvancedExperienceImages` | 3 | โ€” |
230
+ | ๐Ÿ”ฒ | `appClipAppStoreReviewDetails` | 3 | โ€” |
231
+ | ๐Ÿ”ฒ | `appClipHeaderImages` | 4 | โ€” |
232
+
233
+ ## Custom Product Pages
234
+
235
+ | Status | Resource | Endpoints | CLI Command |
236
+ |--------|----------|-----------|-------------|
237
+ | ๐Ÿ”ฒ | `appCustomProductPages` | 6 | โ€” |
238
+ | ๐Ÿ”ฒ | `appCustomProductPageVersions` | 5 | โ€” |
239
+ | ๐Ÿ”ฒ | `appCustomProductPageLocalizations` | 12 | โ€” |
240
+
241
+ ## Alternative Distribution (AltStore / Marketplace)
242
+
243
+ | Status | Resource | Endpoints | CLI Command |
244
+ |--------|----------|-----------|-------------|
245
+ | ๐Ÿ”ฒ | `alternativeDistributionDomains` | 4 | โ€” |
246
+ | ๐Ÿ”ฒ | `alternativeDistributionKeys` | 4 | โ€” |
247
+ | ๐Ÿ”ฒ | `alternativeDistributionPackages` | 4 | โ€” |
248
+ | ๐Ÿ”ฒ | `alternativeDistributionPackageVersions` | 5 | โ€” |
249
+ | ๐Ÿ”ฒ | `alternativeDistributionPackageDeltas` | 1 | โ€” |
250
+ | ๐Ÿ”ฒ | `alternativeDistributionPackageVariants` | 1 | โ€” |
251
+ | ๐Ÿ”ฒ | `marketplaceSearchDetails` | 3 | โ€” |
252
+ | ๐Ÿ”ฒ | `marketplaceWebhooks` | 4 | โ€” |
253
+
254
+ ## Encryption & Compliance
255
+
256
+ | Status | Resource | Endpoints | CLI Command |
257
+ |--------|----------|-----------|-------------|
258
+ | ๐Ÿ”ฒ | `appEncryptionDeclarations` | 8 | โ€” |
259
+ | ๐Ÿ”ฒ | `appEncryptionDeclarationDocuments` | 3 | โ€” |
260
+ | ๐Ÿ”ฒ | `accessibilityDeclarations` | 4 | โ€” |
261
+
262
+ ## Users & Roles
263
+
264
+ | Status | Resource | Endpoints | CLI Command |
265
+ |--------|----------|-----------|-------------|
266
+ | ๐Ÿ”ฒ | `users` | 9 | โ€” |
267
+ | ๐Ÿ”ฒ | `userInvitations` | 6 | โ€” |
268
+
269
+ ## EULAs & Legal
270
+
271
+ | Status | Resource | Endpoints | CLI Command |
272
+ |--------|----------|-----------|-------------|
273
+ | ๐Ÿ”ฒ | `endUserLicenseAgreements` | 6 | โ€” |
274
+
275
+ ## Background Assets
276
+
277
+ | Status | Resource | Endpoints | CLI Command |
278
+ |--------|----------|-----------|-------------|
279
+ | ๐Ÿ”ฒ | `backgroundAssets` | 5 | โ€” |
280
+ | ๐Ÿ”ฒ | `backgroundAssetVersions` | 4 | โ€” |
281
+ | ๐Ÿ”ฒ | `backgroundAssetUploadFiles` | 3 | โ€” |
282
+
283
+ ## Android โ†’ iOS Mapping
284
+
285
+ | Status | Resource | Endpoints | CLI Command |
286
+ |--------|----------|-----------|-------------|
287
+ | ๐Ÿ”ฒ | `androidToIosAppMappingDetails` | 4 | โ€” |
288
+
289
+ ## Sandbox Testing
290
+
291
+ | Status | Resource | Endpoints | CLI Command |
292
+ |--------|----------|-----------|-------------|
293
+ | ๐Ÿ”ฒ | `sandboxTesters` | 2 | โ€” |
294
+ | ๐Ÿ”ฒ | `sandboxTestersClearPurchaseHistoryRequest` | 1 | โ€” |
295
+
296
+ ## Webhooks
297
+
298
+ | Status | Resource | Endpoints | CLI Command |
299
+ |--------|----------|-----------|-------------|
300
+ | ๐Ÿ”ฒ | `webhooks` | 6 | โ€” |
301
+ | ๐Ÿ”ฒ | `webhookDeliveries` | 1 | โ€” |
302
+ | ๐Ÿ”ฒ | `webhookPings` | 1 | โ€” |
303
+
304
+ ---
305
+
306
+ ## Summary
307
+
308
+ | Category | Total Resources | โœ… Covered | ๐Ÿ”ฒ Not Yet |
309
+ |----------|----------------|-----------|-----------|
310
+ | Apps | 11 | 6 | 5 |
311
+ | Builds | 8 | 4 | 4 |
312
+ | App Store Versions | 14 | 4 | 10 |
313
+ | Screenshots & Previews | 4 | 3 | 1 |
314
+ | TestFlight | 13 | 6 | 7 |
315
+ | Pricing & Territories | 4 | 3 | 1 |
316
+ | In-App Purchases | 13 | 2 | 11 |
317
+ | Subscriptions | 18 | 4 | 14 |
318
+ | Customer Reviews | 2 | 2 | 0 |
319
+ | Code Signing | 7 | 4 | 3 |
320
+ | Reports & Analytics | 7 | 3 | 4 |
321
+ | Xcode Cloud | 13 | 5 | 8 |
322
+ | Game Center | 19 | 5 | 14 |
323
+ | App Events | 4 | 0 | 4 |
324
+ | App Clips | 7 | 0 | 7 |
325
+ | Custom Product Pages | 3 | 0 | 3 |
326
+ | Alt. Distribution | 8 | 0 | 8 |
327
+ | Encryption & Compliance | 3 | 0 | 3 |
328
+ | Users & Roles | 2 | 0 | 2 |
329
+ | Other (EULAs, Webhooks, etc.) | 9 | 0 | 9 |
330
+ | **Total** | **169** | **51** | **118** |
331
+
332
+ ## How to Add Coverage for a Missing Endpoint
333
+
334
+ 1. Find the SDK function in `src/api/generated/sdk.gen.ts`
335
+ ```bash
336
+ grep -i "subscriptionLocalizations" src/api/generated/sdk.gen.ts | head -5
337
+ ```
338
+ 2. Check the request/response types in `src/api/generated/types.gen.ts`
339
+ 3. Add implementation to the relevant `src/commands/*.ts` file
340
+ 4. Wire the new command into `src/index.ts`
341
+ 5. Update the `docs/openapi/paths.txt` index if needed:
342
+ ```bash
343
+ bun run generate
344
+ ```
345
+ 6. Check the box above โœ…
346
+
347
+ ## Regenerating the Spec
348
+
349
+ When Apple updates their API:
350
+ ```bash
351
+ bun run generate
352
+ ```
353
+
354
+ This re-downloads `docs/openapi/latest.json`, refreshes `docs/openapi/paths.txt`,
355
+ and regenerates `src/api/generated/` from the latest spec.