@limrun/ui 0.14.0-rc.4 → 0.14.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 +9 -26
- package/dist/components/remote-control.d.ts +36 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1189 -1089
- package/package.json +10 -51
- package/src/components/remote-control.tsx +267 -0
- package/src/index.ts +1 -1
- package/vite.config.ts +0 -9
- package/dist/app-store-relay/index.cjs +0 -9
- package/dist/app-store-relay/index.d.ts +0 -100
- package/dist/app-store-relay/index.js +0 -484
- package/dist/app-store-relay/react.cjs +0 -1
- package/dist/app-store-relay/react.d.ts +0 -15
- package/dist/app-store-relay/react.js +0 -69
- package/dist/apple-credentials/index.cjs +0 -1
- package/dist/apple-credentials/index.d.ts +0 -59
- package/dist/apple-credentials/index.js +0 -227
- package/dist/browser-storage-BnO-Ma-e.mjs +0 -219
- package/dist/browser-storage-DLxIqZk5.js +0 -1
- package/dist/client-D1drDXxE.js +0 -1
- package/dist/client-DSuNtWDv.mjs +0 -184
- package/dist/core/device-install/apple/client.d.ts +0 -18
- package/dist/core/device-install/apple/crypto.d.ts +0 -20
- package/dist/core/device-install/apple/gsa-srp.d.ts +0 -26
- package/dist/core/device-install/apple/index.d.ts +0 -5
- package/dist/core/device-install/apple/provisioning.d.ts +0 -212
- package/dist/core/device-install/apple/relay.d.ts +0 -40
- package/dist/core/device-install/index.d.ts +0 -4
- package/dist/core/device-install/operations/index.d.ts +0 -6
- package/dist/core/device-install/operations/limbuild-client.d.ts +0 -43
- package/dist/core/device-install/operations/operations.d.ts +0 -47
- package/dist/core/device-install/operations/relay-client.d.ts +0 -26
- package/dist/core/device-install/operations/relay-protocol.d.ts +0 -27
- package/dist/core/device-install/operations/usbmux.d.ts +0 -32
- package/dist/core/device-install/operations/webusb.d.ts +0 -21
- package/dist/core/device-install/storage/browser-storage.d.ts +0 -56
- package/dist/core/device-install/storage/index.d.ts +0 -2
- package/dist/core/device-install/storage/secret-store.d.ts +0 -101
- package/dist/core/device-install/types.d.ts +0 -57
- package/dist/core/errors.d.ts +0 -1
- package/dist/core/play-publish/google.d.ts +0 -13
- package/dist/core/play-publish/publish.d.ts +0 -34
- package/dist/device-build/index.cjs +0 -1
- package/dist/device-build/index.d.ts +0 -4
- package/dist/device-build/index.js +0 -85
- package/dist/device-build/react.cjs +0 -1
- package/dist/device-build/react.d.ts +0 -21
- package/dist/device-build/react.js +0 -68
- package/dist/device-build/signing.d.ts +0 -20
- package/dist/device-install/demo/demo.d.ts +0 -0
- package/dist/device-install/index.cjs +0 -1
- package/dist/device-install/index.d.ts +0 -18
- package/dist/device-install/index.js +0 -591
- package/dist/device-install/react.cjs +0 -1
- package/dist/device-install/react.d.ts +0 -24
- package/dist/device-install/react.js +0 -105
- package/dist/errors-BSkqS7U-.js +0 -1
- package/dist/errors-gy8yQJos.mjs +0 -6
- package/dist/gsa-srp-Bme3JLEi.mjs +0 -266
- package/dist/gsa-srp-CCIfUz7Y.js +0 -1
- package/dist/index-ChhtuQ7e.js +0 -22
- package/dist/index-YDu8K9a4.mjs +0 -11279
- package/dist/limbuild-client-BagK_FWE.mjs +0 -83
- package/dist/limbuild-client-CVDwq54z.js +0 -1
- package/dist/play-publish/index.cjs +0 -1
- package/dist/play-publish/index.d.ts +0 -2
- package/dist/play-publish/index.js +0 -109
- package/dist/play-publish/react.cjs +0 -1
- package/dist/play-publish/react.d.ts +0 -31
- package/dist/play-publish/react.js +0 -91
- package/dist/provisioning-B_DefBEp.mjs +0 -239
- package/dist/provisioning-BlQMccX_.js +0 -1
- package/src/app-store-relay/index.test.ts +0 -60
- package/src/app-store-relay/index.ts +0 -511
- package/src/app-store-relay/react.ts +0 -131
- package/src/apple-credentials/index.test.ts +0 -158
- package/src/apple-credentials/index.ts +0 -241
- package/src/core/device-install/apple/client.ts +0 -143
- package/src/core/device-install/apple/crypto.ts +0 -205
- package/src/core/device-install/apple/gsa-srp.ts +0 -123
- package/src/core/device-install/apple/index.ts +0 -5
- package/src/core/device-install/apple/provisioning.test.ts +0 -84
- package/src/core/device-install/apple/provisioning.ts +0 -380
- package/src/core/device-install/apple/relay.ts +0 -182
- package/src/core/device-install/index.ts +0 -4
- package/src/core/device-install/operations/index.ts +0 -6
- package/src/core/device-install/operations/limbuild-client.ts +0 -144
- package/src/core/device-install/operations/operations.ts +0 -234
- package/src/core/device-install/operations/relay-client.ts +0 -286
- package/src/core/device-install/operations/relay-protocol.ts +0 -71
- package/src/core/device-install/operations/usbmux.ts +0 -270
- package/src/core/device-install/operations/webusb-dom.d.ts +0 -54
- package/src/core/device-install/operations/webusb.ts +0 -110
- package/src/core/device-install/storage/browser-storage.test.ts +0 -65
- package/src/core/device-install/storage/browser-storage.ts +0 -325
- package/src/core/device-install/storage/index.ts +0 -2
- package/src/core/device-install/storage/secret-store.ts +0 -298
- package/src/core/device-install/types.ts +0 -69
- package/src/core/errors.ts +0 -3
- package/src/core/play-publish/google.ts +0 -113
- package/src/core/play-publish/publish.test.ts +0 -68
- package/src/core/play-publish/publish.ts +0 -89
- package/src/device-build/index.ts +0 -42
- package/src/device-build/react.ts +0 -130
- package/src/device-build/signing.ts +0 -94
- package/src/device-install/README.md +0 -423
- package/src/device-install/demo/demo.css +0 -493
- package/src/device-install/demo/demo.tsx +0 -1061
- package/src/device-install/demo/index.html +0 -12
- package/src/device-install/index.ts +0 -50
- package/src/device-install/react.ts +0 -195
- package/src/play-publish/README.md +0 -66
- package/src/play-publish/index.ts +0 -12
- package/src/play-publish/react.ts +0 -208
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export type AppleSRPProtocol = 's2k' | 's2k_fo';
|
|
2
|
-
export type AppleSRPInitRequest = {
|
|
3
|
-
a: string;
|
|
4
|
-
accountName: string;
|
|
5
|
-
protocols: AppleSRPProtocol[];
|
|
6
|
-
};
|
|
7
|
-
export type AppleSRPInitResponse = {
|
|
8
|
-
iteration: number;
|
|
9
|
-
salt: string;
|
|
10
|
-
protocol: AppleSRPProtocol;
|
|
11
|
-
b: string;
|
|
12
|
-
c: string;
|
|
13
|
-
};
|
|
14
|
-
export type AppleSRPCompleteProof = {
|
|
15
|
-
accountName: string;
|
|
16
|
-
m1: string;
|
|
17
|
-
m2: string;
|
|
18
|
-
c: string;
|
|
19
|
-
};
|
|
20
|
-
export declare class AppleGsaSrpClient {
|
|
21
|
-
private readonly accountName;
|
|
22
|
-
private srpClient?;
|
|
23
|
-
constructor(accountName: string);
|
|
24
|
-
init(): Promise<AppleSRPInitRequest>;
|
|
25
|
-
complete(password: string, serverData: AppleSRPInitResponse): Promise<AppleSRPCompleteProof>;
|
|
26
|
-
}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { DeviceInstallSigningMode, ProvisioningProfileInfo, StoredSigningAssets } from '../types';
|
|
2
|
-
import { AppleProvisioningRequest } from './relay';
|
|
3
|
-
export type AppleDeveloperPortalTeam = {
|
|
4
|
-
name?: string;
|
|
5
|
-
teamId?: string;
|
|
6
|
-
providerId?: string | number;
|
|
7
|
-
publicProviderId?: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
subType?: string;
|
|
10
|
-
};
|
|
11
|
-
export type AppleDeveloperPortalDevice = {
|
|
12
|
-
deviceId?: string;
|
|
13
|
-
name?: string;
|
|
14
|
-
deviceNumber?: string;
|
|
15
|
-
deviceClass?: string;
|
|
16
|
-
model?: string;
|
|
17
|
-
status?: string;
|
|
18
|
-
};
|
|
19
|
-
export type AppleDeveloperPortalAppID = {
|
|
20
|
-
appId?: string;
|
|
21
|
-
appIdId?: string;
|
|
22
|
-
identifier?: string;
|
|
23
|
-
bundleId?: string;
|
|
24
|
-
name?: string;
|
|
25
|
-
prefix?: string;
|
|
26
|
-
platform?: string;
|
|
27
|
-
};
|
|
28
|
-
export type AppleDeveloperPortalResponse = {
|
|
29
|
-
resultCode?: number;
|
|
30
|
-
resultString?: string;
|
|
31
|
-
userString?: string;
|
|
32
|
-
teams?: AppleDeveloperPortalTeam[];
|
|
33
|
-
provider?: AppleDeveloperPortalTeam;
|
|
34
|
-
availableProviders?: AppleDeveloperPortalTeam[];
|
|
35
|
-
appIds?: AppleDeveloperPortalAppID[];
|
|
36
|
-
devices?: AppleDeveloperPortalDevice[];
|
|
37
|
-
certRequests?: Array<Record<string, unknown>>;
|
|
38
|
-
certRequest?: Record<string, unknown>;
|
|
39
|
-
appId?: Record<string, unknown>;
|
|
40
|
-
device?: Record<string, unknown>;
|
|
41
|
-
provisioningProfile?: Record<string, unknown>;
|
|
42
|
-
provisioningProfiles?: Array<Record<string, unknown>>;
|
|
43
|
-
};
|
|
44
|
-
export type AppleProvisioningContext = {
|
|
45
|
-
bundleID: string;
|
|
46
|
-
deviceUDID: string;
|
|
47
|
-
teamID?: string;
|
|
48
|
-
};
|
|
49
|
-
export type AppleSigningAssetCacheInput = {
|
|
50
|
-
bundleID: string;
|
|
51
|
-
deviceUDID?: string;
|
|
52
|
-
teamID?: string;
|
|
53
|
-
signingMode?: DeviceInstallSigningMode;
|
|
54
|
-
};
|
|
55
|
-
export type PutAppleGeneratedSigningAssetsInput = {
|
|
56
|
-
bundleID: string;
|
|
57
|
-
deviceUDID?: string;
|
|
58
|
-
teamID?: string;
|
|
59
|
-
signingMode?: DeviceInstallSigningMode;
|
|
60
|
-
certificateID?: string;
|
|
61
|
-
certificateP12Base64: string;
|
|
62
|
-
certificatePassword?: string;
|
|
63
|
-
provisioningProfileBase64: string;
|
|
64
|
-
profile: ProvisioningProfileInfo;
|
|
65
|
-
};
|
|
66
|
-
export declare function listTeamsRequest(): AppleProvisioningRequest;
|
|
67
|
-
export declare function findBundleIDRequest({ bundleID, teamID, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'>): {
|
|
68
|
-
method: "POST";
|
|
69
|
-
path: string;
|
|
70
|
-
payload: Record<string, unknown>;
|
|
71
|
-
};
|
|
72
|
-
export declare function findDeviceRequest({ deviceUDID, teamID, }: Pick<AppleProvisioningContext, 'deviceUDID' | 'teamID'>): {
|
|
73
|
-
method: "POST";
|
|
74
|
-
path: string;
|
|
75
|
-
payload: Record<string, unknown>;
|
|
76
|
-
};
|
|
77
|
-
export declare function findDevelopmentCertificatesRequest(teamID?: string): {
|
|
78
|
-
method: "POST";
|
|
79
|
-
path: string;
|
|
80
|
-
payload: Record<string, unknown>;
|
|
81
|
-
};
|
|
82
|
-
export declare function findDistributionCertificatesRequest(teamID?: string): {
|
|
83
|
-
method: "POST";
|
|
84
|
-
path: string;
|
|
85
|
-
payload: Record<string, unknown>;
|
|
86
|
-
};
|
|
87
|
-
export declare function findDevelopmentProfilesRequest({ bundleID, teamID, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'>): {
|
|
88
|
-
method: "POST";
|
|
89
|
-
path: string;
|
|
90
|
-
payload: Record<string, unknown>;
|
|
91
|
-
};
|
|
92
|
-
export declare function findAdHocProfilesRequest({ bundleID, teamID, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'>): {
|
|
93
|
-
method: "POST";
|
|
94
|
-
path: string;
|
|
95
|
-
payload: Record<string, unknown>;
|
|
96
|
-
};
|
|
97
|
-
export declare function registerDeviceRequest({ deviceUDID, teamID, name, }: Pick<AppleProvisioningContext, 'deviceUDID' | 'teamID'> & {
|
|
98
|
-
name?: string;
|
|
99
|
-
}): {
|
|
100
|
-
method: "POST";
|
|
101
|
-
path: string;
|
|
102
|
-
payload: {
|
|
103
|
-
teamId: string;
|
|
104
|
-
deviceNames: string;
|
|
105
|
-
deviceNumbers: string;
|
|
106
|
-
deviceClasses: string;
|
|
107
|
-
register: string;
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
export declare function createBundleIDRequest({ bundleID, teamID, name, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'> & {
|
|
111
|
-
name?: string;
|
|
112
|
-
}): {
|
|
113
|
-
method: "POST";
|
|
114
|
-
path: string;
|
|
115
|
-
payload: {
|
|
116
|
-
teamId: string;
|
|
117
|
-
name: string;
|
|
118
|
-
identifier: string;
|
|
119
|
-
type: string;
|
|
120
|
-
};
|
|
121
|
-
};
|
|
122
|
-
export declare function submitDevelopmentCSRRequest({ csrPEM, teamID }: {
|
|
123
|
-
csrPEM: string;
|
|
124
|
-
teamID?: string;
|
|
125
|
-
}): {
|
|
126
|
-
method: "POST";
|
|
127
|
-
path: string;
|
|
128
|
-
payload: {
|
|
129
|
-
teamId: string;
|
|
130
|
-
type: string;
|
|
131
|
-
csrContent: string;
|
|
132
|
-
};
|
|
133
|
-
};
|
|
134
|
-
export declare function submitDistributionCSRRequest({ csrPEM, teamID }: {
|
|
135
|
-
csrPEM: string;
|
|
136
|
-
teamID?: string;
|
|
137
|
-
}): {
|
|
138
|
-
method: "POST";
|
|
139
|
-
path: string;
|
|
140
|
-
payload: {
|
|
141
|
-
teamId: string;
|
|
142
|
-
type: string;
|
|
143
|
-
csrContent: string;
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
export declare function downloadCertificateRequest(certificateID: string, teamID?: string): {
|
|
147
|
-
method: "GET";
|
|
148
|
-
path: string;
|
|
149
|
-
payload: {
|
|
150
|
-
teamId: string;
|
|
151
|
-
certificateId: string;
|
|
152
|
-
type: string;
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
|
-
export declare function downloadDistributionCertificateRequest(certificateID: string, teamID?: string): {
|
|
156
|
-
method: "GET";
|
|
157
|
-
path: string;
|
|
158
|
-
payload: {
|
|
159
|
-
teamId: string;
|
|
160
|
-
certificateId: string;
|
|
161
|
-
type: string;
|
|
162
|
-
};
|
|
163
|
-
};
|
|
164
|
-
export declare function createDevelopmentProfileRequest({ bundleID, teamID, appIDID, certificateID, deviceIDs, name, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'> & {
|
|
165
|
-
appIDID: string;
|
|
166
|
-
certificateID: string;
|
|
167
|
-
deviceIDs: string[];
|
|
168
|
-
name?: string;
|
|
169
|
-
}): {
|
|
170
|
-
method: "POST";
|
|
171
|
-
path: string;
|
|
172
|
-
payload: {
|
|
173
|
-
teamId: string;
|
|
174
|
-
provisioningProfileName: string;
|
|
175
|
-
certificateIds: string[];
|
|
176
|
-
appIdId: string;
|
|
177
|
-
deviceIds: string[];
|
|
178
|
-
distributionType: string;
|
|
179
|
-
subPlatform: string;
|
|
180
|
-
};
|
|
181
|
-
};
|
|
182
|
-
export declare function createAdHocProfileRequest({ bundleID, teamID, appIDID, certificateID, deviceIDs, name, }: Pick<AppleProvisioningContext, 'bundleID' | 'teamID'> & {
|
|
183
|
-
appIDID: string;
|
|
184
|
-
certificateID: string;
|
|
185
|
-
deviceIDs: string[];
|
|
186
|
-
name?: string;
|
|
187
|
-
}): {
|
|
188
|
-
method: "POST";
|
|
189
|
-
path: string;
|
|
190
|
-
payload: {
|
|
191
|
-
teamId: string;
|
|
192
|
-
provisioningProfileName: string;
|
|
193
|
-
certificateIds: string[];
|
|
194
|
-
appIdId: string;
|
|
195
|
-
deviceIds: string[];
|
|
196
|
-
distributionType: string;
|
|
197
|
-
subPlatform: string;
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
export declare function downloadProfileRequest(profileID: string, teamID?: string): {
|
|
201
|
-
method: "GET";
|
|
202
|
-
path: string;
|
|
203
|
-
payload: {
|
|
204
|
-
teamId: string;
|
|
205
|
-
provisioningProfileId: string;
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
export declare function getReusableAppleSigningAssets({ bundleID, deviceUDID, teamID, signingMode, }: AppleSigningAssetCacheInput): Promise<StoredSigningAssets | undefined>;
|
|
209
|
-
export declare function putAppleGeneratedSigningAssets(input: PutAppleGeneratedSigningAssetsInput): Promise<StoredSigningAssets>;
|
|
210
|
-
export declare function storedSigningAssetsReusable(stored: StoredSigningAssets, { bundleID, deviceUDID, teamID, signingMode }: AppleSigningAssetCacheInput): boolean;
|
|
211
|
-
export declare function selectDeveloperPortalTeam(body: unknown): AppleDeveloperPortalTeam | undefined;
|
|
212
|
-
export declare function teamIDCandidates(body: unknown): string[];
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { AppleSRPCompleteProof, AppleSRPInitRequest, AppleSRPInitResponse } from './gsa-srp';
|
|
2
|
-
export type AppleRelayResponse<T = unknown> = {
|
|
3
|
-
status: number;
|
|
4
|
-
statusText: string;
|
|
5
|
-
headers?: Record<string, string>;
|
|
6
|
-
body?: T;
|
|
7
|
-
rawBody?: string;
|
|
8
|
-
rawBodyBase64?: string;
|
|
9
|
-
};
|
|
10
|
-
export type AppleProvisioningRequest = {
|
|
11
|
-
method?: 'GET' | 'POST';
|
|
12
|
-
path: string;
|
|
13
|
-
payload?: unknown;
|
|
14
|
-
};
|
|
15
|
-
export declare class AppleRelayWebSocketClient {
|
|
16
|
-
private readonly apiUrl;
|
|
17
|
-
private readonly token?;
|
|
18
|
-
private readonly organizationId?;
|
|
19
|
-
private socket?;
|
|
20
|
-
private nextId;
|
|
21
|
-
private readonly pending;
|
|
22
|
-
constructor(apiUrl: string, token?: string | undefined, organizationId?: string | undefined);
|
|
23
|
-
connect(): Promise<void>;
|
|
24
|
-
request<T = unknown>(type: string, payload?: unknown): Promise<AppleRelayResponse<T>>;
|
|
25
|
-
close(): void;
|
|
26
|
-
private handleMessage;
|
|
27
|
-
private rejectPending;
|
|
28
|
-
}
|
|
29
|
-
export declare function openAppleRelayWebSocket(apiUrl: string, token?: string, organizationId?: string): Promise<AppleRelayWebSocketClient>;
|
|
30
|
-
export declare function proxySrpInit(relay: AppleRelayWebSocketClient, payload: AppleSRPInitRequest): Promise<AppleRelayResponse<AppleSRPInitResponse>>;
|
|
31
|
-
export declare function proxySrpComplete(relay: AppleRelayWebSocketClient, payload: AppleSRPCompleteProof & {
|
|
32
|
-
rememberMe: boolean;
|
|
33
|
-
trustTokens: string[];
|
|
34
|
-
}): Promise<AppleRelayResponse<unknown>>;
|
|
35
|
-
export declare function triggerTrustedDeviceTwoFactor(relay: AppleRelayWebSocketClient): Promise<AppleRelayResponse<unknown>>;
|
|
36
|
-
export declare function triggerPhoneTwoFactor(relay: AppleRelayWebSocketClient, phoneNumberId: number, mode?: string): Promise<AppleRelayResponse<unknown>>;
|
|
37
|
-
export declare function proxyTwoFactorCode(relay: AppleRelayWebSocketClient, code: string): Promise<AppleRelayResponse<unknown>>;
|
|
38
|
-
export declare function proxyPhoneTwoFactorCode(relay: AppleRelayWebSocketClient, phoneNumberId: number, code: string, mode?: string): Promise<AppleRelayResponse<unknown>>;
|
|
39
|
-
export declare function fetchAppleAccountSession(relay: AppleRelayWebSocketClient): Promise<AppleRelayResponse<unknown>>;
|
|
40
|
-
export declare function proxyProvisioningRequest<T = unknown>(relay: AppleRelayWebSocketClient, request: AppleProvisioningRequest): Promise<AppleRelayResponse<T>>;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { BuildLogLine, DeviceInstallBuildStatus } from '../types';
|
|
2
|
-
export type LimbuildInfo = {
|
|
3
|
-
homeDir?: string;
|
|
4
|
-
lastBuildConfig?: {
|
|
5
|
-
bundleId?: string;
|
|
6
|
-
sdk?: string;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
export type StartSignedDeviceBuildOptions = {
|
|
10
|
-
limbuildApiUrl: string;
|
|
11
|
-
token?: string;
|
|
12
|
-
certificateP12Base64: string;
|
|
13
|
-
certificatePassword?: string;
|
|
14
|
-
provisioningProfileBase64: string;
|
|
15
|
-
signedUploadUrl?: string;
|
|
16
|
-
};
|
|
17
|
-
export type BuildLogEventsOptions = {
|
|
18
|
-
limbuildApiUrl: string;
|
|
19
|
-
execId: string;
|
|
20
|
-
token?: string;
|
|
21
|
-
onLine: (line: BuildLogLine) => void;
|
|
22
|
-
onStatus: (status: DeviceInstallBuildStatus) => void;
|
|
23
|
-
onError?: (error: Error) => void;
|
|
24
|
-
};
|
|
25
|
-
export type IOSOTAInstall = {
|
|
26
|
-
installUrl: string;
|
|
27
|
-
landingUrl: string;
|
|
28
|
-
manifestUrl: string;
|
|
29
|
-
ipaUrl: string;
|
|
30
|
-
bundleId: string;
|
|
31
|
-
displayName: string;
|
|
32
|
-
};
|
|
33
|
-
export type GetIOSOTAInstallOptions = {
|
|
34
|
-
limbuildApiUrl: string;
|
|
35
|
-
execId: string;
|
|
36
|
-
token?: string;
|
|
37
|
-
};
|
|
38
|
-
export declare function fetchLimbuildInfo(limbuildApiUrl: string, token?: string): Promise<LimbuildInfo>;
|
|
39
|
-
export declare function startSignedDeviceBuild({ limbuildApiUrl, token, certificateP12Base64, certificatePassword, provisioningProfileBase64, signedUploadUrl, }: StartSignedDeviceBuildOptions): Promise<{
|
|
40
|
-
execId?: string;
|
|
41
|
-
}>;
|
|
42
|
-
export declare function getIOSOTAInstall({ limbuildApiUrl, execId, token }: GetIOSOTAInstallOptions): Promise<IOSOTAInstall>;
|
|
43
|
-
export declare function watchBuildLogEvents({ limbuildApiUrl, execId, token, onLine, onStatus, onError, }: BuildLogEventsOptions): () => void;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { DeviceHello, DeviceInstallLog, PairRecordPayload } from '../types';
|
|
2
|
-
import { RelayClient } from './relay-client';
|
|
3
|
-
import { UsbmuxSession } from './usbmux';
|
|
4
|
-
import { UsbmuxCandidate } from './webusb';
|
|
5
|
-
export type DeviceRelayTarget = {
|
|
6
|
-
device: USBDevice;
|
|
7
|
-
candidate: UsbmuxCandidate;
|
|
8
|
-
session?: UsbmuxSession;
|
|
9
|
-
claimedInterfaceNumber?: number;
|
|
10
|
-
hello: DeviceHello;
|
|
11
|
-
};
|
|
12
|
-
export type RequestUSBAccessOptions = {
|
|
13
|
-
log: DeviceInstallLog;
|
|
14
|
-
};
|
|
15
|
-
export type StartPairingRelayOptions = {
|
|
16
|
-
registryApiUrl: string;
|
|
17
|
-
token?: string;
|
|
18
|
-
organizationId?: string;
|
|
19
|
-
log: DeviceInstallLog;
|
|
20
|
-
target: DeviceRelayTarget;
|
|
21
|
-
};
|
|
22
|
-
export type InstallSource = {
|
|
23
|
-
assetId: string;
|
|
24
|
-
assetName?: never;
|
|
25
|
-
downloadUrl?: never;
|
|
26
|
-
} | {
|
|
27
|
-
assetId?: never;
|
|
28
|
-
assetName: string;
|
|
29
|
-
downloadUrl?: never;
|
|
30
|
-
} | {
|
|
31
|
-
assetId?: never;
|
|
32
|
-
assetName?: never;
|
|
33
|
-
downloadUrl: string;
|
|
34
|
-
};
|
|
35
|
-
export type StartInstallRelayOptions = StartPairingRelayOptions & {
|
|
36
|
-
pairRecord: PairRecordPayload;
|
|
37
|
-
installSource: InstallSource;
|
|
38
|
-
};
|
|
39
|
-
export declare function requestUSBAccess({ log }: RequestUSBAccessOptions): Promise<DeviceRelayTarget>;
|
|
40
|
-
export declare function startPairingRelay({ registryApiUrl, token, organizationId, log, target, }: StartPairingRelayOptions): Promise<{
|
|
41
|
-
relay: RelayClient;
|
|
42
|
-
pairRecord: PairRecordPayload;
|
|
43
|
-
target: DeviceRelayTarget;
|
|
44
|
-
}>;
|
|
45
|
-
export declare function startInstallRelay({ registryApiUrl, token, organizationId, log, target, pairRecord, installSource, }: StartInstallRelayOptions): Promise<RelayClient>;
|
|
46
|
-
export declare function closeDeviceRelayTarget(target: DeviceRelayTarget | undefined, log?: DeviceInstallLog): Promise<void>;
|
|
47
|
-
export declare function deviceRelayWebSocketUrl(registryApiUrl: string, token?: string, organizationId?: string): string;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { DeviceHello, DeviceInstallLog, PairRecordPayload } from '../types';
|
|
2
|
-
import { InstallSource } from './operations';
|
|
3
|
-
import { UsbmuxSession } from './usbmux';
|
|
4
|
-
export declare class RelayClient {
|
|
5
|
-
private readonly webSocketUrl;
|
|
6
|
-
private readonly session;
|
|
7
|
-
private readonly deviceHello;
|
|
8
|
-
private readonly log;
|
|
9
|
-
private socket?;
|
|
10
|
-
private streams;
|
|
11
|
-
private frameQueue;
|
|
12
|
-
private closed;
|
|
13
|
-
private pairRecordWaiter?;
|
|
14
|
-
constructor(webSocketUrl: string, session: UsbmuxSession, deviceHello: DeviceHello, log: DeviceInstallLog);
|
|
15
|
-
connect(): Promise<void>;
|
|
16
|
-
startPairing(): Promise<PairRecordPayload>;
|
|
17
|
-
startInstall(pairRecord: PairRecordPayload, installSource: InstallSource): Promise<void>;
|
|
18
|
-
close(): void;
|
|
19
|
-
private enqueueFrame;
|
|
20
|
-
private handleFrame;
|
|
21
|
-
private handleError;
|
|
22
|
-
private handlePairRecordReady;
|
|
23
|
-
private handleOpenStream;
|
|
24
|
-
private pumpDeviceToServer;
|
|
25
|
-
private send;
|
|
26
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare const RELAY_PROTOCOL_VERSION = 1;
|
|
2
|
-
export declare const RELAY_HEADER_BYTES = 16;
|
|
3
|
-
export declare const RelayMessageType: {
|
|
4
|
-
readonly DeviceHello: 1;
|
|
5
|
-
readonly OpenStream: 2;
|
|
6
|
-
readonly OpenResult: 3;
|
|
7
|
-
readonly StreamData: 4;
|
|
8
|
-
readonly StreamClose: 5;
|
|
9
|
-
readonly InstallProgress: 6;
|
|
10
|
-
readonly Error: 7;
|
|
11
|
-
readonly Ping: 8;
|
|
12
|
-
readonly Pong: 9;
|
|
13
|
-
readonly StartPairing: 10;
|
|
14
|
-
readonly StartInstall: 11;
|
|
15
|
-
readonly PairRecordReady: 12;
|
|
16
|
-
};
|
|
17
|
-
export type RelayMessageType = (typeof RelayMessageType)[keyof typeof RelayMessageType];
|
|
18
|
-
export type RelayFrame = {
|
|
19
|
-
type: RelayMessageType;
|
|
20
|
-
requestId: number;
|
|
21
|
-
streamId: number;
|
|
22
|
-
payload: Uint8Array;
|
|
23
|
-
};
|
|
24
|
-
export declare function encodeFrame(frame: RelayFrame): Uint8Array<ArrayBuffer>;
|
|
25
|
-
export declare function decodeFrame(data: Uint8Array): RelayFrame;
|
|
26
|
-
export declare function encodeJson(value: unknown): Uint8Array<ArrayBufferLike>;
|
|
27
|
-
export declare function decodeJson<T>(payload: Uint8Array): T;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { UsbmuxCandidate, getBulkEndpoints } from './webusb';
|
|
2
|
-
export type UsbmuxSession = {
|
|
3
|
-
device: USBDevice;
|
|
4
|
-
candidate: UsbmuxCandidate;
|
|
5
|
-
inEndpoint: ReturnType<typeof getBulkEndpoints>['inEndpoint'];
|
|
6
|
-
outEndpoint: ReturnType<typeof getBulkEndpoints>['outEndpoint'];
|
|
7
|
-
muxVersion: number;
|
|
8
|
-
txSeq: number;
|
|
9
|
-
rxSeq: number;
|
|
10
|
-
nextSport: number;
|
|
11
|
-
streams: Map<string, UsbmuxStream>;
|
|
12
|
-
writeChain: Promise<void>;
|
|
13
|
-
closed: boolean;
|
|
14
|
-
};
|
|
15
|
-
export type UsbmuxStream = {
|
|
16
|
-
session: UsbmuxSession;
|
|
17
|
-
sport: number;
|
|
18
|
-
dport: number;
|
|
19
|
-
seq: number;
|
|
20
|
-
ack: number;
|
|
21
|
-
queue: Uint8Array[];
|
|
22
|
-
waiters: Array<(value: Uint8Array) => void>;
|
|
23
|
-
error?: Error;
|
|
24
|
-
opened: Promise<void>;
|
|
25
|
-
resolveOpened: () => void;
|
|
26
|
-
rejectOpened: (error: Error) => void;
|
|
27
|
-
};
|
|
28
|
-
export declare function createUsbmuxSession(device: USBDevice, candidate: UsbmuxCandidate): Promise<UsbmuxSession>;
|
|
29
|
-
export declare function openStream(session: UsbmuxSession, port: number): Promise<UsbmuxStream>;
|
|
30
|
-
export declare function sendStreamData(stream: UsbmuxStream, bytes: Uint8Array): Promise<void>;
|
|
31
|
-
export declare function receiveStreamData(stream: UsbmuxStream): Promise<Uint8Array<ArrayBufferLike>>;
|
|
32
|
-
export declare function closeUsbmuxSession(session: UsbmuxSession): void;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export type UsbEndpoint = {
|
|
2
|
-
endpointNumber: number;
|
|
3
|
-
direction: 'in' | 'out';
|
|
4
|
-
type: string;
|
|
5
|
-
packetSize: number;
|
|
6
|
-
};
|
|
7
|
-
export type UsbmuxCandidate = {
|
|
8
|
-
configurationValue: number;
|
|
9
|
-
interfaceNumber: number;
|
|
10
|
-
alternateSetting: number;
|
|
11
|
-
endpoints: UsbEndpoint[];
|
|
12
|
-
};
|
|
13
|
-
export declare function requestAppleDevice(): Promise<USBDevice>;
|
|
14
|
-
export declare function findUsbmuxCandidates(device: USBDevice): UsbmuxCandidate[];
|
|
15
|
-
export declare function claimUsbmux(device: USBDevice, candidate: UsbmuxCandidate): Promise<void>;
|
|
16
|
-
export declare function getBulkEndpoints(candidate: UsbmuxCandidate): {
|
|
17
|
-
outEndpoint: UsbEndpoint;
|
|
18
|
-
inEndpoint: UsbEndpoint;
|
|
19
|
-
};
|
|
20
|
-
export declare function transferOutWithZlp(device: USBDevice, endpoint: UsbEndpoint, bytes: Uint8Array): Promise<void>;
|
|
21
|
-
export declare function transferIn(device: USBDevice, endpoint: UsbEndpoint, size?: number): Promise<Uint8Array<ArrayBufferLike>>;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { DeviceInstallSigningMode, ProvisioningProfileInfo, PutSigningAssetsInput, StoredPairRecord, StoredSigningAssets, PairRecordPayload } from '../types';
|
|
2
|
-
export declare function normalizeUDID(udid?: string): string;
|
|
3
|
-
export declare function normalizeBundleID(bundleID?: string): string;
|
|
4
|
-
export declare function getPairRecord(udid?: string): Promise<StoredPairRecord | undefined>;
|
|
5
|
-
export declare function putPairRecord(record: PairRecordPayload, metadata?: {
|
|
6
|
-
productName?: string;
|
|
7
|
-
}): Promise<StoredPairRecord>;
|
|
8
|
-
export declare function getSigningAssets({ deviceUDID, bundleID, signingMode, }: {
|
|
9
|
-
deviceUDID?: string;
|
|
10
|
-
bundleID?: string;
|
|
11
|
-
signingMode?: DeviceInstallSigningMode;
|
|
12
|
-
}): Promise<StoredSigningAssets | undefined>;
|
|
13
|
-
export declare function getLatestSigningAssets(signingMode?: DeviceInstallSigningMode): Promise<StoredSigningAssets>;
|
|
14
|
-
export declare function getLatestSigningAssetsWithCertificate(teamID?: string, signingMode?: DeviceInstallSigningMode): Promise<StoredSigningAssets>;
|
|
15
|
-
export declare function putSigningAssets(input: PutSigningAssetsInput): Promise<StoredSigningAssets>;
|
|
16
|
-
export declare function findSigningAssetsForBundle(bundleID?: string, signingMode?: DeviceInstallSigningMode): Promise<StoredSigningAssets[]>;
|
|
17
|
-
export declare function profileContainsDevice(profile: ProvisioningProfileInfo, deviceUDID?: string): boolean;
|
|
18
|
-
export declare function profileMatchesBundleID(profile: ProvisioningProfileInfo, bundleID?: string): boolean;
|
|
19
|
-
export declare function parseProvisioningProfile(file: File): Promise<{
|
|
20
|
-
name: string | undefined;
|
|
21
|
-
uuid: string | undefined;
|
|
22
|
-
teamID: string;
|
|
23
|
-
applicationIdentifier: string | undefined;
|
|
24
|
-
bundleID: string | undefined;
|
|
25
|
-
provisionedDevices: string[];
|
|
26
|
-
certificateSerialNumbers: string[];
|
|
27
|
-
getTaskAllow: boolean | undefined;
|
|
28
|
-
expirationDate: string | undefined;
|
|
29
|
-
}>;
|
|
30
|
-
export declare function parseProvisioningProfileBase64(base64: string): {
|
|
31
|
-
name: string | undefined;
|
|
32
|
-
uuid: string | undefined;
|
|
33
|
-
teamID: string;
|
|
34
|
-
applicationIdentifier: string | undefined;
|
|
35
|
-
bundleID: string | undefined;
|
|
36
|
-
provisionedDevices: string[];
|
|
37
|
-
certificateSerialNumbers: string[];
|
|
38
|
-
getTaskAllow: boolean | undefined;
|
|
39
|
-
expirationDate: string | undefined;
|
|
40
|
-
};
|
|
41
|
-
export declare function parseProvisioningProfileBytes(bytes: Uint8Array): {
|
|
42
|
-
name: string | undefined;
|
|
43
|
-
uuid: string | undefined;
|
|
44
|
-
teamID: string;
|
|
45
|
-
applicationIdentifier: string | undefined;
|
|
46
|
-
bundleID: string | undefined;
|
|
47
|
-
provisionedDevices: string[];
|
|
48
|
-
certificateSerialNumbers: string[];
|
|
49
|
-
getTaskAllow: boolean | undefined;
|
|
50
|
-
expirationDate: string | undefined;
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Normalizes a certificate serial number for comparison: uppercase hex
|
|
54
|
-
* without leading zeros, the format Apple's portal reports in serialNum.
|
|
55
|
-
*/
|
|
56
|
-
export declare function normalizeCertificateSerial(serial?: string): string | undefined;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A pluggable store for Apple signing secrets.
|
|
3
|
-
*
|
|
4
|
-
* Credential material always lands in the browser first (the Apple relay
|
|
5
|
-
* only proxies); the browser then writes it into a store implementing this
|
|
6
|
-
* interface. Limrun's org secret store is the default implementation, an
|
|
7
|
-
* IndexedDB-backed one keeps everything local, and customers can bring
|
|
8
|
-
* their own store by implementing the same interface.
|
|
9
|
-
*/
|
|
10
|
-
export declare const APPLE_CERTIFICATE_SECRET_TYPE = "appleCertificate";
|
|
11
|
-
export declare const APPLE_PROVISIONING_PROFILE_SECRET_TYPE = "appleProvisioningProfile";
|
|
12
|
-
export type SigningSecretType = typeof APPLE_CERTIFICATE_SECRET_TYPE | typeof APPLE_PROVISIONING_PROFILE_SECRET_TYPE;
|
|
13
|
-
export type SigningSecretMetadata = {
|
|
14
|
-
type: string;
|
|
15
|
-
name: string;
|
|
16
|
-
createdAt?: string;
|
|
17
|
-
};
|
|
18
|
-
/** Type-specific flat key-value payload of a signing secret. */
|
|
19
|
-
export type SigningSecretData = Record<string, string>;
|
|
20
|
-
export type SigningSecret = SigningSecretMetadata & {
|
|
21
|
-
data: SigningSecretData;
|
|
22
|
-
};
|
|
23
|
-
export interface SigningSecretStore {
|
|
24
|
-
/**
|
|
25
|
-
* Stores a secret. When a secret with the same type and name already
|
|
26
|
-
* exists its data is overwritten. Returns the stored secret; callers
|
|
27
|
-
* should use the returned data.
|
|
28
|
-
*/
|
|
29
|
-
put(type: SigningSecretType, name: string, data: SigningSecretData): Promise<SigningSecret>;
|
|
30
|
-
/** Returns the secret including its data, or undefined when absent. */
|
|
31
|
-
get(type: SigningSecretType, name: string): Promise<SigningSecret | undefined>;
|
|
32
|
-
/** Lists metadata of all stored signing secrets, never their data. */
|
|
33
|
-
list(): Promise<SigningSecretMetadata[]>;
|
|
34
|
-
/** Deletes a secret; resolves even when the secret does not exist. */
|
|
35
|
-
delete(type: SigningSecretType, name: string): Promise<void>;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Apple's certificate types as defined by the App Store Connect API
|
|
39
|
-
* (https://developer.apple.com/documentation/appstoreconnectapi/certificatetype).
|
|
40
|
-
*/
|
|
41
|
-
export type AppleCertificateType = 'DEVELOPMENT' | 'DISTRIBUTION' | 'IOS_DEVELOPMENT' | 'IOS_DISTRIBUTION' | 'MAC_APP_DEVELOPMENT' | 'MAC_APP_DISTRIBUTION' | 'MAC_INSTALLER_DISTRIBUTION' | 'DEVELOPER_ID_APPLICATION' | 'DEVELOPER_ID_INSTALLER' | 'DEVELOPER_ID_KEXT' | 'PASS_TYPE_ID' | 'PASS_TYPE_ID_WITH_NFC';
|
|
42
|
-
/** Data payload of an appleCertificate secret. */
|
|
43
|
-
export type AppleCertificateSecretData = {
|
|
44
|
-
certificateP12Base64: string;
|
|
45
|
-
/** Which of Apple's certificate types the p12 holds. */
|
|
46
|
-
certificateType: AppleCertificateType;
|
|
47
|
-
certificatePassword?: string;
|
|
48
|
-
teamID?: string;
|
|
49
|
-
/** Apple's portal certificate id, never a Limrun DB id. */
|
|
50
|
-
certificateID?: string;
|
|
51
|
-
/** The certificate's serial number: uppercase hex, no leading zeros. */
|
|
52
|
-
serialNumber?: string;
|
|
53
|
-
expirationDate?: string;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Data payload of an appleProvisioningProfile secret. The
|
|
57
|
-
* certificateSerialNumbers, bundleIDs and deviceIDs fields duplicate what
|
|
58
|
-
* the signed profile binds (as comma-separated lists) so profiles can be
|
|
59
|
-
* filtered by certificate, bundle ID or device without parsing every
|
|
60
|
-
* entry. Certificates are referenced by serial number, the identifier
|
|
61
|
-
* Apple embeds in the profile itself.
|
|
62
|
-
*/
|
|
63
|
-
export type AppleProvisioningProfileSecretData = {
|
|
64
|
-
provisioningProfileBase64: string;
|
|
65
|
-
certificateSerialNumbers?: string;
|
|
66
|
-
bundleIDs?: string;
|
|
67
|
-
deviceIDs?: string;
|
|
68
|
-
teamID?: string;
|
|
69
|
-
profileName?: string;
|
|
70
|
-
uuid?: string;
|
|
71
|
-
expirationDate?: string;
|
|
72
|
-
};
|
|
73
|
-
/** Stores an Apple certificate bundle, conventionally named `${teamID}/${certificateType}`. */
|
|
74
|
-
export declare function putAppleCertificateSecret(store: SigningSecretStore, name: string, data: AppleCertificateSecretData): Promise<SigningSecret>;
|
|
75
|
-
/**
|
|
76
|
-
* Stores a provisioning profile, conventionally named `${teamID}/${uuid}`
|
|
77
|
-
* so a team can hold many profiles for the same bundle ID and certificate
|
|
78
|
-
* set; consumers select by the reference fields, not by name.
|
|
79
|
-
*/
|
|
80
|
-
export declare function putAppleProvisioningProfileSecret(store: SigningSecretStore, name: string, data: AppleProvisioningProfileSecretData): Promise<SigningSecret>;
|
|
81
|
-
export type LimrunSecretStoreOptions = {
|
|
82
|
-
/** Base URL of the Limrun backend API, e.g. https://api.limrun.com */
|
|
83
|
-
apiUrl: string;
|
|
84
|
-
/** Bearer token: a user or organization token. */
|
|
85
|
-
token: string;
|
|
86
|
-
/** Organization TID owning the secrets. */
|
|
87
|
-
organizationId: string;
|
|
88
|
-
/** Custom fetch, mainly for tests. */
|
|
89
|
-
fetch?: typeof fetch;
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* A SigningSecretStore backed by Limrun's organization secret store
|
|
93
|
-
* (`/v1/organizations/{org}/secrets`). Secrets are stored server-side and
|
|
94
|
-
* shared across the organization.
|
|
95
|
-
*/
|
|
96
|
-
export declare function createLimrunSecretStore(options: LimrunSecretStoreOptions): SigningSecretStore;
|
|
97
|
-
/**
|
|
98
|
-
* A SigningSecretStore keeping everything in the browser's IndexedDB.
|
|
99
|
-
* Nothing leaves the machine; secrets are per-browser-profile.
|
|
100
|
-
*/
|
|
101
|
-
export declare function createBrowserSecretStore(): SigningSecretStore;
|