@sitepong/fastnode 0.1.2 → 0.2.0
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 +148 -0
- package/dist/actions/index.cjs +737 -110
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +737 -110
- package/dist/actions/index.mjs.map +1 -1
- package/dist/cert/index.cjs +40 -0
- package/dist/cert/index.cjs.map +1 -1
- package/dist/cert/index.d.cts +3 -3
- package/dist/cert/index.d.ts +3 -3
- package/dist/cert/index.mjs +37 -1
- package/dist/cert/index.mjs.map +1 -1
- package/dist/{cert-BmJGtYtb.d.cts → cert-6m1R8UeW.d.cts} +1 -1
- package/dist/{cert-owkOFNW8.d.ts → cert-DtYDJBjG.d.ts} +1 -1
- package/dist/cli/index.cjs +737 -110
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.mjs +737 -110
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +730 -109
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.mjs +726 -110
- package/dist/client/index.mjs.map +1 -1
- package/dist/deliver/index.d.cts +2 -2
- package/dist/deliver/index.d.ts +2 -2
- package/dist/{index-D6zjGlPL.d.cts → index-AD8QXY1T.d.cts} +1 -1
- package/dist/{index-DfCUVJX1.d.cts → index-BW8wQUGC.d.cts} +1 -1
- package/dist/{index-EcVvViW8.d.cts → index-BWK-T2-S.d.cts} +1 -1
- package/dist/{index-B0yhu_LZ.d.ts → index-BpiEBPVd.d.ts} +1 -1
- package/dist/index-CCs5irG7.d.cts +61 -0
- package/dist/{index-B9yXicrQ.d.ts → index-CLsvyTkh.d.ts} +1 -1
- package/dist/{index-BLubSlgK.d.cts → index-CMH_GpN9.d.cts} +358 -2
- package/dist/index-CQKpbHZt.d.ts +61 -0
- package/dist/{index-BQJIJlK7.d.cts → index-CQd4bo3G.d.cts} +3 -3
- package/dist/{index-CWNLnSOL.d.cts → index-CdYdwxpQ.d.cts} +1 -1
- package/dist/{index-BFdNOmPJ.d.cts → index-Ce-WMV7c.d.cts} +1 -1
- package/dist/{index-TfXqwuac.d.ts → index-CojSGJ7m.d.ts} +1 -1
- package/dist/{index-1Vu2cRQ2.d.ts → index-CsFIp7OO.d.ts} +1 -1
- package/dist/{index-D1Izm7qt.d.ts → index-D2z7RiAM.d.ts} +358 -2
- package/dist/{index-DHw08dUc.d.ts → index-D82CmjMP.d.ts} +1 -1
- package/dist/{index-BN0ubxjZ.d.ts → index-DZaPkUnC.d.ts} +3 -3
- package/dist/{index-D5eihzwM.d.cts → index-KCB2q1-8.d.cts} +1 -1
- package/dist/{index-A5MimeQk.d.ts → index-Kq3rbG0u.d.ts} +1 -1
- package/dist/index.cjs +1094 -110
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +199 -10
- package/dist/index.d.ts +199 -10
- package/dist/index.mjs +1091 -111
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +737 -110
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +737 -110
- package/dist/lane/index.mjs.map +1 -1
- package/dist/match/index.d.cts +4 -4
- package/dist/match/index.d.ts +4 -4
- package/dist/pem/index.d.cts +2 -2
- package/dist/pem/index.d.ts +2 -2
- package/dist/pilot/index.d.cts +2 -2
- package/dist/pilot/index.d.ts +2 -2
- package/dist/precheck/index.d.cts +2 -2
- package/dist/precheck/index.d.ts +2 -2
- package/dist/produce/index.d.cts +2 -2
- package/dist/produce/index.d.ts +2 -2
- package/dist/sigh/index.d.cts +2 -2
- package/dist/sigh/index.d.ts +2 -2
- package/package.json +3 -1
- package/dist/index-DfirmFbC.d.ts +0 -32
- package/dist/index-lt819Jgj.d.cts +0 -32
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { A as AppleSession } from './index-CMH_GpN9.cjs';
|
|
2
|
+
export { j as App, K as AppScreenshot, M as AppScreenshotSet, I as AppScreenshotsResource, a as AppStoreConnectClient, d as AppStoreConnectConfig, b as AppStoreConnectError, G as AppStoreVersion, H as AppStoreVersionLocalization, Q as AppStoreVersionSubmission, F as AppStoreVersionsResource, x as AppsResource, m as BetaBuildLocalization, l as BetaGroup, z as BetaGroupsResource, k as Build, n as BuildBetaDetail, y as BuildsResource, B as BundleId, p as BundleIdCapability, v as BundleIdsResource, E as CapabilitiesResource, s as CapabilityOption, r as CapabilitySetting, q as CapabilitySettingInput, C as Certificate, t as CertificatesResource, D as Device, w as DevicesResource, i as JsonApiError, h as JsonApiListResponse, J as JsonApiResource, g as JsonApiResponse, L as ListParams, o as PreReleaseVersion, P as Profile, u as ProfilesResource, c as RateLimitError, R as RequestClient, f as RequestOptions, O as ReviewSubmission, N as ReviewSubmissionsResource, e as TokenConfig, T as TokenManager, U as UploadOperation } from './index-CMH_GpN9.cjs';
|
|
2
3
|
export { A as AppStoreVersionState, i as BetaReviewState, h as BuildProcessingState, B as BundleIdPlatform, f as CapabilityOptionKey, e as CapabilitySettingsKey, d as CapabilityType, C as CertificateType, g as ContentRightsDeclaration, D as DeviceClass, c as DeviceStatus, E as ExportMethod, b as Platform, a as ProfileState, P as ProfileType, R as ReleaseType } from './enums-B609j2rb.cjs';
|
|
3
|
-
export { i as cert } from './index-
|
|
4
|
-
export { i as sigh } from './index-
|
|
5
|
-
export { i as match } from './index-
|
|
6
|
-
export { i as produce } from './index-
|
|
7
|
-
export { i as pilot } from './index-
|
|
8
|
-
export { i as deliver } from './index-
|
|
9
|
-
export { i as pem } from './index-
|
|
4
|
+
export { i as cert } from './index-CCs5irG7.cjs';
|
|
5
|
+
export { i as sigh } from './index-Ce-WMV7c.cjs';
|
|
6
|
+
export { i as match } from './index-CQd4bo3G.cjs';
|
|
7
|
+
export { i as produce } from './index-KCB2q1-8.cjs';
|
|
8
|
+
export { i as pilot } from './index-AD8QXY1T.cjs';
|
|
9
|
+
export { i as deliver } from './index-CdYdwxpQ.cjs';
|
|
10
|
+
export { i as pem } from './index-BWK-T2-S.cjs';
|
|
10
11
|
export { i as gym } from './index-DrUpRXRG.cjs';
|
|
11
12
|
export { i as scan } from './index-BimqCmY8.cjs';
|
|
12
13
|
export { i as snapshot } from './index-CR3BFPIz.cjs';
|
|
13
14
|
export { i as trainer } from './index-BoU8qt8r.cjs';
|
|
14
|
-
export { i as precheck } from './index-
|
|
15
|
+
export { i as precheck } from './index-BW8wQUGC.cjs';
|
|
15
16
|
export { i as frameit } from './index-BYonklf3.cjs';
|
|
16
17
|
export { i as xcode } from './index-Cp6cjtd-.cjs';
|
|
17
18
|
export { i as core } from './index-C2yG3wXA.cjs';
|
|
@@ -19,5 +20,193 @@ export { LaneCallback, LaneDefinition, RunLaneOptions, RunResult, afterAll, afte
|
|
|
19
20
|
export { L as LaneContext } from './context-CymLkfrS.cjs';
|
|
20
21
|
export { ActionDefinition, action, ensureActionsRegistered, getAction, listActions, registerAction } from './actions/index.cjs';
|
|
21
22
|
export { createCli } from './cli/index.cjs';
|
|
22
|
-
import './cert-
|
|
23
|
+
import './cert-6m1R8UeW.cjs';
|
|
23
24
|
import 'commander';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* One-click Apple Developer setup — given an authenticated portal session,
|
|
28
|
+
* provisions everything needed to code-sign and upload iOS builds:
|
|
29
|
+
*
|
|
30
|
+
* • Bundle ID (created or reused)
|
|
31
|
+
* • Distribution certificate + RSA private key bundled into a .p12
|
|
32
|
+
* • App Store provisioning profile
|
|
33
|
+
* • Optional APNs Production push certificate (.p12)
|
|
34
|
+
* • Optional APNs Sandbox push certificate (.p12)
|
|
35
|
+
* • Optional revocation of existing distribution certificates first
|
|
36
|
+
* (used when the team is at the 3-cert distribution limit)
|
|
37
|
+
*
|
|
38
|
+
* Returns values shaped to match the `apple_credentials` form in the
|
|
39
|
+
* App Release product so an HTTP route or the in-page wizard can pre-fill
|
|
40
|
+
* the existing form fields.
|
|
41
|
+
*
|
|
42
|
+
* Three fields are intentionally left empty (asc_key_id, asc_issuer_id,
|
|
43
|
+
* asc_api_key_base64) — the App Store Connect API key still needs to be
|
|
44
|
+
* uploaded manually. Auto-creating ASC API keys via the iris admin API
|
|
45
|
+
* is a separate stretch goal.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
interface OneClickInventory {
|
|
49
|
+
team: {
|
|
50
|
+
id: string;
|
|
51
|
+
name?: string;
|
|
52
|
+
};
|
|
53
|
+
bundleIds: {
|
|
54
|
+
appIdId: string;
|
|
55
|
+
identifier: string;
|
|
56
|
+
name: string;
|
|
57
|
+
}[];
|
|
58
|
+
/** Active distribution certs. Apple caps a team at 3. */
|
|
59
|
+
distributionCerts: {
|
|
60
|
+
certificateId: string;
|
|
61
|
+
name: string;
|
|
62
|
+
serialNumber?: string;
|
|
63
|
+
expirationDate?: string;
|
|
64
|
+
/** True when the cert is associated with a developer the user can identify. */
|
|
65
|
+
ownerName?: string;
|
|
66
|
+
}[];
|
|
67
|
+
distCertCapacity: {
|
|
68
|
+
used: number;
|
|
69
|
+
max: number;
|
|
70
|
+
};
|
|
71
|
+
pushCerts: {
|
|
72
|
+
certificateId: string;
|
|
73
|
+
name: string;
|
|
74
|
+
type: "production" | "sandbox" | "other";
|
|
75
|
+
bundleIdentifier?: string;
|
|
76
|
+
expirationDate?: string;
|
|
77
|
+
}[];
|
|
78
|
+
profiles: {
|
|
79
|
+
provisioningProfileId: string;
|
|
80
|
+
name: string;
|
|
81
|
+
type: string;
|
|
82
|
+
status?: string;
|
|
83
|
+
expirationDate?: string;
|
|
84
|
+
}[];
|
|
85
|
+
}
|
|
86
|
+
interface OneClickOptions {
|
|
87
|
+
/** Generate a new distribution certificate. Default true; required for new credentials. */
|
|
88
|
+
generateDistributionCert?: boolean;
|
|
89
|
+
/** Generate an App Store provisioning profile. Default true. */
|
|
90
|
+
generateStoreProfile?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Generate an App Store Connect API key (.p8). Default true. Created
|
|
93
|
+
* via Apple's iris admin API and downloaded via the sparse-fieldset
|
|
94
|
+
* endpoint that @expo/apple-utils uses. Required for TestFlight
|
|
95
|
+
* uploads via altool.
|
|
96
|
+
*/
|
|
97
|
+
generateAscApiKey?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Generate an APNs Authentication Key (.p8) for push notifications.
|
|
100
|
+
* Default true. ONE key per team works for ALL apps and never expires.
|
|
101
|
+
* Created via the developer portal's `account/auth/key/v2/create`
|
|
102
|
+
* endpoint, downloaded immediately via `account/auth/key/download`.
|
|
103
|
+
*
|
|
104
|
+
* Apple allows multiple APNs keys per team — the wizard always
|
|
105
|
+
* creates a new one when this flag is set, regardless of what's
|
|
106
|
+
* already in the team. Unrelated existing keys are not affected.
|
|
107
|
+
*/
|
|
108
|
+
generateApnsAuthKey?: boolean;
|
|
109
|
+
/** Enable Sign in with Apple capability on the bundle ID. Default true. */
|
|
110
|
+
enableSignInWithApple?: boolean;
|
|
111
|
+
/** Enable Push Notifications capability on the bundle ID. Default true. */
|
|
112
|
+
enablePushNotifications?: boolean;
|
|
113
|
+
/** Distribution cert IDs to revoke before creating the new one (for the 3-cert limit). */
|
|
114
|
+
revokeCertIds?: string[];
|
|
115
|
+
}
|
|
116
|
+
interface OneClickInput {
|
|
117
|
+
session: AppleSession;
|
|
118
|
+
teamId: string;
|
|
119
|
+
bundleIdentifier: string;
|
|
120
|
+
appName: string;
|
|
121
|
+
options?: OneClickOptions;
|
|
122
|
+
/** Defaults to a random 32-char password. Override for deterministic tests. */
|
|
123
|
+
certPassword?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Structured progress callback invoked at every step transition. The
|
|
126
|
+
* wizard UI uses this to render a live list of "in progress / done /
|
|
127
|
+
* failed" rows.
|
|
128
|
+
*/
|
|
129
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
130
|
+
}
|
|
131
|
+
type ProgressEvent = {
|
|
132
|
+
type: "step_start";
|
|
133
|
+
step: string;
|
|
134
|
+
label: string;
|
|
135
|
+
} | {
|
|
136
|
+
type: "step_done";
|
|
137
|
+
step: string;
|
|
138
|
+
label: string;
|
|
139
|
+
detail?: string;
|
|
140
|
+
} | {
|
|
141
|
+
type: "step_failed";
|
|
142
|
+
step: string;
|
|
143
|
+
label: string;
|
|
144
|
+
error: string;
|
|
145
|
+
};
|
|
146
|
+
interface AdditionalCertResult {
|
|
147
|
+
cert_type: "aps_production" | "aps_sandbox" | "apns_key";
|
|
148
|
+
cert_base64: string;
|
|
149
|
+
/**
|
|
150
|
+
* For .p12 cert types this is the .p12 password. For `apns_key` this
|
|
151
|
+
* is the APNs Key ID (the existing certs route stores it in the
|
|
152
|
+
* cert_password column for apns_key — see apple-credentials/certs/route.ts).
|
|
153
|
+
*/
|
|
154
|
+
cert_password: string;
|
|
155
|
+
}
|
|
156
|
+
interface OneClickResult {
|
|
157
|
+
team_id: string;
|
|
158
|
+
bundle_identifier: string;
|
|
159
|
+
name: string;
|
|
160
|
+
dist_cert_base64: string;
|
|
161
|
+
private_key_base64: string;
|
|
162
|
+
cert_password: string;
|
|
163
|
+
provisioning_profile_base64: string;
|
|
164
|
+
profile_name: string;
|
|
165
|
+
asc_key_id: string;
|
|
166
|
+
asc_issuer_id: string;
|
|
167
|
+
asc_api_key_base64: string;
|
|
168
|
+
/** Additional certs to write to apple_credential_certs after credential is created. */
|
|
169
|
+
additional_certs: AdditionalCertResult[];
|
|
170
|
+
/** IDs of resources created (for debugging / rollback) */
|
|
171
|
+
created: {
|
|
172
|
+
bundleIdId?: string;
|
|
173
|
+
certificateId?: string;
|
|
174
|
+
provisioningProfileId?: string;
|
|
175
|
+
profileUuid?: string;
|
|
176
|
+
apnsAuthKeyId?: string;
|
|
177
|
+
ascApiKeyId?: string;
|
|
178
|
+
revokedCertIds: string[];
|
|
179
|
+
};
|
|
180
|
+
/** Non-fatal issues — e.g. "used existing bundle id" */
|
|
181
|
+
warnings: string[];
|
|
182
|
+
}
|
|
183
|
+
interface PortalTeam {
|
|
184
|
+
teamId: string;
|
|
185
|
+
name: string;
|
|
186
|
+
/** The team's role for this user (e.g. "Account Holder", "Admin", "Developer") */
|
|
187
|
+
role?: string;
|
|
188
|
+
/** The team's status (e.g. "active") */
|
|
189
|
+
status?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* List the developer-portal teams the user belongs to. Returns the
|
|
193
|
+
* 10-character alphanumeric `teamId` strings used by every other portal
|
|
194
|
+
* endpoint — these are different from the numeric `providerId` returned
|
|
195
|
+
* by the olympus session, which only works for App Store Connect REST
|
|
196
|
+
* API calls (and is not what the legacy portal endpoints want).
|
|
197
|
+
*/
|
|
198
|
+
declare function oneClickListTeams(session: AppleSession): Promise<PortalTeam[]>;
|
|
199
|
+
/**
|
|
200
|
+
* Read the team's current state: bundle IDs, distribution cert capacity,
|
|
201
|
+
* push certs, profiles. Used by the wizard to render the configure screen
|
|
202
|
+
* and warn about hitting the 3-cert distribution limit.
|
|
203
|
+
*/
|
|
204
|
+
declare function oneClickInventory(session: AppleSession, teamId: string): Promise<OneClickInventory>;
|
|
205
|
+
/**
|
|
206
|
+
* Run the orchestration. Emits structured progress events the wizard
|
|
207
|
+
* polls / streams to the browser. Throws on the first hard failure;
|
|
208
|
+
* recoverable issues land in `result.warnings`.
|
|
209
|
+
*/
|
|
210
|
+
declare function oneClickSetup(input: OneClickInput): Promise<OneClickResult>;
|
|
211
|
+
|
|
212
|
+
export { type AdditionalCertResult, type OneClickInput, type OneClickInventory, type OneClickOptions, type OneClickResult, type PortalTeam, type ProgressEvent, oneClickInventory, oneClickListTeams, oneClickSetup };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { A as AppleSession } from './index-D2z7RiAM.js';
|
|
2
|
+
export { j as App, K as AppScreenshot, M as AppScreenshotSet, I as AppScreenshotsResource, a as AppStoreConnectClient, d as AppStoreConnectConfig, b as AppStoreConnectError, G as AppStoreVersion, H as AppStoreVersionLocalization, Q as AppStoreVersionSubmission, F as AppStoreVersionsResource, x as AppsResource, m as BetaBuildLocalization, l as BetaGroup, z as BetaGroupsResource, k as Build, n as BuildBetaDetail, y as BuildsResource, B as BundleId, p as BundleIdCapability, v as BundleIdsResource, E as CapabilitiesResource, s as CapabilityOption, r as CapabilitySetting, q as CapabilitySettingInput, C as Certificate, t as CertificatesResource, D as Device, w as DevicesResource, i as JsonApiError, h as JsonApiListResponse, J as JsonApiResource, g as JsonApiResponse, L as ListParams, o as PreReleaseVersion, P as Profile, u as ProfilesResource, c as RateLimitError, R as RequestClient, f as RequestOptions, O as ReviewSubmission, N as ReviewSubmissionsResource, e as TokenConfig, T as TokenManager, U as UploadOperation } from './index-D2z7RiAM.js';
|
|
2
3
|
export { A as AppStoreVersionState, i as BetaReviewState, h as BuildProcessingState, B as BundleIdPlatform, f as CapabilityOptionKey, e as CapabilitySettingsKey, d as CapabilityType, C as CertificateType, g as ContentRightsDeclaration, D as DeviceClass, c as DeviceStatus, E as ExportMethod, b as Platform, a as ProfileState, P as ProfileType, R as ReleaseType } from './enums-B609j2rb.js';
|
|
3
|
-
export { i as cert } from './index-
|
|
4
|
-
export { i as sigh } from './index-
|
|
5
|
-
export { i as match } from './index-
|
|
6
|
-
export { i as produce } from './index-
|
|
7
|
-
export { i as pilot } from './index-
|
|
8
|
-
export { i as deliver } from './index-
|
|
9
|
-
export { i as pem } from './index-
|
|
4
|
+
export { i as cert } from './index-CQKpbHZt.js';
|
|
5
|
+
export { i as sigh } from './index-CojSGJ7m.js';
|
|
6
|
+
export { i as match } from './index-DZaPkUnC.js';
|
|
7
|
+
export { i as produce } from './index-BpiEBPVd.js';
|
|
8
|
+
export { i as pilot } from './index-D82CmjMP.js';
|
|
9
|
+
export { i as deliver } from './index-CsFIp7OO.js';
|
|
10
|
+
export { i as pem } from './index-Kq3rbG0u.js';
|
|
10
11
|
export { i as gym } from './index-DImN9PWc.js';
|
|
11
12
|
export { i as scan } from './index-BimqCmY8.js';
|
|
12
13
|
export { i as snapshot } from './index-CR3BFPIz.js';
|
|
13
14
|
export { i as trainer } from './index-BoU8qt8r.js';
|
|
14
|
-
export { i as precheck } from './index-
|
|
15
|
+
export { i as precheck } from './index-CLsvyTkh.js';
|
|
15
16
|
export { i as frameit } from './index-BYonklf3.js';
|
|
16
17
|
export { i as xcode } from './index-Cp6cjtd-.js';
|
|
17
18
|
export { i as core } from './index-C2yG3wXA.js';
|
|
@@ -19,5 +20,193 @@ export { LaneCallback, LaneDefinition, RunLaneOptions, RunResult, afterAll, afte
|
|
|
19
20
|
export { L as LaneContext } from './context-CymLkfrS.js';
|
|
20
21
|
export { ActionDefinition, action, ensureActionsRegistered, getAction, listActions, registerAction } from './actions/index.js';
|
|
21
22
|
export { createCli } from './cli/index.js';
|
|
22
|
-
import './cert-
|
|
23
|
+
import './cert-DtYDJBjG.js';
|
|
23
24
|
import 'commander';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* One-click Apple Developer setup — given an authenticated portal session,
|
|
28
|
+
* provisions everything needed to code-sign and upload iOS builds:
|
|
29
|
+
*
|
|
30
|
+
* • Bundle ID (created or reused)
|
|
31
|
+
* • Distribution certificate + RSA private key bundled into a .p12
|
|
32
|
+
* • App Store provisioning profile
|
|
33
|
+
* • Optional APNs Production push certificate (.p12)
|
|
34
|
+
* • Optional APNs Sandbox push certificate (.p12)
|
|
35
|
+
* • Optional revocation of existing distribution certificates first
|
|
36
|
+
* (used when the team is at the 3-cert distribution limit)
|
|
37
|
+
*
|
|
38
|
+
* Returns values shaped to match the `apple_credentials` form in the
|
|
39
|
+
* App Release product so an HTTP route or the in-page wizard can pre-fill
|
|
40
|
+
* the existing form fields.
|
|
41
|
+
*
|
|
42
|
+
* Three fields are intentionally left empty (asc_key_id, asc_issuer_id,
|
|
43
|
+
* asc_api_key_base64) — the App Store Connect API key still needs to be
|
|
44
|
+
* uploaded manually. Auto-creating ASC API keys via the iris admin API
|
|
45
|
+
* is a separate stretch goal.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
interface OneClickInventory {
|
|
49
|
+
team: {
|
|
50
|
+
id: string;
|
|
51
|
+
name?: string;
|
|
52
|
+
};
|
|
53
|
+
bundleIds: {
|
|
54
|
+
appIdId: string;
|
|
55
|
+
identifier: string;
|
|
56
|
+
name: string;
|
|
57
|
+
}[];
|
|
58
|
+
/** Active distribution certs. Apple caps a team at 3. */
|
|
59
|
+
distributionCerts: {
|
|
60
|
+
certificateId: string;
|
|
61
|
+
name: string;
|
|
62
|
+
serialNumber?: string;
|
|
63
|
+
expirationDate?: string;
|
|
64
|
+
/** True when the cert is associated with a developer the user can identify. */
|
|
65
|
+
ownerName?: string;
|
|
66
|
+
}[];
|
|
67
|
+
distCertCapacity: {
|
|
68
|
+
used: number;
|
|
69
|
+
max: number;
|
|
70
|
+
};
|
|
71
|
+
pushCerts: {
|
|
72
|
+
certificateId: string;
|
|
73
|
+
name: string;
|
|
74
|
+
type: "production" | "sandbox" | "other";
|
|
75
|
+
bundleIdentifier?: string;
|
|
76
|
+
expirationDate?: string;
|
|
77
|
+
}[];
|
|
78
|
+
profiles: {
|
|
79
|
+
provisioningProfileId: string;
|
|
80
|
+
name: string;
|
|
81
|
+
type: string;
|
|
82
|
+
status?: string;
|
|
83
|
+
expirationDate?: string;
|
|
84
|
+
}[];
|
|
85
|
+
}
|
|
86
|
+
interface OneClickOptions {
|
|
87
|
+
/** Generate a new distribution certificate. Default true; required for new credentials. */
|
|
88
|
+
generateDistributionCert?: boolean;
|
|
89
|
+
/** Generate an App Store provisioning profile. Default true. */
|
|
90
|
+
generateStoreProfile?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Generate an App Store Connect API key (.p8). Default true. Created
|
|
93
|
+
* via Apple's iris admin API and downloaded via the sparse-fieldset
|
|
94
|
+
* endpoint that @expo/apple-utils uses. Required for TestFlight
|
|
95
|
+
* uploads via altool.
|
|
96
|
+
*/
|
|
97
|
+
generateAscApiKey?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Generate an APNs Authentication Key (.p8) for push notifications.
|
|
100
|
+
* Default true. ONE key per team works for ALL apps and never expires.
|
|
101
|
+
* Created via the developer portal's `account/auth/key/v2/create`
|
|
102
|
+
* endpoint, downloaded immediately via `account/auth/key/download`.
|
|
103
|
+
*
|
|
104
|
+
* Apple allows multiple APNs keys per team — the wizard always
|
|
105
|
+
* creates a new one when this flag is set, regardless of what's
|
|
106
|
+
* already in the team. Unrelated existing keys are not affected.
|
|
107
|
+
*/
|
|
108
|
+
generateApnsAuthKey?: boolean;
|
|
109
|
+
/** Enable Sign in with Apple capability on the bundle ID. Default true. */
|
|
110
|
+
enableSignInWithApple?: boolean;
|
|
111
|
+
/** Enable Push Notifications capability on the bundle ID. Default true. */
|
|
112
|
+
enablePushNotifications?: boolean;
|
|
113
|
+
/** Distribution cert IDs to revoke before creating the new one (for the 3-cert limit). */
|
|
114
|
+
revokeCertIds?: string[];
|
|
115
|
+
}
|
|
116
|
+
interface OneClickInput {
|
|
117
|
+
session: AppleSession;
|
|
118
|
+
teamId: string;
|
|
119
|
+
bundleIdentifier: string;
|
|
120
|
+
appName: string;
|
|
121
|
+
options?: OneClickOptions;
|
|
122
|
+
/** Defaults to a random 32-char password. Override for deterministic tests. */
|
|
123
|
+
certPassword?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Structured progress callback invoked at every step transition. The
|
|
126
|
+
* wizard UI uses this to render a live list of "in progress / done /
|
|
127
|
+
* failed" rows.
|
|
128
|
+
*/
|
|
129
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
130
|
+
}
|
|
131
|
+
type ProgressEvent = {
|
|
132
|
+
type: "step_start";
|
|
133
|
+
step: string;
|
|
134
|
+
label: string;
|
|
135
|
+
} | {
|
|
136
|
+
type: "step_done";
|
|
137
|
+
step: string;
|
|
138
|
+
label: string;
|
|
139
|
+
detail?: string;
|
|
140
|
+
} | {
|
|
141
|
+
type: "step_failed";
|
|
142
|
+
step: string;
|
|
143
|
+
label: string;
|
|
144
|
+
error: string;
|
|
145
|
+
};
|
|
146
|
+
interface AdditionalCertResult {
|
|
147
|
+
cert_type: "aps_production" | "aps_sandbox" | "apns_key";
|
|
148
|
+
cert_base64: string;
|
|
149
|
+
/**
|
|
150
|
+
* For .p12 cert types this is the .p12 password. For `apns_key` this
|
|
151
|
+
* is the APNs Key ID (the existing certs route stores it in the
|
|
152
|
+
* cert_password column for apns_key — see apple-credentials/certs/route.ts).
|
|
153
|
+
*/
|
|
154
|
+
cert_password: string;
|
|
155
|
+
}
|
|
156
|
+
interface OneClickResult {
|
|
157
|
+
team_id: string;
|
|
158
|
+
bundle_identifier: string;
|
|
159
|
+
name: string;
|
|
160
|
+
dist_cert_base64: string;
|
|
161
|
+
private_key_base64: string;
|
|
162
|
+
cert_password: string;
|
|
163
|
+
provisioning_profile_base64: string;
|
|
164
|
+
profile_name: string;
|
|
165
|
+
asc_key_id: string;
|
|
166
|
+
asc_issuer_id: string;
|
|
167
|
+
asc_api_key_base64: string;
|
|
168
|
+
/** Additional certs to write to apple_credential_certs after credential is created. */
|
|
169
|
+
additional_certs: AdditionalCertResult[];
|
|
170
|
+
/** IDs of resources created (for debugging / rollback) */
|
|
171
|
+
created: {
|
|
172
|
+
bundleIdId?: string;
|
|
173
|
+
certificateId?: string;
|
|
174
|
+
provisioningProfileId?: string;
|
|
175
|
+
profileUuid?: string;
|
|
176
|
+
apnsAuthKeyId?: string;
|
|
177
|
+
ascApiKeyId?: string;
|
|
178
|
+
revokedCertIds: string[];
|
|
179
|
+
};
|
|
180
|
+
/** Non-fatal issues — e.g. "used existing bundle id" */
|
|
181
|
+
warnings: string[];
|
|
182
|
+
}
|
|
183
|
+
interface PortalTeam {
|
|
184
|
+
teamId: string;
|
|
185
|
+
name: string;
|
|
186
|
+
/** The team's role for this user (e.g. "Account Holder", "Admin", "Developer") */
|
|
187
|
+
role?: string;
|
|
188
|
+
/** The team's status (e.g. "active") */
|
|
189
|
+
status?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* List the developer-portal teams the user belongs to. Returns the
|
|
193
|
+
* 10-character alphanumeric `teamId` strings used by every other portal
|
|
194
|
+
* endpoint — these are different from the numeric `providerId` returned
|
|
195
|
+
* by the olympus session, which only works for App Store Connect REST
|
|
196
|
+
* API calls (and is not what the legacy portal endpoints want).
|
|
197
|
+
*/
|
|
198
|
+
declare function oneClickListTeams(session: AppleSession): Promise<PortalTeam[]>;
|
|
199
|
+
/**
|
|
200
|
+
* Read the team's current state: bundle IDs, distribution cert capacity,
|
|
201
|
+
* push certs, profiles. Used by the wizard to render the configure screen
|
|
202
|
+
* and warn about hitting the 3-cert distribution limit.
|
|
203
|
+
*/
|
|
204
|
+
declare function oneClickInventory(session: AppleSession, teamId: string): Promise<OneClickInventory>;
|
|
205
|
+
/**
|
|
206
|
+
* Run the orchestration. Emits structured progress events the wizard
|
|
207
|
+
* polls / streams to the browser. Throws on the first hard failure;
|
|
208
|
+
* recoverable issues land in `result.warnings`.
|
|
209
|
+
*/
|
|
210
|
+
declare function oneClickSetup(input: OneClickInput): Promise<OneClickResult>;
|
|
211
|
+
|
|
212
|
+
export { type AdditionalCertResult, type OneClickInput, type OneClickInventory, type OneClickOptions, type OneClickResult, type PortalTeam, type ProgressEvent, oneClickInventory, oneClickListTeams, oneClickSetup };
|