@gpc-cli/api 1.0.28 → 1.0.30
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 +168 -41
- package/dist/index.js +146 -65
- 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;
|
|
@@ -458,8 +479,6 @@ interface SubscriptionPurchaseV2 {
|
|
|
458
479
|
subscriptionState: string;
|
|
459
480
|
acknowledgementState?: string;
|
|
460
481
|
linkedPurchaseToken?: string;
|
|
461
|
-
/** Current offer phase: free trial, introductory price, proration, or base plan price. (Jan 2026) */
|
|
462
|
-
offerPhase?: string;
|
|
463
482
|
/** Resubscription context when purchase originates from Play Store. (Nov 2025) */
|
|
464
483
|
outOfAppPurchaseContext?: {
|
|
465
484
|
externalTransactionToken?: string;
|
|
@@ -529,8 +548,13 @@ interface SubscriptionPurchaseLineItem {
|
|
|
529
548
|
offerId?: string;
|
|
530
549
|
};
|
|
531
550
|
};
|
|
532
|
-
/** Current offer phase
|
|
533
|
-
offerPhase?:
|
|
551
|
+
/** Current offer phase (union field — exactly one set). (Jan 2026) */
|
|
552
|
+
offerPhase?: {
|
|
553
|
+
basePrice?: Record<string, unknown>;
|
|
554
|
+
freeTrial?: Record<string, unknown>;
|
|
555
|
+
introductoryPrice?: Record<string, unknown>;
|
|
556
|
+
proratedPeriod?: Record<string, unknown>;
|
|
557
|
+
};
|
|
534
558
|
}
|
|
535
559
|
interface SubscriptionPurchase {
|
|
536
560
|
startTimeMillis: string;
|
|
@@ -638,9 +662,39 @@ interface ProductPurchaseLineItem {
|
|
|
638
662
|
offerTags?: string[];
|
|
639
663
|
};
|
|
640
664
|
}
|
|
665
|
+
/**
|
|
666
|
+
* Request body for purchases.subscriptions.acknowledge.
|
|
667
|
+
* externalAccountId is used to associate a resubscription purchase with a
|
|
668
|
+
* user identifier. (Nov 2025)
|
|
669
|
+
*/
|
|
670
|
+
interface AcknowledgeSubscriptionRequest {
|
|
671
|
+
developerPayload?: string;
|
|
672
|
+
externalAccountId?: string;
|
|
673
|
+
}
|
|
641
674
|
interface SubscriptionsV2CancelRequest {
|
|
642
675
|
cancellationType?: string;
|
|
643
676
|
}
|
|
677
|
+
/**
|
|
678
|
+
* Request body for purchases.subscriptionsv2.revoke.
|
|
679
|
+
* revocationContext is a union — exactly one of fullRefund, proratedRefund,
|
|
680
|
+
* or itemBasedRefund should be set. itemBasedRefund targets a single add-on
|
|
681
|
+
* product by productId. (May 2025)
|
|
682
|
+
*/
|
|
683
|
+
interface RevokeSubscriptionV2Request {
|
|
684
|
+
revocationContext?: {
|
|
685
|
+
fullRefund?: Record<string, never>;
|
|
686
|
+
proratedRefund?: Record<string, never>;
|
|
687
|
+
itemBasedRefund?: {
|
|
688
|
+
productId: string;
|
|
689
|
+
};
|
|
690
|
+
};
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Request body for purchases.subscriptionsv2.defer.
|
|
694
|
+
* For subscriptions with add-ons, the billing date of all line items is
|
|
695
|
+
* deferred together server-side — no per-line-item field is required in
|
|
696
|
+
* the request. (Jan 2026)
|
|
697
|
+
*/
|
|
644
698
|
interface SubscriptionsV2DeferRequest {
|
|
645
699
|
deferralInfo: {
|
|
646
700
|
desiredExpiryTime: string;
|
|
@@ -888,14 +942,26 @@ interface TaxAndComplianceSettings {
|
|
|
888
942
|
interface OneTimeOffer {
|
|
889
943
|
packageName: string;
|
|
890
944
|
productId: string;
|
|
945
|
+
purchaseOptionId: string;
|
|
891
946
|
offerId: string;
|
|
892
|
-
|
|
947
|
+
state?: "DRAFT" | "ACTIVE" | "CANCELLED" | "INACTIVE";
|
|
948
|
+
regionalPricingAndAvailabilityConfigs?: Record<string, OneTimeOfferRegionalConfig>;
|
|
949
|
+
/** @deprecated Use regionalPricingAndAvailabilityConfigs instead */
|
|
950
|
+
regionalConfigs?: Record<string, OneTimeOfferRegionalConfig>;
|
|
893
951
|
otherRegionsConfig?: {
|
|
894
952
|
usdPrice: {
|
|
895
953
|
units: string;
|
|
896
954
|
nanos?: number;
|
|
897
955
|
};
|
|
898
956
|
};
|
|
957
|
+
offerTags?: Array<{
|
|
958
|
+
tag: string;
|
|
959
|
+
}>;
|
|
960
|
+
regionsVersion?: {
|
|
961
|
+
version: string;
|
|
962
|
+
};
|
|
963
|
+
preOrderOffer?: Record<string, unknown>;
|
|
964
|
+
discountedOffer?: Record<string, unknown>;
|
|
899
965
|
}
|
|
900
966
|
interface OneTimeOfferRegionalConfig {
|
|
901
967
|
price: {
|
|
@@ -910,25 +976,25 @@ interface OneTimeProductsListResponse {
|
|
|
910
976
|
nextPageToken?: string;
|
|
911
977
|
}
|
|
912
978
|
interface OneTimeOffersListResponse {
|
|
913
|
-
|
|
979
|
+
oneTimeProductOffers?: OneTimeOffer[];
|
|
980
|
+
/** @deprecated Use oneTimeProductOffers */
|
|
981
|
+
oneTimeOffers?: OneTimeOffer[];
|
|
914
982
|
nextPageToken?: string;
|
|
915
983
|
}
|
|
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
|
-
}>;
|
|
984
|
+
interface SystemApkDeviceSpec {
|
|
985
|
+
supportedAbis?: string[];
|
|
986
|
+
supportedLocales?: string[];
|
|
987
|
+
screenDensity?: number;
|
|
928
988
|
}
|
|
929
|
-
interface
|
|
930
|
-
|
|
931
|
-
|
|
989
|
+
interface SystemApkOptions {
|
|
990
|
+
uncompressedNativeLibraries?: boolean;
|
|
991
|
+
uncompressedDexFiles?: boolean;
|
|
992
|
+
rotated?: boolean;
|
|
993
|
+
}
|
|
994
|
+
interface SystemApkVariant {
|
|
995
|
+
variantId?: number;
|
|
996
|
+
deviceSpec?: SystemApkDeviceSpec;
|
|
997
|
+
options?: SystemApkOptions;
|
|
932
998
|
}
|
|
933
999
|
interface InAppProductsBatchUpdateRequest {
|
|
934
1000
|
requests: {
|
|
@@ -972,7 +1038,7 @@ interface ReleaseSummary {
|
|
|
972
1038
|
activeArtifacts?: {
|
|
973
1039
|
versionCode: number;
|
|
974
1040
|
}[];
|
|
975
|
-
releaseLifecycleState?:
|
|
1041
|
+
releaseLifecycleState?: "RELEASE_LIFECYCLE_STATE_UNSPECIFIED" | "DRAFT" | "NOT_SENT_FOR_REVIEW" | "IN_REVIEW" | "APPROVED_NOT_PUBLISHED" | "NOT_APPROVED" | "PUBLISHED";
|
|
976
1042
|
}
|
|
977
1043
|
interface ReleasesListResponse {
|
|
978
1044
|
releases: ReleaseSummary[];
|
|
@@ -1085,6 +1151,7 @@ interface PlayApiClient {
|
|
|
1085
1151
|
deactivateBasePlan(packageName: string, productId: string, basePlanId: string): Promise<Subscription>;
|
|
1086
1152
|
deleteBasePlan(packageName: string, productId: string, basePlanId: string): Promise<void>;
|
|
1087
1153
|
migratePrices(packageName: string, productId: string, basePlanId: string, body: BasePlanMigratePricesRequest): Promise<Subscription>;
|
|
1154
|
+
batchMigratePrices(packageName: string, productId: string, body: BatchMigratePricesRequest): Promise<BatchMigratePricesResponse>;
|
|
1088
1155
|
listOffers(packageName: string, productId: string, basePlanId: string): Promise<OffersListResponse>;
|
|
1089
1156
|
getOffer(packageName: string, productId: string, basePlanId: string, offerId: string): Promise<SubscriptionOffer>;
|
|
1090
1157
|
createOffer(packageName: string, productId: string, basePlanId: string, data: SubscriptionOffer, offerId?: string, regionsVersion?: string): Promise<SubscriptionOffer>;
|
|
@@ -1138,6 +1205,10 @@ interface PlayApiClient {
|
|
|
1138
1205
|
autoConvertMissingPrices?: boolean;
|
|
1139
1206
|
allowMissing?: boolean;
|
|
1140
1207
|
}): Promise<InAppProduct>;
|
|
1208
|
+
patch(packageName: string, sku: string, data: Partial<InAppProduct>, options?: {
|
|
1209
|
+
autoConvertMissingPrices?: boolean;
|
|
1210
|
+
latencyTolerance?: string;
|
|
1211
|
+
}): Promise<InAppProduct>;
|
|
1141
1212
|
delete(packageName: string, sku: string): Promise<void>;
|
|
1142
1213
|
batchUpdate(packageName: string, requests: InAppProductsBatchUpdateRequest): Promise<InAppProductsBatchUpdateResponse>;
|
|
1143
1214
|
batchGet(packageName: string, skus: string[]): Promise<InAppProduct[]>;
|
|
@@ -1153,11 +1224,8 @@ interface PlayApiClient {
|
|
|
1153
1224
|
getSubscriptionV1(packageName: string, subscriptionId: string, token: string): Promise<SubscriptionPurchase>;
|
|
1154
1225
|
cancelSubscription(packageName: string, subscriptionId: string, token: string): Promise<void>;
|
|
1155
1226
|
deferSubscription(packageName: string, subscriptionId: string, token: string, body: SubscriptionDeferRequest): Promise<SubscriptionDeferResponse>;
|
|
1156
|
-
acknowledgeSubscription(packageName: string, subscriptionId: string, token: string, body?:
|
|
1157
|
-
|
|
1158
|
-
}): Promise<void>;
|
|
1159
|
-
revokeSubscriptionV2(packageName: string, token: string): Promise<void>;
|
|
1160
|
-
refundSubscriptionV2(packageName: string, token: string): Promise<void>;
|
|
1227
|
+
acknowledgeSubscription(packageName: string, subscriptionId: string, token: string, body?: AcknowledgeSubscriptionRequest): Promise<void>;
|
|
1228
|
+
revokeSubscriptionV2(packageName: string, token: string, body?: RevokeSubscriptionV2Request): Promise<void>;
|
|
1161
1229
|
/** V2 cancel with cancellationType support. (Sep 2025) */
|
|
1162
1230
|
cancelSubscriptionV2(packageName: string, token: string, body?: SubscriptionsV2CancelRequest): Promise<void>;
|
|
1163
1231
|
/** V2 defer for subscriptions with add-ons. (Jan 2026) */
|
|
@@ -1191,6 +1259,7 @@ interface PlayApiClient {
|
|
|
1191
1259
|
testers: {
|
|
1192
1260
|
get(packageName: string, editId: string, track: string): Promise<Testers>;
|
|
1193
1261
|
update(packageName: string, editId: string, track: string, testers: Testers): Promise<Testers>;
|
|
1262
|
+
patch(packageName: string, editId: string, track: string, testers: Partial<Testers>): Promise<Testers>;
|
|
1194
1263
|
};
|
|
1195
1264
|
deobfuscation: {
|
|
1196
1265
|
upload(packageName: string, editId: string, versionCode: number, filePath: string, fileType?: DeobfuscationFileType): Promise<DeobfuscationFile>;
|
|
@@ -1221,11 +1290,11 @@ interface PlayApiClient {
|
|
|
1221
1290
|
create(packageName: string, product: OneTimeProduct, regionsVersion?: string): Promise<OneTimeProduct>;
|
|
1222
1291
|
update(packageName: string, productId: string, product: Partial<OneTimeProduct>, updateMask?: string, regionsVersion?: string, options?: MutationOptions): Promise<OneTimeProduct>;
|
|
1223
1292
|
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>;
|
|
1293
|
+
listOffers(packageName: string, productId: string, purchaseOptionId?: string): Promise<OneTimeOffersListResponse>;
|
|
1294
|
+
getOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string): Promise<OneTimeOffer>;
|
|
1295
|
+
createOffer(packageName: string, productId: string, purchaseOptionId: string, offer: OneTimeOffer, regionsVersion?: string): Promise<OneTimeOffer>;
|
|
1296
|
+
updateOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string, offer: Partial<OneTimeOffer>, updateMask?: string, regionsVersion?: string, options?: MutationOptions): Promise<OneTimeOffer>;
|
|
1297
|
+
deleteOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string): Promise<void>;
|
|
1229
1298
|
batchGet(packageName: string, productIds: string[]): Promise<OneTimeProduct[]>;
|
|
1230
1299
|
batchUpdate(packageName: string, requests: {
|
|
1231
1300
|
requests: Array<{
|
|
@@ -1237,13 +1306,63 @@ interface PlayApiClient {
|
|
|
1237
1306
|
oneTimeProducts: OneTimeProduct[];
|
|
1238
1307
|
}>;
|
|
1239
1308
|
batchDelete(packageName: string, productIds: string[]): Promise<void>;
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1309
|
+
batchDeletePurchaseOptions(packageName: string, productId: string, requests: Array<{
|
|
1310
|
+
packageName: string;
|
|
1311
|
+
productId: string;
|
|
1312
|
+
purchaseOptionId: string;
|
|
1313
|
+
force?: boolean;
|
|
1314
|
+
latencyTolerance?: string;
|
|
1315
|
+
}>): Promise<void>;
|
|
1316
|
+
batchUpdatePurchaseOptionStates(packageName: string, productId: string, requests: Array<{
|
|
1317
|
+
activatePurchaseOptionRequest?: {
|
|
1318
|
+
packageName: string;
|
|
1319
|
+
productId: string;
|
|
1320
|
+
purchaseOptionId: string;
|
|
1321
|
+
latencyTolerance?: string;
|
|
1322
|
+
};
|
|
1323
|
+
deactivatePurchaseOptionRequest?: {
|
|
1324
|
+
packageName: string;
|
|
1325
|
+
productId: string;
|
|
1326
|
+
purchaseOptionId: string;
|
|
1327
|
+
latencyTolerance?: string;
|
|
1328
|
+
};
|
|
1329
|
+
}>): Promise<{
|
|
1330
|
+
oneTimeProducts: OneTimeProduct[];
|
|
1331
|
+
}>;
|
|
1332
|
+
cancelOffer(packageName: string, productId: string, purchaseOptionId: string, offerId: string, latencyTolerance?: string): Promise<OneTimeOffer>;
|
|
1333
|
+
batchGetOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1334
|
+
packageName: string;
|
|
1335
|
+
productId: string;
|
|
1336
|
+
purchaseOptionId: string;
|
|
1337
|
+
offerId: string;
|
|
1338
|
+
}>): Promise<{
|
|
1339
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1340
|
+
}>;
|
|
1341
|
+
batchUpdateOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1342
|
+
oneTimeProductOffer: Partial<OneTimeOffer>;
|
|
1343
|
+
updateMask?: string;
|
|
1344
|
+
regionsVersion?: {
|
|
1345
|
+
version: string;
|
|
1346
|
+
};
|
|
1347
|
+
allowMissing?: boolean;
|
|
1348
|
+
latencyTolerance?: string;
|
|
1349
|
+
}>): Promise<{
|
|
1350
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1351
|
+
}>;
|
|
1352
|
+
batchUpdateOfferStates(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1353
|
+
activateOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1354
|
+
deactivateOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1355
|
+
cancelOneTimeProductOfferRequest?: Record<string, unknown>;
|
|
1356
|
+
}>): Promise<{
|
|
1357
|
+
oneTimeProductOffers: OneTimeOffer[];
|
|
1358
|
+
}>;
|
|
1359
|
+
batchDeleteOffers(packageName: string, productId: string, purchaseOptionId: string, requests: Array<{
|
|
1360
|
+
packageName: string;
|
|
1361
|
+
productId: string;
|
|
1362
|
+
purchaseOptionId: string;
|
|
1363
|
+
offerId: string;
|
|
1364
|
+
latencyTolerance?: string;
|
|
1365
|
+
}>): Promise<void>;
|
|
1247
1366
|
};
|
|
1248
1367
|
internalAppSharing: {
|
|
1249
1368
|
uploadBundle(packageName: string, bundlePath: string): Promise<InternalAppSharingArtifact>;
|
|
@@ -1253,6 +1372,14 @@ interface PlayApiClient {
|
|
|
1253
1372
|
list(packageName: string, versionCode: number): Promise<GeneratedApk[]>;
|
|
1254
1373
|
download(packageName: string, versionCode: number, id: string): Promise<ArrayBuffer>;
|
|
1255
1374
|
};
|
|
1375
|
+
systemApks: {
|
|
1376
|
+
create(packageName: string, versionCode: number, variant: SystemApkVariant): Promise<SystemApkVariant>;
|
|
1377
|
+
list(packageName: string, versionCode: number): Promise<{
|
|
1378
|
+
variants: SystemApkVariant[];
|
|
1379
|
+
}>;
|
|
1380
|
+
get(packageName: string, versionCode: number, variantId: number): Promise<SystemApkVariant>;
|
|
1381
|
+
download(packageName: string, versionCode: number, variantId: number): Promise<ArrayBuffer>;
|
|
1382
|
+
};
|
|
1256
1383
|
}
|
|
1257
1384
|
declare function createApiClient(options: ApiClientOptions): PlayApiClient;
|
|
1258
1385
|
|
|
@@ -1273,11 +1400,11 @@ interface UsersApiClient {
|
|
|
1273
1400
|
pageToken?: string;
|
|
1274
1401
|
pageSize?: number;
|
|
1275
1402
|
}): Promise<UsersListResponse>;
|
|
1276
|
-
get(developerId: string, userId: string): Promise<User>;
|
|
1277
1403
|
create(developerId: string, user: Partial<User>): Promise<User>;
|
|
1278
1404
|
update(developerId: string, userId: string, user: Partial<User>, updateMask?: string): Promise<User>;
|
|
1279
1405
|
delete(developerId: string, userId: string): Promise<void>;
|
|
1280
1406
|
grants: {
|
|
1407
|
+
/** Not in official API reference but may work as an undocumented endpoint. */
|
|
1281
1408
|
list(developerId: string, email: string): Promise<GrantsListResponse>;
|
|
1282
1409
|
create(developerId: string, email: string, grant: Partial<Grant>): Promise<Grant>;
|
|
1283
1410
|
patch(developerId: string, email: string, packageName: string, grant: Partial<Grant>, updateMask?: string): Promise<Grant>;
|
|
@@ -1429,4 +1556,4 @@ declare class PlayApiError extends Error {
|
|
|
1429
1556
|
/** Files below this threshold use simple upload instead. */
|
|
1430
1557
|
declare const RESUMABLE_THRESHOLD: number;
|
|
1431
1558
|
|
|
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,
|
|
1559
|
+
export { type Achievement, type AcknowledgeSubscriptionRequest, 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 RevokeSubscriptionV2Request, 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 };
|