@gpc-cli/core 0.9.27 → 0.9.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/README.md +1 -1
- package/dist/index.d.ts +239 -2
- package/dist/index.js +1265 -378
- package/dist/index.js.map +1 -1
- package/package.json +11 -6
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Business logic and command orchestration for [GPC](https://github.com/yasserstudio/gpc) — the complete CLI for Google Play.
|
|
4
4
|
|
|
5
|
-
Use
|
|
5
|
+
Need to integrate Play operations into your own tools or services? Use `@gpc-cli/core` to call GPC commands programmatically — same logic the CLI uses, no terminal required.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OutputFormat, ResolvedConfig, WebhookConfig } from '@gpc-cli/config';
|
|
2
2
|
import { AuthClient } from '@gpc-cli/auth';
|
|
3
3
|
import { GpcPlugin, PluginManifest, CommandEvent, CommandResult, PluginError, RequestEvent, ResponseEvent, PluginCommand } from '@gpc-cli/plugin-sdk';
|
|
4
|
-
import { PlayApiClient, Track, ExternallyHostedApk, ExternallyHostedApkResponse, Listing, ImageType, CountryAvailability, Image, AppDetails, Review, ReviewReplyResponse, Subscription, SubscriptionOffer, OffersListResponse, BasePlanMigratePricesRequest, InAppProduct, SubscriptionDeferResponse, ProductPurchase, SubscriptionPurchaseV2, VoidedPurchase, UsersApiClient, User, DeveloperPermission, Grant, MetricRow, ReportingDimension, ReportingAggregation,
|
|
4
|
+
import { PlayApiClient, Track, ExternallyHostedApk, ExternallyHostedApkResponse, Listing, ImageType, CountryAvailability, Image, AppDetails, Review, ReviewReplyResponse, Subscription, SubscriptionOffer, OffersListResponse, BasePlanMigratePricesRequest, InAppProduct, SubscriptionDeferResponse, ProductPurchase, SubscriptionPurchaseV2, VoidedPurchase, UsersApiClient, User, DeveloperPermission, Grant, MetricRow, ReportingDimension, ReportingAggregation, VitalsMetricSet, ReportingApiClient, AnomalyDetectionResponse, MetricSetResponse, ErrorIssuesResponse, ConvertRegionPricesResponse, ReportType, StatsDimension, ReportBucket, Testers, AppRecoveryTargeting, AppRecoveryAction, CreateAppRecoveryActionRequest, DataSafety, ExternalTransaction, ExternalTransactionRefund, DeviceTierConfig, OneTimeOffer, OneTimeProduct, OneTimeOffersListResponse, OneTimeProductsListResponse, GamesApiClient, Achievement, GameEvent, Leaderboard, EnterpriseApiClient, CustomApp, GeneratedApk, PurchaseOption, PurchaseOptionsListResponse } from '@gpc-cli/api';
|
|
5
5
|
|
|
6
6
|
declare class GpcError extends Error {
|
|
7
7
|
readonly code: string;
|
|
@@ -33,6 +33,15 @@ declare function formatOutput(data: unknown, format: OutputFormat, redact?: bool
|
|
|
33
33
|
declare const SENSITIVE_KEYS: Set<string>;
|
|
34
34
|
/** Recursively redact sensitive fields from data before output. */
|
|
35
35
|
declare function redactSensitive(data: unknown): unknown;
|
|
36
|
+
/**
|
|
37
|
+
* Auto-pipe `output` to `$PAGER` when:
|
|
38
|
+
* - stdout is a TTY
|
|
39
|
+
* - row count exceeds terminal height
|
|
40
|
+
* - a pager is available in the environment
|
|
41
|
+
*
|
|
42
|
+
* Falls back to `console.log(output)` when pagination is not applicable.
|
|
43
|
+
*/
|
|
44
|
+
declare function maybePaginate(output: string): Promise<void>;
|
|
36
45
|
declare function formatJunit(data: unknown, commandName?: string): string;
|
|
37
46
|
|
|
38
47
|
interface CommandContext {
|
|
@@ -181,6 +190,49 @@ declare function readListingsFromDir(dir: string): Promise<Listing[]>;
|
|
|
181
190
|
declare function writeListingsToDir(dir: string, listings: Listing[]): Promise<void>;
|
|
182
191
|
declare function diffListings(local: Listing[], remote: Listing[]): ListingDiff[];
|
|
183
192
|
|
|
193
|
+
/** Listing text lint and diff utilities. No external deps — pure functions. */
|
|
194
|
+
interface ListingFieldLimits {
|
|
195
|
+
title: number;
|
|
196
|
+
shortDescription: number;
|
|
197
|
+
fullDescription: number;
|
|
198
|
+
video: number;
|
|
199
|
+
}
|
|
200
|
+
declare const DEFAULT_LIMITS: ListingFieldLimits;
|
|
201
|
+
interface FieldLintResult {
|
|
202
|
+
field: string;
|
|
203
|
+
chars: number;
|
|
204
|
+
limit: number;
|
|
205
|
+
pct: number;
|
|
206
|
+
status: "ok" | "warn" | "over";
|
|
207
|
+
}
|
|
208
|
+
interface ListingLintResult {
|
|
209
|
+
language: string;
|
|
210
|
+
fields: FieldLintResult[];
|
|
211
|
+
valid: boolean;
|
|
212
|
+
}
|
|
213
|
+
interface LintableFields {
|
|
214
|
+
title?: string;
|
|
215
|
+
shortDescription?: string;
|
|
216
|
+
fullDescription?: string;
|
|
217
|
+
video?: string;
|
|
218
|
+
[key: string]: string | undefined;
|
|
219
|
+
}
|
|
220
|
+
/** Lint a single listing's fields against character limits. */
|
|
221
|
+
declare function lintListing(language: string, fields: LintableFields, limits?: ListingFieldLimits): ListingLintResult;
|
|
222
|
+
/** Lint multiple listings. */
|
|
223
|
+
declare function lintListings(listings: {
|
|
224
|
+
language: string;
|
|
225
|
+
fields: LintableFields;
|
|
226
|
+
}[], limits?: ListingFieldLimits): ListingLintResult[];
|
|
227
|
+
interface DiffToken {
|
|
228
|
+
text: string;
|
|
229
|
+
type: "equal" | "insert" | "delete";
|
|
230
|
+
}
|
|
231
|
+
/** Compute word-level LCS diff between two strings. */
|
|
232
|
+
declare function wordDiff(before: string, after: string): DiffToken[];
|
|
233
|
+
/** Format a word diff as an inline string with +/- markers. */
|
|
234
|
+
declare function formatWordDiff(diff: DiffToken[]): string;
|
|
235
|
+
|
|
184
236
|
interface ListingsResult {
|
|
185
237
|
listings: Listing[];
|
|
186
238
|
}
|
|
@@ -195,8 +247,23 @@ declare function getListings(client: PlayApiClient, packageName: string, languag
|
|
|
195
247
|
declare function updateListing(client: PlayApiClient, packageName: string, language: string, data: Partial<Omit<Listing, "language">>): Promise<Listing>;
|
|
196
248
|
declare function deleteListing(client: PlayApiClient, packageName: string, language: string): Promise<void>;
|
|
197
249
|
declare function pullListings(client: PlayApiClient, packageName: string, dir: string): Promise<ListingsResult>;
|
|
250
|
+
/** Lint local listing directory against Play Store character limits (no API call). */
|
|
251
|
+
declare function lintLocalListings(dir: string): Promise<ListingLintResult[]>;
|
|
252
|
+
/** Analyze live Play Store listings for character limit compliance (requires API). */
|
|
253
|
+
declare function analyzeRemoteListings(client: PlayApiClient, packageName: string, options?: {
|
|
254
|
+
expectedLocales?: string[];
|
|
255
|
+
}): Promise<{
|
|
256
|
+
results: ListingLintResult[];
|
|
257
|
+
missingLocales?: string[];
|
|
258
|
+
}>;
|
|
259
|
+
/** Enhanced diff: word-level inline diff for fullDescription, optional language filter. */
|
|
260
|
+
declare function diffListingsEnhanced(client: PlayApiClient, packageName: string, dir: string, options?: {
|
|
261
|
+
lang?: string;
|
|
262
|
+
wordLevel?: boolean;
|
|
263
|
+
}): Promise<ListingDiff[]>;
|
|
198
264
|
declare function pushListings(client: PlayApiClient, packageName: string, dir: string, options?: {
|
|
199
265
|
dryRun?: boolean;
|
|
266
|
+
force?: boolean;
|
|
200
267
|
}): Promise<PushResult | DryRunResult>;
|
|
201
268
|
declare function listImages(client: PlayApiClient, packageName: string, language: string, imageType: ImageType): Promise<Image[]>;
|
|
202
269
|
declare function uploadImage(client: PlayApiClient, packageName: string, language: string, imageType: ImageType, filePath: string): Promise<Image>;
|
|
@@ -317,6 +384,29 @@ interface DryRunPublishResult {
|
|
|
317
384
|
}
|
|
318
385
|
declare function publish(client: PlayApiClient, packageName: string, filePath: string, options: PublishOptions): Promise<PublishResult | DryRunPublishResult>;
|
|
319
386
|
|
|
387
|
+
interface TopicCluster {
|
|
388
|
+
topic: string;
|
|
389
|
+
count: number;
|
|
390
|
+
avgScore: number;
|
|
391
|
+
}
|
|
392
|
+
interface KeywordFrequency {
|
|
393
|
+
word: string;
|
|
394
|
+
count: number;
|
|
395
|
+
}
|
|
396
|
+
interface ReviewAnalysis {
|
|
397
|
+
totalReviews: number;
|
|
398
|
+
avgRating: number;
|
|
399
|
+
sentiment: {
|
|
400
|
+
positive: number;
|
|
401
|
+
negative: number;
|
|
402
|
+
neutral: number;
|
|
403
|
+
avgScore: number;
|
|
404
|
+
};
|
|
405
|
+
topics: TopicCluster[];
|
|
406
|
+
keywords: KeywordFrequency[];
|
|
407
|
+
ratingDistribution: Record<number, number>;
|
|
408
|
+
}
|
|
409
|
+
|
|
320
410
|
interface ReviewsFilterOptions {
|
|
321
411
|
stars?: number;
|
|
322
412
|
language?: string;
|
|
@@ -334,6 +424,9 @@ declare function getReview(client: PlayApiClient, packageName: string, reviewId:
|
|
|
334
424
|
declare function replyToReview(client: PlayApiClient, packageName: string, reviewId: string, replyText: string): Promise<ReviewReplyResponse>;
|
|
335
425
|
declare function exportReviews(client: PlayApiClient, packageName: string, options?: ReviewExportOptions): Promise<string>;
|
|
336
426
|
|
|
427
|
+
/** Fetch reviews and run local sentiment/topic/keyword analysis. */
|
|
428
|
+
declare function analyzeReviews(client: PlayApiClient, packageName: string, options?: ReviewsFilterOptions): Promise<ReviewAnalysis>;
|
|
429
|
+
|
|
337
430
|
interface ListSubscriptionsOptions {
|
|
338
431
|
pageToken?: string;
|
|
339
432
|
pageSize?: number;
|
|
@@ -365,6 +458,23 @@ interface SubscriptionDiff {
|
|
|
365
458
|
}
|
|
366
459
|
declare function diffSubscription(client: PlayApiClient, packageName: string, productId: string, localData: Subscription): Promise<SubscriptionDiff[]>;
|
|
367
460
|
declare function deactivateOffer(client: PlayApiClient, packageName: string, productId: string, basePlanId: string, offerId: string): Promise<SubscriptionOffer>;
|
|
461
|
+
interface SubscriptionAnalytics {
|
|
462
|
+
totalSubscriptions: number;
|
|
463
|
+
activeCount: number;
|
|
464
|
+
activeBasePlans: number;
|
|
465
|
+
trialBasePlans: number;
|
|
466
|
+
pausedBasePlans: number;
|
|
467
|
+
canceledBasePlans: number;
|
|
468
|
+
offerCount: number;
|
|
469
|
+
byProductId: Array<{
|
|
470
|
+
productId: string;
|
|
471
|
+
state: string;
|
|
472
|
+
basePlanCount: number;
|
|
473
|
+
offerCount: number;
|
|
474
|
+
}>;
|
|
475
|
+
}
|
|
476
|
+
/** Aggregate subscription catalog analytics from the Play API. */
|
|
477
|
+
declare function getSubscriptionAnalytics(client: PlayApiClient, packageName: string): Promise<SubscriptionAnalytics>;
|
|
368
478
|
|
|
369
479
|
interface ListIapOptions {
|
|
370
480
|
token?: string;
|
|
@@ -404,6 +514,7 @@ declare function getSubscriptionPurchase(client: PlayApiClient, packageName: str
|
|
|
404
514
|
declare function cancelSubscriptionPurchase(client: PlayApiClient, packageName: string, subscriptionId: string, token: string): Promise<void>;
|
|
405
515
|
declare function deferSubscriptionPurchase(client: PlayApiClient, packageName: string, subscriptionId: string, token: string, desiredExpiry: string): Promise<SubscriptionDeferResponse>;
|
|
406
516
|
declare function revokeSubscriptionPurchase(client: PlayApiClient, packageName: string, token: string): Promise<void>;
|
|
517
|
+
declare function refundSubscriptionV2(client: PlayApiClient, packageName: string, token: string): Promise<void>;
|
|
407
518
|
|
|
408
519
|
interface ListVoidedOptions {
|
|
409
520
|
startTime?: string;
|
|
@@ -463,6 +574,8 @@ declare function getVitalsStartup(reporting: ReportingApiClient, packageName: st
|
|
|
463
574
|
declare function getVitalsRendering(reporting: ReportingApiClient, packageName: string, options?: VitalsQueryOptions): Promise<MetricSetResponse>;
|
|
464
575
|
declare function getVitalsBattery(reporting: ReportingApiClient, packageName: string, options?: VitalsQueryOptions): Promise<MetricSetResponse>;
|
|
465
576
|
declare function getVitalsMemory(reporting: ReportingApiClient, packageName: string, options?: VitalsQueryOptions): Promise<MetricSetResponse>;
|
|
577
|
+
/** LMK-specific query: enforces DAILY aggregation as required by the API. */
|
|
578
|
+
declare function getVitalsLmk(reporting: ReportingApiClient, packageName: string, options?: VitalsQueryOptions): Promise<MetricSetResponse>;
|
|
466
579
|
declare function getVitalsAnomalies(reporting: ReportingApiClient, packageName: string): Promise<AnomalyDetectionResponse>;
|
|
467
580
|
declare function searchVitalsErrors(reporting: ReportingApiClient, packageName: string, options?: {
|
|
468
581
|
filter?: string;
|
|
@@ -477,6 +590,39 @@ interface VitalsTrendComparison {
|
|
|
477
590
|
}
|
|
478
591
|
declare function compareVitalsTrend(reporting: ReportingApiClient, packageName: string, metricSet: VitalsMetricSet, days?: number): Promise<VitalsTrendComparison>;
|
|
479
592
|
declare function checkThreshold(value: number | undefined, threshold: number): ThresholdResult;
|
|
593
|
+
interface VersionVitalsRow {
|
|
594
|
+
versionCode: string;
|
|
595
|
+
crashRate?: number;
|
|
596
|
+
anrRate?: number;
|
|
597
|
+
slowStartRate?: number;
|
|
598
|
+
slowRenderingRate?: number;
|
|
599
|
+
}
|
|
600
|
+
interface VersionVitalsComparison {
|
|
601
|
+
v1: VersionVitalsRow;
|
|
602
|
+
v2: VersionVitalsRow;
|
|
603
|
+
regressions: string[];
|
|
604
|
+
}
|
|
605
|
+
/** Compare vitals side-by-side for two version codes. */
|
|
606
|
+
declare function compareVersionVitals(reporting: ReportingApiClient, packageName: string, v1: string, v2: string, options?: {
|
|
607
|
+
days?: number;
|
|
608
|
+
}): Promise<VersionVitalsComparison>;
|
|
609
|
+
interface WatchVitalsOptions {
|
|
610
|
+
/** Polling interval in milliseconds. Defaults to 5 minutes. */
|
|
611
|
+
intervalMs?: number;
|
|
612
|
+
/** Threshold value; breach triggers halt. */
|
|
613
|
+
threshold: number;
|
|
614
|
+
/** Metric set to monitor. Defaults to crashRateMetricSet. */
|
|
615
|
+
metricSet?: VitalsMetricSet;
|
|
616
|
+
/** Called when threshold is breached. Implement halt logic here. */
|
|
617
|
+
onHalt?: (value: number) => Promise<void>;
|
|
618
|
+
/** Called on each poll result (value may be undefined if no data). */
|
|
619
|
+
onPoll?: (value: number | undefined, breached: boolean) => void;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Poll vitals on an interval; invoke onHalt if threshold is breached.
|
|
623
|
+
* Returns a stop function — call it to cancel the watch loop.
|
|
624
|
+
*/
|
|
625
|
+
declare function watchVitalsWithAutoHalt(reporting: ReportingApiClient, packageName: string, options: WatchVitalsOptions): () => void;
|
|
480
626
|
|
|
481
627
|
interface ImageValidationResult {
|
|
482
628
|
valid: boolean;
|
|
@@ -499,6 +645,11 @@ declare function parseMonth(monthStr: string): ParsedMonth;
|
|
|
499
645
|
declare function listReports(_client: PlayApiClient, _packageName: string, reportType: ReportType, _year: number, _month: number): Promise<ReportBucket[]>;
|
|
500
646
|
declare function downloadReport(_client: PlayApiClient, _packageName: string, reportType: ReportType, _year: number, _month: number): Promise<string>;
|
|
501
647
|
|
|
648
|
+
declare function listGrants(client: UsersApiClient, developerId: string, email: string): Promise<Grant[]>;
|
|
649
|
+
declare function createGrant(client: UsersApiClient, developerId: string, email: string, packageName: string, permissions: string[]): Promise<Grant>;
|
|
650
|
+
declare function updateGrant(client: UsersApiClient, developerId: string, email: string, packageName: string, permissions: string[]): Promise<Grant>;
|
|
651
|
+
declare function deleteGrant(client: UsersApiClient, developerId: string, email: string, packageName: string): Promise<void>;
|
|
652
|
+
|
|
502
653
|
declare function listTesters(client: PlayApiClient, packageName: string, track: string): Promise<Testers>;
|
|
503
654
|
declare function addTesters(client: PlayApiClient, packageName: string, track: string, groupEmails: string[]): Promise<Testers>;
|
|
504
655
|
declare function removeTesters(client: PlayApiClient, packageName: string, track: string, groupEmails: string[]): Promise<Testers>;
|
|
@@ -565,6 +716,74 @@ interface Spinner {
|
|
|
565
716
|
}
|
|
566
717
|
declare function createSpinner(message: string): Spinner;
|
|
567
718
|
|
|
719
|
+
interface TrainStage {
|
|
720
|
+
track: string;
|
|
721
|
+
rollout: number;
|
|
722
|
+
/** ISO 8601 duration or human string like "2d", "7d" */
|
|
723
|
+
after?: string;
|
|
724
|
+
}
|
|
725
|
+
interface TrainGates {
|
|
726
|
+
crashes?: {
|
|
727
|
+
max: number;
|
|
728
|
+
};
|
|
729
|
+
anr?: {
|
|
730
|
+
max: number;
|
|
731
|
+
};
|
|
732
|
+
}
|
|
733
|
+
interface TrainConfig {
|
|
734
|
+
stages: TrainStage[];
|
|
735
|
+
gates?: TrainGates;
|
|
736
|
+
}
|
|
737
|
+
type TrainStatus = "idle" | "running" | "paused" | "completed" | "aborted";
|
|
738
|
+
interface TrainState {
|
|
739
|
+
packageName: string;
|
|
740
|
+
status: TrainStatus;
|
|
741
|
+
currentStage: number;
|
|
742
|
+
startedAt?: string;
|
|
743
|
+
updatedAt: string;
|
|
744
|
+
stages: Array<TrainStage & {
|
|
745
|
+
executedAt?: string;
|
|
746
|
+
scheduledAt?: string;
|
|
747
|
+
}>;
|
|
748
|
+
gates?: TrainGates;
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
interface StartTrainOptions {
|
|
752
|
+
force?: boolean;
|
|
753
|
+
}
|
|
754
|
+
/** Start or resume a release train for a package. */
|
|
755
|
+
declare function startTrain(apiClient: PlayApiClient, packageName: string, config: TrainConfig, options?: StartTrainOptions): Promise<TrainState>;
|
|
756
|
+
/** Get current train status. */
|
|
757
|
+
declare function getTrainStatus(packageName: string): Promise<TrainState | null>;
|
|
758
|
+
/** Pause a running train. */
|
|
759
|
+
declare function pauseTrain(packageName: string): Promise<TrainState | null>;
|
|
760
|
+
/** Abort a train and clear state. */
|
|
761
|
+
declare function abortTrain(packageName: string): Promise<void>;
|
|
762
|
+
/** Advance the train to the next eligible stage. */
|
|
763
|
+
declare function advanceTrain(apiClient: PlayApiClient, reportingClient: ReportingApiClient, packageName: string): Promise<TrainState | null>;
|
|
764
|
+
|
|
765
|
+
declare function listLeaderboards(client: GamesApiClient, packageName: string): Promise<Leaderboard[]>;
|
|
766
|
+
declare function listAchievements(client: GamesApiClient, packageName: string): Promise<Achievement[]>;
|
|
767
|
+
declare function listEvents(client: GamesApiClient, packageName: string): Promise<GameEvent[]>;
|
|
768
|
+
|
|
769
|
+
declare function listEnterpriseApps(client: EnterpriseApiClient, organizationId: string): Promise<CustomApp[]>;
|
|
770
|
+
declare function createEnterpriseApp(client: EnterpriseApiClient, organizationId: string, app: Partial<CustomApp>): Promise<CustomApp>;
|
|
771
|
+
|
|
772
|
+
interface QuotaUsage {
|
|
773
|
+
dailyCallsUsed: number;
|
|
774
|
+
dailyCallsLimit: number;
|
|
775
|
+
dailyCallsRemaining: number;
|
|
776
|
+
minuteCallsUsed: number;
|
|
777
|
+
minuteCallsLimit: number;
|
|
778
|
+
minuteCallsRemaining: number;
|
|
779
|
+
topCommands: Array<{
|
|
780
|
+
command: string;
|
|
781
|
+
count: number;
|
|
782
|
+
}>;
|
|
783
|
+
}
|
|
784
|
+
/** Compute quota usage from the local audit log. */
|
|
785
|
+
declare function getQuotaUsage(): Promise<QuotaUsage>;
|
|
786
|
+
|
|
568
787
|
/**
|
|
569
788
|
* Normalize and resolve a user-supplied path.
|
|
570
789
|
* Prevents path traversal by normalizing `.` and `..` components.
|
|
@@ -733,6 +952,24 @@ interface BundleComparison {
|
|
|
733
952
|
}
|
|
734
953
|
declare function analyzeBundle(filePath: string): Promise<BundleAnalysis>;
|
|
735
954
|
declare function compareBundles(before: BundleAnalysis, after: BundleAnalysis): BundleComparison;
|
|
955
|
+
/** Return the top N largest files by compressed size. */
|
|
956
|
+
declare function topFiles(analysis: BundleAnalysis, n?: number): BundleEntry[];
|
|
957
|
+
interface BundleSizeConfig {
|
|
958
|
+
maxTotalCompressed?: number;
|
|
959
|
+
modules?: Record<string, {
|
|
960
|
+
maxCompressed: number;
|
|
961
|
+
}>;
|
|
962
|
+
}
|
|
963
|
+
interface BundleSizeCheckResult {
|
|
964
|
+
passed: boolean;
|
|
965
|
+
violations: Array<{
|
|
966
|
+
subject: string;
|
|
967
|
+
actual: number;
|
|
968
|
+
max: number;
|
|
969
|
+
}>;
|
|
970
|
+
}
|
|
971
|
+
/** Check bundle analysis against .bundlesize.json thresholds. */
|
|
972
|
+
declare function checkBundleSize(analysis: BundleAnalysis, configPath?: string): Promise<BundleSizeCheckResult>;
|
|
736
973
|
|
|
737
974
|
interface StatusVitalMetric {
|
|
738
975
|
value: number | undefined;
|
|
@@ -823,4 +1060,4 @@ declare function trackBreachState(packageName: string, isBreaching: boolean): Pr
|
|
|
823
1060
|
declare function sendNotification(title: string, body: string): void;
|
|
824
1061
|
declare function statusHasBreach(status: AppStatus): boolean;
|
|
825
1062
|
|
|
826
|
-
export { ApiError, type AppInfo, type AppStatus, type AuditEntry, type BatchSyncResult, type BundleAnalysis, type BundleComparison, type BundleEntry, type CommandContext, ConfigError, type DiscoverPluginsOptions, type DryRunPublishResult, type DryRunResult, type DryRunUploadResult, type ExportImagesOptions, type ExportImagesSummary, type FastlaneDetection, type FastlaneLane, type FileValidationResult, GOOGLE_PLAY_LANGUAGES, type GetAppStatusOptions, type GitNotesOptions, type GitReleaseNotes, GpcError, type ImageValidationResult, type InternalSharingUploadResult, type ListIapOptions, type ListSubscriptionsOptions, type ListUsersOptions, type ListVoidedOptions, type ListingDiff, type ListingsResult, type LoadedPlugin, type MigrationResult, NetworkError, type OneTimeProductDiff, PERMISSION_PROPAGATION_WARNING, type ParsedMonth, PluginManager, type PublishOptions, type PublishResult, type PushResult, type ReleaseDiff, type ReleaseNotesValidation, type ReleaseStatusResult, type ReviewExportOptions, type ReviewsFilterOptions, SENSITIVE_ARG_KEYS, SENSITIVE_KEYS, type ScaffoldOptions, type ScaffoldResult, type Spinner, type StatusDiff, type StatusRelease, type StatusReviews, type StatusVitalMetric, type SubscriptionDiff, type SyncResult, type ThresholdResult, type UploadResult, type ValidateCheck, type ValidateOptions, type ValidateResult, type VitalsOverview, type VitalsQueryOptions, type VitalsTrendComparison, type WatchOptions, type WebhookPayload, acknowledgeProductPurchase, activateBasePlan, activateOffer, activatePurchaseOption, addRecoveryTargeting, addTesters, analyzeBundle, batchSyncInAppProducts, cancelRecoveryAction, cancelSubscriptionPurchase, checkThreshold, clearAuditLog, compareBundles, compareVitalsTrend, computeStatusDiff, consumeProductPurchase, convertRegionPrices, createAuditEntry, createDeviceTier, createExternalTransaction, createInAppProduct, createOffer, createOneTimeOffer, createOneTimeProduct, createPurchaseOption, createRecoveryAction, createSpinner, createSubscription, createTrack, deactivateBasePlan, deactivateOffer, deactivatePurchaseOption, deferSubscriptionPurchase, deleteBasePlan, deleteImage, deleteInAppProduct, deleteListing, deleteOffer, deleteOneTimeOffer, deleteOneTimeProduct, deleteSubscription, deployRecoveryAction, detectFastlane, detectOutputFormat, diffListings, diffListingsCommand, diffOneTimeProduct, diffReleases, diffSubscription, discoverPlugins, downloadGeneratedApk, downloadReport, exportDataSafety, exportImages, exportReviews, formatCustomPayload, formatDiscordPayload, formatJunit, formatOutput, formatSlackPayload, formatStatusDiff, formatStatusSummary, formatStatusTable, generateMigrationPlan, generateNotesFromGit, getAppInfo, getAppStatus, getCountryAvailability, getDataSafety, getDeviceTier, getExternalTransaction, getInAppProduct, getListings, getOffer, getOneTimeOffer, getOneTimeProduct, getProductPurchase, getPurchaseOption, getReleasesStatus, getReview, getSubscription, getSubscriptionPurchase, getUser, getVitalsAnomalies, getVitalsAnr, getVitalsBattery, getVitalsCrashes, getVitalsMemory, getVitalsOverview, getVitalsRendering, getVitalsStartup, importDataSafety, importTestersFromCsv, initAudit, inviteUser, isFinancialReportType, isStatsReportType, isValidBcp47, isValidReportType, isValidStatsDimension, listAuditEvents, listDeviceTiers, listGeneratedApks, listImages, listInAppProducts, listOffers, listOneTimeOffers, listOneTimeProducts, listPurchaseOptions, listRecoveryActions, listReports, listReviews, listSubscriptions, listTesters, listTracks, listUsers, listVoidedPurchases, loadStatusCache, migratePrices, parseAppfile, parseFastfile, parseGrantArg, parseMonth, promoteRelease, publish, pullListings, pushListings, readListingsFromDir, readReleaseNotesFromDir, redactAuditArgs, redactSensitive, refundExternalTransaction, refundOrder, removeTesters, removeUser, replyToReview, revokeSubscriptionPurchase, runWatchLoop, safePath, safePathWithin, saveStatusCache, scaffoldPlugin, searchAuditEvents, searchVitalsErrors, sendNotification, sendWebhook, sortResults, statusHasBreach, syncInAppProducts, trackBreachState, updateAppDetails, updateDataSafety, updateInAppProduct, updateListing, updateOffer, updateOneTimeOffer, updateOneTimeProduct, updateRollout, updateSubscription, updateTrackConfig, updateUser, uploadExternallyHosted, uploadImage, uploadInternalSharing, uploadRelease, validateImage, validateLanguageCode, validatePackageName, validatePreSubmission, validateReleaseNotes, validateSku, validateTrackName, validateUploadFile, validateVersionCode, writeAuditLog, writeListingsToDir, writeMigrationOutput };
|
|
1063
|
+
export { ApiError, type AppInfo, type AppStatus, type AuditEntry, type BatchSyncResult, type BundleAnalysis, type BundleComparison, type BundleEntry, type BundleSizeCheckResult, type BundleSizeConfig, type CommandContext, ConfigError, DEFAULT_LIMITS, type DiffToken, type DiscoverPluginsOptions, type DryRunPublishResult, type DryRunResult, type DryRunUploadResult, type ExportImagesOptions, type ExportImagesSummary, type FastlaneDetection, type FastlaneLane, type FieldLintResult, type FileValidationResult, GOOGLE_PLAY_LANGUAGES, type GetAppStatusOptions, type GitNotesOptions, type GitReleaseNotes, GpcError, type ImageValidationResult, type InternalSharingUploadResult, type ListIapOptions, type ListSubscriptionsOptions, type ListUsersOptions, type ListVoidedOptions, type ListingDiff, type ListingFieldLimits, type ListingLintResult, type ListingsResult, type LoadedPlugin, type MigrationResult, NetworkError, type OneTimeProductDiff, PERMISSION_PROPAGATION_WARNING, type ParsedMonth, PluginManager, type PublishOptions, type PublishResult, type PushResult, type QuotaUsage, type ReleaseDiff, type ReleaseNotesValidation, type ReleaseStatusResult, type ReviewAnalysis, type ReviewExportOptions, type ReviewsFilterOptions, SENSITIVE_ARG_KEYS, SENSITIVE_KEYS, type ScaffoldOptions, type ScaffoldResult, type Spinner, type StatusDiff, type StatusRelease, type StatusReviews, type StatusVitalMetric, type SubscriptionAnalytics, type SubscriptionDiff, type SyncResult, type ThresholdResult, type TrainConfig, type TrainState, type UploadResult, type ValidateCheck, type ValidateOptions, type ValidateResult, type VersionVitalsComparison, type VersionVitalsRow, type VitalsOverview, type VitalsQueryOptions, type VitalsTrendComparison, type WatchOptions, type WatchVitalsOptions, type WebhookPayload, abortTrain, acknowledgeProductPurchase, activateBasePlan, activateOffer, activatePurchaseOption, addRecoveryTargeting, addTesters, advanceTrain, analyzeBundle, analyzeRemoteListings, analyzeReviews, batchSyncInAppProducts, cancelRecoveryAction, cancelSubscriptionPurchase, checkBundleSize, checkThreshold, clearAuditLog, compareBundles, compareVersionVitals, compareVitalsTrend, computeStatusDiff, consumeProductPurchase, convertRegionPrices, createAuditEntry, createDeviceTier, createEnterpriseApp, createExternalTransaction, createGrant, createInAppProduct, createOffer, createOneTimeOffer, createOneTimeProduct, createPurchaseOption, createRecoveryAction, createSpinner, createSubscription, createTrack, deactivateBasePlan, deactivateOffer, deactivatePurchaseOption, deferSubscriptionPurchase, deleteBasePlan, deleteGrant, deleteImage, deleteInAppProduct, deleteListing, deleteOffer, deleteOneTimeOffer, deleteOneTimeProduct, deleteSubscription, deployRecoveryAction, detectFastlane, detectOutputFormat, diffListings, diffListingsCommand, diffListingsEnhanced, diffOneTimeProduct, diffReleases, diffSubscription, discoverPlugins, downloadGeneratedApk, downloadReport, exportDataSafety, exportImages, exportReviews, formatCustomPayload, formatDiscordPayload, formatJunit, formatOutput, formatSlackPayload, formatStatusDiff, formatStatusSummary, formatStatusTable, formatWordDiff, generateMigrationPlan, generateNotesFromGit, getAppInfo, getAppStatus, getCountryAvailability, getDataSafety, getDeviceTier, getExternalTransaction, getInAppProduct, getListings, getOffer, getOneTimeOffer, getOneTimeProduct, getProductPurchase, getPurchaseOption, getQuotaUsage, getReleasesStatus, getReview, getSubscription, getSubscriptionAnalytics, getSubscriptionPurchase, getTrainStatus, getUser, getVitalsAnomalies, getVitalsAnr, getVitalsBattery, getVitalsCrashes, getVitalsLmk, getVitalsMemory, getVitalsOverview, getVitalsRendering, getVitalsStartup, importDataSafety, importTestersFromCsv, initAudit, inviteUser, isFinancialReportType, isStatsReportType, isValidBcp47, isValidReportType, isValidStatsDimension, lintListing, lintListings, lintLocalListings, listAchievements, listAuditEvents, listDeviceTiers, listEnterpriseApps, listEvents, listGeneratedApks, listGrants, listImages, listInAppProducts, listLeaderboards, listOffers, listOneTimeOffers, listOneTimeProducts, listPurchaseOptions, listRecoveryActions, listReports, listReviews, listSubscriptions, listTesters, listTracks, listUsers, listVoidedPurchases, loadStatusCache, maybePaginate, migratePrices, parseAppfile, parseFastfile, parseGrantArg, parseMonth, pauseTrain, promoteRelease, publish, pullListings, pushListings, readListingsFromDir, readReleaseNotesFromDir, redactAuditArgs, redactSensitive, refundExternalTransaction, refundOrder, refundSubscriptionV2, removeTesters, removeUser, replyToReview, revokeSubscriptionPurchase, runWatchLoop, safePath, safePathWithin, saveStatusCache, scaffoldPlugin, searchAuditEvents, searchVitalsErrors, sendNotification, sendWebhook, sortResults, startTrain, statusHasBreach, syncInAppProducts, topFiles, trackBreachState, updateAppDetails, updateDataSafety, updateGrant, updateInAppProduct, updateListing, updateOffer, updateOneTimeOffer, updateOneTimeProduct, updateRollout, updateSubscription, updateTrackConfig, updateUser, uploadExternallyHosted, uploadImage, uploadInternalSharing, uploadRelease, validateImage, validateLanguageCode, validatePackageName, validatePreSubmission, validateReleaseNotes, validateSku, validateTrackName, validateUploadFile, validateVersionCode, watchVitalsWithAutoHalt, wordDiff, writeAuditLog, writeListingsToDir, writeMigrationOutput };
|