@hot-updater/android-helper 1.2.0-rc.7 → 1.2.0-rc.8
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/dist/index.cjs +118 -694
- package/dist/index.d.cts +44 -114
- package/dist/index.d.mts +44 -114
- package/dist/index.mjs +117 -690
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -13,15 +13,19 @@ declare const enrichNativeBuildAndroidScheme: ({ schemeConfig, hotUpdaterSchemeN
|
|
|
13
13
|
}) => Promise<EnrichedNativeBuildAndroidScheme>;
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/buildAndroid.d.ts
|
|
16
|
-
declare const buildAndroid: ({ schemeConfig, minBundleId, credentials }: {
|
|
16
|
+
declare const buildAndroid: ({ schemeConfig, minBundleId, credentials, logHeader }: {
|
|
17
17
|
schemeConfig: EnrichedNativeBuildAndroidScheme;
|
|
18
18
|
/** The MIN_BUNDLE_ID the build compiles in. */
|
|
19
19
|
minBundleId?: string;
|
|
20
20
|
/** Resolves the scheme's `signing` keystore, when it signs with one. */
|
|
21
21
|
credentials?: Pick<CredentialResolver, "resolve">;
|
|
22
|
+
/** Lines the build log starts with, such as the native build key. */
|
|
23
|
+
logHeader?: string[];
|
|
22
24
|
}) => Promise<{
|
|
23
25
|
buildDirectory: string;
|
|
24
26
|
buildArtifactPath: string;
|
|
27
|
+
/** The build log, or null without one. */
|
|
28
|
+
logFilePath: string | null;
|
|
25
29
|
/** What the built artifact reports, or undefined without aapt2. */
|
|
26
30
|
builtApp?: {
|
|
27
31
|
appVersion: string | null;
|
|
@@ -42,6 +46,44 @@ declare class PlayVersionCodeUsedError extends Error {
|
|
|
42
46
|
readonly name = "PlayVersionCodeUsedError";
|
|
43
47
|
constructor(options?: ErrorOptions);
|
|
44
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Play Console's page that invites `email` as a user. `_` stands for the
|
|
51
|
+
* developer account the browser is signed in to, so no ID is needed.
|
|
52
|
+
*/
|
|
53
|
+
declare const playConsoleInviteUrl: (email: string) => string;
|
|
54
|
+
/**
|
|
55
|
+
* Whether a service account reaches an app in Google Play:
|
|
56
|
+
* - `ready`: it opened an edit of the app;
|
|
57
|
+
* - `denied`: Google Play refused it (401/403), so it needs a Play Console
|
|
58
|
+
* invite;
|
|
59
|
+
* - `not-found`: Google Play has no such app it can see (404), as before
|
|
60
|
+
* the app's first `.aab` is uploaded in Play Console;
|
|
61
|
+
* - `refused`: Google's token endpoint refused the key itself, such as a
|
|
62
|
+
* deleted key, with Google's reason.
|
|
63
|
+
*/
|
|
64
|
+
type PlayAccess = {
|
|
65
|
+
readonly status: "ready";
|
|
66
|
+
} | {
|
|
67
|
+
readonly status: "denied";
|
|
68
|
+
readonly email: string;
|
|
69
|
+
} | {
|
|
70
|
+
readonly status: "not-found";
|
|
71
|
+
readonly email: string;
|
|
72
|
+
} | {
|
|
73
|
+
readonly status: "refused";
|
|
74
|
+
readonly email: string;
|
|
75
|
+
readonly reason: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Checks once whether the service account's key reaches `packageName`: it
|
|
79
|
+
* opens an edit of the app and deletes it again, which changes nothing.
|
|
80
|
+
* Throws only for what says nothing about access, such as a network error.
|
|
81
|
+
*/
|
|
82
|
+
declare const checkPlayAccess: ({ serviceAccount: { json }, packageName, fetch }: {
|
|
83
|
+
serviceAccount: Credentials["play-service-account"];
|
|
84
|
+
packageName: string;
|
|
85
|
+
fetch?: typeof globalThis.fetch;
|
|
86
|
+
}) => Promise<PlayAccess>;
|
|
45
87
|
/**
|
|
46
88
|
* Whether Google Play's internal testing track already releases the
|
|
47
89
|
* `.aab`'s version code, as when a reused native build was uploaded
|
|
@@ -54,16 +96,6 @@ declare const findPlayInternalRelease: ({ versionCode, packageName, serviceAccou
|
|
|
54
96
|
serviceAccount: Credentials["play-service-account"];
|
|
55
97
|
fetch?: typeof globalThis.fetch;
|
|
56
98
|
}) => Promise<boolean>;
|
|
57
|
-
/**
|
|
58
|
-
* Whether Google Play releases any version of `packageName` on any track,
|
|
59
|
-
* which means Play has the app's upload key. It reads the tracks in an edit
|
|
60
|
-
* it then deletes, changing nothing.
|
|
61
|
-
*/
|
|
62
|
-
declare const hasPlayReleases: ({ packageName, serviceAccount: { json }, fetch }: {
|
|
63
|
-
packageName: string;
|
|
64
|
-
serviceAccount: Credentials["play-service-account"];
|
|
65
|
-
fetch?: typeof globalThis.fetch;
|
|
66
|
-
}) => Promise<boolean>;
|
|
67
99
|
/**
|
|
68
100
|
* Throws when the `.aab` is signed with the Android debug keystore, which
|
|
69
101
|
* Google Play refuses: a release build type left on `signingConfigs.debug`,
|
|
@@ -153,106 +185,4 @@ declare const readBuiltVersionCode: ({ artifactPath, androidProjectPath }: {
|
|
|
153
185
|
androidProjectPath: string;
|
|
154
186
|
}) => Promise<number | undefined>;
|
|
155
187
|
//#endregion
|
|
156
|
-
|
|
157
|
-
/** What stopped Hot Updater from issuing the Play service account key. */
|
|
158
|
-
type PlayServiceAccountErrorCode =
|
|
159
|
-
/** The gcloud CLI, which signs in to Google, is not installed. */
|
|
160
|
-
"gcloud-not-installed" |
|
|
161
|
-
/** gcloud ended with no Google Account to use: none signed in, or the sign-in was cancelled. */
|
|
162
|
-
"gcloud-not-signed-in" |
|
|
163
|
-
/** The Google Account may not create a Google Cloud project. */
|
|
164
|
-
"project-create-denied" |
|
|
165
|
-
/** The Google Account has no Google Cloud project quota left. */
|
|
166
|
-
"project-quota" |
|
|
167
|
-
/** The Google Account may not enable APIs or create service accounts in the project. */
|
|
168
|
-
"project-access-denied" |
|
|
169
|
-
/** Google is still enabling an API, or it is disabled in another project. */
|
|
170
|
-
"api-not-enabled" |
|
|
171
|
-
/** An organization policy (`iam.disableServiceAccountKeyCreation`) forbids keys. */
|
|
172
|
-
"key-creation-disabled" |
|
|
173
|
-
/** The key never reached the app: the Play Console invite, or the app's first upload, is missing. */
|
|
174
|
-
"play-access-pending";
|
|
175
|
-
/** A named failure of `issuePlayServiceAccount`, with what to do in its message. */
|
|
176
|
-
declare class PlayServiceAccountError extends Error {
|
|
177
|
-
readonly code: PlayServiceAccountErrorCode;
|
|
178
|
-
constructor(code: PlayServiceAccountErrorCode, message: string, options?: {
|
|
179
|
-
cause?: unknown;
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
/** The service account Hot Updater creates, `hot-updater-play@<project>.iam.gserviceaccount.com`. */
|
|
183
|
-
declare const PLAY_SERVICE_ACCOUNT_ID = "hot-updater-play";
|
|
184
|
-
//#endregion
|
|
185
|
-
//#region src/playServiceAccount.d.ts
|
|
186
|
-
/** A Google Cloud project the signed-in account can use. */
|
|
187
|
-
interface GoogleCloudProject {
|
|
188
|
-
readonly projectId: string;
|
|
189
|
-
readonly displayName?: string;
|
|
190
|
-
/** Whether the Google Play Android Developer API is enabled in it. */
|
|
191
|
-
readonly playApiEnabled: boolean;
|
|
192
|
-
}
|
|
193
|
-
/** A Google Account the gcloud CLI holds credentials for. */
|
|
194
|
-
interface GoogleAccount {
|
|
195
|
-
readonly email: string;
|
|
196
|
-
/** Whether it is gcloud's active account. */
|
|
197
|
-
readonly active: boolean;
|
|
198
|
-
}
|
|
199
|
-
interface IssuePlayServiceAccountRequest {
|
|
200
|
-
/**
|
|
201
|
-
* Asks for the app's package name in Google Play, which the service
|
|
202
|
-
* account may release: after the sign-in's own tool is found, before
|
|
203
|
-
* anything else.
|
|
204
|
-
*/
|
|
205
|
-
readonly askPackageName: () => Promise<string>;
|
|
206
|
-
/**
|
|
207
|
-
* Sees the Google Accounts gcloud already holds, the active one first,
|
|
208
|
-
* after the package name, and returns the one to use, or null to sign in
|
|
209
|
-
* with another. Never called when gcloud holds none: it signs in.
|
|
210
|
-
*/
|
|
211
|
-
readonly chooseGoogleAccount: (accounts: readonly GoogleAccount[]) => Promise<string | null>;
|
|
212
|
-
/**
|
|
213
|
-
* Sees Play Console's page that invites the service account `email`, to
|
|
214
|
-
* print it and open it in a browser; the issuer then waits for the invite.
|
|
215
|
-
*/
|
|
216
|
-
readonly onInvite: (url: string, email: string) => Promise<void> | void;
|
|
217
|
-
/**
|
|
218
|
-
* Sees the account's projects when no one of them is the obvious home of
|
|
219
|
-
* the service account, the only one with the Google Play Developer API,
|
|
220
|
-
* and returns the project ID to create it in, or null for a new project.
|
|
221
|
-
* Never called for an account without projects: a new one is created.
|
|
222
|
-
*/
|
|
223
|
-
readonly chooseProject: (projects: readonly GoogleCloudProject[]) => Promise<string | null>;
|
|
224
|
-
/** Reports each step, such as "Creating the service account". */
|
|
225
|
-
readonly onStep?: (message: string) => void;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* A Play service account's JSON key, just created, which already reaches
|
|
229
|
-
* the app in Google Play. `revoke` deletes the key with gcloud's sign-in.
|
|
230
|
-
*/
|
|
231
|
-
interface IssuedPlayServiceAccount {
|
|
232
|
-
/** The JSON key file, as Google Cloud downloads it. */
|
|
233
|
-
readonly json: string;
|
|
234
|
-
/** The service account's email, the Play Console user it releases as. */
|
|
235
|
-
readonly email: string;
|
|
236
|
-
readonly projectId: string;
|
|
237
|
-
/** The key's ID, as Google Cloud lists it under the service account's keys. */
|
|
238
|
-
readonly keyId: string;
|
|
239
|
-
/** Deletes the key with gcloud's sign-in; whether Google Cloud did. */
|
|
240
|
-
revoke(): Promise<boolean>;
|
|
241
|
-
/** Releases what the issue held; gcloud keeps its own sign-in. */
|
|
242
|
-
dispose(): Promise<void>;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Issues a service account key that releases the app to Google Play, with
|
|
246
|
-
* the gcloud CLI's Google sign-in: the caller never sees the password, and
|
|
247
|
-
* the developer invites the service account in Play Console once.
|
|
248
|
-
*/
|
|
249
|
-
type IssuePlayServiceAccount = (request: IssuePlayServiceAccountRequest) => Promise<IssuedPlayServiceAccount>;
|
|
250
|
-
/**
|
|
251
|
-
* Hot Updater's issuer, the one place that picks how it is done: gcloud's
|
|
252
|
-
* sign-in, then the Cloud Resource Manager, Service Usage, IAM, and Play
|
|
253
|
-
* Developer APIs. Another implementation of `IssuePlayServiceAccount`
|
|
254
|
-
* replaces it here without touching its callers.
|
|
255
|
-
*/
|
|
256
|
-
declare const issuePlayServiceAccount: IssuePlayServiceAccount;
|
|
257
|
-
//#endregion
|
|
258
|
-
export { type EnrichedNativeBuildAndroidScheme, type GoogleAccount, type GoogleCloudProject, type IssuePlayServiceAccount, type IssuePlayServiceAccountRequest, type IssuedPlayServiceAccount, PLAY_SERVICE_ACCOUNT_ID, PlayServiceAccountError, type PlayServiceAccountErrorCode, PlayVersionCodeUsedError, type UploadToPlayResult, assertPlaySigned, buildAndroid, enrichNativeBuildAndroidScheme, extractBuiltInBundle, findPlayInternalRelease, hasPlayReleases, issuePlayServiceAccount, readBuiltApp, readBuiltPackageName, readBuiltVersionCode, resolvePlayUploadServiceAccount, uploadToPlay };
|
|
188
|
+
export { type EnrichedNativeBuildAndroidScheme, type PlayAccess, PlayVersionCodeUsedError, type UploadToPlayResult, assertPlaySigned, buildAndroid, checkPlayAccess, enrichNativeBuildAndroidScheme, extractBuiltInBundle, findPlayInternalRelease, playConsoleInviteUrl, readBuiltApp, readBuiltPackageName, readBuiltVersionCode, resolvePlayUploadServiceAccount, uploadToPlay };
|
package/dist/index.d.mts
CHANGED
|
@@ -14,15 +14,19 @@ declare const enrichNativeBuildAndroidScheme: ({ schemeConfig, hotUpdaterSchemeN
|
|
|
14
14
|
}) => Promise<EnrichedNativeBuildAndroidScheme>;
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/buildAndroid.d.ts
|
|
17
|
-
declare const buildAndroid: ({ schemeConfig, minBundleId, credentials }: {
|
|
17
|
+
declare const buildAndroid: ({ schemeConfig, minBundleId, credentials, logHeader }: {
|
|
18
18
|
schemeConfig: EnrichedNativeBuildAndroidScheme;
|
|
19
19
|
/** The MIN_BUNDLE_ID the build compiles in. */
|
|
20
20
|
minBundleId?: string;
|
|
21
21
|
/** Resolves the scheme's `signing` keystore, when it signs with one. */
|
|
22
22
|
credentials?: Pick<CredentialResolver, "resolve">;
|
|
23
|
+
/** Lines the build log starts with, such as the native build key. */
|
|
24
|
+
logHeader?: string[];
|
|
23
25
|
}) => Promise<{
|
|
24
26
|
buildDirectory: string;
|
|
25
27
|
buildArtifactPath: string;
|
|
28
|
+
/** The build log, or null without one. */
|
|
29
|
+
logFilePath: string | null;
|
|
26
30
|
/** What the built artifact reports, or undefined without aapt2. */
|
|
27
31
|
builtApp?: {
|
|
28
32
|
appVersion: string | null;
|
|
@@ -43,6 +47,44 @@ declare class PlayVersionCodeUsedError extends Error {
|
|
|
43
47
|
readonly name = "PlayVersionCodeUsedError";
|
|
44
48
|
constructor(options?: ErrorOptions);
|
|
45
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Play Console's page that invites `email` as a user. `_` stands for the
|
|
52
|
+
* developer account the browser is signed in to, so no ID is needed.
|
|
53
|
+
*/
|
|
54
|
+
declare const playConsoleInviteUrl: (email: string) => string;
|
|
55
|
+
/**
|
|
56
|
+
* Whether a service account reaches an app in Google Play:
|
|
57
|
+
* - `ready`: it opened an edit of the app;
|
|
58
|
+
* - `denied`: Google Play refused it (401/403), so it needs a Play Console
|
|
59
|
+
* invite;
|
|
60
|
+
* - `not-found`: Google Play has no such app it can see (404), as before
|
|
61
|
+
* the app's first `.aab` is uploaded in Play Console;
|
|
62
|
+
* - `refused`: Google's token endpoint refused the key itself, such as a
|
|
63
|
+
* deleted key, with Google's reason.
|
|
64
|
+
*/
|
|
65
|
+
type PlayAccess = {
|
|
66
|
+
readonly status: "ready";
|
|
67
|
+
} | {
|
|
68
|
+
readonly status: "denied";
|
|
69
|
+
readonly email: string;
|
|
70
|
+
} | {
|
|
71
|
+
readonly status: "not-found";
|
|
72
|
+
readonly email: string;
|
|
73
|
+
} | {
|
|
74
|
+
readonly status: "refused";
|
|
75
|
+
readonly email: string;
|
|
76
|
+
readonly reason: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Checks once whether the service account's key reaches `packageName`: it
|
|
80
|
+
* opens an edit of the app and deletes it again, which changes nothing.
|
|
81
|
+
* Throws only for what says nothing about access, such as a network error.
|
|
82
|
+
*/
|
|
83
|
+
declare const checkPlayAccess: ({ serviceAccount: { json }, packageName, fetch }: {
|
|
84
|
+
serviceAccount: Credentials["play-service-account"];
|
|
85
|
+
packageName: string;
|
|
86
|
+
fetch?: typeof globalThis.fetch;
|
|
87
|
+
}) => Promise<PlayAccess>;
|
|
46
88
|
/**
|
|
47
89
|
* Whether Google Play's internal testing track already releases the
|
|
48
90
|
* `.aab`'s version code, as when a reused native build was uploaded
|
|
@@ -55,16 +97,6 @@ declare const findPlayInternalRelease: ({ versionCode, packageName, serviceAccou
|
|
|
55
97
|
serviceAccount: Credentials["play-service-account"];
|
|
56
98
|
fetch?: typeof globalThis.fetch;
|
|
57
99
|
}) => Promise<boolean>;
|
|
58
|
-
/**
|
|
59
|
-
* Whether Google Play releases any version of `packageName` on any track,
|
|
60
|
-
* which means Play has the app's upload key. It reads the tracks in an edit
|
|
61
|
-
* it then deletes, changing nothing.
|
|
62
|
-
*/
|
|
63
|
-
declare const hasPlayReleases: ({ packageName, serviceAccount: { json }, fetch }: {
|
|
64
|
-
packageName: string;
|
|
65
|
-
serviceAccount: Credentials["play-service-account"];
|
|
66
|
-
fetch?: typeof globalThis.fetch;
|
|
67
|
-
}) => Promise<boolean>;
|
|
68
100
|
/**
|
|
69
101
|
* Throws when the `.aab` is signed with the Android debug keystore, which
|
|
70
102
|
* Google Play refuses: a release build type left on `signingConfigs.debug`,
|
|
@@ -154,106 +186,4 @@ declare const readBuiltVersionCode: ({ artifactPath, androidProjectPath }: {
|
|
|
154
186
|
androidProjectPath: string;
|
|
155
187
|
}) => Promise<number | undefined>;
|
|
156
188
|
//#endregion
|
|
157
|
-
|
|
158
|
-
/** What stopped Hot Updater from issuing the Play service account key. */
|
|
159
|
-
type PlayServiceAccountErrorCode =
|
|
160
|
-
/** The gcloud CLI, which signs in to Google, is not installed. */
|
|
161
|
-
"gcloud-not-installed" |
|
|
162
|
-
/** gcloud ended with no Google Account to use: none signed in, or the sign-in was cancelled. */
|
|
163
|
-
"gcloud-not-signed-in" |
|
|
164
|
-
/** The Google Account may not create a Google Cloud project. */
|
|
165
|
-
"project-create-denied" |
|
|
166
|
-
/** The Google Account has no Google Cloud project quota left. */
|
|
167
|
-
"project-quota" |
|
|
168
|
-
/** The Google Account may not enable APIs or create service accounts in the project. */
|
|
169
|
-
"project-access-denied" |
|
|
170
|
-
/** Google is still enabling an API, or it is disabled in another project. */
|
|
171
|
-
"api-not-enabled" |
|
|
172
|
-
/** An organization policy (`iam.disableServiceAccountKeyCreation`) forbids keys. */
|
|
173
|
-
"key-creation-disabled" |
|
|
174
|
-
/** The key never reached the app: the Play Console invite, or the app's first upload, is missing. */
|
|
175
|
-
"play-access-pending";
|
|
176
|
-
/** A named failure of `issuePlayServiceAccount`, with what to do in its message. */
|
|
177
|
-
declare class PlayServiceAccountError extends Error {
|
|
178
|
-
readonly code: PlayServiceAccountErrorCode;
|
|
179
|
-
constructor(code: PlayServiceAccountErrorCode, message: string, options?: {
|
|
180
|
-
cause?: unknown;
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
/** The service account Hot Updater creates, `hot-updater-play@<project>.iam.gserviceaccount.com`. */
|
|
184
|
-
declare const PLAY_SERVICE_ACCOUNT_ID = "hot-updater-play";
|
|
185
|
-
//#endregion
|
|
186
|
-
//#region src/playServiceAccount.d.ts
|
|
187
|
-
/** A Google Cloud project the signed-in account can use. */
|
|
188
|
-
interface GoogleCloudProject {
|
|
189
|
-
readonly projectId: string;
|
|
190
|
-
readonly displayName?: string;
|
|
191
|
-
/** Whether the Google Play Android Developer API is enabled in it. */
|
|
192
|
-
readonly playApiEnabled: boolean;
|
|
193
|
-
}
|
|
194
|
-
/** A Google Account the gcloud CLI holds credentials for. */
|
|
195
|
-
interface GoogleAccount {
|
|
196
|
-
readonly email: string;
|
|
197
|
-
/** Whether it is gcloud's active account. */
|
|
198
|
-
readonly active: boolean;
|
|
199
|
-
}
|
|
200
|
-
interface IssuePlayServiceAccountRequest {
|
|
201
|
-
/**
|
|
202
|
-
* Asks for the app's package name in Google Play, which the service
|
|
203
|
-
* account may release: after the sign-in's own tool is found, before
|
|
204
|
-
* anything else.
|
|
205
|
-
*/
|
|
206
|
-
readonly askPackageName: () => Promise<string>;
|
|
207
|
-
/**
|
|
208
|
-
* Sees the Google Accounts gcloud already holds, the active one first,
|
|
209
|
-
* after the package name, and returns the one to use, or null to sign in
|
|
210
|
-
* with another. Never called when gcloud holds none: it signs in.
|
|
211
|
-
*/
|
|
212
|
-
readonly chooseGoogleAccount: (accounts: readonly GoogleAccount[]) => Promise<string | null>;
|
|
213
|
-
/**
|
|
214
|
-
* Sees Play Console's page that invites the service account `email`, to
|
|
215
|
-
* print it and open it in a browser; the issuer then waits for the invite.
|
|
216
|
-
*/
|
|
217
|
-
readonly onInvite: (url: string, email: string) => Promise<void> | void;
|
|
218
|
-
/**
|
|
219
|
-
* Sees the account's projects when no one of them is the obvious home of
|
|
220
|
-
* the service account, the only one with the Google Play Developer API,
|
|
221
|
-
* and returns the project ID to create it in, or null for a new project.
|
|
222
|
-
* Never called for an account without projects: a new one is created.
|
|
223
|
-
*/
|
|
224
|
-
readonly chooseProject: (projects: readonly GoogleCloudProject[]) => Promise<string | null>;
|
|
225
|
-
/** Reports each step, such as "Creating the service account". */
|
|
226
|
-
readonly onStep?: (message: string) => void;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* A Play service account's JSON key, just created, which already reaches
|
|
230
|
-
* the app in Google Play. `revoke` deletes the key with gcloud's sign-in.
|
|
231
|
-
*/
|
|
232
|
-
interface IssuedPlayServiceAccount {
|
|
233
|
-
/** The JSON key file, as Google Cloud downloads it. */
|
|
234
|
-
readonly json: string;
|
|
235
|
-
/** The service account's email, the Play Console user it releases as. */
|
|
236
|
-
readonly email: string;
|
|
237
|
-
readonly projectId: string;
|
|
238
|
-
/** The key's ID, as Google Cloud lists it under the service account's keys. */
|
|
239
|
-
readonly keyId: string;
|
|
240
|
-
/** Deletes the key with gcloud's sign-in; whether Google Cloud did. */
|
|
241
|
-
revoke(): Promise<boolean>;
|
|
242
|
-
/** Releases what the issue held; gcloud keeps its own sign-in. */
|
|
243
|
-
dispose(): Promise<void>;
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Issues a service account key that releases the app to Google Play, with
|
|
247
|
-
* the gcloud CLI's Google sign-in: the caller never sees the password, and
|
|
248
|
-
* the developer invites the service account in Play Console once.
|
|
249
|
-
*/
|
|
250
|
-
type IssuePlayServiceAccount = (request: IssuePlayServiceAccountRequest) => Promise<IssuedPlayServiceAccount>;
|
|
251
|
-
/**
|
|
252
|
-
* Hot Updater's issuer, the one place that picks how it is done: gcloud's
|
|
253
|
-
* sign-in, then the Cloud Resource Manager, Service Usage, IAM, and Play
|
|
254
|
-
* Developer APIs. Another implementation of `IssuePlayServiceAccount`
|
|
255
|
-
* replaces it here without touching its callers.
|
|
256
|
-
*/
|
|
257
|
-
declare const issuePlayServiceAccount: IssuePlayServiceAccount;
|
|
258
|
-
//#endregion
|
|
259
|
-
export { type EnrichedNativeBuildAndroidScheme, type GoogleAccount, type GoogleCloudProject, type IssuePlayServiceAccount, type IssuePlayServiceAccountRequest, type IssuedPlayServiceAccount, PLAY_SERVICE_ACCOUNT_ID, PlayServiceAccountError, type PlayServiceAccountErrorCode, PlayVersionCodeUsedError, type UploadToPlayResult, assertPlaySigned, buildAndroid, enrichNativeBuildAndroidScheme, extractBuiltInBundle, findPlayInternalRelease, hasPlayReleases, issuePlayServiceAccount, readBuiltApp, readBuiltPackageName, readBuiltVersionCode, resolvePlayUploadServiceAccount, uploadToPlay };
|
|
189
|
+
export { type EnrichedNativeBuildAndroidScheme, type PlayAccess, PlayVersionCodeUsedError, type UploadToPlayResult, assertPlaySigned, buildAndroid, checkPlayAccess, enrichNativeBuildAndroidScheme, extractBuiltInBundle, findPlayInternalRelease, playConsoleInviteUrl, readBuiltApp, readBuiltPackageName, readBuiltVersionCode, resolvePlayUploadServiceAccount, uploadToPlay };
|