This repository was archived by the owner on Dec 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcloud-publish-service.d.ts
109 lines (97 loc) · 2.73 KB
/
cloud-publish-service.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/**
* Helper interface for publishing data transfer objects.
*/
interface IPackagePaths {
/**
* Paths to the packages to be published - can be either local files or URLs.
*/
packagePaths: string[];
}
/**
* Helper interface combining common properties of all platforms.
*/
interface IPublishDataCore extends IPackagePaths, IProjectDir, ISharedCloud { }
/**
* Describes an optional property passing iOS team identifier.
*/
interface IOptionalTeamIdentifier {
/**
* Team in which to publish.
*/
teamId?: string;
}
/**
* Describes Apple two-factor authentication properties required for publishing.
*/
interface IApple2FAOptions {
/**
* Apple application specific password.
*/
appleApplicationSpecificPassword?: string;
/**
* Apple login session generated by fastlane.
*/
appleSession?: string;
}
/**
* Describes data needed to publish to iTunes Connect.
*/
interface IItunesConnectPublishData extends IPublishDataCore {
/**
* Credentials for iTunes Connect.
*/
credentials: IPublishCredentials;
}
/**
* Describes strings which can be passed when publishing to Google Play in order to manipulate the publish track.
*/
interface IOptionalAndroidTrack {
/**
* Track for which to publish - "alpha" | "beta" | "production".
*/
track?: string;
}
/**
* Describes data needed to publish to Google Play.
*/
interface IGooglePlayPublishData extends IPublishDataCore, IOptionalAndroidTrack {
/**
* Path to local json file generated through Google API Console.
*/
pathToAuthJson: string;
/**
* The desired status of this release. Acceptable values are: completed, draft, halted, inProgress.
*/
androidReleaseStatus?: string;
}
/**
* Describes methods for publishing builds to each platform's respective application store through the cloud.
*/
interface ICloudPublishService extends ICloudService {
/**
* Publishes the given .ipa packages to iTunes Connect.
* @param {IItunesConnectPublishData} publishData Data needed to publish to iTunes Connect.
* @returns {Promise<void>}
*/
publishToItunesConnect(publishData: IItunesConnectPublishData): Promise<void>;
/**
* Publishes the given .apk packages to Google Play.
* @param {IGooglePlayPublishData} publishData Data needed to publish to Google Play.
* @returns {Promise<void>}
*/
publishToGooglePlay(publishData: IGooglePlayPublishData): Promise<void>;
}
/**
* Describes methods for working with Apple Id in the cloud.
*/
interface ICloudAppleService extends ICloudService {
/**
* Uses the provided Apple credentials to generate fastlane session.
* @param {ICredentials} credentials The Apple credentials.
* @returns {Promise<string>}
*/
appleLogin(credentials: ICredentials): Promise<string>;
}
interface IAppleLoginResponse {
appleSession: string;
}