@gpc-cli/api 1.0.28 → 1.0.29
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.
- package/LICENSE +21 -0
- package/README.md +60 -42
- package/dist/index.d.ts +129 -33
- package/dist/index.js +141 -63
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 GPC Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Typed Google Play Developer API v3 client for TypeScript. Part of [GPC](https://github.com/yasserstudio/gpc).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
215 endpoints across edits, releases, tracks, listings, subscriptions, in-app products, purchases, reviews, vitals, reports, users, and testers. Built-in rate limiting, retry logic, and pagination.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -29,18 +29,18 @@ await client.edits.delete("com.example.app", edit.id);
|
|
|
29
29
|
|
|
30
30
|
## Client Factories
|
|
31
31
|
|
|
32
|
-
| Factory
|
|
33
|
-
|
|
|
34
|
-
| `createApiClient(options)`
|
|
35
|
-
| `createReportingClient(options)` | Vitals, crash rates, ANR, error reporting
|
|
36
|
-
| `createUsersClient(options)`
|
|
37
|
-
| `createHttpClient(options)`
|
|
32
|
+
| Factory | Purpose |
|
|
33
|
+
| -------------------------------- | ---------------------------------------------------------------- |
|
|
34
|
+
| `createApiClient(options)` | Core Play API: apps, releases, listings, monetization, purchases |
|
|
35
|
+
| `createReportingClient(options)` | Vitals, crash rates, ANR, error reporting |
|
|
36
|
+
| `createUsersClient(options)` | Developer account users and permission grants |
|
|
37
|
+
| `createHttpClient(options)` | Low-level HTTP with auth, retry, and rate limiting |
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
40
|
const options: ApiClientOptions = {
|
|
41
|
-
auth,
|
|
42
|
-
maxRetries: 3,
|
|
43
|
-
timeout: 30_000,
|
|
41
|
+
auth, // Required: { getAccessToken(): Promise<string> }
|
|
42
|
+
maxRetries: 3, // Default retry count
|
|
43
|
+
timeout: 30_000, // Request timeout in ms
|
|
44
44
|
onRetry: (entry) => console.warn(`Retry #${entry.attempt}`),
|
|
45
45
|
};
|
|
46
46
|
```
|
|
@@ -92,31 +92,31 @@ await client.purchases.acknowledgeProduct("com.example.app", "coins_100", token)
|
|
|
92
92
|
|
|
93
93
|
## All API Modules
|
|
94
94
|
|
|
95
|
-
| Module
|
|
96
|
-
|
|
|
97
|
-
| `client.edits`
|
|
98
|
-
| `client.bundles`
|
|
99
|
-
| `client.tracks`
|
|
100
|
-
| `client.listings`
|
|
101
|
-
| `client.images`
|
|
102
|
-
| `client.subscriptions`
|
|
103
|
-
| `client.inappproducts`
|
|
104
|
-
| `client.oneTimeProducts`
|
|
105
|
-
| `client.purchases`
|
|
106
|
-
| `client.reviews`
|
|
107
|
-
| `client.testers`
|
|
108
|
-
| `client.reports`
|
|
109
|
-
| `client.monetization`
|
|
110
|
-
| `client.deobfuscation`
|
|
111
|
-
| `client.expansionFiles`
|
|
112
|
-
| `client.dataSafety`
|
|
113
|
-
| `client.deviceTiers`
|
|
114
|
-
| `client.internalSharing`
|
|
115
|
-
| `client.generatedApks`
|
|
116
|
-
| `client.externalTransactions` | create, get, refund
|
|
117
|
-
| `client.appRecovery`
|
|
118
|
-
| `reporting.*`
|
|
119
|
-
| `users.*`
|
|
95
|
+
| Module | Methods |
|
|
96
|
+
| ----------------------------- | ----------------------------------------------------------------------------------------- |
|
|
97
|
+
| `client.edits` | insert, get, validate, commit, delete |
|
|
98
|
+
| `client.bundles` | upload, list |
|
|
99
|
+
| `client.tracks` | list, get, update |
|
|
100
|
+
| `client.listings` | list, get, update, delete, deleteAll |
|
|
101
|
+
| `client.images` | list, upload, delete, deleteAll |
|
|
102
|
+
| `client.subscriptions` | list, get, create, patch, archive, activate/deactivate base plans and offers |
|
|
103
|
+
| `client.inappproducts` | list, get, create, update, delete, batchGet, batchUpdate, batchDelete |
|
|
104
|
+
| `client.oneTimeProducts` | list, get, create, patch, delete, batchGet, batchUpdate, batchDelete |
|
|
105
|
+
| `client.purchases` | getProduct, acknowledgeProduct, getSubscriptionV2, revokeSubscription, refund, listVoided |
|
|
106
|
+
| `client.reviews` | list, get, reply |
|
|
107
|
+
| `client.testers` | get, update |
|
|
108
|
+
| `client.reports` | list |
|
|
109
|
+
| `client.monetization` | convertRegionPrices |
|
|
110
|
+
| `client.deobfuscation` | upload |
|
|
111
|
+
| `client.expansionFiles` | get, update, patch, upload |
|
|
112
|
+
| `client.dataSafety` | get, update |
|
|
113
|
+
| `client.deviceTiers` | list, get, create |
|
|
114
|
+
| `client.internalSharing` | uploadBundle, uploadApk |
|
|
115
|
+
| `client.generatedApks` | list, download |
|
|
116
|
+
| `client.externalTransactions` | create, get, refund |
|
|
117
|
+
| `client.appRecovery` | create, deploy, cancel, list |
|
|
118
|
+
| `reporting.*` | queryMetricSet, getAnomalies, searchErrorIssues, searchErrorReports |
|
|
119
|
+
| `users.*` | list, get, create, patch, delete, listGrants, createGrant, patchGrant, deleteGrant |
|
|
120
120
|
|
|
121
121
|
## Pagination
|
|
122
122
|
|
|
@@ -146,7 +146,7 @@ try {
|
|
|
146
146
|
await client.tracks.get("com.example.app", editId, "production");
|
|
147
147
|
} catch (error) {
|
|
148
148
|
if (error instanceof ApiError) {
|
|
149
|
-
console.error(error.code);
|
|
149
|
+
console.error(error.code); // "API_NOT_FOUND"
|
|
150
150
|
console.error(error.statusCode); // 404
|
|
151
151
|
console.error(error.suggestion); // actionable fix
|
|
152
152
|
}
|
|
@@ -159,12 +159,30 @@ All Google Play API types are exported:
|
|
|
159
159
|
|
|
160
160
|
```typescript
|
|
161
161
|
import type {
|
|
162
|
-
PlayApiClient,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
PlayApiClient,
|
|
163
|
+
ReportingApiClient,
|
|
164
|
+
UsersApiClient,
|
|
165
|
+
ApiClientOptions,
|
|
166
|
+
Track,
|
|
167
|
+
Release,
|
|
168
|
+
ReleaseStatus,
|
|
169
|
+
Bundle,
|
|
170
|
+
Listing,
|
|
171
|
+
Subscription,
|
|
172
|
+
BasePlan,
|
|
173
|
+
SubscriptionOffer,
|
|
174
|
+
InAppProduct,
|
|
175
|
+
Review,
|
|
176
|
+
ProductPurchase,
|
|
177
|
+
SubscriptionPurchaseV2,
|
|
178
|
+
VoidedPurchase,
|
|
179
|
+
MetricSetQuery,
|
|
180
|
+
MetricSetResponse,
|
|
181
|
+
ErrorIssue,
|
|
182
|
+
User,
|
|
183
|
+
Grant,
|
|
184
|
+
ImageType,
|
|
185
|
+
Money,
|
|
168
186
|
} from "@gpc-cli/api";
|
|
169
187
|
```
|
|
170
188
|
|
package/dist/index.d.ts
CHANGED
|
@@ -395,6 +395,27 @@ interface BasePlanMigratePricesRequest {
|
|
|
395
395
|
};
|
|
396
396
|
latencyTolerance?: ProductUpdateLatencyTolerance;
|
|
397
397
|
}
|
|
398
|
+
interface BatchMigratePricesRequest {
|
|
399
|
+
requests: {
|
|
400
|
+
packageName: string;
|
|
401
|
+
productId: string;
|
|
402
|
+
basePlanId: string;
|
|
403
|
+
regionalPriceMigrations: {
|
|
404
|
+
regionCode: string;
|
|
405
|
+
oldestAllowedPriceVersionTime?: string;
|
|
406
|
+
priceIncreaseType?: string;
|
|
407
|
+
}[];
|
|
408
|
+
regionsVersion?: {
|
|
409
|
+
version?: string;
|
|
410
|
+
};
|
|
411
|
+
latencyTolerance?: ProductUpdateLatencyTolerance;
|
|
412
|
+
}[];
|
|
413
|
+
}
|
|
414
|
+
interface BatchMigratePricesResponse {
|
|
415
|
+
responses: {
|
|
416
|
+
subscription?: Subscription;
|
|
417
|
+
}[];
|
|
418
|
+
}
|
|
398
419
|
interface SubscriptionOfferPhase {
|
|
399
420
|
recurrenceCount: number;
|
|
400
421
|
duration: string;
|
|
@@ -888,14 +909,26 @@ interface TaxAndComplianceSettings {
|
|
|
888
909
|
interface OneTimeOffer {
|
|
889
910
|
packageName: string;
|
|
890
911
|
productId: string;
|
|
912
|
+
purchaseOptionId: string;
|
|
891
913
|
offerId: string;
|
|
892
|
-
|
|
914
|
+
state?: "DRAFT" | "ACTIVE" | "CANCELLED" | "INACTIVE";
|
|
915
|
+
regionalPricingAndAvailabilityConfigs?: Record<string, OneTimeOfferRegionalConfig>;
|
|
916
|
+
/** @deprecated Use regionalPricingAndAvailabilityConfigs instead */
|
|
917
|
+
regionalConfigs?: Record<string, OneTimeOfferRegionalConfig>;
|
|
893
918
|
otherRegionsConfig?: {
|
|
894
919
|
usdPrice: {
|
|
895
920
|
units: string;
|
|
896
921
|
nanos?: number;
|
|
897
922
|
};
|
|
898
923
|
};
|
|
924
|
+
offerTags?: Array<{
|
|
925
|
+
tag: string;
|
|
926
|
+
}>;
|
|
927
|
+
regionsVersion?: {
|
|
928
|
+
version: string;
|
|
929
|
+
};
|
|
930
|
+
preOrderOffer?: Record<string, unknown>;
|
|
931
|
+
discountedOffer?: Record<string, unknown>;
|
|
899
932
|
}
|
|
900
933
|
interface OneTimeOfferRegionalConfig {
|
|
901
934
|
price: {
|
|
@@ -910,25 +943,25 @@ interface OneTimeProductsListResponse {
|
|
|
910
943
|
nextPageToken?: string;
|
|
911
944
|
}
|
|
912
945
|
interface OneTimeOffersListResponse {
|
|
913
|
-
|
|
946
|
+
oneTimeProductOffers?: OneTimeOffer[];
|
|
947
|
+
/** @deprecated Use oneTimeProductOffers */
|
|
948
|
+
oneTimeOffers?: OneTimeOffer[];
|
|
914
949
|
nextPageToken?: string;
|
|
915
950
|
}
|
|
916
|
-
interface
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
stateInfo?: {
|
|
921
|
-
activeState?: Record<string, unknown>;
|
|
922
|
-
inactiveState?: Record<string, unknown>;
|
|
923
|
-
};
|
|
924
|
-
listings?: Record<string, {
|
|
925
|
-
title: string;
|
|
926
|
-
description?: string;
|
|
927
|
-
}>;
|
|
951
|
+
interface SystemApkDeviceSpec {
|
|
952
|
+
supportedAbis?: string[];
|
|
953
|
+
supportedLocales?: string[];
|
|
954
|
+
screenDensity?: number;
|
|
928
955
|
}
|
|
929
|
-
interface
|
|
930
|
-
|
|
931
|
-
|
|
956
|
+
interface SystemApkOptions {
|
|
957
|
+
uncompressedNativeLibraries?: boolean;
|
|
958
|
+
uncompressedDexFiles?: boolean;
|
|
959
|
+
rotated?: boolean;
|
|
960
|
+
}
|
|
961
|
+
interface SystemApkVariant {
|
|
962
|
+
variantId?: number;
|
|
963
|
+
deviceSpec?: SystemApkDeviceSpec;
|
|
964
|
+
options?: SystemApkOptions;
|
|
932
965
|
}
|
|
933
966
|
interface InAppProductsBatchUpdateRequest {
|
|
934
967
|
requests: {
|
|
@@ -972,7 +1005,7 @@ interface ReleaseSummary {
|
|
|
972
1005
|
activeArtifacts?: {
|
|
973
1006
|
versionCode: number;
|
|
974
1007
|
}[];
|
|
975
|
-
releaseLifecycleState?:
|
|
1008
|
+
releaseLifecycleState?: "RELEASE_LIFECYCLE_STATE_UNSPECIFIED" | "DRAFT" | "NOT_SENT_FOR_REVIEW" | "IN_REVIEW" | "APPROVED_NOT_PUBLISHED" | "NOT_APPROVED" | "PUBLISHED";
|
|
976
1009
|
}
|
|
977
1010
|
interface ReleasesListResponse {
|
|
978
1011
|
releases: ReleaseSummary[];
|
|
@@ -1085,6 +1118,7 @@ interface PlayApiClient {
|
|
|
1085
1118
|
deactivateBasePlan(packageName: string, productId: string, basePlanId: string): Promise<Subscription>;
|
|
1086
1119
|
deleteBasePlan(packageName: string, productId: string, basePlanId: string): Promise<void>;
|
|
1087
1120
|
migratePrices(packageName: string, productId: string, basePlanId: string, body: BasePlanMigratePricesRequest): Promise<Subscription>;
|
|
1121
|
+
batchMigratePrices(packageName: string, productId: string, body: BatchMigratePricesRequest): Promise<BatchMigratePricesResponse>;
|
|
1088
1122
|
listOffers(packageName: string, productId: string, basePlanId: string): Promise<OffersListResponse>;
|
|
1089
1123
|
getOffer(packageName: string, productId: string, basePlanId: string, offerId: string): Promise<SubscriptionOffer>;
|
|
1090
1124
|
createOffer(packageName: string, productId: string, basePlanId: string, data: SubscriptionOffer, offerId?: string, regionsVersion?: string): Promise<SubscriptionOffer>;
|
|
@@ -1138,6 +1172,10 @@ interface PlayApiClient {
|
|
|
1138
1172
|
autoConvertMissingPrices?: boolean;
|
|
1139
1173
|
allowMissing?: boolean;
|
|
1140
1174
|
}): Promise<InAppProduct>;
|
|
1175
|
+
patch(packageName: string, sku: string, data: Partial<InAppProduct>, options?: {
|
|
1176
|
+
autoConvertMissingPrices?: boolean;
|
|
1177
|
+
latencyTolerance?: string;
|
|
1178
|
+
}): Promise<InAppProduct>;
|
|
1141
1179
|
delete(packageName: string, sku: string): Promise<void>;
|
|
1142
1180
|
batchUpdate(packageName: string, requests: InAppProductsBatchUpdateRequest): Promise<InAppProductsBatchUpdateResponse>;
|
|
1143
1181
|
batchGet(packageName: string, skus: string[]): Promise<InAppProduct[]>;
|
|
@@ -1157,7 +1195,6 @@ interface PlayApiClient {
|
|
|
1157
1195
|
developerPayload?: string;
|
|
1158
1196
|
}): Promise<void>;
|
|
1159
1197
|
revokeSubscriptionV2(packageName: string, token: string): Promise<void>;
|
|
1160
|
-
refundSubscriptionV2(packageName: string, token: string): Promise<void>;
|
|
1161
1198
|
/** V2 cancel with cancellationType support. (Sep 2025) */
|
|
1162
1199
|
cancelSubscriptionV2(packageName: string, token: string, body?: SubscriptionsV2CancelRequest): Promise<void>;
|
|
1163
1200
|
/** V2 defer for subscriptions with add-ons. (Jan 2026) */
|
|
@@ -1191,6 +1228,7 @@ interface PlayApiClient {
|
|
|
1191
1228
|
testers: {
|
|
1192
1229
|
get(packageName: string, editId: string, track: string): Promise<Testers>;
|
|
1193
1230
|
update(packageName: string, editId: string, track: string, testers: Testers): Promise<Testers>;
|
|
1231
|
+
patch(packageName: string, editId: string, track: string, testers: Partial<Testers>): Promise<Testers>;
|
|
1194
1232
|
};
|
|
1195
1233
|
deobfuscation: {
|
|
1196
1234
|
upload(packageName: string, editId: string, versionCode: number, filePath: string, fileType?: DeobfuscationFileType): Promise<DeobfuscationFile>;
|
|
@@ -1221,11 +1259,11 @@ interface PlayApiClient {
|
|
|
1221
1259
|
create(packageName: string, product: OneTimeProduct, regionsVersion?: string): Promise<OneTimeProduct>;
|
|
1222
1260
|
update(packageName: string, productId: string, product: Partial<OneTimeProduct>, updateMask?: string, regionsVersion?: string, options?: MutationOptions): Promise<OneTimeProduct>;
|
|
1223
1261
|
delete(packageName: string, productId: string): Promise<void>;
|
|
1224
|
-
listOffers(packageName: string, productId: string): Promise<OneTimeOffersListResponse>;
|
|
1225
|
-
getOffer(packageName: string, productId: string, offerId: string): Promise<OneTimeOffer>;
|
|
1226
|
-
createOffer(packageName: string, productId: string, offer: OneTimeOffer, regionsVersion?: string): Promise<OneTimeOffer>;
|
|
1227
|
-
updateOffer(packageName: string, productId: string, offerId: string, offer: Partial<OneTimeOffer>, updateMask?: string, regionsVersion?: string, options?: MutationOptions): Promise<OneTimeOffer>;
|
|
1228
|
-
deleteOffer(packageName: string, productId: string, offerId: string): Promise<void>;
|
|
1262
|
+
listOffers(packageName: string, productId: string, purchaseOptionId?: string): Promise<OneTimeOffersListResponse>;
|
|
1263
|
+
getOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string): Promise<OneTimeOffer>;
|
|
1264
|
+
createOffer(packageName: string, productId: string, purchaseOptionId: string, offer: OneTimeOffer, regionsVersion?: string): Promise<OneTimeOffer>;
|
|
1265
|
+
updateOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string, offer: Partial<OneTimeOffer>, updateMask?: string, regionsVersion?: string, options?: MutationOptions): Promise<OneTimeOffer>;
|
|
1266
|
+
deleteOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string): Promise<void>;
|
|
1229
1267
|
batchGet(packageName: string, productIds: string[]): Promise<OneTimeProduct[]>;
|
|
1230
1268
|
batchUpdate(packageName: string, requests: {
|
|
1231
1269
|
requests: Array<{
|
|
@@ -1237,13 +1275,63 @@ interface PlayApiClient {
|
|
|
1237
1275
|
oneTimeProducts: OneTimeProduct[];
|
|
1238
1276
|
}>;
|
|
1239
1277
|
batchDelete(packageName: string, productIds: string[]): Promise<void>;
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1278
|
+
batchDeletePurchaseOptions(packageName: string, productId: string, requests: Array<{
|
|
1279
|
+
packageName: string;
|
|
1280
|
+
productId: string;
|
|
1281
|
+
purchaseOptionId: string;
|
|
1282
|
+
force?: boolean;
|
|
1283
|
+
latencyTolerance?: string;
|
|
1284
|
+
}>): Promise<void>;
|
|
1285
|
+
batchUpdatePurchaseOptionStates(packageName: string, productId: string, requests: Array<{
|
|
1286
|
+
activatePurchaseOptionRequest?: {
|
|
1287
|
+
packageName: string;
|
|
1288
|
+
productId: string;
|
|
1289
|
+
purchaseOptionId: string;
|
|
1290
|
+
latencyTolerance?: string;
|
|
1291
|
+
};
|
|
1292
|
+
deactivatePurchaseOptionRequest?: {
|
|
1293
|
+
packageName: string;
|
|
1294
|
+
productId: string;
|
|
1295
|
+
purchaseOptionId: string;
|
|
1296
|
+
latencyTolerance?: string;
|
|
1297
|
+
};
|
|
1298
|
+
}>): Promise<{
|
|
1299
|
+
oneTimeProducts: OneTimeProduct[];
|
|
1300
|
+
}>;
|
|
1301
|
+
cancelOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string, latencyTolerance?: string): Promise<OneTimeOffer>;
|
|
1302
|
+
batchGetOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1303
|
+
packageName: string;
|
|
1304
|
+
productId: string;
|
|
1305
|
+
purchaseOptionId: string;
|
|
1306
|
+
offerId: string;
|
|
1307
|
+
}>): Promise<{
|
|
1308
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1309
|
+
}>;
|
|
1310
|
+
batchUpdateOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1311
|
+
oneTimeProductOffer: Partial<OneTimeOffer>;
|
|
1312
|
+
updateMask?: string;
|
|
1313
|
+
regionsVersion?: {
|
|
1314
|
+
version: string;
|
|
1315
|
+
};
|
|
1316
|
+
allowMissing?: boolean;
|
|
1317
|
+
latencyTolerance?: string;
|
|
1318
|
+
}>): Promise<{
|
|
1319
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1320
|
+
}>;
|
|
1321
|
+
batchUpdateOfferStates(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1322
|
+
activateOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1323
|
+
deactivateOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1324
|
+
cancelOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1325
|
+
}>): Promise<{
|
|
1326
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1327
|
+
}>;
|
|
1328
|
+
batchDeleteOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1329
|
+
packageName: string;
|
|
1330
|
+
productId: string;
|
|
1331
|
+
purchaseOptionId: string;
|
|
1332
|
+
offerId: string;
|
|
1333
|
+
latencyTolerance?: string;
|
|
1334
|
+
}>): Promise<void>;
|
|
1247
1335
|
};
|
|
1248
1336
|
internalAppSharing: {
|
|
1249
1337
|
uploadBundle(packageName: string, bundlePath: string): Promise<InternalAppSharingArtifact>;
|
|
@@ -1253,6 +1341,14 @@ interface PlayApiClient {
|
|
|
1253
1341
|
list(packageName: string, versionCode: number): Promise<GeneratedApk[]>;
|
|
1254
1342
|
download(packageName: string, versionCode: number, id: string): Promise<ArrayBuffer>;
|
|
1255
1343
|
};
|
|
1344
|
+
systemApks: {
|
|
1345
|
+
create(packageName: string, versionCode: number, variant: SystemApkVariant): Promise<SystemApkVariant>;
|
|
1346
|
+
list(packageName: string, versionCode: number): Promise<{
|
|
1347
|
+
variants: SystemApkVariant[];
|
|
1348
|
+
}>;
|
|
1349
|
+
get(packageName: string, versionCode: number, variantId: number): Promise<SystemApkVariant>;
|
|
1350
|
+
download(packageName: string, versionCode: number, variantId: number): Promise<ArrayBuffer>;
|
|
1351
|
+
};
|
|
1256
1352
|
}
|
|
1257
1353
|
declare function createApiClient(options: ApiClientOptions): PlayApiClient;
|
|
1258
1354
|
|
|
@@ -1273,11 +1369,11 @@ interface UsersApiClient {
|
|
|
1273
1369
|
pageToken?: string;
|
|
1274
1370
|
pageSize?: number;
|
|
1275
1371
|
}): Promise<UsersListResponse>;
|
|
1276
|
-
get(developerId: string, userId: string): Promise<User>;
|
|
1277
1372
|
create(developerId: string, user: Partial<User>): Promise<User>;
|
|
1278
1373
|
update(developerId: string, userId: string, user: Partial<User>, updateMask?: string): Promise<User>;
|
|
1279
1374
|
delete(developerId: string, userId: string): Promise<void>;
|
|
1280
1375
|
grants: {
|
|
1376
|
+
/** Not in official API reference but may work as an undocumented endpoint. */
|
|
1281
1377
|
list(developerId: string, email: string): Promise<GrantsListResponse>;
|
|
1282
1378
|
create(developerId: string, email: string, grant: Partial<Grant>): Promise<Grant>;
|
|
1283
1379
|
patch(developerId: string, email: string, packageName: string, grant: Partial<Grant>, updateMask?: string): Promise<Grant>;
|
|
@@ -1429,4 +1525,4 @@ declare class PlayApiError extends Error {
|
|
|
1429
1525
|
/** Files below this threshold use simple upload instead. */
|
|
1430
1526
|
declare const RESUMABLE_THRESHOLD: number;
|
|
1431
1527
|
|
|
1432
|
-
export { type Achievement, type Anomaly, type AnomalyDetectionResponse, type ApiClientOptions, type ApiResponse, type ApkInfo, type ApksListResponse, type AppDetails, type AppEdit, type AppRecoveriesListResponse, type AppRecoveryAction, type AppRecoveryTargeting, type BasePlan, type BasePlanMigratePricesRequest, type BatchGetOrdersResponse, type Bundle, type BundleListResponse, type ChangesInReviewBehavior, type ConvertRegionPricesRequest, type ConvertRegionPricesResponse, type ConvertedRegionPrice, type CountryAvailability, type CreateAppRecoveryActionRequest, type CustomApp, type CustomAppsListResponse, type DataSafety, type DataSafetyDataType, type DataSafetyPurpose, type DeobfuscationFile, type DeobfuscationFileType, type DeobfuscationUploadResponse, type DeveloperComment, type DeveloperPermission, type DeviceGroup, type DeviceSelector, type DeviceTier, type DeviceTierConfig, type DeviceTierConfigsListResponse, type EditCommitOptions, type EnterpriseApiClient, type ErrorIssue, type ErrorIssuesResponse, type ErrorReport, type ErrorReportsResponse, type ExpansionFile, type ExpansionFileType, type ExternalTransaction, type ExternalTransactionAmount, type ExternalTransactionRefund, type ExternallyHostedApk, type ExternallyHostedApkResponse, type GameEvent, type GamesApiClient, type GeneratedApk, type GeneratedApksPerVersion, type Grant, type GrantsListResponse, type HttpClient, type Image, type ImageType, type ImageUploadResponse, type ImagesDeleteAllResponse, type ImagesListResponse, type InAppProduct, type InAppProductListing, type InAppProductsBatchDeleteRequest, type InAppProductsBatchGetRequest, type InAppProductsBatchUpdateRequest, type InAppProductsBatchUpdateResponse, type InAppProductsListResponse, type InternalAppSharingArtifact, type Leaderboard, type LeaderboardScore, type Listing, type ListingsListResponse, type MetricRow, type MetricSetQuery, type MetricSetResponse, type Money, type MutationOptions, type OffersListResponse, type OneTimeOffer, type OneTimeOfferRegionalConfig, type OneTimeOffersListResponse, type OneTimeProduct, type OneTimeProductListing, type OneTimeProductsListResponse, type Order, type OrderLineItem, type PagedResponse, type PaginateOptions, type PlayApiClient, PlayApiError, type ProductPurchase, type ProductPurchaseLineItem, type ProductPurchaseV2, type ProductUpdateLatencyTolerance,
|
|
1528
|
+
export { type Achievement, type Anomaly, type AnomalyDetectionResponse, type ApiClientOptions, type ApiResponse, type ApkInfo, type ApksListResponse, type AppDetails, type AppEdit, type AppRecoveriesListResponse, type AppRecoveryAction, type AppRecoveryTargeting, type BasePlan, type BasePlanMigratePricesRequest, type BatchGetOrdersResponse, type BatchMigratePricesRequest, type BatchMigratePricesResponse, type Bundle, type BundleListResponse, type ChangesInReviewBehavior, type ConvertRegionPricesRequest, type ConvertRegionPricesResponse, type ConvertedRegionPrice, type CountryAvailability, type CreateAppRecoveryActionRequest, type CustomApp, type CustomAppsListResponse, type DataSafety, type DataSafetyDataType, type DataSafetyPurpose, type DeobfuscationFile, type DeobfuscationFileType, type DeobfuscationUploadResponse, type DeveloperComment, type DeveloperPermission, type DeviceGroup, type DeviceSelector, type DeviceTier, type DeviceTierConfig, type DeviceTierConfigsListResponse, type EditCommitOptions, type EnterpriseApiClient, type ErrorIssue, type ErrorIssuesResponse, type ErrorReport, type ErrorReportsResponse, type ExpansionFile, type ExpansionFileType, type ExternalTransaction, type ExternalTransactionAmount, type ExternalTransactionRefund, type ExternallyHostedApk, type ExternallyHostedApkResponse, type GameEvent, type GamesApiClient, type GeneratedApk, type GeneratedApksPerVersion, type Grant, type GrantsListResponse, type HttpClient, type Image, type ImageType, type ImageUploadResponse, type ImagesDeleteAllResponse, type ImagesListResponse, type InAppProduct, type InAppProductListing, type InAppProductsBatchDeleteRequest, type InAppProductsBatchGetRequest, type InAppProductsBatchUpdateRequest, type InAppProductsBatchUpdateResponse, type InAppProductsListResponse, type InternalAppSharingArtifact, type Leaderboard, type LeaderboardScore, type Listing, type ListingsListResponse, type MetricRow, type MetricSetQuery, type MetricSetResponse, type Money, type MutationOptions, type OffersListResponse, type OneTimeOffer, type OneTimeOfferRegionalConfig, type OneTimeOffersListResponse, type OneTimeProduct, type OneTimeProductListing, type OneTimeProductsListResponse, type Order, type OrderLineItem, type PagedResponse, type PaginateOptions, type PlayApiClient, PlayApiError, type ProductPurchase, type ProductPurchaseLineItem, type ProductPurchaseV2, type ProductUpdateLatencyTolerance, RATE_LIMIT_BUCKETS, RESUMABLE_THRESHOLD, type RateLimitBucket, type RateLimiter, type RegionalBasePlanConfig, type Release, type ReleaseNote, type ReleaseStatus, type ReleaseSummary, type ReleasesListResponse, type ReportBucket, type ReportType, type ReportingAggregation, type ReportingApiClient, type ReportingDimension, type ReportsListResponse, type ResumableUploadOptions, type RetryLogEntry, type Review, type ReviewComment, type ReviewReplyRequest, type ReviewReplyResponse, type ReviewsListOptions, type ReviewsListResponse, type StatsDimension, type Subscription, type SubscriptionDeferRequest, type SubscriptionDeferResponse, type SubscriptionListing, type SubscriptionOffer, type SubscriptionOfferPhase, type SubscriptionPurchase, type SubscriptionPurchaseLineItem, type SubscriptionPurchaseV2, type SubscriptionsBatchGetRequest, type SubscriptionsBatchGetResponse, type SubscriptionsBatchUpdateRequest, type SubscriptionsBatchUpdateResponse, type SubscriptionsListResponse, type SubscriptionsV2CancelRequest, type SubscriptionsV2DeferRequest, type SubscriptionsV2DeferResponse, type SystemApkDeviceSpec, type SystemApkOptions, type SystemApkVariant, type TaxAndComplianceSettings, type Testers, type TokenPagination, type Track, type TrackListResponse, type UploadProgressEvent, type UploadResponse, type User, type UserComment, type UsersApiClient, type UsersListResponse, type VitalsMetricSet, type VoidedPurchase, type VoidedPurchasesListResponse, createApiClient, createEnterpriseClient, createGamesClient, createHttpClient, createRateLimiter, createReportingClient, createUsersClient, paginate, paginateAll, paginateParallel, resolveBucket };
|